
Compute mean length-at-age using the Schnute parameterization of VB growth
get_growth.RdUses the Schnute parameterization of the von Bertalanffy growth curve. Optionally reproduces Stock Synthesis (SS3) GrowthModel 3 (age-specific K), including its cumulative multipliers and plus-group approximation.
Usage
get_growth(
n_age,
A1,
A2,
L1,
L2,
log_k,
min_age = 1L,
log_k_mult = NULL,
k_mult_ages = NULL,
plus_group_adjust = FALSE
)Arguments
- n_age
Integer. Number of age classes.
- A1
Integer. Reference age for L1 (data).
- A2
Integer. Reference age for L2 (data).
- L1
Numeric. Length at age A1 (may be AD).
- L2
Numeric. Length at age A2 (may be AD).
- log_k
Numeric. VB growth coefficient (may be AD).
- min_age
Integer. Minimum age (default 1L).
- log_k_mult
Numeric vector (may be AD). Log K multipliers;
NULLor length zero retains the single-K curve.- k_mult_ages
Integer vector (data). Ages at which the multipliers apply, strictly increasing within the modeled ages and matching
log_k_mult.- plus_group_adjust
Logical (data). Apply SS3's oldest-age length approximation, independently of the multipliers (default
FALSE).
Value
Numeric vector of length n_age: mean length at each age
a = min_age, ..., min_age + n_age - 1.
Details
Multipliers apply cumulatively: K at age a is the base K times the product of all multipliers at ages less than or equal to a. The final K carries forward. Linf is derived from L1, L2, A1 and A2 using the oldest-age K; growth from age a to a+1 uses K at a. Consequently, with multipliers the curve need not pass through L2 at A2. A1 must be a modeled age for this option. Below A1, opal retains base-K exponential growth toward this Linf; SS3 instead uses a linear segment.
The plus-group approximation averages a linear increase from the oldest
length to Linf over a further max_age ages, with weights
exp(-0.2)^j, j = 0, ..., max_age. The fixed 0.2 is not mortality;
this option requires a positive integer oldest age.
log_k is the log rate per model age unit, whereas SS3 reads an
annual rate and scales by season duration. For a quarterly age step,
use log(K_SS3 * 3/12); multipliers are dimensionless. This
reimplementation is pinned to SS3 v3.24AB beginning-of-season lengths;
later SS3 versions may differ. CV interpolation is handled separately by
get_sd_at_age.
References
Methot, R.D. Jr. and Wetzel, C.R. (2013). Stock synthesis: A biological and statistical framework for fish stock assessment and fishery management. Fisheries Research 142: 86–99. doi:10.1016/j.fishres.2012.10.012 .
Stock Synthesis source, sections SS_Label_Info_16.2.2–16.2.4.1.4.