LandscapeDNDC 1.37.0
output-vegstructure-daily.h
1
10#ifndef LM_OUTPUT_VEGSTRUCTURE_DAILY_H_NEW_
11#define LM_OUTPUT_VEGSTRUCTURE_DAILY_H_NEW_
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 OutputVegstructureDaily
18#define LMOD_OUTPUT_MODULE_ID "output:vegstructure:daily"
19#define LMOD_OUTPUT_MODULE_DESC "Vegetation Structure Daily Output"
20namespace ldndc {
21class substate_physiology_t;
22class LDNDC_API LMOD_OUTPUT_MODULE_NAME : public LMOD_OUTPUT_MODULE_BASE
23{
24 LMOD_EXPORT_MODULE_INFO(LMOD_OUTPUT_MODULE_NAME,LMOD_OUTPUT_MODULE_ID,LMOD_OUTPUT_MODULE_DESC);
25 public:
26 LMOD_OUTPUT_MODULE_NAME(
27 MoBiLE_State *,
28 cbm::io_kcomm_t *,
29 timemode_e _timemode);
30
31 ~LMOD_OUTPUT_MODULE_NAME();
32
33
34 lerr_t configure( ldndc::config_file_t const *);
35
36 lerr_t initialize();
37
38 lerr_t solve();
39
40 lerr_t finalize();
41
42 lerr_t wake() { return LDNDC_ERR_OK; }
43 lerr_t sleep() { return LDNDC_ERR_OK; }
44
45 private:
46 lerr_t sink_handle_acquire_(
47 sink_handle_t & /*sink handle*/, int /*index*/);
48 lerr_t acquire_sinks_if_needed_();
49 std::vector< ldndc::sink_handle_t > m_sinks;
50 ldndc::sink_handle_t m_sinksum;
51
52 private:
53 cbm::io_kcomm_t * io_kcomm;
54
55 substate_physiology_t const * phys;
56 MoBiLE_PlantVegetation * m_veg;
57
58 private:
59 struct dump_info_t
60 {
61 MoBiLE_Plant * plant;
62 size_t n_trees;
63 double f_vt_sum_tree;
64 size_t n_grasses;
65 double f_vt_sum_grass;
66 };
67 void set_dump_info( dump_info_t *) const;
68 lerr_t m_writerecord( dump_info_t const *,
69 ldndc_flt64_t * /*buffer*/, ldndc_flt64_t * /*average buffer*/);
70};
71} /*namespace ldndc*/
72
73
74#undef LMOD_OUTPUT_MODULE_BASE
75#undef LMOD_OUTPUT_MODULE_NAME
76#undef LMOD_OUTPUT_MODULE_ID
77#undef LMOD_OUTPUT_MODULE_DESC
78
79
80#endif /* !LM_OUTPUT_VEGSTRUCTURE_DAILY_H_NEW_ */
81
Spatially explicit groundwater model.
Definition: airchemistryput.h:15