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
|
@@ -0,0 +1,193 @@
|
|
|
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
|
+
@cython.final
|
|
35
|
+
cdef class ControlParameters:
|
|
36
|
+
cdef public numpy.int64_t nmbhru
|
|
37
|
+
cdef public numpy.npy_bool[:] water
|
|
38
|
+
cdef public numpy.npy_bool[:] interception
|
|
39
|
+
cdef public numpy.npy_bool[:] soil
|
|
40
|
+
cdef public double[:] maxsoilwater
|
|
41
|
+
cdef public double[:] dissefactor
|
|
42
|
+
@cython.final
|
|
43
|
+
cdef class Sequences:
|
|
44
|
+
cdef public FactorSequences factors
|
|
45
|
+
cdef public FluxSequences fluxes
|
|
46
|
+
@cython.final
|
|
47
|
+
cdef class FactorSequences:
|
|
48
|
+
cdef public double[:] interceptedwater
|
|
49
|
+
cdef public numpy.int64_t _interceptedwater_ndim
|
|
50
|
+
cdef public numpy.int64_t _interceptedwater_length
|
|
51
|
+
cdef public numpy.int64_t _interceptedwater_length_0
|
|
52
|
+
cdef public bint _interceptedwater_ramflag
|
|
53
|
+
cdef public double[:,:] _interceptedwater_array
|
|
54
|
+
cdef public bint _interceptedwater_diskflag_reading
|
|
55
|
+
cdef public bint _interceptedwater_diskflag_writing
|
|
56
|
+
cdef public double[:] _interceptedwater_ncarray
|
|
57
|
+
cdef public double[:] soilwater
|
|
58
|
+
cdef public numpy.int64_t _soilwater_ndim
|
|
59
|
+
cdef public numpy.int64_t _soilwater_length
|
|
60
|
+
cdef public numpy.int64_t _soilwater_length_0
|
|
61
|
+
cdef public bint _soilwater_ramflag
|
|
62
|
+
cdef public double[:,:] _soilwater_array
|
|
63
|
+
cdef public bint _soilwater_diskflag_reading
|
|
64
|
+
cdef public bint _soilwater_diskflag_writing
|
|
65
|
+
cdef public double[:] _soilwater_ncarray
|
|
66
|
+
cpdef inline void load_data(self, numpy.int64_t idx) noexcept nogil
|
|
67
|
+
cpdef inline void save_data(self, numpy.int64_t idx) noexcept nogil
|
|
68
|
+
cpdef inline set_pointeroutput(self, str name, pointerutils.PDouble value)
|
|
69
|
+
cpdef inline void update_outputs(self) noexcept nogil
|
|
70
|
+
@cython.final
|
|
71
|
+
cdef class FluxSequences:
|
|
72
|
+
cdef public double[:] potentialinterceptionevaporation
|
|
73
|
+
cdef public numpy.int64_t _potentialinterceptionevaporation_ndim
|
|
74
|
+
cdef public numpy.int64_t _potentialinterceptionevaporation_length
|
|
75
|
+
cdef public numpy.int64_t _potentialinterceptionevaporation_length_0
|
|
76
|
+
cdef public bint _potentialinterceptionevaporation_ramflag
|
|
77
|
+
cdef public double[:,:] _potentialinterceptionevaporation_array
|
|
78
|
+
cdef public bint _potentialinterceptionevaporation_diskflag_reading
|
|
79
|
+
cdef public bint _potentialinterceptionevaporation_diskflag_writing
|
|
80
|
+
cdef public double[:] _potentialinterceptionevaporation_ncarray
|
|
81
|
+
cdef public double[:] potentialsoilevapotranspiration
|
|
82
|
+
cdef public numpy.int64_t _potentialsoilevapotranspiration_ndim
|
|
83
|
+
cdef public numpy.int64_t _potentialsoilevapotranspiration_length
|
|
84
|
+
cdef public numpy.int64_t _potentialsoilevapotranspiration_length_0
|
|
85
|
+
cdef public bint _potentialsoilevapotranspiration_ramflag
|
|
86
|
+
cdef public double[:,:] _potentialsoilevapotranspiration_array
|
|
87
|
+
cdef public bint _potentialsoilevapotranspiration_diskflag_reading
|
|
88
|
+
cdef public bint _potentialsoilevapotranspiration_diskflag_writing
|
|
89
|
+
cdef public double[:] _potentialsoilevapotranspiration_ncarray
|
|
90
|
+
cdef public double[:] potentialwaterevaporation
|
|
91
|
+
cdef public numpy.int64_t _potentialwaterevaporation_ndim
|
|
92
|
+
cdef public numpy.int64_t _potentialwaterevaporation_length
|
|
93
|
+
cdef public numpy.int64_t _potentialwaterevaporation_length_0
|
|
94
|
+
cdef public bint _potentialwaterevaporation_ramflag
|
|
95
|
+
cdef public double[:,:] _potentialwaterevaporation_array
|
|
96
|
+
cdef public bint _potentialwaterevaporation_diskflag_reading
|
|
97
|
+
cdef public bint _potentialwaterevaporation_diskflag_writing
|
|
98
|
+
cdef public double[:] _potentialwaterevaporation_ncarray
|
|
99
|
+
cdef public double[:] waterevaporation
|
|
100
|
+
cdef public numpy.int64_t _waterevaporation_ndim
|
|
101
|
+
cdef public numpy.int64_t _waterevaporation_length
|
|
102
|
+
cdef public numpy.int64_t _waterevaporation_length_0
|
|
103
|
+
cdef public bint _waterevaporation_ramflag
|
|
104
|
+
cdef public double[:,:] _waterevaporation_array
|
|
105
|
+
cdef public bint _waterevaporation_diskflag_reading
|
|
106
|
+
cdef public bint _waterevaporation_diskflag_writing
|
|
107
|
+
cdef public double[:] _waterevaporation_ncarray
|
|
108
|
+
cdef public double[:] interceptionevaporation
|
|
109
|
+
cdef public numpy.int64_t _interceptionevaporation_ndim
|
|
110
|
+
cdef public numpy.int64_t _interceptionevaporation_length
|
|
111
|
+
cdef public numpy.int64_t _interceptionevaporation_length_0
|
|
112
|
+
cdef public bint _interceptionevaporation_ramflag
|
|
113
|
+
cdef public double[:,:] _interceptionevaporation_array
|
|
114
|
+
cdef public bint _interceptionevaporation_diskflag_reading
|
|
115
|
+
cdef public bint _interceptionevaporation_diskflag_writing
|
|
116
|
+
cdef public double[:] _interceptionevaporation_ncarray
|
|
117
|
+
cdef public double[:] soilevapotranspiration
|
|
118
|
+
cdef public numpy.int64_t _soilevapotranspiration_ndim
|
|
119
|
+
cdef public numpy.int64_t _soilevapotranspiration_length
|
|
120
|
+
cdef public numpy.int64_t _soilevapotranspiration_length_0
|
|
121
|
+
cdef public bint _soilevapotranspiration_ramflag
|
|
122
|
+
cdef public double[:,:] _soilevapotranspiration_array
|
|
123
|
+
cdef public bint _soilevapotranspiration_diskflag_reading
|
|
124
|
+
cdef public bint _soilevapotranspiration_diskflag_writing
|
|
125
|
+
cdef public double[:] _soilevapotranspiration_ncarray
|
|
126
|
+
cpdef inline void load_data(self, numpy.int64_t idx) noexcept nogil
|
|
127
|
+
cpdef inline void save_data(self, numpy.int64_t idx) noexcept nogil
|
|
128
|
+
cpdef inline set_pointeroutput(self, str name, pointerutils.PDouble value)
|
|
129
|
+
cpdef inline void update_outputs(self) noexcept nogil
|
|
130
|
+
@cython.final
|
|
131
|
+
cdef class Model(masterinterface.MasterInterface):
|
|
132
|
+
cdef public Parameters parameters
|
|
133
|
+
cdef public Sequences sequences
|
|
134
|
+
cdef public masterinterface.MasterInterface intercmodel
|
|
135
|
+
cdef public numpy.npy_bool intercmodel_is_mainmodel
|
|
136
|
+
cdef public numpy.int64_t intercmodel_typeid
|
|
137
|
+
cdef public masterinterface.MasterInterface petmodel
|
|
138
|
+
cdef public numpy.npy_bool petmodel_is_mainmodel
|
|
139
|
+
cdef public numpy.int64_t petmodel_typeid
|
|
140
|
+
cdef public masterinterface.MasterInterface soilwatermodel
|
|
141
|
+
cdef public numpy.npy_bool soilwatermodel_is_mainmodel
|
|
142
|
+
cdef public numpy.int64_t soilwatermodel_typeid
|
|
143
|
+
cpdef inline void simulate(self, numpy.int64_t idx) noexcept nogil
|
|
144
|
+
cpdef void reset_reuseflags(self) noexcept nogil
|
|
145
|
+
cpdef void load_data(self, numpy.int64_t idx) noexcept nogil
|
|
146
|
+
cpdef void save_data(self, numpy.int64_t idx) noexcept nogil
|
|
147
|
+
cpdef void new2old(self) noexcept nogil
|
|
148
|
+
cpdef inline void run(self) noexcept nogil
|
|
149
|
+
cpdef inline void update_inlets(self) noexcept nogil
|
|
150
|
+
cpdef inline void update_outlets(self) noexcept nogil
|
|
151
|
+
cpdef inline void update_receivers(self, numpy.int64_t idx) noexcept nogil
|
|
152
|
+
cpdef inline void update_senders(self, numpy.int64_t idx) noexcept nogil
|
|
153
|
+
cpdef inline void update_outputs(self) noexcept nogil
|
|
154
|
+
cpdef double get_waterevaporation_v1(self, numpy.int64_t k) noexcept nogil
|
|
155
|
+
cpdef double get_interceptionevaporation_v1(self, numpy.int64_t k) noexcept nogil
|
|
156
|
+
cpdef double get_soilevapotranspiration_v1(self, numpy.int64_t k) noexcept nogil
|
|
157
|
+
cpdef inline void calc_potentialinterceptionevaporation_petmodel_v1(self, masterinterface.MasterInterface submodel) noexcept nogil
|
|
158
|
+
cpdef inline void calc_potentialinterceptionevaporation_petmodel_v2(self, masterinterface.MasterInterface submodel) noexcept nogil
|
|
159
|
+
cpdef inline void calc_potentialinterceptionevaporation_v3(self) noexcept nogil
|
|
160
|
+
cpdef inline void calc_potentialwaterevaporation_petmodel_v1(self, masterinterface.MasterInterface submodel) noexcept nogil
|
|
161
|
+
cpdef inline void calc_potentialwaterevaporation_petmodel_v2(self, masterinterface.MasterInterface submodel) noexcept nogil
|
|
162
|
+
cpdef inline void calc_potentialwaterevaporation_v1(self) noexcept nogil
|
|
163
|
+
cpdef inline void calc_waterevaporation_v2(self) noexcept nogil
|
|
164
|
+
cpdef inline void calc_interceptedwater_v1(self) noexcept nogil
|
|
165
|
+
cpdef inline void calc_interceptionevaporation_v1(self) noexcept nogil
|
|
166
|
+
cpdef inline void calc_soilwater_v1(self) noexcept nogil
|
|
167
|
+
cpdef inline void calc_potentialsoilevapotranspiration_petmodel_v1(self, masterinterface.MasterInterface submodel) noexcept nogil
|
|
168
|
+
cpdef inline void calc_potentialsoilevapotranspiration_petmodel_v2(self, masterinterface.MasterInterface submodel) noexcept nogil
|
|
169
|
+
cpdef inline void calc_potentialsoilevapotranspiration_v2(self) noexcept nogil
|
|
170
|
+
cpdef inline void calc_soilevapotranspiration_v2(self) noexcept nogil
|
|
171
|
+
cpdef inline void update_soilevapotranspiration_v3(self) noexcept nogil
|
|
172
|
+
cpdef inline void calc_interceptedwater_intercmodel_v1(self, masterinterface.MasterInterface submodel) noexcept nogil
|
|
173
|
+
cpdef inline void calc_soilwater_soilwatermodel_v1(self, masterinterface.MasterInterface submodel) noexcept nogil
|
|
174
|
+
cpdef double get_waterevaporation(self, numpy.int64_t k) noexcept nogil
|
|
175
|
+
cpdef double get_interceptionevaporation(self, numpy.int64_t k) noexcept nogil
|
|
176
|
+
cpdef double get_soilevapotranspiration(self, numpy.int64_t k) noexcept nogil
|
|
177
|
+
cpdef inline void calc_potentialinterceptionevaporation(self) noexcept nogil
|
|
178
|
+
cpdef inline void calc_potentialwaterevaporation(self) noexcept nogil
|
|
179
|
+
cpdef inline void calc_waterevaporation(self) noexcept nogil
|
|
180
|
+
cpdef inline void calc_interceptedwater(self) noexcept nogil
|
|
181
|
+
cpdef inline void calc_interceptionevaporation(self) noexcept nogil
|
|
182
|
+
cpdef inline void calc_soilwater(self) noexcept nogil
|
|
183
|
+
cpdef inline void calc_potentialsoilevapotranspiration(self) noexcept nogil
|
|
184
|
+
cpdef inline void calc_soilevapotranspiration(self) noexcept nogil
|
|
185
|
+
cpdef inline void update_soilevapotranspiration(self) noexcept nogil
|
|
186
|
+
cpdef inline void calc_interceptedwater_intercmodel(self, masterinterface.MasterInterface submodel) noexcept nogil
|
|
187
|
+
cpdef inline void calc_soilwater_soilwatermodel(self, masterinterface.MasterInterface submodel) noexcept nogil
|
|
188
|
+
cpdef void determine_interceptionevaporation_v1(self) noexcept nogil
|
|
189
|
+
cpdef void determine_soilevapotranspiration_v2(self) noexcept nogil
|
|
190
|
+
cpdef void determine_waterevaporation_v2(self) noexcept nogil
|
|
191
|
+
cpdef void determine_interceptionevaporation(self) noexcept nogil
|
|
192
|
+
cpdef void determine_soilevapotranspiration(self) noexcept nogil
|
|
193
|
+
cpdef void determine_waterevaporation(self) noexcept nogil
|
|
@@ -0,0 +1,478 @@
|
|
|
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 Sequences:
|
|
46
|
+
pass
|
|
47
|
+
@cython.final
|
|
48
|
+
cdef class FactorSequences:
|
|
49
|
+
cpdef inline void load_data(self, numpy.int64_t idx) noexcept nogil:
|
|
50
|
+
cdef numpy.int64_t jdx0
|
|
51
|
+
cdef numpy.int64_t k
|
|
52
|
+
if self._interceptedwater_diskflag_reading:
|
|
53
|
+
k = 0
|
|
54
|
+
for jdx0 in range(self._interceptedwater_length_0):
|
|
55
|
+
self.interceptedwater[jdx0] = self._interceptedwater_ncarray[k]
|
|
56
|
+
k += 1
|
|
57
|
+
elif self._interceptedwater_ramflag:
|
|
58
|
+
for jdx0 in range(self._interceptedwater_length_0):
|
|
59
|
+
self.interceptedwater[jdx0] = self._interceptedwater_array[idx, jdx0]
|
|
60
|
+
if self._soilwater_diskflag_reading:
|
|
61
|
+
k = 0
|
|
62
|
+
for jdx0 in range(self._soilwater_length_0):
|
|
63
|
+
self.soilwater[jdx0] = self._soilwater_ncarray[k]
|
|
64
|
+
k += 1
|
|
65
|
+
elif self._soilwater_ramflag:
|
|
66
|
+
for jdx0 in range(self._soilwater_length_0):
|
|
67
|
+
self.soilwater[jdx0] = self._soilwater_array[idx, jdx0]
|
|
68
|
+
cpdef inline void save_data(self, numpy.int64_t idx) noexcept nogil:
|
|
69
|
+
cdef numpy.int64_t jdx0
|
|
70
|
+
cdef numpy.int64_t k
|
|
71
|
+
if self._interceptedwater_diskflag_writing:
|
|
72
|
+
k = 0
|
|
73
|
+
for jdx0 in range(self._interceptedwater_length_0):
|
|
74
|
+
self._interceptedwater_ncarray[k] = self.interceptedwater[jdx0]
|
|
75
|
+
k += 1
|
|
76
|
+
if self._interceptedwater_ramflag:
|
|
77
|
+
for jdx0 in range(self._interceptedwater_length_0):
|
|
78
|
+
self._interceptedwater_array[idx, jdx0] = self.interceptedwater[jdx0]
|
|
79
|
+
if self._soilwater_diskflag_writing:
|
|
80
|
+
k = 0
|
|
81
|
+
for jdx0 in range(self._soilwater_length_0):
|
|
82
|
+
self._soilwater_ncarray[k] = self.soilwater[jdx0]
|
|
83
|
+
k += 1
|
|
84
|
+
if self._soilwater_ramflag:
|
|
85
|
+
for jdx0 in range(self._soilwater_length_0):
|
|
86
|
+
self._soilwater_array[idx, jdx0] = self.soilwater[jdx0]
|
|
87
|
+
cpdef inline set_pointeroutput(self, str name, pointerutils.PDouble value):
|
|
88
|
+
pass
|
|
89
|
+
cpdef inline void update_outputs(self) noexcept nogil:
|
|
90
|
+
pass
|
|
91
|
+
@cython.final
|
|
92
|
+
cdef class FluxSequences:
|
|
93
|
+
cpdef inline void load_data(self, numpy.int64_t idx) noexcept nogil:
|
|
94
|
+
cdef numpy.int64_t jdx0
|
|
95
|
+
cdef numpy.int64_t k
|
|
96
|
+
if self._potentialinterceptionevaporation_diskflag_reading:
|
|
97
|
+
k = 0
|
|
98
|
+
for jdx0 in range(self._potentialinterceptionevaporation_length_0):
|
|
99
|
+
self.potentialinterceptionevaporation[jdx0] = self._potentialinterceptionevaporation_ncarray[k]
|
|
100
|
+
k += 1
|
|
101
|
+
elif self._potentialinterceptionevaporation_ramflag:
|
|
102
|
+
for jdx0 in range(self._potentialinterceptionevaporation_length_0):
|
|
103
|
+
self.potentialinterceptionevaporation[jdx0] = self._potentialinterceptionevaporation_array[idx, jdx0]
|
|
104
|
+
if self._potentialsoilevapotranspiration_diskflag_reading:
|
|
105
|
+
k = 0
|
|
106
|
+
for jdx0 in range(self._potentialsoilevapotranspiration_length_0):
|
|
107
|
+
self.potentialsoilevapotranspiration[jdx0] = self._potentialsoilevapotranspiration_ncarray[k]
|
|
108
|
+
k += 1
|
|
109
|
+
elif self._potentialsoilevapotranspiration_ramflag:
|
|
110
|
+
for jdx0 in range(self._potentialsoilevapotranspiration_length_0):
|
|
111
|
+
self.potentialsoilevapotranspiration[jdx0] = self._potentialsoilevapotranspiration_array[idx, jdx0]
|
|
112
|
+
if self._potentialwaterevaporation_diskflag_reading:
|
|
113
|
+
k = 0
|
|
114
|
+
for jdx0 in range(self._potentialwaterevaporation_length_0):
|
|
115
|
+
self.potentialwaterevaporation[jdx0] = self._potentialwaterevaporation_ncarray[k]
|
|
116
|
+
k += 1
|
|
117
|
+
elif self._potentialwaterevaporation_ramflag:
|
|
118
|
+
for jdx0 in range(self._potentialwaterevaporation_length_0):
|
|
119
|
+
self.potentialwaterevaporation[jdx0] = self._potentialwaterevaporation_array[idx, jdx0]
|
|
120
|
+
if self._waterevaporation_diskflag_reading:
|
|
121
|
+
k = 0
|
|
122
|
+
for jdx0 in range(self._waterevaporation_length_0):
|
|
123
|
+
self.waterevaporation[jdx0] = self._waterevaporation_ncarray[k]
|
|
124
|
+
k += 1
|
|
125
|
+
elif self._waterevaporation_ramflag:
|
|
126
|
+
for jdx0 in range(self._waterevaporation_length_0):
|
|
127
|
+
self.waterevaporation[jdx0] = self._waterevaporation_array[idx, jdx0]
|
|
128
|
+
if self._interceptionevaporation_diskflag_reading:
|
|
129
|
+
k = 0
|
|
130
|
+
for jdx0 in range(self._interceptionevaporation_length_0):
|
|
131
|
+
self.interceptionevaporation[jdx0] = self._interceptionevaporation_ncarray[k]
|
|
132
|
+
k += 1
|
|
133
|
+
elif self._interceptionevaporation_ramflag:
|
|
134
|
+
for jdx0 in range(self._interceptionevaporation_length_0):
|
|
135
|
+
self.interceptionevaporation[jdx0] = self._interceptionevaporation_array[idx, jdx0]
|
|
136
|
+
if self._soilevapotranspiration_diskflag_reading:
|
|
137
|
+
k = 0
|
|
138
|
+
for jdx0 in range(self._soilevapotranspiration_length_0):
|
|
139
|
+
self.soilevapotranspiration[jdx0] = self._soilevapotranspiration_ncarray[k]
|
|
140
|
+
k += 1
|
|
141
|
+
elif self._soilevapotranspiration_ramflag:
|
|
142
|
+
for jdx0 in range(self._soilevapotranspiration_length_0):
|
|
143
|
+
self.soilevapotranspiration[jdx0] = self._soilevapotranspiration_array[idx, jdx0]
|
|
144
|
+
cpdef inline void save_data(self, numpy.int64_t idx) noexcept nogil:
|
|
145
|
+
cdef numpy.int64_t jdx0
|
|
146
|
+
cdef numpy.int64_t k
|
|
147
|
+
if self._potentialinterceptionevaporation_diskflag_writing:
|
|
148
|
+
k = 0
|
|
149
|
+
for jdx0 in range(self._potentialinterceptionevaporation_length_0):
|
|
150
|
+
self._potentialinterceptionevaporation_ncarray[k] = self.potentialinterceptionevaporation[jdx0]
|
|
151
|
+
k += 1
|
|
152
|
+
if self._potentialinterceptionevaporation_ramflag:
|
|
153
|
+
for jdx0 in range(self._potentialinterceptionevaporation_length_0):
|
|
154
|
+
self._potentialinterceptionevaporation_array[idx, jdx0] = self.potentialinterceptionevaporation[jdx0]
|
|
155
|
+
if self._potentialsoilevapotranspiration_diskflag_writing:
|
|
156
|
+
k = 0
|
|
157
|
+
for jdx0 in range(self._potentialsoilevapotranspiration_length_0):
|
|
158
|
+
self._potentialsoilevapotranspiration_ncarray[k] = self.potentialsoilevapotranspiration[jdx0]
|
|
159
|
+
k += 1
|
|
160
|
+
if self._potentialsoilevapotranspiration_ramflag:
|
|
161
|
+
for jdx0 in range(self._potentialsoilevapotranspiration_length_0):
|
|
162
|
+
self._potentialsoilevapotranspiration_array[idx, jdx0] = self.potentialsoilevapotranspiration[jdx0]
|
|
163
|
+
if self._potentialwaterevaporation_diskflag_writing:
|
|
164
|
+
k = 0
|
|
165
|
+
for jdx0 in range(self._potentialwaterevaporation_length_0):
|
|
166
|
+
self._potentialwaterevaporation_ncarray[k] = self.potentialwaterevaporation[jdx0]
|
|
167
|
+
k += 1
|
|
168
|
+
if self._potentialwaterevaporation_ramflag:
|
|
169
|
+
for jdx0 in range(self._potentialwaterevaporation_length_0):
|
|
170
|
+
self._potentialwaterevaporation_array[idx, jdx0] = self.potentialwaterevaporation[jdx0]
|
|
171
|
+
if self._waterevaporation_diskflag_writing:
|
|
172
|
+
k = 0
|
|
173
|
+
for jdx0 in range(self._waterevaporation_length_0):
|
|
174
|
+
self._waterevaporation_ncarray[k] = self.waterevaporation[jdx0]
|
|
175
|
+
k += 1
|
|
176
|
+
if self._waterevaporation_ramflag:
|
|
177
|
+
for jdx0 in range(self._waterevaporation_length_0):
|
|
178
|
+
self._waterevaporation_array[idx, jdx0] = self.waterevaporation[jdx0]
|
|
179
|
+
if self._interceptionevaporation_diskflag_writing:
|
|
180
|
+
k = 0
|
|
181
|
+
for jdx0 in range(self._interceptionevaporation_length_0):
|
|
182
|
+
self._interceptionevaporation_ncarray[k] = self.interceptionevaporation[jdx0]
|
|
183
|
+
k += 1
|
|
184
|
+
if self._interceptionevaporation_ramflag:
|
|
185
|
+
for jdx0 in range(self._interceptionevaporation_length_0):
|
|
186
|
+
self._interceptionevaporation_array[idx, jdx0] = self.interceptionevaporation[jdx0]
|
|
187
|
+
if self._soilevapotranspiration_diskflag_writing:
|
|
188
|
+
k = 0
|
|
189
|
+
for jdx0 in range(self._soilevapotranspiration_length_0):
|
|
190
|
+
self._soilevapotranspiration_ncarray[k] = self.soilevapotranspiration[jdx0]
|
|
191
|
+
k += 1
|
|
192
|
+
if self._soilevapotranspiration_ramflag:
|
|
193
|
+
for jdx0 in range(self._soilevapotranspiration_length_0):
|
|
194
|
+
self._soilevapotranspiration_array[idx, jdx0] = self.soilevapotranspiration[jdx0]
|
|
195
|
+
cpdef inline set_pointeroutput(self, str name, pointerutils.PDouble value):
|
|
196
|
+
pass
|
|
197
|
+
cpdef inline void update_outputs(self) noexcept nogil:
|
|
198
|
+
pass
|
|
199
|
+
@cython.final
|
|
200
|
+
cdef class Model(masterinterface.MasterInterface):
|
|
201
|
+
def __init__(self):
|
|
202
|
+
super().__init__()
|
|
203
|
+
self.intercmodel = None
|
|
204
|
+
self.intercmodel_is_mainmodel = False
|
|
205
|
+
self.petmodel = None
|
|
206
|
+
self.petmodel_is_mainmodel = False
|
|
207
|
+
self.soilwatermodel = None
|
|
208
|
+
self.soilwatermodel_is_mainmodel = False
|
|
209
|
+
def get_intercmodel(self) -> masterinterface.MasterInterface | None:
|
|
210
|
+
return self.intercmodel
|
|
211
|
+
def set_intercmodel(self, intercmodel: masterinterface.MasterInterface | None) -> None:
|
|
212
|
+
self.intercmodel = intercmodel
|
|
213
|
+
def get_petmodel(self) -> masterinterface.MasterInterface | None:
|
|
214
|
+
return self.petmodel
|
|
215
|
+
def set_petmodel(self, petmodel: masterinterface.MasterInterface | None) -> None:
|
|
216
|
+
self.petmodel = petmodel
|
|
217
|
+
def get_soilwatermodel(self) -> masterinterface.MasterInterface | None:
|
|
218
|
+
return self.soilwatermodel
|
|
219
|
+
def set_soilwatermodel(self, soilwatermodel: masterinterface.MasterInterface | None) -> None:
|
|
220
|
+
self.soilwatermodel = soilwatermodel
|
|
221
|
+
cpdef inline void simulate(self, numpy.int64_t idx) noexcept nogil:
|
|
222
|
+
self.idx_sim = idx
|
|
223
|
+
self.reset_reuseflags()
|
|
224
|
+
self.load_data(idx)
|
|
225
|
+
self.run()
|
|
226
|
+
self.update_outputs()
|
|
227
|
+
cpdef void reset_reuseflags(self) noexcept nogil:
|
|
228
|
+
if (self.intercmodel is not None) and not self.intercmodel_is_mainmodel:
|
|
229
|
+
self.intercmodel.reset_reuseflags()
|
|
230
|
+
if (self.petmodel is not None) and not self.petmodel_is_mainmodel:
|
|
231
|
+
self.petmodel.reset_reuseflags()
|
|
232
|
+
if (self.soilwatermodel is not None) and not self.soilwatermodel_is_mainmodel:
|
|
233
|
+
self.soilwatermodel.reset_reuseflags()
|
|
234
|
+
cpdef void load_data(self, numpy.int64_t idx) noexcept nogil:
|
|
235
|
+
self.idx_sim = idx
|
|
236
|
+
if (self.intercmodel is not None) and not self.intercmodel_is_mainmodel:
|
|
237
|
+
self.intercmodel.load_data(idx)
|
|
238
|
+
if (self.petmodel is not None) and not self.petmodel_is_mainmodel:
|
|
239
|
+
self.petmodel.load_data(idx)
|
|
240
|
+
if (self.soilwatermodel is not None) and not self.soilwatermodel_is_mainmodel:
|
|
241
|
+
self.soilwatermodel.load_data(idx)
|
|
242
|
+
cpdef void save_data(self, numpy.int64_t idx) noexcept nogil:
|
|
243
|
+
self.idx_sim = idx
|
|
244
|
+
self.sequences.factors.save_data(idx)
|
|
245
|
+
self.sequences.fluxes.save_data(idx)
|
|
246
|
+
if (self.intercmodel is not None) and not self.intercmodel_is_mainmodel:
|
|
247
|
+
self.intercmodel.save_data(idx)
|
|
248
|
+
if (self.petmodel is not None) and not self.petmodel_is_mainmodel:
|
|
249
|
+
self.petmodel.save_data(idx)
|
|
250
|
+
if (self.soilwatermodel is not None) and not self.soilwatermodel_is_mainmodel:
|
|
251
|
+
self.soilwatermodel.save_data(idx)
|
|
252
|
+
cpdef void new2old(self) noexcept nogil:
|
|
253
|
+
if (self.intercmodel is not None) and not self.intercmodel_is_mainmodel:
|
|
254
|
+
self.intercmodel.new2old()
|
|
255
|
+
if (self.petmodel is not None) and not self.petmodel_is_mainmodel:
|
|
256
|
+
self.petmodel.new2old()
|
|
257
|
+
if (self.soilwatermodel is not None) and not self.soilwatermodel_is_mainmodel:
|
|
258
|
+
self.soilwatermodel.new2old()
|
|
259
|
+
cpdef inline void run(self) noexcept nogil:
|
|
260
|
+
self.determine_interceptionevaporation_v1()
|
|
261
|
+
self.determine_soilevapotranspiration_v2()
|
|
262
|
+
self.determine_waterevaporation_v2()
|
|
263
|
+
cpdef inline void update_inlets(self) noexcept nogil:
|
|
264
|
+
pass
|
|
265
|
+
cpdef inline void update_outlets(self) noexcept nogil:
|
|
266
|
+
pass
|
|
267
|
+
cpdef inline void update_receivers(self, numpy.int64_t idx) noexcept nogil:
|
|
268
|
+
self.idx_sim = idx
|
|
269
|
+
pass
|
|
270
|
+
cpdef inline void update_senders(self, numpy.int64_t idx) noexcept nogil:
|
|
271
|
+
self.idx_sim = idx
|
|
272
|
+
pass
|
|
273
|
+
cpdef inline void update_outputs(self) noexcept nogil:
|
|
274
|
+
pass
|
|
275
|
+
cpdef double get_waterevaporation_v1(self, numpy.int64_t k) noexcept nogil:
|
|
276
|
+
return self.sequences.fluxes.waterevaporation[k]
|
|
277
|
+
cpdef double get_interceptionevaporation_v1(self, numpy.int64_t k) noexcept nogil:
|
|
278
|
+
return self.sequences.fluxes.interceptionevaporation[k]
|
|
279
|
+
cpdef double get_soilevapotranspiration_v1(self, numpy.int64_t k) noexcept nogil:
|
|
280
|
+
return self.sequences.fluxes.soilevapotranspiration[k]
|
|
281
|
+
cpdef inline void calc_potentialinterceptionevaporation_petmodel_v1(self, masterinterface.MasterInterface submodel) noexcept nogil:
|
|
282
|
+
cdef numpy.int64_t k
|
|
283
|
+
submodel.determine_potentialevapotranspiration()
|
|
284
|
+
for k in range(self.parameters.control.nmbhru):
|
|
285
|
+
self.sequences.fluxes.potentialinterceptionevaporation[k] = ( submodel.get_potentialevapotranspiration(k) )
|
|
286
|
+
cpdef inline void calc_potentialinterceptionevaporation_petmodel_v2(self, masterinterface.MasterInterface submodel) noexcept nogil:
|
|
287
|
+
cdef numpy.int64_t k
|
|
288
|
+
submodel.determine_potentialinterceptionevaporation()
|
|
289
|
+
for k in range(self.parameters.control.nmbhru):
|
|
290
|
+
self.sequences.fluxes.potentialinterceptionevaporation[k] = ( submodel.get_potentialinterceptionevaporation(k) )
|
|
291
|
+
cpdef inline void calc_potentialinterceptionevaporation_v3(self) noexcept nogil:
|
|
292
|
+
if self.petmodel_typeid == 1:
|
|
293
|
+
self.calc_potentialinterceptionevaporation_petmodel_v1( (<masterinterface.MasterInterface>self.petmodel) )
|
|
294
|
+
elif self.petmodel_typeid == 2:
|
|
295
|
+
self.calc_potentialinterceptionevaporation_petmodel_v2( (<masterinterface.MasterInterface>self.petmodel) )
|
|
296
|
+
cpdef inline void calc_potentialwaterevaporation_petmodel_v1(self, masterinterface.MasterInterface submodel) noexcept nogil:
|
|
297
|
+
cdef numpy.int64_t k
|
|
298
|
+
for k in range(self.parameters.control.nmbhru):
|
|
299
|
+
self.sequences.fluxes.potentialwaterevaporation[k] = submodel.get_potentialevapotranspiration( k )
|
|
300
|
+
cpdef inline void calc_potentialwaterevaporation_petmodel_v2(self, masterinterface.MasterInterface submodel) noexcept nogil:
|
|
301
|
+
cdef numpy.int64_t k
|
|
302
|
+
submodel.determine_potentialwaterevaporation()
|
|
303
|
+
for k in range(self.parameters.control.nmbhru):
|
|
304
|
+
self.sequences.fluxes.potentialwaterevaporation[k] = submodel.get_potentialwaterevaporation(k)
|
|
305
|
+
cpdef inline void calc_potentialwaterevaporation_v1(self) noexcept nogil:
|
|
306
|
+
if self.petmodel_typeid == 1:
|
|
307
|
+
self.calc_potentialwaterevaporation_petmodel_v1( (<masterinterface.MasterInterface>self.petmodel) )
|
|
308
|
+
elif self.petmodel_typeid == 2:
|
|
309
|
+
self.calc_potentialwaterevaporation_petmodel_v2( (<masterinterface.MasterInterface>self.petmodel) )
|
|
310
|
+
cpdef inline void calc_waterevaporation_v2(self) noexcept nogil:
|
|
311
|
+
cdef numpy.int64_t k
|
|
312
|
+
for k in range(self.parameters.control.nmbhru):
|
|
313
|
+
if self.parameters.control.water[k]:
|
|
314
|
+
self.sequences.fluxes.waterevaporation[k] = self.sequences.fluxes.potentialwaterevaporation[k]
|
|
315
|
+
else:
|
|
316
|
+
self.sequences.fluxes.waterevaporation[k] = 0.0
|
|
317
|
+
cpdef inline void calc_interceptedwater_v1(self) noexcept nogil:
|
|
318
|
+
if self.intercmodel_typeid == 1:
|
|
319
|
+
self.calc_interceptedwater_intercmodel_v1( (<masterinterface.MasterInterface>self.intercmodel) )
|
|
320
|
+
cpdef inline void calc_interceptionevaporation_v1(self) noexcept nogil:
|
|
321
|
+
cdef numpy.int64_t k
|
|
322
|
+
for k in range(self.parameters.control.nmbhru):
|
|
323
|
+
if self.parameters.control.interception[k]:
|
|
324
|
+
self.sequences.fluxes.interceptionevaporation[k] = min( self.sequences.fluxes.potentialinterceptionevaporation[k], self.sequences.factors.interceptedwater[k] )
|
|
325
|
+
else:
|
|
326
|
+
self.sequences.fluxes.interceptionevaporation[k] = 0.0
|
|
327
|
+
cpdef inline void calc_soilwater_v1(self) noexcept nogil:
|
|
328
|
+
if self.soilwatermodel_typeid == 1:
|
|
329
|
+
self.calc_soilwater_soilwatermodel_v1( (<masterinterface.MasterInterface>self.soilwatermodel) )
|
|
330
|
+
cpdef inline void calc_potentialsoilevapotranspiration_petmodel_v1(self, masterinterface.MasterInterface submodel) noexcept nogil:
|
|
331
|
+
cdef numpy.int64_t k
|
|
332
|
+
for k in range(self.parameters.control.nmbhru):
|
|
333
|
+
self.sequences.fluxes.potentialsoilevapotranspiration[k] = ( submodel.get_potentialevapotranspiration(k) )
|
|
334
|
+
cpdef inline void calc_potentialsoilevapotranspiration_petmodel_v2(self, masterinterface.MasterInterface submodel) noexcept nogil:
|
|
335
|
+
cdef numpy.int64_t k
|
|
336
|
+
submodel.determine_potentialsoilevapotranspiration()
|
|
337
|
+
for k in range(self.parameters.control.nmbhru):
|
|
338
|
+
self.sequences.fluxes.potentialsoilevapotranspiration[k] = ( submodel.get_potentialsoilevapotranspiration(k) )
|
|
339
|
+
cpdef inline void calc_potentialsoilevapotranspiration_v2(self) noexcept nogil:
|
|
340
|
+
if self.petmodel_typeid == 1:
|
|
341
|
+
self.calc_potentialsoilevapotranspiration_petmodel_v1( (<masterinterface.MasterInterface>self.petmodel) )
|
|
342
|
+
elif self.petmodel_typeid == 2:
|
|
343
|
+
self.calc_potentialsoilevapotranspiration_petmodel_v2( (<masterinterface.MasterInterface>self.petmodel) )
|
|
344
|
+
cpdef inline void calc_soilevapotranspiration_v2(self) noexcept nogil:
|
|
345
|
+
cdef double temp
|
|
346
|
+
cdef double moisture
|
|
347
|
+
cdef numpy.int64_t k
|
|
348
|
+
for k in range(self.parameters.control.nmbhru):
|
|
349
|
+
if self.parameters.control.soil[k]:
|
|
350
|
+
self.sequences.fluxes.soilevapotranspiration[k] = self.sequences.fluxes.potentialsoilevapotranspiration[k]
|
|
351
|
+
if self.sequences.fluxes.soilevapotranspiration[k] > 0.0:
|
|
352
|
+
moisture = self.sequences.factors.soilwater[k] / self.parameters.control.maxsoilwater[k]
|
|
353
|
+
if moisture <= 0.0:
|
|
354
|
+
self.sequences.fluxes.soilevapotranspiration[k] = 0.0
|
|
355
|
+
elif moisture <= 1.0:
|
|
356
|
+
temp = exp(-self.parameters.control.dissefactor[k] * moisture)
|
|
357
|
+
self.sequences.fluxes.soilevapotranspiration[k] = self.sequences.fluxes.soilevapotranspiration[k] * ((1.0 - temp) / ( 1.0 + temp - 2.0 * exp(-self.parameters.control.dissefactor[k]) ))
|
|
358
|
+
else:
|
|
359
|
+
self.sequences.fluxes.soilevapotranspiration[k] = 0.0
|
|
360
|
+
cpdef inline void update_soilevapotranspiration_v3(self) noexcept nogil:
|
|
361
|
+
cdef numpy.int64_t k
|
|
362
|
+
for k in range(self.parameters.control.nmbhru):
|
|
363
|
+
if self.parameters.control.soil[k]:
|
|
364
|
+
if self.parameters.control.interception[k]:
|
|
365
|
+
if self.sequences.fluxes.potentialinterceptionevaporation[k] == 0.0:
|
|
366
|
+
self.sequences.fluxes.soilevapotranspiration[k] = 0.0
|
|
367
|
+
else:
|
|
368
|
+
self.sequences.fluxes.soilevapotranspiration[k] = self.sequences.fluxes.soilevapotranspiration[k] * (( self.sequences.fluxes.potentialinterceptionevaporation[k] - self.sequences.fluxes.interceptionevaporation[k] ) / self.sequences.fluxes.potentialinterceptionevaporation[k])
|
|
369
|
+
else:
|
|
370
|
+
self.sequences.fluxes.soilevapotranspiration[k] = 0.0
|
|
371
|
+
cpdef inline void calc_interceptedwater_intercmodel_v1(self, masterinterface.MasterInterface submodel) noexcept nogil:
|
|
372
|
+
cdef numpy.int64_t k
|
|
373
|
+
for k in range(self.parameters.control.nmbhru):
|
|
374
|
+
self.sequences.factors.interceptedwater[k] = submodel.get_interceptedwater(k)
|
|
375
|
+
cpdef inline void calc_soilwater_soilwatermodel_v1(self, masterinterface.MasterInterface submodel) noexcept nogil:
|
|
376
|
+
cdef numpy.int64_t k
|
|
377
|
+
for k in range(self.parameters.control.nmbhru):
|
|
378
|
+
self.sequences.factors.soilwater[k] = submodel.get_soilwater(k)
|
|
379
|
+
cpdef double get_waterevaporation(self, numpy.int64_t k) noexcept nogil:
|
|
380
|
+
return self.sequences.fluxes.waterevaporation[k]
|
|
381
|
+
cpdef double get_interceptionevaporation(self, numpy.int64_t k) noexcept nogil:
|
|
382
|
+
return self.sequences.fluxes.interceptionevaporation[k]
|
|
383
|
+
cpdef double get_soilevapotranspiration(self, numpy.int64_t k) noexcept nogil:
|
|
384
|
+
return self.sequences.fluxes.soilevapotranspiration[k]
|
|
385
|
+
cpdef inline void calc_potentialinterceptionevaporation(self) noexcept nogil:
|
|
386
|
+
if self.petmodel_typeid == 1:
|
|
387
|
+
self.calc_potentialinterceptionevaporation_petmodel_v1( (<masterinterface.MasterInterface>self.petmodel) )
|
|
388
|
+
elif self.petmodel_typeid == 2:
|
|
389
|
+
self.calc_potentialinterceptionevaporation_petmodel_v2( (<masterinterface.MasterInterface>self.petmodel) )
|
|
390
|
+
cpdef inline void calc_potentialwaterevaporation(self) noexcept nogil:
|
|
391
|
+
if self.petmodel_typeid == 1:
|
|
392
|
+
self.calc_potentialwaterevaporation_petmodel_v1( (<masterinterface.MasterInterface>self.petmodel) )
|
|
393
|
+
elif self.petmodel_typeid == 2:
|
|
394
|
+
self.calc_potentialwaterevaporation_petmodel_v2( (<masterinterface.MasterInterface>self.petmodel) )
|
|
395
|
+
cpdef inline void calc_waterevaporation(self) noexcept nogil:
|
|
396
|
+
cdef numpy.int64_t k
|
|
397
|
+
for k in range(self.parameters.control.nmbhru):
|
|
398
|
+
if self.parameters.control.water[k]:
|
|
399
|
+
self.sequences.fluxes.waterevaporation[k] = self.sequences.fluxes.potentialwaterevaporation[k]
|
|
400
|
+
else:
|
|
401
|
+
self.sequences.fluxes.waterevaporation[k] = 0.0
|
|
402
|
+
cpdef inline void calc_interceptedwater(self) noexcept nogil:
|
|
403
|
+
if self.intercmodel_typeid == 1:
|
|
404
|
+
self.calc_interceptedwater_intercmodel_v1( (<masterinterface.MasterInterface>self.intercmodel) )
|
|
405
|
+
cpdef inline void calc_interceptionevaporation(self) noexcept nogil:
|
|
406
|
+
cdef numpy.int64_t k
|
|
407
|
+
for k in range(self.parameters.control.nmbhru):
|
|
408
|
+
if self.parameters.control.interception[k]:
|
|
409
|
+
self.sequences.fluxes.interceptionevaporation[k] = min( self.sequences.fluxes.potentialinterceptionevaporation[k], self.sequences.factors.interceptedwater[k] )
|
|
410
|
+
else:
|
|
411
|
+
self.sequences.fluxes.interceptionevaporation[k] = 0.0
|
|
412
|
+
cpdef inline void calc_soilwater(self) noexcept nogil:
|
|
413
|
+
if self.soilwatermodel_typeid == 1:
|
|
414
|
+
self.calc_soilwater_soilwatermodel_v1( (<masterinterface.MasterInterface>self.soilwatermodel) )
|
|
415
|
+
cpdef inline void calc_potentialsoilevapotranspiration(self) noexcept nogil:
|
|
416
|
+
if self.petmodel_typeid == 1:
|
|
417
|
+
self.calc_potentialsoilevapotranspiration_petmodel_v1( (<masterinterface.MasterInterface>self.petmodel) )
|
|
418
|
+
elif self.petmodel_typeid == 2:
|
|
419
|
+
self.calc_potentialsoilevapotranspiration_petmodel_v2( (<masterinterface.MasterInterface>self.petmodel) )
|
|
420
|
+
cpdef inline void calc_soilevapotranspiration(self) noexcept nogil:
|
|
421
|
+
cdef double temp
|
|
422
|
+
cdef double moisture
|
|
423
|
+
cdef numpy.int64_t k
|
|
424
|
+
for k in range(self.parameters.control.nmbhru):
|
|
425
|
+
if self.parameters.control.soil[k]:
|
|
426
|
+
self.sequences.fluxes.soilevapotranspiration[k] = self.sequences.fluxes.potentialsoilevapotranspiration[k]
|
|
427
|
+
if self.sequences.fluxes.soilevapotranspiration[k] > 0.0:
|
|
428
|
+
moisture = self.sequences.factors.soilwater[k] / self.parameters.control.maxsoilwater[k]
|
|
429
|
+
if moisture <= 0.0:
|
|
430
|
+
self.sequences.fluxes.soilevapotranspiration[k] = 0.0
|
|
431
|
+
elif moisture <= 1.0:
|
|
432
|
+
temp = exp(-self.parameters.control.dissefactor[k] * moisture)
|
|
433
|
+
self.sequences.fluxes.soilevapotranspiration[k] = self.sequences.fluxes.soilevapotranspiration[k] * ((1.0 - temp) / ( 1.0 + temp - 2.0 * exp(-self.parameters.control.dissefactor[k]) ))
|
|
434
|
+
else:
|
|
435
|
+
self.sequences.fluxes.soilevapotranspiration[k] = 0.0
|
|
436
|
+
cpdef inline void update_soilevapotranspiration(self) noexcept nogil:
|
|
437
|
+
cdef numpy.int64_t k
|
|
438
|
+
for k in range(self.parameters.control.nmbhru):
|
|
439
|
+
if self.parameters.control.soil[k]:
|
|
440
|
+
if self.parameters.control.interception[k]:
|
|
441
|
+
if self.sequences.fluxes.potentialinterceptionevaporation[k] == 0.0:
|
|
442
|
+
self.sequences.fluxes.soilevapotranspiration[k] = 0.0
|
|
443
|
+
else:
|
|
444
|
+
self.sequences.fluxes.soilevapotranspiration[k] = self.sequences.fluxes.soilevapotranspiration[k] * (( self.sequences.fluxes.potentialinterceptionevaporation[k] - self.sequences.fluxes.interceptionevaporation[k] ) / self.sequences.fluxes.potentialinterceptionevaporation[k])
|
|
445
|
+
else:
|
|
446
|
+
self.sequences.fluxes.soilevapotranspiration[k] = 0.0
|
|
447
|
+
cpdef inline void calc_interceptedwater_intercmodel(self, masterinterface.MasterInterface submodel) noexcept nogil:
|
|
448
|
+
cdef numpy.int64_t k
|
|
449
|
+
for k in range(self.parameters.control.nmbhru):
|
|
450
|
+
self.sequences.factors.interceptedwater[k] = submodel.get_interceptedwater(k)
|
|
451
|
+
cpdef inline void calc_soilwater_soilwatermodel(self, masterinterface.MasterInterface submodel) noexcept nogil:
|
|
452
|
+
cdef numpy.int64_t k
|
|
453
|
+
for k in range(self.parameters.control.nmbhru):
|
|
454
|
+
self.sequences.factors.soilwater[k] = submodel.get_soilwater(k)
|
|
455
|
+
cpdef void determine_interceptionevaporation_v1(self) noexcept nogil:
|
|
456
|
+
self.calc_potentialinterceptionevaporation_v3()
|
|
457
|
+
self.calc_interceptedwater_v1()
|
|
458
|
+
self.calc_interceptionevaporation_v1()
|
|
459
|
+
cpdef void determine_soilevapotranspiration_v2(self) noexcept nogil:
|
|
460
|
+
self.calc_soilwater_v1()
|
|
461
|
+
self.calc_potentialsoilevapotranspiration_v2()
|
|
462
|
+
self.calc_soilevapotranspiration_v2()
|
|
463
|
+
self.update_soilevapotranspiration_v3()
|
|
464
|
+
cpdef void determine_waterevaporation_v2(self) noexcept nogil:
|
|
465
|
+
self.calc_potentialwaterevaporation_v1()
|
|
466
|
+
self.calc_waterevaporation_v2()
|
|
467
|
+
cpdef void determine_interceptionevaporation(self) noexcept nogil:
|
|
468
|
+
self.calc_potentialinterceptionevaporation_v3()
|
|
469
|
+
self.calc_interceptedwater_v1()
|
|
470
|
+
self.calc_interceptionevaporation_v1()
|
|
471
|
+
cpdef void determine_soilevapotranspiration(self) noexcept nogil:
|
|
472
|
+
self.calc_soilwater_v1()
|
|
473
|
+
self.calc_potentialsoilevapotranspiration_v2()
|
|
474
|
+
self.calc_soilevapotranspiration_v2()
|
|
475
|
+
self.update_soilevapotranspiration_v3()
|
|
476
|
+
cpdef void determine_waterevaporation(self) noexcept nogil:
|
|
477
|
+
self.calc_potentialwaterevaporation_v1()
|
|
478
|
+
self.calc_waterevaporation_v2()
|