LandscapeDNDC 1.37.0
output-soilchemistry-dndc.h
1
8#ifndef LM_OUTPUT_SOILCHEMISTRYDNDC_H_
9#define LM_OUTPUT_SOILCHEMISTRYDNDC_H_
10
11#include "mbe_legacymodel.h"
12#include "soilchemistry/dndc/output-soilchemistry-dndc-daily.h"
13
14#define LMOD_OUTPUT_MODULE_BASE MBE_LegacyModel
15#define LMOD_OUTPUT_MODULE_NAME OutputSoilchemistryDNDC
16#define LMOD_OUTPUT_MODULE_ID "output:soilchemistry:dndc"
17#define LMOD_OUTPUT_MODULE_DESC "SoilchemistryDNDC Output"
18namespace ldndc {
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 enum writer_id_e
23 {
24 WRITER_DAILY,
25 /* total number of writers */
26 WRITER_CNT
27 };
28 static char const * const WRITER_OPTIONKEY[WRITER_CNT];
29 public:
30
31 LMOD_OUTPUT_MODULE_NAME(
32 MoBiLE_State *,
33 cbm::io_kcomm_t *,
34 timemode_e _timemode);
35
36 ~LMOD_OUTPUT_MODULE_NAME();
37
38
39 lerr_t configure( ldndc::config_file_t const *);
40 lerr_t initialize();
41 lerr_t solve();
42 lerr_t finalize();
43
44 lerr_t wake() { return LDNDC_ERR_OK; }
45 lerr_t sleep() { return LDNDC_ERR_OK; }
46
47
48 bool write_daily() const { return this->output_writer_daily.active(); }
49 lerr_t write_daily(
50 ldndc_flt64_t * /*data*/);
51
52 size_t max_record_size() const;
53
54 private:
55 OutputSoilchemistryDNDCDaily output_writer_daily;
56 soilchemistrydndc_writer_t * writers[WRITER_CNT];
57
58 lerr_t configure_writer(
59 soilchemistrydndc_writer_t * /*writer*/, ldndc::config_file_t const * /*configuration*/,
60 char const * /*writer option key*/);
61};
62
63} /*namespace ldndc*/
64
65#undef LMOD_OUTPUT_MODULE_BASE
66#undef LMOD_OUTPUT_MODULE_NAME
67#undef LMOD_OUTPUT_MODULE_ID
68#undef LMOD_OUTPUT_MODULE_DESC
69
70#endif /* !LM_OUTPUT_SOILCHEMISTRYDNDC_H_ */
71
Spatially explicit groundwater model.
Definition: airchemistryput.h:15