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,527 @@
|
|
|
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 FixedParameters:
|
|
49
|
+
pass
|
|
50
|
+
@cython.final
|
|
51
|
+
cdef class Sequences:
|
|
52
|
+
pass
|
|
53
|
+
@cython.final
|
|
54
|
+
cdef class InputSequences:
|
|
55
|
+
cpdef inline void load_data(self, numpy.int64_t idx) noexcept nogil:
|
|
56
|
+
cdef numpy.int64_t k
|
|
57
|
+
if self._sunshineduration_inputflag:
|
|
58
|
+
self.sunshineduration = self._sunshineduration_inputpointer[0]
|
|
59
|
+
elif self._sunshineduration_diskflag_reading:
|
|
60
|
+
self.sunshineduration = self._sunshineduration_ncarray[0]
|
|
61
|
+
elif self._sunshineduration_ramflag:
|
|
62
|
+
self.sunshineduration = self._sunshineduration_array[idx]
|
|
63
|
+
cpdef inline void save_data(self, numpy.int64_t idx) noexcept nogil:
|
|
64
|
+
cdef numpy.int64_t k
|
|
65
|
+
if self._sunshineduration_diskflag_writing:
|
|
66
|
+
self._sunshineduration_ncarray[0] = self.sunshineduration
|
|
67
|
+
if self._sunshineduration_ramflag:
|
|
68
|
+
self._sunshineduration_array[idx] = self.sunshineduration
|
|
69
|
+
cpdef inline set_pointerinput(self, str name, pointerutils.PDouble value):
|
|
70
|
+
if name == "sunshineduration":
|
|
71
|
+
self._sunshineduration_inputpointer = value.p_value
|
|
72
|
+
@cython.final
|
|
73
|
+
cdef class FactorSequences:
|
|
74
|
+
cpdef inline void load_data(self, numpy.int64_t idx) noexcept nogil:
|
|
75
|
+
cdef numpy.int64_t k
|
|
76
|
+
if self._earthsundistance_diskflag_reading:
|
|
77
|
+
self.earthsundistance = self._earthsundistance_ncarray[0]
|
|
78
|
+
elif self._earthsundistance_ramflag:
|
|
79
|
+
self.earthsundistance = self._earthsundistance_array[idx]
|
|
80
|
+
if self._solardeclination_diskflag_reading:
|
|
81
|
+
self.solardeclination = self._solardeclination_ncarray[0]
|
|
82
|
+
elif self._solardeclination_ramflag:
|
|
83
|
+
self.solardeclination = self._solardeclination_array[idx]
|
|
84
|
+
if self._timeofsunrise_diskflag_reading:
|
|
85
|
+
self.timeofsunrise = self._timeofsunrise_ncarray[0]
|
|
86
|
+
elif self._timeofsunrise_ramflag:
|
|
87
|
+
self.timeofsunrise = self._timeofsunrise_array[idx]
|
|
88
|
+
if self._timeofsunset_diskflag_reading:
|
|
89
|
+
self.timeofsunset = self._timeofsunset_ncarray[0]
|
|
90
|
+
elif self._timeofsunset_ramflag:
|
|
91
|
+
self.timeofsunset = self._timeofsunset_array[idx]
|
|
92
|
+
if self._possiblesunshineduration_diskflag_reading:
|
|
93
|
+
self.possiblesunshineduration = self._possiblesunshineduration_ncarray[0]
|
|
94
|
+
elif self._possiblesunshineduration_ramflag:
|
|
95
|
+
self.possiblesunshineduration = self._possiblesunshineduration_array[idx]
|
|
96
|
+
if self._dailypossiblesunshineduration_diskflag_reading:
|
|
97
|
+
self.dailypossiblesunshineduration = self._dailypossiblesunshineduration_ncarray[0]
|
|
98
|
+
elif self._dailypossiblesunshineduration_ramflag:
|
|
99
|
+
self.dailypossiblesunshineduration = self._dailypossiblesunshineduration_array[idx]
|
|
100
|
+
if self._dailysunshineduration_diskflag_reading:
|
|
101
|
+
self.dailysunshineduration = self._dailysunshineduration_ncarray[0]
|
|
102
|
+
elif self._dailysunshineduration_ramflag:
|
|
103
|
+
self.dailysunshineduration = self._dailysunshineduration_array[idx]
|
|
104
|
+
if self._portiondailyradiation_diskflag_reading:
|
|
105
|
+
self.portiondailyradiation = self._portiondailyradiation_ncarray[0]
|
|
106
|
+
elif self._portiondailyradiation_ramflag:
|
|
107
|
+
self.portiondailyradiation = self._portiondailyradiation_array[idx]
|
|
108
|
+
cpdef inline void save_data(self, numpy.int64_t idx) noexcept nogil:
|
|
109
|
+
cdef numpy.int64_t k
|
|
110
|
+
if self._earthsundistance_diskflag_writing:
|
|
111
|
+
self._earthsundistance_ncarray[0] = self.earthsundistance
|
|
112
|
+
if self._earthsundistance_ramflag:
|
|
113
|
+
self._earthsundistance_array[idx] = self.earthsundistance
|
|
114
|
+
if self._solardeclination_diskflag_writing:
|
|
115
|
+
self._solardeclination_ncarray[0] = self.solardeclination
|
|
116
|
+
if self._solardeclination_ramflag:
|
|
117
|
+
self._solardeclination_array[idx] = self.solardeclination
|
|
118
|
+
if self._timeofsunrise_diskflag_writing:
|
|
119
|
+
self._timeofsunrise_ncarray[0] = self.timeofsunrise
|
|
120
|
+
if self._timeofsunrise_ramflag:
|
|
121
|
+
self._timeofsunrise_array[idx] = self.timeofsunrise
|
|
122
|
+
if self._timeofsunset_diskflag_writing:
|
|
123
|
+
self._timeofsunset_ncarray[0] = self.timeofsunset
|
|
124
|
+
if self._timeofsunset_ramflag:
|
|
125
|
+
self._timeofsunset_array[idx] = self.timeofsunset
|
|
126
|
+
if self._possiblesunshineduration_diskflag_writing:
|
|
127
|
+
self._possiblesunshineduration_ncarray[0] = self.possiblesunshineduration
|
|
128
|
+
if self._possiblesunshineduration_ramflag:
|
|
129
|
+
self._possiblesunshineduration_array[idx] = self.possiblesunshineduration
|
|
130
|
+
if self._dailypossiblesunshineduration_diskflag_writing:
|
|
131
|
+
self._dailypossiblesunshineduration_ncarray[0] = self.dailypossiblesunshineduration
|
|
132
|
+
if self._dailypossiblesunshineduration_ramflag:
|
|
133
|
+
self._dailypossiblesunshineduration_array[idx] = self.dailypossiblesunshineduration
|
|
134
|
+
if self._dailysunshineduration_diskflag_writing:
|
|
135
|
+
self._dailysunshineduration_ncarray[0] = self.dailysunshineduration
|
|
136
|
+
if self._dailysunshineduration_ramflag:
|
|
137
|
+
self._dailysunshineduration_array[idx] = self.dailysunshineduration
|
|
138
|
+
if self._portiondailyradiation_diskflag_writing:
|
|
139
|
+
self._portiondailyradiation_ncarray[0] = self.portiondailyradiation
|
|
140
|
+
if self._portiondailyradiation_ramflag:
|
|
141
|
+
self._portiondailyradiation_array[idx] = self.portiondailyradiation
|
|
142
|
+
cpdef inline set_pointeroutput(self, str name, pointerutils.PDouble value):
|
|
143
|
+
if name == "earthsundistance":
|
|
144
|
+
self._earthsundistance_outputpointer = value.p_value
|
|
145
|
+
if name == "solardeclination":
|
|
146
|
+
self._solardeclination_outputpointer = value.p_value
|
|
147
|
+
if name == "timeofsunrise":
|
|
148
|
+
self._timeofsunrise_outputpointer = value.p_value
|
|
149
|
+
if name == "timeofsunset":
|
|
150
|
+
self._timeofsunset_outputpointer = value.p_value
|
|
151
|
+
if name == "possiblesunshineduration":
|
|
152
|
+
self._possiblesunshineduration_outputpointer = value.p_value
|
|
153
|
+
if name == "dailypossiblesunshineduration":
|
|
154
|
+
self._dailypossiblesunshineduration_outputpointer = value.p_value
|
|
155
|
+
if name == "dailysunshineduration":
|
|
156
|
+
self._dailysunshineduration_outputpointer = value.p_value
|
|
157
|
+
if name == "portiondailyradiation":
|
|
158
|
+
self._portiondailyradiation_outputpointer = value.p_value
|
|
159
|
+
cpdef inline void update_outputs(self) noexcept nogil:
|
|
160
|
+
if self._earthsundistance_outputflag:
|
|
161
|
+
self._earthsundistance_outputpointer[0] = self.earthsundistance
|
|
162
|
+
if self._solardeclination_outputflag:
|
|
163
|
+
self._solardeclination_outputpointer[0] = self.solardeclination
|
|
164
|
+
if self._timeofsunrise_outputflag:
|
|
165
|
+
self._timeofsunrise_outputpointer[0] = self.timeofsunrise
|
|
166
|
+
if self._timeofsunset_outputflag:
|
|
167
|
+
self._timeofsunset_outputpointer[0] = self.timeofsunset
|
|
168
|
+
if self._possiblesunshineduration_outputflag:
|
|
169
|
+
self._possiblesunshineduration_outputpointer[0] = self.possiblesunshineduration
|
|
170
|
+
if self._dailypossiblesunshineduration_outputflag:
|
|
171
|
+
self._dailypossiblesunshineduration_outputpointer[0] = self.dailypossiblesunshineduration
|
|
172
|
+
if self._dailysunshineduration_outputflag:
|
|
173
|
+
self._dailysunshineduration_outputpointer[0] = self.dailysunshineduration
|
|
174
|
+
if self._portiondailyradiation_outputflag:
|
|
175
|
+
self._portiondailyradiation_outputpointer[0] = self.portiondailyradiation
|
|
176
|
+
@cython.final
|
|
177
|
+
cdef class FluxSequences:
|
|
178
|
+
cpdef inline void load_data(self, numpy.int64_t idx) noexcept nogil:
|
|
179
|
+
cdef numpy.int64_t k
|
|
180
|
+
if self._extraterrestrialradiation_diskflag_reading:
|
|
181
|
+
self.extraterrestrialradiation = self._extraterrestrialradiation_ncarray[0]
|
|
182
|
+
elif self._extraterrestrialradiation_ramflag:
|
|
183
|
+
self.extraterrestrialradiation = self._extraterrestrialradiation_array[idx]
|
|
184
|
+
if self._clearskysolarradiation_diskflag_reading:
|
|
185
|
+
self.clearskysolarradiation = self._clearskysolarradiation_ncarray[0]
|
|
186
|
+
elif self._clearskysolarradiation_ramflag:
|
|
187
|
+
self.clearskysolarradiation = self._clearskysolarradiation_array[idx]
|
|
188
|
+
if self._unadjustedglobalradiation_diskflag_reading:
|
|
189
|
+
self.unadjustedglobalradiation = self._unadjustedglobalradiation_ncarray[0]
|
|
190
|
+
elif self._unadjustedglobalradiation_ramflag:
|
|
191
|
+
self.unadjustedglobalradiation = self._unadjustedglobalradiation_array[idx]
|
|
192
|
+
if self._dailyglobalradiation_diskflag_reading:
|
|
193
|
+
self.dailyglobalradiation = self._dailyglobalradiation_ncarray[0]
|
|
194
|
+
elif self._dailyglobalradiation_ramflag:
|
|
195
|
+
self.dailyglobalradiation = self._dailyglobalradiation_array[idx]
|
|
196
|
+
if self._globalradiation_diskflag_reading:
|
|
197
|
+
self.globalradiation = self._globalradiation_ncarray[0]
|
|
198
|
+
elif self._globalradiation_ramflag:
|
|
199
|
+
self.globalradiation = self._globalradiation_array[idx]
|
|
200
|
+
cpdef inline void save_data(self, numpy.int64_t idx) noexcept nogil:
|
|
201
|
+
cdef numpy.int64_t k
|
|
202
|
+
if self._extraterrestrialradiation_diskflag_writing:
|
|
203
|
+
self._extraterrestrialradiation_ncarray[0] = self.extraterrestrialradiation
|
|
204
|
+
if self._extraterrestrialradiation_ramflag:
|
|
205
|
+
self._extraterrestrialradiation_array[idx] = self.extraterrestrialradiation
|
|
206
|
+
if self._clearskysolarradiation_diskflag_writing:
|
|
207
|
+
self._clearskysolarradiation_ncarray[0] = self.clearskysolarradiation
|
|
208
|
+
if self._clearskysolarradiation_ramflag:
|
|
209
|
+
self._clearskysolarradiation_array[idx] = self.clearskysolarradiation
|
|
210
|
+
if self._unadjustedglobalradiation_diskflag_writing:
|
|
211
|
+
self._unadjustedglobalradiation_ncarray[0] = self.unadjustedglobalradiation
|
|
212
|
+
if self._unadjustedglobalradiation_ramflag:
|
|
213
|
+
self._unadjustedglobalradiation_array[idx] = self.unadjustedglobalradiation
|
|
214
|
+
if self._dailyglobalradiation_diskflag_writing:
|
|
215
|
+
self._dailyglobalradiation_ncarray[0] = self.dailyglobalradiation
|
|
216
|
+
if self._dailyglobalradiation_ramflag:
|
|
217
|
+
self._dailyglobalradiation_array[idx] = self.dailyglobalradiation
|
|
218
|
+
if self._globalradiation_diskflag_writing:
|
|
219
|
+
self._globalradiation_ncarray[0] = self.globalradiation
|
|
220
|
+
if self._globalradiation_ramflag:
|
|
221
|
+
self._globalradiation_array[idx] = self.globalradiation
|
|
222
|
+
cpdef inline set_pointeroutput(self, str name, pointerutils.PDouble value):
|
|
223
|
+
if name == "extraterrestrialradiation":
|
|
224
|
+
self._extraterrestrialradiation_outputpointer = value.p_value
|
|
225
|
+
if name == "clearskysolarradiation":
|
|
226
|
+
self._clearskysolarradiation_outputpointer = value.p_value
|
|
227
|
+
if name == "unadjustedglobalradiation":
|
|
228
|
+
self._unadjustedglobalradiation_outputpointer = value.p_value
|
|
229
|
+
if name == "dailyglobalradiation":
|
|
230
|
+
self._dailyglobalradiation_outputpointer = value.p_value
|
|
231
|
+
if name == "globalradiation":
|
|
232
|
+
self._globalradiation_outputpointer = value.p_value
|
|
233
|
+
cpdef inline void update_outputs(self) noexcept nogil:
|
|
234
|
+
if self._extraterrestrialradiation_outputflag:
|
|
235
|
+
self._extraterrestrialradiation_outputpointer[0] = self.extraterrestrialradiation
|
|
236
|
+
if self._clearskysolarradiation_outputflag:
|
|
237
|
+
self._clearskysolarradiation_outputpointer[0] = self.clearskysolarradiation
|
|
238
|
+
if self._unadjustedglobalradiation_outputflag:
|
|
239
|
+
self._unadjustedglobalradiation_outputpointer[0] = self.unadjustedglobalradiation
|
|
240
|
+
if self._dailyglobalradiation_outputflag:
|
|
241
|
+
self._dailyglobalradiation_outputpointer[0] = self.dailyglobalradiation
|
|
242
|
+
if self._globalradiation_outputflag:
|
|
243
|
+
self._globalradiation_outputpointer[0] = self.globalradiation
|
|
244
|
+
@cython.final
|
|
245
|
+
cdef class LogSequences:
|
|
246
|
+
pass
|
|
247
|
+
@cython.final
|
|
248
|
+
cdef class Model(masterinterface.MasterInterface):
|
|
249
|
+
cpdef inline void simulate(self, numpy.int64_t idx) noexcept nogil:
|
|
250
|
+
self.idx_sim = idx
|
|
251
|
+
self.reset_reuseflags()
|
|
252
|
+
self.load_data(idx)
|
|
253
|
+
self.run()
|
|
254
|
+
self.update_outputs()
|
|
255
|
+
cpdef void reset_reuseflags(self) noexcept nogil:
|
|
256
|
+
self.__hydpy_reuse_process_radiation_v1__ = False
|
|
257
|
+
cpdef void load_data(self, numpy.int64_t idx) noexcept nogil:
|
|
258
|
+
self.idx_sim = idx
|
|
259
|
+
self.sequences.inputs.load_data(idx)
|
|
260
|
+
cpdef void save_data(self, numpy.int64_t idx) noexcept nogil:
|
|
261
|
+
self.idx_sim = idx
|
|
262
|
+
self.sequences.inputs.save_data(idx)
|
|
263
|
+
self.sequences.factors.save_data(idx)
|
|
264
|
+
self.sequences.fluxes.save_data(idx)
|
|
265
|
+
cpdef inline void run(self) noexcept nogil:
|
|
266
|
+
self.calc_earthsundistance_v1()
|
|
267
|
+
self.calc_solardeclination_v2()
|
|
268
|
+
self.calc_timeofsunrise_timeofsunset_v1()
|
|
269
|
+
self.calc_dailypossiblesunshineduration_v1()
|
|
270
|
+
self.calc_possiblesunshineduration_v2()
|
|
271
|
+
self.update_loggedsunshineduration_v1()
|
|
272
|
+
self.calc_dailysunshineduration_v1()
|
|
273
|
+
self.calc_extraterrestrialradiation_v2()
|
|
274
|
+
self.calc_clearskysolarradiation_v1()
|
|
275
|
+
self.calc_dailyglobalradiation_v1()
|
|
276
|
+
self.calc_portiondailyradiation_v1()
|
|
277
|
+
self.adjust_clearskysolarradiation_v1()
|
|
278
|
+
self.calc_unadjustedglobalradiation_v1()
|
|
279
|
+
self.update_loggedunadjustedglobalradiation_v1()
|
|
280
|
+
self.calc_globalradiation_v2()
|
|
281
|
+
cpdef inline void update_inlets(self) noexcept nogil:
|
|
282
|
+
pass
|
|
283
|
+
cpdef inline void update_outlets(self) noexcept nogil:
|
|
284
|
+
pass
|
|
285
|
+
cpdef inline void update_receivers(self, numpy.int64_t idx) noexcept nogil:
|
|
286
|
+
self.idx_sim = idx
|
|
287
|
+
pass
|
|
288
|
+
cpdef inline void update_senders(self, numpy.int64_t idx) noexcept nogil:
|
|
289
|
+
self.idx_sim = idx
|
|
290
|
+
pass
|
|
291
|
+
cpdef inline void update_outputs(self) noexcept nogil:
|
|
292
|
+
self.sequences.factors.update_outputs()
|
|
293
|
+
self.sequences.fluxes.update_outputs()
|
|
294
|
+
cpdef inline void calc_earthsundistance_v1(self) noexcept nogil:
|
|
295
|
+
self.sequences.factors.earthsundistance = 1.0 + 0.033 * cos( 2 * self.parameters.fixed.pi / 366.0 * (self.parameters.derived.doy[self.idx_sim] + 1) )
|
|
296
|
+
cpdef inline void calc_solardeclination_v2(self) noexcept nogil:
|
|
297
|
+
self.sequences.factors.solardeclination = 0.41 * cos( 2.0 * self.parameters.fixed.pi * (self.parameters.derived.doy[self.idx_sim] - 171.0) / 365.0 )
|
|
298
|
+
cpdef inline void calc_timeofsunrise_timeofsunset_v1(self) noexcept nogil:
|
|
299
|
+
cdef double d_dt
|
|
300
|
+
self.sequences.factors.timeofsunrise = (12.0 / self.parameters.fixed.pi) * acos( tan(self.sequences.factors.solardeclination) * tan(self.parameters.derived.latituderad) + 0.0145 / cos(self.sequences.factors.solardeclination) / cos(self.parameters.derived.latituderad) )
|
|
301
|
+
self.sequences.factors.timeofsunset = 24.0 - self.sequences.factors.timeofsunrise
|
|
302
|
+
d_dt = (self.parameters.derived.utclongitude - self.parameters.control.longitude) * 4.0 / 60.0
|
|
303
|
+
self.sequences.factors.timeofsunrise = self.sequences.factors.timeofsunrise + (d_dt)
|
|
304
|
+
self.sequences.factors.timeofsunset = self.sequences.factors.timeofsunset + (d_dt)
|
|
305
|
+
cpdef inline void calc_dailypossiblesunshineduration_v1(self) noexcept nogil:
|
|
306
|
+
self.sequences.factors.dailypossiblesunshineduration = self.sequences.factors.timeofsunset - self.sequences.factors.timeofsunrise
|
|
307
|
+
cpdef inline void calc_possiblesunshineduration_v2(self) noexcept nogil:
|
|
308
|
+
cdef double d_t1
|
|
309
|
+
cdef double d_t0
|
|
310
|
+
cdef double d_stc
|
|
311
|
+
d_stc = self.parameters.derived.sct[self.idx_sim]
|
|
312
|
+
d_t0 = max((d_stc - self.parameters.derived.hours / 2.0), self.sequences.factors.timeofsunrise)
|
|
313
|
+
d_t1 = min((d_stc + self.parameters.derived.hours / 2.0), self.sequences.factors.timeofsunset)
|
|
314
|
+
self.sequences.factors.possiblesunshineduration = max(d_t1 - d_t0, 0.0)
|
|
315
|
+
cpdef inline void update_loggedsunshineduration_v1(self) noexcept nogil:
|
|
316
|
+
cdef numpy.int64_t idx
|
|
317
|
+
for idx in range(self.parameters.derived.nmblogentries - 1, 0, -1):
|
|
318
|
+
self.sequences.logs.loggedsunshineduration[idx] = self.sequences.logs.loggedsunshineduration[idx - 1]
|
|
319
|
+
self.sequences.logs.loggedsunshineduration[0] = self.sequences.inputs.sunshineduration
|
|
320
|
+
cpdef inline void calc_dailysunshineduration_v1(self) noexcept nogil:
|
|
321
|
+
cdef numpy.int64_t idx
|
|
322
|
+
self.sequences.factors.dailysunshineduration = 0.0
|
|
323
|
+
for idx in range(self.parameters.derived.nmblogentries):
|
|
324
|
+
self.sequences.factors.dailysunshineduration = self.sequences.factors.dailysunshineduration + (self.sequences.logs.loggedsunshineduration[idx])
|
|
325
|
+
cpdef inline void calc_extraterrestrialradiation_v2(self) noexcept nogil:
|
|
326
|
+
cdef double d_sunsethourangle
|
|
327
|
+
d_sunsethourangle = (self.sequences.factors.timeofsunset - self.sequences.factors.timeofsunrise) * self.parameters.fixed.pi / 24.0
|
|
328
|
+
self.sequences.fluxes.extraterrestrialradiation = ( self.parameters.fixed.solarconstant * self.sequences.factors.earthsundistance / self.parameters.fixed.pi ) * ( d_sunsethourangle * sin(self.sequences.factors.solardeclination) * sin(self.parameters.derived.latituderad) + cos(self.sequences.factors.solardeclination) * cos(self.parameters.derived.latituderad) * sin(d_sunsethourangle) )
|
|
329
|
+
cpdef inline void calc_clearskysolarradiation_v1(self) noexcept nogil:
|
|
330
|
+
cdef numpy.int64_t idx
|
|
331
|
+
idx = self.parameters.derived.moy[self.idx_sim]
|
|
332
|
+
self.sequences.fluxes.clearskysolarradiation = self.sequences.fluxes.extraterrestrialradiation * ( self.parameters.control.angstromconstant[idx] + self.parameters.control.angstromfactor[idx] )
|
|
333
|
+
cpdef inline void calc_dailyglobalradiation_v1(self) noexcept nogil:
|
|
334
|
+
self.sequences.fluxes.dailyglobalradiation = self.return_dailyglobalradiation_v1( self.sequences.factors.dailysunshineduration, self.sequences.factors.dailypossiblesunshineduration )
|
|
335
|
+
cpdef inline void calc_portiondailyradiation_v1(self) noexcept nogil:
|
|
336
|
+
cdef double d_temp
|
|
337
|
+
cdef double d_p
|
|
338
|
+
cdef double d_tlp
|
|
339
|
+
cdef double d_dt
|
|
340
|
+
cdef numpy.int64_t i
|
|
341
|
+
cdef double d_fac
|
|
342
|
+
d_fac = 2.0 * self.parameters.fixed.pi / 360.0
|
|
343
|
+
self.sequences.factors.portiondailyradiation = 0.0
|
|
344
|
+
for i in range(2):
|
|
345
|
+
if i:
|
|
346
|
+
d_dt = self.parameters.derived.hours / 2.0
|
|
347
|
+
else:
|
|
348
|
+
d_dt = -self.parameters.derived.hours / 2.0
|
|
349
|
+
d_tlp = (100.0 * d_fac) * ( (self.parameters.derived.sct[self.idx_sim] + d_dt - self.sequences.factors.timeofsunrise) / (self.sequences.factors.timeofsunset - self.sequences.factors.timeofsunrise) )
|
|
350
|
+
if d_tlp <= 0.0:
|
|
351
|
+
d_p = 0.0
|
|
352
|
+
elif d_tlp < 100.0 * d_fac:
|
|
353
|
+
d_p = 50.0 - 50.0 * cos(1.8 * d_tlp)
|
|
354
|
+
d_temp = 3.4 * sin(3.6 * d_tlp) ** 2
|
|
355
|
+
if d_tlp <= 50.0 * d_fac:
|
|
356
|
+
d_p = d_p - (d_temp)
|
|
357
|
+
else:
|
|
358
|
+
d_p = d_p + (d_temp)
|
|
359
|
+
else:
|
|
360
|
+
d_p = 100.0
|
|
361
|
+
if i:
|
|
362
|
+
self.sequences.factors.portiondailyradiation = self.sequences.factors.portiondailyradiation + (d_p)
|
|
363
|
+
else:
|
|
364
|
+
self.sequences.factors.portiondailyradiation = self.sequences.factors.portiondailyradiation - (d_p)
|
|
365
|
+
cpdef inline void adjust_clearskysolarradiation_v1(self) noexcept nogil:
|
|
366
|
+
self.sequences.fluxes.clearskysolarradiation = self.sequences.fluxes.clearskysolarradiation * (( self.parameters.derived.nmblogentries * self.sequences.factors.portiondailyradiation / 100.0 ))
|
|
367
|
+
cpdef inline void calc_unadjustedglobalradiation_v1(self) noexcept nogil:
|
|
368
|
+
cdef double d_pos
|
|
369
|
+
cdef double d_act
|
|
370
|
+
if self.sequences.factors.possiblesunshineduration > 0.0:
|
|
371
|
+
d_act = self.sequences.inputs.sunshineduration
|
|
372
|
+
d_pos = self.sequences.factors.possiblesunshineduration
|
|
373
|
+
else:
|
|
374
|
+
d_act = self.sequences.factors.dailysunshineduration
|
|
375
|
+
d_pos = self.sequences.factors.dailypossiblesunshineduration
|
|
376
|
+
self.sequences.fluxes.unadjustedglobalradiation = ( self.parameters.derived.nmblogentries * self.sequences.factors.portiondailyradiation / 100.0 ) * self.return_dailyglobalradiation_v1(d_act, d_pos)
|
|
377
|
+
cpdef inline void update_loggedunadjustedglobalradiation_v1(self) noexcept nogil:
|
|
378
|
+
cdef numpy.int64_t idx
|
|
379
|
+
for idx in range(self.parameters.derived.nmblogentries - 1, 0, -1):
|
|
380
|
+
self.sequences.logs.loggedunadjustedglobalradiation[idx] = ( self.sequences.logs.loggedunadjustedglobalradiation[idx - 1] )
|
|
381
|
+
self.sequences.logs.loggedunadjustedglobalradiation[0] = self.sequences.fluxes.unadjustedglobalradiation
|
|
382
|
+
cpdef inline void calc_globalradiation_v2(self) noexcept nogil:
|
|
383
|
+
cdef double d_glob_mean
|
|
384
|
+
cdef numpy.int64_t idx
|
|
385
|
+
cdef double d_glob_sum
|
|
386
|
+
d_glob_sum = 0.0
|
|
387
|
+
for idx in range(self.parameters.derived.nmblogentries):
|
|
388
|
+
d_glob_sum = d_glob_sum + (self.sequences.logs.loggedunadjustedglobalradiation[idx])
|
|
389
|
+
d_glob_mean = d_glob_sum / self.parameters.derived.nmblogentries
|
|
390
|
+
self.sequences.fluxes.globalradiation = ( self.sequences.fluxes.unadjustedglobalradiation * self.sequences.fluxes.dailyglobalradiation / d_glob_mean )
|
|
391
|
+
cpdef void process_radiation_v1(self) noexcept nogil:
|
|
392
|
+
if not self.__hydpy_reuse_process_radiation_v1__:
|
|
393
|
+
self.run()
|
|
394
|
+
self.__hydpy_reuse_process_radiation_v1__ = True
|
|
395
|
+
cpdef double get_possiblesunshineduration_v1(self) noexcept nogil:
|
|
396
|
+
return self.sequences.factors.possiblesunshineduration
|
|
397
|
+
cpdef double get_sunshineduration_v2(self) noexcept nogil:
|
|
398
|
+
return self.sequences.inputs.sunshineduration
|
|
399
|
+
cpdef double get_clearskysolarradiation_v1(self) noexcept nogil:
|
|
400
|
+
return self.sequences.fluxes.clearskysolarradiation
|
|
401
|
+
cpdef double get_globalradiation_v1(self) noexcept nogil:
|
|
402
|
+
return self.sequences.fluxes.globalradiation
|
|
403
|
+
cpdef inline double return_dailyglobalradiation_v1(self, double sunshineduration, double possiblesunshineduration) noexcept nogil:
|
|
404
|
+
cdef numpy.int64_t idx
|
|
405
|
+
if possiblesunshineduration > 0.0:
|
|
406
|
+
idx = self.parameters.derived.moy[self.idx_sim]
|
|
407
|
+
if (sunshineduration <= 0.0) and (self.parameters.derived.days >= 1.0):
|
|
408
|
+
return self.sequences.fluxes.extraterrestrialradiation * self.parameters.control.angstromalternative[idx]
|
|
409
|
+
return self.sequences.fluxes.extraterrestrialradiation * ( self.parameters.control.angstromconstant[idx] + self.parameters.control.angstromfactor[idx] * sunshineduration / possiblesunshineduration )
|
|
410
|
+
return 0.0
|
|
411
|
+
cpdef inline void calc_earthsundistance(self) noexcept nogil:
|
|
412
|
+
self.sequences.factors.earthsundistance = 1.0 + 0.033 * cos( 2 * self.parameters.fixed.pi / 366.0 * (self.parameters.derived.doy[self.idx_sim] + 1) )
|
|
413
|
+
cpdef inline void calc_solardeclination(self) noexcept nogil:
|
|
414
|
+
self.sequences.factors.solardeclination = 0.41 * cos( 2.0 * self.parameters.fixed.pi * (self.parameters.derived.doy[self.idx_sim] - 171.0) / 365.0 )
|
|
415
|
+
cpdef inline void calc_timeofsunrise_timeofsunset(self) noexcept nogil:
|
|
416
|
+
cdef double d_dt
|
|
417
|
+
self.sequences.factors.timeofsunrise = (12.0 / self.parameters.fixed.pi) * acos( tan(self.sequences.factors.solardeclination) * tan(self.parameters.derived.latituderad) + 0.0145 / cos(self.sequences.factors.solardeclination) / cos(self.parameters.derived.latituderad) )
|
|
418
|
+
self.sequences.factors.timeofsunset = 24.0 - self.sequences.factors.timeofsunrise
|
|
419
|
+
d_dt = (self.parameters.derived.utclongitude - self.parameters.control.longitude) * 4.0 / 60.0
|
|
420
|
+
self.sequences.factors.timeofsunrise = self.sequences.factors.timeofsunrise + (d_dt)
|
|
421
|
+
self.sequences.factors.timeofsunset = self.sequences.factors.timeofsunset + (d_dt)
|
|
422
|
+
cpdef inline void calc_dailypossiblesunshineduration(self) noexcept nogil:
|
|
423
|
+
self.sequences.factors.dailypossiblesunshineduration = self.sequences.factors.timeofsunset - self.sequences.factors.timeofsunrise
|
|
424
|
+
cpdef inline void calc_possiblesunshineduration(self) noexcept nogil:
|
|
425
|
+
cdef double d_t1
|
|
426
|
+
cdef double d_t0
|
|
427
|
+
cdef double d_stc
|
|
428
|
+
d_stc = self.parameters.derived.sct[self.idx_sim]
|
|
429
|
+
d_t0 = max((d_stc - self.parameters.derived.hours / 2.0), self.sequences.factors.timeofsunrise)
|
|
430
|
+
d_t1 = min((d_stc + self.parameters.derived.hours / 2.0), self.sequences.factors.timeofsunset)
|
|
431
|
+
self.sequences.factors.possiblesunshineduration = max(d_t1 - d_t0, 0.0)
|
|
432
|
+
cpdef inline void update_loggedsunshineduration(self) noexcept nogil:
|
|
433
|
+
cdef numpy.int64_t idx
|
|
434
|
+
for idx in range(self.parameters.derived.nmblogentries - 1, 0, -1):
|
|
435
|
+
self.sequences.logs.loggedsunshineduration[idx] = self.sequences.logs.loggedsunshineduration[idx - 1]
|
|
436
|
+
self.sequences.logs.loggedsunshineduration[0] = self.sequences.inputs.sunshineduration
|
|
437
|
+
cpdef inline void calc_dailysunshineduration(self) noexcept nogil:
|
|
438
|
+
cdef numpy.int64_t idx
|
|
439
|
+
self.sequences.factors.dailysunshineduration = 0.0
|
|
440
|
+
for idx in range(self.parameters.derived.nmblogentries):
|
|
441
|
+
self.sequences.factors.dailysunshineduration = self.sequences.factors.dailysunshineduration + (self.sequences.logs.loggedsunshineduration[idx])
|
|
442
|
+
cpdef inline void calc_extraterrestrialradiation(self) noexcept nogil:
|
|
443
|
+
cdef double d_sunsethourangle
|
|
444
|
+
d_sunsethourangle = (self.sequences.factors.timeofsunset - self.sequences.factors.timeofsunrise) * self.parameters.fixed.pi / 24.0
|
|
445
|
+
self.sequences.fluxes.extraterrestrialradiation = ( self.parameters.fixed.solarconstant * self.sequences.factors.earthsundistance / self.parameters.fixed.pi ) * ( d_sunsethourangle * sin(self.sequences.factors.solardeclination) * sin(self.parameters.derived.latituderad) + cos(self.sequences.factors.solardeclination) * cos(self.parameters.derived.latituderad) * sin(d_sunsethourangle) )
|
|
446
|
+
cpdef inline void calc_clearskysolarradiation(self) noexcept nogil:
|
|
447
|
+
cdef numpy.int64_t idx
|
|
448
|
+
idx = self.parameters.derived.moy[self.idx_sim]
|
|
449
|
+
self.sequences.fluxes.clearskysolarradiation = self.sequences.fluxes.extraterrestrialradiation * ( self.parameters.control.angstromconstant[idx] + self.parameters.control.angstromfactor[idx] )
|
|
450
|
+
cpdef inline void calc_dailyglobalradiation(self) noexcept nogil:
|
|
451
|
+
self.sequences.fluxes.dailyglobalradiation = self.return_dailyglobalradiation_v1( self.sequences.factors.dailysunshineduration, self.sequences.factors.dailypossiblesunshineduration )
|
|
452
|
+
cpdef inline void calc_portiondailyradiation(self) noexcept nogil:
|
|
453
|
+
cdef double d_temp
|
|
454
|
+
cdef double d_p
|
|
455
|
+
cdef double d_tlp
|
|
456
|
+
cdef double d_dt
|
|
457
|
+
cdef numpy.int64_t i
|
|
458
|
+
cdef double d_fac
|
|
459
|
+
d_fac = 2.0 * self.parameters.fixed.pi / 360.0
|
|
460
|
+
self.sequences.factors.portiondailyradiation = 0.0
|
|
461
|
+
for i in range(2):
|
|
462
|
+
if i:
|
|
463
|
+
d_dt = self.parameters.derived.hours / 2.0
|
|
464
|
+
else:
|
|
465
|
+
d_dt = -self.parameters.derived.hours / 2.0
|
|
466
|
+
d_tlp = (100.0 * d_fac) * ( (self.parameters.derived.sct[self.idx_sim] + d_dt - self.sequences.factors.timeofsunrise) / (self.sequences.factors.timeofsunset - self.sequences.factors.timeofsunrise) )
|
|
467
|
+
if d_tlp <= 0.0:
|
|
468
|
+
d_p = 0.0
|
|
469
|
+
elif d_tlp < 100.0 * d_fac:
|
|
470
|
+
d_p = 50.0 - 50.0 * cos(1.8 * d_tlp)
|
|
471
|
+
d_temp = 3.4 * sin(3.6 * d_tlp) ** 2
|
|
472
|
+
if d_tlp <= 50.0 * d_fac:
|
|
473
|
+
d_p = d_p - (d_temp)
|
|
474
|
+
else:
|
|
475
|
+
d_p = d_p + (d_temp)
|
|
476
|
+
else:
|
|
477
|
+
d_p = 100.0
|
|
478
|
+
if i:
|
|
479
|
+
self.sequences.factors.portiondailyradiation = self.sequences.factors.portiondailyradiation + (d_p)
|
|
480
|
+
else:
|
|
481
|
+
self.sequences.factors.portiondailyradiation = self.sequences.factors.portiondailyradiation - (d_p)
|
|
482
|
+
cpdef inline void adjust_clearskysolarradiation(self) noexcept nogil:
|
|
483
|
+
self.sequences.fluxes.clearskysolarradiation = self.sequences.fluxes.clearskysolarradiation * (( self.parameters.derived.nmblogentries * self.sequences.factors.portiondailyradiation / 100.0 ))
|
|
484
|
+
cpdef inline void calc_unadjustedglobalradiation(self) noexcept nogil:
|
|
485
|
+
cdef double d_pos
|
|
486
|
+
cdef double d_act
|
|
487
|
+
if self.sequences.factors.possiblesunshineduration > 0.0:
|
|
488
|
+
d_act = self.sequences.inputs.sunshineduration
|
|
489
|
+
d_pos = self.sequences.factors.possiblesunshineduration
|
|
490
|
+
else:
|
|
491
|
+
d_act = self.sequences.factors.dailysunshineduration
|
|
492
|
+
d_pos = self.sequences.factors.dailypossiblesunshineduration
|
|
493
|
+
self.sequences.fluxes.unadjustedglobalradiation = ( self.parameters.derived.nmblogentries * self.sequences.factors.portiondailyradiation / 100.0 ) * self.return_dailyglobalradiation_v1(d_act, d_pos)
|
|
494
|
+
cpdef inline void update_loggedunadjustedglobalradiation(self) noexcept nogil:
|
|
495
|
+
cdef numpy.int64_t idx
|
|
496
|
+
for idx in range(self.parameters.derived.nmblogentries - 1, 0, -1):
|
|
497
|
+
self.sequences.logs.loggedunadjustedglobalradiation[idx] = ( self.sequences.logs.loggedunadjustedglobalradiation[idx - 1] )
|
|
498
|
+
self.sequences.logs.loggedunadjustedglobalradiation[0] = self.sequences.fluxes.unadjustedglobalradiation
|
|
499
|
+
cpdef inline void calc_globalradiation(self) noexcept nogil:
|
|
500
|
+
cdef double d_glob_mean
|
|
501
|
+
cdef numpy.int64_t idx
|
|
502
|
+
cdef double d_glob_sum
|
|
503
|
+
d_glob_sum = 0.0
|
|
504
|
+
for idx in range(self.parameters.derived.nmblogentries):
|
|
505
|
+
d_glob_sum = d_glob_sum + (self.sequences.logs.loggedunadjustedglobalradiation[idx])
|
|
506
|
+
d_glob_mean = d_glob_sum / self.parameters.derived.nmblogentries
|
|
507
|
+
self.sequences.fluxes.globalradiation = ( self.sequences.fluxes.unadjustedglobalradiation * self.sequences.fluxes.dailyglobalradiation / d_glob_mean )
|
|
508
|
+
cpdef void process_radiation(self) noexcept nogil:
|
|
509
|
+
if not self.__hydpy_reuse_process_radiation_v1__:
|
|
510
|
+
self.run()
|
|
511
|
+
self.__hydpy_reuse_process_radiation_v1__ = True
|
|
512
|
+
cpdef double get_possiblesunshineduration(self) noexcept nogil:
|
|
513
|
+
return self.sequences.factors.possiblesunshineduration
|
|
514
|
+
cpdef double get_sunshineduration(self) noexcept nogil:
|
|
515
|
+
return self.sequences.inputs.sunshineduration
|
|
516
|
+
cpdef double get_clearskysolarradiation(self) noexcept nogil:
|
|
517
|
+
return self.sequences.fluxes.clearskysolarradiation
|
|
518
|
+
cpdef double get_globalradiation(self) noexcept nogil:
|
|
519
|
+
return self.sequences.fluxes.globalradiation
|
|
520
|
+
cpdef inline double return_dailyglobalradiation(self, double sunshineduration, double possiblesunshineduration) noexcept nogil:
|
|
521
|
+
cdef numpy.int64_t idx
|
|
522
|
+
if possiblesunshineduration > 0.0:
|
|
523
|
+
idx = self.parameters.derived.moy[self.idx_sim]
|
|
524
|
+
if (sunshineduration <= 0.0) and (self.parameters.derived.days >= 1.0):
|
|
525
|
+
return self.sequences.fluxes.extraterrestrialradiation * self.parameters.control.angstromalternative[idx]
|
|
526
|
+
return self.sequences.fluxes.extraterrestrialradiation * ( self.parameters.control.angstromconstant[idx] + self.parameters.control.angstromfactor[idx] * sunshineduration / possiblesunshineduration )
|
|
527
|
+
return 0.0
|
|
Binary file
|
|
@@ -0,0 +1,112 @@
|
|
|
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[:] precipitationfactor
|
|
40
|
+
@cython.final
|
|
41
|
+
cdef class DerivedParameters:
|
|
42
|
+
cdef public double[:] hruareafraction
|
|
43
|
+
@cython.final
|
|
44
|
+
cdef class Sequences:
|
|
45
|
+
cdef public InputSequences inputs
|
|
46
|
+
cdef public FluxSequences fluxes
|
|
47
|
+
@cython.final
|
|
48
|
+
cdef class InputSequences:
|
|
49
|
+
cdef public double precipitation
|
|
50
|
+
cdef public numpy.int64_t _precipitation_ndim
|
|
51
|
+
cdef public numpy.int64_t _precipitation_length
|
|
52
|
+
cdef public bint _precipitation_ramflag
|
|
53
|
+
cdef public double[:] _precipitation_array
|
|
54
|
+
cdef public bint _precipitation_diskflag_reading
|
|
55
|
+
cdef public bint _precipitation_diskflag_writing
|
|
56
|
+
cdef public double[:] _precipitation_ncarray
|
|
57
|
+
cdef public bint _precipitation_inputflag
|
|
58
|
+
cdef double *_precipitation_inputpointer
|
|
59
|
+
cpdef inline void load_data(self, numpy.int64_t idx) noexcept nogil
|
|
60
|
+
cpdef inline void save_data(self, numpy.int64_t idx) noexcept nogil
|
|
61
|
+
cpdef inline set_pointerinput(self, str name, pointerutils.PDouble value)
|
|
62
|
+
@cython.final
|
|
63
|
+
cdef class FluxSequences:
|
|
64
|
+
cdef public double[:] precipitation
|
|
65
|
+
cdef public numpy.int64_t _precipitation_ndim
|
|
66
|
+
cdef public numpy.int64_t _precipitation_length
|
|
67
|
+
cdef public numpy.int64_t _precipitation_length_0
|
|
68
|
+
cdef public bint _precipitation_ramflag
|
|
69
|
+
cdef public double[:,:] _precipitation_array
|
|
70
|
+
cdef public bint _precipitation_diskflag_reading
|
|
71
|
+
cdef public bint _precipitation_diskflag_writing
|
|
72
|
+
cdef public double[:] _precipitation_ncarray
|
|
73
|
+
cdef public double meanprecipitation
|
|
74
|
+
cdef public numpy.int64_t _meanprecipitation_ndim
|
|
75
|
+
cdef public numpy.int64_t _meanprecipitation_length
|
|
76
|
+
cdef public bint _meanprecipitation_ramflag
|
|
77
|
+
cdef public double[:] _meanprecipitation_array
|
|
78
|
+
cdef public bint _meanprecipitation_diskflag_reading
|
|
79
|
+
cdef public bint _meanprecipitation_diskflag_writing
|
|
80
|
+
cdef public double[:] _meanprecipitation_ncarray
|
|
81
|
+
cdef public bint _meanprecipitation_outputflag
|
|
82
|
+
cdef double *_meanprecipitation_outputpointer
|
|
83
|
+
cpdef inline void load_data(self, numpy.int64_t idx) noexcept nogil
|
|
84
|
+
cpdef inline void save_data(self, numpy.int64_t idx) noexcept nogil
|
|
85
|
+
cpdef inline set_pointeroutput(self, str name, pointerutils.PDouble value)
|
|
86
|
+
cpdef inline void update_outputs(self) noexcept nogil
|
|
87
|
+
@cython.final
|
|
88
|
+
cdef class Model(masterinterface.MasterInterface):
|
|
89
|
+
cdef public Parameters parameters
|
|
90
|
+
cdef public Sequences sequences
|
|
91
|
+
cpdef inline void simulate(self, numpy.int64_t idx) noexcept nogil
|
|
92
|
+
cpdef void reset_reuseflags(self) noexcept nogil
|
|
93
|
+
cpdef void load_data(self, numpy.int64_t idx) noexcept nogil
|
|
94
|
+
cpdef void save_data(self, numpy.int64_t idx) noexcept nogil
|
|
95
|
+
cpdef inline void run(self) noexcept nogil
|
|
96
|
+
cpdef inline void update_inlets(self) noexcept nogil
|
|
97
|
+
cpdef inline void update_outlets(self) noexcept nogil
|
|
98
|
+
cpdef inline void update_receivers(self, numpy.int64_t idx) noexcept nogil
|
|
99
|
+
cpdef inline void update_senders(self, numpy.int64_t idx) noexcept nogil
|
|
100
|
+
cpdef inline void update_outputs(self) noexcept nogil
|
|
101
|
+
cpdef inline void calc_precipitation_v1(self) noexcept nogil
|
|
102
|
+
cpdef inline void adjust_precipitation_v1(self) noexcept nogil
|
|
103
|
+
cpdef inline void calc_meanprecipitation_v1(self) noexcept nogil
|
|
104
|
+
cpdef void determine_precipitation_v1(self) noexcept nogil
|
|
105
|
+
cpdef double get_precipitation_v1(self, numpy.int64_t s) noexcept nogil
|
|
106
|
+
cpdef double get_meanprecipitation_v1(self) noexcept nogil
|
|
107
|
+
cpdef inline void calc_precipitation(self) noexcept nogil
|
|
108
|
+
cpdef inline void adjust_precipitation(self) noexcept nogil
|
|
109
|
+
cpdef inline void calc_meanprecipitation(self) noexcept nogil
|
|
110
|
+
cpdef void determine_precipitation(self) noexcept nogil
|
|
111
|
+
cpdef double get_precipitation(self, numpy.int64_t s) noexcept nogil
|
|
112
|
+
cpdef double get_meanprecipitation(self) noexcept nogil
|