SoilPlantAirContinuum
Core function
SoilPlantAirContinuum.initialize! — Functioninitialize!(spac::Union{MonoMLGrassSPAC{FT}, MonoMLPalmSPAC{FT}, MonoMLTreeSPAC{FT}}) where {FT<:AbstractFloat}Initialize the SPAC, given
spacMonoMLGrassSPAC,MonoMLPalmSPAC, orMonoMLTreeSPACSPAC
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
spacMonoMLGrassSPAC,MonoMLPalmSPAC, orMonoMLTreeSPACSPACδtTime step (if not given, solve for steady state solution)updateIf true, update leaf xylem legacy effectθ_onIf true, soil water budget is on (set false to run sensitivity analysis or prescribing mode)t_onIf 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
spacMonoMLGrassSPAC,MonoMLPalmSPAC, orMonoMLTreeSPACSPACδtTime stepθ_onIf true, soil water budget is on (set false to run sensitivity analysis or prescribing mode)t_onIf 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
spacMonoMLGrassSPAC,MonoMLPalmSPAC, orMonoMLTreeSPACSPACδtTime step (if not given, solve for steady state solution)updateIf true, update leaf xylem legacy effectθ_onIf true, soil water budget is on (set false to run sensitivity analysis or prescribing mode)t_onIf 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
airAirLayertype structurep_CO₂CO₂ partial pressure inPa. Optional, default is nothingp_H₂OVapor pressure inPa. Optional, default is nothingrhRelatibe humidity (fraction). Optional, default is nothingtAir temperature inK. Optional, default is nothingvpdVapor pressure deficitPa. Optional, default is nothingwindWind 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
spacMonoMLGrassSPAC,MonoMLPalmSPAC, orMonoMLTreeSPACSPAC
SoilPlantAirContinuum.GPP — FunctionGPP(spac::Union{MonoMLGrassSPAC{FT}, MonoMLPalmSPAC{FT}, MonoMLTreeSPAC{FT}}) where {FT<:AbstractFloat}Return the gross primary productivity per ground area, given
spacMonoMLGrassSPAC,MonoMLPalmSPAC, orMonoMLTreeSPACSPAC
SoilPlantAirContinuum.PPAR — FunctionPPAR(spac::Union{MonoMLGrassSPAC{FT}, MonoMLPalmSPAC{FT}, MonoMLTreeSPAC{FT}}) where {FT<:AbstractFloat}Return the canopy integrated PPAR per ground area, given
spacMonoMLGrassSPAC,MonoMLPalmSPAC, orMonoMLTreeSPACSPAC
SoilPlantAirContinuum.T_VEG — FunctionT_VEG(spac::Union{MonoMLGrassSPAC{FT}, MonoMLPalmSPAC{FT}, MonoMLTreeSPAC{FT}}) where {FT<:AbstractFloat}Return the transpiration rate per ground area, given
spacMonoMLGrassSPAC,MonoMLPalmSPAC, orMonoMLTreeSPACSPAC