1#ifndef C4_ASSIMILATION_H
2#define C4_ASSIMILATION_H
4#include "../framework/module.h"
5#include "../framework/state_map.h"
71 state_map
const& input_quantities,
72 state_map* output_quantities)
76 alpha{get_input(input_quantities,
"alpha")},
77 atmospheric_pressure{get_input(input_quantities,
"atmospheric_pressure")},
78 b0{get_input(input_quantities,
"b0")},
79 b1{get_input(input_quantities,
"b1")},
80 beta{get_input(input_quantities,
"beta")},
81 Catm{get_input(input_quantities,
"Catm")},
82 gbw{get_input(input_quantities,
"gbw")},
83 Gs_min{get_input(input_quantities,
"Gs_min")},
84 kparm{get_input(input_quantities,
"kparm")},
85 lowerT{get_input(input_quantities,
"lowerT")},
86 Qp{get_input(input_quantities,
"Qp")},
87 rh{get_input(input_quantities,
"rh")},
88 RL_at_25{get_input(input_quantities,
"RL_at_25")},
89 StomataWS{get_input(input_quantities,
"StomataWS")},
90 Tambient{get_input(input_quantities,
"temp")},
91 theta{get_input(input_quantities,
"theta")},
92 Tleaf{get_input(input_quantities,
"Tleaf")},
93 upperT{get_input(input_quantities,
"upperT")},
94 Vcmax_at_25{get_input(input_quantities,
"Vcmax_at_25")},
97 Assim_op{get_op(output_quantities,
"Assim")},
98 Assim_check_op{get_op(output_quantities,
"Assim_check")},
99 Assim_conductance_op{get_op(output_quantities,
"Assim_conductance")},
100 Ci_op{get_op(output_quantities,
"Ci")},
101 Cs_op{get_op(output_quantities,
"Cs")},
102 GrossAssim_op{get_op(output_quantities,
"GrossAssim")},
103 Gs_op{get_op(output_quantities,
"Gs")},
104 RHs_op{get_op(output_quantities,
"RHs")},
105 RL_op{get_op(output_quantities,
"RL")},
106 Rp_op{get_op(output_quantities,
"Rp")},
107 iterations_op{get_op(output_quantities,
"iterations")}
112 static std::string
get_name() {
return "c4_assimilation"; }
117 double const& atmospheric_pressure;
123 double const& Gs_min;
125 double const& lowerT;
128 double const& RL_at_25;
129 double const& StomataWS;
130 double const& Tambient;
133 double const& upperT;
134 double const& Vcmax_at_25;
138 double* Assim_check_op;
139 double* Assim_conductance_op;
142 double* GrossAssim_op;
147 double* iterations_op;
150 void do_operation()
const;
157 "atmospheric_pressure",
195void c4_assimilation::do_operation()
const
213 atmospheric_pressure,
219 update(Assim_op, c4_results.
Assim);
222 update(Ci_op, c4_results.
Ci);
223 update(Cs_op, c4_results.
Cs);
225 update(Gs_op, c4_results.
Gs);
226 update(RHs_op, c4_results.
RHs);
227 update(RL_op, c4_results.
RL);
228 update(Rp_op, c4_results.
Rp);
photosynthesis_outputs c4photoC(double const Qp, double const leaf_temperature, double const ambient_temperature, double const relative_humidity, double const Vcmax_at_25, double const alpha, double const kparm, double const theta, double const beta, double const RL_at_25, double const bb0, double const bb1, double const Gs_min, double const StomaWS, double const Ca, double const atmospheric_pressure, double const upperT, double const lowerT, double const gbw)
Calculates net assimilation, stomatal conductance, and intercellular CO2 concentration for a C4 leaf ...
static string_vector get_outputs()
static string_vector get_inputs()
static std::string get_name()
c4_assimilation(state_map const &input_quantities, state_map *output_quantities)
This is the standard BioCro module library; it includes the essential modules used in typical BioCro ...
A simple structure for holding the output of photosynthesis calculations.
double RL
Rate of non-photorespiratory CO2 release in the light (micromol / m^2 / s)
double Rp
Rate of photorespiration (micromol / m^2 / s)
double Assim_check
Equals zero if loop has converged (micromol / m^2 / s)
double Cs
CO2 concentration at the leaf surface (micromol / mol)
double Assim
Net CO2 assimilation rate (micromol / m^2 / s)
double Assim_conductance
Conductance-limited net CO2 assim. rate (micromol / m^2 / s)
size_t iterations
Number of iterations used by convergence loop.
double RHs
Relative humidity at the leaf surface (dimensionless)
double Ci
CO2 concentration in intercellular spaces (micromol / mol)
double GrossAssim
Gross CO2 assimilation rate (micromol / m^2 / s)
double Gs
Stomatal conductance to water vapor (mol / m^2 / s)