LandscapeDNDC 1.37.0
output-watercycle-yearly.h
1
10#ifndef LM_OUTPUT_WATERCYCLE_CUM_H_NEW_
11#define LM_OUTPUT_WATERCYCLE_CUM_H_NEW_
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 OutputWatercycleYearly
18#define LMOD_OUTPUT_MODULE_ID "output:watercycle:yearly"
19#define LMOD_OUTPUT_MODULE_DESC "Water Cycle Cumulative Output"
20namespace ldndc {
21class substate_microclimate_t;
22class substate_physiology_t;
23class substate_soilchemistry_t;
24class substate_watercycle_t;
25class LDNDC_API LMOD_OUTPUT_MODULE_NAME : public LMOD_OUTPUT_MODULE_BASE
26{
27 LMOD_EXPORT_MODULE_INFO(LMOD_OUTPUT_MODULE_NAME,LMOD_OUTPUT_MODULE_ID,LMOD_OUTPUT_MODULE_DESC);
28 public:
29 LMOD_OUTPUT_MODULE_NAME(
30 MoBiLE_State *,
31 cbm::io_kcomm_t *,
32 timemode_e _timemode);
33
34 ~LMOD_OUTPUT_MODULE_NAME();
35
36
37 lerr_t configure( ldndc::config_file_t const *);
38
39 lerr_t initialize();
40
41 lerr_t solve();
42
43 lerr_t finalize();
44
45 lerr_t wake() { return LDNDC_ERR_OK; }
46 lerr_t sleep() { return LDNDC_ERR_OK; }
47
48 private:
49 lerr_t dump_0(
50 ldndc_flt64_t *);
51
52 private:
53 cbm::io_kcomm_t * io_kcomm;
54
55 input_class_soillayers_t const * soillayers_in;
56
57 substate_microclimate_t const * microclim;
58 substate_physiology_t const * phys;
59 substate_soilchemistry_t const * soilchem;
60 substate_watercycle_t const * water;
61
62 private:
63 ldndc::sink_handle_t m_sink;
64
65 struct output_watercycle_cum_acc_t
66 {
67 double prec;
68 double irrigation;
69 double irrigation_automatic;
70 double irrigation_reservoir;
71 double irrigation_ggcmi;
72
73 double throughfall;
74 double potentialevaporation;
75 double potentialtranspiration;
76 double transpiration;
77 double wateruptake;
78 double interceptionevaporation;
79 double soilevaporation;
80 double surfacewaterevaporation;
81 double runoff;
82 double percolation;
83
84 double infiltration;
85 };
86 output_watercycle_cum_acc_t acc;
87 void pop_accumulated_outputs();
88 void push_accumulated_outputs();
89};
90} /*namespace ldndc*/
91
92
93#undef LMOD_OUTPUT_MODULE_BASE
94#undef LMOD_OUTPUT_MODULE_NAME
95#undef LMOD_OUTPUT_MODULE_ID
96#undef LMOD_OUTPUT_MODULE_DESC
97
98
99#endif /* !LM_OUTPUT_WATERCYCLE_CUM_H_NEW_ */
Spatially explicit groundwater model.
Definition: airchemistryput.h:15