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.
Files changed (890) hide show
  1. hydpy/__init__.py +275 -0
  2. hydpy/aliases.py +2554 -0
  3. hydpy/auxs/__init__.py +0 -0
  4. hydpy/auxs/anntools.py +1305 -0
  5. hydpy/auxs/armatools.py +883 -0
  6. hydpy/auxs/calibtools.py +3337 -0
  7. hydpy/auxs/interptools.py +1094 -0
  8. hydpy/auxs/iuhtools.py +543 -0
  9. hydpy/auxs/networktools.py +597 -0
  10. hydpy/auxs/ppolytools.py +809 -0
  11. hydpy/auxs/quadtools.py +61 -0
  12. hydpy/auxs/roottools.py +228 -0
  13. hydpy/auxs/smoothtools.py +273 -0
  14. hydpy/auxs/statstools.py +2125 -0
  15. hydpy/auxs/validtools.py +81 -0
  16. hydpy/conf/HydPyConfigBase.xsd +68637 -0
  17. hydpy/conf/HydPyConfigBase.xsdt +358 -0
  18. hydpy/conf/HydPyConfigMultipleRuns.xsd +25 -0
  19. hydpy/conf/HydPyConfigSingleRun.xsd +24 -0
  20. hydpy/conf/__init__.py +0 -0
  21. hydpy/conf/a_coefficients_explicit_lobatto_sequence.npy +0 -0
  22. hydpy/conf/support_points_for_smoothpar_logistic2.npy +0 -0
  23. hydpy/config.py +42 -0
  24. hydpy/core/__init__.py +0 -0
  25. hydpy/core/aliastools.py +214 -0
  26. hydpy/core/autodoctools.py +1947 -0
  27. hydpy/core/auxfiletools.py +1169 -0
  28. hydpy/core/devicetools.py +3810 -0
  29. hydpy/core/exceptiontools.py +269 -0
  30. hydpy/core/filetools.py +1985 -0
  31. hydpy/core/hydpytools.py +3089 -0
  32. hydpy/core/importtools.py +1398 -0
  33. hydpy/core/indextools.py +345 -0
  34. hydpy/core/itemtools.py +1849 -0
  35. hydpy/core/masktools.py +460 -0
  36. hydpy/core/modeltools.py +4868 -0
  37. hydpy/core/netcdftools.py +2683 -0
  38. hydpy/core/objecttools.py +2023 -0
  39. hydpy/core/optiontools.py +1045 -0
  40. hydpy/core/parametertools.py +4674 -0
  41. hydpy/core/printtools.py +222 -0
  42. hydpy/core/propertytools.py +643 -0
  43. hydpy/core/pubtools.py +254 -0
  44. hydpy/core/selectiontools.py +1571 -0
  45. hydpy/core/sequencetools.py +4476 -0
  46. hydpy/core/seriestools.py +339 -0
  47. hydpy/core/testtools.py +2483 -0
  48. hydpy/core/timetools.py +3567 -0
  49. hydpy/core/typingtools.py +333 -0
  50. hydpy/core/variabletools.py +2615 -0
  51. hydpy/cythons/__init__.py +24 -0
  52. hydpy/cythons/annutils.pxd +33 -0
  53. hydpy/cythons/annutils.pyi +25 -0
  54. hydpy/cythons/annutils.pyx +120 -0
  55. hydpy/cythons/autogen/__init__.py +0 -0
  56. hydpy/cythons/autogen/annutils.cp313-win_amd64.pyd +0 -0
  57. hydpy/cythons/autogen/annutils.pxd +42 -0
  58. hydpy/cythons/autogen/annutils.pyx +129 -0
  59. hydpy/cythons/autogen/c_arma.cp313-win_amd64.pyd +0 -0
  60. hydpy/cythons/autogen/c_arma.pxd +179 -0
  61. hydpy/cythons/autogen/c_arma.pyx +356 -0
  62. hydpy/cythons/autogen/c_arma_rimorido.cp313-win_amd64.pyd +0 -0
  63. hydpy/cythons/autogen/c_arma_rimorido.pxd +179 -0
  64. hydpy/cythons/autogen/c_arma_rimorido.pyx +356 -0
  65. hydpy/cythons/autogen/c_conv.cp313-win_amd64.pyd +0 -0
  66. hydpy/cythons/autogen/c_conv.pxd +198 -0
  67. hydpy/cythons/autogen/c_conv.pyx +491 -0
  68. hydpy/cythons/autogen/c_conv_idw.cp313-win_amd64.pyd +0 -0
  69. hydpy/cythons/autogen/c_conv_idw.pxd +124 -0
  70. hydpy/cythons/autogen/c_conv_idw.pyx +264 -0
  71. hydpy/cythons/autogen/c_conv_idw_ed.cp313-win_amd64.pyd +0 -0
  72. hydpy/cythons/autogen/c_conv_idw_ed.pxd +197 -0
  73. hydpy/cythons/autogen/c_conv_idw_ed.pyx +481 -0
  74. hydpy/cythons/autogen/c_conv_nn.cp313-win_amd64.pyd +0 -0
  75. hydpy/cythons/autogen/c_conv_nn.pxd +120 -0
  76. hydpy/cythons/autogen/c_conv_nn.pyx +224 -0
  77. hydpy/cythons/autogen/c_dam.cp313-win_amd64.pyd +0 -0
  78. hydpy/cythons/autogen/c_dam.pxd +805 -0
  79. hydpy/cythons/autogen/c_dam.pyx +1477 -0
  80. hydpy/cythons/autogen/c_dam_llake.cp313-win_amd64.pyd +0 -0
  81. hydpy/cythons/autogen/c_dam_llake.pxd +364 -0
  82. hydpy/cythons/autogen/c_dam_llake.pyx +705 -0
  83. hydpy/cythons/autogen/c_dam_lreservoir.cp313-win_amd64.pyd +0 -0
  84. hydpy/cythons/autogen/c_dam_lreservoir.pxd +365 -0
  85. hydpy/cythons/autogen/c_dam_lreservoir.pyx +708 -0
  86. hydpy/cythons/autogen/c_dam_lretention.cp313-win_amd64.pyd +0 -0
  87. hydpy/cythons/autogen/c_dam_lretention.pxd +340 -0
  88. hydpy/cythons/autogen/c_dam_lretention.pyx +625 -0
  89. hydpy/cythons/autogen/c_dam_pump.cp313-win_amd64.pyd +0 -0
  90. hydpy/cythons/autogen/c_dam_pump.pxd +402 -0
  91. hydpy/cythons/autogen/c_dam_pump.pyx +724 -0
  92. hydpy/cythons/autogen/c_dam_pump_sluice.cp313-win_amd64.pyd +0 -0
  93. hydpy/cythons/autogen/c_dam_pump_sluice.pxd +452 -0
  94. hydpy/cythons/autogen/c_dam_pump_sluice.pyx +829 -0
  95. hydpy/cythons/autogen/c_dam_sluice.cp313-win_amd64.pyd +0 -0
  96. hydpy/cythons/autogen/c_dam_sluice.pxd +404 -0
  97. hydpy/cythons/autogen/c_dam_sluice.pyx +726 -0
  98. hydpy/cythons/autogen/c_dam_v001.cp313-win_amd64.pyd +0 -0
  99. hydpy/cythons/autogen/c_dam_v001.pxd +452 -0
  100. hydpy/cythons/autogen/c_dam_v001.pyx +816 -0
  101. hydpy/cythons/autogen/c_dam_v002.cp313-win_amd64.pyd +0 -0
  102. hydpy/cythons/autogen/c_dam_v002.pxd +394 -0
  103. hydpy/cythons/autogen/c_dam_v002.pyx +703 -0
  104. hydpy/cythons/autogen/c_dam_v003.cp313-win_amd64.pyd +0 -0
  105. hydpy/cythons/autogen/c_dam_v003.pxd +417 -0
  106. hydpy/cythons/autogen/c_dam_v003.pyx +744 -0
  107. hydpy/cythons/autogen/c_dam_v004.cp313-win_amd64.pyd +0 -0
  108. hydpy/cythons/autogen/c_dam_v004.pxd +486 -0
  109. hydpy/cythons/autogen/c_dam_v004.pyx +891 -0
  110. hydpy/cythons/autogen/c_dam_v005.cp313-win_amd64.pyd +0 -0
  111. hydpy/cythons/autogen/c_dam_v005.pxd +524 -0
  112. hydpy/cythons/autogen/c_dam_v005.pyx +928 -0
  113. hydpy/cythons/autogen/c_dummy.cp313-win_amd64.pyd +0 -0
  114. hydpy/cythons/autogen/c_dummy.pxd +151 -0
  115. hydpy/cythons/autogen/c_dummy.pyx +263 -0
  116. hydpy/cythons/autogen/c_dummy_interceptedwater.cp313-win_amd64.pyd +0 -0
  117. hydpy/cythons/autogen/c_dummy_interceptedwater.pxd +69 -0
  118. hydpy/cythons/autogen/c_dummy_interceptedwater.pyx +104 -0
  119. hydpy/cythons/autogen/c_dummy_node2node.cp313-win_amd64.pyd +0 -0
  120. hydpy/cythons/autogen/c_dummy_node2node.pxd +89 -0
  121. hydpy/cythons/autogen/c_dummy_node2node.pyx +148 -0
  122. hydpy/cythons/autogen/c_dummy_snowalbedo.cp313-win_amd64.pyd +0 -0
  123. hydpy/cythons/autogen/c_dummy_snowalbedo.pxd +69 -0
  124. hydpy/cythons/autogen/c_dummy_snowalbedo.pyx +104 -0
  125. hydpy/cythons/autogen/c_dummy_snowcover.cp313-win_amd64.pyd +0 -0
  126. hydpy/cythons/autogen/c_dummy_snowcover.pxd +69 -0
  127. hydpy/cythons/autogen/c_dummy_snowcover.pyx +104 -0
  128. hydpy/cythons/autogen/c_dummy_snowycanopy.cp313-win_amd64.pyd +0 -0
  129. hydpy/cythons/autogen/c_dummy_snowycanopy.pxd +69 -0
  130. hydpy/cythons/autogen/c_dummy_snowycanopy.pyx +104 -0
  131. hydpy/cythons/autogen/c_dummy_soilwater.cp313-win_amd64.pyd +0 -0
  132. hydpy/cythons/autogen/c_dummy_soilwater.pxd +69 -0
  133. hydpy/cythons/autogen/c_dummy_soilwater.pyx +104 -0
  134. hydpy/cythons/autogen/c_evap.cp313-win_amd64.pyd +0 -0
  135. hydpy/cythons/autogen/c_evap.pxd +1029 -0
  136. hydpy/cythons/autogen/c_evap.pyx +2601 -0
  137. hydpy/cythons/autogen/c_evap_aet_hbv96.cp313-win_amd64.pyd +0 -0
  138. hydpy/cythons/autogen/c_evap_aet_hbv96.pxd +227 -0
  139. hydpy/cythons/autogen/c_evap_aet_hbv96.pyx +584 -0
  140. hydpy/cythons/autogen/c_evap_aet_minhas.cp313-win_amd64.pyd +0 -0
  141. hydpy/cythons/autogen/c_evap_aet_minhas.pxd +193 -0
  142. hydpy/cythons/autogen/c_evap_aet_minhas.pyx +478 -0
  143. hydpy/cythons/autogen/c_evap_aet_morsim.cp313-win_amd64.pyd +0 -0
  144. hydpy/cythons/autogen/c_evap_aet_morsim.pxd +681 -0
  145. hydpy/cythons/autogen/c_evap_aet_morsim.pyx +1642 -0
  146. hydpy/cythons/autogen/c_evap_pet_ambav1.cp313-win_amd64.pyd +0 -0
  147. hydpy/cythons/autogen/c_evap_pet_ambav1.pxd +532 -0
  148. hydpy/cythons/autogen/c_evap_pet_ambav1.pyx +1296 -0
  149. hydpy/cythons/autogen/c_evap_pet_hbv96.cp313-win_amd64.pyd +0 -0
  150. hydpy/cythons/autogen/c_evap_pet_hbv96.pxd +179 -0
  151. hydpy/cythons/autogen/c_evap_pet_hbv96.pyx +328 -0
  152. hydpy/cythons/autogen/c_evap_pet_m.cp313-win_amd64.pyd +0 -0
  153. hydpy/cythons/autogen/c_evap_pet_m.pxd +124 -0
  154. hydpy/cythons/autogen/c_evap_pet_m.pyx +214 -0
  155. hydpy/cythons/autogen/c_evap_pet_mlc.cp313-win_amd64.pyd +0 -0
  156. hydpy/cythons/autogen/c_evap_pet_mlc.pxd +126 -0
  157. hydpy/cythons/autogen/c_evap_pet_mlc.pyx +214 -0
  158. hydpy/cythons/autogen/c_evap_ret_fao56.cp313-win_amd64.pyd +0 -0
  159. hydpy/cythons/autogen/c_evap_ret_fao56.pxd +305 -0
  160. hydpy/cythons/autogen/c_evap_ret_fao56.pyx +624 -0
  161. hydpy/cythons/autogen/c_evap_ret_io.cp313-win_amd64.pyd +0 -0
  162. hydpy/cythons/autogen/c_evap_ret_io.pxd +112 -0
  163. hydpy/cythons/autogen/c_evap_ret_io.pyx +176 -0
  164. hydpy/cythons/autogen/c_evap_ret_tw2002.cp313-win_amd64.pyd +0 -0
  165. hydpy/cythons/autogen/c_evap_ret_tw2002.pxd +139 -0
  166. hydpy/cythons/autogen/c_evap_ret_tw2002.pyx +273 -0
  167. hydpy/cythons/autogen/c_exch.cp313-win_amd64.pyd +0 -0
  168. hydpy/cythons/autogen/c_exch.pxd +230 -0
  169. hydpy/cythons/autogen/c_exch.pyx +462 -0
  170. hydpy/cythons/autogen/c_exch_branch_hbv96.cp313-win_amd64.pyd +0 -0
  171. hydpy/cythons/autogen/c_exch_branch_hbv96.pxd +134 -0
  172. hydpy/cythons/autogen/c_exch_branch_hbv96.pyx +255 -0
  173. hydpy/cythons/autogen/c_exch_waterlevel.cp313-win_amd64.pyd +0 -0
  174. hydpy/cythons/autogen/c_exch_waterlevel.pxd +54 -0
  175. hydpy/cythons/autogen/c_exch_waterlevel.pyx +78 -0
  176. hydpy/cythons/autogen/c_exch_weir_hbv96.cp313-win_amd64.pyd +0 -0
  177. hydpy/cythons/autogen/c_exch_weir_hbv96.pxd +156 -0
  178. hydpy/cythons/autogen/c_exch_weir_hbv96.pyx +282 -0
  179. hydpy/cythons/autogen/c_ga.cp313-win_amd64.pyd +0 -0
  180. hydpy/cythons/autogen/c_ga.pxd +353 -0
  181. hydpy/cythons/autogen/c_ga.pyx +1204 -0
  182. hydpy/cythons/autogen/c_ga_garto.cp313-win_amd64.pyd +0 -0
  183. hydpy/cythons/autogen/c_ga_garto.pxd +330 -0
  184. hydpy/cythons/autogen/c_ga_garto.pyx +1105 -0
  185. hydpy/cythons/autogen/c_ga_garto_submodel1.cp313-win_amd64.pyd +0 -0
  186. hydpy/cythons/autogen/c_ga_garto_submodel1.pxd +236 -0
  187. hydpy/cythons/autogen/c_ga_garto_submodel1.pyx +944 -0
  188. hydpy/cythons/autogen/c_gland.cp313-win_amd64.pyd +0 -0
  189. hydpy/cythons/autogen/c_gland.pxd +437 -0
  190. hydpy/cythons/autogen/c_gland.pyx +726 -0
  191. hydpy/cythons/autogen/c_gland_gr4.cp313-win_amd64.pyd +0 -0
  192. hydpy/cythons/autogen/c_gland_gr4.pxd +382 -0
  193. hydpy/cythons/autogen/c_gland_gr4.pyx +605 -0
  194. hydpy/cythons/autogen/c_gland_gr5.cp313-win_amd64.pyd +0 -0
  195. hydpy/cythons/autogen/c_gland_gr5.pxd +368 -0
  196. hydpy/cythons/autogen/c_gland_gr5.pyx +568 -0
  197. hydpy/cythons/autogen/c_gland_gr6.cp313-win_amd64.pyd +0 -0
  198. hydpy/cythons/autogen/c_gland_gr6.pxd +420 -0
  199. hydpy/cythons/autogen/c_gland_gr6.pyx +673 -0
  200. hydpy/cythons/autogen/c_hland.cp313-win_amd64.pyd +0 -0
  201. hydpy/cythons/autogen/c_hland.pxd +855 -0
  202. hydpy/cythons/autogen/c_hland.pyx +2486 -0
  203. hydpy/cythons/autogen/c_hland_96.cp313-win_amd64.pyd +0 -0
  204. hydpy/cythons/autogen/c_hland_96.pxd +631 -0
  205. hydpy/cythons/autogen/c_hland_96.pyx +1724 -0
  206. hydpy/cythons/autogen/c_hland_96c.cp313-win_amd64.pyd +0 -0
  207. hydpy/cythons/autogen/c_hland_96c.pxd +621 -0
  208. hydpy/cythons/autogen/c_hland_96c.pyx +1822 -0
  209. hydpy/cythons/autogen/c_hland_96p.cp313-win_amd64.pyd +0 -0
  210. hydpy/cythons/autogen/c_hland_96p.pxd +683 -0
  211. hydpy/cythons/autogen/c_hland_96p.pyx +1911 -0
  212. hydpy/cythons/autogen/c_kinw.cp313-win_amd64.pyd +0 -0
  213. hydpy/cythons/autogen/c_kinw.pxd +509 -0
  214. hydpy/cythons/autogen/c_kinw.pyx +965 -0
  215. hydpy/cythons/autogen/c_kinw_williams.cp313-win_amd64.pyd +0 -0
  216. hydpy/cythons/autogen/c_kinw_williams.pxd +409 -0
  217. hydpy/cythons/autogen/c_kinw_williams.pyx +763 -0
  218. hydpy/cythons/autogen/c_kinw_williams_ext.cp313-win_amd64.pyd +0 -0
  219. hydpy/cythons/autogen/c_kinw_williams_ext.pxd +220 -0
  220. hydpy/cythons/autogen/c_kinw_williams_ext.pyx +440 -0
  221. hydpy/cythons/autogen/c_lland.cp313-win_amd64.pyd +0 -0
  222. hydpy/cythons/autogen/c_lland.pxd +1386 -0
  223. hydpy/cythons/autogen/c_lland.pyx +3679 -0
  224. hydpy/cythons/autogen/c_lland_dd.cp313-win_amd64.pyd +0 -0
  225. hydpy/cythons/autogen/c_lland_dd.pxd +679 -0
  226. hydpy/cythons/autogen/c_lland_dd.pyx +1719 -0
  227. hydpy/cythons/autogen/c_lland_knauf.cp313-win_amd64.pyd +0 -0
  228. hydpy/cythons/autogen/c_lland_knauf.pxd +1096 -0
  229. hydpy/cythons/autogen/c_lland_knauf.pyx +2784 -0
  230. hydpy/cythons/autogen/c_lland_knauf_ic.cp313-win_amd64.pyd +0 -0
  231. hydpy/cythons/autogen/c_lland_knauf_ic.pxd +1369 -0
  232. hydpy/cythons/autogen/c_lland_knauf_ic.pyx +3625 -0
  233. hydpy/cythons/autogen/c_meteo.cp313-win_amd64.pyd +0 -0
  234. hydpy/cythons/autogen/c_meteo.pxd +469 -0
  235. hydpy/cythons/autogen/c_meteo.pyx +879 -0
  236. hydpy/cythons/autogen/c_meteo_clear_glob_io.cp313-win_amd64.pyd +0 -0
  237. hydpy/cythons/autogen/c_meteo_clear_glob_io.pxd +75 -0
  238. hydpy/cythons/autogen/c_meteo_clear_glob_io.pyx +107 -0
  239. hydpy/cythons/autogen/c_meteo_glob_fao56.cp313-win_amd64.pyd +0 -0
  240. hydpy/cythons/autogen/c_meteo_glob_fao56.pxd +209 -0
  241. hydpy/cythons/autogen/c_meteo_glob_fao56.pyx +339 -0
  242. hydpy/cythons/autogen/c_meteo_glob_io.cp313-win_amd64.pyd +0 -0
  243. hydpy/cythons/autogen/c_meteo_glob_io.pxd +63 -0
  244. hydpy/cythons/autogen/c_meteo_glob_io.pyx +91 -0
  245. hydpy/cythons/autogen/c_meteo_glob_morsim.cp313-win_amd64.pyd +0 -0
  246. hydpy/cythons/autogen/c_meteo_glob_morsim.pxd +289 -0
  247. hydpy/cythons/autogen/c_meteo_glob_morsim.pyx +527 -0
  248. hydpy/cythons/autogen/c_meteo_precip_io.cp313-win_amd64.pyd +0 -0
  249. hydpy/cythons/autogen/c_meteo_precip_io.pxd +112 -0
  250. hydpy/cythons/autogen/c_meteo_precip_io.pyx +176 -0
  251. hydpy/cythons/autogen/c_meteo_psun_sun_glob_io.cp313-win_amd64.pyd +0 -0
  252. hydpy/cythons/autogen/c_meteo_psun_sun_glob_io.pxd +87 -0
  253. hydpy/cythons/autogen/c_meteo_psun_sun_glob_io.pyx +123 -0
  254. hydpy/cythons/autogen/c_meteo_sun_fao56.cp313-win_amd64.pyd +0 -0
  255. hydpy/cythons/autogen/c_meteo_sun_fao56.pxd +209 -0
  256. hydpy/cythons/autogen/c_meteo_sun_fao56.pyx +343 -0
  257. hydpy/cythons/autogen/c_meteo_sun_morsim.cp313-win_amd64.pyd +0 -0
  258. hydpy/cythons/autogen/c_meteo_sun_morsim.pxd +286 -0
  259. hydpy/cythons/autogen/c_meteo_sun_morsim.pyx +519 -0
  260. hydpy/cythons/autogen/c_meteo_temp_io.cp313-win_amd64.pyd +0 -0
  261. hydpy/cythons/autogen/c_meteo_temp_io.pxd +112 -0
  262. hydpy/cythons/autogen/c_meteo_temp_io.pyx +176 -0
  263. hydpy/cythons/autogen/c_musk.cp313-win_amd64.pyd +0 -0
  264. hydpy/cythons/autogen/c_musk.pxd +282 -0
  265. hydpy/cythons/autogen/c_musk.pyx +605 -0
  266. hydpy/cythons/autogen/c_musk_classic.cp313-win_amd64.pyd +0 -0
  267. hydpy/cythons/autogen/c_musk_classic.pxd +138 -0
  268. hydpy/cythons/autogen/c_musk_classic.pyx +226 -0
  269. hydpy/cythons/autogen/c_musk_mct.cp313-win_amd64.pyd +0 -0
  270. hydpy/cythons/autogen/c_musk_mct.pxd +282 -0
  271. hydpy/cythons/autogen/c_musk_mct.pyx +609 -0
  272. hydpy/cythons/autogen/c_rconc.cp313-win_amd64.pyd +0 -0
  273. hydpy/cythons/autogen/c_rconc.pxd +119 -0
  274. hydpy/cythons/autogen/c_rconc.pyx +174 -0
  275. hydpy/cythons/autogen/c_rconc_nash.cp313-win_amd64.pyd +0 -0
  276. hydpy/cythons/autogen/c_rconc_nash.pxd +111 -0
  277. hydpy/cythons/autogen/c_rconc_nash.pyx +185 -0
  278. hydpy/cythons/autogen/c_rconc_uh.cp313-win_amd64.pyd +0 -0
  279. hydpy/cythons/autogen/c_rconc_uh.pxd +92 -0
  280. hydpy/cythons/autogen/c_rconc_uh.pyx +125 -0
  281. hydpy/cythons/autogen/c_sw1d.cp313-win_amd64.pyd +0 -0
  282. hydpy/cythons/autogen/c_sw1d.pxd +511 -0
  283. hydpy/cythons/autogen/c_sw1d.pyx +1263 -0
  284. hydpy/cythons/autogen/c_sw1d_channel.cp313-win_amd64.pyd +0 -0
  285. hydpy/cythons/autogen/c_sw1d_channel.pxd +119 -0
  286. hydpy/cythons/autogen/c_sw1d_channel.pyx +300 -0
  287. hydpy/cythons/autogen/c_sw1d_gate_out.cp313-win_amd64.pyd +0 -0
  288. hydpy/cythons/autogen/c_sw1d_gate_out.pxd +240 -0
  289. hydpy/cythons/autogen/c_sw1d_gate_out.pyx +476 -0
  290. hydpy/cythons/autogen/c_sw1d_lias.cp313-win_amd64.pyd +0 -0
  291. hydpy/cythons/autogen/c_sw1d_lias.pxd +320 -0
  292. hydpy/cythons/autogen/c_sw1d_lias.pyx +619 -0
  293. hydpy/cythons/autogen/c_sw1d_lias_sluice.cp313-win_amd64.pyd +0 -0
  294. hydpy/cythons/autogen/c_sw1d_lias_sluice.pxd +325 -0
  295. hydpy/cythons/autogen/c_sw1d_lias_sluice.pyx +644 -0
  296. hydpy/cythons/autogen/c_sw1d_network.cp313-win_amd64.pyd +0 -0
  297. hydpy/cythons/autogen/c_sw1d_network.pxd +90 -0
  298. hydpy/cythons/autogen/c_sw1d_network.pyx +246 -0
  299. hydpy/cythons/autogen/c_sw1d_pump.cp313-win_amd64.pyd +0 -0
  300. hydpy/cythons/autogen/c_sw1d_pump.pxd +256 -0
  301. hydpy/cythons/autogen/c_sw1d_pump.pyx +502 -0
  302. hydpy/cythons/autogen/c_sw1d_q_in.cp313-win_amd64.pyd +0 -0
  303. hydpy/cythons/autogen/c_sw1d_q_in.pxd +224 -0
  304. hydpy/cythons/autogen/c_sw1d_q_in.pyx +383 -0
  305. hydpy/cythons/autogen/c_sw1d_q_out.cp313-win_amd64.pyd +0 -0
  306. hydpy/cythons/autogen/c_sw1d_q_out.pxd +224 -0
  307. hydpy/cythons/autogen/c_sw1d_q_out.pyx +383 -0
  308. hydpy/cythons/autogen/c_sw1d_storage.cp313-win_amd64.pyd +0 -0
  309. hydpy/cythons/autogen/c_sw1d_storage.pxd +193 -0
  310. hydpy/cythons/autogen/c_sw1d_storage.pyx +349 -0
  311. hydpy/cythons/autogen/c_sw1d_weir_out.cp313-win_amd64.pyd +0 -0
  312. hydpy/cythons/autogen/c_sw1d_weir_out.pxd +212 -0
  313. hydpy/cythons/autogen/c_sw1d_weir_out.pyx +404 -0
  314. hydpy/cythons/autogen/c_test.cp313-win_amd64.pyd +0 -0
  315. hydpy/cythons/autogen/c_test.pxd +175 -0
  316. hydpy/cythons/autogen/c_test.pyx +348 -0
  317. hydpy/cythons/autogen/c_test_discontinous.cp313-win_amd64.pyd +0 -0
  318. hydpy/cythons/autogen/c_test_discontinous.pxd +146 -0
  319. hydpy/cythons/autogen/c_test_discontinous.pyx +256 -0
  320. hydpy/cythons/autogen/c_test_stiff0d.cp313-win_amd64.pyd +0 -0
  321. hydpy/cythons/autogen/c_test_stiff0d.pxd +146 -0
  322. hydpy/cythons/autogen/c_test_stiff0d.pyx +250 -0
  323. hydpy/cythons/autogen/c_test_stiff1d.cp313-win_amd64.pyd +0 -0
  324. hydpy/cythons/autogen/c_test_stiff1d.pxd +145 -0
  325. hydpy/cythons/autogen/c_test_stiff1d.pyx +294 -0
  326. hydpy/cythons/autogen/c_whmod.cp313-win_amd64.pyd +0 -0
  327. hydpy/cythons/autogen/c_whmod.pxd +482 -0
  328. hydpy/cythons/autogen/c_whmod.pyx +1156 -0
  329. hydpy/cythons/autogen/c_whmod_rural.cp313-win_amd64.pyd +0 -0
  330. hydpy/cythons/autogen/c_whmod_rural.pxd +411 -0
  331. hydpy/cythons/autogen/c_whmod_rural.pyx +982 -0
  332. hydpy/cythons/autogen/c_whmod_urban.cp313-win_amd64.pyd +0 -0
  333. hydpy/cythons/autogen/c_whmod_urban.pxd +482 -0
  334. hydpy/cythons/autogen/c_whmod_urban.pyx +1155 -0
  335. hydpy/cythons/autogen/c_wland.cp313-win_amd64.pyd +0 -0
  336. hydpy/cythons/autogen/c_wland.pxd +842 -0
  337. hydpy/cythons/autogen/c_wland.pyx +1890 -0
  338. hydpy/cythons/autogen/c_wland_gd.cp313-win_amd64.pyd +0 -0
  339. hydpy/cythons/autogen/c_wland_gd.pxd +829 -0
  340. hydpy/cythons/autogen/c_wland_gd.pyx +1847 -0
  341. hydpy/cythons/autogen/c_wland_wag.cp313-win_amd64.pyd +0 -0
  342. hydpy/cythons/autogen/c_wland_wag.pxd +810 -0
  343. hydpy/cythons/autogen/c_wland_wag.pyx +1780 -0
  344. hydpy/cythons/autogen/c_wq.cp313-win_amd64.pyd +0 -0
  345. hydpy/cythons/autogen/c_wq.pxd +275 -0
  346. hydpy/cythons/autogen/c_wq.pyx +652 -0
  347. hydpy/cythons/autogen/c_wq_trapeze.cp313-win_amd64.pyd +0 -0
  348. hydpy/cythons/autogen/c_wq_trapeze.pxd +170 -0
  349. hydpy/cythons/autogen/c_wq_trapeze.pyx +400 -0
  350. hydpy/cythons/autogen/c_wq_trapeze_strickler.cp313-win_amd64.pyd +0 -0
  351. hydpy/cythons/autogen/c_wq_trapeze_strickler.pxd +243 -0
  352. hydpy/cythons/autogen/c_wq_trapeze_strickler.pyx +578 -0
  353. hydpy/cythons/autogen/c_wq_walrus.cp313-win_amd64.pyd +0 -0
  354. hydpy/cythons/autogen/c_wq_walrus.pxd +61 -0
  355. hydpy/cythons/autogen/c_wq_walrus.pyx +82 -0
  356. hydpy/cythons/autogen/configutils.cp313-win_amd64.pyd +0 -0
  357. hydpy/cythons/autogen/configutils.pxd +17 -0
  358. hydpy/cythons/autogen/configutils.pyx +119 -0
  359. hydpy/cythons/autogen/interfaceutils.cp313-win_amd64.pyd +0 -0
  360. hydpy/cythons/autogen/interfaceutils.pxd +31 -0
  361. hydpy/cythons/autogen/interfaceutils.pyx +82 -0
  362. hydpy/cythons/autogen/interputils.cp313-win_amd64.pyd +0 -0
  363. hydpy/cythons/autogen/interputils.pxd +42 -0
  364. hydpy/cythons/autogen/interputils.pyx +118 -0
  365. hydpy/cythons/autogen/masterinterface.cp313-win_amd64.pyd +0 -0
  366. hydpy/cythons/autogen/masterinterface.pxd +153 -0
  367. hydpy/cythons/autogen/masterinterface.pyx +222 -0
  368. hydpy/cythons/autogen/pointerutils.cp313-win_amd64.pyd +0 -0
  369. hydpy/cythons/autogen/pointerutils.pxd +31 -0
  370. hydpy/cythons/autogen/pointerutils.pyx +650 -0
  371. hydpy/cythons/autogen/ppolyutils.cp313-win_amd64.pyd +0 -0
  372. hydpy/cythons/autogen/ppolyutils.pxd +35 -0
  373. hydpy/cythons/autogen/ppolyutils.pyx +59 -0
  374. hydpy/cythons/autogen/quadutils.cp313-win_amd64.pyd +0 -0
  375. hydpy/cythons/autogen/quadutils.pxd +26 -0
  376. hydpy/cythons/autogen/quadutils.pyx +973 -0
  377. hydpy/cythons/autogen/rootutils.cp313-win_amd64.pyd +0 -0
  378. hydpy/cythons/autogen/rootutils.pxd +28 -0
  379. hydpy/cythons/autogen/rootutils.pyx +109 -0
  380. hydpy/cythons/autogen/sequenceutils.cp313-win_amd64.pyd +0 -0
  381. hydpy/cythons/autogen/sequenceutils.pxd +45 -0
  382. hydpy/cythons/autogen/sequenceutils.pyx +101 -0
  383. hydpy/cythons/autogen/smoothutils.cp313-win_amd64.pyd +0 -0
  384. hydpy/cythons/autogen/smoothutils.pxd +29 -0
  385. hydpy/cythons/autogen/smoothutils.pyx +833 -0
  386. hydpy/cythons/configutils.pxd +8 -0
  387. hydpy/cythons/configutils.pyi +5 -0
  388. hydpy/cythons/configutils.pyx +110 -0
  389. hydpy/cythons/interfaceutils.pxd +22 -0
  390. hydpy/cythons/interfaceutils.pyi +15 -0
  391. hydpy/cythons/interfaceutils.pyx +73 -0
  392. hydpy/cythons/interputils.pxd +33 -0
  393. hydpy/cythons/interputils.pyi +32 -0
  394. hydpy/cythons/interputils.pyx +109 -0
  395. hydpy/cythons/modelutils.py +2990 -0
  396. hydpy/cythons/pointerutils.pxd +22 -0
  397. hydpy/cythons/pointerutils.pyi +89 -0
  398. hydpy/cythons/pointerutils.pyx +641 -0
  399. hydpy/cythons/ppolyutils.pxd +26 -0
  400. hydpy/cythons/ppolyutils.pyi +21 -0
  401. hydpy/cythons/ppolyutils.pyx +50 -0
  402. hydpy/cythons/quadutils.pxd +17 -0
  403. hydpy/cythons/quadutils.pyi +13 -0
  404. hydpy/cythons/quadutils.pyx +964 -0
  405. hydpy/cythons/rootutils.pxd +19 -0
  406. hydpy/cythons/rootutils.pyi +21 -0
  407. hydpy/cythons/rootutils.pyx +100 -0
  408. hydpy/cythons/sequenceutils.pxd +36 -0
  409. hydpy/cythons/sequenceutils.pyi +7 -0
  410. hydpy/cythons/sequenceutils.pyx +92 -0
  411. hydpy/cythons/smoothutils.pxd +20 -0
  412. hydpy/cythons/smoothutils.pyi +15 -0
  413. hydpy/cythons/smoothutils.pyx +824 -0
  414. hydpy/data/HydPy-H-Lahn/conditions/init_1996_01_01_00_00_00/land_dill_assl.py +13 -0
  415. hydpy/data/HydPy-H-Lahn/conditions/init_1996_01_01_00_00_00/land_lahn_kalk.py +13 -0
  416. hydpy/data/HydPy-H-Lahn/conditions/init_1996_01_01_00_00_00/land_lahn_leun.py +14 -0
  417. hydpy/data/HydPy-H-Lahn/conditions/init_1996_01_01_00_00_00/land_lahn_marb.py +13 -0
  418. hydpy/data/HydPy-H-Lahn/conditions/init_1996_01_01_00_00_00/stream_dill_assl_lahn_leun.py +5 -0
  419. hydpy/data/HydPy-H-Lahn/conditions/init_1996_01_01_00_00_00/stream_lahn_leun_lahn_kalk.py +5 -0
  420. hydpy/data/HydPy-H-Lahn/conditions/init_1996_01_01_00_00_00/stream_lahn_marb_lahn_leun.py +5 -0
  421. hydpy/data/HydPy-H-Lahn/control/default/land.py +9 -0
  422. hydpy/data/HydPy-H-Lahn/control/default/land_dill_assl.py +57 -0
  423. hydpy/data/HydPy-H-Lahn/control/default/land_lahn_kalk.py +57 -0
  424. hydpy/data/HydPy-H-Lahn/control/default/land_lahn_leun.py +56 -0
  425. hydpy/data/HydPy-H-Lahn/control/default/land_lahn_marb.py +57 -0
  426. hydpy/data/HydPy-H-Lahn/control/default/stream_dill_assl_lahn_leun.py +7 -0
  427. hydpy/data/HydPy-H-Lahn/control/default/stream_lahn_leun_lahn_kalk.py +7 -0
  428. hydpy/data/HydPy-H-Lahn/control/default/stream_lahn_marb_lahn_leun.py +7 -0
  429. hydpy/data/HydPy-H-Lahn/multiple_runs.xml +309 -0
  430. hydpy/data/HydPy-H-Lahn/multiple_runs_alpha.xml +71 -0
  431. hydpy/data/HydPy-H-Lahn/network/default/headwaters.py +11 -0
  432. hydpy/data/HydPy-H-Lahn/network/default/nonheadwaters.py +11 -0
  433. hydpy/data/HydPy-H-Lahn/network/default/streams.py +8 -0
  434. hydpy/data/HydPy-H-Lahn/series/default/dill_assl_obs_q.asc +11387 -0
  435. hydpy/data/HydPy-H-Lahn/series/default/evap_pet_hbv96_input_normalairtemperature.nc +0 -0
  436. hydpy/data/HydPy-H-Lahn/series/default/evap_pet_hbv96_input_normalevapotranspiration.nc +0 -0
  437. hydpy/data/HydPy-H-Lahn/series/default/hland_96_input_p.nc +0 -0
  438. hydpy/data/HydPy-H-Lahn/series/default/hland_96_input_t.nc +0 -0
  439. hydpy/data/HydPy-H-Lahn/series/default/lahn_kalk_obs_q.asc +11387 -0
  440. hydpy/data/HydPy-H-Lahn/series/default/lahn_leun_obs_q.asc +11387 -0
  441. hydpy/data/HydPy-H-Lahn/series/default/lahn_marb_obs_q.asc +11387 -0
  442. hydpy/data/HydPy-H-Lahn/series/default/land_dill_assl_evap_pet_hbv96_input_normalairtemperature.asc +11387 -0
  443. hydpy/data/HydPy-H-Lahn/series/default/land_dill_assl_evap_pet_hbv96_input_normalevapotranspiration.asc +11387 -0
  444. hydpy/data/HydPy-H-Lahn/series/default/land_dill_assl_hland_96_input_p.asc +11387 -0
  445. hydpy/data/HydPy-H-Lahn/series/default/land_dill_assl_hland_96_input_t.asc +11387 -0
  446. hydpy/data/HydPy-H-Lahn/series/default/land_lahn_kalk_evap_pet_hbv96_input_normalairtemperature.asc +11387 -0
  447. hydpy/data/HydPy-H-Lahn/series/default/land_lahn_kalk_evap_pet_hbv96_input_normalevapotranspiration.asc +11387 -0
  448. hydpy/data/HydPy-H-Lahn/series/default/land_lahn_kalk_hland_96_input_p.asc +11387 -0
  449. hydpy/data/HydPy-H-Lahn/series/default/land_lahn_kalk_hland_96_input_t.asc +11387 -0
  450. hydpy/data/HydPy-H-Lahn/series/default/land_lahn_leun_evap_pet_hbv96_input_normalairtemperature.asc +11387 -0
  451. hydpy/data/HydPy-H-Lahn/series/default/land_lahn_leun_evap_pet_hbv96_input_normalevapotranspiration.asc +11387 -0
  452. hydpy/data/HydPy-H-Lahn/series/default/land_lahn_leun_hland_96_input_p.asc +11387 -0
  453. hydpy/data/HydPy-H-Lahn/series/default/land_lahn_leun_hland_96_input_t.asc +11387 -0
  454. hydpy/data/HydPy-H-Lahn/series/default/land_lahn_marb_evap_pet_hbv96_input_normalairtemperature.asc +11387 -0
  455. hydpy/data/HydPy-H-Lahn/series/default/land_lahn_marb_evap_pet_hbv96_input_normalevapotranspiration.asc +11387 -0
  456. hydpy/data/HydPy-H-Lahn/series/default/land_lahn_marb_hland_96_input_p.asc +11387 -0
  457. hydpy/data/HydPy-H-Lahn/series/default/land_lahn_marb_hland_96_input_t.asc +11387 -0
  458. hydpy/data/HydPy-H-Lahn/series/default/obs_q.nc +0 -0
  459. hydpy/data/HydPy-H-Lahn/single_run.xml +152 -0
  460. hydpy/data/HydPy-H-Lahn/single_run.xmlt +143 -0
  461. hydpy/data/__init__.py +17 -0
  462. hydpy/docs/__init__.py +0 -0
  463. hydpy/docs/autofigs/__init__.py +0 -0
  464. hydpy/docs/bib/__init__.py +0 -0
  465. hydpy/docs/bib/refs.bib +566 -0
  466. hydpy/docs/combine_docversions.py +133 -0
  467. hydpy/docs/draw_model_sketches.py +1301 -0
  468. hydpy/docs/enable_autodoc.py +7 -0
  469. hydpy/docs/figs/HydPy-G-GR4.png +0 -0
  470. hydpy/docs/figs/HydPy-G-GR5.png +0 -0
  471. hydpy/docs/figs/HydPy-G-GR6.png +0 -0
  472. hydpy/docs/figs/HydPy-H-HBV96-COSERO.png +0 -0
  473. hydpy/docs/figs/HydPy-H-HBV96-PREVAH.png +0 -0
  474. hydpy/docs/figs/HydPy-H-HBV96.png +0 -0
  475. hydpy/docs/figs/HydPy-H-Lahn.png +0 -0
  476. hydpy/docs/figs/HydPy-KinW-Williams.png +0 -0
  477. hydpy/docs/figs/HydPy-L-DD.png +0 -0
  478. hydpy/docs/figs/HydPy-W-Wag.png +0 -0
  479. hydpy/docs/figs/HydPy_Logo.png +0 -0
  480. hydpy/docs/figs/HydPy_Logo_Text.png +0 -0
  481. hydpy/docs/figs/IDLE-editor.png +0 -0
  482. hydpy/docs/figs/IDLE-shell.png +0 -0
  483. hydpy/docs/figs/LAWA_river-basin-bumbers.png +0 -0
  484. hydpy/docs/figs/__init__.py +0 -0
  485. hydpy/docs/html_/__init__.py +0 -0
  486. hydpy/docs/polish_html.py +57 -0
  487. hydpy/docs/prepare.py +224 -0
  488. hydpy/docs/publish_docs.py +53 -0
  489. hydpy/docs/rst/HydPy-ARMA.rst +27 -0
  490. hydpy/docs/rst/HydPy-Conv.rst +22 -0
  491. hydpy/docs/rst/HydPy-Dam.rst +79 -0
  492. hydpy/docs/rst/HydPy-Dummy.rst +21 -0
  493. hydpy/docs/rst/HydPy-Evap.rst +26 -0
  494. hydpy/docs/rst/HydPy-Exch.rst +36 -0
  495. hydpy/docs/rst/HydPy-G.rst +40 -0
  496. hydpy/docs/rst/HydPy-GA.rst +34 -0
  497. hydpy/docs/rst/HydPy-H.rst +24 -0
  498. hydpy/docs/rst/HydPy-KinW.rst +32 -0
  499. hydpy/docs/rst/HydPy-L.rst +42 -0
  500. hydpy/docs/rst/HydPy-Meteo.rst +28 -0
  501. hydpy/docs/rst/HydPy-Musk.rst +21 -0
  502. hydpy/docs/rst/HydPy-Rconc.rst +17 -0
  503. hydpy/docs/rst/HydPy-SW1D.rst +49 -0
  504. hydpy/docs/rst/HydPy-Test.rst +19 -0
  505. hydpy/docs/rst/HydPy-W.rst +20 -0
  506. hydpy/docs/rst/HydPy-WHMod.rst +19 -0
  507. hydpy/docs/rst/HydPy-WQ.rst +20 -0
  508. hydpy/docs/rst/__init__.py +0 -0
  509. hydpy/docs/rst/additional_repositories.rst +40 -0
  510. hydpy/docs/rst/auxiliaries.rst +31 -0
  511. hydpy/docs/rst/continuous_integration.rst +75 -0
  512. hydpy/docs/rst/core.rst +75 -0
  513. hydpy/docs/rst/cythons.rst +47 -0
  514. hydpy/docs/rst/definitions.rst +506 -0
  515. hydpy/docs/rst/developer_guide.rst +54 -0
  516. hydpy/docs/rst/example_projects.rst +40 -0
  517. hydpy/docs/rst/execution.rst +22 -0
  518. hydpy/docs/rst/framework_tools.rst +56 -0
  519. hydpy/docs/rst/how_to_read_the_reference_manual.rst +156 -0
  520. hydpy/docs/rst/hydpydependencies.rst +55 -0
  521. hydpy/docs/rst/index.rst +125 -0
  522. hydpy/docs/rst/installation.rst +155 -0
  523. hydpy/docs/rst/model_families.rst +79 -0
  524. hydpy/docs/rst/model_overview.rst +291 -0
  525. hydpy/docs/rst/modelimports.rst +10 -0
  526. hydpy/docs/rst/options.rst +119 -0
  527. hydpy/docs/rst/programming_style.rst +572 -0
  528. hydpy/docs/rst/project_structure.rst +520 -0
  529. hydpy/docs/rst/quickstart.rst +304 -0
  530. hydpy/docs/rst/reference_manual.rst +29 -0
  531. hydpy/docs/rst/required_tools.rst +50 -0
  532. hydpy/docs/rst/simulation.rst +514 -0
  533. hydpy/docs/rst/submodel_interfaces.rst +32 -0
  534. hydpy/docs/rst/tests_and_documentation.rst +85 -0
  535. hydpy/docs/rst/user_guide.rst +38 -0
  536. hydpy/docs/rst/version_control.rst +116 -0
  537. hydpy/docs/rst/zbibliography.rst +8 -0
  538. hydpy/docs/sphinx/__init__.py +0 -0
  539. hydpy/docs/sphinx/_themes/basic_hydpy/changes/frameset.html +11 -0
  540. hydpy/docs/sphinx/_themes/basic_hydpy/changes/rstsource.html +15 -0
  541. hydpy/docs/sphinx/_themes/basic_hydpy/changes/versionchanges.html +33 -0
  542. hydpy/docs/sphinx/_themes/basic_hydpy/defindex.html +35 -0
  543. hydpy/docs/sphinx/_themes/basic_hydpy/domainindex.html +56 -0
  544. hydpy/docs/sphinx/_themes/basic_hydpy/genindex-single.html +63 -0
  545. hydpy/docs/sphinx/_themes/basic_hydpy/genindex-split.html +41 -0
  546. hydpy/docs/sphinx/_themes/basic_hydpy/genindex.html +76 -0
  547. hydpy/docs/sphinx/_themes/basic_hydpy/globaltoc.html +11 -0
  548. hydpy/docs/sphinx/_themes/basic_hydpy/layout.html +221 -0
  549. hydpy/docs/sphinx/_themes/basic_hydpy/localtoc.html +15 -0
  550. hydpy/docs/sphinx/_themes/basic_hydpy/opensearch.xml +13 -0
  551. hydpy/docs/sphinx/_themes/basic_hydpy/page.html +13 -0
  552. hydpy/docs/sphinx/_themes/basic_hydpy/relations.html +23 -0
  553. hydpy/docs/sphinx/_themes/basic_hydpy/search.html +65 -0
  554. hydpy/docs/sphinx/_themes/basic_hydpy/searchbox.html +21 -0
  555. hydpy/docs/sphinx/_themes/basic_hydpy/searchfield.html +23 -0
  556. hydpy/docs/sphinx/_themes/basic_hydpy/sourcelink.html +18 -0
  557. hydpy/docs/sphinx/_themes/basic_hydpy/static/basic.css_t +925 -0
  558. hydpy/docs/sphinx/_themes/basic_hydpy/static/doctools.js +156 -0
  559. hydpy/docs/sphinx/_themes/basic_hydpy/static/documentation_options.js_t +13 -0
  560. hydpy/docs/sphinx/_themes/basic_hydpy/static/file.png +0 -0
  561. hydpy/docs/sphinx/_themes/basic_hydpy/static/language_data.js_t +26 -0
  562. hydpy/docs/sphinx/_themes/basic_hydpy/static/minus.png +0 -0
  563. hydpy/docs/sphinx/_themes/basic_hydpy/static/plus.png +0 -0
  564. hydpy/docs/sphinx/_themes/basic_hydpy/static/searchtools.js +574 -0
  565. hydpy/docs/sphinx/_themes/basic_hydpy/static/sphinx_highlight.js +154 -0
  566. hydpy/docs/sphinx/_themes/basic_hydpy/theme.conf +16 -0
  567. hydpy/docs/sphinx/_themes/classic_hydpy/layout.html +23 -0
  568. hydpy/docs/sphinx/_themes/classic_hydpy/static/classic.css_t +358 -0
  569. hydpy/docs/sphinx/_themes/classic_hydpy/static/sidebar.js_t +72 -0
  570. hydpy/docs/sphinx/_themes/classic_hydpy/theme.conf +32 -0
  571. hydpy/docs/sphinx/conf.py +398 -0
  572. hydpy/docs/sphinx/defaultlinks_extension.py +36 -0
  573. hydpy/docs/sphinx/integrationtest_extension.py +104 -0
  574. hydpy/docs/sphinx/projectstructure_extension.py +58 -0
  575. hydpy/docs/sphinx/submodelgraph_extension.py +53 -0
  576. hydpy/exe/__init__.py +0 -0
  577. hydpy/exe/commandtools.py +651 -0
  578. hydpy/exe/hyd.py +277 -0
  579. hydpy/exe/modelimports.py +41 -0
  580. hydpy/exe/replacetools.py +216 -0
  581. hydpy/exe/servertools.py +2348 -0
  582. hydpy/exe/xmltools.py +3280 -0
  583. hydpy/interfaces/__init__.py +0 -0
  584. hydpy/interfaces/aetinterfaces.py +94 -0
  585. hydpy/interfaces/dischargeinterfaces.py +45 -0
  586. hydpy/interfaces/petinterfaces.py +117 -0
  587. hydpy/interfaces/precipinterfaces.py +42 -0
  588. hydpy/interfaces/radiationinterfaces.py +79 -0
  589. hydpy/interfaces/rconcinterfaces.py +30 -0
  590. hydpy/interfaces/routinginterfaces.py +324 -0
  591. hydpy/interfaces/soilinterfaces.py +96 -0
  592. hydpy/interfaces/stateinterfaces.py +98 -0
  593. hydpy/interfaces/tempinterfaces.py +46 -0
  594. hydpy/models/__init__.py +0 -0
  595. hydpy/models/arma/__init__.py +14 -0
  596. hydpy/models/arma/arma_control.py +383 -0
  597. hydpy/models/arma/arma_derived.py +204 -0
  598. hydpy/models/arma/arma_fluxes.py +41 -0
  599. hydpy/models/arma/arma_inlets.py +11 -0
  600. hydpy/models/arma/arma_logs.py +19 -0
  601. hydpy/models/arma/arma_model.py +461 -0
  602. hydpy/models/arma/arma_outlets.py +11 -0
  603. hydpy/models/arma_rimorido.py +381 -0
  604. hydpy/models/conv/__init__.py +12 -0
  605. hydpy/models/conv/conv_control.py +303 -0
  606. hydpy/models/conv/conv_derived.py +271 -0
  607. hydpy/models/conv/conv_fluxes.py +54 -0
  608. hydpy/models/conv/conv_inlets.py +11 -0
  609. hydpy/models/conv/conv_model.py +687 -0
  610. hydpy/models/conv/conv_outlets.py +11 -0
  611. hydpy/models/conv_idw.py +120 -0
  612. hydpy/models/conv_idw_ed.py +184 -0
  613. hydpy/models/conv_nn.py +112 -0
  614. hydpy/models/dam/__init__.py +16 -0
  615. hydpy/models/dam/dam_aides.py +17 -0
  616. hydpy/models/dam/dam_control.py +346 -0
  617. hydpy/models/dam/dam_derived.py +559 -0
  618. hydpy/models/dam/dam_factors.py +46 -0
  619. hydpy/models/dam/dam_fluxes.py +179 -0
  620. hydpy/models/dam/dam_inlets.py +29 -0
  621. hydpy/models/dam/dam_logs.py +52 -0
  622. hydpy/models/dam/dam_model.py +5011 -0
  623. hydpy/models/dam/dam_outlets.py +23 -0
  624. hydpy/models/dam/dam_receivers.py +41 -0
  625. hydpy/models/dam/dam_senders.py +23 -0
  626. hydpy/models/dam/dam_solver.py +75 -0
  627. hydpy/models/dam/dam_states.py +11 -0
  628. hydpy/models/dam_llake.py +499 -0
  629. hydpy/models/dam_lreservoir.py +548 -0
  630. hydpy/models/dam_lretention.py +343 -0
  631. hydpy/models/dam_pump.py +278 -0
  632. hydpy/models/dam_pump_sluice.py +339 -0
  633. hydpy/models/dam_sluice.py +319 -0
  634. hydpy/models/dam_v001.py +1127 -0
  635. hydpy/models/dam_v002.py +381 -0
  636. hydpy/models/dam_v003.py +422 -0
  637. hydpy/models/dam_v004.py +665 -0
  638. hydpy/models/dam_v005.py +479 -0
  639. hydpy/models/dummy/__init__.py +15 -0
  640. hydpy/models/dummy/dummy_control.py +22 -0
  641. hydpy/models/dummy/dummy_fluxes.py +11 -0
  642. hydpy/models/dummy/dummy_inlets.py +11 -0
  643. hydpy/models/dummy/dummy_inputs.py +41 -0
  644. hydpy/models/dummy/dummy_model.py +196 -0
  645. hydpy/models/dummy/dummy_outlets.py +11 -0
  646. hydpy/models/dummy_interceptedwater.py +85 -0
  647. hydpy/models/dummy_node2node.py +83 -0
  648. hydpy/models/dummy_snowalbedo.py +84 -0
  649. hydpy/models/dummy_snowcover.py +84 -0
  650. hydpy/models/dummy_snowycanopy.py +86 -0
  651. hydpy/models/dummy_soilwater.py +85 -0
  652. hydpy/models/evap/__init__.py +13 -0
  653. hydpy/models/evap/evap_control.py +354 -0
  654. hydpy/models/evap/evap_derived.py +236 -0
  655. hydpy/models/evap/evap_factors.py +188 -0
  656. hydpy/models/evap/evap_fixed.py +68 -0
  657. hydpy/models/evap/evap_fluxes.py +150 -0
  658. hydpy/models/evap/evap_inputs.py +54 -0
  659. hydpy/models/evap/evap_logs.py +91 -0
  660. hydpy/models/evap/evap_masks.py +48 -0
  661. hydpy/models/evap/evap_model.py +9170 -0
  662. hydpy/models/evap/evap_parameters.py +149 -0
  663. hydpy/models/evap/evap_sequences.py +32 -0
  664. hydpy/models/evap/evap_states.py +18 -0
  665. hydpy/models/evap_aet_hbv96.py +372 -0
  666. hydpy/models/evap_aet_minhas.py +331 -0
  667. hydpy/models/evap_aet_morsim.py +627 -0
  668. hydpy/models/evap_pet_ambav1.py +483 -0
  669. hydpy/models/evap_pet_hbv96.py +147 -0
  670. hydpy/models/evap_pet_m.py +94 -0
  671. hydpy/models/evap_pet_mlc.py +107 -0
  672. hydpy/models/evap_ret_fao56.py +265 -0
  673. hydpy/models/evap_ret_io.py +74 -0
  674. hydpy/models/evap_ret_tw2002.py +165 -0
  675. hydpy/models/exch/__init__.py +14 -0
  676. hydpy/models/exch/exch_control.py +262 -0
  677. hydpy/models/exch/exch_derived.py +36 -0
  678. hydpy/models/exch/exch_factors.py +26 -0
  679. hydpy/models/exch/exch_fluxes.py +48 -0
  680. hydpy/models/exch/exch_inlets.py +11 -0
  681. hydpy/models/exch/exch_logs.py +12 -0
  682. hydpy/models/exch/exch_model.py +451 -0
  683. hydpy/models/exch/exch_outlets.py +17 -0
  684. hydpy/models/exch/exch_receivers.py +17 -0
  685. hydpy/models/exch_branch_hbv96.py +186 -0
  686. hydpy/models/exch_waterlevel.py +73 -0
  687. hydpy/models/exch_weir_hbv96.py +609 -0
  688. hydpy/models/ga/__init__.py +14 -0
  689. hydpy/models/ga/ga_aides.py +17 -0
  690. hydpy/models/ga/ga_control.py +208 -0
  691. hydpy/models/ga/ga_derived.py +77 -0
  692. hydpy/models/ga/ga_fluxes.py +83 -0
  693. hydpy/models/ga/ga_inputs.py +26 -0
  694. hydpy/models/ga/ga_logs.py +17 -0
  695. hydpy/models/ga/ga_model.py +2952 -0
  696. hydpy/models/ga/ga_states.py +87 -0
  697. hydpy/models/ga_garto.py +1001 -0
  698. hydpy/models/ga_garto_submodel1.py +79 -0
  699. hydpy/models/gland/__init__.py +14 -0
  700. hydpy/models/gland/gland_control.py +90 -0
  701. hydpy/models/gland/gland_derived.py +113 -0
  702. hydpy/models/gland/gland_fluxes.py +137 -0
  703. hydpy/models/gland/gland_inputs.py +12 -0
  704. hydpy/models/gland/gland_model.py +1439 -0
  705. hydpy/models/gland/gland_outlets.py +11 -0
  706. hydpy/models/gland/gland_states.py +90 -0
  707. hydpy/models/gland_gr4.py +501 -0
  708. hydpy/models/gland_gr5.py +463 -0
  709. hydpy/models/gland_gr6.py +487 -0
  710. hydpy/models/hland/__init__.py +20 -0
  711. hydpy/models/hland/hland_aides.py +19 -0
  712. hydpy/models/hland/hland_constants.py +37 -0
  713. hydpy/models/hland/hland_control.py +1530 -0
  714. hydpy/models/hland/hland_derived.py +683 -0
  715. hydpy/models/hland/hland_factors.py +57 -0
  716. hydpy/models/hland/hland_fixed.py +42 -0
  717. hydpy/models/hland/hland_fluxes.py +279 -0
  718. hydpy/models/hland/hland_inputs.py +19 -0
  719. hydpy/models/hland/hland_masks.py +107 -0
  720. hydpy/models/hland/hland_model.py +4664 -0
  721. hydpy/models/hland/hland_outlets.py +11 -0
  722. hydpy/models/hland/hland_parameters.py +227 -0
  723. hydpy/models/hland/hland_sequences.py +382 -0
  724. hydpy/models/hland/hland_states.py +236 -0
  725. hydpy/models/hland_96.py +1812 -0
  726. hydpy/models/hland_96c.py +1196 -0
  727. hydpy/models/hland_96p.py +1204 -0
  728. hydpy/models/kinw/__init__.py +18 -0
  729. hydpy/models/kinw/kinw_aides.py +306 -0
  730. hydpy/models/kinw/kinw_control.py +270 -0
  731. hydpy/models/kinw/kinw_derived.py +197 -0
  732. hydpy/models/kinw/kinw_fixed.py +33 -0
  733. hydpy/models/kinw/kinw_fluxes.py +37 -0
  734. hydpy/models/kinw/kinw_inlets.py +11 -0
  735. hydpy/models/kinw/kinw_model.py +3026 -0
  736. hydpy/models/kinw/kinw_outlets.py +11 -0
  737. hydpy/models/kinw/kinw_solver.py +45 -0
  738. hydpy/models/kinw/kinw_states.py +17 -0
  739. hydpy/models/kinw_williams.py +1299 -0
  740. hydpy/models/kinw_williams_ext.py +768 -0
  741. hydpy/models/lland/__init__.py +42 -0
  742. hydpy/models/lland/lland_aides.py +38 -0
  743. hydpy/models/lland/lland_constants.py +88 -0
  744. hydpy/models/lland/lland_control.py +1329 -0
  745. hydpy/models/lland/lland_derived.py +380 -0
  746. hydpy/models/lland/lland_factors.py +18 -0
  747. hydpy/models/lland/lland_fixed.py +128 -0
  748. hydpy/models/lland/lland_fluxes.py +626 -0
  749. hydpy/models/lland/lland_inlets.py +12 -0
  750. hydpy/models/lland/lland_inputs.py +33 -0
  751. hydpy/models/lland/lland_logs.py +17 -0
  752. hydpy/models/lland/lland_masks.py +212 -0
  753. hydpy/models/lland/lland_model.py +7690 -0
  754. hydpy/models/lland/lland_outlets.py +12 -0
  755. hydpy/models/lland/lland_parameters.py +195 -0
  756. hydpy/models/lland/lland_sequences.py +67 -0
  757. hydpy/models/lland/lland_states.py +280 -0
  758. hydpy/models/lland_dd.py +2270 -0
  759. hydpy/models/lland_knauf.py +2156 -0
  760. hydpy/models/lland_knauf_ic.py +1920 -0
  761. hydpy/models/meteo/__init__.py +12 -0
  762. hydpy/models/meteo/meteo_control.py +154 -0
  763. hydpy/models/meteo/meteo_derived.py +159 -0
  764. hydpy/models/meteo/meteo_factors.py +88 -0
  765. hydpy/models/meteo/meteo_fixed.py +19 -0
  766. hydpy/models/meteo/meteo_fluxes.py +46 -0
  767. hydpy/models/meteo/meteo_inputs.py +47 -0
  768. hydpy/models/meteo/meteo_logs.py +30 -0
  769. hydpy/models/meteo/meteo_model.py +2904 -0
  770. hydpy/models/meteo/meteo_parameters.py +14 -0
  771. hydpy/models/meteo/meteo_sequences.py +22 -0
  772. hydpy/models/meteo_clear_glob_io.py +77 -0
  773. hydpy/models/meteo_glob_fao56.py +217 -0
  774. hydpy/models/meteo_glob_io.py +68 -0
  775. hydpy/models/meteo_glob_morsim.py +444 -0
  776. hydpy/models/meteo_precip_io.py +76 -0
  777. hydpy/models/meteo_psun_sun_glob_io.py +83 -0
  778. hydpy/models/meteo_sun_fao56.py +188 -0
  779. hydpy/models/meteo_sun_morsim.py +466 -0
  780. hydpy/models/meteo_temp_io.py +76 -0
  781. hydpy/models/musk/__init__.py +15 -0
  782. hydpy/models/musk/musk_control.py +328 -0
  783. hydpy/models/musk/musk_derived.py +32 -0
  784. hydpy/models/musk/musk_factors.py +53 -0
  785. hydpy/models/musk/musk_fluxes.py +24 -0
  786. hydpy/models/musk/musk_inlets.py +11 -0
  787. hydpy/models/musk/musk_masks.py +15 -0
  788. hydpy/models/musk/musk_model.py +838 -0
  789. hydpy/models/musk/musk_outlets.py +11 -0
  790. hydpy/models/musk/musk_sequences.py +88 -0
  791. hydpy/models/musk/musk_solver.py +68 -0
  792. hydpy/models/musk/musk_states.py +64 -0
  793. hydpy/models/musk_classic.py +228 -0
  794. hydpy/models/musk_mct.py +1247 -0
  795. hydpy/models/rconc/__init__.py +12 -0
  796. hydpy/models/rconc/rconc_control.py +473 -0
  797. hydpy/models/rconc/rconc_derived.py +76 -0
  798. hydpy/models/rconc/rconc_fluxes.py +19 -0
  799. hydpy/models/rconc/rconc_logs.py +74 -0
  800. hydpy/models/rconc/rconc_model.py +260 -0
  801. hydpy/models/rconc/rconc_states.py +11 -0
  802. hydpy/models/rconc_nash.py +48 -0
  803. hydpy/models/rconc_uh.py +53 -0
  804. hydpy/models/sw1d/__init__.py +17 -0
  805. hydpy/models/sw1d/sw1d_control.py +356 -0
  806. hydpy/models/sw1d/sw1d_derived.py +85 -0
  807. hydpy/models/sw1d/sw1d_factors.py +78 -0
  808. hydpy/models/sw1d/sw1d_fixed.py +12 -0
  809. hydpy/models/sw1d/sw1d_fluxes.py +55 -0
  810. hydpy/models/sw1d/sw1d_inlets.py +17 -0
  811. hydpy/models/sw1d/sw1d_model.py +3385 -0
  812. hydpy/models/sw1d/sw1d_outlets.py +11 -0
  813. hydpy/models/sw1d/sw1d_receivers.py +11 -0
  814. hydpy/models/sw1d/sw1d_senders.py +11 -0
  815. hydpy/models/sw1d/sw1d_states.py +23 -0
  816. hydpy/models/sw1d_channel.py +2051 -0
  817. hydpy/models/sw1d_gate_out.py +599 -0
  818. hydpy/models/sw1d_lias.py +105 -0
  819. hydpy/models/sw1d_lias_sluice.py +531 -0
  820. hydpy/models/sw1d_network.py +1219 -0
  821. hydpy/models/sw1d_pump.py +448 -0
  822. hydpy/models/sw1d_q_in.py +79 -0
  823. hydpy/models/sw1d_q_out.py +81 -0
  824. hydpy/models/sw1d_storage.py +78 -0
  825. hydpy/models/sw1d_weir_out.py +75 -0
  826. hydpy/models/test/__init__.py +14 -0
  827. hydpy/models/test/test_control.py +28 -0
  828. hydpy/models/test/test_fluxes.py +17 -0
  829. hydpy/models/test/test_model.py +201 -0
  830. hydpy/models/test/test_solver.py +48 -0
  831. hydpy/models/test/test_states.py +17 -0
  832. hydpy/models/test_discontinous.py +46 -0
  833. hydpy/models/test_stiff0d.py +47 -0
  834. hydpy/models/test_stiff1d.py +42 -0
  835. hydpy/models/whmod/__init__.py +21 -0
  836. hydpy/models/whmod/whmod_constants.py +77 -0
  837. hydpy/models/whmod/whmod_control.py +333 -0
  838. hydpy/models/whmod/whmod_derived.py +210 -0
  839. hydpy/models/whmod/whmod_factors.py +9 -0
  840. hydpy/models/whmod/whmod_fluxes.py +105 -0
  841. hydpy/models/whmod/whmod_inputs.py +15 -0
  842. hydpy/models/whmod/whmod_masks.py +178 -0
  843. hydpy/models/whmod/whmod_model.py +2091 -0
  844. hydpy/models/whmod/whmod_parameters.py +155 -0
  845. hydpy/models/whmod/whmod_sequences.py +193 -0
  846. hydpy/models/whmod/whmod_states.py +73 -0
  847. hydpy/models/whmod_rural.py +794 -0
  848. hydpy/models/whmod_urban.py +1011 -0
  849. hydpy/models/wland/__init__.py +43 -0
  850. hydpy/models/wland/wland_aides.py +55 -0
  851. hydpy/models/wland/wland_constants.py +103 -0
  852. hydpy/models/wland/wland_control.py +508 -0
  853. hydpy/models/wland/wland_derived.py +330 -0
  854. hydpy/models/wland/wland_factors.py +11 -0
  855. hydpy/models/wland/wland_fixed.py +12 -0
  856. hydpy/models/wland/wland_fluxes.py +166 -0
  857. hydpy/models/wland/wland_inputs.py +33 -0
  858. hydpy/models/wland/wland_masks.py +54 -0
  859. hydpy/models/wland/wland_model.py +3755 -0
  860. hydpy/models/wland/wland_outlets.py +11 -0
  861. hydpy/models/wland/wland_parameters.py +214 -0
  862. hydpy/models/wland/wland_sequences.py +108 -0
  863. hydpy/models/wland/wland_solver.py +45 -0
  864. hydpy/models/wland/wland_states.py +56 -0
  865. hydpy/models/wland_gd.py +888 -0
  866. hydpy/models/wland_wag.py +1244 -0
  867. hydpy/models/wq/__init__.py +14 -0
  868. hydpy/models/wq/wq_control.py +117 -0
  869. hydpy/models/wq/wq_derived.py +182 -0
  870. hydpy/models/wq/wq_factors.py +79 -0
  871. hydpy/models/wq/wq_fluxes.py +17 -0
  872. hydpy/models/wq/wq_model.py +1889 -0
  873. hydpy/models/wq_trapeze.py +168 -0
  874. hydpy/models/wq_trapeze_strickler.py +101 -0
  875. hydpy/models/wq_walrus.py +57 -0
  876. hydpy/py.typed +0 -0
  877. hydpy/tests/.coveragerc +22 -0
  878. hydpy/tests/__init__.py +0 -0
  879. hydpy/tests/check_consistency.py +32 -0
  880. hydpy/tests/hydpydoctestcustomize.pth +1 -0
  881. hydpy/tests/hydpydoctestcustomize.py +15 -0
  882. hydpy/tests/iotesting/__init__.py +0 -0
  883. hydpy/tests/run_doctests.py +233 -0
  884. hydpy-6.2.dev1.data/scripts/hyd.py +277 -0
  885. hydpy-6.2.dev1.dist-info/LICENSE +165 -0
  886. hydpy-6.2.dev1.dist-info/METADATA +163 -0
  887. hydpy-6.2.dev1.dist-info/RECORD +890 -0
  888. hydpy-6.2.dev1.dist-info/WHEEL +5 -0
  889. hydpy-6.2.dev1.dist-info/licenses_hydpy_installer.txt +42 -0
  890. 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()