LandscapeDNDC 1.37.0
mbe_watercycle.h
1
11#ifndef LDNDC_SUBSTATE_WATERCYCLE_H_
12#define LDNDC_SUBSTATE_WATERCYCLE_H_
13
14#include "state/mbe_substate.h"
15#include "substate/mbe_watercycle.h.inc"
16#include "mbe_plant.h"
17
18namespace ldndc {
19
20class LDNDC_API substate_watercycle_t : public MoBiLE_Substate
21{
22 MOBILE_SUBSTATE_OBJECT(watercycle,LSUB_FLAG_NONE);
23 public:
24 /* holds water cycle state items */
25 LDNDC_watercycle_SUBSTATE_ITEMS
26
27 public:
28
29 enum transpiration_method_e
30 {
31 WATERUSEEFFICIENCY,
32 POTENTIALTRANSPIRATION,
33 TREEWATERDEFICIT
34 };
35
36 double snow_height() const;
37
38 double canopy_snow_and_water() const;
39 double canopy_snow_and_water( size_t /* layer count */) const;
40
41 double canopy_snow_and_water_fl( size_t /* foliage layer*/) const;
42
43#ifdef _HAVE_SERIALIZE
44 /* interface declaration for dump/restore mechanism */
45 int create_checkpoint( substate_checkpoint_write_context_t *);
46 int restore_checkpoint( substate_checkpoint_read_context_t *);
47#endif /* _HAVE_SERIALIZE */
48
49#ifdef _LDNDC_HAVE_ONLINECONTROL
50 public:
51 int process_request( lreply_t * /*reply*/, lrequest_t const * /*request*/);
52#endif /* _LDNDC_HAVE_ONLINECONTROL */
53
54};
55
56
57lerr_t
58assign_soillayer_wc_sat_and_min(
59 double &_wc_sat_with_stones,
60 double &_wc_res_with_stones,
61 double &_porosity_with_stones,
62 size_t const &_nd_stratum,
63 double const &_depth,
64 double const &_stone_fraction,
65 const ldndc::site::input_class_site_t *_site,
66 const ldndc::soillayers::input_class_soillayers_t *_soillayers,
67 const ldndc::soilparameters::input_class_soilparameters_t *_soilparameters,
68 bool _info=false);
69
70
71lerr_t
72assign_soillayer_fc_and_wp(
73 double &_wc_fc_with_stones,
74 double &_wc_wp_withstones,
75 double _wc_sat_withstones,
76 double _wc_res_withstones,
77 double const &_bulk_density_without_stones,
78 size_t const &_nd_stratum,
79 double const &_depth,
80 double const &_stone_fraction,
81 const ldndc::site::input_class_site_t *_site,
82 const ldndc::soillayers::input_class_soillayers_t *_soillayers,
83 const ldndc::soilparameters::input_class_soilparameters_t *_soilparameters,
84 const ldndc::siteparameters::input_class_siteparameters_t *_siteparameters,
85 bool _vg_prio=false,
86 bool _info=false);
87
88
89lerr_t
91 double &_macropores_with_stones,
92 double &_wc_fc,
93 double &_wc_sat,
94 size_t const &_nd_stratum,
95 double const &_depth,
96 double const &_stone_fraction,
97 double const &_porosity_with_stones,
98 const ldndc::site::input_class_site_t *_site,
99 const ldndc::soillayers::input_class_soillayers_t *_soillayers,
100 const ldndc::soilparameters::input_class_soilparameters_t *_soilparameters,
101 bool _info=false);
102
103
104lerr_t
105assign_soillayer_sks(
106 double &_macropores_with_stones,
107 size_t const &_nd_stratum,
108 double const &_depth,
109 double const &_stone_fraction,
110 const ldndc::site::input_class_site_t *_site,
111 const ldndc::soillayers::input_class_soillayers_t *_soillayers,
112 const ldndc::soilparameters::input_class_soilparameters_t *_soilparameters,
113 bool _info=false);
114
115
116lerr_t
117assign_soillayer_van_genuchten_parameter(
118 double const &_vg_a_old,
119 double const &_vg_n_old,
120 double &_vg_a,
121 double &_vg_n,
122 double &_vg_m,
123 double &_mvg_tau,
124 double const &_wc_sat,
125 double const &_wc_res,
126 double const &_wc_fc,
127 double const &_wc_wp,
128 double const &_bulk_density_without_stones,
129 bool &_vg_parameter_from_input,
130 bool &_assign_from_wc_fc_and_wc_wp,
131 size_t const &_nd_stratum,
132 double const &_depth,
133 const ldndc::site::input_class_site_t *_site,
134 const ldndc::soillayers::input_class_soillayers_t *_soillayers,
135 const ldndc::soilparameters::input_class_soilparameters_t *_soilparameters,
136 const ldndc::siteparameters::input_class_siteparameters_t *_siteparameters,
137 bool _vg_prio=false,
138 bool _info=false);
139}
140
141#endif /* !LDNDC_SUBSTATE_WATERCYCLE_H_ */
142
Spatially explicit groundwater model.
Definition: airchemistryput.h:15
lerr_t assign_soillayer_macropores(double &_macropores_with_stones, double &_wc_fc, double &_wc_sat, size_t const &_nd_stratum, double const &_depth, double const &_stone_fraction, double const &_porosity_with_stones, const ldndc::site::input_class_site_t *_site, const ldndc::soillayers::input_class_soillayers_t *_soillayers, const ldndc::soilparameters::input_class_soilparameters_t *_soilparameters, bool _info=false)
Definition: mbe_watercycle.cpp:760
@ LSUB_FLAG_NONE
Definition: mbe_substate.h:77