7#ifndef LDNDC_KERNEL_FARMSYSTEM_FIELDSITE_H_
8#define LDNDC_KERNEL_FARMSYSTEM_FIELDSITE_H_
10#include <cbm_errors.h>
11#include <kernel/kbase.h>
13#include "farmsystem/ld_vegetation_period.h"
14#include "farmsystem/ld_farmsystem_output.h"
15#include "farmsystem/ld_stores.h"
24 source_t(
size_t _src_id,
double _field_size);
27 source_t(
const source_t& other);
28 source_t& operator=(
const source_t& other);
33 initialize( cbm::io_kcomm_t *);
39 set_type( cbm::string_t);
46 get_and_clear_carbon();
53 get_and_clear_nitrogen();
56 get_id(){
return src_id; };
68 SubscribedField<double> carbon_plant_biomass_total_exported_from_field;
69 SubscribedField<double> carbon_plant_biomass_fruit_exported_from_field;
70 SubscribedField<double> nitrogen_plant_biomass_total_exported_from_field;
71 SubscribedField<double> nitrogen_plant_biomass_fruit_exported_from_field;
82 FieldSite( cbm::io_kcomm_t * ,
86 std::vector< VegetationPeriod > );
91 lerr_t initialize( cbm::io_kcomm_t *);
94 lerr_t register_ports( cbm::io_kcomm_t *);
95 lerr_t unregister_ports();
99 SubscribedField<double> maturity_status;
100 SubscribedField<double> growing_degree_days;
102 SubscribedField<double> surface_water;
103 SubscribedField<double> water_content_20cm;
104 SubscribedField<double> field_capacity_20cm;
106 cbm::string_t f_name;
113 std::vector< VegetationPeriod > vegetation_periods;
114 std::vector< VegetationPeriod > vegetation_schedule;
117 std::vector< Store* > stores;
119 void add_associated_store(Store* _store)
121 stores.push_back( _store);
126 PublishedEvent m_TillEvent;
127 lerr_t FieldSite_tilling(
128 cbm::RunLevelArgs * ,
132 PublishedEvent m_IrrigationEvent;
133 lerr_t FieldSite_irrigation(
138 PublishedEvent m_FloodEvent;
139 lerr_t FieldSite_flooding(
144 PublishedEvent m_FertilizeEvent;
145 lerr_t FieldSite_fertilization(
150 PublishedEvent m_ManureEvent;
151 lerr_t FieldSite_manuring(
156 PublishedEvent m_CutEvent;
157 lerr_t FieldSite_cutting(
162 PublishedEvent m_PlantEvent;
163 lerr_t FieldSite_planting(
168 PublishedEvent m_HarvestEvent;
169 lerr_t FieldSite_harvest(
174 lerr_t FieldSite_clear(
179 lerr_t schedule( cbm::RunLevelArgs *);
180 lerr_t handle_field( cbm::RunLevelArgs *,
183 inline cbm::string_t name(){
return f_name; };
Spatially explicit groundwater model.
Definition airchemistryput.h:15