1#ifndef STANDARDBML_CUMULATIVE_WATER_DYNAMICS_H
2#define STANDARDBML_CUMULATIVE_WATER_DYNAMICS_H
4#include "../framework/module.h"
5#include "../framework/state_map.h"
24 state_map
const& input_quantities,
25 state_map* output_quantities)
26 : differential_module{},
29 canopy_transpiration_rate{get_input(input_quantities,
"canopy_transpiration_rate")},
30 precip{get_input(input_quantities,
"precip")},
31 soil_evaporation_rate{get_input(input_quantities,
"soil_evaporation_rate")},
34 canopy_transpiration_op{get_op(output_quantities,
"canopy_transpiration")},
35 soil_evaporation_op{get_op(output_quantities,
"soil_evaporation")},
36 total_precip_op{get_op(output_quantities,
"total_precip")}
41 static std::string
get_name() {
return "cumulative_water_dynamics"; }
45 double const& canopy_transpiration_rate;
47 double const& soil_evaporation_rate;
50 double* canopy_transpiration_op;
51 double* soil_evaporation_op;
52 double* total_precip_op;
55 void do_operation()
const;
61 "canopy_transpiration_rate",
63 "soil_evaporation_rate"
70 "canopy_transpiration",
76void cumulative_water_dynamics::do_operation()
const
84 update(canopy_transpiration_op, canopy_transpiration_rate);
85 update(soil_evaporation_op, soil_evaporation_rate);
86 update(total_precip_op, precip * 10);
Enables calculations of cumulative water dynamics.
static string_vector get_outputs()
cumulative_water_dynamics(state_map const &input_quantities, state_map *output_quantities)
static string_vector get_inputs()
static std::string get_name()
This is the standard BioCro module library; it includes the essential modules used in typical BioCro ...