LandscapeDNDC 1.37.0
vocmartin.h
1
8#ifndef LM_PHYSIOLOGY_VOCMARTIN_H_
9#define LM_PHYSIOLOGY_VOCMARTIN_H_
10
11#include "mbe_legacymodel.h"
12#include "state/mbe_state.h"
13
14namespace ldndc {
15
16class LDNDC_API PhysiologyVOCMARTIN : public MBE_LegacyModel
17{
18 LMOD_EXPORT_MODULE_INFO(PhysiologyVOCMARTIN,"physiology:vocmartin","Physiology VOCMARTIN");
19
20 /*** module specific constants ***/
21
23 static double const NISO;
25 static double const EISO;
27 static double const DELTAS;
29 static double const DELTAH;
31 static double const TPU;
32
34 static double const PPFD0;
36 static double const TEMP0;
38 static double const OI25;
39
40 public:
41 PhysiologyVOCMARTIN(
42 MoBiLE_State *,
43 cbm::io_kcomm_t *,
44 timemode_e);
45
46 ~PhysiologyVOCMARTIN();
47
48 lerr_t configure(
49 ldndc::config_file_t const *);
50
51 lerr_t initialize();
52
53 lerr_t solve();
54
55 lerr_t finalize() { return LDNDC_ERR_OK; }
56
57 lerr_t sleep() { return LDNDC_ERR_OK; }
58 lerr_t wake() { return LDNDC_ERR_OK; }
59
60 private:
61
62 input_class_setup_t const & m_setup;
63 /* required state components */
64 substate_microclimate_t * mc;
65 substate_physiology_t * phys;
66 substate_watercycle_t * wc;
67
68 MoBiLE_PlantVegetation * m_veg;
69
70 struct isoprene_emission_t
71 {
72 size_t foliage_layer;
73
74 double isoEph;
75 double isoAct;
76
77 double qefirad;
78
79 isoprene_emission_t();
80 };
81
82 void IsopreneEmission(
83 isoprene_emission_t *,
84 MoBiLE_Plant const &) const;
85 double getMartinScalingCoefficient(
86 isoprene_emission_t const *,
87 MoBiLE_Plant const &) const;
88
89
90
91 void step_init();
92};
93} /*namespace ldndc*/
94
95#endif /* !LM_PHYSIOLOGY_VOCMARTIN_H_ */
96
Spatially explicit groundwater model.
Definition: airchemistryput.h:15