runread_pmodel_f function

Run the P-model

Run the P-model

Runs the P-model and loads output in once.

runread_pmodel_f(drivers, par, makecheck = TRUE, parallel = FALSE, ncores = 1)

Arguments

  • drivers: A nested data frame with one row for each site and columns named according to the arguments of function run_pmodel_f_bysite, namely sitename, params_siml, site_info and forcing.

  • par: A named list of free (calibratable) model parameters.

    • kphio: The quantum yield efficiency at optimal temperature φ0\varphi_0, in mol mol1^{-1}. When temperature dependence is used, it corresponds to the multiplicative parameter cc (see Details).
    • kphio_par_a: The shape parameter aa of the temperature-dependency of quantum yield efficiency (see Details). To disable the temperature dependence, set kphio_par_a = 0.
    • kphio_par_b: The optimal temperature parameter bb of the temperature dependent quantum yield efficiency (see Details), in o^oC.
    • soilm_thetastar: The threshold parameter θ\theta^{*} in the soil moisture stress function (see Details), given in mm. To turn off the soil moisture stress, set soilm_thetastar = 0.
    • soilm_betao: The intercept parameter β0\beta_{0} in the soil moisture stress function (see Details). This is the parameter calibrated in Stocker et al. 2020 GMD.
    • beta_unitcostratio: The unit cost of carboxylation, corresponding to β=b/a\beta = b / a' in Eq. 3 of Stocker et al. 2020 GMD.
    • rd_to_vcmax: Ratio of Rdark (dark respiration) to Vcmax25.
    • tau_acclim: Acclimation time scale of photosynthesis, in days.
    • kc_jmax: Parameter for Jmax cost ratio (corresponding to c^* in Stocker et al. 2020 GMD).
  • makecheck: A logical specifying whether checks are performed to verify forcings. Defaults to TRUE.

  • parallel: A logical specifying whether simulations are to be parallelised (sending data from a certain number of sites to each core). Defaults to FALSE.

  • ncores: An integer specifying the number of cores used for parallel computing (by default ncores = 2).

Returns

A data frame (tibble) with one row for each site, site information stored in the nested column site_info and outputs stored in the nested column data. See run_pmodel_f_bysite for a detailed description of the outputs.

Details

Depending on the input model parameters, it's possible to run the different P-model setups presented in Stocker et al. 2020 GMD. The P-model version implemented in this package allows more flexibility than the one presented in the paper, with the following functions:

The temperature dependence of the quantum yield efficiency is given by:

φ0(T)=c(1+a(Tb)2)\varphi_0 (T) = c (1 + a (T - b)^2 ) if 0<c(1+a(Tb)2)<10 < c (1 + a (T - b)^2 ) < 1,

φ0(T)=0\varphi_0 (T) = 0 if c(1+a(Tb)2)0 c (1 + a (T - b)^2 ) \leq 0, and

φ0(T)=1\varphi_0 (T) = 1 if c(1+a(Tb)2)1 c (1 + a (T - b)^2 ) \geq 1.

The ORG setup can be reproduced by setting kphio_par_a = 0

and calibrating the kphio parameter only. The BRC setup (which calibrates cL=aLbL4c_L = \frac{a_L b_L}{4} in Eq. 18) is more difficult to reproduce, since the temperature-dependency has been reformulated and a custom cost function would be necessary for calibration. The new parameters are related to cLc_L as follows:

a=0.0004919819a = -0.0004919819

b=32.35294b = 32.35294

c=0.6910823cLc = 0.6910823 c_L

The soil moisture stress is implemented as

c("beta(theta)=fracbeta01theta2\n\\beta(\\theta) = \\frac{\\beta_0 - 1}{{\\theta^{*}}^2} \n", "(thetatheta)2+1 (\\theta - \\theta^{*})^2 + 1") if 0θθ 0 \leq \theta \leq \theta^{*} and

β(θ)=1\beta(\theta) = 1 if θ>θ \theta > \theta^{*}.

In Stocker et al. 2020 GMD, the threshold plant-available soil water is set as θ\theta^{*}

= 0.6 * whc where whc is the site's water holding capacity. Also, the β\beta reduction at low soil moisture (β0=β(0)\beta_0 = \beta(0)) was parameterized as a linear function of mean aridity (Eq. 20 in Stocker et al. 2020 GMD) but is considered a constant model parameter in this package. Hence, the FULL calibration setup cannot be exactly replicated.

Examples

# Define model parameter values from previous work params_modl <- list( kphio = 0.04998, # setup ORG in Stocker et al. 2020 GMD kphio_par_a = 0.0, # disable temperature-dependence of kphio kphio_par_b = 1.0, soilm_thetastar = 0.6 * 240, # old setup with soil moisture stress soilm_betao = 0.0, beta_unitcostratio = 146.0, rd_to_vcmax = 0.014, # from Atkin et al. 2015 for C3 herbaceous tau_acclim = 30.0, kc_jmax = 0.41 ) # Run the model for these parameters and the example drivers output <- rsofun::runread_pmodel_f( drivers = rsofun::p_model_drivers, par = params_modl) output_vcmax25 <- rsofun::runread_pmodel_f( drivers = rsofun::p_model_drivers_vcmax25, par = params_modl)
  • Maintainer: Benjamin Stocker
  • License: GPL-3
  • Last published: 2024-11-28