StomtaModels API
Stomatal model schemes
The StomataModels module relies mainly on Photosynthesis and PlantHydraulics modules to predict stomatal behavior from plant physiology. This module has both empirical and optimal stomatal models. These stomatal models are abstractized to an abstract AbstractStomatalModel
, which further has subtypes EmpiricalStomatalModel
and OptimizationStomatalModel
.
Land.StomataModels.AbstractStomatalModel
— Typetype AbstractStomatalModel
Hierarchy of the AbstractStomatalModel
:
Land.StomataModels.EmpiricalStomatalModel
— Typetype EmpiricalStomatalModel
Hierarchy of the EmpiricalStomatalModel
:
Land.StomataModels.OptimizationStomatalModel
— Typetype OptimizationStomatalModel
Hierarchy of the OptimizationStomatalModel
:
Currently, the StomataModels module has four empirical model schemes, and they are
Land.StomataModels.ESMBallBerry
— Typestruct ESMBallBerry{FT}
An empirical model parameter set type for Ball-Berry type model. The equation used for Ball-Berry type model is
\[gs = g0 + g1 ⋅ RH ⋅ \dfrac{A}{Cs}\]
Fields
g0::Any
: minimal stomatal conductance g0 [mol m⁻² s⁻¹]
g1::Any
: slope of conductance-photosynthesis correlation [unitless]
Land.StomataModels.ESMGentine
— Typestruct ESMGentine{FT}
An empirical model parameter set type for Gentine type model. The equation used for Gentine type model is
\[gs = g0 + g1 ⋅ \dfrac{k_{leaf}}{k_{max}} ⋅ \dfrac{A}{Ca}.\]
Note it that the Gentine model does not require for a β
function to tune the soil drought response, but the use of k_leaf
also does not permit post-drought stomatal response unless k_leaf
can be recovered.
Fields
g0::Any
: minimal stomatal conductance g0 [mol m⁻² s⁻¹]
g1::Any
: slope of conductance-photosynthesis correlation [unitless]
Land.StomataModels.ESMLeuning
— Typestruct ESMLeuning{FT}
An empirical model parameter set type for Leuning type model. The equation used for Leuning type model is
\[gs = g0 + g1 ⋅ \dfrac{A}{Cs - Γ^{*}} ⋅ \dfrac{1}{1 + \dfrac{VPD}{d0}}\]
Fields
g0::Any
: minimal stomatal conductance g0 [mol m⁻² s⁻¹]
g1::Any
: slope of conductance-photosynthesis correlation [unitless]
d0::Any
: fitting parameter of d/d0 below the fraction, same unit as vpd [Pa]
Land.StomataModels.ESMMedlyn
— Typestruct ESMMedlyn{FT}
An empirical model parameter set type for Medlyn type model. The equation used in Medlyn type model is
\[gs = g0 + 1.6 ⋅ \left( 1 + \dfrac{g1}{\sqrt{VPD}} \right) ⋅ \dfrac{A}{Ca}\]
Fields
g0::Any
: minimal stomatal conductance g0 [mol m⁻² s⁻¹]
g1::Any
: slope of conductance-photosynthesis correlation [Pa⁽⁵⁾]
All the empirical models rely on beta functions to make corrections over stomatal conductance to account for the stomatal closure with drier soil. We have the following prescribed beta function types, and they are:
Land.StomataModels.AbstractBetaFunction
— Typeabstract type AbstractBetaFunction{FT}
Hierachy of AbstractBetaFunction:
Some beta functions make correction over the g1
parameter as in the empitical models, and they are:
Land.StomataModels.AbstractBetaG
— Typeabstract type AbstractBetaG{FT}
Hierachy of AbstractBetaG:
Land.StomataModels.BetaGLinearKleaf
— Typestruct BetaGLinearKleaf{FT}
Linear β function for g1 based on leaf hydraulic conductance.
Fields
Land.StomataModels.BetaGLinearKsoil
— Typestruct BetaGLinearKsoil{FT}
Linear β function for g1 based on soil hydraulic conductance.
Fields
Land.StomataModels.BetaGLinearPleaf
— Typemutable struct BetaGLinearPleaf{FT}
Linear β function for g1 based on soil water potential.
Fields
p_max::Any
: Upper bound of Pleaf [MPa]
p_min::Any
: Lower bound of Pleaf [MPa]
Land.StomataModels.BetaGLinearPsoil
— Typemutable struct BetaGLinearPsoil{FT}
Linear β function for g1 based on soil water potential.
Fields
p_max::Any
: Upper bound of Psoil [MPa]
p_min::Any
: Lower bound of Psoil [MPa]
Land.StomataModels.BetaGLinearSWC
— Typemutable struct BetaGLinearSWC{FT}
Linear β function for g1 based on soil water content.
Fields
swc_max::Any
: Upper bound of SWC
swc_min::Any
: Lower bound of SWC
Some beta functions make correction over the photosynthetic capacity as in the Photosynthesis module, and they are:
Land.StomataModels.AbstractBetaV
— Typeabstract type AbstractBetaV{FT}
Hierachy of AbstractBetaV:
Land.StomataModels.BetaVLinearKleaf
— Typestruct BetaVLinearKleaf{FT}
Linear β function for Vcmax based on leaf hydraulic conductance.
Fields
Land.StomataModels.BetaVLinearPleaf
— Typemutable struct BetaVLinearPleaf{FT}
Linear β function for Vcmax based on soil water potential.
Fields
p_max::Any
: Upper bound of Pleaf [MPa]
p_min::Any
: Lower bound of Pleaf [MPa]
Land.StomataModels.BetaVLinearPsoil
— Typemutable struct BetaVLinearPsoil{FT}
Linear β function for Vcmax based on soil water potential.
Fields
p_max::Any
: Upper bound of Psoil [MPa]
p_min::Any
: Lower bound of Psoil [MPa]
Land.StomataModels.BetaVLinearSWC
— Typemutable struct BetaVLinearSWC{FT}
Linear β function for Vcmax based on soil water content.
Fields
swc_max::Any
: Upper bound of SWC
swc_min::Any
: Lower bound of SWC
The beta functions are generalized with
Land.StomataModels.β_factor
— Functionβ_factor(hs::LeafHydraulics{FT},
svc::AbstractSoilVC{FT},
bt::AbstractBetaFunction{FT},
p_leaf::FT,
p_soil::FT,
swc::FT
) where {FT<:AbstractFloat}
Calculate the β correction factor, given
hs
LeafHydraulics
structuresvc
Soil vulnerability curvebt
AbstractBetaFunction
type structp_leaf
Leaf water potential[MPa]
p_soil
Soil water potential[MPa]
swc
Soil water content
The StomataModels module also contains five optimization model schemes:
Land.StomataModels.OSMEller
— Typestruct OSMEller
An optimization model parameter set type for Eller model. The equation used for Eller model is
\[\dfrac{∂Θ}{∂E} = -\dfrac{∂K}{∂E} ⋅ \dfrac{A}{K}\]
where K is $\dfrac{∂E}{∂P}$.
Fields
Land.StomataModels.OSMSperry
— Typestruct OSMSperry
An optimization model parameter set type for Sperry model. The equation used for Sperry model is
\[\dfrac{∂Θ}{∂E} = -\dfrac{∂K}{∂E} ⋅ \dfrac{A_{max}}{K_{max}}\]
where K is $\dfrac{∂E}{∂P}$.
Fields
Land.StomataModels.OSMWang
— Typestruct OSMWang
An optimization model parameter set type for Eller type model. The equation used for Wang model is
\[\dfrac{∂Θ}{∂E} = \dfrac{A}{E_{crit} - E}\]
Fields
Land.StomataModels.OSMWAP
— Typestruct OSMWAP{FT}
An optimization model parameter set type for Wolf-Anderegg-Pacala type model. The equation used for Wolf-Anderegg-Pacala model is
\[\dfrac{∂Θ}{∂E} = \dfrac{2aP + b}{K}\]
where K is ∂P/∂E.
Fields
a::Any
: Quadratic equation parameter [μmol m⁻² s⁻¹ MPa⁻²]
b::Any
: Quadratic equation parameter [μmol m⁻² s⁻¹ MPa⁻¹]
Land.StomataModels.OSMWAPMod
— Typestruct OSMWAPMod{FT}
An optimization model parameter set type for Wolf-Anderegg-Pacala type model, modified by adding a photosynthesis component while set b and c = 0. The equation used for modified Wolf-Anderegg-Pacala model is
\[\dfrac{∂Θ}{∂E} = \dfrac{aAP}{K}\]
where P is absolute value of leaf xylem pressure.
Fields
a::Any
: Quadratic equation parameter [mol mol⁻¹ MPa⁻¹]
CanopyLayer
The StomataModels module is designed for multi-layer canopies, and each canopy has multiple leaves. The stomatal behaviors are modeled per layer basis, and the layer may contain any number of leaves starting from 1. Photosynthesis-related information is stored in CanopyLayer
struct, but be aware that the leaves have uniform photosynthetic parameters and temperature (conductances are different in response to light environment).
Land.StomataModels.CanopyLayer
— Typestruct CanopyLayer{FT}
Struct to store leaf information (multi-dimensional).
Fields
ps::Land.Photosynthesis.Leaf
: leaf photosynthesis system
ps_m::Land.Photosynthesis.Leaf
: Memory leaf photosynthesis system
LA::AbstractFloat
: Total leaf area [m²]
LAI::AbstractFloat
: Leaf area index in the layer
tLAI::AbstractFloat
: Total leaf area index in the layer
APAR_m::AbstractFloat
: Memory APAR [μmol m⁻² s⁻¹]
envir_m::Land.Photosynthesis.AirLayer
: Memory environment
n_leaf::Int64
H::Vector{FT} where FT<:AbstractFloat
: Sensible Heat Flux [W m⁻²]
LE::Vector{FT} where FT<:AbstractFloat
: Latent Heat Flux [W m⁻²]
Rn::Vector{FT} where FT<:AbstractFloat
: Net Radiation Balance [W m⁻²]
LV::AbstractFloat
: Latent Heat of evaporation [J mol⁻¹]
T::AbstractFloat
: Temperature [K]
T_old::AbstractFloat
: Old temperature [K]
width::AbstractFloat
: Leaf width [m]
g_bc::Vector{FT} where FT<:AbstractFloat
: Boundary layer conductance to CO₂ [mol m⁻² s⁻¹]
g_bh::Vector{FT} where FT<:AbstractFloat
: Boundary layer conductance to heat [mol m⁻² s⁻¹]
g_bw::Vector{FT} where FT<:AbstractFloat
: Boundary layer conductance to H₂O [mol m⁻² s⁻¹]
g_lc::Vector{FT} where FT<:AbstractFloat
: Leaf diffusive conductance to water CO₂ [mol m⁻² s⁻¹]
g_lw::Vector{FT} where FT<:AbstractFloat
: Leaf diffusive conductance to water H₂O [mol m⁻² s⁻¹]
g_m::Vector{FT} where FT<:AbstractFloat
: Mesophyll conductance for CO₂ [mol m⁻² s⁻¹]
g_sc::Vector{FT} where FT<:AbstractFloat
: Stomatal conductance to water CO₂ [mol m⁻² s⁻¹]
g_sw::Vector{FT} where FT<:AbstractFloat
: Stomatal conductance to water H₂O [mol m⁻² s⁻¹]
g_ias_c::AbstractFloat
: Gias correction constant
g_ias_e::AbstractFloat
: Gias correction exponent
g_max::AbstractFloat
: Maximal leaf diffusive conductance [mol m⁻² s⁻¹]
g_max25::AbstractFloat
: Maximal leaf diffusive conductance at 298.15 K [mol m⁻² s⁻¹]
g_min::AbstractFloat
: Minimal leaf diffusive conductance [mol m⁻² s⁻¹]
g_min25::AbstractFloat
: Minimal leaf diffusive conductance at 298.15 K [mol m⁻² s⁻¹]
p_i::Vector{FT} where FT<:AbstractFloat
: Leaf internal CO₂ partial pressure [Pa]
p_s::Vector{FT} where FT<:AbstractFloat
: Leaf surface CO₂ partial pressure [Pa]
p_sat::AbstractFloat
: Leaf saturation vapor pressure [Pa]
Ac::Vector{FT} where FT<:AbstractFloat
: RubisCO limited photosynthetic rate [μmol m⁻² s⁻¹]
Aj::Vector{FT} where FT<:AbstractFloat
: Light limited photosynthetic rate [μmol m⁻² s⁻¹]
Ag::Vector{FT} where FT<:AbstractFloat
: Gross photosynthetic rate [μmol m⁻² s⁻¹]
An::Vector{FT} where FT<:AbstractFloat
: Net photosynthetic rate [μmol m⁻² s⁻¹]
Ap::Vector{FT} where FT<:AbstractFloat
: Product limited photosynthetic rate [μmol m⁻² s⁻¹]
J::Vector{FT} where FT<:AbstractFloat
: Electron transport [μmol m⁻² s⁻¹]
J_pot::Vector{FT} where FT<:AbstractFloat
: Potential Electron Transport Rate [μmol m⁻² s⁻¹]
e2c::Vector{FT} where FT<:AbstractFloat
: Total efficiency, incl. photorespiration [mol CO₂ mol⁻¹ e-]
Fm′::Vector{FT} where FT<:AbstractFloat
: light adapted yield (Kp=0
)
Fo′::Vector{FT} where FT<:AbstractFloat
: light-adapted fluorescence yield in the dark (Kp=max
)
Ja::Vector{FT} where FT<:AbstractFloat
: Actual electron transport rate [μmol m⁻² s⁻¹]
NPQ::Vector{FT} where FT<:AbstractFloat
: Non-Photochemical quenching
qQ::Vector{FT} where FT<:AbstractFloat
: Photochemical quenching
qE::Vector{FT} where FT<:AbstractFloat
: energy quenching
φ::Vector{FT} where FT<:AbstractFloat
: PSII yield
φs::Vector{FT} where FT<:AbstractFloat
: Steady-state (light-adapted) yield (aka Fs)
Fm::AbstractFloat
: dark adapted yield (Kp=0
)
Fo::AbstractFloat
: dark-adapted fluorescence yield (Kp=max
)
APAR::Vector{FT} where FT<:AbstractFloat
: Absorbed photosynthetic active radiation [μmol m⁻² s⁻¹]
LAIx::Vector{FT} where FT<:AbstractFloat
: Leaf area fractions
a_max::Vector{FT} where FT<:AbstractFloat
: Maximal photosynthetic rate [μmol m⁻² s⁻¹]
e::Vector{FT} where FT<:AbstractFloat
: Flow rate [mol m⁻² s⁻¹]
ec::AbstractFloat
: Critical flow rate [mol m⁻² s⁻¹]
kr_max::AbstractFloat
: Maximal hydraulic conductance ratio
p_ups::AbstractFloat
: Base xylem pressre [MPa]
p_old::AbstractFloat
: Base xylem pressre memory [MPa]
ff::AbstractFloat
: Fitness factor for nighttime stomtal conductance
τ_esm::AbstractFloat
: τ for empirical stomatal models [-]
, Δg/Δt = (g_ss - gsw) / τ
τ_osm::AbstractFloat
: τ for optimal stomatal models [μmol⁻¹]
, Δg/Δt = (∂A/∂E - ∂Θ/∂E) * τ
τ_noc::AbstractFloat
: τ for nighttime optimal stomatal models [μmol⁻¹]
Stomatal conductance
For empirical stomatal models, the stomatal conductance is computed as the intercept of two functions: an empirical function that describe stomatal responses to the physiological and environmental cues and an function that follows the diffusion nature of H₂O and CO₂. The abstractized function for the empirical correlation is
Land.StomataModels.stomatal_conductance
— Functionstomatal_conductance(
model::EmpiricalStomatalModel{FT},
leaf::Leaf{FT},
envir::AirLayer{FT},
β::FT
) where {FT<:AbstractFloat}
stomatal_conductance(
model::EmpiricalStomatalModel{FT},
canopyi::CanopyLayer{FT},
envir::AirLayer{FT},
β::FT
) where {FT<:AbstractFloat}
stomatal_conductance(
model::EmpiricalStomatalModel{FT},
canopyi::CanopyLayer{FT},
envir::AirLayer{FT},
β::FT,
ind::Int
) where {FT<:AbstractFloat}
Steady state gsw from empirical approach given
model
EmpiricalStomatalModel
type empirical model parameter setleaf
[Leaf
] type structcanopyi
CanopyLayer
type structenvir
[AirLayer
] type structβ
Correction factor over the g1 part of an empirical modelind
Nth leaf in the canopy layer
For optimization stomatal models, the stomatal conductance is computed as the point where the marginal carbon gains equals the marginal carbon risk. The marginal carbon gain and risk are generally numerically computed by marginally increasing transpiration rate.
This module uses ConstrainedRootSolver module to iterate through the two functions to find the solution. The aim is to find the stomatal conductance when the solution_diff!
function equals 0. The solution_diff!
returns the diference between real and model-predicted conductances for empirical stomatal models, and the difference between marginal carbon gain and risk for optimization stomatal models.
Land.StomataModels.solution_diff!
— Functionsolution_diff!(x::FT,
photo_set::AbstractPhotoModelParaSet{FT},
canopyi::CanopyLayer{FT},
hs::LeafHydraulics{FT},
svc::AbstractSoilVC{FT},
psoil::FT,
swc::FT,
envir::AirLayer{FT},
sm::OptimizationStomatalModel{FT},
bt::AbstractBetaFunction{FT},
mode::GlcDrive,
ind::Int
) where {FT<:AbstractFloat}
solution_diff!(x::FT,
photo_set::AbstractPhotoModelParaSet{FT},
canopyi::CanopyLayer{FT},
hs::LeafHydraulics{FT},
envir::AirLayer{FT},
sm::AbstractStomatalModel{FT},
mode::AbstractDrive,
ind::Int
) where {FT<:AbstractFloat}
Calculate the difference to be minimized for a given
x
Assumed leaf diffusive conductance or stomatal conductance, depending onmode
photo_set
[C3ParaSet
] or [C4ParaSet
] type parameter setcanopyi
CanopyLayer
type strucths
Leaf hydraulic systempsoil
Soil water potential[MPa]
swc
Soil water contentenvir
[AirLayer
] type structsm
EmpiricalStomatalModel
orOptimizationStomatalModel
bt
AbstractBetaFunction
type structmode
GlcDrive
orGswDrive
modeind
Nth leaf in the canopy layer
The former function works for all empirical stomatal models, and the latter works for all optimization based models.
In the solution_diff!
function, leaf photosynthetic rates is modeled using gas_exchange!
, which calculates the gas exchange rates from a known total leaf diffusive conductance using GlcDrive
mode.
Land.StomataModels.AbstractDrive
— TypeLand.StomataModels.GlcDrive
— Typestruct GlcDrive
Gas exchange update is driven by changes in total leaf diffusive conductance to CO₂
Land.StomataModels.GswDrive
— Typestruct GswDrive
Gas exchange update is driven by changes in stomtal conductance to H₂O
However, these functions do not force stomatal conductance to stay in its ranges. For example, the stomatal conductance solution is set to be zero if light is lower than the compensation point. In this case, the solution_diff!
function has to be used along with a control function to guarantee realistic stomatal conductance.
Land.StomataModels.gsw_control!
— Functiongsw_control!(
photo_set::AbstractPhotoModelParaSet{FT},
canopyi::CanopyLayer{FT},
envir::AirLayer{FT},
ind::Int
) where {FT<:AbstractFloat}
gsw_control!(
photo_set::AbstractPhotoModelParaSet{FT},
canopyi::CanopyLayer{FT},
envir::AirLayer{FT}
) where {FT<:AbstractFloat}
make sure g_sw is in its physiological range limited by diffusion, given
photo_set
[C3ParaSet
] or [C4ParaSet
] type parameter setcanopyi
CanopyLayer
type structenvir
[AirLayer
] type structind
Nth leaf
Note that this function is meant to use jointly with gas_exchange! when computing optimal stomtal conductance.
To facilitate the use of the StomataModels module, an abstractized function is provided for conveniently obtaining stomatal conductance from given environmental conditions.
Land.StomataModels.gas_exchange!
— Functiongas_exchange!(
photo_set::AbstractPhotoModelParaSet{FT},
canopyi::CanopyLayer{FT},
hs::LeafHydraulics{FT},
psoil::FT,
swc::FT,
envir::AirLayer{FT},
sm::EmpiricalStomatalModel{FT},
bt::AbstractBetaFunction{FT}
) where {FT<:AbstractFloat}
gas_exchange!(
photo_set::AbstractPhotoModelParaSet{FT},
canopyi::CanopyLayer{FT},
hs::LeafHydraulics{FT},
psoil::FT,
swc::FT,
envir::AirLayer{FT},
sm::EmpiricalStomatalModel{FT},
bt::AbstractBetaFunction{FT},
ind::Int
) where {FT<:AbstractFloat}
gas_exchange!(
photo_set::AbstractPhotoModelParaSet{FT},
canopyi::CanopyLayer{FT},
hs::LeafHydraulics{FT},
envir::AirLayer{FT},
sm::AbstractStomatalModel{FT}
) where {FT<:AbstractFloat}
gas_exchange!(
photo_set::AbstractPhotoModelParaSet{FT},
canopyi::CanopyLayer{FT},
hs::LeafHydraulics{FT},
envir::AirLayer{FT},
sm::AbstractStomatalModel{FT},
ind::Int
) where {FT<:AbstractFloat}
gas_exchange!(
photo_set::AbstractPhotoModelParaSet{FT},
canopyi::CanopyLayer{FT},
hs::TreeSimple{FT},
envir::AirLayer{FT},
sm::OSMWang{FT}
) where {FT<:AbstractFloat}
gas_exchange!(
photo_set::AbstractPhotoModelParaSet{FT},
canopyi::CanopyLayer{FT},
envir::AirLayer{FT},
drive::GlcDrive,
ind::Int,
glc::FT
) where {FT<:AbstractFloat}
gas_exchange!(
photo_set::AbstractPhotoModelParaSet{FT},
canopyi::CanopyLayer{FT},
envir::AirLayer{FT},
drive::GlcDrive,
ind::Int
) where {FT<:AbstractFloat}
gas_exchange!(
photo_set::AbstractPhotoModelParaSet{FT},
canopyi::CanopyLayer{FT},
envir::AirLayer{FT},
drive::GlcDrive
) where {FT<:AbstractFloat}
gas_exchange!(
photo_set::AbstractPhotoModelParaSet{FT},
canopyi::CanopyLayer{FT},
envir::AirLayer{FT},
drive::GswDrive,
ind::Int,
gsw::FT
) where {FT<:AbstractFloat}
gas_exchange!(
photo_set::AbstractPhotoModelParaSet{FT},
canopyi::CanopyLayer{FT},
envir::AirLayer{FT},
drive::GswDrive,
ind::Int
) where {FT<:AbstractFloat}
gas_exchange!(
photo_set::AbstractPhotoModelParaSet{FT},
canopyi::CanopyLayer{FT},
envir::AirLayer{FT},
drive::GswDrive
) where {FT<:AbstractFloat}
Calculate steady state gas exchange rates, given
photo_set
[C3ParaSet
] or [C4ParaSet
] type parameter setcanopyi
CanopyLayer
type strucths
Leaf hydraulic system or TreeSimple hydraulic organismenvir
[AirLayer
] type structsm
EmpiricalStomatalModel
orOptimizationStomatalModel
bt
AbstractBetaFunction
type structind
Nth leaf in canopyidrive
GlcDrive
orGswDrive
drive modeglc
Given leaf diffusive conductance to CO₂gsw
Given stomatal conductance to H₂O
Note 1: When there is no drive mode in the parameter list, the function calculates the steady state stomatal conductance first, and then the gas exchange rates.
Note 2: When using GlcDrive mode, gas exchange rates are computed using the given glc
. However, this option does not make the gsw control, so it is not guaranteed that gsw is within the physiological range. Thus, gsw control should be made outside this function. This option is supposed to be used in the optimal stomatl conductance models only, because optimal conductance can be outside the physiological stomatal conductance range. Thus, using this option for other purposes need to be cautious. In this case, it is recommended to use the GswDrive mode.
Note 3: When using GswDrive mode, gas exchange rates are computed using the given gsw
. Moreover, gsw
control so that gsw is within the physiological range.
To speed up the calculations, leaf physiological parameters are updated only if the environmental conditions changes. For example, PAR (photosyntheis active radiation) is constant when we iterate solution_diff!
, and the electron transport is only updated once. Similar to the cases of leaf temperature and soil moisture. This kind of functions used in the present module are
Land.StomataModels.update_leaf_TP!
— Functionupdate_leaf_TP!(
photo_set::AbstractPhotoModelParaSet{FT},
canopyi::CanopyLayer{FT},
hs::LeafHydraulics{FT},
envir::AirLayer{FT}
) where {FT<:AbstractFloat}
Update leaf physiological parameters if temperature or pressure changes in the daytime, given
photo_set
[C3ParaSet
] or [C4ParaSet
] type parameter setcanopyi
CanopyLayer
type strucths
Leaf hydraulic systemenvir
[AirLayer
] type struct
Land.StomataModels.update_leaf_AK!
— Functionupdate_leaf_AK!(
photo_set::AbstractPhotoModelParaSet{FT},
canopyi::CanopyLayer{FT},
hs::LeafHydraulics{FT},
envir::AirLayer{FT}
) where {FT<:AbstractFloat}
Update leaf maximal A and K for Sperry model, given
photo_set
[C3ParaSet
] or [C4ParaSet
] type parameter setcanopyi
CanopyLayer
type structenvir
[AirLayer
] type struct
I'd like to emphasize it here that the gas_exchange!
function only applies to the case of constant leaf temperature because leaf energy budget is not calculated, and thus gas_exchange!
is only applicable to (1) known leaf temperature, and (2) prognostically modeling the non-steady state stomatal behaviors. As to the steady state case, leaf energy budget has to be considered. For the prognotic stomatal conductance, it is recommended to use gas_exchange!
function at GswDrive
mode.
Note it here that stomtal conductance is controlled in this function, and thus no additional control like gsw_control!
is required if gas_exchange!
is used.
Other functions
Land.StomataModels.dRdE
— FunctiondRdE(photo_set::AbstractPhotoModelParaSet{FT},
clayer::CanopyLayer{FT},
envir::AirLayer{FT},
LAI::FT
) where {FT<:AbstractFloat}
Calculate the marginal decrease of respiration rate, given
photo_set
AbstractPhotoModelParaSet
type structclayer
CanopyLayer
type of structenvir
AirLayer
type structLAI
Total leaf area index of whole canopy
Land.StomataModels.dTdE
— FunctiondTdE(clayer::CanopyLayer{FT},
envir::AirLayer{FT}
) where {FT<:AbstractFloat}
Calculate the margian decrease in leaf temperature, given
clayer
CanopyLayer
type of structenvir
AirLayer
type structLAI
Total leaf area index of whole canopy
Land.StomataModels.dΘdE
— FunctiondΘdE(photo_set::AbstractPhotoModelParaSet{FT},
clayer::CanopyLayer{FT},
sm::OSMWang{FT}(),
g_sw::FT
) where {FT<:AbstractFloat}
Calculate the margian carbon cost related to nighttime transpiration, given
photo_set
AbstractPhotoModelParaSet
type structclayer
CanopyLayer
type of structsm
OSMWang
type stomatal modelg_sw
Given leaf level stomatal conductance
Land.StomataModels.nocturnal_diff!
— Functionnocturnal_diff!(
x::FT,
photo_set::AbstractPhotoModelParaSet{FT},
clayer::CanopyLayer{FT},
envir::AirLayer{FT},
sm::OSMWang{FT}()
) where {FT<:AbstractFloat}
Calculate the difference between marginal gain and risk of nighttime transpiration, given
x
Given leaf level stomatal conductancephoto_set
AbstractPhotoModelParaSet
type structclayer
CanopyLayer
type of structenvir
AirLayer
type structsm
OSMWang
type stomatal model
Land.StomataModels.prognostic_gsw!
— Functionprognostic_gsw!(
clayer::CanopyLayer{FT},
envir::AirLayer{FT},
sm::EmpiricalStomatalModel{FT},
β::FT,
Δt::FT
) where {FT<:AbstractFloat}
prognostic_gsw!(
photo_set::AbstractPhotoModelParaSet{FT},
clayer::CanopyLayer{FT},
hs::LeafHydraulics{FT},
envir::AirLayer{FT},
sm::OSMWang{FT},
Δt::FT
) where {FT<:AbstractFloat}
Update g_sw prognostically, given
clayer
ACanopyLayer
type structenvir
AirLayer
type environmental conditionssm
EmpiricalStomatalModel
orOSMWang
type stomatal modelβ
Tune factor to stomatal g1. 1 for AbstractBetaV modeΔt
Time interval for prognostic stomatal conductancephoto_set
AbstractPhotoModelParaSet
type photosynthesis model, currently supportsOSMWang
model onlyhs
Leaf hydraulic system