LandscapeDNDC 1.37.0
output-soilchemistry-horizons-daily.h
1
6#ifndef LM_OUTPUT_SOILCHEMISTRY_HORIZONS_DAILY_H_
7#define LM_OUTPUT_SOILCHEMISTRY_HORIZONS_DAILY_H_
8
9#include "mbe_legacyoutputmodel.h"
10#include "state/mbe_state.h"
11
12#define LMOD_OUTPUT_MODULE_BASE MBE_LegacyOutputModel
13#define LMOD_OUTPUT_MODULE_NAME OutputSoilchemistryHorizonsDaily
14#define LMOD_OUTPUT_MODULE_ID "output:soilchemistry-horizons:daily"
15#define LMOD_OUTPUT_MODULE_DESC "Soil Chemistry Daily Output (Horizons)"
16
17namespace ldndc {
18
19class LDNDC_API LMOD_OUTPUT_MODULE_NAME : public LMOD_OUTPUT_MODULE_BASE
20{
21 LMOD_EXPORT_MODULE_INFO(LMOD_OUTPUT_MODULE_NAME,LMOD_OUTPUT_MODULE_ID,LMOD_OUTPUT_MODULE_DESC);
22 public:
23 LMOD_OUTPUT_MODULE_NAME(
24 MoBiLE_State *,
25 cbm::io_kcomm_t *,
26 timemode_e _timemode);
27
28 ~LMOD_OUTPUT_MODULE_NAME();
29
30
31 lerr_t configure( ldndc::config_file_t const *);
32
33 lerr_t initialize();
34
35 lerr_t solve();
36
37 lerr_t finalize();
38
39 lerr_t wake() { return LDNDC_ERR_OK; }
40 lerr_t sleep() { return LDNDC_ERR_OK; }
41
42 private:
43 lerr_t dump_0( ldndc_flt64_t * /*buffer*/);
44
45 private:
46 cbm::io_kcomm_t * io_kcomm;
47
48 input_class_soillayers_t const * soillayers_;
49 substate_physiology_t const * phys;
50 MoBiLE_PlantVegetation * vegetation;
51 substate_soilchemistry_t const * sc;
52
53 private:
54 ldndc::sink_handle_t m_sink;
55
56 lvector_t< double > accumulated_n_no3_leaching_sl;
57
58 struct output_soilchemistry_daily_acc_t
59 {
60 double uptakeN_floor;
61 double mineralN_floor;
62 double nitrifyN_floor;
63 double denitrifyN_floor;
64 double denitrify_no2_floor;
65 double denitrify_no_floor;
66 double denitrify_n2o_floor;
67 double chemoN_floor;
68
69 double uptakeN_min;
70 double mineralN_min;
71 double nitrifyN_min;
72 double denitrifyN_min;
73 double denitrify_no2_min;
74 double denitrify_no_min;
75 double denitrify_n2o_min;
76 double chemoN_min;
77 };
78 output_soilchemistry_daily_acc_t acc;
79
80 void pop_accumulated_outputs();
81 void push_accumulated_outputs();
82
83};
84} /*namespace ldndc*/
85
86
87#undef LMOD_OUTPUT_MODULE_BASE
88#undef LMOD_OUTPUT_MODULE_NAME
89#undef LMOD_OUTPUT_MODULE_ID
90#undef LMOD_OUTPUT_MODULE_DESC
91
92
93#endif /* !LM_OUTPUT_SOILCHEMISTRY_HORIZONS_DAILY_H_ */
94
Spatially explicit groundwater model.
Definition: airchemistryput.h:15