Photosynthesis

Leaf and Environment Structures

To model photosynthesis more efficiently, we use a container (Leaf struct) to store the photosynthesis-related information. For example, many of the physiological parameters are temperature-dependent, but these temperature-dependent values only need to be updated when leaf temperature changes. Therefore, use of the container significantly reduces the time required when programing leaf gas exchange prognostically. The Leaf struct has the following fields:

Land.Photosynthesis.LeafType
mutable struct Leaf{FT}

Struct to store leaf information.

Fields

  • T::AbstractFloat

: Temperature [K]

  • T_old::AbstractFloat

: Old Temperature [K], if not T, run leaftemperaturedependence!

  • Kd::AbstractFloat

: Rate constant for thermal dissipation

  • Kf::AbstractFloat

: Rate constant for fluorescence (const)

  • Kr::AbstractFloat

: Reversible NPQ rate constant (initially zero)

  • Ks::AbstractFloat

: Sustained NPQ rate constant (for seasonal changes, default is zero)

  • Kp::AbstractFloat

: Rate constant for photochemistry (all reaction centers open)

  • Kp_max::AbstractFloat

: Maximal Kp

  • maxPSII::AbstractFloat

: max PSII yield (Kr=0, all RC open)

  • PSII_frac::AbstractFloat

: Fraction of absorbed light used by PSII ETR

  • p_i::AbstractFloat

: Leaf internal CO₂ partial pressure [Pa]

  • p_s::AbstractFloat

: Leaf surface CO₂ partial pressure [Pa]

  • p_sat::AbstractFloat

: Saturation H₂O vapor pressure [Pa]

  • g_bc::AbstractFloat

: Leaf diffusive conductance to CO₂ [mol m⁻² s⁻¹]

  • g_lc::AbstractFloat

: Leaf diffusive conductance to CO₂ [mol m⁻² s⁻¹]

  • Ac::AbstractFloat

: RubisCO limited photosynthetic rate [μmol m⁻² s⁻¹]

  • Aj::AbstractFloat

: Light limited photosynthetic rate [μmol m⁻² s⁻¹]

  • Ag::AbstractFloat

: Gross photosynthetic rate [μmol m⁻² s⁻¹]

  • An::AbstractFloat

: Net photosynthetic rate [μmol m⁻² s⁻¹]

  • Ap::AbstractFloat

: Product limited photosynthetic rate [μmol m⁻² s⁻¹]

  • J::AbstractFloat

: Electron transport [μmol m⁻² s⁻¹]

  • J_pot::AbstractFloat

: Potential Electron Transport Rate [μmol m⁻² s⁻¹]

  • Jmax::AbstractFloat

: Maximal electron transport rate [μmol m⁻² s⁻¹]

  • Jmax25::AbstractFloat

: Maximal electron transport rate at 298.15 K [μmol m⁻² s⁻¹]

  • Kc::AbstractFloat

: RubisCO coefficient Kc [Pa]

  • Ko::AbstractFloat

: RubisCO coefficient Ko [Pa]

  • Kpep::AbstractFloat

: PEP coefficient Ko [Pa]

  • Km::AbstractFloat

: Michaelis-Menten's coefficient [Pa]

  • Rd::AbstractFloat

: Respiration rate [μmol m⁻² s⁻¹]

  • Rd25::AbstractFloat

: Respiration rate at 298.15 K [μmol m⁻² s⁻¹]

  • Vcmax::AbstractFloat

: Maximal carboxylation rate [μmol m⁻² s⁻¹]

  • Vcmax25::AbstractFloat

: Maximal carboxylation rate at 298.15 K [μmol m⁻² s⁻¹]

  • Vpmax::AbstractFloat

: Maximal PEP carboxylation rate [μmol m⁻² s⁻¹]

  • Vpmax25::AbstractFloat

: Maximal PEP carboxylation rate at 298.15 K [μmol m⁻² s⁻¹]

  • Γ_star::AbstractFloat

: CO₂ compensation point with the absence of Rd [Pa]

  • C_b₆f::AbstractFloat

: Total concentration of Cytochrome b₆f [μmol m⁻²]

  • k_q::AbstractFloat

: Maximal turnover rate of Cytochrome b₆f [e⁻ s⁻¹]

  • Vqmax::AbstractFloat

: Maximal Cytochrome b₆f activity [μmol e⁻ m⁻² s⁻¹]

  • K_D1::AbstractFloat

