LandscapeDNDC 1.37.0
cmfcolumn-output-daily.h
1
9#ifndef LM_BUFFERZONE_DAILY_H_
10#define LM_BUFFERZONE_DAILY_H_
11
12#include "mbe_legacyoutputmodel.h"
13
14#include "watercycle/cmfcolumn/cmfcolumn-config.h"
15#include "watercycle/cmfcolumn/cmfcolumn-fluxes.h"
16
17/* if defined, bufferzone daily output exhibits request API */
18//#define OutputCMFColumnDaily_HAVE_request_api
19#ifdef OutputCMFColumnDaily_HAVE_request_api
20# include <kernel/kcomm.h>
21# include <comm/cbm_msg.h>
22#endif
23
24namespace ldndc {
25class LDNDC_API OutputCMFColumnDaily : public MBE_LegacyOutputModel
26{
27 LMOD_EXPORT_MODULE_INFO(OutputCMFColumnDaily,"output:cmfcolumn:daily","CMFColumn Daily Output");
28 public:
29 OutputCMFColumnDaily( MoBiLE_State *,
30 cbm::io_kcomm_t *, timemode_e _timemode);
31
32 ~OutputCMFColumnDaily();
33
34
35 lerr_t configure( ldndc::config_file_t const *);
36 lerr_t initialize();
37 lerr_t solve();
38 lerr_t finalize();
39
40 lerr_t wake() { return LDNDC_ERR_OK; }
41 lerr_t sleep() { return LDNDC_ERR_OK; }
42
43 private:
44 lerr_t execute();
45 lerr_t dump_0( ldndc_flt64_t *);
46
47 private:
48 cbm::io_kcomm_t * io_kcomm;
49 CMFFluxes cmf_fluxes;
50#ifdef OutputCMFColumnDaily_HAVE_request_api
51 cbm::kcomm_t kcomm;
52 public:
53 lerr_t process_message( cbm::msg_t const *, cbm::reply_t *);
54 private:
55#endif
56 input_class_soillayers_t const * soillayers_in;
57
58 substate_soilchemistry_t const * soilchem;
59 substate_watercycle_t const * water;
60
61 private:
62 ldndc::sink_handle_t m_sink;
63
64 /* configuration options: */
65 struct conf_t
66 {
67 bool bypass_mobile:1;
68 };
69 struct conf_t rc;
70};
71} /*namespace ldndc*/
72
73#endif /* !LM_BUFFERZONE_DAILY_H_ */
74
Spatially explicit groundwater model.
Definition: airchemistryput.h:15