LandscapeDNDC 1.37.0
output-physiology-layer-daily.h
1
10#ifndef LM_OUTPUT_PHYSIOLOGY_LAYER_DAILY_H_
11#define LM_OUTPUT_PHYSIOLOGY_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 OutputPhysiologyLayerDaily
18#define LMOD_OUTPUT_MODULE_ID "output:physiology-layer:daily"
19#define LMOD_OUTPUT_MODULE_DESC "Physiology Daily Output (Layers)"
20namespace ldndc {
21class substate_physiology_t;
22class substate_soilchemistry_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 cbm::io_kcomm_t * io_kcomm;
48
49 input_class_soillayers_t const * soillayers_;
50 input_class_setup_t const * setup_;
51 substate_physiology_t const * ph;
52 substate_soilchemistry_t const * sc;
53
54 MoBiLE_PlantVegetation * m_veg;
55
56 private:
57 lerr_t sink_handle_acquire_();
58 ldndc::sink_handle_t m_sink;
59 struct conf_t
60 {
61 bool foliage_all:1;
62 bool soil_all:1;
63 };
64 struct conf_t rc;
65
66 struct output_physiology_layer_daily_acc_t
67 {
68 double * nh4_uptake_sl;
69 double * no3_uptake_sl;
70 };
71 output_physiology_layer_daily_acc_t acc;
72
73 lerr_t m_writerecord( ldndc_flt64_t * /*buffer*/);
74};
75} /*namespace ldndc*/
76
77
78#undef LMOD_OUTPUT_MODULE_BASE
79#undef LMOD_OUTPUT_MODULE_NAME
80#undef LMOD_OUTPUT_MODULE_ID
81#undef LMOD_OUTPUT_MODULE_DESC
82
83
84#endif /* !LM_OUTPUT_PHYSIOLOGY_LAYER_DAILY_H_ */
85
Spatially explicit groundwater model.
Definition: airchemistryput.h:15