1#ifndef SOIL_EVAPORATION_H
2#define SOIL_EVAPORATION_H
4#include "../framework/module.h"
5#include "../framework/state_map.h"
14 state_map
const& input_quantities,
15 state_map* output_quantities)
19 lai{get_input(input_quantities,
"lai")},
20 temp{get_input(input_quantities,
"temp")},
21 solar{get_input(input_quantities,
"solar")},
22 soil_water_content{get_input(input_quantities,
"soil_water_content")},
23 soil_field_capacity{get_input(input_quantities,
"soil_field_capacity")},
24 soil_wilting_point{get_input(input_quantities,
"soil_wilting_point")},
25 windspeed{get_input(input_quantities,
"windspeed")},
26 rh{get_input(input_quantities,
"rh")},
27 rsec{get_input(input_quantities,
"rsec")},
28 soil_clod_size{get_input(input_quantities,
"soil_clod_size")},
29 soil_reflectance{get_input(input_quantities,
"soil_reflectance")},
30 soil_transmission{get_input(input_quantities,
"soil_transmission")},
31 specific_heat_of_air{get_input(input_quantities,
"specific_heat_of_air")},
32 par_energy_content{get_input(input_quantities,
"par_energy_content")},
35 soil_evaporation_rate_op{get_op(output_quantities,
"soil_evaporation_rate")}
40 static std::string
get_name() {
return "soil_evaporation"; }
47 double const& soil_water_content;
48 double const& soil_field_capacity;
49 double const& soil_wilting_point;
50 double const& windspeed;
53 double const& soil_clod_size;
54 double const& soil_reflectance;
55 double const& soil_transmission;
56 double const& specific_heat_of_air;
57 double const& par_energy_content;
60 double* soil_evaporation_rate_op;
63 void do_operation()
const;
73 "soil_field_capacity",
81 "specific_heat_of_air",
89 "soil_evaporation_rate"
93void soil_evaporation::do_operation()
const
98 lai, 0.68, temp, solar, soil_water_content, soil_field_capacity,
99 soil_wilting_point, windspeed, rh, rsec, soil_clod_size,
100 soil_reflectance, soil_transmission, specific_heat_of_air,
105 soilEvap *= 3600 * 1e-3 * 10000;
108 update(soil_evaporation_rate_op, soilEvap);
double SoilEvapo(double LAI, double k, double air_temperature, double ppfd, double soil_water_content, double fieldc, double wiltp, double winds, double RelH, double rsec, double soil_clod_size, double soil_reflectance, double soil_transmission, double specific_heat_of_air, double par_energy_content)
static string_vector get_outputs()
static string_vector get_inputs()
soil_evaporation(state_map const &input_quantities, state_map *output_quantities)
static std::string get_name()
This is the standard BioCro module library; it includes the essential modules used in typical BioCro ...