Soil Biogeochemistry
This component model is available for use, but is still under development and is not yet fully debugged. Note that errors in this component do not propagate back to other component models.
Model Structure
ClimaLand.Soil.Biogeochemistry.SoilCO2Model — Type
SoilCO2ModelA model for simulating the production and transport of CO₂ in the soil with dynamic source and diffusion terms.
ClimaLand v1: SoilCO2 is still under testing; in particular, in global runs, an instability appears in some columns, and the prognostic equation does not enforce the positivity of CO2.
parameters: the parameter setdomain: the soil domain, using ClimaCore.Domainsboundary_conditions: the boundary conditions, of type NamedTuplesources: A tuple of sources, each of type AbstractSourcedrivers: Drivers
Parameter Structure
ClimaLand.Soil.Biogeochemistry.SoilCO2ModelParameters — Type
SoilCO2ModelParameters{FT <: AbstractFloat, PSE}A struct for storing parameters of the SoilCO2Model.
All of these parameters are currently treated as global constants.
D_ref: Diffusion coefficient for CO₂ in air at standard temperature and pressure (m² s⁻¹)D_liq: Diffusivity of soil C substrate in liquid (unitless)α_sx: Pre-exponential factor (kg C m-3 s-1)Ea_sx: Activation energy (J mol-1)kM_sx: Michaelis constant (kg C m-3)kM_o2: Michaelis constant for O2 (m3 m-3)O2_f_atm: Volumetric fraction of O₂ in atmospheric air (reference value for boundary condition), dimensionlessD_oa: Diffusion coefficient of oxygen in air, dimensionlessp_sx: Fraction of soil carbon that is considered soluble, dimensionlessM_C: Molar mass of carbon (kg/mol)M_O2: Molar mass of oxygen (kg/mol)earth_param_set: Physical constants used Clima-wide
ClimaLand.Soil.Biogeochemistry.SoilCO2ModelParameters — Method
SoilCO2ModelParameters(toml_dict::CP.ParamDict)SoilCO2ModelParameters provides a constructor using the TOML dict. Keywords arguments can be used to directly override any parameters.
Model-specific Types
ClimaLand.Soil.Biogeochemistry.MicrobeProduction — Type
MicrobeProduction{FT} <: AbstractCarbonSource{FT}Struct for the microbe production of CO2, appearing as a source term in the differential equation.
ClimaLand.Soil.Biogeochemistry.SoilCO2FluxBC — Type
SoilCO2FluxBC <: ClimaLand.AbstractBCA container holding the CO2 flux boundary condition, which is a function f(p,t), where p is the auxiliary state vector.
ClimaLand.Soil.Biogeochemistry.SoilCO2StateBC — Type
SoilCO2StateBC <: ClimaLand.AbstractBCA container holding the CO2 state boundary condition (kg CO2 m−3), which is a function f(p,t), where p is the auxiliary state vector.
ClimaLand.Soil.Biogeochemistry.AtmosCO2StateBC — Type
AtmosCO2StateBC <: ClimaLand.AbstractBCSet the CO2 concentration to the atmospheric one.
ClimaLand.Soil.Biogeochemistry.AtmosO2StateBC — Type
AtmosO2StateBC{FT} <: ClimaLand.AbstractBCSet the O2 mass concentration to the atmospheric one. Stores physical constants needed for the boundary flux calculation.
R: Universal gas constant (J/(mol·K))M_O2: Molar mass of oxygen (kg/mol)O2_f_atm: Atmospheric O2 volumetric fraction (dimensionless)
ClimaLand.Soil.Biogeochemistry.AbstractSoilDriver — Type
AbstractSoilDriverAn abstract type for drivers of soil CO2 production and diffusion. These are soil temperature, soil moisture, root carbon, soil organic matter and microbe carbon, and atmospheric pressure. Soil temperature and moisture, as well as soc, vary in space (horizontally and vertically) and time. Atmospheric pressure vary in time (defined at the surface only, not with depth).
ClimaLand.Soil.Biogeochemistry.SoilDrivers — Type
SoilDriversA container which passes in the soil drivers to the biogeochemistry model. These drivers are either of type Prescribed (for standalone mode) or Prognostic (for running with a prognostic model for soil temp and moisture).
met: Soil temperature and moisture drivers - Prescribed or Prognosticatmos: Prescribed or coupled atmospheric variables
ClimaLand.Soil.Biogeochemistry.PrescribedMet — Type
PrescribedMet <: AbstractSoilDriverA container which holds the prescribed functions for soil temperature and moisture.
This is meant for use when running the biogeochemistry model in standalone mode, without a prognostic soil model.
temperature: The temperature of the soil, of the form f(z::FT,t) where FT <: AbstractFloatvolumetric_liquid_fraction: Soil moisture, of the form f(z::FT,t) FT <: AbstractFloatν: Soil porosity (m³ m⁻³)θ_a100: Air-filled porosity at soil water potential of -100 cm H₂O (~ 10 Pa)b: Absolute value of the slope of the line relating log(ψ) versus log(S) (unitless)
Functions of State
ClimaLand.Soil.Biogeochemistry.volumetric_air_content — Function
volumetric_air_content(θ_w::FT,
ν::FT,
) where {FT}Computes the volumetric air content (θ_a) in the soil, which is related to the total soil porosity (ν) and volumetric soil water content (θ_w = θ_l+θ_i).
ClimaLand.Soil.Biogeochemistry.co2_diffusivity — Function
co2_diffusivity(
T_soil::FT,
θ_w::FT,
P_sfc::FT,
θ_a100::FT,
b::FT,
ν::FT,
params::SoilCO2ModelParameters{FT},
) where {FT}Computes the diffusivity of CO₂ within the soil (D).
First, D0 is computed using the temperature within the soil (T_soil in K) and pressure at the surface of the soil (P_sfc in Pa), using reference values of T_ref and P_ref (273 K and 101325 Pa). Here, θ_a is the volumetric air content and θ_a100 is the volumetric air content at a soil water potential of 100cm, and b is the pore size distribution of the soil.
This parameterization is from Ryan et al., GMD 11, 1909-1928, 2018, https://doi.org/10.5194/gmd-11-1909-2018.
ClimaLand.Soil.Biogeochemistry.microbe_source — Function
microbe_source(T_soil::FT,
θ_l::FT,
Csom::FT,
O2_avail::FT,
params::SoilCO2ModelParameters{FT}
) where {FT}Computes the CO₂ production in the soil by microbes, in depth and time (kg C / m^3/s), using the Dual Arrhenius Michaelis Menten model (Davidson et al., 2012). O2_avail is a dimensionless O₂ availability metric that accounts for tortuosity effects.
ClimaLand.Soil.Biogeochemistry.o2_availability — Function
o2_availability(O2_f::FT,
θ_a::FT,
D_oa::FT,
) where {FT}Computes the dimensionless O₂ availability for microbial kinetics using the Millington-Quirk tortuosity model.
The O2 availability accounts for diffusion limitations in porous media: O2avail = Doa * O2f * θa^(4/3)
where:
- O2_f: volumetric fraction of O2 in air (dimensionless, ~0.21)
- θ_a: volumetric air content (m³ air / m³ soil)
- D_oa: oxygen diffusion coefficient in air (dimensionless)
- θ_a^(4/3): Millington-Quirk tortuosity factor
This is used in Michaelis-Menten kinetics for microbial respiration.
ClimaLand.Soil.Biogeochemistry.o2_concentration — Function
o2_concentration(O2_f::FT,
T_soil::FT,
P_sfc::FT,
params::SoilCO2ModelParameters{FT},
) where {FT}Computes the O₂ mass concentration in air (kg O2/m³ air) from the volumetric fraction O2_f, using the ideal gas law.
The O2 mass concentration in the air phase is: ρO2air = O2f * P * MO2 / (R * T)
where:
- O2_f : volumetric fraction of O2 in air (dimensionless, ~0.21)
- P: pressure (Pa)
- M_O2: molar mass of O2 (kg/mol) - from parameters
- R: universal gas constant (J/(mol·K)) - from ClimaParams
- T: temperature (K)
Note: This returns concentration per m³ of air, not per m³ of soil. For diffusion in soil, the effective concentration per m³ of soil would be θa * ρO2_air, but that multiplication is handled separately in the diffusion equation.
ClimaLand.Soil.Biogeochemistry.o2_fraction_from_concentration — Function
o2_fraction_from_concentration(ρ_O2_air::FT,
T_soil::FT,
P_sfc::FT,
params::SoilCO2ModelParameters{FT},
) where {FT}Computes the O₂ volumetric fraction (dimensionless) from the O₂ mass concentration in air, using the ideal gas law. This is the inverse of o2_concentration.
The O2 volumetric fraction is: O2f =ρO2air * R * T / (P * MO2)
where:
- ρO2air: O2 mass concentration in air (kg O2/m³ air)
- P: pressure (Pa)
- M_O2: molar mass of O2 (kg/mol) - from parameters
- R: universal gas constant (J/(mol·K)) - from ClimaParams
- T: temperature (K)
Extendible Functions
ClimaLand.Soil.Biogeochemistry.soil_moisture — Function
soil_moisture(driver::PrognosticSoil, p, Y, t, z)Returns the volumetric liquid fraction, computed by the soil model from the prognostic liquid and ice fractions.
soil_moisture(driver::PrescribedMet, p, Y, t, z)Returns the soil moisture at location (z) and time (t) for the prescribed soil case.
ClimaLand.Soil.Biogeochemistry.soil_temperature — Function
soil_temperature(driver::PrognosticSoil, p, Y, t, z)Returns the prognostic soil temperature.
soil_temperature(driver::PrescribedMet, p, Y, t, z)Returns the soil temperature at location (z) and time (t) for the prescribed soil case.