LandscapeDNDC 1.37.0
output-soilchemistry-layer-daily.h
1
10#ifndef LM_OUTPUT_SOILCHEMISTRY_LAYER_DAILY_H_
11#define LM_OUTPUT_SOILCHEMISTRY_LAYER_DAILY_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 OutputSoilchemistryLayerDaily
18#define LMOD_OUTPUT_MODULE_ID "output:soilchemistry-layer:daily"
19#define LMOD_OUTPUT_MODULE_DESC "Soil Chemistry Daily Output (Layers)"
20namespace ldndc {
21class substate_microclimate_t;
22class substate_physiology_t;
23class substate_watercycle_t;
24class LDNDC_API LMOD_OUTPUT_MODULE_NAME : public LMOD_OUTPUT_MODULE_BASE
25{
26 LMOD_EXPORT_MODULE_INFO(LMOD_OUTPUT_MODULE_NAME,LMOD_OUTPUT_MODULE_ID,LMOD_OUTPUT_MODULE_DESC);
27 public:
28 LMOD_OUTPUT_MODULE_NAME(
29 MoBiLE_State *,
30 cbm::io_kcomm_t *,
31 timemode_e _timemode);
32
33 ~LMOD_OUTPUT_MODULE_NAME();
34
35
36 lerr_t configure( ldndc::config_file_t const *);
37
38 lerr_t initialize();
39
40 lerr_t solve();
41
42 lerr_t finalize();
43
44 lerr_t wake() { return LDNDC_ERR_OK; }
45 lerr_t sleep() { return LDNDC_ERR_OK; }
46
47 private:
48 lerr_t dump_0( ldndc_flt64_t * /*buffer*/,
49 int /*layer index*/);
50
51 private:
52 cbm::io_kcomm_t * io_kcomm;
53
54 /* configuration options: */
55 /* foliage, surface and soil layer selection */
56 struct conf_t
57 {
58 bool soil_all:1;
59 };
60 struct conf_t rc;
61
62 input_class_soillayers_t const * soillayers_;
63
64 substate_soilchemistry_t const * sc;
65
66 private:
67 ldndc::sink_handle_t m_sink;
68
69 struct output_soilchemistry_layer_daily_acc_t
70 {
71 double * dN_mineral_sl;
72 double * dN_nitrify_sl;
73 double * dN_denitrify_sl;
74 };
75 output_soilchemistry_layer_daily_acc_t acc;
76 void pop_accumulated_outputs( int /* soil layer */);
77 void push_accumulated_outputs( int /* soil layer */);
78};
79} /*namespace ldndc*/
80
81
82#undef LMOD_OUTPUT_MODULE_BASE
83#undef LMOD_OUTPUT_MODULE_NAME
84#undef LMOD_OUTPUT_MODULE_ID
85#undef LMOD_OUTPUT_MODULE_DESC
86
87
88#endif /* !LM_OUTPUT_SOILCHEMISTRY_LAYER_DAILY_H_ */
89
Spatially explicit groundwater model.
Definition: airchemistryput.h:15