: Rate constant of consititutive heat loss from the antennae [s⁻¹]

  • K_F1::AbstractFloat

: rate constant of fluorescence [s⁻¹]

  • K_N1::AbstractFloat

: Rate constant of regulated heat loss for PS I [s⁻¹]

  • K_P1::AbstractFloat

: Rate constant of photochemistry for PS I [s⁻¹]

  • K_P2::AbstractFloat

: Rate constant of photochemistry for PS II [s⁻¹]

  • K_U2::AbstractFloat

: Rate constant of excitation sharing for PS II [s⁻¹]

  • α_1::AbstractFloat

: PPFD absorbed by PS I per incident PPFD

  • α_2::AbstractFloat

: PPFD absorbed by PS II per incident PPFD

  • ϵ_1::AbstractFloat

: Weighting factor for PS I

  • ϵ_2::AbstractFloat

: Weighting factor for PS II

  • φ_P1_max::AbstractFloat

: Maximal PS I photochemical yield

  • n_C::AbstractFloat

: Coupling efficiency of cyclic electron flow [mol ATP mol⁻¹ e⁻]

  • n_L::AbstractFloat

: Coupling efficiency of linear electron flow [mol ATP mol⁻¹ e⁻]

  • η::AbstractFloat

: ratio between JP700 and JP680

  • J_P680_a::AbstractFloat

: PS II electron transport rate [μmol e⁻ m⁻² s⁻¹]

  • J_P680_c::AbstractFloat

: Rubisco limited PS II electron transport rate [μmol e⁻ m⁻² s⁻¹]

  • J_P680_j::AbstractFloat

: Light limited PS II electron transport rate [μmol e⁻ m⁻² s⁻¹]

  • J_P680_p::AbstractFloat

: Product limited PS II electron transport rate [μmol e⁻ m⁻² s⁻¹]

  • J_P700_a::AbstractFloat

: PS I electron transport rate [μmol e⁻ m⁻² s⁻¹]

  • J_P700_c::AbstractFloat

: Rubisco limited PS I electron transport rate [μmol e⁻ m⁻² s⁻¹]

  • J_P700_j::AbstractFloat

: Light limited PS I electron transport rate [μmol e⁻ m⁻² s⁻¹]

  • J_P700_p::AbstractFloat

: Product limited PS I electron transport rate [μmol e⁻ m⁻² s⁻¹]

  • Jmax25WW::AbstractFloat

: Well watered maximal electron transport rate at 298.15 K [μmol m⁻² s⁻¹]

  • Rd25WW::AbstractFloat

: Well watered respiration rate at 298.15 K [μmol m⁻² s⁻¹]

  • Vcmax25WW::AbstractFloat

: Well watered maximal carboxylation rate at 298.15 K [μmol m⁻² s⁻¹]

  • Vpmax25WW::AbstractFloat

: Well watered maximal PEP carboxylation rate at 298.15 K [μmol m⁻² s⁻¹]

  • e2c::AbstractFloat

: Total efficiency, incl. photorespiration [mol CO₂ mol⁻¹ e-]

  • Fm::AbstractFloat

: dark adapted yield (Kp=0)

  • Fm′::AbstractFloat

: light adapted yield (Kp=0)

  • Fo::AbstractFloat

: dark-adapted fluorescence yield (Kp=max)

  • Fo′::AbstractFloat

: light-adapted fluorescence yield in the dark (Kp=max)

  • Ja::AbstractFloat

: Actual electron transport rate [μmol m⁻² s⁻¹]

  • NPQ::AbstractFloat

: Non-Photochemical quenching

  • qQ::AbstractFloat

: Photochemical quenching

  • qE::AbstractFloat

: energy quenching

  • φ::AbstractFloat

: PSII yield

  • φs::AbstractFloat

: Steady-state (light-adapted) yield (aka Fs)

  • APAR::AbstractFloat

: Absorbed photosynthetic active radiation [μmol m⁻² s⁻¹]

source

Also, environmental conditions are required to compute photosynthetic rate, and these conditions are stored in AirLayer struct. An AirLayer struct further allows for more conveniently modeling photosynthesis the vertical CO₂ and H₂O gradients in the canopy. The AirLayer structs has the following fields:

Land.Photosynthesis.AirLayerType
mutable struct AirLayer{FT}

Struct to store environmental conditions in each air layer corresponds to one canopy layer.

Fields

  • t_air::AbstractFloat

: Air temperature [K]

  • p_a::AbstractFloat

