1#ifndef C3_LEAF_PHOTOSYNTHESIS_H
2#define C3_LEAF_PHOTOSYNTHESIS_H
4#include "../framework/state_map.h"
5#include "../framework/module.h"
19 state_map
const& input_quantities,
20 state_map* output_quantities)
24 absorbed_longwave{get_input(input_quantities,
"absorbed_longwave")},
25 absorbed_ppfd{get_input(input_quantities,
"absorbed_ppfd")},
26 absorbed_shortwave{get_input(input_quantities,
"absorbed_shortwave")},
27 ambient_temperature{get_input(input_quantities,
"temp")},
28 atmospheric_pressure{get_input(input_quantities,
"atmospheric_pressure")},
29 b0{get_input(input_quantities,
"b0")},
30 b1{get_input(input_quantities,
"b1")},
31 beta_PSII{get_input(input_quantities,
"beta_PSII")},
32 Catm{get_input(input_quantities,
"Catm")},
33 electrons_per_carboxylation{get_input(input_quantities,
"electrons_per_carboxylation")},
34 electrons_per_oxygenation{get_input(input_quantities,
"electrons_per_oxygenation")},
35 gbw_canopy{get_input(input_quantities,
"gbw_canopy")},
36 Gs_min{get_input(input_quantities,
"Gs_min")},
37 Gstar_c{get_input(input_quantities,
"Gstar_c")},
38 Gstar_Ea{get_input(input_quantities,
"Gstar_Ea")},
39 height{get_input(input_quantities,
"height")},
40 Jmax_at_25{get_input(input_quantities,
"Jmax_at_25")},
41 Jmax_c{get_input(input_quantities,
"Jmax_c")},
42 Jmax_Ea{get_input(input_quantities,
"Jmax_Ea")},
43 Kc_c{get_input(input_quantities,
"Kc_c")},
44 Kc_Ea{get_input(input_quantities,
"Kc_Ea")},
45 Ko_c{get_input(input_quantities,
"Ko_c")},
46 Ko_Ea{get_input(input_quantities,
"Ko_Ea")},
47 leafwidth{get_input(input_quantities,
"leafwidth")},
48 O2{get_input(input_quantities,
"O2")},
49 phi_PSII_0{get_input(input_quantities,
"phi_PSII_0")},
50 phi_PSII_1{get_input(input_quantities,
"phi_PSII_1")},
51 phi_PSII_2{get_input(input_quantities,
"phi_PSII_2")},
52 rh{get_input(input_quantities,
"rh")},
53 RL_at_25{get_input(input_quantities,
"RL_at_25")},
54 RL_c{get_input(input_quantities,
"RL_c")},
55 RL_Ea{get_input(input_quantities,
"RL_Ea")},
56 StomataWS{get_input(input_quantities,
"StomataWS")},
57 theta_0{get_input(input_quantities,
"theta_0")},
58 theta_1{get_input(input_quantities,
"theta_1")},
59 theta_2{get_input(input_quantities,
"theta_2")},
60 Tp_at_25{get_input(input_quantities,
"Tp_at_25")},
61 Tp_c{get_input(input_quantities,
"Tp_c")},
62 Tp_Ha{get_input(input_quantities,
"Tp_Ha")},
63 Tp_Hd{get_input(input_quantities,
"Tp_Hd")},
64 Tp_S{get_input(input_quantities,
"Tp_S")},
65 Vcmax_at_25{get_input(input_quantities,
"Vcmax_at_25")},
66 Vcmax_c{get_input(input_quantities,
"Vcmax_c")},
67 Vcmax_Ea{get_input(input_quantities,
"Vcmax_Ea")},
68 windspeed{get_input(input_quantities,
"windspeed")},
71 Assim_op{get_op(output_quantities,
"Assim")},
72 Ci_op{get_op(output_quantities,
"Ci")},
73 Cs_op{get_op(output_quantities,
"Cs")},
74 EPenman_op{get_op(output_quantities,
"EPenman")},
75 EPriestly_op{get_op(output_quantities,
"EPriestly")},
76 gbw_op{get_op(output_quantities,
"gbw")},
77 GrossAssim_op{get_op(output_quantities,
"GrossAssim")},
78 Gs_op{get_op(output_quantities,
"Gs")},
79 leaf_temperature_op{get_op(output_quantities,
"leaf_temperature")},
80 RHs_op{get_op(output_quantities,
"RHs")},
81 RH_canopy_op{get_op(output_quantities,
"RH_canopy")},
82 RL_op{get_op(output_quantities,
"RL")},
83 Rp_op{get_op(output_quantities,
"Rp")},
84 TransR_op{get_op(output_quantities,
"TransR")}
89 static std::string
get_name() {
return "c3_leaf_photosynthesis"; }
93 double const& absorbed_longwave;
94 double const& absorbed_ppfd;
95 double const& absorbed_shortwave;
96 double const& ambient_temperature;
97 double const& atmospheric_pressure;
100 double const& beta_PSII;
102 double const& electrons_per_carboxylation;
103 double const& electrons_per_oxygenation;
104 double const& gbw_canopy;
105 double const& Gs_min;
106 double const& Gstar_c;
107 double const& Gstar_Ea;
108 double const& height;
109 double const& Jmax_at_25;
110 double const& Jmax_c;
111 double const& Jmax_Ea;
116 double const& leafwidth;
118 double const& phi_PSII_0;
119 double const& phi_PSII_1;
120 double const& phi_PSII_2;
122 double const& RL_at_25;
125 double const& StomataWS;
126 double const& theta_0;
127 double const& theta_1;
128 double const& theta_2;
129 double const& Tp_at_25;
134 double const& Vcmax_at_25;
135 double const& Vcmax_c;
136 double const& Vcmax_Ea;
137 double const& windspeed;
144 double* EPriestly_op;
146 double* GrossAssim_op;
148 double* leaf_temperature_op;
150 double* RH_canopy_op;
156 void do_operation()
const;
Uses the method from c3CanAC() to calculate leaf photosynthesis parameters for C3 plants.
static string_vector get_outputs()
static string_vector get_inputs()
static std::string get_name()
c3_leaf_photosynthesis(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 ...