8#ifndef LDNDC_KERNEL_FARMSYSTEM_DYNAMICVEGETATION_H_
9#define LDNDC_KERNEL_FARMSYSTEM_DYNAMICVEGETATION_H_
12#include "ld_eventqueue.h"
13#include <containers/lvector.h>
14#include <json/cbm_json.h>
15#include "farmsystem/ld_stores.h"
25 static int nd_vegetation_periods;
32 int day_of_application;
33 int days_of_application_after_harvest;
40 int day_of_application;
41 double irrigation_height;
42 double fraction_dvs_min_of_application;
43 double fraction_dvs_max_of_application;
44 double fraction_field_capacity;
46 std::vector< int > years;
67 double irrigation_height;
70 double percolation_rate;
73 double saturation_level;
75 event_status_e status;
81 int day_of_application;
82 int days_of_application_after_harvest;
83 double fraction_dvs_min_of_application;
84 double fraction_dvs_max_of_application;
85 double fraction_field_capacity;
93 cbm::string_t water_management;
94 double irrigation_height;
95 std::vector< int > years;
96 event_status_e status;
101 int day_of_application;
103 cbm::string_t type_base;
104 cbm::string_t type_extension;
106 inline cbm::string_t plant_type() {
return type_base + type_extension; };
107 inline cbm::string_t plant_name() {
return name; };
108 double initialbiomass;
110 cbm::string_t method;
112 double remains_relative;
114 int days_to_maturity;
115 int days_to_earliest_harvest;
116 int days_to_latest_harvest;
117 int days_on_field_after_maturity;
121 double residues_return_percentage;
122 cbm::string_t residues_return_schedule;
123 int residues_store_id;
125 std::vector< int > years;
131 int day_of_application;
132 double remains_absolute;
135 double export_foliage;
136 double export_living_structural_tissue;
137 double export_dead_structural_tissue;
144 std::vector< int >
const &,
147 std::vector< tilling_t >
const & ,
148 std::vector< fertilizer_t >
const & ,
149 std::vector< fertilizer_t >
const & ,
151 std::vector< irrigation_t >
const & ,
152 std::vector< flooding_t >
const & ,
153 std::vector< cutting_t >
const & ,
159 std::vector< int > years;
164 planting_t planting_event;
166 std::vector< tilling_t > tilling_events;
167 std::vector< irrigation_t > irrigation_events;
168 std::vector< flooding_t > flooding_events;
169 std::vector< fertilizer_t > fertilization_events;
170 std::vector< fertilizer_t > manure_events;
171 std::vector< cutting_t > cutting_events;
174 long long int seconds_at_field_preparation;
175 int shorten_vegetation_period;
178 long long int seconds_at_planting;
181 long long int seconds_at_maturity;
184 long long int seconds_at_harvest;
186 double gdd_at_anticipated_maturity;
190 bool residues_collected;
192 size_t executed_tilling_events;
194 double irrigation_reservoir;
195 double irrigation_reservoir_withdrawal;
197 size_t dynamic_parametrization;
199 int id_vegetation_period;
203 int inline id(){
return id_vegetation_period; };
205 inline bool not_initialized(){
return (seconds_at_field_preparation < 0); };
208 initialize( cbm::RunLevelArgs *);
211 assign_tilling_event( tilling_t*,
213 cbm::sclock_t
const * ,
217 assign_irrigation_event( irrigation_t*,
225 assign_flooding_event( std::vector< VegetationPeriod::flooding_t > &,
231 assign_fertilization_event( fertilizer_t*,
241 assign_manuring_event( fertilizer_t*,
244 cbm::sclock_t
const * ,
250 std::vector< Store* > _stores,
254 assign_cutting_event( cutting_t*,
259 assign_planting_event( planting_t*,
264 assign_harvest_event( planting_t*,
267 cbm::sclock_t
const * ,
272 collect_residues( cbm::RunLevelArgs *,
278 days_since(
long long int ,
279 cbm::sclock_t
const * );
Spatially explicit groundwater model.
Definition airchemistryput.h:15