: Atmospheric CO₂ partial pressure [Pa]

  • p_atm::AbstractFloat

: Atmospheric pressure [Pa]

  • p_H₂O::AbstractFloat

: Atmospheric vapor pressure [Pa]

  • p_O₂::AbstractFloat

: Atmospheric O₂ partial pressure [Pa]

  • p_sat::AbstractFloat

: Saturation vapor pressure [Pa]

  • RH::AbstractFloat

: Relatiev humidity

  • vpd::AbstractFloat

: Vapor pressure deficit [Pa]

  • wind::AbstractFloat

: Wind speed [m s⁻¹]

source

See exmaples below for how to create the structs

FT = Float32;
leaf = Leaf{FT}();
envir = AirLayer{FT}();

Temperature Dependency Structs

The temperature-dependent (TD) photosynthetic parameters include

  • $J_\text{max}$ Maximal electron transport rate
  • $K_\text{c}$ Michaelis constant for CO₂
  • $K_\text{m}$ Michaelis-Menten's coefficient
  • $K_\text{o}$ Michaelis constant for O₂
  • $K_\text{pep}$ Michaelis constant for PEP carboxylation
  • $R_\text{d}$ Dark respiration
  • $V_\text{cmax}$ Maximal RuBP carboxylation rate
  • $V_\text{omax}$ Maximal RuBP oxygenation rate
  • $V_\text{pmax}$ Maximal PEP carboxylation rate
  • $Γ^{*}$ CO₂ compensation point with the absence of dark respiration

There are two typical types of temperature dependencies using the classic Arrhenius equation. We define the three types as ArrheniusTD, ArrheniusPeakTD, and Q10TD subject to AbstractTDParameterSet type:

Land.Photosynthesis.ArrheniusTDType
struct ArrheniusTD{FT}

An AbstractTDParameterSet type struct using

\[corr = \exp \left( \dfrac{ΔHa}{R T_0} - \dfrac{ΔHa}{R T_1} \right)\]

Fields

  • VAL_25::AbstractFloat

: Uncorrected value at 298.15 K

  • ΔHa_to_R::AbstractFloat

: Ratio between ΔHa and R [K]

  • ΔHa_to_RT25::AbstractFloat

: Ratio between ΔHa and R*K_25

source
Land.Photosynthesis.ArrheniusPeakTDType
struct ArrheniusPeakTD{FT}

An AbstractTDParameterSet type struct using

\[corr = \exp \left( \dfrac{ΔHa}{R T_0} - \dfrac{ΔHa}{R T_1} \right) \cdot \dfrac{ 1 + \exp \left( \dfrac{S_v T_0 - H_d}{R T_0} \right) } { 1 + \exp \left( \dfrac{S_v T_1 - H_d}{R T_1} \right) }\]

Fields

  • ΔHa_to_RT25::AbstractFloat

: Ratio between ΔHa and R*K_25

  • ΔHd_to_R::AbstractFloat

: Ratio between ΔHd and R

  • ΔSv_to_R::AbstractFloat

: Ratio between ΔSv and R

  • C::AbstractFloat

: Correction factor C = 1 + exp( Sv/R + Hd/(RT0) )

source
Land.Photosynthesis.Q10TDType
struct Q10TD{FT}

An AbstractTDParameterSet type struct using

\[VAL = VAL_{REF} \left( \dfrac{T_1 - T_{REF}}}{10} \right)^{Q_{10}}\]

Fields

  • VAL_REF::AbstractFloat

: Uncorrected value at reference temperature

  • T_REF::AbstractFloat

: Reference temperature [K]

  • Q_10::AbstractFloat

: Power of Q10 correction

source

There are many published parameter sets for the various temperature dependencies, and to ease the modeling we predefined most of the structs:

The TDs can be easily created using commands like

FT = Float32;
_td_1 = JmaxTDBernacchi(FT);
_td_2 = VcmaxTDCLM(FT);

However, be aware that these pre-defined TD structs are not mutable, to create customized TD struct, code like this will be useful

FT = Float32;
_td_1 = ArrheniusTD{FT}(1, 10000, 30);
_td_1 = ArrheniusPeakTD{FT}(1, 10000, 30, 1);

To further simplify the use of Photosynthesis module, we provide a few collections/structs of temperature dependencies as well as other parameter sets like FluoParaSet. The structs are catergorized to C3ParaSet and C4ParaSet subject to an AbstractPhotoModelParaSet type, and the structs are meant for modeling C3 photosynthesis and C4 photosynthesis, respectively.

