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,624 @@
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._relativehumidity_inputflag:
55
+ self.relativehumidity = self._relativehumidity_inputpointer[0]
56
+ elif self._relativehumidity_diskflag_reading:
57
+ self.relativehumidity = self._relativehumidity_ncarray[0]
58
+ elif self._relativehumidity_ramflag:
59
+ self.relativehumidity = self._relativehumidity_array[idx]
60
+ if self._windspeed_inputflag:
61
+ self.windspeed = self._windspeed_inputpointer[0]
62
+ elif self._windspeed_diskflag_reading:
63
+ self.windspeed = self._windspeed_ncarray[0]
64
+ elif self._windspeed_ramflag:
65
+ self.windspeed = self._windspeed_array[idx]
66
+ if self._atmosphericpressure_inputflag:
67
+ self.atmosphericpressure = self._atmosphericpressure_inputpointer[0]
68
+ elif self._atmosphericpressure_diskflag_reading:
69
+ self.atmosphericpressure = self._atmosphericpressure_ncarray[0]
70
+ elif self._atmosphericpressure_ramflag:
71
+ self.atmosphericpressure = self._atmosphericpressure_array[idx]
72
+ cpdef inline void save_data(self, numpy.int64_t idx) noexcept nogil:
73
+ cdef numpy.int64_t k
74
+ if self._relativehumidity_diskflag_writing:
75
+ self._relativehumidity_ncarray[0] = self.relativehumidity
76
+ if self._relativehumidity_ramflag:
77
+ self._relativehumidity_array[idx] = self.relativehumidity
78
+ if self._windspeed_diskflag_writing:
79
+ self._windspeed_ncarray[0] = self.windspeed
80
+ if self._windspeed_ramflag:
81
+ self._windspeed_array[idx] = self.windspeed
82
+ if self._atmosphericpressure_diskflag_writing:
83
+ self._atmosphericpressure_ncarray[0] = self.atmosphericpressure
84
+ if self._atmosphericpressure_ramflag:
85
+ self._atmosphericpressure_array[idx] = self.atmosphericpressure
86
+ cpdef inline set_pointerinput(self, str name, pointerutils.PDouble value):
87
+ if name == "relativehumidity":
88
+ self._relativehumidity_inputpointer = value.p_value
89
+ if name == "windspeed":
90
+ self._windspeed_inputpointer = value.p_value
91
+ if name == "atmosphericpressure":
92
+ self._atmosphericpressure_inputpointer = value.p_value
93
+ @cython.final
94
+ cdef class FactorSequences:
95
+ cpdef inline void load_data(self, numpy.int64_t idx) noexcept nogil:
96
+ cdef numpy.int64_t jdx0
97
+ cdef numpy.int64_t k
98
+ if self._airtemperature_diskflag_reading:
99
+ k = 0
100
+ for jdx0 in range(self._airtemperature_length_0):
101
+ self.airtemperature[jdx0] = self._airtemperature_ncarray[k]
102
+ k += 1
103
+ elif self._airtemperature_ramflag:
104
+ for jdx0 in range(self._airtemperature_length_0):
105
+ self.airtemperature[jdx0] = self._airtemperature_array[idx, jdx0]
106
+ if self._windspeed2m_diskflag_reading:
107
+ self.windspeed2m = self._windspeed2m_ncarray[0]
108
+ elif self._windspeed2m_ramflag:
109
+ self.windspeed2m = self._windspeed2m_array[idx]
110
+ if self._saturationvapourpressure_diskflag_reading:
111
+ k = 0
112
+ for jdx0 in range(self._saturationvapourpressure_length_0):
113
+ self.saturationvapourpressure[jdx0] = self._saturationvapourpressure_ncarray[k]
114
+ k += 1
115
+ elif self._saturationvapourpressure_ramflag:
116
+ for jdx0 in range(self._saturationvapourpressure_length_0):
117
+ self.saturationvapourpressure[jdx0] = self._saturationvapourpressure_array[idx, jdx0]
118
+ if self._saturationvapourpressureslope_diskflag_reading:
119
+ k = 0
120
+ for jdx0 in range(self._saturationvapourpressureslope_length_0):
121
+ self.saturationvapourpressureslope[jdx0] = self._saturationvapourpressureslope_ncarray[k]
122
+ k += 1
123
+ elif self._saturationvapourpressureslope_ramflag:
124
+ for jdx0 in range(self._saturationvapourpressureslope_length_0):
125
+ self.saturationvapourpressureslope[jdx0] = self._saturationvapourpressureslope_array[idx, jdx0]
126
+ if self._actualvapourpressure_diskflag_reading:
127
+ k = 0
128
+ for jdx0 in range(self._actualvapourpressure_length_0):
129
+ self.actualvapourpressure[jdx0] = self._actualvapourpressure_ncarray[k]
130
+ k += 1
131
+ elif self._actualvapourpressure_ramflag:
132
+ for jdx0 in range(self._actualvapourpressure_length_0):
133
+ self.actualvapourpressure[jdx0] = self._actualvapourpressure_array[idx, jdx0]
134
+ if self._psychrometricconstant_diskflag_reading:
135
+ self.psychrometricconstant = self._psychrometricconstant_ncarray[0]
136
+ elif self._psychrometricconstant_ramflag:
137
+ self.psychrometricconstant = self._psychrometricconstant_array[idx]
138
+ cpdef inline void save_data(self, numpy.int64_t idx) noexcept nogil:
139
+ cdef numpy.int64_t jdx0
140
+ cdef numpy.int64_t k
141
+ if self._airtemperature_diskflag_writing:
142
+ k = 0
143
+ for jdx0 in range(self._airtemperature_length_0):
144
+ self._airtemperature_ncarray[k] = self.airtemperature[jdx0]
145
+ k += 1
146
+ if self._airtemperature_ramflag:
147
+ for jdx0 in range(self._airtemperature_length_0):
148
+ self._airtemperature_array[idx, jdx0] = self.airtemperature[jdx0]
149
+ if self._windspeed2m_diskflag_writing:
150
+ self._windspeed2m_ncarray[0] = self.windspeed2m
151
+ if self._windspeed2m_ramflag:
152
+ self._windspeed2m_array[idx] = self.windspeed2m
153
+ if self._saturationvapourpressure_diskflag_writing:
154
+ k = 0
155
+ for jdx0 in range(self._saturationvapourpressure_length_0):
156
+ self._saturationvapourpressure_ncarray[k] = self.saturationvapourpressure[jdx0]
157
+ k += 1
158
+ if self._saturationvapourpressure_ramflag:
159
+ for jdx0 in range(self._saturationvapourpressure_length_0):
160
+ self._saturationvapourpressure_array[idx, jdx0] = self.saturationvapourpressure[jdx0]
161
+ if self._saturationvapourpressureslope_diskflag_writing:
162
+ k = 0
163
+ for jdx0 in range(self._saturationvapourpressureslope_length_0):
164
+ self._saturationvapourpressureslope_ncarray[k] = self.saturationvapourpressureslope[jdx0]
165
+ k += 1
166
+ if self._saturationvapourpressureslope_ramflag:
167
+ for jdx0 in range(self._saturationvapourpressureslope_length_0):
168
+ self._saturationvapourpressureslope_array[idx, jdx0] = self.saturationvapourpressureslope[jdx0]
169
+ if self._actualvapourpressure_diskflag_writing:
170
+ k = 0
171
+ for jdx0 in range(self._actualvapourpressure_length_0):
172
+ self._actualvapourpressure_ncarray[k] = self.actualvapourpressure[jdx0]
173
+ k += 1
174
+ if self._actualvapourpressure_ramflag:
175
+ for jdx0 in range(self._actualvapourpressure_length_0):
176
+ self._actualvapourpressure_array[idx, jdx0] = self.actualvapourpressure[jdx0]
177
+ if self._psychrometricconstant_diskflag_writing:
178
+ self._psychrometricconstant_ncarray[0] = self.psychrometricconstant
179
+ if self._psychrometricconstant_ramflag:
180
+ self._psychrometricconstant_array[idx] = self.psychrometricconstant
181
+ cpdef inline set_pointeroutput(self, str name, pointerutils.PDouble value):
182
+ if name == "windspeed2m":
183
+ self._windspeed2m_outputpointer = value.p_value
184
+ if name == "psychrometricconstant":
185
+ self._psychrometricconstant_outputpointer = value.p_value
186
+ cpdef inline void update_outputs(self) noexcept nogil:
187
+ if self._windspeed2m_outputflag:
188
+ self._windspeed2m_outputpointer[0] = self.windspeed2m
189
+ if self._psychrometricconstant_outputflag:
190
+ self._psychrometricconstant_outputpointer[0] = self.psychrometricconstant
191
+ @cython.final
192
+ cdef class FluxSequences:
193
+ cpdef inline void load_data(self, numpy.int64_t idx) noexcept nogil:
194
+ cdef numpy.int64_t jdx0
195
+ cdef numpy.int64_t k
196
+ if self._globalradiation_diskflag_reading:
197
+ self.globalradiation = self._globalradiation_ncarray[0]
198
+ elif self._globalradiation_ramflag:
199
+ self.globalradiation = self._globalradiation_array[idx]
200
+ if self._clearskysolarradiation_diskflag_reading:
201
+ self.clearskysolarradiation = self._clearskysolarradiation_ncarray[0]
202
+ elif self._clearskysolarradiation_ramflag:
203
+ self.clearskysolarradiation = self._clearskysolarradiation_array[idx]
204
+ if self._netshortwaveradiation_diskflag_reading:
205
+ k = 0
206
+ for jdx0 in range(self._netshortwaveradiation_length_0):
207
+ self.netshortwaveradiation[jdx0] = self._netshortwaveradiation_ncarray[k]
208
+ k += 1
209
+ elif self._netshortwaveradiation_ramflag:
210
+ for jdx0 in range(self._netshortwaveradiation_length_0):
211
+ self.netshortwaveradiation[jdx0] = self._netshortwaveradiation_array[idx, jdx0]
212
+ if self._netlongwaveradiation_diskflag_reading:
213
+ k = 0
214
+ for jdx0 in range(self._netlongwaveradiation_length_0):
215
+ self.netlongwaveradiation[jdx0] = self._netlongwaveradiation_ncarray[k]
216
+ k += 1
217
+ elif self._netlongwaveradiation_ramflag:
218
+ for jdx0 in range(self._netlongwaveradiation_length_0):
219
+ self.netlongwaveradiation[jdx0] = self._netlongwaveradiation_array[idx, jdx0]
220
+ if self._netradiation_diskflag_reading:
221
+ k = 0
222
+ for jdx0 in range(self._netradiation_length_0):
223
+ self.netradiation[jdx0] = self._netradiation_ncarray[k]
224
+ k += 1
225
+ elif self._netradiation_ramflag:
226
+ for jdx0 in range(self._netradiation_length_0):
227
+ self.netradiation[jdx0] = self._netradiation_array[idx, jdx0]
228
+ if self._soilheatflux_diskflag_reading:
229
+ k = 0
230
+ for jdx0 in range(self._soilheatflux_length_0):
231
+ self.soilheatflux[jdx0] = self._soilheatflux_ncarray[k]
232
+ k += 1
233
+ elif self._soilheatflux_ramflag:
234
+ for jdx0 in range(self._soilheatflux_length_0):
235
+ self.soilheatflux[jdx0] = self._soilheatflux_array[idx, jdx0]
236
+ if self._referenceevapotranspiration_diskflag_reading:
237
+ k = 0
238
+ for jdx0 in range(self._referenceevapotranspiration_length_0):
239
+ self.referenceevapotranspiration[jdx0] = self._referenceevapotranspiration_ncarray[k]
240
+ k += 1
241
+ elif self._referenceevapotranspiration_ramflag:
242
+ for jdx0 in range(self._referenceevapotranspiration_length_0):
243
+ self.referenceevapotranspiration[jdx0] = self._referenceevapotranspiration_array[idx, jdx0]
244
+ if self._meanreferenceevapotranspiration_diskflag_reading:
245
+ self.meanreferenceevapotranspiration = self._meanreferenceevapotranspiration_ncarray[0]
246
+ elif self._meanreferenceevapotranspiration_ramflag:
247
+ self.meanreferenceevapotranspiration = self._meanreferenceevapotranspiration_array[idx]
248
+ cpdef inline void save_data(self, numpy.int64_t idx) noexcept nogil:
249
+ cdef numpy.int64_t jdx0
250
+ cdef numpy.int64_t k
251
+ if self._globalradiation_diskflag_writing:
252
+ self._globalradiation_ncarray[0] = self.globalradiation
253
+ if self._globalradiation_ramflag:
254
+ self._globalradiation_array[idx] = self.globalradiation
255
+ if self._clearskysolarradiation_diskflag_writing:
256
+ self._clearskysolarradiation_ncarray[0] = self.clearskysolarradiation
257
+ if self._clearskysolarradiation_ramflag:
258
+ self._clearskysolarradiation_array[idx] = self.clearskysolarradiation
259
+ if self._netshortwaveradiation_diskflag_writing:
260
+ k = 0
261
+ for jdx0 in range(self._netshortwaveradiation_length_0):
262
+ self._netshortwaveradiation_ncarray[k] = self.netshortwaveradiation[jdx0]
263
+ k += 1
264
+ if self._netshortwaveradiation_ramflag:
265
+ for jdx0 in range(self._netshortwaveradiation_length_0):
266
+ self._netshortwaveradiation_array[idx, jdx0] = self.netshortwaveradiation[jdx0]
267
+ if self._netlongwaveradiation_diskflag_writing:
268
+ k = 0
269
+ for jdx0 in range(self._netlongwaveradiation_length_0):
270
+ self._netlongwaveradiation_ncarray[k] = self.netlongwaveradiation[jdx0]
271
+ k += 1
272
+ if self._netlongwaveradiation_ramflag:
273
+ for jdx0 in range(self._netlongwaveradiation_length_0):
274
+ self._netlongwaveradiation_array[idx, jdx0] = self.netlongwaveradiation[jdx0]
275
+ if self._netradiation_diskflag_writing:
276
+ k = 0
277
+ for jdx0 in range(self._netradiation_length_0):
278
+ self._netradiation_ncarray[k] = self.netradiation[jdx0]
279
+ k += 1
280
+ if self._netradiation_ramflag:
281
+ for jdx0 in range(self._netradiation_length_0):
282
+ self._netradiation_array[idx, jdx0] = self.netradiation[jdx0]
283
+ if self._soilheatflux_diskflag_writing:
284
+ k = 0
285
+ for jdx0 in range(self._soilheatflux_length_0):
286
+ self._soilheatflux_ncarray[k] = self.soilheatflux[jdx0]
287
+ k += 1
288
+ if self._soilheatflux_ramflag:
289
+ for jdx0 in range(self._soilheatflux_length_0):
290
+ self._soilheatflux_array[idx, jdx0] = self.soilheatflux[jdx0]
291
+ if self._referenceevapotranspiration_diskflag_writing:
292
+ k = 0
293
+ for jdx0 in range(self._referenceevapotranspiration_length_0):
294
+ self._referenceevapotranspiration_ncarray[k] = self.referenceevapotranspiration[jdx0]
295
+ k += 1
296
+ if self._referenceevapotranspiration_ramflag:
297
+ for jdx0 in range(self._referenceevapotranspiration_length_0):
298
+ self._referenceevapotranspiration_array[idx, jdx0] = self.referenceevapotranspiration[jdx0]
299
+ if self._meanreferenceevapotranspiration_diskflag_writing:
300
+ self._meanreferenceevapotranspiration_ncarray[0] = self.meanreferenceevapotranspiration
301
+ if self._meanreferenceevapotranspiration_ramflag:
302
+ self._meanreferenceevapotranspiration_array[idx] = self.meanreferenceevapotranspiration
303
+ cpdef inline set_pointeroutput(self, str name, pointerutils.PDouble value):
304
+ if name == "globalradiation":
305
+ self._globalradiation_outputpointer = value.p_value
306
+ if name == "clearskysolarradiation":
307
+ self._clearskysolarradiation_outputpointer = value.p_value
308
+ if name == "meanreferenceevapotranspiration":
309
+ self._meanreferenceevapotranspiration_outputpointer = value.p_value
310
+ cpdef inline void update_outputs(self) noexcept nogil:
311
+ if self._globalradiation_outputflag:
312
+ self._globalradiation_outputpointer[0] = self.globalradiation
313
+ if self._clearskysolarradiation_outputflag:
314
+ self._clearskysolarradiation_outputpointer[0] = self.clearskysolarradiation
315
+ if self._meanreferenceevapotranspiration_outputflag:
316
+ self._meanreferenceevapotranspiration_outputpointer[0] = self.meanreferenceevapotranspiration
317
+ @cython.final
318
+ cdef class LogSequences:
319
+ pass
320
+ @cython.final
321
+ cdef class Model(masterinterface.MasterInterface):
322
+ def __init__(self):
323
+ super().__init__()
324
+ self.radiationmodel = None
325
+ self.radiationmodel_is_mainmodel = False
326
+ self.tempmodel = None
327
+ self.tempmodel_is_mainmodel = False
328
+ def get_radiationmodel(self) -> masterinterface.MasterInterface | None:
329
+ return self.radiationmodel
330
+ def set_radiationmodel(self, radiationmodel: masterinterface.MasterInterface | None) -> None:
331
+ self.radiationmodel = radiationmodel
332
+ def get_tempmodel(self) -> masterinterface.MasterInterface | None:
333
+ return self.tempmodel
334
+ def set_tempmodel(self, tempmodel: masterinterface.MasterInterface | None) -> None:
335
+ self.tempmodel = tempmodel
336
+ cpdef inline void simulate(self, numpy.int64_t idx) noexcept nogil:
337
+ self.idx_sim = idx
338
+ self.reset_reuseflags()
339
+ self.load_data(idx)
340
+ self.run()
341
+ self.update_outputs()
342
+ cpdef void reset_reuseflags(self) noexcept nogil:
343
+ if (self.radiationmodel is not None) and not self.radiationmodel_is_mainmodel:
344
+ self.radiationmodel.reset_reuseflags()
345
+ if (self.tempmodel is not None) and not self.tempmodel_is_mainmodel:
346
+ self.tempmodel.reset_reuseflags()
347
+ cpdef void load_data(self, numpy.int64_t idx) noexcept nogil:
348
+ self.idx_sim = idx
349
+ self.sequences.inputs.load_data(idx)
350
+ if (self.radiationmodel is not None) and not self.radiationmodel_is_mainmodel:
351
+ self.radiationmodel.load_data(idx)
352
+ if (self.tempmodel is not None) and not self.tempmodel_is_mainmodel:
353
+ self.tempmodel.load_data(idx)
354
+ cpdef void save_data(self, numpy.int64_t idx) noexcept nogil:
355
+ self.idx_sim = idx
356
+ self.sequences.inputs.save_data(idx)
357
+ self.sequences.factors.save_data(idx)
358
+ self.sequences.fluxes.save_data(idx)
359
+ if (self.radiationmodel is not None) and not self.radiationmodel_is_mainmodel:
360
+ self.radiationmodel.save_data(idx)
361
+ if (self.tempmodel is not None) and not self.tempmodel_is_mainmodel:
362
+ self.tempmodel.save_data(idx)
363
+ cpdef void new2old(self) noexcept nogil:
364
+ if (self.radiationmodel is not None) and not self.radiationmodel_is_mainmodel:
365
+ self.radiationmodel.new2old()
366
+ if (self.tempmodel is not None) and not self.tempmodel_is_mainmodel:
367
+ self.tempmodel.new2old()
368
+ cpdef inline void run(self) noexcept nogil:
369
+ self.process_radiationmodel_v1()
370
+ self.calc_clearskysolarradiation_v1()
371
+ self.calc_globalradiation_v1()
372
+ self.calc_windspeed2m_v1()
373
+ self.calc_airtemperature_v1()
374
+ self.calc_saturationvapourpressure_v1()
375
+ self.calc_saturationvapourpressureslope_v1()
376
+ self.calc_actualvapourpressure_v1()
377
+ self.update_loggedclearskysolarradiation_v1()
378
+ self.update_loggedglobalradiation_v1()
379
+ self.calc_netshortwaveradiation_v1()
380
+ self.calc_netlongwaveradiation_v1()
381
+ self.calc_netradiation_v1()
382
+ self.calc_soilheatflux_v1()
383
+ self.calc_psychrometricconstant_v1()
384
+ self.calc_referenceevapotranspiration_v1()
385
+ self.adjust_referenceevapotranspiration_v1()
386
+ self.calc_meanreferenceevapotranspiration_v1()
387
+ cpdef inline void update_inlets(self) noexcept nogil:
388
+ pass
389
+ cpdef inline void update_outlets(self) noexcept nogil:
390
+ pass
391
+ cpdef inline void update_receivers(self, numpy.int64_t idx) noexcept nogil:
392
+ self.idx_sim = idx
393
+ pass
394
+ cpdef inline void update_senders(self, numpy.int64_t idx) noexcept nogil:
395
+ self.idx_sim = idx
396
+ pass
397
+ cpdef inline void update_outputs(self) noexcept nogil:
398
+ self.sequences.factors.update_outputs()
399
+ self.sequences.fluxes.update_outputs()
400
+ cpdef inline void process_radiationmodel_v1(self) noexcept nogil:
401
+ if self.radiationmodel_typeid == 1:
402
+ (<masterinterface.MasterInterface>self.radiationmodel).process_radiation()
403
+ cpdef inline void calc_clearskysolarradiation_v1(self) noexcept nogil:
404
+ if self.radiationmodel_typeid == 1:
405
+ self.sequences.fluxes.clearskysolarradiation = (<masterinterface.MasterInterface>self.radiationmodel).get_clearskysolarradiation()
406
+ elif self.radiationmodel_typeid == 3:
407
+ self.sequences.fluxes.clearskysolarradiation = (<masterinterface.MasterInterface>self.radiationmodel).get_clearskysolarradiation()
408
+ cpdef inline void calc_globalradiation_v1(self) noexcept nogil:
409
+ if self.radiationmodel_typeid == 1:
410
+ self.sequences.fluxes.globalradiation = (<masterinterface.MasterInterface>self.radiationmodel).get_globalradiation()
411
+ elif self.radiationmodel_typeid == 2:
412
+ self.sequences.fluxes.globalradiation = (<masterinterface.MasterInterface>self.radiationmodel).get_globalradiation()
413
+ elif self.radiationmodel_typeid == 3:
414
+ self.sequences.fluxes.globalradiation = (<masterinterface.MasterInterface>self.radiationmodel).get_globalradiation()
415
+ elif self.radiationmodel_typeid == 4:
416
+ self.sequences.fluxes.globalradiation = (<masterinterface.MasterInterface>self.radiationmodel).get_globalradiation()
417
+ cpdef inline void calc_windspeed2m_v1(self) noexcept nogil:
418
+ cdef double z0
419
+ cdef double d
420
+ d = 2.0 / 3.0 * 0.12
421
+ z0 = 0.123 * 0.12
422
+ self.sequences.factors.windspeed2m = self.sequences.inputs.windspeed * ( log((2.0 - d) / z0) / log((self.parameters.control.measuringheightwindspeed - d) / z0) )
423
+ cpdef inline void calc_airtemperature_v1(self) noexcept nogil:
424
+ if self.tempmodel_typeid == 1:
425
+ self.calc_airtemperature_tempmodel_v1( (<masterinterface.MasterInterface>self.tempmodel) )
426
+ elif self.tempmodel_typeid == 2:
427
+ self.calc_airtemperature_tempmodel_v2( (<masterinterface.MasterInterface>self.tempmodel) )
428
+ cpdef inline void calc_saturationvapourpressure_v1(self) noexcept nogil:
429
+ cdef numpy.int64_t k
430
+ for k in range(self.parameters.control.nmbhru):
431
+ self.sequences.factors.saturationvapourpressure[k] = 6.108 * exp( 17.27 * self.sequences.factors.airtemperature[k] / (self.sequences.factors.airtemperature[k] + 237.3) )
432
+ cpdef inline void calc_saturationvapourpressureslope_v1(self) noexcept nogil:
433
+ cdef numpy.int64_t k
434
+ for k in range(self.parameters.control.nmbhru):
435
+ self.sequences.factors.saturationvapourpressureslope[k] = ( 4098.0 * self.sequences.factors.saturationvapourpressure[k] / (self.sequences.factors.airtemperature[k] + 237.3) ** 2 )
436
+ cpdef inline void calc_actualvapourpressure_v1(self) noexcept nogil:
437
+ cdef numpy.int64_t k
438
+ for k in range(self.parameters.control.nmbhru):
439
+ self.sequences.factors.actualvapourpressure[k] = ( self.sequences.factors.saturationvapourpressure[k] * self.sequences.inputs.relativehumidity / 100.0 )
440
+ cpdef inline void update_loggedclearskysolarradiation_v1(self) noexcept nogil:
441
+ cdef numpy.int64_t idx
442
+ for idx in range(self.parameters.derived.nmblogentries - 1, 0, -1):
443
+ self.sequences.logs.loggedclearskysolarradiation[idx] = self.sequences.logs.loggedclearskysolarradiation[ idx - 1 ]
444
+ self.sequences.logs.loggedclearskysolarradiation[0] = self.sequences.fluxes.clearskysolarradiation
445
+ cpdef inline void update_loggedglobalradiation_v1(self) noexcept nogil:
446
+ cdef numpy.int64_t idx
447
+ for idx in range(self.parameters.derived.nmblogentries - 1, 0, -1):
448
+ self.sequences.logs.loggedglobalradiation[idx] = self.sequences.logs.loggedglobalradiation[idx - 1]
449
+ self.sequences.logs.loggedglobalradiation[0] = self.sequences.fluxes.globalradiation
450
+ cpdef inline void calc_netshortwaveradiation_v1(self) noexcept nogil:
451
+ cdef numpy.int64_t k
452
+ cdef double netshortwaveradiation
453
+ netshortwaveradiation = (1.0 - 0.23) * self.sequences.fluxes.globalradiation
454
+ for k in range(self.parameters.control.nmbhru):
455
+ self.sequences.fluxes.netshortwaveradiation[k] = netshortwaveradiation
456
+ cpdef inline void calc_netlongwaveradiation_v1(self) noexcept nogil:
457
+ cdef numpy.int64_t k
458
+ cdef numpy.int64_t idx
459
+ cdef double clearskysolarradiation
460
+ cdef double globalradiation
461
+ if self.sequences.fluxes.clearskysolarradiation > 0.0:
462
+ globalradiation = self.sequences.fluxes.globalradiation
463
+ clearskysolarradiation = self.sequences.fluxes.clearskysolarradiation
464
+ else:
465
+ globalradiation = 0.0
466
+ clearskysolarradiation = 0.0
467
+ for idx in range(self.parameters.derived.nmblogentries):
468
+ clearskysolarradiation = clearskysolarradiation + (self.sequences.logs.loggedclearskysolarradiation[idx])
469
+ globalradiation = globalradiation + (self.sequences.logs.loggedglobalradiation[idx])
470
+ for k in range(self.parameters.control.nmbhru):
471
+ self.sequences.fluxes.netlongwaveradiation[k] = ( 5.674768518518519e-08 * (self.sequences.factors.airtemperature[k] + 273.16) ** 4 * (0.34 - 0.14 * (self.sequences.factors.actualvapourpressure[k] / 10.0) ** 0.5) * (1.35 * min(globalradiation / clearskysolarradiation, 1.0) - 0.35) )
472
+ cpdef inline void calc_netradiation_v1(self) noexcept nogil:
473
+ cdef numpy.int64_t k
474
+ for k in range(self.parameters.control.nmbhru):
475
+ self.sequences.fluxes.netradiation[k] = ( self.sequences.fluxes.netshortwaveradiation[k] - self.sequences.fluxes.netlongwaveradiation[k] )
476
+ cpdef inline void calc_soilheatflux_v1(self) noexcept nogil:
477
+ cdef numpy.int64_t k
478
+ if self.parameters.derived.days < 1.0:
479
+ for k in range(self.parameters.control.nmbhru):
480
+ if self.sequences.fluxes.netradiation[k] >= 0.0:
481
+ self.sequences.fluxes.soilheatflux[k] = 0.1 * self.sequences.fluxes.netradiation[k]
482
+ else:
483
+ self.sequences.fluxes.soilheatflux[k] = 0.5 * self.sequences.fluxes.netradiation[k]
484
+ else:
485
+ for k in range(self.parameters.control.nmbhru):
486
+ self.sequences.fluxes.soilheatflux[k] = 0.0
487
+ cpdef inline void calc_psychrometricconstant_v1(self) noexcept nogil:
488
+ self.sequences.factors.psychrometricconstant = 6.65e-4 * self.sequences.inputs.atmosphericpressure
489
+ cpdef inline void calc_referenceevapotranspiration_v1(self) noexcept nogil:
490
+ cdef numpy.int64_t k
491
+ for k in range(self.parameters.control.nmbhru):
492
+ self.sequences.fluxes.referenceevapotranspiration[k] = ( 0.0352512 * self.parameters.derived.days * self.sequences.factors.saturationvapourpressureslope[k] * (self.sequences.fluxes.netradiation[k] - self.sequences.fluxes.soilheatflux[k]) + (self.sequences.factors.psychrometricconstant * 3.75 * self.parameters.derived.hours) / (self.sequences.factors.airtemperature[k] + 273.0) * self.sequences.factors.windspeed2m * (self.sequences.factors.saturationvapourpressure[k] - self.sequences.factors.actualvapourpressure[k]) ) / ( self.sequences.factors.saturationvapourpressureslope[k] + self.sequences.factors.psychrometricconstant * (1.0 + 0.34 * self.sequences.factors.windspeed2m) )
493
+ cpdef inline void adjust_referenceevapotranspiration_v1(self) noexcept nogil:
494
+ cdef numpy.int64_t k
495
+ for k in range(self.parameters.control.nmbhru):
496
+ self.sequences.fluxes.referenceevapotranspiration[k] = self.sequences.fluxes.referenceevapotranspiration[k] * (self.parameters.control.evapotranspirationfactor[k])
497
+ cpdef inline void calc_meanreferenceevapotranspiration_v1(self) noexcept nogil:
498
+ cdef numpy.int64_t s
499
+ self.sequences.fluxes.meanreferenceevapotranspiration = 0.0
500
+ for s in range(self.parameters.control.nmbhru):
501
+ self.sequences.fluxes.meanreferenceevapotranspiration = self.sequences.fluxes.meanreferenceevapotranspiration + (( self.parameters.derived.hruareafraction[s] * self.sequences.fluxes.referenceevapotranspiration[s] ))
502
+ cpdef void determine_potentialevapotranspiration_v1(self) noexcept nogil:
503
+ self.run()
504
+ cpdef double get_potentialevapotranspiration_v1(self, numpy.int64_t k) noexcept nogil:
505
+ return self.sequences.fluxes.referenceevapotranspiration[k]
506
+ cpdef double get_meanpotentialevapotranspiration_v1(self) noexcept nogil:
507
+ return self.sequences.fluxes.meanreferenceevapotranspiration
508
+ cpdef inline void calc_airtemperature_tempmodel_v1(self, masterinterface.MasterInterface submodel) noexcept nogil:
509
+ cdef numpy.int64_t k
510
+ for k in range(self.parameters.control.nmbhru):
511
+ self.sequences.factors.airtemperature[k] = submodel.get_temperature(k)
512
+ cpdef inline void calc_airtemperature_tempmodel_v2(self, masterinterface.MasterInterface submodel) noexcept nogil:
513
+ cdef numpy.int64_t k
514
+ submodel.determine_temperature()
515
+ for k in range(self.parameters.control.nmbhru):
516
+ self.sequences.factors.airtemperature[k] = submodel.get_temperature(k)
517
+ cpdef inline void process_radiationmodel(self) noexcept nogil:
518
+ if self.radiationmodel_typeid == 1:
519
+ (<masterinterface.MasterInterface>self.radiationmodel).process_radiation()
520
+ cpdef inline void calc_clearskysolarradiation(self) noexcept nogil:
521
+ if self.radiationmodel_typeid == 1:
522
+ self.sequences.fluxes.clearskysolarradiation = (<masterinterface.MasterInterface>self.radiationmodel).get_clearskysolarradiation()
523
+ elif self.radiationmodel_typeid == 3:
524
+ self.sequences.fluxes.clearskysolarradiation = (<masterinterface.MasterInterface>self.radiationmodel).get_clearskysolarradiation()
525
+ cpdef inline void calc_globalradiation(self) noexcept nogil:
526
+ if self.radiationmodel_typeid == 1:
527
+ self.sequences.fluxes.globalradiation = (<masterinterface.MasterInterface>self.radiationmodel).get_globalradiation()
528
+ elif self.radiationmodel_typeid == 2:
529
+ self.sequences.fluxes.globalradiation = (<masterinterface.MasterInterface>self.radiationmodel).get_globalradiation()
530
+ elif self.radiationmodel_typeid == 3:
531
+ self.sequences.fluxes.globalradiation = (<masterinterface.MasterInterface>self.radiationmodel).get_globalradiation()
532
+ elif self.radiationmodel_typeid == 4:
533
+ self.sequences.fluxes.globalradiation = (<masterinterface.MasterInterface>self.radiationmodel).get_globalradiation()
534
+ cpdef inline void calc_windspeed2m(self) noexcept nogil:
535
+ cdef double z0
536
+ cdef double d
537
+ d = 2.0 / 3.0 * 0.12
538
+ z0 = 0.123 * 0.12
539
+ self.sequences.factors.windspeed2m = self.sequences.inputs.windspeed * ( log((2.0 - d) / z0) / log((self.parameters.control.measuringheightwindspeed - d) / z0) )
540
+ cpdef inline void calc_airtemperature(self) noexcept nogil:
541
+ if self.tempmodel_typeid == 1:
542
+ self.calc_airtemperature_tempmodel_v1( (<masterinterface.MasterInterface>self.tempmodel) )
543
+ elif self.tempmodel_typeid == 2:
544
+ self.calc_airtemperature_tempmodel_v2( (<masterinterface.MasterInterface>self.tempmodel) )
545
+ cpdef inline void calc_saturationvapourpressure(self) noexcept nogil:
546
+ cdef numpy.int64_t k
547
+ for k in range(self.parameters.control.nmbhru):
548
+ self.sequences.factors.saturationvapourpressure[k] = 6.108 * exp( 17.27 * self.sequences.factors.airtemperature[k] / (self.sequences.factors.airtemperature[k] + 237.3) )
549
+ cpdef inline void calc_saturationvapourpressureslope(self) noexcept nogil:
550
+ cdef numpy.int64_t k
551
+ for k in range(self.parameters.control.nmbhru):
552
+ self.sequences.factors.saturationvapourpressureslope[k] = ( 4098.0 * self.sequences.factors.saturationvapourpressure[k] / (self.sequences.factors.airtemperature[k] + 237.3) ** 2 )
553
+ cpdef inline void calc_actualvapourpressure(self) noexcept nogil:
554
+ cdef numpy.int64_t k
555
+ for k in range(self.parameters.control.nmbhru):
556
+ self.sequences.factors.actualvapourpressure[k] = ( self.sequences.factors.saturationvapourpressure[k] * self.sequences.inputs.relativehumidity / 100.0 )
557
+ cpdef inline void update_loggedclearskysolarradiation(self) noexcept nogil:
558
+ cdef numpy.int64_t idx
559
+ for idx in range(self.parameters.derived.nmblogentries - 1, 0, -1):
560
+ self.sequences.logs.loggedclearskysolarradiation[idx] = self.sequences.logs.loggedclearskysolarradiation[ idx - 1 ]
561
+ self.sequences.logs.loggedclearskysolarradiation[0] = self.sequences.fluxes.clearskysolarradiation
562
+ cpdef inline void update_loggedglobalradiation(self) noexcept nogil:
563
+ cdef numpy.int64_t idx
564
+ for idx in range(self.parameters.derived.nmblogentries - 1, 0, -1):
565
+ self.sequences.logs.loggedglobalradiation[idx] = self.sequences.logs.loggedglobalradiation[idx - 1]
566
+ self.sequences.logs.loggedglobalradiation[0] = self.sequences.fluxes.globalradiation
567
+ cpdef inline void calc_netshortwaveradiation(self) noexcept nogil:
568
+ cdef numpy.int64_t k
569
+ cdef double netshortwaveradiation
570
+ netshortwaveradiation = (1.0 - 0.23) * self.sequences.fluxes.globalradiation
571
+ for k in range(self.parameters.control.nmbhru):
572
+ self.sequences.fluxes.netshortwaveradiation[k] = netshortwaveradiation
573
+ cpdef inline void calc_netlongwaveradiation(self) noexcept nogil:
574
+ cdef numpy.int64_t k
575
+ cdef numpy.int64_t idx
576
+ cdef double clearskysolarradiation
577
+ cdef double globalradiation
578
+ if self.sequences.fluxes.clearskysolarradiation > 0.0:
579
+ globalradiation = self.sequences.fluxes.globalradiation
580
+ clearskysolarradiation = self.sequences.fluxes.clearskysolarradiation
581
+ else:
582
+ globalradiation = 0.0
583
+ clearskysolarradiation = 0.0
584
+ for idx in range(self.parameters.derived.nmblogentries):
585
+ clearskysolarradiation = clearskysolarradiation + (self.sequences.logs.loggedclearskysolarradiation[idx])
586
+ globalradiation = globalradiation + (self.sequences.logs.loggedglobalradiation[idx])
587
+ for k in range(self.parameters.control.nmbhru):
588
+ self.sequences.fluxes.netlongwaveradiation[k] = ( 5.674768518518519e-08 * (self.sequences.factors.airtemperature[k] + 273.16) ** 4 * (0.34 - 0.14 * (self.sequences.factors.actualvapourpressure[k] / 10.0) ** 0.5) * (1.35 * min(globalradiation / clearskysolarradiation, 1.0) - 0.35) )
589
+ cpdef inline void calc_netradiation(self) noexcept nogil:
590
+ cdef numpy.int64_t k
591
+ for k in range(self.parameters.control.nmbhru):
592
+ self.sequences.fluxes.netradiation[k] = ( self.sequences.fluxes.netshortwaveradiation[k] - self.sequences.fluxes.netlongwaveradiation[k] )
593
+ cpdef inline void calc_soilheatflux(self) noexcept nogil:
594
+ cdef numpy.int64_t k
595
+ if self.parameters.derived.days < 1.0:
596
+ for k in range(self.parameters.control.nmbhru):
597
+ if self.sequences.fluxes.netradiation[k] >= 0.0:
598
+ self.sequences.fluxes.soilheatflux[k] = 0.1 * self.sequences.fluxes.netradiation[k]
599
+ else:
600
+ self.sequences.fluxes.soilheatflux[k] = 0.5 * self.sequences.fluxes.netradiation[k]
601
+ else:
602
+ for k in range(self.parameters.control.nmbhru):
603
+ self.sequences.fluxes.soilheatflux[k] = 0.0
604
+ cpdef inline void calc_psychrometricconstant(self) noexcept nogil:
605
+ self.sequences.factors.psychrometricconstant = 6.65e-4 * self.sequences.inputs.atmosphericpressure
606
+ cpdef inline void calc_referenceevapotranspiration(self) noexcept nogil:
607
+ cdef numpy.int64_t k
608
+ for k in range(self.parameters.control.nmbhru):
609
+ self.sequences.fluxes.referenceevapotranspiration[k] = ( 0.0352512 * self.parameters.derived.days * self.sequences.factors.saturationvapourpressureslope[k] * (self.sequences.fluxes.netradiation[k] - self.sequences.fluxes.soilheatflux[k]) + (self.sequences.factors.psychrometricconstant * 3.75 * self.parameters.derived.hours) / (self.sequences.factors.airtemperature[k] + 273.0) * self.sequences.factors.windspeed2m * (self.sequences.factors.saturationvapourpressure[k] - self.sequences.factors.actualvapourpressure[k]) ) / ( self.sequences.factors.saturationvapourpressureslope[k] + self.sequences.factors.psychrometricconstant * (1.0 + 0.34 * self.sequences.factors.windspeed2m) )
610
+ cpdef inline void adjust_referenceevapotranspiration(self) noexcept nogil:
611
+ cdef numpy.int64_t k
612
+ for k in range(self.parameters.control.nmbhru):
613
+ self.sequences.fluxes.referenceevapotranspiration[k] = self.sequences.fluxes.referenceevapotranspiration[k] * (self.parameters.control.evapotranspirationfactor[k])
614
+ cpdef inline void calc_meanreferenceevapotranspiration(self) noexcept nogil:
615
+ cdef numpy.int64_t s
616
+ self.sequences.fluxes.meanreferenceevapotranspiration = 0.0
617
+ for s in range(self.parameters.control.nmbhru):
618
+ self.sequences.fluxes.meanreferenceevapotranspiration = self.sequences.fluxes.meanreferenceevapotranspiration + (( self.parameters.derived.hruareafraction[s] * self.sequences.fluxes.referenceevapotranspiration[s] ))
619
+ cpdef void determine_potentialevapotranspiration(self) noexcept nogil:
620
+ self.run()
621
+ cpdef double get_potentialevapotranspiration(self, numpy.int64_t k) noexcept nogil:
622
+ return self.sequences.fluxes.referenceevapotranspiration[k]
623
+ cpdef double get_meanpotentialevapotranspiration(self) noexcept nogil:
624
+ return self.sequences.fluxes.meanreferenceevapotranspiration