LandscapeDNDC 1.37.0
ld_allometry.h
1
16#ifndef LD_ALLOMETRY_H_
17#define LD_ALLOMETRY_H_
18
19#include "mbe_plant.h"
20#include "state/mbe_state.h"
21
22namespace cbm {
23 class io_kcomm_t; }
24
25namespace ldndc {
26
27class LDNDC_API LD_Allometry
28{
29public:
30 LD_Allometry(
31 MoBiLE_State *,
32 cbm::io_kcomm_t *);
33 ~LD_Allometry();
34
35 input_class_setup_t const & m_setup;
36 substate_physiology_t & ph_;
37 MoBiLE_PlantVegetation * m_veg;
38
39public:
40
46 double
47 height_dbh_ratio(
48 double /* diameter */,
49 double /* minimum height-dbh ratio */,
50 double /* maximum height-dbh ratio */,
51 double /* exponent */,
52 double /* stand density factor */);
53
59 double
60 height_competition_factor(
61 MoBiLE_Plant *,
62 MoBiLE_PlantVegetation *);
63
68 double
69 stem_volume(
70 double /* height */,
71 double /* diameter at breast height */,
72 double /* diameter at ground*/,
73 bool /* uses tapergrowth function */,
74 bool /* is coniferous */,
75 double /* taper parameter 1 */,
76 double /* taper parameter 2 */,
77 double /* taper parameter 3 */);
78
85 double
86 taper_volume(
87 bool /* is coniferous */,
88 double /* taper parameter 1 */,
89 double /* taper parameter 2 */,
90 double /* taper parameter 3 */,
91 double /* diameter */,
92 double /* height */);
93
99 lerr_t
100 check_taper_parameters(
101 bool /* is coniferous */,
102 double & /* taper parameter 1 */,
103 double & /* taper parameter 2 */,
104 double & /* taper parameter 3 */);
105
112 double
113 taper_height_from_diameter(
114 bool /* is coniferous */,
115 double /* taper parameter 1 */,
116 double /* taper parameter 2 */,
117 double /* taper parameter 3 */,
118 double /* diameter */,
119 double /* volume */);
120
127 double
128 diameter_at_breast_height_from_volume_and_height(
129 bool /* is coniferous */,
130 double /* taper parameter 1 */,
131 double /* taper parameter 2 */,
132 double /* taper parameter 3 */,
133 double /* height */,
134 double /* effective diameter */,
135 double /* volume */);
136
137
144 double
145 taper_diameter_from_volume_and_height(
146 bool /* is coniferous */,
147 double /* taper parameter 1 */,
148 double /* taper parameter 2 */,
149 double /* taper parameter 3 */,
150 double /* height */,
151 double /* volume */);
152
157 lerr_t
158 set_canopy_heights(
159 cbm::string_t,
160 MoBiLE_Plant * /* species */,
161 double /* upper canopy height */);
162
167 void
168 restructure_vegetation(
169 MoBiLE_Plant *_p,
170 cbm::string_t _crownlength_method,
171 double _hd_competition_factor_old,
172 double _height_fraction,
173 double _dbas_fraction,
174 double _dbh_fraction);
175
180 double
181 height_from_volume(
182 bool _coniferous,
183 double _t1,
184 double _t2,
185 double _t3,
186 double _hd_max,
187 double _vol);
188
193 double
194 dbh_from_volume(
195 bool _coniferous,
196 double _t1,
197 double _t2,
198 double _t3,
199 double _hd_min,
200 double _hd_max,
201 double _hd_exp,
202 double _dbh,
203 double _height,
204 double _vol,
205 double _hd_competition_factor);
206
212 double
213 dbas_from_cone(
214 double _hd,
215 double _vol);
216
222 double
223 height_from_diameter(
224 double /* base diameter */,
225 double /* diameter */,
226 double /* height */,
227 double /* tree stem volume */,
228 double /* hd_min */,
229 double /* hd_max */,
230 double /* hd_exp */,
231 double /* stand density factor */);
232
238 double
239 diameter_at_ground(
240 double /* diameter */,
241 double /* height */,
242 double /* tree volume */,
243 double /* hd_min */,
244 double /* hd_max */,
245 double /* hd_exp */,
246 double /* stand density factor */);
247
253 static double
254 effective_dbh(
255 double /* tree height */,
256 double /* diameter at breast height */,
257 double /* diameter at ground */);
258
264 static double
265 hlimit_fraction( double /* tree height */);
266
272 double
273 branch_fraction_from_diameter(
274 species::species_group_e _group,
275 double _FBRAF_M,
276 double _FBRAF_Y,
277 double _DIAMMAX,
278 double _dbh,
279 double _dbas);
280
286 double
287 branch_fraction_from_canopy_volume(
288 MoBiLE_Plant *);
289
295 double
296 crown_diameter(
297 double _dbh,
298 double _h,
299 double cdr_p1,
300 double cdr_p2,
301 double cdr_p3);
302
308 double
309 crown_length_from_crown_diameter(
310 double _h,
311 double _cd,
312 double _href,
313 double _cl_p1,
314 double _cl_p2);
315
321 double
322 crown_length_from_parameter(
323 double _height,
324 double _dbh,
325 double _href,
326 double _diammax,
327 double _cb);
328
333 double
334 crown_diameter_ratio_open_range(
335 double /* dbh */,
336 double /* height */,
337 double _cdr_p1,
338 double _cdr_p2,
339 double _cdr_p3);
340
347 double
348 area_fraction_open_range(
349 MoBiLE_Plant * /* species */,
350 size_t /* foliage layer */);
351
356 double tree_crown_ground_coverage(
357 double /* dbh */,
358 double /* tree number */,
359 double /* crown diameter ratio */) const;
360
365 double
366 area_fraction_wood(
367 double /* dbh or dbas */,
368 double /* tree number */,
369 double /* crown diameter ratio */,
370 double /* */);
371
376 double
377 crown_diameter_ratio(
378 MoBiLE_Plant * /* species */);
379 };
380
386 double _length,
387 double lref,
388 double ps);
389} /* namespace ldndc */
390
391
392#endif /* !LD_ALLOMETRY_H_ */
393
Spatially explicit groundwater model.
Definition: airchemistryput.h:15
double crown_shape_parameter(double _length, double lref, double ps)
Returns a crown shape parameter which is modified by canopy length.
Definition: ld_allometry.cpp:1247