LandscapeDNDC 1.37.0
output-inventory.h
1
10#ifndef LM_OUTPUT_INVENTORY_
11#define LM_OUTPUT_INVENTORY_
12
13#include "mbe_legacyoutputmodel.h"
14#include "state/mbe_state.h"
15
16#define LMOD_OUTPUT_MODULE_BASE MBE_LegacyOutputModel
17#define LMOD_OUTPUT_MODULE_NAME OutputInventory
18#define LMOD_OUTPUT_MODULE_ID "output:inventory"
19#define LMOD_OUTPUT_MODULE_DESC "Inventory Output"
20
21namespace ldndc {
22class substate_microclimate_t;
23class substate_physiology_t;
24class substate_soilchemistry_t;
25class substate_watercycle_t;
26class LDNDC_API LMOD_OUTPUT_MODULE_NAME : public LMOD_OUTPUT_MODULE_BASE
27{
28 LMOD_EXPORT_MODULE_INFO(LMOD_OUTPUT_MODULE_NAME,LMOD_OUTPUT_MODULE_ID,LMOD_OUTPUT_MODULE_DESC);
29 public:
30 LMOD_OUTPUT_MODULE_NAME(
31 MoBiLE_State *,
32 cbm::io_kcomm_t *,
33 timemode_e _timemode);
34
35 ~LMOD_OUTPUT_MODULE_NAME();
36
37
38 lerr_t configure( ldndc::config_file_t const *);
39
40 lerr_t initialize();
41
42 lerr_t solve();
43
44 lerr_t finalize();
45
46 lerr_t wake() { return LDNDC_ERR_OK; }
47 lerr_t sleep() { return LDNDC_ERR_OK; }
48
49 private:
50 lerr_t dump_0(
51 ldndc_flt64_t *);
52
53 private:
54 cbm::io_kcomm_t * io_kcomm;
55
56 input_class_soillayers_t const * soillayers_in;
57
58 substate_microclimate_t const * microclim;
59 substate_physiology_t const * phys;
60 MoBiLE_PlantVegetation * m_veg;
61 substate_soilchemistry_t const * soilchem;
62 substate_watercycle_t const * water;
63
64 private:
65 ldndc::sink_handle_t m_sink;
66
67 struct output_inventory_t
68 {
69 double acc_precipitation_old;
70 double acc_irrigation_old;
71 double acc_percolation_old;
72 double c_soil;
73 double n_soil;
74 double dw_above;
75 double c_stubble;
76 double dw_fru;
77 double acc_c_fru_export;
78 double acc_c_plant_export;
79 double acc_c_plant_litter;
80 double acc_c_ch4_emis_old;
81 double acc_c_co2_emis_hetero_old;
82 double acc_n_n2o_emis_old;
83 double acc_n_no_emis_old;
84 double acc_n_n2_emis_old;
85 double acc_n_nh3_emis_old;
86 double acc_c_doc_leach_old;
87 double acc_n_no3_leach_old;
88 double acc_n_don_leach_old;
89 double acc_n_fertilizer_old;
90 double acc_c_fertilizer_old;
91 };
92 output_inventory_t dump;
93
94 void pop_outputs();
95 void push_outputs();
96};
97} /*namespace ldndc*/
98
99
100#undef LMOD_OUTPUT_MODULE_BASE
101#undef LMOD_OUTPUT_MODULE_NAME
102#undef LMOD_OUTPUT_MODULE_ID
103#undef LMOD_OUTPUT_MODULE_DESC
104
105
106#endif /* !LM_OUTPUT_INVENTORY_ */
Spatially explicit groundwater model.
Definition: airchemistryput.h:15