LandscapeDNDC 1.37.0
output-dss-yearly.h
1
8#ifndef LM_OUTPUT_DSS_YEARLY_H_
9#define LM_OUTPUT_DSS_YEARLY_H_
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 OutputDSSYearly
16#define LMOD_OUTPUT_MODULE_ID "output:dss:yearly"
17#define LMOD_OUTPUT_MODULE_DESC "DSS Yearly Output"
18namespace ldndc {
19
20struct yearly_accumulated_outputs_t
21{
22 double c_soil_old;
23 double c_net_flux_old;
24
25 double c_fru_export_harvest_old;
26 double n_fru_export_harvest_old;
27
28 double c_total_export_harvest_old;
29 double n_total_export_harvest_old;
30
31 double n_loss_old;
32 double n_fert_old;
33
34 double ch4_emis_old;
35 double n2o_emis_old;
36 double nh3_emis_old;
37 double no3_leach_old;
38
39 double water_percol_old;
40 double water_prec_old;
41 double precipitation;
42 double annual_average_temperature;
43};
44
45
46class LDNDC_API LMOD_OUTPUT_MODULE_NAME : public LMOD_OUTPUT_MODULE_BASE
47{
48 LMOD_EXPORT_MODULE_INFO(LMOD_OUTPUT_MODULE_NAME,LMOD_OUTPUT_MODULE_ID,LMOD_OUTPUT_MODULE_DESC);
49 public:
50 LMOD_OUTPUT_MODULE_NAME(
51 MoBiLE_State *,
52 cbm::io_kcomm_t *,
53 timemode_e _timemode);
54
55 ~LMOD_OUTPUT_MODULE_NAME();
56
57
58 lerr_t configure( ldndc::config_file_t const *);
59
60 lerr_t initialize();
61
62 lerr_t solve();
63
64 lerr_t finalize();
65
66 lerr_t wake() { return LDNDC_ERR_OK; }
67 lerr_t sleep() { return LDNDC_ERR_OK; }
68
69 private:
70 lerr_t dump_0(
71 ldndc_flt64_t *);
72
73
74 private:
75 cbm::io_kcomm_t * io_kcomm;
76
77 input_class_soillayers_t const & sl;
78 substate_physiology_t const * phys;
79 substate_soilchemistry_t const * soilchem;
80 substate_watercycle_t const * water;
81 substate_microclimate_t const * microclimate;
82 input_class_climate_t const & climate_;
83
84 private:
85 ldndc::sink_handle_t m_sink;
86 yearly_accumulated_outputs_t outputs;
87
88 void accumulate_outputs();
89 void update_outputs();
90
91};
92} /*namespace ldndc*/
93
94
95#undef LMOD_OUTPUT_MODULE_BASE
96#undef LMOD_OUTPUT_MODULE_NAME
97#undef LMOD_OUTPUT_MODULE_ID
98#undef LMOD_OUTPUT_MODULE_DESC
99
100
101#endif /* !LM_OUTPUT_DSS_YEARLY_H_ */
102
Spatially explicit groundwater model.
Definition: airchemistryput.h:15