LandscapeDNDC 1.37.0
Loading...
Searching...
No Matches
ld_farmsystem.h
1
6
7#ifndef LDNDC_KERNEL_FARMSYSTEM_H_
8#define LDNDC_KERNEL_FARMSYSTEM_H_
9
10#include "ld_kernel.h"
11#include <json/cbm_jdoc.h>
12#include "farmsystem/ld_fieldsite.h"
13#include "farmsystem/ld_stores.h"
14#include "farmsystem/ld_farmsystem_output.h"
15
16namespace ldndc {
17
18class LDNDC_API FarmSystem : public cbm::kernel_t
19{
20 LDNDC_KERNEL_OBJECT(FarmSystem,farmsystem)
21
22public:
23 FarmSystem();
24 ~FarmSystem();
25
26 lerr_t configure( cbm::RunLevelArgs *);
27 lerr_t initialize( cbm::RunLevelArgs *);
28 lerr_t solve( cbm::RunLevelArgs *);
29 lerr_t finalize( cbm::RunLevelArgs *);
30
31 lerr_t register_ports( cbm::RunLevelArgs *);
32 lerr_t unregister_ports( cbm::RunLevelArgs *);
33
34private:
35
36 int event_id;
37
38 /* json-formatted farmsystem input; parsed once per file and shared among kernel instances */
39 cbm::string_t data_file;
40 std::shared_ptr< cbm::jdoc_t const > data_doc;
41
42 lerr_t read_file( cbm::RunLevelArgs *);
43
44 std::vector< int >
45 read_years( cbm::jnode_t const & /*node holding "years"*/);
46
47 std::vector< VegetationPeriod::tilling_t >
48 read_tilling( cbm::jnode_t const & /*vegetation period*/);
49
50 std::vector< VegetationPeriod::irrigation_t >
51 read_irrigation( cbm::jnode_t const & /*vegetation period*/);
52
53 std::vector< VegetationPeriod::flooding_t >
54 read_flooding( cbm::jnode_t const & /*vegetation period*/);
55
56 std::vector< VegetationPeriod::fertilizer_t >
57 read_fertilization( cbm::jnode_t const & /*vegetation period*/);
58
59 std::vector< VegetationPeriod::fertilizer_t >
60 read_manuring( cbm::jnode_t const & /*vegetation period*/);
61
62 std::vector< VegetationPeriod::cutting_t >
63 read_cutting( cbm::jnode_t const & /*vegetation period*/);
64
65 std::vector< FieldSite > fieldsites;
66
67 std::vector< Store > stores;
68 //Store store_test;
69
70public:
76 FarmSystemOutput m_output;
77
78private:
79
80 /* hide these buggers for now */
81 FarmSystem( FarmSystem const &);
82 FarmSystem & operator=( FarmSystem const &);
83};
84} /* namespace ldndc */
85
86#endif /* !LDNDC_KERNEL_FARMSYSTEM_H_ */
87
Spatially explicit groundwater model.
Definition airchemistryput.h:15