4#include "../framework/module.h"
5#include "../framework/state_map.h"
19 c3_parameters(state_map
const& input_quantities, state_map* output_quantities)
23 Gstar_c{get_input(input_quantities,
"Gstar_c")},
24 Gstar_Ea{get_input(input_quantities,
"Gstar_Ea")},
25 Jmax_c{get_input(input_quantities,
"Jmax_c")},
26 Jmax_Ea{get_input(input_quantities,
"Jmax_Ea")},
27 Kc_c{get_input(input_quantities,
"Kc_c")},
28 Kc_Ea{get_input(input_quantities,
"Kc_Ea")},
29 Ko_c{get_input(input_quantities,
"Ko_c")},
30 Ko_Ea{get_input(input_quantities,
"Ko_Ea")},
31 phi_PSII_0{get_input(input_quantities,
"phi_PSII_0")},
32 phi_PSII_1{get_input(input_quantities,
"phi_PSII_1")},
33 phi_PSII_2{get_input(input_quantities,
"phi_PSII_2")},
34 RL_c{get_input(input_quantities,
"RL_c")},
35 RL_Ea{get_input(input_quantities,
"RL_Ea")},
36 theta_0{get_input(input_quantities,
"theta_0")},
37 theta_1{get_input(input_quantities,
"theta_1")},
38 theta_2{get_input(input_quantities,
"theta_2")},
39 Tleaf{get_input(input_quantities,
"Tleaf")},
40 Tp_c{get_input(input_quantities,
"Tp_c")},
41 Tp_Ha{get_input(input_quantities,
"Tp_Ha")},
42 Tp_Hd{get_input(input_quantities,
"Tp_Hd")},
43 Tp_S{get_input(input_quantities,
"Tp_S")},
44 Vcmax_c{get_input(input_quantities,
"Vcmax_c")},
45 Vcmax_Ea{get_input(input_quantities,
"Vcmax_Ea")},
48 Gstar_op{get_op(output_quantities,
"Gstar")},
49 Jmax_norm_op{get_op(output_quantities,
"Jmax_norm")},
50 Kc_op{get_op(output_quantities,
"Kc")},
51 Ko_op{get_op(output_quantities,
"Ko")},
52 phi_PSII_op{get_op(output_quantities,
"phi_PSII")},
53 RL_norm_op{get_op(output_quantities,
"RL_norm")},
54 theta_op{get_op(output_quantities,
"theta")},
55 Tp_norm_op{get_op(output_quantities,
"Tp_norm")},
56 Vcmax_norm_op{get_op(output_quantities,
"Vcmax_norm")}
61 static std::string
get_name() {
return "c3_parameters"; }
65 double const& Gstar_c;
66 double const& Gstar_Ea;
68 double const& Jmax_Ea;
73 double const& phi_PSII_0;
74 double const& phi_PSII_1;
75 double const& phi_PSII_2;
78 double const& theta_0;
79 double const& theta_1;
80 double const& theta_2;
86 double const& Vcmax_c;
87 double const& Vcmax_Ea;
98 double* Vcmax_norm_op;
101 void do_operation()
const;
148void c3_parameters::do_operation()
const
179 update(Gstar_op, c3_param.
Gstar);
180 update(Jmax_norm_op, c3_param.
Jmax_norm);
181 update(Kc_op, c3_param.
Kc);
182 update(Ko_op, c3_param.
Ko);
183 update(phi_PSII_op, c3_param.
phi_PSII);
184 update(RL_norm_op, c3_param.
RL_norm);
185 update(theta_op, c3_param.
theta);
186 update(Tp_norm_op, c3_param.
Tp_norm);
c3_param_at_tleaf c3_temperature_response(c3_temperature_response_parameters param, double Tleaf)
Calculates the values of key C3 photosynthesis parameters at leaf temperature.
Uses c3_temperature_response() to calculate the values of key C3 photosynthesis parameters at leaf te...
static string_vector get_outputs()
c3_parameters(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 ...
double Tp_norm
Tp normalized to its value at 25 degrees C (dimensionless)
double Ko
Michaelis-Menten constant for Rubisco oxygenation (mmol / mol)
double phi_PSII
Dark-adapted operating efficiency of photosystem II (dimensionless)
double Kc
Michaelis-Menten constant for Rubisco carboxylation (micromol / mol)
double theta
Linear light response factor (dimensionless)
double RL_norm
RL normalized to its value at 25 degrees C (dimensionless)
double Gstar
CO2 compensation point in the absence of RL (micromol / mol)
double Vcmax_norm
Vcmax normalized to its value at 25 degrees C (dimensionless)
double Jmax_norm
Jmax normalized to its value at 25 degrees C (dimensionless)