LandscapeDNDC 1.37.0
output-ecosystem-yearly.h
1
8#ifndef LM_OUTPUT_ECOSYSTEM_YEARLY_H_NEW_
9#define LM_OUTPUT_ECOSYSTEM_YEARLY_H_NEW_
10
11#include "mbe_legacyoutputmodel.h"
12#include "state/mbe_state.h"
13
14#define LMOD_OUTPUT_MODULE_BASE MBE_LegacyOutputModel
15#define LMOD_OUTPUT_MODULE_NAME OutputEcosystemYearly
16#define LMOD_OUTPUT_MODULE_ID "output:ecosystem:yearly"
17#define LMOD_OUTPUT_MODULE_DESC "Ecosystem Yearly Output"
18namespace ldndc {
19
20struct ec_yearly_accumulated_outputs_t
21{
22 double gpp, gpp_old;
23 double ter, ter_old;
24 double accumulated_co2_hetero_old;
25
26 double c_fertilize_old;
27 double c_harvest_old;
28 double c_leach_old;
29};
30
31
32
33struct en_yearly_accumulated_outputs_t
34{
35 double n_deposition_old;
36 double n_fertilize_old;
37 double n2_fixation_plant;
38 double n2_fixation_soil_old;
39 double emis_old;
40 double n_harvest_old;
41 double leach_old;
42};
43
44class LDNDC_API LMOD_OUTPUT_MODULE_NAME : public LMOD_OUTPUT_MODULE_BASE
45{
46 LMOD_EXPORT_MODULE_INFO(LMOD_OUTPUT_MODULE_NAME,LMOD_OUTPUT_MODULE_ID,LMOD_OUTPUT_MODULE_DESC);
47 public:
48 LMOD_OUTPUT_MODULE_NAME(
49 MoBiLE_State *,
50 cbm::io_kcomm_t *,
51 timemode_e _timemode);
52
53 ~LMOD_OUTPUT_MODULE_NAME();
54
55
56 lerr_t configure( ldndc::config_file_t const *);
57
58 lerr_t initialize();
59
60 lerr_t solve();
61
62 lerr_t finalize();
63
64 lerr_t wake() { return LDNDC_ERR_OK; }
65 lerr_t sleep() { return LDNDC_ERR_OK; }
66
67 private:
68 lerr_t dump_0(
69 ldndc_flt64_t *);
70
71 private:
72 cbm::io_kcomm_t * io_kcomm;
73
74 input_class_soillayers_t const & sl;
75 substate_physiology_t const * phys;
76 substate_soilchemistry_t const * soilchem;
77 MoBiLE_PlantVegetation * m_veg;
78
79 private:
80 ldndc::sink_handle_t m_sink;
81 ec_yearly_accumulated_outputs_t acc_c_outputs;
82 en_yearly_accumulated_outputs_t acc_n_outputs;
83
84 void accumulate_outputs();
85 void update_outputs();
86
87};
88} /*namespace ldndc*/
89
90
91#undef LMOD_OUTPUT_MODULE_BASE
92#undef LMOD_OUTPUT_MODULE_NAME
93#undef LMOD_OUTPUT_MODULE_ID
94#undef LMOD_OUTPUT_MODULE_DESC
95
96
97#endif /* !LM_OUTPUT_ECOSYSTEM_YEARLY_H_NEW_ */
98
Spatially explicit groundwater model.
Definition: airchemistryput.h:15