LandscapeDNDC 1.37.0
output-ggcmi-monthly.h
1
9#ifndef LM_OUTPUT_GGCMI_MONTHLY_H_NEW_
10#define LM_OUTPUT_GGCMI_MONTHLY_H_NEW_
11
12#include "mbe_legacyoutputmodel.h"
13#include "state/mbe_state.h"
14
15#define LMOD_OUTPUT_MODULE_BASE MBE_LegacyOutputModel
16#define LMOD_OUTPUT_MODULE_NAME OutputGgcmiMonthly
17#define LMOD_OUTPUT_MODULE_ID "output:ggcmi:monthly"
18#define LMOD_OUTPUT_MODULE_DESC "GGCMI Monthly Output"
19namespace ldndc {
20class substate_microclimate_t;
21class substate_physiology_t;
22class substate_watercycle_t;
23class LDNDC_API LMOD_OUTPUT_MODULE_NAME : public LMOD_OUTPUT_MODULE_BASE
24{
25 LMOD_EXPORT_MODULE_INFO(LMOD_OUTPUT_MODULE_NAME,LMOD_OUTPUT_MODULE_ID,LMOD_OUTPUT_MODULE_DESC);
26 public:
27 LMOD_OUTPUT_MODULE_NAME(
28 MoBiLE_State *,
29 cbm::io_kcomm_t *,
30 timemode_e _timemode);
31
32 ~LMOD_OUTPUT_MODULE_NAME();
33
34
35 lerr_t configure( ldndc::config_file_t const *);
36
37 lerr_t initialize();
38
39 lerr_t solve();
40
41 lerr_t finalize();
42
43 lerr_t wake() { return LDNDC_ERR_OK; }
44 lerr_t sleep() { return LDNDC_ERR_OK; }
45
46 private:
47 lerr_t dump_0(
48 ldndc_flt64_t *);
49
50 private:
51 cbm::io_kcomm_t * io_kcomm;
52
53 input_class_soillayers_t const * soillayers_in;
54 substate_soilchemistry_t const * soilchem;
55 substate_watercycle_t const * water;
56
57 private:
58 ldndc::sink_handle_t m_sink;
59
60 double soil_water_acc;
61 int day_counter;
62 int month_counter;
63 int dmonth_counter;
64 void soil_water_calculator();
65 void reset_monthly();
66};
67} /*namespace ldndc*/
68
69
70#undef LMOD_OUTPUT_MODULE_BASE
71#undef LMOD_OUTPUT_MODULE_NAME
72#undef LMOD_OUTPUT_MODULE_ID
73#undef LMOD_OUTPUT_MODULE_DESC
74
75
76#endif /* !LM_OUTPUT_SOILCHEMISTRY_DAILY_H_ */
Spatially explicit groundwater model.
Definition: airchemistryput.h:15