Vegetation carbon dynamics
This page is a work in progress. If you have any questions or notice any errors, please raise an issue.
Overview
Gross primary productivity (GPP) is the total carbon uptake by plants through photosynthesis. A fraction of this carbon is lost to the atmosphere through autotrophic respiration. The remainder is net primary productivity (NPP), which is then partitioned through carbon allocation among the different plant compartments, such as leaves, stems, and roots (often referred to as carbon pools). At the same time, carbon is removed from these pools through turnover processes such as litterfall, mortality, and disturbances.
Terrarium.AbstractVegetationCarbonDynamics — Type
abstract type AbstractVegetationCarbonDynamics{NF} <: Terrarium.AbstractProcess{NF}Base type for vegetation carbon dynamics schemes.
subtypes(Terrarium.AbstractVegetationCarbonDynamics)1-element Vector{Any}:
PALADYNCarbonDynamicsPALADYN carbon dynamics
Terrarium.PALADYNCarbonDynamics — Type
struct PALADYNCarbonDynamics{NF} <: Terrarium.AbstractVegetationCarbonDynamics{NF}Vegetation carbon dynamics implementation following PALADYN (Willeit 2016) but considering only the sum of the vegetation carbon pools. The subsequent splitting into Cleaf, Cstem, C_root is not implemented for now.
Authors: Maha Badri
Properties:
SLA::Any: Specific leaf area (Kattge et al. 2011) [m²/kgC], PFT specificawl::Any: Allometric coefficient, modified from Cox 2001 to account for bwl=1 [kgC/m²], PFT specificLAI_min::Any: Minimum Leaf Area Index modified from Clark et al. 2011 [m²/m²], PFT specificLAI_max::Any: Maximum Leaf Area Index modified from Clark et al. 2011 [m²/m²], PFT specificγL::Any: Leaf turnover rate (Kattge et al. 2011) [1/year], PFT specificγR::Any: Root turnover rate [1/year], PFT specificγS::Any: Stem turnover rate modified from Clark et al. 2011 [1/year], PFT specific
variables(PALADYNCarbonDynamics(Float32))Variables
├─ Prognostic:
├── carbon_vegetation [kg m^-2] on XY{Center, Center}
├─ Auxiliary:
├── balanced_leaf_area_index [-] on XY{Center, Center}
├─ Inputs:
├── net_primary_production [kg m^-2 s^-1] on XY{Center, Center}
├─ Namespaces:
This implementation is based on PALADYN [4], in which the temporal evolution of the total vegetation carbon pool $C_{\text{veg}}$ for each PFT is described by an ordinary differential equation, where $C_{\text{veg}}$ is the single prognostic variable. The partitioning of $C_{\text{veg}}$ into the different carbon pools (leaf, stem, and root) is handled afterward through fixed allometric relationships (not yet implemented).
\[\begin{equation} \frac{d C_{\text{veg}}}{dt} = \left(1-\lambda_{\text{NPP}}\right)\,\text{NPP} - \Lambda_{\text{loc}} \end{equation}\]
where $\lambda_{\text{NPP}}$ is a dimensionless factor ranging from 0 to 1 that determines how NPP is partitioned between the spatial expansion of a PFT and growth of that PFT over its existing vegetated area, and $\Lambda_{\text{loc}}$ is the local litterfall rate, computed as follows for evergreen PFTs:
\[\begin{equation} \Lambda_{\text{loc}} = \left(\frac{\gamma_L}{\text{SLA}} + \frac{\gamma_R}{\text{SLA}} + \gamma_S\,a_{wl}\right) \text{LAI}_b \end{equation}\]
where $\gamma_L$, $\gamma_R$, and $\gamma_S$ are the leaf, root, and stem turnover rates respectively.
\[\lambda_{\text{NPP}}\]
is computed from the balanced leaf area index $\text{LAI}_b$ relative to the PFT-specific threshold values $\text{LAI}_{\text{min}}$ and $\text{LAI}_{\text{max}}$. Low values of $\text{LAI}_b$ favor allocation of NPP to local growth, while high values favor allocation to spatial expansion. Accordingly, $\lambda_{\text{NPP}}$ is set to 0 below the lower threshold, to 1 above the upper threshold, and varies linearly between the two thresholds.
\[\begin{equation} \lambda_{\text{NPP}} = \begin{cases} 0 & \text{if } \text{LAI}_b < \text{LAI}_{\min} \\ \frac{\text{LAI}_b - \text{LAI}_{\min}}{\text{LAI}_{\max} - \text{LAI}_{\min}} & \text{if } \text{LAI}_{\min} \leq \text{LAI}_b \leq \text{LAI}_{\max} \\ 1 & \text{if } \text{LAI}_b > \text{LAI}_{\max} \end{cases} \end{equation}\]
where $\text{LAI}_b$ is the balanced leaf area index that would be reached if the plant were in full leaf. The actual LAI is computed by the phenology model (see Phenology).
The balanced leaf area index $\text{LAI}_b$ is related to the total vegetation carbon pool $C_{\text{veg}}$ through the following equation derived from allometric relationships:
\[\begin{equation} C_{\text{veg}} = 2 \frac{\text{LAI}_b}{\text{SLA}} + a_{wl}\,\text{LAI}_b^{b_{wl}} \end{equation}\]
where $\text{SLA}$ is the specific leaf area, and $a_{wl}$ and $b_{wl}$ are PFT-dependent allometric coefficients.
In PALADYN, $b_{wl}=1$, which simplifies this relationship to
\[\begin{equation} C_{\text{veg}} = \left(\frac{2}{\text{SLA}} + a_{wl}\right) \text{LAI}_b \end{equation}\]
Therefore, $\text{LAI}_b$ can be diagnosed from the total vegetation carbon pool $C_{\text{veg}}$ as follows
\[\begin{equation} \text{LAI}_b = \frac{C_{\text{veg}}}{\frac{2}{\text{SLA}} + a_{wl}} \end{equation}\]
Process interface
Terrarium.compute_auxiliary! — Method
compute_auxiliary!(
state,
grid,
vegcarbon_dynamics::PALADYNCarbonDynamics,
args...
)
Terrarium.compute_tendencies! — Method
compute_tendencies!(
state,
grid,
vegcarbon_dynamics::PALADYNCarbonDynamics,
args...
)
Methods
Terrarium.compute_LAI_b — Function
compute_LAI_b(vegcarbon_dynamics, C_veg)
Computes LAI_b, the balanced Leaf Area Index based on the vegetation carbon pool C_veg (assuming with bwl = 1), Eqs. 76-79, PALADYN (Willeit 2016).
Terrarium.compute_λ_NPP — Function
compute_λ_NPP(vegcarbon_dynamics, LAI_b)
Computes λ_NPP,a factor determining the partitioning of NPP between increase of vegetation carbon of the existing vegetated area and spreading of the given PFT based on the balanced Leaf Area Index LAI_b, Eq. 74, PALADYN (Willeit 2016).
Terrarium.compute_Λ_loc — Function
compute_Λ_loc(vegcarbon_dynamics, LAI_b)
Computes the local litterfall rate Λ_loc based on the balanced Leaf Area Index LAI_b (assuming evergreen PFTs), Eq. 75, PALADYN (Willeit 2016).
Terrarium.compute_C_veg_tend — Function
compute_C_veg_tend(vegcarbon_dynamics, LAI_b, NPP)
Computes the C_veg tendency based on NPP and the balanced Leaf Area Index LAI_b, Eq. 72, PALADYN (Willeit 2016)
Kernel functions
Terrarium.compute_veg_carbon_tendency — Function
compute_veg_carbon_tendency(i, j, grid, fields, vegcarbon::AbstractVegetationCarbonDynamics)Cell-level vegetation-carbon tendency computation. Implementations compute the tendency for the total vegetation carbon pool at the given index i, j.
Terrarium.compute_veg_carbon_auxiliary! — Function
compute_veg_carbon_auxiliary!(
out,
i,
j,
grid,
fields,
vegcarbon_dynamics::PALADYNCarbonDynamics
)
Mutating wrapper for compute_LAI_b that stores the result in out.balanced_leaf_area_index.
Terrarium.compute_veg_carbon_tendencies! — Function
compute_veg_carbon_tendencies!(
tend,
i,
j,
grid,
fields,
vegcarbon_dynamics::PALADYNCarbonDynamics
)
Calls compute_veg_carbon_tendency and stores the result in out.
References
- [4]
- M. Willeit and A. Ganopolski. PALADYN v1.0, a Comprehensive Land Surface–Vegetation–Carbon Cycle Model of Intermediate Complexity. Geoscientific Model Development 9, 3817–3857 (2016).