Land.Photosynthesis.C3ParaSetType
mutable struct C3Paraset{FT}

Parameter sets for C3 photosynthesis.

Fields

  • JT::Land.Photosynthesis.AbstractTDParameterSet{FT} where FT<:AbstractFloat

: Jmax temperature dependency

  • KcT::Land.Photosynthesis.AbstractTDParameterSet{FT} where FT<:AbstractFloat

: Kc temperature dependency

  • KoT::Land.Photosynthesis.AbstractTDParameterSet{FT} where FT<:AbstractFloat

: Ko temperature dependency

  • ReT::Land.Photosynthesis.AbstractTDParameterSet{FT} where FT<:AbstractFloat

: Respiration temperature dependency

  • VcT::Land.Photosynthesis.AbstractTDParameterSet{FT} where FT<:AbstractFloat

: Vcmax temperature dependency

  • ΓsT::Land.Photosynthesis.AbstractTDParameterSet{FT} where FT<:AbstractFloat

: Γ_star temperature dependency

  • Flu::Land.Photosynthesis.AbstractFluoModelParaSet{FT} where FT<:AbstractFloat

: Fluorescence model

  • VR::AbstractFloat

: Vcmax25 and respiration correlation

  • Eff_1::AbstractFloat

: Coefficient 4.0/4.5 for NADPH/ATP requirement stochiometry, respectively

  • Eff_2::AbstractFloat

: Coefficient 8.0/10.5 for NADPH/ATP requirement stochiometry, respectively

  • Θ_J::AbstractFloat

: Smoothing factor for J

source
Land.Photosynthesis.C4ParaSetType
mutable struct C4ParaSet{FT}

Parameter sets for C3 photosynthesis.

Fields

  • KpT::Land.Photosynthesis.AbstractTDParameterSet{FT} where FT<:AbstractFloat

: Kpep temperature dependency

  • ReT::Land.Photosynthesis.AbstractTDParameterSet{FT} where FT<:AbstractFloat

: Respiration temperature dependency

  • VcT::Land.Photosynthesis.AbstractTDParameterSet{FT} where FT<:AbstractFloat

: Vcmax temperature dependency

  • VpT::Land.Photosynthesis.AbstractTDParameterSet{FT} where FT<:AbstractFloat

: Vpmax temperature dependency

  • Flu::Land.Photosynthesis.AbstractFluoModelParaSet{FT} where FT<:AbstractFloat

: Fluorescence model

  • VR::AbstractFloat

: Vcmax25 and respiration correlation

source

Again, to guarantee a quick start, we provided a few pre-defined parameter sets:

Examples:

FT = Float32;
set_b = C3Bernacchi(FT);
set_3 = C3CLM(FT);
set_4 = C4CLM(FT);

Note it here that the C3ParaSet and C4ParaSet structs are mutable, and the fields can be changed to another non-mutable TD struct. We'd like to mention that in some cases, leaf respiration rate is not measured, and in this case, the dark respiration rate will be computed from $V_\text{cmax}$ using a multiplier

Temperature Dependency

As mentioned above, temperature corrections only need to be done once per temperature change, and storing the temperature corrected values will significantly boost the code speed. Here we provide a few functions to change the stored values. First of all, all the temperature corrections are made with temperature_correction:

Land.Photosynthesis.temperature_correctionFunction
temperature_correction(
            td_set::AbstractTDParameterSet{FT},
            T::FT
) where {FT<:AbstractFloat}

A correction factor based on arrhenius's fitting procedure, given

The equation used for ArrheniusTD is

\[corr = \exp \left( \dfrac{ΔHa}{R T_0} - \dfrac{ΔHa}{R T_1} \right)\]

The equations used for ArrheniusPeakTD are

\[corr = \exp \left( \dfrac{ΔHa}{R T_0} - \dfrac{ΔHa}{R T_1} \right) \cdot \dfrac{ 1 + \exp \left( \dfrac{S_v T_0 - H_d}{R T_0} \right) } { 1 + \exp \left( \dfrac{S_v T_1 - H_d}{R T_1} \right) }\]

The equation used for Q10TD is

\[corr = \left( \dfrac{T_1 - T_\text{REF}}{10} \right)^{Q_{10}}\]

source

