HydPy 6.2.dev1__cp313-cp313-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- hydpy/__init__.py +275 -0
- hydpy/aliases.py +2554 -0
- hydpy/auxs/__init__.py +0 -0
- hydpy/auxs/anntools.py +1305 -0
- hydpy/auxs/armatools.py +883 -0
- hydpy/auxs/calibtools.py +3337 -0
- hydpy/auxs/interptools.py +1094 -0
- hydpy/auxs/iuhtools.py +543 -0
- hydpy/auxs/networktools.py +597 -0
- hydpy/auxs/ppolytools.py +809 -0
- hydpy/auxs/quadtools.py +61 -0
- hydpy/auxs/roottools.py +228 -0
- hydpy/auxs/smoothtools.py +273 -0
- hydpy/auxs/statstools.py +2125 -0
- hydpy/auxs/validtools.py +81 -0
- hydpy/conf/HydPyConfigBase.xsd +68637 -0
- hydpy/conf/HydPyConfigBase.xsdt +358 -0
- hydpy/conf/HydPyConfigMultipleRuns.xsd +25 -0
- hydpy/conf/HydPyConfigSingleRun.xsd +24 -0
- hydpy/conf/__init__.py +0 -0
- hydpy/conf/a_coefficients_explicit_lobatto_sequence.npy +0 -0
- hydpy/conf/support_points_for_smoothpar_logistic2.npy +0 -0
- hydpy/config.py +42 -0
- hydpy/core/__init__.py +0 -0
- hydpy/core/aliastools.py +214 -0
- hydpy/core/autodoctools.py +1947 -0
- hydpy/core/auxfiletools.py +1169 -0
- hydpy/core/devicetools.py +3810 -0
- hydpy/core/exceptiontools.py +269 -0
- hydpy/core/filetools.py +1985 -0
- hydpy/core/hydpytools.py +3089 -0
- hydpy/core/importtools.py +1398 -0
- hydpy/core/indextools.py +345 -0
- hydpy/core/itemtools.py +1849 -0
- hydpy/core/masktools.py +460 -0
- hydpy/core/modeltools.py +4868 -0
- hydpy/core/netcdftools.py +2683 -0
- hydpy/core/objecttools.py +2023 -0
- hydpy/core/optiontools.py +1045 -0
- hydpy/core/parametertools.py +4674 -0
- hydpy/core/printtools.py +222 -0
- hydpy/core/propertytools.py +643 -0
- hydpy/core/pubtools.py +254 -0
- hydpy/core/selectiontools.py +1571 -0
- hydpy/core/sequencetools.py +4476 -0
- hydpy/core/seriestools.py +339 -0
- hydpy/core/testtools.py +2483 -0
- hydpy/core/timetools.py +3567 -0
- hydpy/core/typingtools.py +333 -0
- hydpy/core/variabletools.py +2615 -0
- hydpy/cythons/__init__.py +24 -0
- hydpy/cythons/annutils.pxd +33 -0
- hydpy/cythons/annutils.pyi +25 -0
- hydpy/cythons/annutils.pyx +120 -0
- hydpy/cythons/autogen/__init__.py +0 -0
- hydpy/cythons/autogen/annutils.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/annutils.pxd +42 -0
- hydpy/cythons/autogen/annutils.pyx +129 -0
- hydpy/cythons/autogen/c_arma.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_arma.pxd +179 -0
- hydpy/cythons/autogen/c_arma.pyx +356 -0
- hydpy/cythons/autogen/c_arma_rimorido.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_arma_rimorido.pxd +179 -0
- hydpy/cythons/autogen/c_arma_rimorido.pyx +356 -0
- hydpy/cythons/autogen/c_conv.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_conv.pxd +198 -0
- hydpy/cythons/autogen/c_conv.pyx +491 -0
- hydpy/cythons/autogen/c_conv_idw.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_conv_idw.pxd +124 -0
- hydpy/cythons/autogen/c_conv_idw.pyx +264 -0
- hydpy/cythons/autogen/c_conv_idw_ed.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_conv_idw_ed.pxd +197 -0
- hydpy/cythons/autogen/c_conv_idw_ed.pyx +481 -0
- hydpy/cythons/autogen/c_conv_nn.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_conv_nn.pxd +120 -0
- hydpy/cythons/autogen/c_conv_nn.pyx +224 -0
- hydpy/cythons/autogen/c_dam.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dam.pxd +805 -0
- hydpy/cythons/autogen/c_dam.pyx +1477 -0
- hydpy/cythons/autogen/c_dam_llake.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dam_llake.pxd +364 -0
- hydpy/cythons/autogen/c_dam_llake.pyx +705 -0
- hydpy/cythons/autogen/c_dam_lreservoir.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dam_lreservoir.pxd +365 -0
- hydpy/cythons/autogen/c_dam_lreservoir.pyx +708 -0
- hydpy/cythons/autogen/c_dam_lretention.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dam_lretention.pxd +340 -0
- hydpy/cythons/autogen/c_dam_lretention.pyx +625 -0
- hydpy/cythons/autogen/c_dam_pump.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dam_pump.pxd +402 -0
- hydpy/cythons/autogen/c_dam_pump.pyx +724 -0
- hydpy/cythons/autogen/c_dam_pump_sluice.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dam_pump_sluice.pxd +452 -0
- hydpy/cythons/autogen/c_dam_pump_sluice.pyx +829 -0
- hydpy/cythons/autogen/c_dam_sluice.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dam_sluice.pxd +404 -0
- hydpy/cythons/autogen/c_dam_sluice.pyx +726 -0
- hydpy/cythons/autogen/c_dam_v001.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dam_v001.pxd +452 -0
- hydpy/cythons/autogen/c_dam_v001.pyx +816 -0
- hydpy/cythons/autogen/c_dam_v002.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dam_v002.pxd +394 -0
- hydpy/cythons/autogen/c_dam_v002.pyx +703 -0
- hydpy/cythons/autogen/c_dam_v003.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dam_v003.pxd +417 -0
- hydpy/cythons/autogen/c_dam_v003.pyx +744 -0
- hydpy/cythons/autogen/c_dam_v004.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dam_v004.pxd +486 -0
- hydpy/cythons/autogen/c_dam_v004.pyx +891 -0
- hydpy/cythons/autogen/c_dam_v005.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dam_v005.pxd +524 -0
- hydpy/cythons/autogen/c_dam_v005.pyx +928 -0
- hydpy/cythons/autogen/c_dummy.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dummy.pxd +151 -0
- hydpy/cythons/autogen/c_dummy.pyx +263 -0
- hydpy/cythons/autogen/c_dummy_interceptedwater.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dummy_interceptedwater.pxd +69 -0
- hydpy/cythons/autogen/c_dummy_interceptedwater.pyx +104 -0
- hydpy/cythons/autogen/c_dummy_node2node.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dummy_node2node.pxd +89 -0
- hydpy/cythons/autogen/c_dummy_node2node.pyx +148 -0
- hydpy/cythons/autogen/c_dummy_snowalbedo.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dummy_snowalbedo.pxd +69 -0
- hydpy/cythons/autogen/c_dummy_snowalbedo.pyx +104 -0
- hydpy/cythons/autogen/c_dummy_snowcover.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dummy_snowcover.pxd +69 -0
- hydpy/cythons/autogen/c_dummy_snowcover.pyx +104 -0
- hydpy/cythons/autogen/c_dummy_snowycanopy.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dummy_snowycanopy.pxd +69 -0
- hydpy/cythons/autogen/c_dummy_snowycanopy.pyx +104 -0
- hydpy/cythons/autogen/c_dummy_soilwater.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dummy_soilwater.pxd +69 -0
- hydpy/cythons/autogen/c_dummy_soilwater.pyx +104 -0
- hydpy/cythons/autogen/c_evap.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_evap.pxd +1029 -0
- hydpy/cythons/autogen/c_evap.pyx +2601 -0
- hydpy/cythons/autogen/c_evap_aet_hbv96.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_evap_aet_hbv96.pxd +227 -0
- hydpy/cythons/autogen/c_evap_aet_hbv96.pyx +584 -0
- hydpy/cythons/autogen/c_evap_aet_minhas.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_evap_aet_minhas.pxd +193 -0
- hydpy/cythons/autogen/c_evap_aet_minhas.pyx +478 -0
- hydpy/cythons/autogen/c_evap_aet_morsim.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_evap_aet_morsim.pxd +681 -0
- hydpy/cythons/autogen/c_evap_aet_morsim.pyx +1642 -0
- hydpy/cythons/autogen/c_evap_pet_ambav1.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_evap_pet_ambav1.pxd +532 -0
- hydpy/cythons/autogen/c_evap_pet_ambav1.pyx +1296 -0
- hydpy/cythons/autogen/c_evap_pet_hbv96.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_evap_pet_hbv96.pxd +179 -0
- hydpy/cythons/autogen/c_evap_pet_hbv96.pyx +328 -0
- hydpy/cythons/autogen/c_evap_pet_m.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_evap_pet_m.pxd +124 -0
- hydpy/cythons/autogen/c_evap_pet_m.pyx +214 -0
- hydpy/cythons/autogen/c_evap_pet_mlc.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_evap_pet_mlc.pxd +126 -0
- hydpy/cythons/autogen/c_evap_pet_mlc.pyx +214 -0
- hydpy/cythons/autogen/c_evap_ret_fao56.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_evap_ret_fao56.pxd +305 -0
- hydpy/cythons/autogen/c_evap_ret_fao56.pyx +624 -0
- hydpy/cythons/autogen/c_evap_ret_io.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_evap_ret_io.pxd +112 -0
- hydpy/cythons/autogen/c_evap_ret_io.pyx +176 -0
- hydpy/cythons/autogen/c_evap_ret_tw2002.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_evap_ret_tw2002.pxd +139 -0
- hydpy/cythons/autogen/c_evap_ret_tw2002.pyx +273 -0
- hydpy/cythons/autogen/c_exch.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_exch.pxd +230 -0
- hydpy/cythons/autogen/c_exch.pyx +462 -0
- hydpy/cythons/autogen/c_exch_branch_hbv96.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_exch_branch_hbv96.pxd +134 -0
- hydpy/cythons/autogen/c_exch_branch_hbv96.pyx +255 -0
- hydpy/cythons/autogen/c_exch_waterlevel.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_exch_waterlevel.pxd +54 -0
- hydpy/cythons/autogen/c_exch_waterlevel.pyx +78 -0
- hydpy/cythons/autogen/c_exch_weir_hbv96.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_exch_weir_hbv96.pxd +156 -0
- hydpy/cythons/autogen/c_exch_weir_hbv96.pyx +282 -0
- hydpy/cythons/autogen/c_ga.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_ga.pxd +353 -0
- hydpy/cythons/autogen/c_ga.pyx +1204 -0
- hydpy/cythons/autogen/c_ga_garto.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_ga_garto.pxd +330 -0
- hydpy/cythons/autogen/c_ga_garto.pyx +1105 -0
- hydpy/cythons/autogen/c_ga_garto_submodel1.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_ga_garto_submodel1.pxd +236 -0
- hydpy/cythons/autogen/c_ga_garto_submodel1.pyx +944 -0
- hydpy/cythons/autogen/c_gland.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_gland.pxd +437 -0
- hydpy/cythons/autogen/c_gland.pyx +726 -0
- hydpy/cythons/autogen/c_gland_gr4.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_gland_gr4.pxd +382 -0
- hydpy/cythons/autogen/c_gland_gr4.pyx +605 -0
- hydpy/cythons/autogen/c_gland_gr5.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_gland_gr5.pxd +368 -0
- hydpy/cythons/autogen/c_gland_gr5.pyx +568 -0
- hydpy/cythons/autogen/c_gland_gr6.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_gland_gr6.pxd +420 -0
- hydpy/cythons/autogen/c_gland_gr6.pyx +673 -0
- hydpy/cythons/autogen/c_hland.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_hland.pxd +855 -0
- hydpy/cythons/autogen/c_hland.pyx +2486 -0
- hydpy/cythons/autogen/c_hland_96.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_hland_96.pxd +631 -0
- hydpy/cythons/autogen/c_hland_96.pyx +1724 -0
- hydpy/cythons/autogen/c_hland_96c.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_hland_96c.pxd +621 -0
- hydpy/cythons/autogen/c_hland_96c.pyx +1822 -0
- hydpy/cythons/autogen/c_hland_96p.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_hland_96p.pxd +683 -0
- hydpy/cythons/autogen/c_hland_96p.pyx +1911 -0
- hydpy/cythons/autogen/c_kinw.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_kinw.pxd +509 -0
- hydpy/cythons/autogen/c_kinw.pyx +965 -0
- hydpy/cythons/autogen/c_kinw_williams.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_kinw_williams.pxd +409 -0
- hydpy/cythons/autogen/c_kinw_williams.pyx +763 -0
- hydpy/cythons/autogen/c_kinw_williams_ext.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_kinw_williams_ext.pxd +220 -0
- hydpy/cythons/autogen/c_kinw_williams_ext.pyx +440 -0
- hydpy/cythons/autogen/c_lland.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_lland.pxd +1386 -0
- hydpy/cythons/autogen/c_lland.pyx +3679 -0
- hydpy/cythons/autogen/c_lland_dd.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_lland_dd.pxd +679 -0
- hydpy/cythons/autogen/c_lland_dd.pyx +1719 -0
- hydpy/cythons/autogen/c_lland_knauf.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_lland_knauf.pxd +1096 -0
- hydpy/cythons/autogen/c_lland_knauf.pyx +2784 -0
- hydpy/cythons/autogen/c_lland_knauf_ic.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_lland_knauf_ic.pxd +1369 -0
- hydpy/cythons/autogen/c_lland_knauf_ic.pyx +3625 -0
- hydpy/cythons/autogen/c_meteo.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_meteo.pxd +469 -0
- hydpy/cythons/autogen/c_meteo.pyx +879 -0
- hydpy/cythons/autogen/c_meteo_clear_glob_io.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_meteo_clear_glob_io.pxd +75 -0
- hydpy/cythons/autogen/c_meteo_clear_glob_io.pyx +107 -0
- hydpy/cythons/autogen/c_meteo_glob_fao56.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_meteo_glob_fao56.pxd +209 -0
- hydpy/cythons/autogen/c_meteo_glob_fao56.pyx +339 -0
- hydpy/cythons/autogen/c_meteo_glob_io.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_meteo_glob_io.pxd +63 -0
- hydpy/cythons/autogen/c_meteo_glob_io.pyx +91 -0
- hydpy/cythons/autogen/c_meteo_glob_morsim.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_meteo_glob_morsim.pxd +289 -0
- hydpy/cythons/autogen/c_meteo_glob_morsim.pyx +527 -0
- hydpy/cythons/autogen/c_meteo_precip_io.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_meteo_precip_io.pxd +112 -0
- hydpy/cythons/autogen/c_meteo_precip_io.pyx +176 -0
- hydpy/cythons/autogen/c_meteo_psun_sun_glob_io.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_meteo_psun_sun_glob_io.pxd +87 -0
- hydpy/cythons/autogen/c_meteo_psun_sun_glob_io.pyx +123 -0
- hydpy/cythons/autogen/c_meteo_sun_fao56.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_meteo_sun_fao56.pxd +209 -0
- hydpy/cythons/autogen/c_meteo_sun_fao56.pyx +343 -0
- hydpy/cythons/autogen/c_meteo_sun_morsim.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_meteo_sun_morsim.pxd +286 -0
- hydpy/cythons/autogen/c_meteo_sun_morsim.pyx +519 -0
- hydpy/cythons/autogen/c_meteo_temp_io.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_meteo_temp_io.pxd +112 -0
- hydpy/cythons/autogen/c_meteo_temp_io.pyx +176 -0
- hydpy/cythons/autogen/c_musk.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_musk.pxd +282 -0
- hydpy/cythons/autogen/c_musk.pyx +605 -0
- hydpy/cythons/autogen/c_musk_classic.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_musk_classic.pxd +138 -0
- hydpy/cythons/autogen/c_musk_classic.pyx +226 -0
- hydpy/cythons/autogen/c_musk_mct.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_musk_mct.pxd +282 -0
- hydpy/cythons/autogen/c_musk_mct.pyx +609 -0
- hydpy/cythons/autogen/c_rconc.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_rconc.pxd +119 -0
- hydpy/cythons/autogen/c_rconc.pyx +174 -0
- hydpy/cythons/autogen/c_rconc_nash.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_rconc_nash.pxd +111 -0
- hydpy/cythons/autogen/c_rconc_nash.pyx +185 -0
- hydpy/cythons/autogen/c_rconc_uh.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_rconc_uh.pxd +92 -0
- hydpy/cythons/autogen/c_rconc_uh.pyx +125 -0
- hydpy/cythons/autogen/c_sw1d.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_sw1d.pxd +511 -0
- hydpy/cythons/autogen/c_sw1d.pyx +1263 -0
- hydpy/cythons/autogen/c_sw1d_channel.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_sw1d_channel.pxd +119 -0
- hydpy/cythons/autogen/c_sw1d_channel.pyx +300 -0
- hydpy/cythons/autogen/c_sw1d_gate_out.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_sw1d_gate_out.pxd +240 -0
- hydpy/cythons/autogen/c_sw1d_gate_out.pyx +476 -0
- hydpy/cythons/autogen/c_sw1d_lias.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_sw1d_lias.pxd +320 -0
- hydpy/cythons/autogen/c_sw1d_lias.pyx +619 -0
- hydpy/cythons/autogen/c_sw1d_lias_sluice.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_sw1d_lias_sluice.pxd +325 -0
- hydpy/cythons/autogen/c_sw1d_lias_sluice.pyx +644 -0
- hydpy/cythons/autogen/c_sw1d_network.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_sw1d_network.pxd +90 -0
- hydpy/cythons/autogen/c_sw1d_network.pyx +246 -0
- hydpy/cythons/autogen/c_sw1d_pump.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_sw1d_pump.pxd +256 -0
- hydpy/cythons/autogen/c_sw1d_pump.pyx +502 -0
- hydpy/cythons/autogen/c_sw1d_q_in.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_sw1d_q_in.pxd +224 -0
- hydpy/cythons/autogen/c_sw1d_q_in.pyx +383 -0
- hydpy/cythons/autogen/c_sw1d_q_out.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_sw1d_q_out.pxd +224 -0
- hydpy/cythons/autogen/c_sw1d_q_out.pyx +383 -0
- hydpy/cythons/autogen/c_sw1d_storage.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_sw1d_storage.pxd +193 -0
- hydpy/cythons/autogen/c_sw1d_storage.pyx +349 -0
- hydpy/cythons/autogen/c_sw1d_weir_out.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_sw1d_weir_out.pxd +212 -0
- hydpy/cythons/autogen/c_sw1d_weir_out.pyx +404 -0
- hydpy/cythons/autogen/c_test.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_test.pxd +175 -0
- hydpy/cythons/autogen/c_test.pyx +348 -0
- hydpy/cythons/autogen/c_test_discontinous.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_test_discontinous.pxd +146 -0
- hydpy/cythons/autogen/c_test_discontinous.pyx +256 -0
- hydpy/cythons/autogen/c_test_stiff0d.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_test_stiff0d.pxd +146 -0
- hydpy/cythons/autogen/c_test_stiff0d.pyx +250 -0
- hydpy/cythons/autogen/c_test_stiff1d.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_test_stiff1d.pxd +145 -0
- hydpy/cythons/autogen/c_test_stiff1d.pyx +294 -0
- hydpy/cythons/autogen/c_whmod.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_whmod.pxd +482 -0
- hydpy/cythons/autogen/c_whmod.pyx +1156 -0
- hydpy/cythons/autogen/c_whmod_rural.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_whmod_rural.pxd +411 -0
- hydpy/cythons/autogen/c_whmod_rural.pyx +982 -0
- hydpy/cythons/autogen/c_whmod_urban.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_whmod_urban.pxd +482 -0
- hydpy/cythons/autogen/c_whmod_urban.pyx +1155 -0
- hydpy/cythons/autogen/c_wland.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_wland.pxd +842 -0
- hydpy/cythons/autogen/c_wland.pyx +1890 -0
- hydpy/cythons/autogen/c_wland_gd.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_wland_gd.pxd +829 -0
- hydpy/cythons/autogen/c_wland_gd.pyx +1847 -0
- hydpy/cythons/autogen/c_wland_wag.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_wland_wag.pxd +810 -0
- hydpy/cythons/autogen/c_wland_wag.pyx +1780 -0
- hydpy/cythons/autogen/c_wq.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_wq.pxd +275 -0
- hydpy/cythons/autogen/c_wq.pyx +652 -0
- hydpy/cythons/autogen/c_wq_trapeze.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_wq_trapeze.pxd +170 -0
- hydpy/cythons/autogen/c_wq_trapeze.pyx +400 -0
- hydpy/cythons/autogen/c_wq_trapeze_strickler.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_wq_trapeze_strickler.pxd +243 -0
- hydpy/cythons/autogen/c_wq_trapeze_strickler.pyx +578 -0
- hydpy/cythons/autogen/c_wq_walrus.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_wq_walrus.pxd +61 -0
- hydpy/cythons/autogen/c_wq_walrus.pyx +82 -0
- hydpy/cythons/autogen/configutils.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/configutils.pxd +17 -0
- hydpy/cythons/autogen/configutils.pyx +119 -0
- hydpy/cythons/autogen/interfaceutils.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/interfaceutils.pxd +31 -0
- hydpy/cythons/autogen/interfaceutils.pyx +82 -0
- hydpy/cythons/autogen/interputils.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/interputils.pxd +42 -0
- hydpy/cythons/autogen/interputils.pyx +118 -0
- hydpy/cythons/autogen/masterinterface.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/masterinterface.pxd +153 -0
- hydpy/cythons/autogen/masterinterface.pyx +222 -0
- hydpy/cythons/autogen/pointerutils.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/pointerutils.pxd +31 -0
- hydpy/cythons/autogen/pointerutils.pyx +650 -0
- hydpy/cythons/autogen/ppolyutils.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/ppolyutils.pxd +35 -0
- hydpy/cythons/autogen/ppolyutils.pyx +59 -0
- hydpy/cythons/autogen/quadutils.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/quadutils.pxd +26 -0
- hydpy/cythons/autogen/quadutils.pyx +973 -0
- hydpy/cythons/autogen/rootutils.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/rootutils.pxd +28 -0
- hydpy/cythons/autogen/rootutils.pyx +109 -0
- hydpy/cythons/autogen/sequenceutils.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/sequenceutils.pxd +45 -0
- hydpy/cythons/autogen/sequenceutils.pyx +101 -0
- hydpy/cythons/autogen/smoothutils.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/smoothutils.pxd +29 -0
- hydpy/cythons/autogen/smoothutils.pyx +833 -0
- hydpy/cythons/configutils.pxd +8 -0
- hydpy/cythons/configutils.pyi +5 -0
- hydpy/cythons/configutils.pyx +110 -0
- hydpy/cythons/interfaceutils.pxd +22 -0
- hydpy/cythons/interfaceutils.pyi +15 -0
- hydpy/cythons/interfaceutils.pyx +73 -0
- hydpy/cythons/interputils.pxd +33 -0
- hydpy/cythons/interputils.pyi +32 -0
- hydpy/cythons/interputils.pyx +109 -0
- hydpy/cythons/modelutils.py +2990 -0
- hydpy/cythons/pointerutils.pxd +22 -0
- hydpy/cythons/pointerutils.pyi +89 -0
- hydpy/cythons/pointerutils.pyx +641 -0
- hydpy/cythons/ppolyutils.pxd +26 -0
- hydpy/cythons/ppolyutils.pyi +21 -0
- hydpy/cythons/ppolyutils.pyx +50 -0
- hydpy/cythons/quadutils.pxd +17 -0
- hydpy/cythons/quadutils.pyi +13 -0
- hydpy/cythons/quadutils.pyx +964 -0
- hydpy/cythons/rootutils.pxd +19 -0
- hydpy/cythons/rootutils.pyi +21 -0
- hydpy/cythons/rootutils.pyx +100 -0
- hydpy/cythons/sequenceutils.pxd +36 -0
- hydpy/cythons/sequenceutils.pyi +7 -0
- hydpy/cythons/sequenceutils.pyx +92 -0
- hydpy/cythons/smoothutils.pxd +20 -0
- hydpy/cythons/smoothutils.pyi +15 -0
- hydpy/cythons/smoothutils.pyx +824 -0
- hydpy/data/HydPy-H-Lahn/conditions/init_1996_01_01_00_00_00/land_dill_assl.py +13 -0
- hydpy/data/HydPy-H-Lahn/conditions/init_1996_01_01_00_00_00/land_lahn_kalk.py +13 -0
- hydpy/data/HydPy-H-Lahn/conditions/init_1996_01_01_00_00_00/land_lahn_leun.py +14 -0
- hydpy/data/HydPy-H-Lahn/conditions/init_1996_01_01_00_00_00/land_lahn_marb.py +13 -0
- hydpy/data/HydPy-H-Lahn/conditions/init_1996_01_01_00_00_00/stream_dill_assl_lahn_leun.py +5 -0
- hydpy/data/HydPy-H-Lahn/conditions/init_1996_01_01_00_00_00/stream_lahn_leun_lahn_kalk.py +5 -0
- hydpy/data/HydPy-H-Lahn/conditions/init_1996_01_01_00_00_00/stream_lahn_marb_lahn_leun.py +5 -0
- hydpy/data/HydPy-H-Lahn/control/default/land.py +9 -0
- hydpy/data/HydPy-H-Lahn/control/default/land_dill_assl.py +57 -0
- hydpy/data/HydPy-H-Lahn/control/default/land_lahn_kalk.py +57 -0
- hydpy/data/HydPy-H-Lahn/control/default/land_lahn_leun.py +56 -0
- hydpy/data/HydPy-H-Lahn/control/default/land_lahn_marb.py +57 -0
- hydpy/data/HydPy-H-Lahn/control/default/stream_dill_assl_lahn_leun.py +7 -0
- hydpy/data/HydPy-H-Lahn/control/default/stream_lahn_leun_lahn_kalk.py +7 -0
- hydpy/data/HydPy-H-Lahn/control/default/stream_lahn_marb_lahn_leun.py +7 -0
- hydpy/data/HydPy-H-Lahn/multiple_runs.xml +309 -0
- hydpy/data/HydPy-H-Lahn/multiple_runs_alpha.xml +71 -0
- hydpy/data/HydPy-H-Lahn/network/default/headwaters.py +11 -0
- hydpy/data/HydPy-H-Lahn/network/default/nonheadwaters.py +11 -0
- hydpy/data/HydPy-H-Lahn/network/default/streams.py +8 -0
- hydpy/data/HydPy-H-Lahn/series/default/dill_assl_obs_q.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/evap_pet_hbv96_input_normalairtemperature.nc +0 -0
- hydpy/data/HydPy-H-Lahn/series/default/evap_pet_hbv96_input_normalevapotranspiration.nc +0 -0
- hydpy/data/HydPy-H-Lahn/series/default/hland_96_input_p.nc +0 -0
- hydpy/data/HydPy-H-Lahn/series/default/hland_96_input_t.nc +0 -0
- hydpy/data/HydPy-H-Lahn/series/default/lahn_kalk_obs_q.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/lahn_leun_obs_q.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/lahn_marb_obs_q.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/land_dill_assl_evap_pet_hbv96_input_normalairtemperature.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/land_dill_assl_evap_pet_hbv96_input_normalevapotranspiration.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/land_dill_assl_hland_96_input_p.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/land_dill_assl_hland_96_input_t.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/land_lahn_kalk_evap_pet_hbv96_input_normalairtemperature.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/land_lahn_kalk_evap_pet_hbv96_input_normalevapotranspiration.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/land_lahn_kalk_hland_96_input_p.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/land_lahn_kalk_hland_96_input_t.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/land_lahn_leun_evap_pet_hbv96_input_normalairtemperature.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/land_lahn_leun_evap_pet_hbv96_input_normalevapotranspiration.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/land_lahn_leun_hland_96_input_p.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/land_lahn_leun_hland_96_input_t.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/land_lahn_marb_evap_pet_hbv96_input_normalairtemperature.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/land_lahn_marb_evap_pet_hbv96_input_normalevapotranspiration.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/land_lahn_marb_hland_96_input_p.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/land_lahn_marb_hland_96_input_t.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/obs_q.nc +0 -0
- hydpy/data/HydPy-H-Lahn/single_run.xml +152 -0
- hydpy/data/HydPy-H-Lahn/single_run.xmlt +143 -0
- hydpy/data/__init__.py +17 -0
- hydpy/docs/__init__.py +0 -0
- hydpy/docs/autofigs/__init__.py +0 -0
- hydpy/docs/bib/__init__.py +0 -0
- hydpy/docs/bib/refs.bib +566 -0
- hydpy/docs/combine_docversions.py +133 -0
- hydpy/docs/draw_model_sketches.py +1301 -0
- hydpy/docs/enable_autodoc.py +7 -0
- hydpy/docs/figs/HydPy-G-GR4.png +0 -0
- hydpy/docs/figs/HydPy-G-GR5.png +0 -0
- hydpy/docs/figs/HydPy-G-GR6.png +0 -0
- hydpy/docs/figs/HydPy-H-HBV96-COSERO.png +0 -0
- hydpy/docs/figs/HydPy-H-HBV96-PREVAH.png +0 -0
- hydpy/docs/figs/HydPy-H-HBV96.png +0 -0
- hydpy/docs/figs/HydPy-H-Lahn.png +0 -0
- hydpy/docs/figs/HydPy-KinW-Williams.png +0 -0
- hydpy/docs/figs/HydPy-L-DD.png +0 -0
- hydpy/docs/figs/HydPy-W-Wag.png +0 -0
- hydpy/docs/figs/HydPy_Logo.png +0 -0
- hydpy/docs/figs/HydPy_Logo_Text.png +0 -0
- hydpy/docs/figs/IDLE-editor.png +0 -0
- hydpy/docs/figs/IDLE-shell.png +0 -0
- hydpy/docs/figs/LAWA_river-basin-bumbers.png +0 -0
- hydpy/docs/figs/__init__.py +0 -0
- hydpy/docs/html_/__init__.py +0 -0
- hydpy/docs/polish_html.py +57 -0
- hydpy/docs/prepare.py +224 -0
- hydpy/docs/publish_docs.py +53 -0
- hydpy/docs/rst/HydPy-ARMA.rst +27 -0
- hydpy/docs/rst/HydPy-Conv.rst +22 -0
- hydpy/docs/rst/HydPy-Dam.rst +79 -0
- hydpy/docs/rst/HydPy-Dummy.rst +21 -0
- hydpy/docs/rst/HydPy-Evap.rst +26 -0
- hydpy/docs/rst/HydPy-Exch.rst +36 -0
- hydpy/docs/rst/HydPy-G.rst +40 -0
- hydpy/docs/rst/HydPy-GA.rst +34 -0
- hydpy/docs/rst/HydPy-H.rst +24 -0
- hydpy/docs/rst/HydPy-KinW.rst +32 -0
- hydpy/docs/rst/HydPy-L.rst +42 -0
- hydpy/docs/rst/HydPy-Meteo.rst +28 -0
- hydpy/docs/rst/HydPy-Musk.rst +21 -0
- hydpy/docs/rst/HydPy-Rconc.rst +17 -0
- hydpy/docs/rst/HydPy-SW1D.rst +49 -0
- hydpy/docs/rst/HydPy-Test.rst +19 -0
- hydpy/docs/rst/HydPy-W.rst +20 -0
- hydpy/docs/rst/HydPy-WHMod.rst +19 -0
- hydpy/docs/rst/HydPy-WQ.rst +20 -0
- hydpy/docs/rst/__init__.py +0 -0
- hydpy/docs/rst/additional_repositories.rst +40 -0
- hydpy/docs/rst/auxiliaries.rst +31 -0
- hydpy/docs/rst/continuous_integration.rst +75 -0
- hydpy/docs/rst/core.rst +75 -0
- hydpy/docs/rst/cythons.rst +47 -0
- hydpy/docs/rst/definitions.rst +506 -0
- hydpy/docs/rst/developer_guide.rst +54 -0
- hydpy/docs/rst/example_projects.rst +40 -0
- hydpy/docs/rst/execution.rst +22 -0
- hydpy/docs/rst/framework_tools.rst +56 -0
- hydpy/docs/rst/how_to_read_the_reference_manual.rst +156 -0
- hydpy/docs/rst/hydpydependencies.rst +55 -0
- hydpy/docs/rst/index.rst +125 -0
- hydpy/docs/rst/installation.rst +155 -0
- hydpy/docs/rst/model_families.rst +79 -0
- hydpy/docs/rst/model_overview.rst +291 -0
- hydpy/docs/rst/modelimports.rst +10 -0
- hydpy/docs/rst/options.rst +119 -0
- hydpy/docs/rst/programming_style.rst +572 -0
- hydpy/docs/rst/project_structure.rst +520 -0
- hydpy/docs/rst/quickstart.rst +304 -0
- hydpy/docs/rst/reference_manual.rst +29 -0
- hydpy/docs/rst/required_tools.rst +50 -0
- hydpy/docs/rst/simulation.rst +514 -0
- hydpy/docs/rst/submodel_interfaces.rst +32 -0
- hydpy/docs/rst/tests_and_documentation.rst +85 -0
- hydpy/docs/rst/user_guide.rst +38 -0
- hydpy/docs/rst/version_control.rst +116 -0
- hydpy/docs/rst/zbibliography.rst +8 -0
- hydpy/docs/sphinx/__init__.py +0 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/changes/frameset.html +11 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/changes/rstsource.html +15 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/changes/versionchanges.html +33 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/defindex.html +35 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/domainindex.html +56 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/genindex-single.html +63 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/genindex-split.html +41 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/genindex.html +76 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/globaltoc.html +11 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/layout.html +221 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/localtoc.html +15 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/opensearch.xml +13 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/page.html +13 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/relations.html +23 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/search.html +65 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/searchbox.html +21 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/searchfield.html +23 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/sourcelink.html +18 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/static/basic.css_t +925 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/static/doctools.js +156 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/static/documentation_options.js_t +13 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/static/file.png +0 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/static/language_data.js_t +26 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/static/minus.png +0 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/static/plus.png +0 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/static/searchtools.js +574 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/static/sphinx_highlight.js +154 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/theme.conf +16 -0
- hydpy/docs/sphinx/_themes/classic_hydpy/layout.html +23 -0
- hydpy/docs/sphinx/_themes/classic_hydpy/static/classic.css_t +358 -0
- hydpy/docs/sphinx/_themes/classic_hydpy/static/sidebar.js_t +72 -0
- hydpy/docs/sphinx/_themes/classic_hydpy/theme.conf +32 -0
- hydpy/docs/sphinx/conf.py +398 -0
- hydpy/docs/sphinx/defaultlinks_extension.py +36 -0
- hydpy/docs/sphinx/integrationtest_extension.py +104 -0
- hydpy/docs/sphinx/projectstructure_extension.py +58 -0
- hydpy/docs/sphinx/submodelgraph_extension.py +53 -0
- hydpy/exe/__init__.py +0 -0
- hydpy/exe/commandtools.py +651 -0
- hydpy/exe/hyd.py +277 -0
- hydpy/exe/modelimports.py +41 -0
- hydpy/exe/replacetools.py +216 -0
- hydpy/exe/servertools.py +2348 -0
- hydpy/exe/xmltools.py +3280 -0
- hydpy/interfaces/__init__.py +0 -0
- hydpy/interfaces/aetinterfaces.py +94 -0
- hydpy/interfaces/dischargeinterfaces.py +45 -0
- hydpy/interfaces/petinterfaces.py +117 -0
- hydpy/interfaces/precipinterfaces.py +42 -0
- hydpy/interfaces/radiationinterfaces.py +79 -0
- hydpy/interfaces/rconcinterfaces.py +30 -0
- hydpy/interfaces/routinginterfaces.py +324 -0
- hydpy/interfaces/soilinterfaces.py +96 -0
- hydpy/interfaces/stateinterfaces.py +98 -0
- hydpy/interfaces/tempinterfaces.py +46 -0
- hydpy/models/__init__.py +0 -0
- hydpy/models/arma/__init__.py +14 -0
- hydpy/models/arma/arma_control.py +383 -0
- hydpy/models/arma/arma_derived.py +204 -0
- hydpy/models/arma/arma_fluxes.py +41 -0
- hydpy/models/arma/arma_inlets.py +11 -0
- hydpy/models/arma/arma_logs.py +19 -0
- hydpy/models/arma/arma_model.py +461 -0
- hydpy/models/arma/arma_outlets.py +11 -0
- hydpy/models/arma_rimorido.py +381 -0
- hydpy/models/conv/__init__.py +12 -0
- hydpy/models/conv/conv_control.py +303 -0
- hydpy/models/conv/conv_derived.py +271 -0
- hydpy/models/conv/conv_fluxes.py +54 -0
- hydpy/models/conv/conv_inlets.py +11 -0
- hydpy/models/conv/conv_model.py +687 -0
- hydpy/models/conv/conv_outlets.py +11 -0
- hydpy/models/conv_idw.py +120 -0
- hydpy/models/conv_idw_ed.py +184 -0
- hydpy/models/conv_nn.py +112 -0
- hydpy/models/dam/__init__.py +16 -0
- hydpy/models/dam/dam_aides.py +17 -0
- hydpy/models/dam/dam_control.py +346 -0
- hydpy/models/dam/dam_derived.py +559 -0
- hydpy/models/dam/dam_factors.py +46 -0
- hydpy/models/dam/dam_fluxes.py +179 -0
- hydpy/models/dam/dam_inlets.py +29 -0
- hydpy/models/dam/dam_logs.py +52 -0
- hydpy/models/dam/dam_model.py +5011 -0
- hydpy/models/dam/dam_outlets.py +23 -0
- hydpy/models/dam/dam_receivers.py +41 -0
- hydpy/models/dam/dam_senders.py +23 -0
- hydpy/models/dam/dam_solver.py +75 -0
- hydpy/models/dam/dam_states.py +11 -0
- hydpy/models/dam_llake.py +499 -0
- hydpy/models/dam_lreservoir.py +548 -0
- hydpy/models/dam_lretention.py +343 -0
- hydpy/models/dam_pump.py +278 -0
- hydpy/models/dam_pump_sluice.py +339 -0
- hydpy/models/dam_sluice.py +319 -0
- hydpy/models/dam_v001.py +1127 -0
- hydpy/models/dam_v002.py +381 -0
- hydpy/models/dam_v003.py +422 -0
- hydpy/models/dam_v004.py +665 -0
- hydpy/models/dam_v005.py +479 -0
- hydpy/models/dummy/__init__.py +15 -0
- hydpy/models/dummy/dummy_control.py +22 -0
- hydpy/models/dummy/dummy_fluxes.py +11 -0
- hydpy/models/dummy/dummy_inlets.py +11 -0
- hydpy/models/dummy/dummy_inputs.py +41 -0
- hydpy/models/dummy/dummy_model.py +196 -0
- hydpy/models/dummy/dummy_outlets.py +11 -0
- hydpy/models/dummy_interceptedwater.py +85 -0
- hydpy/models/dummy_node2node.py +83 -0
- hydpy/models/dummy_snowalbedo.py +84 -0
- hydpy/models/dummy_snowcover.py +84 -0
- hydpy/models/dummy_snowycanopy.py +86 -0
- hydpy/models/dummy_soilwater.py +85 -0
- hydpy/models/evap/__init__.py +13 -0
- hydpy/models/evap/evap_control.py +354 -0
- hydpy/models/evap/evap_derived.py +236 -0
- hydpy/models/evap/evap_factors.py +188 -0
- hydpy/models/evap/evap_fixed.py +68 -0
- hydpy/models/evap/evap_fluxes.py +150 -0
- hydpy/models/evap/evap_inputs.py +54 -0
- hydpy/models/evap/evap_logs.py +91 -0
- hydpy/models/evap/evap_masks.py +48 -0
- hydpy/models/evap/evap_model.py +9170 -0
- hydpy/models/evap/evap_parameters.py +149 -0
- hydpy/models/evap/evap_sequences.py +32 -0
- hydpy/models/evap/evap_states.py +18 -0
- hydpy/models/evap_aet_hbv96.py +372 -0
- hydpy/models/evap_aet_minhas.py +331 -0
- hydpy/models/evap_aet_morsim.py +627 -0
- hydpy/models/evap_pet_ambav1.py +483 -0
- hydpy/models/evap_pet_hbv96.py +147 -0
- hydpy/models/evap_pet_m.py +94 -0
- hydpy/models/evap_pet_mlc.py +107 -0
- hydpy/models/evap_ret_fao56.py +265 -0
- hydpy/models/evap_ret_io.py +74 -0
- hydpy/models/evap_ret_tw2002.py +165 -0
- hydpy/models/exch/__init__.py +14 -0
- hydpy/models/exch/exch_control.py +262 -0
- hydpy/models/exch/exch_derived.py +36 -0
- hydpy/models/exch/exch_factors.py +26 -0
- hydpy/models/exch/exch_fluxes.py +48 -0
- hydpy/models/exch/exch_inlets.py +11 -0
- hydpy/models/exch/exch_logs.py +12 -0
- hydpy/models/exch/exch_model.py +451 -0
- hydpy/models/exch/exch_outlets.py +17 -0
- hydpy/models/exch/exch_receivers.py +17 -0
- hydpy/models/exch_branch_hbv96.py +186 -0
- hydpy/models/exch_waterlevel.py +73 -0
- hydpy/models/exch_weir_hbv96.py +609 -0
- hydpy/models/ga/__init__.py +14 -0
- hydpy/models/ga/ga_aides.py +17 -0
- hydpy/models/ga/ga_control.py +208 -0
- hydpy/models/ga/ga_derived.py +77 -0
- hydpy/models/ga/ga_fluxes.py +83 -0
- hydpy/models/ga/ga_inputs.py +26 -0
- hydpy/models/ga/ga_logs.py +17 -0
- hydpy/models/ga/ga_model.py +2952 -0
- hydpy/models/ga/ga_states.py +87 -0
- hydpy/models/ga_garto.py +1001 -0
- hydpy/models/ga_garto_submodel1.py +79 -0
- hydpy/models/gland/__init__.py +14 -0
- hydpy/models/gland/gland_control.py +90 -0
- hydpy/models/gland/gland_derived.py +113 -0
- hydpy/models/gland/gland_fluxes.py +137 -0
- hydpy/models/gland/gland_inputs.py +12 -0
- hydpy/models/gland/gland_model.py +1439 -0
- hydpy/models/gland/gland_outlets.py +11 -0
- hydpy/models/gland/gland_states.py +90 -0
- hydpy/models/gland_gr4.py +501 -0
- hydpy/models/gland_gr5.py +463 -0
- hydpy/models/gland_gr6.py +487 -0
- hydpy/models/hland/__init__.py +20 -0
- hydpy/models/hland/hland_aides.py +19 -0
- hydpy/models/hland/hland_constants.py +37 -0
- hydpy/models/hland/hland_control.py +1530 -0
- hydpy/models/hland/hland_derived.py +683 -0
- hydpy/models/hland/hland_factors.py +57 -0
- hydpy/models/hland/hland_fixed.py +42 -0
- hydpy/models/hland/hland_fluxes.py +279 -0
- hydpy/models/hland/hland_inputs.py +19 -0
- hydpy/models/hland/hland_masks.py +107 -0
- hydpy/models/hland/hland_model.py +4664 -0
- hydpy/models/hland/hland_outlets.py +11 -0
- hydpy/models/hland/hland_parameters.py +227 -0
- hydpy/models/hland/hland_sequences.py +382 -0
- hydpy/models/hland/hland_states.py +236 -0
- hydpy/models/hland_96.py +1812 -0
- hydpy/models/hland_96c.py +1196 -0
- hydpy/models/hland_96p.py +1204 -0
- hydpy/models/kinw/__init__.py +18 -0
- hydpy/models/kinw/kinw_aides.py +306 -0
- hydpy/models/kinw/kinw_control.py +270 -0
- hydpy/models/kinw/kinw_derived.py +197 -0
- hydpy/models/kinw/kinw_fixed.py +33 -0
- hydpy/models/kinw/kinw_fluxes.py +37 -0
- hydpy/models/kinw/kinw_inlets.py +11 -0
- hydpy/models/kinw/kinw_model.py +3026 -0
- hydpy/models/kinw/kinw_outlets.py +11 -0
- hydpy/models/kinw/kinw_solver.py +45 -0
- hydpy/models/kinw/kinw_states.py +17 -0
- hydpy/models/kinw_williams.py +1299 -0
- hydpy/models/kinw_williams_ext.py +768 -0
- hydpy/models/lland/__init__.py +42 -0
- hydpy/models/lland/lland_aides.py +38 -0
- hydpy/models/lland/lland_constants.py +88 -0
- hydpy/models/lland/lland_control.py +1329 -0
- hydpy/models/lland/lland_derived.py +380 -0
- hydpy/models/lland/lland_factors.py +18 -0
- hydpy/models/lland/lland_fixed.py +128 -0
- hydpy/models/lland/lland_fluxes.py +626 -0
- hydpy/models/lland/lland_inlets.py +12 -0
- hydpy/models/lland/lland_inputs.py +33 -0
- hydpy/models/lland/lland_logs.py +17 -0
- hydpy/models/lland/lland_masks.py +212 -0
- hydpy/models/lland/lland_model.py +7690 -0
- hydpy/models/lland/lland_outlets.py +12 -0
- hydpy/models/lland/lland_parameters.py +195 -0
- hydpy/models/lland/lland_sequences.py +67 -0
- hydpy/models/lland/lland_states.py +280 -0
- hydpy/models/lland_dd.py +2270 -0
- hydpy/models/lland_knauf.py +2156 -0
- hydpy/models/lland_knauf_ic.py +1920 -0
- hydpy/models/meteo/__init__.py +12 -0
- hydpy/models/meteo/meteo_control.py +154 -0
- hydpy/models/meteo/meteo_derived.py +159 -0
- hydpy/models/meteo/meteo_factors.py +88 -0
- hydpy/models/meteo/meteo_fixed.py +19 -0
- hydpy/models/meteo/meteo_fluxes.py +46 -0
- hydpy/models/meteo/meteo_inputs.py +47 -0
- hydpy/models/meteo/meteo_logs.py +30 -0
- hydpy/models/meteo/meteo_model.py +2904 -0
- hydpy/models/meteo/meteo_parameters.py +14 -0
- hydpy/models/meteo/meteo_sequences.py +22 -0
- hydpy/models/meteo_clear_glob_io.py +77 -0
- hydpy/models/meteo_glob_fao56.py +217 -0
- hydpy/models/meteo_glob_io.py +68 -0
- hydpy/models/meteo_glob_morsim.py +444 -0
- hydpy/models/meteo_precip_io.py +76 -0
- hydpy/models/meteo_psun_sun_glob_io.py +83 -0
- hydpy/models/meteo_sun_fao56.py +188 -0
- hydpy/models/meteo_sun_morsim.py +466 -0
- hydpy/models/meteo_temp_io.py +76 -0
- hydpy/models/musk/__init__.py +15 -0
- hydpy/models/musk/musk_control.py +328 -0
- hydpy/models/musk/musk_derived.py +32 -0
- hydpy/models/musk/musk_factors.py +53 -0
- hydpy/models/musk/musk_fluxes.py +24 -0
- hydpy/models/musk/musk_inlets.py +11 -0
- hydpy/models/musk/musk_masks.py +15 -0
- hydpy/models/musk/musk_model.py +838 -0
- hydpy/models/musk/musk_outlets.py +11 -0
- hydpy/models/musk/musk_sequences.py +88 -0
- hydpy/models/musk/musk_solver.py +68 -0
- hydpy/models/musk/musk_states.py +64 -0
- hydpy/models/musk_classic.py +228 -0
- hydpy/models/musk_mct.py +1247 -0
- hydpy/models/rconc/__init__.py +12 -0
- hydpy/models/rconc/rconc_control.py +473 -0
- hydpy/models/rconc/rconc_derived.py +76 -0
- hydpy/models/rconc/rconc_fluxes.py +19 -0
- hydpy/models/rconc/rconc_logs.py +74 -0
- hydpy/models/rconc/rconc_model.py +260 -0
- hydpy/models/rconc/rconc_states.py +11 -0
- hydpy/models/rconc_nash.py +48 -0
- hydpy/models/rconc_uh.py +53 -0
- hydpy/models/sw1d/__init__.py +17 -0
- hydpy/models/sw1d/sw1d_control.py +356 -0
- hydpy/models/sw1d/sw1d_derived.py +85 -0
- hydpy/models/sw1d/sw1d_factors.py +78 -0
- hydpy/models/sw1d/sw1d_fixed.py +12 -0
- hydpy/models/sw1d/sw1d_fluxes.py +55 -0
- hydpy/models/sw1d/sw1d_inlets.py +17 -0
- hydpy/models/sw1d/sw1d_model.py +3385 -0
- hydpy/models/sw1d/sw1d_outlets.py +11 -0
- hydpy/models/sw1d/sw1d_receivers.py +11 -0
- hydpy/models/sw1d/sw1d_senders.py +11 -0
- hydpy/models/sw1d/sw1d_states.py +23 -0
- hydpy/models/sw1d_channel.py +2051 -0
- hydpy/models/sw1d_gate_out.py +599 -0
- hydpy/models/sw1d_lias.py +105 -0
- hydpy/models/sw1d_lias_sluice.py +531 -0
- hydpy/models/sw1d_network.py +1219 -0
- hydpy/models/sw1d_pump.py +448 -0
- hydpy/models/sw1d_q_in.py +79 -0
- hydpy/models/sw1d_q_out.py +81 -0
- hydpy/models/sw1d_storage.py +78 -0
- hydpy/models/sw1d_weir_out.py +75 -0
- hydpy/models/test/__init__.py +14 -0
- hydpy/models/test/test_control.py +28 -0
- hydpy/models/test/test_fluxes.py +17 -0
- hydpy/models/test/test_model.py +201 -0
- hydpy/models/test/test_solver.py +48 -0
- hydpy/models/test/test_states.py +17 -0
- hydpy/models/test_discontinous.py +46 -0
- hydpy/models/test_stiff0d.py +47 -0
- hydpy/models/test_stiff1d.py +42 -0
- hydpy/models/whmod/__init__.py +21 -0
- hydpy/models/whmod/whmod_constants.py +77 -0
- hydpy/models/whmod/whmod_control.py +333 -0
- hydpy/models/whmod/whmod_derived.py +210 -0
- hydpy/models/whmod/whmod_factors.py +9 -0
- hydpy/models/whmod/whmod_fluxes.py +105 -0
- hydpy/models/whmod/whmod_inputs.py +15 -0
- hydpy/models/whmod/whmod_masks.py +178 -0
- hydpy/models/whmod/whmod_model.py +2091 -0
- hydpy/models/whmod/whmod_parameters.py +155 -0
- hydpy/models/whmod/whmod_sequences.py +193 -0
- hydpy/models/whmod/whmod_states.py +73 -0
- hydpy/models/whmod_rural.py +794 -0
- hydpy/models/whmod_urban.py +1011 -0
- hydpy/models/wland/__init__.py +43 -0
- hydpy/models/wland/wland_aides.py +55 -0
- hydpy/models/wland/wland_constants.py +103 -0
- hydpy/models/wland/wland_control.py +508 -0
- hydpy/models/wland/wland_derived.py +330 -0
- hydpy/models/wland/wland_factors.py +11 -0
- hydpy/models/wland/wland_fixed.py +12 -0
- hydpy/models/wland/wland_fluxes.py +166 -0
- hydpy/models/wland/wland_inputs.py +33 -0
- hydpy/models/wland/wland_masks.py +54 -0
- hydpy/models/wland/wland_model.py +3755 -0
- hydpy/models/wland/wland_outlets.py +11 -0
- hydpy/models/wland/wland_parameters.py +214 -0
- hydpy/models/wland/wland_sequences.py +108 -0
- hydpy/models/wland/wland_solver.py +45 -0
- hydpy/models/wland/wland_states.py +56 -0
- hydpy/models/wland_gd.py +888 -0
- hydpy/models/wland_wag.py +1244 -0
- hydpy/models/wq/__init__.py +14 -0
- hydpy/models/wq/wq_control.py +117 -0
- hydpy/models/wq/wq_derived.py +182 -0
- hydpy/models/wq/wq_factors.py +79 -0
- hydpy/models/wq/wq_fluxes.py +17 -0
- hydpy/models/wq/wq_model.py +1889 -0
- hydpy/models/wq_trapeze.py +168 -0
- hydpy/models/wq_trapeze_strickler.py +101 -0
- hydpy/models/wq_walrus.py +57 -0
- hydpy/py.typed +0 -0
- hydpy/tests/.coveragerc +22 -0
- hydpy/tests/__init__.py +0 -0
- hydpy/tests/check_consistency.py +32 -0
- hydpy/tests/hydpydoctestcustomize.pth +1 -0
- hydpy/tests/hydpydoctestcustomize.py +15 -0
- hydpy/tests/iotesting/__init__.py +0 -0
- hydpy/tests/run_doctests.py +233 -0
- hydpy-6.2.dev1.data/scripts/hyd.py +277 -0
- hydpy-6.2.dev1.dist-info/LICENSE +165 -0
- hydpy-6.2.dev1.dist-info/METADATA +163 -0
- hydpy-6.2.dev1.dist-info/RECORD +890 -0
- hydpy-6.2.dev1.dist-info/WHEEL +5 -0
- hydpy-6.2.dev1.dist-info/licenses_hydpy_installer.txt +42 -0
- hydpy-6.2.dev1.dist-info/top_level.txt +1 -0
|
Binary file
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
#!python
|
|
2
|
+
# distutils: define_macros=NPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION
|
|
3
|
+
# cython: language_level=3
|
|
4
|
+
# cython: cpow=True
|
|
5
|
+
# cython: boundscheck=False
|
|
6
|
+
# cython: wraparound=False
|
|
7
|
+
# cython: initializedcheck=False
|
|
8
|
+
# cython: cdivision=True
|
|
9
|
+
from typing import Optional
|
|
10
|
+
import numpy
|
|
11
|
+
cimport numpy
|
|
12
|
+
from libc.math cimport exp, fabs, log, sin, cos, tan, tanh, asin, acos, atan, isnan, isinf
|
|
13
|
+
from libc.math cimport NAN as nan
|
|
14
|
+
from libc.math cimport INFINITY as inf
|
|
15
|
+
import cython
|
|
16
|
+
from cpython.mem cimport PyMem_Malloc
|
|
17
|
+
from cpython.mem cimport PyMem_Realloc
|
|
18
|
+
from cpython.mem cimport PyMem_Free
|
|
19
|
+
from hydpy.cythons.autogen cimport configutils
|
|
20
|
+
from hydpy.cythons.autogen cimport interfaceutils
|
|
21
|
+
from hydpy.cythons.autogen cimport interputils
|
|
22
|
+
from hydpy.cythons.autogen import pointerutils
|
|
23
|
+
from hydpy.cythons.autogen cimport pointerutils
|
|
24
|
+
from hydpy.cythons.autogen cimport quadutils
|
|
25
|
+
from hydpy.cythons.autogen cimport rootutils
|
|
26
|
+
from hydpy.cythons.autogen cimport smoothutils
|
|
27
|
+
from hydpy.cythons.autogen cimport masterinterface
|
|
28
|
+
ctypedef void (*CallbackType) (Model) noexcept nogil
|
|
29
|
+
cdef class CallbackWrapper:
|
|
30
|
+
cdef CallbackType callback
|
|
31
|
+
@cython.final
|
|
32
|
+
cdef class Parameters:
|
|
33
|
+
cdef public ControlParameters control
|
|
34
|
+
cdef public DerivedParameters derived
|
|
35
|
+
@cython.final
|
|
36
|
+
cdef class ControlParameters:
|
|
37
|
+
cdef public numpy.int64_t nmbhru
|
|
38
|
+
cdef public double[:] hruarea
|
|
39
|
+
cdef public double[:] hrualtitude
|
|
40
|
+
cdef public double[:] evapotranspirationfactor
|
|
41
|
+
cdef public double[:] altitudefactor
|
|
42
|
+
cdef public double[:] precipitationfactor
|
|
43
|
+
cdef public double[:] airtemperaturefactor
|
|
44
|
+
@cython.final
|
|
45
|
+
cdef class DerivedParameters:
|
|
46
|
+
cdef public double[:] hruareafraction
|
|
47
|
+
cdef public double altitude
|
|
48
|
+
@cython.final
|
|
49
|
+
cdef class Sequences:
|
|
50
|
+
cdef public InputSequences inputs
|
|
51
|
+
cdef public FactorSequences factors
|
|
52
|
+
cdef public FluxSequences fluxes
|
|
53
|
+
@cython.final
|
|
54
|
+
cdef class InputSequences:
|
|
55
|
+
cdef public double normalairtemperature
|
|
56
|
+
cdef public numpy.int64_t _normalairtemperature_ndim
|
|
57
|
+
cdef public numpy.int64_t _normalairtemperature_length
|
|
58
|
+
cdef public bint _normalairtemperature_ramflag
|
|
59
|
+
cdef public double[:] _normalairtemperature_array
|
|
60
|
+
cdef public bint _normalairtemperature_diskflag_reading
|
|
61
|
+
cdef public bint _normalairtemperature_diskflag_writing
|
|
62
|
+
cdef public double[:] _normalairtemperature_ncarray
|
|
63
|
+
cdef public bint _normalairtemperature_inputflag
|
|
64
|
+
cdef double *_normalairtemperature_inputpointer
|
|
65
|
+
cdef public double normalevapotranspiration
|
|
66
|
+
cdef public numpy.int64_t _normalevapotranspiration_ndim
|
|
67
|
+
cdef public numpy.int64_t _normalevapotranspiration_length
|
|
68
|
+
cdef public bint _normalevapotranspiration_ramflag
|
|
69
|
+
cdef public double[:] _normalevapotranspiration_array
|
|
70
|
+
cdef public bint _normalevapotranspiration_diskflag_reading
|
|
71
|
+
cdef public bint _normalevapotranspiration_diskflag_writing
|
|
72
|
+
cdef public double[:] _normalevapotranspiration_ncarray
|
|
73
|
+
cdef public bint _normalevapotranspiration_inputflag
|
|
74
|
+
cdef double *_normalevapotranspiration_inputpointer
|
|
75
|
+
cpdef inline void load_data(self, numpy.int64_t idx) noexcept nogil
|
|
76
|
+
cpdef inline void save_data(self, numpy.int64_t idx) noexcept nogil
|
|
77
|
+
cpdef inline set_pointerinput(self, str name, pointerutils.PDouble value)
|
|
78
|
+
@cython.final
|
|
79
|
+
cdef class FactorSequences:
|
|
80
|
+
cdef public double meanairtemperature
|
|
81
|
+
cdef public numpy.int64_t _meanairtemperature_ndim
|
|
82
|
+
cdef public numpy.int64_t _meanairtemperature_length
|
|
83
|
+
cdef public bint _meanairtemperature_ramflag
|
|
84
|
+
cdef public double[:] _meanairtemperature_array
|
|
85
|
+
cdef public bint _meanairtemperature_diskflag_reading
|
|
86
|
+
cdef public bint _meanairtemperature_diskflag_writing
|
|
87
|
+
cdef public double[:] _meanairtemperature_ncarray
|
|
88
|
+
cdef public bint _meanairtemperature_outputflag
|
|
89
|
+
cdef double *_meanairtemperature_outputpointer
|
|
90
|
+
cpdef inline void load_data(self, numpy.int64_t idx) noexcept nogil
|
|
91
|
+
cpdef inline void save_data(self, numpy.int64_t idx) noexcept nogil
|
|
92
|
+
cpdef inline set_pointeroutput(self, str name, pointerutils.PDouble value)
|
|
93
|
+
cpdef inline void update_outputs(self) noexcept nogil
|
|
94
|
+
@cython.final
|
|
95
|
+
cdef class FluxSequences:
|
|
96
|
+
cdef public double[:] precipitation
|
|
97
|
+
cdef public numpy.int64_t _precipitation_ndim
|
|
98
|
+
cdef public numpy.int64_t _precipitation_length
|
|
99
|
+
cdef public numpy.int64_t _precipitation_length_0
|
|
100
|
+
cdef public bint _precipitation_ramflag
|
|
101
|
+
cdef public double[:,:] _precipitation_array
|
|
102
|
+
cdef public bint _precipitation_diskflag_reading
|
|
103
|
+
cdef public bint _precipitation_diskflag_writing
|
|
104
|
+
cdef public double[:] _precipitation_ncarray
|
|
105
|
+
cdef public double[:] referenceevapotranspiration
|
|
106
|
+
cdef public numpy.int64_t _referenceevapotranspiration_ndim
|
|
107
|
+
cdef public numpy.int64_t _referenceevapotranspiration_length
|
|
108
|
+
cdef public numpy.int64_t _referenceevapotranspiration_length_0
|
|
109
|
+
cdef public bint _referenceevapotranspiration_ramflag
|
|
110
|
+
cdef public double[:,:] _referenceevapotranspiration_array
|
|
111
|
+
cdef public bint _referenceevapotranspiration_diskflag_reading
|
|
112
|
+
cdef public bint _referenceevapotranspiration_diskflag_writing
|
|
113
|
+
cdef public double[:] _referenceevapotranspiration_ncarray
|
|
114
|
+
cdef public double[:] potentialevapotranspiration
|
|
115
|
+
cdef public numpy.int64_t _potentialevapotranspiration_ndim
|
|
116
|
+
cdef public numpy.int64_t _potentialevapotranspiration_length
|
|
117
|
+
cdef public numpy.int64_t _potentialevapotranspiration_length_0
|
|
118
|
+
cdef public bint _potentialevapotranspiration_ramflag
|
|
119
|
+
cdef public double[:,:] _potentialevapotranspiration_array
|
|
120
|
+
cdef public bint _potentialevapotranspiration_diskflag_reading
|
|
121
|
+
cdef public bint _potentialevapotranspiration_diskflag_writing
|
|
122
|
+
cdef public double[:] _potentialevapotranspiration_ncarray
|
|
123
|
+
cdef public double meanpotentialevapotranspiration
|
|
124
|
+
cdef public numpy.int64_t _meanpotentialevapotranspiration_ndim
|
|
125
|
+
cdef public numpy.int64_t _meanpotentialevapotranspiration_length
|
|
126
|
+
cdef public bint _meanpotentialevapotranspiration_ramflag
|
|
127
|
+
cdef public double[:] _meanpotentialevapotranspiration_array
|
|
128
|
+
cdef public bint _meanpotentialevapotranspiration_diskflag_reading
|
|
129
|
+
cdef public bint _meanpotentialevapotranspiration_diskflag_writing
|
|
130
|
+
cdef public double[:] _meanpotentialevapotranspiration_ncarray
|
|
131
|
+
cdef public bint _meanpotentialevapotranspiration_outputflag
|
|
132
|
+
cdef double *_meanpotentialevapotranspiration_outputpointer
|
|
133
|
+
cpdef inline void load_data(self, numpy.int64_t idx) noexcept nogil
|
|
134
|
+
cpdef inline void save_data(self, numpy.int64_t idx) noexcept nogil
|
|
135
|
+
cpdef inline set_pointeroutput(self, str name, pointerutils.PDouble value)
|
|
136
|
+
cpdef inline void update_outputs(self) noexcept nogil
|
|
137
|
+
@cython.final
|
|
138
|
+
cdef class Model(masterinterface.MasterInterface):
|
|
139
|
+
cdef public Parameters parameters
|
|
140
|
+
cdef public Sequences sequences
|
|
141
|
+
cdef public masterinterface.MasterInterface precipmodel
|
|
142
|
+
cdef public numpy.npy_bool precipmodel_is_mainmodel
|
|
143
|
+
cdef public numpy.int64_t precipmodel_typeid
|
|
144
|
+
cdef public masterinterface.MasterInterface tempmodel
|
|
145
|
+
cdef public numpy.npy_bool tempmodel_is_mainmodel
|
|
146
|
+
cdef public numpy.int64_t tempmodel_typeid
|
|
147
|
+
cpdef inline void simulate(self, numpy.int64_t idx) noexcept nogil
|
|
148
|
+
cpdef void reset_reuseflags(self) noexcept nogil
|
|
149
|
+
cpdef void load_data(self, numpy.int64_t idx) noexcept nogil
|
|
150
|
+
cpdef void save_data(self, numpy.int64_t idx) noexcept nogil
|
|
151
|
+
cpdef void new2old(self) noexcept nogil
|
|
152
|
+
cpdef inline void run(self) noexcept nogil
|
|
153
|
+
cpdef inline void update_inlets(self) noexcept nogil
|
|
154
|
+
cpdef inline void update_outlets(self) noexcept nogil
|
|
155
|
+
cpdef inline void update_receivers(self, numpy.int64_t idx) noexcept nogil
|
|
156
|
+
cpdef inline void update_senders(self, numpy.int64_t idx) noexcept nogil
|
|
157
|
+
cpdef inline void update_outputs(self) noexcept nogil
|
|
158
|
+
cpdef inline void calc_meanairtemperature_v1(self) noexcept nogil
|
|
159
|
+
cpdef inline void calc_precipitation_v1(self) noexcept nogil
|
|
160
|
+
cpdef inline void calc_referenceevapotranspiration_v5(self) noexcept nogil
|
|
161
|
+
cpdef inline void adjust_referenceevapotranspiration_v1(self) noexcept nogil
|
|
162
|
+
cpdef inline void calc_potentialevapotranspiration_v3(self) noexcept nogil
|
|
163
|
+
cpdef inline void calc_meanpotentialevapotranspiration_v1(self) noexcept nogil
|
|
164
|
+
cpdef void determine_potentialevapotranspiration_v1(self) noexcept nogil
|
|
165
|
+
cpdef double get_potentialevapotranspiration_v2(self, numpy.int64_t k) noexcept nogil
|
|
166
|
+
cpdef double get_meanpotentialevapotranspiration_v2(self) noexcept nogil
|
|
167
|
+
cpdef inline void calc_meanairtemperature_tempmodel_v1(self, masterinterface.MasterInterface submodel) noexcept nogil
|
|
168
|
+
cpdef inline void calc_meanairtemperature_tempmodel_v2(self, masterinterface.MasterInterface submodel) noexcept nogil
|
|
169
|
+
cpdef inline void calc_precipitation_precipmodel_v1(self, masterinterface.MasterInterface submodel) noexcept nogil
|
|
170
|
+
cpdef inline void calc_precipitation_precipmodel_v2(self, masterinterface.MasterInterface submodel) noexcept nogil
|
|
171
|
+
cpdef inline void calc_meanairtemperature(self) noexcept nogil
|
|
172
|
+
cpdef inline void calc_precipitation(self) noexcept nogil
|
|
173
|
+
cpdef inline void calc_referenceevapotranspiration(self) noexcept nogil
|
|
174
|
+
cpdef inline void adjust_referenceevapotranspiration(self) noexcept nogil
|
|
175
|
+
cpdef inline void calc_potentialevapotranspiration(self) noexcept nogil
|
|
176
|
+
cpdef inline void calc_meanpotentialevapotranspiration(self) noexcept nogil
|
|
177
|
+
cpdef void determine_potentialevapotranspiration(self) noexcept nogil
|
|
178
|
+
cpdef double get_potentialevapotranspiration(self, numpy.int64_t k) noexcept nogil
|
|
179
|
+
cpdef double get_meanpotentialevapotranspiration(self) noexcept nogil
|
|
@@ -0,0 +1,328 @@
|
|
|
1
|
+
#!python
|
|
2
|
+
# distutils: define_macros=NPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION
|
|
3
|
+
# cython: language_level=3
|
|
4
|
+
# cython: cpow=True
|
|
5
|
+
# cython: boundscheck=False
|
|
6
|
+
# cython: wraparound=False
|
|
7
|
+
# cython: initializedcheck=False
|
|
8
|
+
# cython: cdivision=True
|
|
9
|
+
from typing import Optional
|
|
10
|
+
import numpy
|
|
11
|
+
cimport numpy
|
|
12
|
+
from libc.math cimport exp, fabs, log, sin, cos, tan, tanh, asin, acos, atan, isnan, isinf
|
|
13
|
+
from libc.math cimport NAN as nan
|
|
14
|
+
from libc.math cimport INFINITY as inf
|
|
15
|
+
import cython
|
|
16
|
+
from cpython.mem cimport PyMem_Malloc
|
|
17
|
+
from cpython.mem cimport PyMem_Realloc
|
|
18
|
+
from cpython.mem cimport PyMem_Free
|
|
19
|
+
from hydpy.cythons.autogen cimport configutils
|
|
20
|
+
from hydpy.cythons.autogen cimport interfaceutils
|
|
21
|
+
from hydpy.cythons.autogen cimport interputils
|
|
22
|
+
from hydpy.cythons.autogen import pointerutils
|
|
23
|
+
from hydpy.cythons.autogen cimport pointerutils
|
|
24
|
+
from hydpy.cythons.autogen cimport quadutils
|
|
25
|
+
from hydpy.cythons.autogen cimport rootutils
|
|
26
|
+
from hydpy.cythons.autogen cimport smoothutils
|
|
27
|
+
from hydpy.cythons.autogen cimport masterinterface
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
cdef void do_nothing(Model model) noexcept nogil:
|
|
31
|
+
pass
|
|
32
|
+
|
|
33
|
+
cpdef get_wrapper():
|
|
34
|
+
cdef CallbackWrapper wrapper = CallbackWrapper()
|
|
35
|
+
wrapper.callback = do_nothing
|
|
36
|
+
return wrapper
|
|
37
|
+
|
|
38
|
+
@cython.final
|
|
39
|
+
cdef class Parameters:
|
|
40
|
+
pass
|
|
41
|
+
@cython.final
|
|
42
|
+
cdef class ControlParameters:
|
|
43
|
+
pass
|
|
44
|
+
@cython.final
|
|
45
|
+
cdef class DerivedParameters:
|
|
46
|
+
pass
|
|
47
|
+
@cython.final
|
|
48
|
+
cdef class Sequences:
|
|
49
|
+
pass
|
|
50
|
+
@cython.final
|
|
51
|
+
cdef class InputSequences:
|
|
52
|
+
cpdef inline void load_data(self, numpy.int64_t idx) noexcept nogil:
|
|
53
|
+
cdef numpy.int64_t k
|
|
54
|
+
if self._normalairtemperature_inputflag:
|
|
55
|
+
self.normalairtemperature = self._normalairtemperature_inputpointer[0]
|
|
56
|
+
elif self._normalairtemperature_diskflag_reading:
|
|
57
|
+
self.normalairtemperature = self._normalairtemperature_ncarray[0]
|
|
58
|
+
elif self._normalairtemperature_ramflag:
|
|
59
|
+
self.normalairtemperature = self._normalairtemperature_array[idx]
|
|
60
|
+
if self._normalevapotranspiration_inputflag:
|
|
61
|
+
self.normalevapotranspiration = self._normalevapotranspiration_inputpointer[0]
|
|
62
|
+
elif self._normalevapotranspiration_diskflag_reading:
|
|
63
|
+
self.normalevapotranspiration = self._normalevapotranspiration_ncarray[0]
|
|
64
|
+
elif self._normalevapotranspiration_ramflag:
|
|
65
|
+
self.normalevapotranspiration = self._normalevapotranspiration_array[idx]
|
|
66
|
+
cpdef inline void save_data(self, numpy.int64_t idx) noexcept nogil:
|
|
67
|
+
cdef numpy.int64_t k
|
|
68
|
+
if self._normalairtemperature_diskflag_writing:
|
|
69
|
+
self._normalairtemperature_ncarray[0] = self.normalairtemperature
|
|
70
|
+
if self._normalairtemperature_ramflag:
|
|
71
|
+
self._normalairtemperature_array[idx] = self.normalairtemperature
|
|
72
|
+
if self._normalevapotranspiration_diskflag_writing:
|
|
73
|
+
self._normalevapotranspiration_ncarray[0] = self.normalevapotranspiration
|
|
74
|
+
if self._normalevapotranspiration_ramflag:
|
|
75
|
+
self._normalevapotranspiration_array[idx] = self.normalevapotranspiration
|
|
76
|
+
cpdef inline set_pointerinput(self, str name, pointerutils.PDouble value):
|
|
77
|
+
if name == "normalairtemperature":
|
|
78
|
+
self._normalairtemperature_inputpointer = value.p_value
|
|
79
|
+
if name == "normalevapotranspiration":
|
|
80
|
+
self._normalevapotranspiration_inputpointer = value.p_value
|
|
81
|
+
@cython.final
|
|
82
|
+
cdef class FactorSequences:
|
|
83
|
+
cpdef inline void load_data(self, numpy.int64_t idx) noexcept nogil:
|
|
84
|
+
cdef numpy.int64_t k
|
|
85
|
+
if self._meanairtemperature_diskflag_reading:
|
|
86
|
+
self.meanairtemperature = self._meanairtemperature_ncarray[0]
|
|
87
|
+
elif self._meanairtemperature_ramflag:
|
|
88
|
+
self.meanairtemperature = self._meanairtemperature_array[idx]
|
|
89
|
+
cpdef inline void save_data(self, numpy.int64_t idx) noexcept nogil:
|
|
90
|
+
cdef numpy.int64_t k
|
|
91
|
+
if self._meanairtemperature_diskflag_writing:
|
|
92
|
+
self._meanairtemperature_ncarray[0] = self.meanairtemperature
|
|
93
|
+
if self._meanairtemperature_ramflag:
|
|
94
|
+
self._meanairtemperature_array[idx] = self.meanairtemperature
|
|
95
|
+
cpdef inline set_pointeroutput(self, str name, pointerutils.PDouble value):
|
|
96
|
+
if name == "meanairtemperature":
|
|
97
|
+
self._meanairtemperature_outputpointer = value.p_value
|
|
98
|
+
cpdef inline void update_outputs(self) noexcept nogil:
|
|
99
|
+
if self._meanairtemperature_outputflag:
|
|
100
|
+
self._meanairtemperature_outputpointer[0] = self.meanairtemperature
|
|
101
|
+
@cython.final
|
|
102
|
+
cdef class FluxSequences:
|
|
103
|
+
cpdef inline void load_data(self, numpy.int64_t idx) noexcept nogil:
|
|
104
|
+
cdef numpy.int64_t jdx0
|
|
105
|
+
cdef numpy.int64_t k
|
|
106
|
+
if self._precipitation_diskflag_reading:
|
|
107
|
+
k = 0
|
|
108
|
+
for jdx0 in range(self._precipitation_length_0):
|
|
109
|
+
self.precipitation[jdx0] = self._precipitation_ncarray[k]
|
|
110
|
+
k += 1
|
|
111
|
+
elif self._precipitation_ramflag:
|
|
112
|
+
for jdx0 in range(self._precipitation_length_0):
|
|
113
|
+
self.precipitation[jdx0] = self._precipitation_array[idx, jdx0]
|
|
114
|
+
if self._referenceevapotranspiration_diskflag_reading:
|
|
115
|
+
k = 0
|
|
116
|
+
for jdx0 in range(self._referenceevapotranspiration_length_0):
|
|
117
|
+
self.referenceevapotranspiration[jdx0] = self._referenceevapotranspiration_ncarray[k]
|
|
118
|
+
k += 1
|
|
119
|
+
elif self._referenceevapotranspiration_ramflag:
|
|
120
|
+
for jdx0 in range(self._referenceevapotranspiration_length_0):
|
|
121
|
+
self.referenceevapotranspiration[jdx0] = self._referenceevapotranspiration_array[idx, jdx0]
|
|
122
|
+
if self._potentialevapotranspiration_diskflag_reading:
|
|
123
|
+
k = 0
|
|
124
|
+
for jdx0 in range(self._potentialevapotranspiration_length_0):
|
|
125
|
+
self.potentialevapotranspiration[jdx0] = self._potentialevapotranspiration_ncarray[k]
|
|
126
|
+
k += 1
|
|
127
|
+
elif self._potentialevapotranspiration_ramflag:
|
|
128
|
+
for jdx0 in range(self._potentialevapotranspiration_length_0):
|
|
129
|
+
self.potentialevapotranspiration[jdx0] = self._potentialevapotranspiration_array[idx, jdx0]
|
|
130
|
+
if self._meanpotentialevapotranspiration_diskflag_reading:
|
|
131
|
+
self.meanpotentialevapotranspiration = self._meanpotentialevapotranspiration_ncarray[0]
|
|
132
|
+
elif self._meanpotentialevapotranspiration_ramflag:
|
|
133
|
+
self.meanpotentialevapotranspiration = self._meanpotentialevapotranspiration_array[idx]
|
|
134
|
+
cpdef inline void save_data(self, numpy.int64_t idx) noexcept nogil:
|
|
135
|
+
cdef numpy.int64_t jdx0
|
|
136
|
+
cdef numpy.int64_t k
|
|
137
|
+
if self._precipitation_diskflag_writing:
|
|
138
|
+
k = 0
|
|
139
|
+
for jdx0 in range(self._precipitation_length_0):
|
|
140
|
+
self._precipitation_ncarray[k] = self.precipitation[jdx0]
|
|
141
|
+
k += 1
|
|
142
|
+
if self._precipitation_ramflag:
|
|
143
|
+
for jdx0 in range(self._precipitation_length_0):
|
|
144
|
+
self._precipitation_array[idx, jdx0] = self.precipitation[jdx0]
|
|
145
|
+
if self._referenceevapotranspiration_diskflag_writing:
|
|
146
|
+
k = 0
|
|
147
|
+
for jdx0 in range(self._referenceevapotranspiration_length_0):
|
|
148
|
+
self._referenceevapotranspiration_ncarray[k] = self.referenceevapotranspiration[jdx0]
|
|
149
|
+
k += 1
|
|
150
|
+
if self._referenceevapotranspiration_ramflag:
|
|
151
|
+
for jdx0 in range(self._referenceevapotranspiration_length_0):
|
|
152
|
+
self._referenceevapotranspiration_array[idx, jdx0] = self.referenceevapotranspiration[jdx0]
|
|
153
|
+
if self._potentialevapotranspiration_diskflag_writing:
|
|
154
|
+
k = 0
|
|
155
|
+
for jdx0 in range(self._potentialevapotranspiration_length_0):
|
|
156
|
+
self._potentialevapotranspiration_ncarray[k] = self.potentialevapotranspiration[jdx0]
|
|
157
|
+
k += 1
|
|
158
|
+
if self._potentialevapotranspiration_ramflag:
|
|
159
|
+
for jdx0 in range(self._potentialevapotranspiration_length_0):
|
|
160
|
+
self._potentialevapotranspiration_array[idx, jdx0] = self.potentialevapotranspiration[jdx0]
|
|
161
|
+
if self._meanpotentialevapotranspiration_diskflag_writing:
|
|
162
|
+
self._meanpotentialevapotranspiration_ncarray[0] = self.meanpotentialevapotranspiration
|
|
163
|
+
if self._meanpotentialevapotranspiration_ramflag:
|
|
164
|
+
self._meanpotentialevapotranspiration_array[idx] = self.meanpotentialevapotranspiration
|
|
165
|
+
cpdef inline set_pointeroutput(self, str name, pointerutils.PDouble value):
|
|
166
|
+
if name == "meanpotentialevapotranspiration":
|
|
167
|
+
self._meanpotentialevapotranspiration_outputpointer = value.p_value
|
|
168
|
+
cpdef inline void update_outputs(self) noexcept nogil:
|
|
169
|
+
if self._meanpotentialevapotranspiration_outputflag:
|
|
170
|
+
self._meanpotentialevapotranspiration_outputpointer[0] = self.meanpotentialevapotranspiration
|
|
171
|
+
@cython.final
|
|
172
|
+
cdef class Model(masterinterface.MasterInterface):
|
|
173
|
+
def __init__(self):
|
|
174
|
+
super().__init__()
|
|
175
|
+
self.precipmodel = None
|
|
176
|
+
self.precipmodel_is_mainmodel = False
|
|
177
|
+
self.tempmodel = None
|
|
178
|
+
self.tempmodel_is_mainmodel = False
|
|
179
|
+
def get_precipmodel(self) -> masterinterface.MasterInterface | None:
|
|
180
|
+
return self.precipmodel
|
|
181
|
+
def set_precipmodel(self, precipmodel: masterinterface.MasterInterface | None) -> None:
|
|
182
|
+
self.precipmodel = precipmodel
|
|
183
|
+
def get_tempmodel(self) -> masterinterface.MasterInterface | None:
|
|
184
|
+
return self.tempmodel
|
|
185
|
+
def set_tempmodel(self, tempmodel: masterinterface.MasterInterface | None) -> None:
|
|
186
|
+
self.tempmodel = tempmodel
|
|
187
|
+
cpdef inline void simulate(self, numpy.int64_t idx) noexcept nogil:
|
|
188
|
+
self.idx_sim = idx
|
|
189
|
+
self.reset_reuseflags()
|
|
190
|
+
self.load_data(idx)
|
|
191
|
+
self.run()
|
|
192
|
+
self.update_outputs()
|
|
193
|
+
cpdef void reset_reuseflags(self) noexcept nogil:
|
|
194
|
+
if (self.precipmodel is not None) and not self.precipmodel_is_mainmodel:
|
|
195
|
+
self.precipmodel.reset_reuseflags()
|
|
196
|
+
if (self.tempmodel is not None) and not self.tempmodel_is_mainmodel:
|
|
197
|
+
self.tempmodel.reset_reuseflags()
|
|
198
|
+
cpdef void load_data(self, numpy.int64_t idx) noexcept nogil:
|
|
199
|
+
self.idx_sim = idx
|
|
200
|
+
self.sequences.inputs.load_data(idx)
|
|
201
|
+
if (self.precipmodel is not None) and not self.precipmodel_is_mainmodel:
|
|
202
|
+
self.precipmodel.load_data(idx)
|
|
203
|
+
if (self.tempmodel is not None) and not self.tempmodel_is_mainmodel:
|
|
204
|
+
self.tempmodel.load_data(idx)
|
|
205
|
+
cpdef void save_data(self, numpy.int64_t idx) noexcept nogil:
|
|
206
|
+
self.idx_sim = idx
|
|
207
|
+
self.sequences.inputs.save_data(idx)
|
|
208
|
+
self.sequences.factors.save_data(idx)
|
|
209
|
+
self.sequences.fluxes.save_data(idx)
|
|
210
|
+
if (self.precipmodel is not None) and not self.precipmodel_is_mainmodel:
|
|
211
|
+
self.precipmodel.save_data(idx)
|
|
212
|
+
if (self.tempmodel is not None) and not self.tempmodel_is_mainmodel:
|
|
213
|
+
self.tempmodel.save_data(idx)
|
|
214
|
+
cpdef void new2old(self) noexcept nogil:
|
|
215
|
+
if (self.precipmodel is not None) and not self.precipmodel_is_mainmodel:
|
|
216
|
+
self.precipmodel.new2old()
|
|
217
|
+
if (self.tempmodel is not None) and not self.tempmodel_is_mainmodel:
|
|
218
|
+
self.tempmodel.new2old()
|
|
219
|
+
cpdef inline void run(self) noexcept nogil:
|
|
220
|
+
self.calc_meanairtemperature_v1()
|
|
221
|
+
self.calc_precipitation_v1()
|
|
222
|
+
self.calc_referenceevapotranspiration_v5()
|
|
223
|
+
self.adjust_referenceevapotranspiration_v1()
|
|
224
|
+
self.calc_potentialevapotranspiration_v3()
|
|
225
|
+
self.calc_meanpotentialevapotranspiration_v1()
|
|
226
|
+
cpdef inline void update_inlets(self) noexcept nogil:
|
|
227
|
+
pass
|
|
228
|
+
cpdef inline void update_outlets(self) noexcept nogil:
|
|
229
|
+
pass
|
|
230
|
+
cpdef inline void update_receivers(self, numpy.int64_t idx) noexcept nogil:
|
|
231
|
+
self.idx_sim = idx
|
|
232
|
+
pass
|
|
233
|
+
cpdef inline void update_senders(self, numpy.int64_t idx) noexcept nogil:
|
|
234
|
+
self.idx_sim = idx
|
|
235
|
+
pass
|
|
236
|
+
cpdef inline void update_outputs(self) noexcept nogil:
|
|
237
|
+
self.sequences.factors.update_outputs()
|
|
238
|
+
self.sequences.fluxes.update_outputs()
|
|
239
|
+
cpdef inline void calc_meanairtemperature_v1(self) noexcept nogil:
|
|
240
|
+
if self.tempmodel_typeid == 1:
|
|
241
|
+
self.calc_meanairtemperature_tempmodel_v1( (<masterinterface.MasterInterface>self.tempmodel) )
|
|
242
|
+
elif self.tempmodel_typeid == 2:
|
|
243
|
+
self.calc_meanairtemperature_tempmodel_v2( (<masterinterface.MasterInterface>self.tempmodel) )
|
|
244
|
+
cpdef inline void calc_precipitation_v1(self) noexcept nogil:
|
|
245
|
+
if self.precipmodel_typeid == 1:
|
|
246
|
+
self.calc_precipitation_precipmodel_v1( (<masterinterface.MasterInterface>self.precipmodel) )
|
|
247
|
+
elif self.precipmodel_typeid == 2:
|
|
248
|
+
self.calc_precipitation_precipmodel_v2( (<masterinterface.MasterInterface>self.precipmodel) )
|
|
249
|
+
cpdef inline void calc_referenceevapotranspiration_v5(self) noexcept nogil:
|
|
250
|
+
cdef numpy.int64_t k
|
|
251
|
+
for k in range(self.parameters.control.nmbhru):
|
|
252
|
+
self.sequences.fluxes.referenceevapotranspiration[k] = self.sequences.inputs.normalevapotranspiration * ( 1.0 + self.parameters.control.airtemperaturefactor[k] * (self.sequences.factors.meanairtemperature - self.sequences.inputs.normalairtemperature) )
|
|
253
|
+
self.sequences.fluxes.referenceevapotranspiration[k] = min( max(self.sequences.fluxes.referenceevapotranspiration[k], 0.0), 2.0 * self.sequences.inputs.normalevapotranspiration, )
|
|
254
|
+
cpdef inline void adjust_referenceevapotranspiration_v1(self) noexcept nogil:
|
|
255
|
+
cdef numpy.int64_t k
|
|
256
|
+
for k in range(self.parameters.control.nmbhru):
|
|
257
|
+
self.sequences.fluxes.referenceevapotranspiration[k] = self.sequences.fluxes.referenceevapotranspiration[k] * (self.parameters.control.evapotranspirationfactor[k])
|
|
258
|
+
cpdef inline void calc_potentialevapotranspiration_v3(self) noexcept nogil:
|
|
259
|
+
cdef numpy.int64_t k
|
|
260
|
+
for k in range(self.parameters.control.nmbhru):
|
|
261
|
+
self.sequences.fluxes.potentialevapotranspiration[k] = self.sequences.fluxes.referenceevapotranspiration[k] * ( 1.0 - self.parameters.control.altitudefactor[k] / 100.0 * (self.parameters.control.hrualtitude[k] - self.parameters.derived.altitude) )
|
|
262
|
+
if self.sequences.fluxes.potentialevapotranspiration[k] <= 0.0:
|
|
263
|
+
self.sequences.fluxes.potentialevapotranspiration[k] = 0.0
|
|
264
|
+
else:
|
|
265
|
+
self.sequences.fluxes.potentialevapotranspiration[k] = self.sequences.fluxes.potentialevapotranspiration[k] * (exp( -self.parameters.control.precipitationfactor[k] * self.sequences.fluxes.precipitation[k] ))
|
|
266
|
+
cpdef inline void calc_meanpotentialevapotranspiration_v1(self) noexcept nogil:
|
|
267
|
+
cdef numpy.int64_t s
|
|
268
|
+
self.sequences.fluxes.meanpotentialevapotranspiration = 0.0
|
|
269
|
+
for s in range(self.parameters.control.nmbhru):
|
|
270
|
+
self.sequences.fluxes.meanpotentialevapotranspiration = self.sequences.fluxes.meanpotentialevapotranspiration + (( self.parameters.derived.hruareafraction[s] * self.sequences.fluxes.potentialevapotranspiration[s] ))
|
|
271
|
+
cpdef void determine_potentialevapotranspiration_v1(self) noexcept nogil:
|
|
272
|
+
self.run()
|
|
273
|
+
cpdef double get_potentialevapotranspiration_v2(self, numpy.int64_t k) noexcept nogil:
|
|
274
|
+
return self.sequences.fluxes.potentialevapotranspiration[k]
|
|
275
|
+
cpdef double get_meanpotentialevapotranspiration_v2(self) noexcept nogil:
|
|
276
|
+
return self.sequences.fluxes.meanpotentialevapotranspiration
|
|
277
|
+
cpdef inline void calc_meanairtemperature_tempmodel_v1(self, masterinterface.MasterInterface submodel) noexcept nogil:
|
|
278
|
+
self.sequences.factors.meanairtemperature = submodel.get_meantemperature()
|
|
279
|
+
cpdef inline void calc_meanairtemperature_tempmodel_v2(self, masterinterface.MasterInterface submodel) noexcept nogil:
|
|
280
|
+
submodel.determine_temperature()
|
|
281
|
+
self.sequences.factors.meanairtemperature = submodel.get_meantemperature()
|
|
282
|
+
cpdef inline void calc_precipitation_precipmodel_v1(self, masterinterface.MasterInterface submodel) noexcept nogil:
|
|
283
|
+
cdef numpy.int64_t k
|
|
284
|
+
for k in range(self.parameters.control.nmbhru):
|
|
285
|
+
self.sequences.fluxes.precipitation[k] = submodel.get_precipitation(k)
|
|
286
|
+
cpdef inline void calc_precipitation_precipmodel_v2(self, masterinterface.MasterInterface submodel) noexcept nogil:
|
|
287
|
+
cdef numpy.int64_t k
|
|
288
|
+
submodel.determine_precipitation()
|
|
289
|
+
for k in range(self.parameters.control.nmbhru):
|
|
290
|
+
self.sequences.fluxes.precipitation[k] = submodel.get_precipitation(k)
|
|
291
|
+
cpdef inline void calc_meanairtemperature(self) noexcept nogil:
|
|
292
|
+
if self.tempmodel_typeid == 1:
|
|
293
|
+
self.calc_meanairtemperature_tempmodel_v1( (<masterinterface.MasterInterface>self.tempmodel) )
|
|
294
|
+
elif self.tempmodel_typeid == 2:
|
|
295
|
+
self.calc_meanairtemperature_tempmodel_v2( (<masterinterface.MasterInterface>self.tempmodel) )
|
|
296
|
+
cpdef inline void calc_precipitation(self) noexcept nogil:
|
|
297
|
+
if self.precipmodel_typeid == 1:
|
|
298
|
+
self.calc_precipitation_precipmodel_v1( (<masterinterface.MasterInterface>self.precipmodel) )
|
|
299
|
+
elif self.precipmodel_typeid == 2:
|
|
300
|
+
self.calc_precipitation_precipmodel_v2( (<masterinterface.MasterInterface>self.precipmodel) )
|
|
301
|
+
cpdef inline void calc_referenceevapotranspiration(self) noexcept nogil:
|
|
302
|
+
cdef numpy.int64_t k
|
|
303
|
+
for k in range(self.parameters.control.nmbhru):
|
|
304
|
+
self.sequences.fluxes.referenceevapotranspiration[k] = self.sequences.inputs.normalevapotranspiration * ( 1.0 + self.parameters.control.airtemperaturefactor[k] * (self.sequences.factors.meanairtemperature - self.sequences.inputs.normalairtemperature) )
|
|
305
|
+
self.sequences.fluxes.referenceevapotranspiration[k] = min( max(self.sequences.fluxes.referenceevapotranspiration[k], 0.0), 2.0 * self.sequences.inputs.normalevapotranspiration, )
|
|
306
|
+
cpdef inline void adjust_referenceevapotranspiration(self) noexcept nogil:
|
|
307
|
+
cdef numpy.int64_t k
|
|
308
|
+
for k in range(self.parameters.control.nmbhru):
|
|
309
|
+
self.sequences.fluxes.referenceevapotranspiration[k] = self.sequences.fluxes.referenceevapotranspiration[k] * (self.parameters.control.evapotranspirationfactor[k])
|
|
310
|
+
cpdef inline void calc_potentialevapotranspiration(self) noexcept nogil:
|
|
311
|
+
cdef numpy.int64_t k
|
|
312
|
+
for k in range(self.parameters.control.nmbhru):
|
|
313
|
+
self.sequences.fluxes.potentialevapotranspiration[k] = self.sequences.fluxes.referenceevapotranspiration[k] * ( 1.0 - self.parameters.control.altitudefactor[k] / 100.0 * (self.parameters.control.hrualtitude[k] - self.parameters.derived.altitude) )
|
|
314
|
+
if self.sequences.fluxes.potentialevapotranspiration[k] <= 0.0:
|
|
315
|
+
self.sequences.fluxes.potentialevapotranspiration[k] = 0.0
|
|
316
|
+
else:
|
|
317
|
+
self.sequences.fluxes.potentialevapotranspiration[k] = self.sequences.fluxes.potentialevapotranspiration[k] * (exp( -self.parameters.control.precipitationfactor[k] * self.sequences.fluxes.precipitation[k] ))
|
|
318
|
+
cpdef inline void calc_meanpotentialevapotranspiration(self) noexcept nogil:
|
|
319
|
+
cdef numpy.int64_t s
|
|
320
|
+
self.sequences.fluxes.meanpotentialevapotranspiration = 0.0
|
|
321
|
+
for s in range(self.parameters.control.nmbhru):
|
|
322
|
+
self.sequences.fluxes.meanpotentialevapotranspiration = self.sequences.fluxes.meanpotentialevapotranspiration + (( self.parameters.derived.hruareafraction[s] * self.sequences.fluxes.potentialevapotranspiration[s] ))
|
|
323
|
+
cpdef void determine_potentialevapotranspiration(self) noexcept nogil:
|
|
324
|
+
self.run()
|
|
325
|
+
cpdef double get_potentialevapotranspiration(self, numpy.int64_t k) noexcept nogil:
|
|
326
|
+
return self.sequences.fluxes.potentialevapotranspiration[k]
|
|
327
|
+
cpdef double get_meanpotentialevapotranspiration(self) noexcept nogil:
|
|
328
|
+
return self.sequences.fluxes.meanpotentialevapotranspiration
|
|
Binary file
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
#!python
|
|
2
|
+
# distutils: define_macros=NPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION
|
|
3
|
+
# cython: language_level=3
|
|
4
|
+
# cython: cpow=True
|
|
5
|
+
# cython: boundscheck=False
|
|
6
|
+
# cython: wraparound=False
|
|
7
|
+
# cython: initializedcheck=False
|
|
8
|
+
# cython: cdivision=True
|
|
9
|
+
from typing import Optional
|
|
10
|
+
import numpy
|
|
11
|
+
cimport numpy
|
|
12
|
+
from libc.math cimport exp, fabs, log, sin, cos, tan, tanh, asin, acos, atan, isnan, isinf
|
|
13
|
+
from libc.math cimport NAN as nan
|
|
14
|
+
from libc.math cimport INFINITY as inf
|
|
15
|
+
import cython
|
|
16
|
+
from cpython.mem cimport PyMem_Malloc
|
|
17
|
+
from cpython.mem cimport PyMem_Realloc
|
|
18
|
+
from cpython.mem cimport PyMem_Free
|
|
19
|
+
from hydpy.cythons.autogen cimport configutils
|
|
20
|
+
from hydpy.cythons.autogen cimport interfaceutils
|
|
21
|
+
from hydpy.cythons.autogen cimport interputils
|
|
22
|
+
from hydpy.cythons.autogen import pointerutils
|
|
23
|
+
from hydpy.cythons.autogen cimport pointerutils
|
|
24
|
+
from hydpy.cythons.autogen cimport quadutils
|
|
25
|
+
from hydpy.cythons.autogen cimport rootutils
|
|
26
|
+
from hydpy.cythons.autogen cimport smoothutils
|
|
27
|
+
from hydpy.cythons.autogen cimport masterinterface
|
|
28
|
+
ctypedef void (*CallbackType) (Model) noexcept nogil
|
|
29
|
+
cdef class CallbackWrapper:
|
|
30
|
+
cdef CallbackType callback
|
|
31
|
+
@cython.final
|
|
32
|
+
cdef class Parameters:
|
|
33
|
+
cdef public ControlParameters control
|
|
34
|
+
cdef public DerivedParameters derived
|
|
35
|
+
@cython.final
|
|
36
|
+
cdef class ControlParameters:
|
|
37
|
+
cdef public numpy.int64_t nmbhru
|
|
38
|
+
cdef public double[:] hruarea
|
|
39
|
+
cdef public double[:] monthfactor
|
|
40
|
+
cdef public numpy.int64_t _monthfactor_entrymin
|
|
41
|
+
cdef public double[:] dampingfactor
|
|
42
|
+
@cython.final
|
|
43
|
+
cdef class DerivedParameters:
|
|
44
|
+
cdef public numpy.int64_t[:] moy
|
|
45
|
+
cdef public double[:] hruareafraction
|
|
46
|
+
@cython.final
|
|
47
|
+
cdef class Sequences:
|
|
48
|
+
cdef public FluxSequences fluxes
|
|
49
|
+
cdef public LogSequences logs
|
|
50
|
+
@cython.final
|
|
51
|
+
cdef class FluxSequences:
|
|
52
|
+
cdef public double[:] referenceevapotranspiration
|
|
53
|
+
cdef public numpy.int64_t _referenceevapotranspiration_ndim
|
|
54
|
+
cdef public numpy.int64_t _referenceevapotranspiration_length
|
|
55
|
+
cdef public numpy.int64_t _referenceevapotranspiration_length_0
|
|
56
|
+
cdef public bint _referenceevapotranspiration_ramflag
|
|
57
|
+
cdef public double[:,:] _referenceevapotranspiration_array
|
|
58
|
+
cdef public bint _referenceevapotranspiration_diskflag_reading
|
|
59
|
+
cdef public bint _referenceevapotranspiration_diskflag_writing
|
|
60
|
+
cdef public double[:] _referenceevapotranspiration_ncarray
|
|
61
|
+
cdef public double[:] potentialevapotranspiration
|
|
62
|
+
cdef public numpy.int64_t _potentialevapotranspiration_ndim
|
|
63
|
+
cdef public numpy.int64_t _potentialevapotranspiration_length
|
|
64
|
+
cdef public numpy.int64_t _potentialevapotranspiration_length_0
|
|
65
|
+
cdef public bint _potentialevapotranspiration_ramflag
|
|
66
|
+
cdef public double[:,:] _potentialevapotranspiration_array
|
|
67
|
+
cdef public bint _potentialevapotranspiration_diskflag_reading
|
|
68
|
+
cdef public bint _potentialevapotranspiration_diskflag_writing
|
|
69
|
+
cdef public double[:] _potentialevapotranspiration_ncarray
|
|
70
|
+
cdef public double meanpotentialevapotranspiration
|
|
71
|
+
cdef public numpy.int64_t _meanpotentialevapotranspiration_ndim
|
|
72
|
+
cdef public numpy.int64_t _meanpotentialevapotranspiration_length
|
|
73
|
+
cdef public bint _meanpotentialevapotranspiration_ramflag
|
|
74
|
+
cdef public double[:] _meanpotentialevapotranspiration_array
|
|
75
|
+
cdef public bint _meanpotentialevapotranspiration_diskflag_reading
|
|
76
|
+
cdef public bint _meanpotentialevapotranspiration_diskflag_writing
|
|
77
|
+
cdef public double[:] _meanpotentialevapotranspiration_ncarray
|
|
78
|
+
cdef public bint _meanpotentialevapotranspiration_outputflag
|
|
79
|
+
cdef double *_meanpotentialevapotranspiration_outputpointer
|
|
80
|
+
cpdef inline void load_data(self, numpy.int64_t idx) noexcept nogil
|
|
81
|
+
cpdef inline void save_data(self, numpy.int64_t idx) noexcept nogil
|
|
82
|
+
cpdef inline set_pointeroutput(self, str name, pointerutils.PDouble value)
|
|
83
|
+
cpdef inline void update_outputs(self) noexcept nogil
|
|
84
|
+
@cython.final
|
|
85
|
+
cdef class LogSequences:
|
|
86
|
+
cdef public double[:,:] loggedpotentialevapotranspiration
|
|
87
|
+
cdef public numpy.int64_t _loggedpotentialevapotranspiration_ndim
|
|
88
|
+
cdef public numpy.int64_t _loggedpotentialevapotranspiration_length
|
|
89
|
+
cdef public numpy.int64_t _loggedpotentialevapotranspiration_length_0
|
|
90
|
+
cdef public numpy.int64_t _loggedpotentialevapotranspiration_length_1
|
|
91
|
+
@cython.final
|
|
92
|
+
cdef class Model(masterinterface.MasterInterface):
|
|
93
|
+
cdef public Parameters parameters
|
|
94
|
+
cdef public Sequences sequences
|
|
95
|
+
cdef public masterinterface.MasterInterface retmodel
|
|
96
|
+
cdef public numpy.npy_bool retmodel_is_mainmodel
|
|
97
|
+
cdef public numpy.int64_t retmodel_typeid
|
|
98
|
+
cpdef inline void simulate(self, numpy.int64_t idx) noexcept nogil
|
|
99
|
+
cpdef void reset_reuseflags(self) noexcept nogil
|
|
100
|
+
cpdef void load_data(self, numpy.int64_t idx) noexcept nogil
|
|
101
|
+
cpdef void save_data(self, numpy.int64_t idx) noexcept nogil
|
|
102
|
+
cpdef void new2old(self) noexcept nogil
|
|
103
|
+
cpdef inline void run(self) noexcept nogil
|
|
104
|
+
cpdef inline void update_inlets(self) noexcept nogil
|
|
105
|
+
cpdef inline void update_outlets(self) noexcept nogil
|
|
106
|
+
cpdef inline void update_receivers(self, numpy.int64_t idx) noexcept nogil
|
|
107
|
+
cpdef inline void update_senders(self, numpy.int64_t idx) noexcept nogil
|
|
108
|
+
cpdef inline void update_outputs(self) noexcept nogil
|
|
109
|
+
cpdef inline void calc_referenceevapotranspiration_v4(self) noexcept nogil
|
|
110
|
+
cpdef inline void calc_potentialevapotranspiration_v1(self) noexcept nogil
|
|
111
|
+
cpdef inline void update_potentialevapotranspiration_v1(self) noexcept nogil
|
|
112
|
+
cpdef inline void calc_meanpotentialevapotranspiration_v1(self) noexcept nogil
|
|
113
|
+
cpdef void determine_potentialevapotranspiration_v1(self) noexcept nogil
|
|
114
|
+
cpdef double get_potentialevapotranspiration_v2(self, numpy.int64_t k) noexcept nogil
|
|
115
|
+
cpdef double get_meanpotentialevapotranspiration_v2(self) noexcept nogil
|
|
116
|
+
cpdef inline void calc_referenceevapotranspiration_petmodel_v1(self, masterinterface.MasterInterface submodel) noexcept nogil
|
|
117
|
+
cpdef inline void calc_referenceevapotranspiration(self) noexcept nogil
|
|
118
|
+
cpdef inline void calc_potentialevapotranspiration(self) noexcept nogil
|
|
119
|
+
cpdef inline void update_potentialevapotranspiration(self) noexcept nogil
|
|
120
|
+
cpdef inline void calc_meanpotentialevapotranspiration(self) noexcept nogil
|
|
121
|
+
cpdef void determine_potentialevapotranspiration(self) noexcept nogil
|
|
122
|
+
cpdef double get_potentialevapotranspiration(self, numpy.int64_t k) noexcept nogil
|
|
123
|
+
cpdef double get_meanpotentialevapotranspiration(self) noexcept nogil
|
|
124
|
+
cpdef inline void calc_referenceevapotranspiration_petmodel(self, masterinterface.MasterInterface submodel) noexcept nogil
|