LandscapeDNDC 1.37.0
mpc.h
1
6#ifndef LM_PHYSIOLOGY_MPC_H_
7#define LM_PHYSIOLOGY_MPC_H_
8
9#include "mbe_legacymodel.h"
10#include "state/mbe_state.h"
11#include "ld_shared.h"
12
13
14namespace ldndc {
15
16class LDNDC_API PhysiologyMPC : public MBE_LegacyModel
17{
18 LMOD_EXPORT_MODULE_INFO(PhysiologyMPC,"physiology:mpc","Physiology MoBiLe Plant Connector");
19
20 public:
21 PhysiologyMPC(
22 MoBiLE_State *,
23 ::cbm::io_kcomm_t *,
24 timemode_e);
25
26 ~PhysiologyMPC();
27
28 lerr_t configure( ::ldndc::config_file_t const *);
29 lerr_t register_ports( cbm::io_kcomm_t *);
30 lerr_t initialize();
31
32 lerr_t solve();
33 lerr_t unregister_ports( cbm::io_kcomm_t *);
34 lerr_t finalize() { return LDNDC_ERR_OK; }
35
36 lerr_t sleep();
37 lerr_t wake();
38
39 cbm::string_t branchfraction_opt;
40 cbm::string_t crownlength_opt;
41 bool competition_opt;
42 cbm::string_t timemode_opt;
43
44 private:
45 input_class_climate_t const & cl_;
46 input_class_setup_t const * m_setup;
47 input_class_soillayers_t const & sl_;
48
49 substate_airchemistry_t & ac_;
50 substate_microclimate_t & mc_;
51 substate_physiology_t & ph_;
52 substate_soilchemistry_t & sc_;
53 substate_watercycle_t & wc_;
54
55 SubscribedEvent<LD_EventHandlerQueue> m_HarvestEvents;
56
57 MoBiLE_PlantVegetation * m_veg;
58
59 struct Ports
60 {
61 SubscribedField<double> TreeHeight;
62 SubscribedField<double> TreeHeightAtCanopyStart;
63 SubscribedField<double> TreeNumber;
64 SubscribedField<double> AreaCoverage;
65 SubscribedField<double> RootBiomass;
66 SubscribedField<double> StemWoodBiomass;
67 SubscribedField<double> FoliageBiomass;
68 SubscribedField<double> LeafAreaIndex;
69 SubscribedVectorField<double> FoliageDistribution;
70
71 SubscribedField<double> FoliageLitter;
72 SubscribedField<double> WoodLitter;
73
74 SubscribedField<double> FineRootsExsudation;
75 SubscribedField<double> FineRootsLitter;
76 SubscribedField<double> CoarseRootsLitter;
77
78 SubscribedField<double> FineRootsRespiration;
79 SubscribedVectorField<double> FineRootsDistribution;
80 };
81 Ports m_ports;
82};
83} /*namespace ldndc*/
84
85#endif /* !LM_PHYSIOLOGY_MPC_H_ */
86
Spatially explicit groundwater model.
Definition: airchemistryput.h:15