Second, depending on which physiological parameter to correct, some corrections use the VAL_25 field in the ArrheniusTD, like $K_\text{c}$, $K_\text{o}$, and $K_\text{pep}$:

Land.Photosynthesis.photo_TD_from_setFunction
photo_TD_from_set(td_set::ArrheniusTD{FT}, T::FT) where {FT<:AbstractFloat}
photo_TD_from_set(td_set::Q10TD{FT}, T::FT) where {FT<:AbstractFloat}

Make temperature correction from parameter set, given

  • td_set ArrheniusTD type parameter set, which has a VAL_25 field
  • T Leaf temperature

Useful for Kc, Ko, Kpep, and $Γ^{*}$.

source

Some corrections use the reference values from the Leaf struct, like $V_\text{cmax}$ and $J_\text{max}$:

Land.Photosynthesis.photo_TD_from_valFunction
photo_TD_from_val(
            td_set::AbstractTDParameterSet{FT},
            val::FT,
            T::FT
) where {FT<:AbstractFloat}

Make temperature correction from a given value, given

Useful for Vcmax, Vomax, Vpmax, Jmax, and Respiration.

source

The functions to make temperature corrections to each individual variables are

Land.Photosynthesis.leaf_km!Function
leaf_km!(photo_set::C3ParaSet{FT},
         leaf::Leaf{FT},
         envir::AirLayer{FT}
) where {FT<:AbstractFloat}

Update Ko at leaf temperature, given

source

Again to ease the coding, we provide a function to run all the temperature dependencies:

Land.Photosynthesis.leaf_temperature_dependence!Function
leaf_temperature_dependence!(
            photo_set::AbstractPhotoModelParaSet{FT},
            leaf::Leaf{FT},
            envir::AirLayer{FT}
) where {FT<:AbstractFloat}
leaf_temperature_dependence!(
            photo_set::AbstractPhotoModelParaSet{FT},
            leaf::Leaf{FT},
            envir::AirLayer{FT},
            T::FT
) where {FT<:AbstractFloat}

Update the temperature dependent photosynthesis only, given

source

Note it here that function leaf_temperature_dependence! updates saturated vapor pressure from leaf temperature as well.

Example:

FT = Float32;
leaf = Leaf{FT}();
envir = AirLayer{FT}();
set_3 = C3CLM(FT);

leaf_temperature_dependence!(c3_set, leaf, envir);
leaf_temperature_dependence!(c3_set, leaf, envir, FT(300));

RubisCO-limited Photosynthesis

By default, Photosynthesis module computes gross photosynthetic rate as the minimal of the three:

  • $A_\text{c}$ RubisCO-limited photosynthetic rate
  • $A_\text{j}$ Light-limited photosynthetic rate
  • $A_\text{p}$ Product-limited photosynthetic rate

If leaf internal CO₂ is known, $A_\text{c}$ (gross rate) can be computed using

Land.Photosynthesis.rubisco_limited_rate!Function
rubisco_limited_rate!(
            photo_set::Union{C3Cytochrome{FT},C3ParaSet{FT}},
            leaf::Leaf{FT}
) where {FT<:AbstractFloat}
rubisco_limited_rate!(
            photo_set::C4ParaSet{FT},
            leaf::Leaf{FT}
) where {FT<:AbstractFloat}
rubisco_limited_rate!(
            photo_set::C3ParaSet{FT},
            leaf::Leaf{FT},
            envir::AirLayer{FT}
) where {FT<:AbstractFloat}

Calculate the RubisCO limited photosynthetic rate, given

source

If total leaf diffusive conductance to CO₂ is known, $A_\text{c}$ can be computed analytically by solving the quadratic function. The calculation is done by adding an envir to the function parameter list. Note it here that analytical solution using leaf diffusive conductance only applies to C3 photosynthesis as the RubisCO-limited rate for C4 plants is $V_\text{cmax}$.

Light-limited Photosynthesis

If leaf internal CO₂ is known, $A_\text{j}$ (gross rate) can be computed using

Land.Photosynthesis.light_limited_rate!Function
light_limited_rate!(
            photo_set::Union{C3Cytochrome{FT},C3ParaSet{FT}},
            leaf::Leaf{FT}
) where {FT<:AbstractFloat}
light_limited_rate!(
            photo_set::C4ParaSet{FT},
            leaf::Leaf{FT}
) where {FT<:AbstractFloat}
light_limited_rate!(
            photo_set::C3ParaSet{FT},
            leaf::Leaf{FT},
            envir::AirLayer{FT}
) where {FT<:AbstractFloat}

