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.SoilCO2ModelType
SoilCO2Model

A 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 set

  • domain: the soil domain, using ClimaCore.Domains

  • boundary_conditions: the boundary conditions, of type NamedTuple

  • sources: A tuple of sources, each of type AbstractSource

  • drivers: Drivers

source

Parameter Structure

ClimaLand.Soil.Biogeochemistry.SoilCO2ModelParametersType
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), dimensionless

  • D_oa: Diffusion coefficient of oxygen in air, dimensionless

  • p_sx: Fraction of soil carbon that is considered soluble, dimensionless

  • M_C: Molar mass of carbon (kg/mol)

  • M_O2: Molar mass of oxygen (kg/mol)

  • earth_param_set: Physical constants used Clima-wide

source

Model-specific Types

ClimaLand.Soil.Biogeochemistry.AtmosO2StateBCType
AtmosO2StateBC{FT} <: ClimaLand.AbstractBC

Set 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)

source
ClimaLand.Soil.Biogeochemistry.AbstractSoilDriverType
AbstractSoilDriver

An 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).

source
ClimaLand.Soil.Biogeochemistry.SoilDriversType
SoilDrivers

A 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 Prognostic

  • atmos: Prescribed or coupled atmospheric variables

source
ClimaLand.Soil.Biogeochemistry.PrescribedMetType
PrescribedMet <: AbstractSoilDriver

A 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 <: AbstractFloat

  • volumetric_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)

source

Functions of State

ClimaLand.Soil.Biogeochemistry.co2_diffusivityFunction
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.

source
ClimaLand.Soil.Biogeochemistry.microbe_sourceFunction
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.

source
ClimaLand.Soil.Biogeochemistry.o2_availabilityFunction
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.

source
ClimaLand.Soil.Biogeochemistry.o2_concentrationFunction
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.

source
ClimaLand.Soil.Biogeochemistry.o2_fraction_from_concentrationFunction
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)
source

Extendible Functions

ClimaLand.Soil.Biogeochemistry.soil_moistureFunction
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.

source
soil_moisture(driver::PrescribedMet, p, Y, t, z)

Returns the soil moisture at location (z) and time (t) for the prescribed soil case.

source
ClimaLand.Soil.Biogeochemistry.soil_temperatureFunction
soil_temperature(driver::PrognosticSoil, p, Y, t, z)

Returns the prognostic soil temperature.

source
soil_temperature(driver::PrescribedMet, p, Y, t, z)

Returns the soil temperature at location (z) and time (t) for the prescribed soil case.

source