LandscapeDNDC 1.37.0
output-watercycle-layer-subdaily.h
1
10#ifndef LM_OUTPUT_WATERCYCLE_LAYER_SUBDAILY_H_
11#define LM_OUTPUT_WATERCYCLE_LAYER_SUBDAILY_H_
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 OutputWatercycleLayerSubdaily
18#define LMOD_OUTPUT_MODULE_ID "output:watercycle-layer:subdaily"
19#define LMOD_OUTPUT_MODULE_DESC "Water Cycle Subdaily Output (Layers)"
20namespace ldndc {
21class LDNDC_API LMOD_OUTPUT_MODULE_NAME : public LMOD_OUTPUT_MODULE_BASE
22{
23 LMOD_EXPORT_MODULE_INFO(LMOD_OUTPUT_MODULE_NAME,LMOD_OUTPUT_MODULE_ID,LMOD_OUTPUT_MODULE_DESC);
24 public:
25 LMOD_OUTPUT_MODULE_NAME(
26 MoBiLE_State *,
27 cbm::io_kcomm_t *,
28 timemode_e _timemode);
29
30 ~LMOD_OUTPUT_MODULE_NAME();
31
32
33 lerr_t configure( ldndc::config_file_t const *);
34
35 lerr_t initialize();
36
37 lerr_t solve();
38
39 lerr_t finalize();
40
41 lerr_t wake() { return LDNDC_ERR_OK; }
42 lerr_t sleep() { return LDNDC_ERR_OK; }
43
44 private:
45 lerr_t dump_0( ldndc_flt64_t * /*buffer*/);
46
47 struct output_watercycle_cum_acc_t
48 {
49 double infiltration_cum;
50 double * waterflux_cum_sl;
51 };
52 output_watercycle_cum_acc_t acc;
53
54 void pop_accumulated_outputs();
55 void push_accumulated_outputs();
56
57 private:
58 cbm::io_kcomm_t * io_kcomm;
59 MoBiLE_PlantVegetation * m_veg;
60
61 input_class_soillayers_t const * soillayers_;
62 input_class_setup_t const * setup_;
63 substate_soilchemistry_t const * sc;
64 substate_physiology_t const * ph;
65 substate_watercycle_t const * wc;
66
67 private:
68 ldndc::sink_handle_t m_sink;
69
70 /* configuration options: */
71 /* foliage and soil layer selection */
72 int f_sel_, s_sel_;
73};
74} /*namespace ldndc*/
75
76
77#undef LMOD_OUTPUT_MODULE_BASE
78#undef LMOD_OUTPUT_MODULE_NAME
79#undef LMOD_OUTPUT_MODULE_ID
80#undef LMOD_OUTPUT_MODULE_DESC
81
82
83#endif /* !LM_OUTPUT_WATERCYCLE_LAYER_SUBDAILY_H_ */
84
Spatially explicit groundwater model.
Definition: airchemistryput.h:15