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,179 @@
1
+ #!python
2
+ # distutils: define_macros=NPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION
3
+ # cython: language_level=3
4
+ # cython: cpow=True
5
+ # cython: boundscheck=False
6
+ # cython: wraparound=False
7
+ # cython: initializedcheck=False
8
+ # cython: cdivision=True
9
+ from typing import Optional
10
+ import numpy
11
+ cimport numpy
12
+ from libc.math cimport exp, fabs, log, sin, cos, tan, tanh, asin, acos, atan, isnan, isinf
13
+ from libc.math cimport NAN as nan
14
+ from libc.math cimport INFINITY as inf
15
+ import cython
16
+ from cpython.mem cimport PyMem_Malloc
17
+ from cpython.mem cimport PyMem_Realloc
18
+ from cpython.mem cimport PyMem_Free
19
+ from hydpy.cythons.autogen cimport configutils
20
+ from hydpy.cythons.autogen cimport interfaceutils
21
+ from hydpy.cythons.autogen cimport interputils
22
+ from hydpy.cythons.autogen import pointerutils
23
+ from hydpy.cythons.autogen cimport pointerutils
24
+ from hydpy.cythons.autogen cimport quadutils
25
+ from hydpy.cythons.autogen cimport rootutils
26
+ from hydpy.cythons.autogen cimport smoothutils
27
+ from hydpy.cythons.autogen cimport masterinterface
28
+ ctypedef void (*CallbackType) (Model) noexcept nogil
29
+ cdef class CallbackWrapper:
30
+ cdef CallbackType callback
31
+ @cython.final
32
+ cdef class Parameters:
33
+ cdef public ControlParameters control
34
+ cdef public DerivedParameters derived
35
+ @cython.final
36
+ cdef class ControlParameters:
37
+ cdef public numpy.int64_t nmbhru
38
+ cdef public double[:] hruarea
39
+ cdef public double[:] hrualtitude
40
+ cdef public double[:] evapotranspirationfactor
41
+ cdef public double[:] altitudefactor
42
+ cdef public double[:] precipitationfactor
43
+ cdef public double[:] airtemperaturefactor
44
+ @cython.final
45
+ cdef class DerivedParameters:
46
+ cdef public double[:] hruareafraction
47
+ cdef public double altitude
48
+ @cython.final
49
+ cdef class Sequences:
50
+ cdef public InputSequences inputs
51
+ cdef public FactorSequences factors
52
+ cdef public FluxSequences fluxes
53
+ @cython.final
54
+ cdef class InputSequences:
55
+ cdef public double normalairtemperature
56
+ cdef public numpy.int64_t _normalairtemperature_ndim
57
+ cdef public numpy.int64_t _normalairtemperature_length
58
+ cdef public bint _normalairtemperature_ramflag
59
+ cdef public double[:] _normalairtemperature_array
60
+ cdef public bint _normalairtemperature_diskflag_reading
61
+ cdef public bint _normalairtemperature_diskflag_writing
62
+ cdef public double[:] _normalairtemperature_ncarray
63
+ cdef public bint _normalairtemperature_inputflag
64
+ cdef double *_normalairtemperature_inputpointer
65
+ cdef public double normalevapotranspiration
66
+ cdef public numpy.int64_t _normalevapotranspiration_ndim
67
+ cdef public numpy.int64_t _normalevapotranspiration_length
68
+ cdef public bint _normalevapotranspiration_ramflag
69
+ cdef public double[:] _normalevapotranspiration_array
70
+ cdef public bint _normalevapotranspiration_diskflag_reading
71
+ cdef public bint _normalevapotranspiration_diskflag_writing
72
+ cdef public double[:] _normalevapotranspiration_ncarray
73
+ cdef public bint _normalevapotranspiration_inputflag
74
+ cdef double *_normalevapotranspiration_inputpointer
75
+ cpdef inline void load_data(self, numpy.int64_t idx) noexcept nogil
76
+ cpdef inline void save_data(self, numpy.int64_t idx) noexcept nogil
77
+ cpdef inline set_pointerinput(self, str name, pointerutils.PDouble value)
78
+ @cython.final
79
+ cdef class FactorSequences:
80
+ cdef public double meanairtemperature
81
+ cdef public numpy.int64_t _meanairtemperature_ndim
82
+ cdef public numpy.int64_t _meanairtemperature_length
83
+ cdef public bint _meanairtemperature_ramflag
84
+ cdef public double[:] _meanairtemperature_array
85
+ cdef public bint _meanairtemperature_diskflag_reading
86
+ cdef public bint _meanairtemperature_diskflag_writing
87
+ cdef public double[:] _meanairtemperature_ncarray
88
+ cdef public bint _meanairtemperature_outputflag
89
+ cdef double *_meanairtemperature_outputpointer
90
+ cpdef inline void load_data(self, numpy.int64_t idx) noexcept nogil
91
+ cpdef inline void save_data(self, numpy.int64_t idx) noexcept nogil
92
+ cpdef inline set_pointeroutput(self, str name, pointerutils.PDouble value)
93
+ cpdef inline void update_outputs(self) noexcept nogil
94
+ @cython.final
95
+ cdef class FluxSequences:
96
+ cdef public double[:] precipitation
97
+ cdef public numpy.int64_t _precipitation_ndim
98
+ cdef public numpy.int64_t _precipitation_length
99
+ cdef public numpy.int64_t _precipitation_length_0
100
+ cdef public bint _precipitation_ramflag
101
+ cdef public double[:,:] _precipitation_array
102
+ cdef public bint _precipitation_diskflag_reading
103
+ cdef public bint _precipitation_diskflag_writing
104
+ cdef public double[:] _precipitation_ncarray
105
+ cdef public double[:] referenceevapotranspiration
106
+ cdef public numpy.int64_t _referenceevapotranspiration_ndim
107
+ cdef public numpy.int64_t _referenceevapotranspiration_length
108
+ cdef public numpy.int64_t _referenceevapotranspiration_length_0
109
+ cdef public bint _referenceevapotranspiration_ramflag
110
+ cdef public double[:,:] _referenceevapotranspiration_array
111
+ cdef public bint _referenceevapotranspiration_diskflag_reading
112
+ cdef public bint _referenceevapotranspiration_diskflag_writing
113
+ cdef public double[:] _referenceevapotranspiration_ncarray
114
+ cdef public double[:] potentialevapotranspiration
115
+ cdef public numpy.int64_t _potentialevapotranspiration_ndim
116
+ cdef public numpy.int64_t _potentialevapotranspiration_length
117
+ cdef public numpy.int64_t _potentialevapotranspiration_length_0
118
+ cdef public bint _potentialevapotranspiration_ramflag
119
+ cdef public double[:,:] _potentialevapotranspiration_array
120
+ cdef public bint _potentialevapotranspiration_diskflag_reading
121
+ cdef public bint _potentialevapotranspiration_diskflag_writing
122
+ cdef public double[:] _potentialevapotranspiration_ncarray
123
+ cdef public double meanpotentialevapotranspiration
124
+ cdef public numpy.int64_t _meanpotentialevapotranspiration_ndim
125
+ cdef public numpy.int64_t _meanpotentialevapotranspiration_length
126
+ cdef public bint _meanpotentialevapotranspiration_ramflag
127
+ cdef public double[:] _meanpotentialevapotranspiration_array
128
+ cdef public bint _meanpotentialevapotranspiration_diskflag_reading
129
+ cdef public bint _meanpotentialevapotranspiration_diskflag_writing
130
+ cdef public double[:] _meanpotentialevapotranspiration_ncarray
131
+ cdef public bint _meanpotentialevapotranspiration_outputflag
132
+ cdef double *_meanpotentialevapotranspiration_outputpointer
133
+ cpdef inline void load_data(self, numpy.int64_t idx) noexcept nogil
134
+ cpdef inline void save_data(self, numpy.int64_t idx) noexcept nogil
135
+ cpdef inline set_pointeroutput(self, str name, pointerutils.PDouble value)
136
+ cpdef inline void update_outputs(self) noexcept nogil
137
+ @cython.final
138
+ cdef class Model(masterinterface.MasterInterface):
139
+ cdef public Parameters parameters
140
+ cdef public Sequences sequences
141
+ cdef public masterinterface.MasterInterface precipmodel
142
+ cdef public numpy.npy_bool precipmodel_is_mainmodel
143
+ cdef public numpy.int64_t precipmodel_typeid
144
+ cdef public masterinterface.MasterInterface tempmodel
145
+ cdef public numpy.npy_bool tempmodel_is_mainmodel
146
+ cdef public numpy.int64_t tempmodel_typeid
147
+ cpdef inline void simulate(self, numpy.int64_t idx) noexcept nogil
148
+ cpdef void reset_reuseflags(self) noexcept nogil
149
+ cpdef void load_data(self, numpy.int64_t idx) noexcept nogil
150
+ cpdef void save_data(self, numpy.int64_t idx) noexcept nogil
151
+ cpdef void new2old(self) noexcept nogil
152
+ cpdef inline void run(self) noexcept nogil
153
+ cpdef inline void update_inlets(self) noexcept nogil
154
+ cpdef inline void update_outlets(self) noexcept nogil
155
+ cpdef inline void update_receivers(self, numpy.int64_t idx) noexcept nogil
156
+ cpdef inline void update_senders(self, numpy.int64_t idx) noexcept nogil
157
+ cpdef inline void update_outputs(self) noexcept nogil
158
+ cpdef inline void calc_meanairtemperature_v1(self) noexcept nogil
159
+ cpdef inline void calc_precipitation_v1(self) noexcept nogil
160
+ cpdef inline void calc_referenceevapotranspiration_v5(self) noexcept nogil
161
+ cpdef inline void adjust_referenceevapotranspiration_v1(self) noexcept nogil
162
+ cpdef inline void calc_potentialevapotranspiration_v3(self) noexcept nogil
163
+ cpdef inline void calc_meanpotentialevapotranspiration_v1(self) noexcept nogil
164
+ cpdef void determine_potentialevapotranspiration_v1(self) noexcept nogil
165
+ cpdef double get_potentialevapotranspiration_v2(self, numpy.int64_t k) noexcept nogil
166
+ cpdef double get_meanpotentialevapotranspiration_v2(self) noexcept nogil
167
+ cpdef inline void calc_meanairtemperature_tempmodel_v1(self, masterinterface.MasterInterface submodel) noexcept nogil
168
+ cpdef inline void calc_meanairtemperature_tempmodel_v2(self, masterinterface.MasterInterface submodel) noexcept nogil
169
+ cpdef inline void calc_precipitation_precipmodel_v1(self, masterinterface.MasterInterface submodel) noexcept nogil
170
+ cpdef inline void calc_precipitation_precipmodel_v2(self, masterinterface.MasterInterface submodel) noexcept nogil
171
+ cpdef inline void calc_meanairtemperature(self) noexcept nogil
172
+ cpdef inline void calc_precipitation(self) noexcept nogil
173
+ cpdef inline void calc_referenceevapotranspiration(self) noexcept nogil
174
+ cpdef inline void adjust_referenceevapotranspiration(self) noexcept nogil
175
+ cpdef inline void calc_potentialevapotranspiration(self) noexcept nogil
176
+ cpdef inline void calc_meanpotentialevapotranspiration(self) noexcept nogil
177
+ cpdef void determine_potentialevapotranspiration(self) noexcept nogil
178
+ cpdef double get_potentialevapotranspiration(self, numpy.int64_t k) noexcept nogil
179
+ cpdef double get_meanpotentialevapotranspiration(self) noexcept nogil
@@ -0,0 +1,328 @@
1
+ #!python
2
+ # distutils: define_macros=NPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION
3
+ # cython: language_level=3
4
+ # cython: cpow=True
5
+ # cython: boundscheck=False
6
+ # cython: wraparound=False
7
+ # cython: initializedcheck=False
8
+ # cython: cdivision=True
9
+ from typing import Optional
10
+ import numpy
11
+ cimport numpy
12
+ from libc.math cimport exp, fabs, log, sin, cos, tan, tanh, asin, acos, atan, isnan, isinf
13
+ from libc.math cimport NAN as nan
14
+ from libc.math cimport INFINITY as inf
15
+ import cython
16
+ from cpython.mem cimport PyMem_Malloc
17
+ from cpython.mem cimport PyMem_Realloc
18
+ from cpython.mem cimport PyMem_Free
19
+ from hydpy.cythons.autogen cimport configutils
20
+ from hydpy.cythons.autogen cimport interfaceutils
21
+ from hydpy.cythons.autogen cimport interputils
22
+ from hydpy.cythons.autogen import pointerutils
23
+ from hydpy.cythons.autogen cimport pointerutils
24
+ from hydpy.cythons.autogen cimport quadutils
25
+ from hydpy.cythons.autogen cimport rootutils
26
+ from hydpy.cythons.autogen cimport smoothutils
27
+ from hydpy.cythons.autogen cimport masterinterface
28
+
29
+
30
+ cdef void do_nothing(Model model) noexcept nogil:
31
+ pass
32
+
33
+ cpdef get_wrapper():
34
+ cdef CallbackWrapper wrapper = CallbackWrapper()
35
+ wrapper.callback = do_nothing
36
+ return wrapper
37
+
38
+ @cython.final
39
+ cdef class Parameters:
40
+ pass
41
+ @cython.final
42
+ cdef class ControlParameters:
43
+ pass
44
+ @cython.final
45
+ cdef class DerivedParameters:
46
+ pass
47
+ @cython.final
48
+ cdef class Sequences:
49
+ pass
50
+ @cython.final
51
+ cdef class InputSequences:
52
+ cpdef inline void load_data(self, numpy.int64_t idx) noexcept nogil:
53
+ cdef numpy.int64_t k
54
+ if self._normalairtemperature_inputflag:
55
+ self.normalairtemperature = self._normalairtemperature_inputpointer[0]
56
+ elif self._normalairtemperature_diskflag_reading:
57
+ self.normalairtemperature = self._normalairtemperature_ncarray[0]
58
+ elif self._normalairtemperature_ramflag:
59
+ self.normalairtemperature = self._normalairtemperature_array[idx]
60
+ if self._normalevapotranspiration_inputflag:
61
+ self.normalevapotranspiration = self._normalevapotranspiration_inputpointer[0]
62
+ elif self._normalevapotranspiration_diskflag_reading:
63
+ self.normalevapotranspiration = self._normalevapotranspiration_ncarray[0]
64
+ elif self._normalevapotranspiration_ramflag:
65
+ self.normalevapotranspiration = self._normalevapotranspiration_array[idx]
66
+ cpdef inline void save_data(self, numpy.int64_t idx) noexcept nogil:
67
+ cdef numpy.int64_t k
68
+ if self._normalairtemperature_diskflag_writing:
69
+ self._normalairtemperature_ncarray[0] = self.normalairtemperature
70
+ if self._normalairtemperature_ramflag:
71
+ self._normalairtemperature_array[idx] = self.normalairtemperature
72
+ if self._normalevapotranspiration_diskflag_writing:
73
+ self._normalevapotranspiration_ncarray[0] = self.normalevapotranspiration
74
+ if self._normalevapotranspiration_ramflag:
75
+ self._normalevapotranspiration_array[idx] = self.normalevapotranspiration
76
+ cpdef inline set_pointerinput(self, str name, pointerutils.PDouble value):
77
+ if name == "normalairtemperature":
78
+ self._normalairtemperature_inputpointer = value.p_value
79
+ if name == "normalevapotranspiration":
80
+ self._normalevapotranspiration_inputpointer = value.p_value
81
+ @cython.final
82
+ cdef class FactorSequences:
83
+ cpdef inline void load_data(self, numpy.int64_t idx) noexcept nogil:
84
+ cdef numpy.int64_t k
85
+ if self._meanairtemperature_diskflag_reading:
86
+ self.meanairtemperature = self._meanairtemperature_ncarray[0]
87
+ elif self._meanairtemperature_ramflag:
88
+ self.meanairtemperature = self._meanairtemperature_array[idx]
89
+ cpdef inline void save_data(self, numpy.int64_t idx) noexcept nogil:
90
+ cdef numpy.int64_t k
91
+ if self._meanairtemperature_diskflag_writing:
92
+ self._meanairtemperature_ncarray[0] = self.meanairtemperature
93
+ if self._meanairtemperature_ramflag:
94
+ self._meanairtemperature_array[idx] = self.meanairtemperature
95
+ cpdef inline set_pointeroutput(self, str name, pointerutils.PDouble value):
96
+ if name == "meanairtemperature":
97
+ self._meanairtemperature_outputpointer = value.p_value
98
+ cpdef inline void update_outputs(self) noexcept nogil:
99
+ if self._meanairtemperature_outputflag:
100
+ self._meanairtemperature_outputpointer[0] = self.meanairtemperature
101
+ @cython.final
102
+ cdef class FluxSequences:
103
+ cpdef inline void load_data(self, numpy.int64_t idx) noexcept nogil:
104
+ cdef numpy.int64_t jdx0
105
+ cdef numpy.int64_t k
106
+ if self._precipitation_diskflag_reading:
107
+ k = 0
108
+ for jdx0 in range(self._precipitation_length_0):
109
+ self.precipitation[jdx0] = self._precipitation_ncarray[k]
110
+ k += 1
111
+ elif self._precipitation_ramflag:
112
+ for jdx0 in range(self._precipitation_length_0):
113
+ self.precipitation[jdx0] = self._precipitation_array[idx, jdx0]
114
+ if self._referenceevapotranspiration_diskflag_reading:
115
+ k = 0
116
+ for jdx0 in range(self._referenceevapotranspiration_length_0):
117
+ self.referenceevapotranspiration[jdx0] = self._referenceevapotranspiration_ncarray[k]
118
+ k += 1
119
+ elif self._referenceevapotranspiration_ramflag:
120
+ for jdx0 in range(self._referenceevapotranspiration_length_0):
121
+ self.referenceevapotranspiration[jdx0] = self._referenceevapotranspiration_array[idx, jdx0]
122
+ if self._potentialevapotranspiration_diskflag_reading:
123
+ k = 0
124
+ for jdx0 in range(self._potentialevapotranspiration_length_0):
125
+ self.potentialevapotranspiration[jdx0] = self._potentialevapotranspiration_ncarray[k]
126
+ k += 1
127
+ elif self._potentialevapotranspiration_ramflag:
128
+ for jdx0 in range(self._potentialevapotranspiration_length_0):
129
+ self.potentialevapotranspiration[jdx0] = self._potentialevapotranspiration_array[idx, jdx0]
130
+ if self._meanpotentialevapotranspiration_diskflag_reading:
131
+ self.meanpotentialevapotranspiration = self._meanpotentialevapotranspiration_ncarray[0]
132
+ elif self._meanpotentialevapotranspiration_ramflag:
133
+ self.meanpotentialevapotranspiration = self._meanpotentialevapotranspiration_array[idx]
134
+ cpdef inline void save_data(self, numpy.int64_t idx) noexcept nogil:
135
+ cdef numpy.int64_t jdx0
136
+ cdef numpy.int64_t k
137
+ if self._precipitation_diskflag_writing:
138
+ k = 0
139
+ for jdx0 in range(self._precipitation_length_0):
140
+ self._precipitation_ncarray[k] = self.precipitation[jdx0]
141
+ k += 1
142
+ if self._precipitation_ramflag:
143
+ for jdx0 in range(self._precipitation_length_0):
144
+ self._precipitation_array[idx, jdx0] = self.precipitation[jdx0]
145
+ if self._referenceevapotranspiration_diskflag_writing:
146
+ k = 0
147
+ for jdx0 in range(self._referenceevapotranspiration_length_0):
148
+ self._referenceevapotranspiration_ncarray[k] = self.referenceevapotranspiration[jdx0]
149
+ k += 1
150
+ if self._referenceevapotranspiration_ramflag:
151
+ for jdx0 in range(self._referenceevapotranspiration_length_0):
152
+ self._referenceevapotranspiration_array[idx, jdx0] = self.referenceevapotranspiration[jdx0]
153
+ if self._potentialevapotranspiration_diskflag_writing:
154
+ k = 0
155
+ for jdx0 in range(self._potentialevapotranspiration_length_0):
156
+ self._potentialevapotranspiration_ncarray[k] = self.potentialevapotranspiration[jdx0]
157
+ k += 1
158
+ if self._potentialevapotranspiration_ramflag:
159
+ for jdx0 in range(self._potentialevapotranspiration_length_0):
160
+ self._potentialevapotranspiration_array[idx, jdx0] = self.potentialevapotranspiration[jdx0]
161
+ if self._meanpotentialevapotranspiration_diskflag_writing:
162
+ self._meanpotentialevapotranspiration_ncarray[0] = self.meanpotentialevapotranspiration
163
+ if self._meanpotentialevapotranspiration_ramflag:
164
+ self._meanpotentialevapotranspiration_array[idx] = self.meanpotentialevapotranspiration
165
+ cpdef inline set_pointeroutput(self, str name, pointerutils.PDouble value):
166
+ if name == "meanpotentialevapotranspiration":
167
+ self._meanpotentialevapotranspiration_outputpointer = value.p_value
168
+ cpdef inline void update_outputs(self) noexcept nogil:
169
+ if self._meanpotentialevapotranspiration_outputflag:
170
+ self._meanpotentialevapotranspiration_outputpointer[0] = self.meanpotentialevapotranspiration
171
+ @cython.final
172
+ cdef class Model(masterinterface.MasterInterface):
173
+ def __init__(self):
174
+ super().__init__()
175
+ self.precipmodel = None
176
+ self.precipmodel_is_mainmodel = False
177
+ self.tempmodel = None
178
+ self.tempmodel_is_mainmodel = False
179
+ def get_precipmodel(self) -> masterinterface.MasterInterface | None:
180
+ return self.precipmodel
181
+ def set_precipmodel(self, precipmodel: masterinterface.MasterInterface | None) -> None:
182
+ self.precipmodel = precipmodel
183
+ def get_tempmodel(self) -> masterinterface.MasterInterface | None:
184
+ return self.tempmodel
185
+ def set_tempmodel(self, tempmodel: masterinterface.MasterInterface | None) -> None:
186
+ self.tempmodel = tempmodel
187
+ cpdef inline void simulate(self, numpy.int64_t idx) noexcept nogil:
188
+ self.idx_sim = idx
189
+ self.reset_reuseflags()
190
+ self.load_data(idx)
191
+ self.run()
192
+ self.update_outputs()
193
+ cpdef void reset_reuseflags(self) noexcept nogil:
194
+ if (self.precipmodel is not None) and not self.precipmodel_is_mainmodel:
195
+ self.precipmodel.reset_reuseflags()
196
+ if (self.tempmodel is not None) and not self.tempmodel_is_mainmodel:
197
+ self.tempmodel.reset_reuseflags()
198
+ cpdef void load_data(self, numpy.int64_t idx) noexcept nogil:
199
+ self.idx_sim = idx
200
+ self.sequences.inputs.load_data(idx)
201
+ if (self.precipmodel is not None) and not self.precipmodel_is_mainmodel:
202
+ self.precipmodel.load_data(idx)
203
+ if (self.tempmodel is not None) and not self.tempmodel_is_mainmodel:
204
+ self.tempmodel.load_data(idx)
205
+ cpdef void save_data(self, numpy.int64_t idx) noexcept nogil:
206
+ self.idx_sim = idx
207
+ self.sequences.inputs.save_data(idx)
208
+ self.sequences.factors.save_data(idx)
209
+ self.sequences.fluxes.save_data(idx)
210
+ if (self.precipmodel is not None) and not self.precipmodel_is_mainmodel:
211
+ self.precipmodel.save_data(idx)
212
+ if (self.tempmodel is not None) and not self.tempmodel_is_mainmodel:
213
+ self.tempmodel.save_data(idx)
214
+ cpdef void new2old(self) noexcept nogil:
215
+ if (self.precipmodel is not None) and not self.precipmodel_is_mainmodel:
216
+ self.precipmodel.new2old()
217
+ if (self.tempmodel is not None) and not self.tempmodel_is_mainmodel:
218
+ self.tempmodel.new2old()
219
+ cpdef inline void run(self) noexcept nogil:
220
+ self.calc_meanairtemperature_v1()
221
+ self.calc_precipitation_v1()
222
+ self.calc_referenceevapotranspiration_v5()
223
+ self.adjust_referenceevapotranspiration_v1()
224
+ self.calc_potentialevapotranspiration_v3()
225
+ self.calc_meanpotentialevapotranspiration_v1()
226
+ cpdef inline void update_inlets(self) noexcept nogil:
227
+ pass
228
+ cpdef inline void update_outlets(self) noexcept nogil:
229
+ pass
230
+ cpdef inline void update_receivers(self, numpy.int64_t idx) noexcept nogil:
231
+ self.idx_sim = idx
232
+ pass
233
+ cpdef inline void update_senders(self, numpy.int64_t idx) noexcept nogil:
234
+ self.idx_sim = idx
235
+ pass
236
+ cpdef inline void update_outputs(self) noexcept nogil:
237
+ self.sequences.factors.update_outputs()
238
+ self.sequences.fluxes.update_outputs()
239
+ cpdef inline void calc_meanairtemperature_v1(self) noexcept nogil:
240
+ if self.tempmodel_typeid == 1:
241
+ self.calc_meanairtemperature_tempmodel_v1( (<masterinterface.MasterInterface>self.tempmodel) )
242
+ elif self.tempmodel_typeid == 2:
243
+ self.calc_meanairtemperature_tempmodel_v2( (<masterinterface.MasterInterface>self.tempmodel) )
244
+ cpdef inline void calc_precipitation_v1(self) noexcept nogil:
245
+ if self.precipmodel_typeid == 1:
246
+ self.calc_precipitation_precipmodel_v1( (<masterinterface.MasterInterface>self.precipmodel) )
247
+ elif self.precipmodel_typeid == 2:
248
+ self.calc_precipitation_precipmodel_v2( (<masterinterface.MasterInterface>self.precipmodel) )
249
+ cpdef inline void calc_referenceevapotranspiration_v5(self) noexcept nogil:
250
+ cdef numpy.int64_t k
251
+ for k in range(self.parameters.control.nmbhru):
252
+ self.sequences.fluxes.referenceevapotranspiration[k] = self.sequences.inputs.normalevapotranspiration * ( 1.0 + self.parameters.control.airtemperaturefactor[k] * (self.sequences.factors.meanairtemperature - self.sequences.inputs.normalairtemperature) )
253
+ self.sequences.fluxes.referenceevapotranspiration[k] = min( max(self.sequences.fluxes.referenceevapotranspiration[k], 0.0), 2.0 * self.sequences.inputs.normalevapotranspiration, )
254
+ cpdef inline void adjust_referenceevapotranspiration_v1(self) noexcept nogil:
255
+ cdef numpy.int64_t k
256
+ for k in range(self.parameters.control.nmbhru):
257
+ self.sequences.fluxes.referenceevapotranspiration[k] = self.sequences.fluxes.referenceevapotranspiration[k] * (self.parameters.control.evapotranspirationfactor[k])
258
+ cpdef inline void calc_potentialevapotranspiration_v3(self) noexcept nogil:
259
+ cdef numpy.int64_t k
260
+ for k in range(self.parameters.control.nmbhru):
261
+ self.sequences.fluxes.potentialevapotranspiration[k] = self.sequences.fluxes.referenceevapotranspiration[k] * ( 1.0 - self.parameters.control.altitudefactor[k] / 100.0 * (self.parameters.control.hrualtitude[k] - self.parameters.derived.altitude) )
262
+ if self.sequences.fluxes.potentialevapotranspiration[k] <= 0.0:
263
+ self.sequences.fluxes.potentialevapotranspiration[k] = 0.0
264
+ else:
265
+ self.sequences.fluxes.potentialevapotranspiration[k] = self.sequences.fluxes.potentialevapotranspiration[k] * (exp( -self.parameters.control.precipitationfactor[k] * self.sequences.fluxes.precipitation[k] ))
266
+ cpdef inline void calc_meanpotentialevapotranspiration_v1(self) noexcept nogil:
267
+ cdef numpy.int64_t s
268
+ self.sequences.fluxes.meanpotentialevapotranspiration = 0.0
269
+ for s in range(self.parameters.control.nmbhru):
270
+ self.sequences.fluxes.meanpotentialevapotranspiration = self.sequences.fluxes.meanpotentialevapotranspiration + (( self.parameters.derived.hruareafraction[s] * self.sequences.fluxes.potentialevapotranspiration[s] ))
271
+ cpdef void determine_potentialevapotranspiration_v1(self) noexcept nogil:
272
+ self.run()
273
+ cpdef double get_potentialevapotranspiration_v2(self, numpy.int64_t k) noexcept nogil:
274
+ return self.sequences.fluxes.potentialevapotranspiration[k]
275
+ cpdef double get_meanpotentialevapotranspiration_v2(self) noexcept nogil:
276
+ return self.sequences.fluxes.meanpotentialevapotranspiration
277
+ cpdef inline void calc_meanairtemperature_tempmodel_v1(self, masterinterface.MasterInterface submodel) noexcept nogil:
278
+ self.sequences.factors.meanairtemperature = submodel.get_meantemperature()
279
+ cpdef inline void calc_meanairtemperature_tempmodel_v2(self, masterinterface.MasterInterface submodel) noexcept nogil:
280
+ submodel.determine_temperature()
281
+ self.sequences.factors.meanairtemperature = submodel.get_meantemperature()
282
+ cpdef inline void calc_precipitation_precipmodel_v1(self, masterinterface.MasterInterface submodel) noexcept nogil:
283
+ cdef numpy.int64_t k
284
+ for k in range(self.parameters.control.nmbhru):
285
+ self.sequences.fluxes.precipitation[k] = submodel.get_precipitation(k)
286
+ cpdef inline void calc_precipitation_precipmodel_v2(self, masterinterface.MasterInterface submodel) noexcept nogil:
287
+ cdef numpy.int64_t k
288
+ submodel.determine_precipitation()
289
+ for k in range(self.parameters.control.nmbhru):
290
+ self.sequences.fluxes.precipitation[k] = submodel.get_precipitation(k)
291
+ cpdef inline void calc_meanairtemperature(self) noexcept nogil:
292
+ if self.tempmodel_typeid == 1:
293
+ self.calc_meanairtemperature_tempmodel_v1( (<masterinterface.MasterInterface>self.tempmodel) )
294
+ elif self.tempmodel_typeid == 2:
295
+ self.calc_meanairtemperature_tempmodel_v2( (<masterinterface.MasterInterface>self.tempmodel) )
296
+ cpdef inline void calc_precipitation(self) noexcept nogil:
297
+ if self.precipmodel_typeid == 1:
298
+ self.calc_precipitation_precipmodel_v1( (<masterinterface.MasterInterface>self.precipmodel) )
299
+ elif self.precipmodel_typeid == 2:
300
+ self.calc_precipitation_precipmodel_v2( (<masterinterface.MasterInterface>self.precipmodel) )
301
+ cpdef inline void calc_referenceevapotranspiration(self) noexcept nogil:
302
+ cdef numpy.int64_t k
303
+ for k in range(self.parameters.control.nmbhru):
304
+ self.sequences.fluxes.referenceevapotranspiration[k] = self.sequences.inputs.normalevapotranspiration * ( 1.0 + self.parameters.control.airtemperaturefactor[k] * (self.sequences.factors.meanairtemperature - self.sequences.inputs.normalairtemperature) )
305
+ self.sequences.fluxes.referenceevapotranspiration[k] = min( max(self.sequences.fluxes.referenceevapotranspiration[k], 0.0), 2.0 * self.sequences.inputs.normalevapotranspiration, )
306
+ cpdef inline void adjust_referenceevapotranspiration(self) noexcept nogil:
307
+ cdef numpy.int64_t k
308
+ for k in range(self.parameters.control.nmbhru):
309
+ self.sequences.fluxes.referenceevapotranspiration[k] = self.sequences.fluxes.referenceevapotranspiration[k] * (self.parameters.control.evapotranspirationfactor[k])
310
+ cpdef inline void calc_potentialevapotranspiration(self) noexcept nogil:
311
+ cdef numpy.int64_t k
312
+ for k in range(self.parameters.control.nmbhru):
313
+ self.sequences.fluxes.potentialevapotranspiration[k] = self.sequences.fluxes.referenceevapotranspiration[k] * ( 1.0 - self.parameters.control.altitudefactor[k] / 100.0 * (self.parameters.control.hrualtitude[k] - self.parameters.derived.altitude) )
314
+ if self.sequences.fluxes.potentialevapotranspiration[k] <= 0.0:
315
+ self.sequences.fluxes.potentialevapotranspiration[k] = 0.0
316
+ else:
317
+ self.sequences.fluxes.potentialevapotranspiration[k] = self.sequences.fluxes.potentialevapotranspiration[k] * (exp( -self.parameters.control.precipitationfactor[k] * self.sequences.fluxes.precipitation[k] ))
318
+ cpdef inline void calc_meanpotentialevapotranspiration(self) noexcept nogil:
319
+ cdef numpy.int64_t s
320
+ self.sequences.fluxes.meanpotentialevapotranspiration = 0.0
321
+ for s in range(self.parameters.control.nmbhru):
322
+ self.sequences.fluxes.meanpotentialevapotranspiration = self.sequences.fluxes.meanpotentialevapotranspiration + (( self.parameters.derived.hruareafraction[s] * self.sequences.fluxes.potentialevapotranspiration[s] ))
323
+ cpdef void determine_potentialevapotranspiration(self) noexcept nogil:
324
+ self.run()
325
+ cpdef double get_potentialevapotranspiration(self, numpy.int64_t k) noexcept nogil:
326
+ return self.sequences.fluxes.potentialevapotranspiration[k]
327
+ cpdef double get_meanpotentialevapotranspiration(self) noexcept nogil:
328
+ return self.sequences.fluxes.meanpotentialevapotranspiration
@@ -0,0 +1,124 @@
1
+ #!python
2
+ # distutils: define_macros=NPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION
3
+ # cython: language_level=3
4
+ # cython: cpow=True
5
+ # cython: boundscheck=False
6
+ # cython: wraparound=False
7
+ # cython: initializedcheck=False
8
+ # cython: cdivision=True
9
+ from typing import Optional
10
+ import numpy
11
+ cimport numpy
12
+ from libc.math cimport exp, fabs, log, sin, cos, tan, tanh, asin, acos, atan, isnan, isinf
13
+ from libc.math cimport NAN as nan
14
+ from libc.math cimport INFINITY as inf
15
+ import cython
16
+ from cpython.mem cimport PyMem_Malloc
17
+ from cpython.mem cimport PyMem_Realloc
18
+ from cpython.mem cimport PyMem_Free
19
+ from hydpy.cythons.autogen cimport configutils
20
+ from hydpy.cythons.autogen cimport interfaceutils
21
+ from hydpy.cythons.autogen cimport interputils
22
+ from hydpy.cythons.autogen import pointerutils
23
+ from hydpy.cythons.autogen cimport pointerutils
24
+ from hydpy.cythons.autogen cimport quadutils
25
+ from hydpy.cythons.autogen cimport rootutils
26
+ from hydpy.cythons.autogen cimport smoothutils
27
+ from hydpy.cythons.autogen cimport masterinterface
28
+ ctypedef void (*CallbackType) (Model) noexcept nogil
29
+ cdef class CallbackWrapper:
30
+ cdef CallbackType callback
31
+ @cython.final
32
+ cdef class Parameters:
33
+ cdef public ControlParameters control
34
+ cdef public DerivedParameters derived
35
+ @cython.final
36
+ cdef class ControlParameters:
37
+ cdef public numpy.int64_t nmbhru
38
+ cdef public double[:] hruarea
39
+ cdef public double[:] monthfactor
40
+ cdef public numpy.int64_t _monthfactor_entrymin
41
+ cdef public double[:] dampingfactor
42
+ @cython.final
43
+ cdef class DerivedParameters:
44
+ cdef public numpy.int64_t[:] moy
45
+ cdef public double[:] hruareafraction
46
+ @cython.final
47
+ cdef class Sequences:
48
+ cdef public FluxSequences fluxes
49
+ cdef public LogSequences logs
50
+ @cython.final
51
+ cdef class FluxSequences:
52
+ cdef public double[:] referenceevapotranspiration
53
+ cdef public numpy.int64_t _referenceevapotranspiration_ndim
54
+ cdef public numpy.int64_t _referenceevapotranspiration_length
55
+ cdef public numpy.int64_t _referenceevapotranspiration_length_0
56
+ cdef public bint _referenceevapotranspiration_ramflag
57
+ cdef public double[:,:] _referenceevapotranspiration_array
58
+ cdef public bint _referenceevapotranspiration_diskflag_reading
59
+ cdef public bint _referenceevapotranspiration_diskflag_writing
60
+ cdef public double[:] _referenceevapotranspiration_ncarray
61
+ cdef public double[:] potentialevapotranspiration
62
+ cdef public numpy.int64_t _potentialevapotranspiration_ndim
63
+ cdef public numpy.int64_t _potentialevapotranspiration_length
64
+ cdef public numpy.int64_t _potentialevapotranspiration_length_0
65
+ cdef public bint _potentialevapotranspiration_ramflag
66
+ cdef public double[:,:] _potentialevapotranspiration_array
67
+ cdef public bint _potentialevapotranspiration_diskflag_reading
68
+ cdef public bint _potentialevapotranspiration_diskflag_writing
69
+ cdef public double[:] _potentialevapotranspiration_ncarray
70
+ cdef public double meanpotentialevapotranspiration
71
+ cdef public numpy.int64_t _meanpotentialevapotranspiration_ndim
72
+ cdef public numpy.int64_t _meanpotentialevapotranspiration_length
73
+ cdef public bint _meanpotentialevapotranspiration_ramflag
74
+ cdef public double[:] _meanpotentialevapotranspiration_array
75
+ cdef public bint _meanpotentialevapotranspiration_diskflag_reading
76
+ cdef public bint _meanpotentialevapotranspiration_diskflag_writing
77
+ cdef public double[:] _meanpotentialevapotranspiration_ncarray
78
+ cdef public bint _meanpotentialevapotranspiration_outputflag
79
+ cdef double *_meanpotentialevapotranspiration_outputpointer
80
+ cpdef inline void load_data(self, numpy.int64_t idx) noexcept nogil
81
+ cpdef inline void save_data(self, numpy.int64_t idx) noexcept nogil
82
+ cpdef inline set_pointeroutput(self, str name, pointerutils.PDouble value)
83
+ cpdef inline void update_outputs(self) noexcept nogil
84
+ @cython.final
85
+ cdef class LogSequences:
86
+ cdef public double[:,:] loggedpotentialevapotranspiration
87
+ cdef public numpy.int64_t _loggedpotentialevapotranspiration_ndim
88
+ cdef public numpy.int64_t _loggedpotentialevapotranspiration_length
89
+ cdef public numpy.int64_t _loggedpotentialevapotranspiration_length_0
90
+ cdef public numpy.int64_t _loggedpotentialevapotranspiration_length_1
91
+ @cython.final
92
+ cdef class Model(masterinterface.MasterInterface):
93
+ cdef public Parameters parameters
94
+ cdef public Sequences sequences
95
+ cdef public masterinterface.MasterInterface retmodel
96
+ cdef public numpy.npy_bool retmodel_is_mainmodel
97
+ cdef public numpy.int64_t retmodel_typeid
98
+ cpdef inline void simulate(self, numpy.int64_t idx) noexcept nogil
99
+ cpdef void reset_reuseflags(self) noexcept nogil
100
+ cpdef void load_data(self, numpy.int64_t idx) noexcept nogil
101
+ cpdef void save_data(self, numpy.int64_t idx) noexcept nogil
102
+ cpdef void new2old(self) noexcept nogil
103
+ cpdef inline void run(self) noexcept nogil
104
+ cpdef inline void update_inlets(self) noexcept nogil
105
+ cpdef inline void update_outlets(self) noexcept nogil
106
+ cpdef inline void update_receivers(self, numpy.int64_t idx) noexcept nogil
107
+ cpdef inline void update_senders(self, numpy.int64_t idx) noexcept nogil
108
+ cpdef inline void update_outputs(self) noexcept nogil
109
+ cpdef inline void calc_referenceevapotranspiration_v4(self) noexcept nogil
110
+ cpdef inline void calc_potentialevapotranspiration_v1(self) noexcept nogil
111
+ cpdef inline void update_potentialevapotranspiration_v1(self) noexcept nogil
112
+ cpdef inline void calc_meanpotentialevapotranspiration_v1(self) noexcept nogil
113
+ cpdef void determine_potentialevapotranspiration_v1(self) noexcept nogil
114
+ cpdef double get_potentialevapotranspiration_v2(self, numpy.int64_t k) noexcept nogil
115
+ cpdef double get_meanpotentialevapotranspiration_v2(self) noexcept nogil
116
+ cpdef inline void calc_referenceevapotranspiration_petmodel_v1(self, masterinterface.MasterInterface submodel) noexcept nogil
117
+ cpdef inline void calc_referenceevapotranspiration(self) noexcept nogil
118
+ cpdef inline void calc_potentialevapotranspiration(self) noexcept nogil
119
+ cpdef inline void update_potentialevapotranspiration(self) noexcept nogil
120
+ cpdef inline void calc_meanpotentialevapotranspiration(self) noexcept nogil
121
+ cpdef void determine_potentialevapotranspiration(self) noexcept nogil
122
+ cpdef double get_potentialevapotranspiration(self, numpy.int64_t k) noexcept nogil
123
+ cpdef double get_meanpotentialevapotranspiration(self) noexcept nogil
124
+ cpdef inline void calc_referenceevapotranspiration_petmodel(self, masterinterface.MasterInterface submodel) noexcept nogil