Calculate the light limited photosynthetic rate, given

source

If total leaf diffusive conductance to CO₂ is known, $A_\text{j}$ can be computed analytically using the same function by adding an envir to the parameter list. Note that this analytical solution using leaf diffusive conductance to CO2 only applies to C3 photosynthesis as the RubisCO-limited rate for C4 plants is the electron transport rate.

Be aware that leaf electron transport rate needs to be calculated before the light-limited rate:

Product-limited Photosynthesis

If leaf internal CO₂ is known, $A_\text{p}$ (gross rate) can be computed using

Land.Photosynthesis.product_limited_rate!Function
product_limited_rate!(
            photo_set::C3ParaSet{FT},
            leaf::Leaf{FT}
) where {FT<:AbstractFloat}
product_limited_rate!(
            photo_set::C4ParaSet{FT},
            leaf::Leaf{FT}
) where {FT<:AbstractFloat}
product_limited_rate!(
            photo_set::C4ParaSet{FT},
            leaf::Leaf{FT},
            envir::AirLayer{FT}
) where {FT<:AbstractFloat}

Calculate the product limited photosynthetic rate, given

source

If total leaf diffusive conductance to CO₂ is known, $A_\text{p}$ can be computed analytically by adding an envir to the parameter list. Note it here that the calculation using leaf diffusive conductance to CO2 only applies to C4 photosynthesis as the RubisCO-limited rate for C4 plants is $V_\text{cmax}$/2.

Photosynthetic Rates

For empirical and optimization stomatal models, iterations are required to get the final solution as in StomataModels module. In this case, more conveniently computing photosynthetic rates for each leaf is preferable. In this case, leaf_photosynthesis! is a better option:

Land.Photosynthesis.leaf_photosynthesis!Function
leaf_photosynthesis!(
            photo_set::AbstractPhotoModelParaSet{FT},
            leaf::Leaf{FT},
            envir::AirLayer{FT},
            mode::PCO₂Mode
) where {FT<:AbstractFloat}
leaf_photosynthesis!(
            photo_set::AbstractPhotoModelParaSet{FT},
            leaf::Leaf{FT},
            envir::AirLayer{FT},
            mode::PCO₂Mode,
            p_i::FT
) where {FT<:AbstractFloat}
leaf_photosynthesis!(
            photo_set::C3ParaSet{FT},
            leaf::Leaf{FT},
            envir::AirLayer{FT},
            mode::GCO₂Mode
) where {FT<:AbstractFloat}
leaf_photosynthesis!(
            photo_set::C4ParaSet{FT},
            leaf::Leaf{FT},
            envir::AirLayer{FT},
            mode::GCO₂Mode
) where {FT<:AbstractFloat}
leaf_photosynthesis!(
            photo_set::AbstractPhotoModelParaSet{FT},
            leaf::Leaf{FT},
            envir::AirLayer{FT},
            mode::GCO₂Mode,
            g_lc::FT
) where {FT<:AbstractFloat}

Compute leaf photosynthetic rates, given

The C3 photosynthesis model is from Farquhar et al. (1980) "A biochemical model of photosynthetic CO₂ assimilation in leaves of C3 species."

The C4 photosynthesis model is adapted from Collatz et al. (1992) "Coupled photosynthesis-stomatal conductance model for leaves of C4 plants."

source

Fluorescence

Photosynthesis module also provide ways to compute leaf fluorescence. By default, the modules uses fluorescence parameters from van del Tol et al. (2014) with struct FluorescenceVanDerTol:

Land.Photosynthesis.FluoParaSetType
mutable struct FluoParaSet{FT}

A AbstractFluoModelParaSet type paramter set.

Fields

  • Kr1::AbstractFloat

: Fluorescence model coefficient

  • Kr2::AbstractFloat

: Fluorescence model coefficient

  • Kr3::AbstractFloat

: Fluorescence model coefficient

source

The function that is used to compute fluorescene is

Land.Photosynthesis.leaf_fluorescence!Function
leaf_fluorescence!(
            fluo_set::CytoFluoParaSet{FT},
            leaf::Leaf{FT}
) where {FT<:AbstractFloat}
leaf_fluorescence!(
            fluo_set::FluoParaSet{FT},
            leaf::Leaf{FT}
) where {FT<:AbstractFloat}

Compute fluorescence yield, Kr, Ks, and Kp for leaf, given

source