SoilPlantAirContinuum
Core function
SoilPlantAirContinuum.initialize!
— Functioninitialize!(spac::Union{MonoMLGrassSPAC{FT}, MonoMLPalmSPAC{FT}, MonoMLTreeSPAC{FT}}) where {FT<:AbstractFloat}
Initialize the SPAC, given
spac
MonoMLGrassSPAC
,MonoMLPalmSPAC
, orMonoMLTreeSPAC
SPAC
SoilPlantAirContinuum.soil_plant_air_continuum!
— FunctionThis function runs the model using the following steps:
- Run canopy RT model
- Run hydraulic model
- Run photosynthesis model
- Run canopy fluorescence model
- Run soil water and energy budget (calculate ∂Θ∂t and ∂e∂t only)
- Run leaf stomatal conductances (calculate ∂g∂t only)
- Run leaf energy budget (calculate ∂T∂t only)
- Run time stepper (using ∂X∂t * δt, and make sure δt is not too high)
This function is supposed to have the highest hierarchy, and should support all SPAC types defined in ClimaCache.jl. Note to update the water flow profile when initializing the SPAC.
SoilPlantAirContinuum.soil_plant_air_continuum!
— Methodsoil_plant_air_continuum!(spac::Union{MonoMLGrassSPAC, MonoMLPalmSPAC, MonoMLTreeSPAC{FT}}, δt::FT; update::Bool = false, θ_on::Bool = true, t_on::Bool = true) where {FT<:AbstractFloat}
soil_plant_air_continuum!(spac::Union{MonoMLGrassSPAC, MonoMLPalmSPAC, MonoMLTreeSPAC{FT}}; update::Bool = false) where {FT<:AbstractFloat}
Run SPAC model and move forward in time with time stepper controller, given
spac
MonoMLGrassSPAC
,MonoMLPalmSPAC
, orMonoMLTreeSPAC
SPACδt
Time step (if not given, solve for steady state solution)update
If true, update leaf xylem legacy effectθ_on
If true, soil water budget is on (set false to run sensitivity analysis or prescribing mode)t_on
If true, plant energy budget is on (set false to run sensitivity analysis or prescribing mode)
SoilPlantAirContinuum.adjusted_time
— Functionadjusted_time(spac::Union{MonoMLGrassSPAC{FT}, MonoMLPalmSPAC{FT}, MonoMLTreeSPAC{FT}}, δt::FT; θ_on::Bool = true, t_on::Bool = true) where {FT<:AbstractFloat}
Return adjusted time that soil does not over saturate or drain, given
spac
MonoMLGrassSPAC
,MonoMLPalmSPAC
, orMonoMLTreeSPAC
SPACδt
Time stepθ_on
If true, soil water budget is on (set false to run sensitivity analysis or prescribing mode)t_on
If true, plant energy budget is on (set false to run sensitivity analysis or prescribing mode)
SoilPlantAirContinuum.time_stepper!
— Functiontime_stepper!(spac::Union{MonoMLGrassSPAC{FT}, MonoMLPalmSPAC{FT}, MonoMLTreeSPAC{FT}}, δt::FT; update::Bool = false, θ_on::Bool = true, t_on::Bool = true) where {FT<:AbstractFloat}
time_stepper!(spac::Union{MonoMLGrassSPAC{FT}, MonoMLPalmSPAC{FT}, MonoMLTreeSPAC{FT}}; update::Bool = false) where {FT<:AbstractFloat}
Move forward in time for SPAC with time stepper controller, given
spac
MonoMLGrassSPAC
,MonoMLPalmSPAC
, orMonoMLTreeSPAC
SPACδt
Time step (if not given, solve for steady state solution)update
If true, update leaf xylem legacy effectθ_on
If true, soil water budget is on (set false to run sensitivity analysis or prescribing mode)t_on
If true, plant energy budget is on (set false to run sensitivity analysis or prescribing mode)
Update SPAC
SoilPlantAirContinuum.update!
— FunctionThis function updates the environmental conditions and the soil-plant-air-continuum. Supported functionalities are for
- AirLayer
- SoilPlantAirContinuum
SoilPlantAirContinuum.update!
— Methodupdate!(air::AirLayer{FT};
p_CO₂::Union{Number,Nothing} = nothing,
p_H₂O::Union{Number,Nothing} = nothing,
rh::Union{Number,Nothing} = nothing,
t::Union{Number,Nothing} = nothing,
vpd::Union{Number,Nothing} = nothing,
wind::Union{Number,Nothing} = nothing
) where {FT<:AbstractFloat}
Update the environmental conditions (such as saturated vapor pressure and relative humidity) of the air surrounding the leaf, given
air
AirLayer
type structurep_CO₂
CO₂ partial pressure inPa
. Optional, default is nothingp_H₂O
Vapor pressure inPa
. Optional, default is nothingrh
Relatibe humidity (fraction). Optional, default is nothingt
Air temperature inK
. Optional, default is nothingvpd
Vapor pressure deficitPa
. Optional, default is nothingwind
Wind speed inm s⁻¹
. Optional, default is nothing
Measures
SoilPlantAirContinuum.CNPP
— FunctionCNPP(spac::Union{MonoMLGrassSPAC{FT}, MonoMLPalmSPAC{FT}, MonoMLTreeSPAC{FT}}) where {FT<:AbstractFloat}
Return the canopy net primary productivity per ground area, given
spac
MonoMLGrassSPAC
,MonoMLPalmSPAC
, orMonoMLTreeSPAC
SPAC
SoilPlantAirContinuum.GPP
— FunctionGPP(spac::Union{MonoMLGrassSPAC{FT}, MonoMLPalmSPAC{FT}, MonoMLTreeSPAC{FT}}) where {FT<:AbstractFloat}
Return the gross primary productivity per ground area, given
spac
MonoMLGrassSPAC
,MonoMLPalmSPAC
, orMonoMLTreeSPAC
SPAC
SoilPlantAirContinuum.PPAR
— FunctionPPAR(spac::Union{MonoMLGrassSPAC{FT}, MonoMLPalmSPAC{FT}, MonoMLTreeSPAC{FT}}) where {FT<:AbstractFloat}
Return the canopy integrated PPAR per ground area, given
spac
MonoMLGrassSPAC
,MonoMLPalmSPAC
, orMonoMLTreeSPAC
SPAC
SoilPlantAirContinuum.T_VEG
— FunctionT_VEG(spac::Union{MonoMLGrassSPAC{FT}, MonoMLPalmSPAC{FT}, MonoMLTreeSPAC{FT}}) where {FT<:AbstractFloat}
Return the transpiration rate per ground area, given
spac
MonoMLGrassSPAC
,MonoMLPalmSPAC
, orMonoMLTreeSPAC
SPAC