Changelog
Source:NEWS.md
marlin 1.1.1
Behavior Changes
The default youngest age (
min_age) tracked bycreate_critter()/Fish$new()is now one time step (1 / seasons) rather than0. Because recruits are deposited at the youngest age after the population is aged, the youngest cohort is already one time step removed from the spawning pool, so age 0 (“at birth”) was never really represented; starting at one time step is more consistent with that, keeps the extrapolated (below the Lorenzen fitting range) age-0 natural mortality out of the model, and makes per-recruit quantities comparable with age-1-indexed assessment frameworks. Passmin_age = 0to recover the previous behavior. Existing simulations will see a shifted age vector and, with default Lorenzen M, somewhat different absolute per-recruit quantities (this does not move SPR- or F_msy-type reference points).Lorenzen natural mortality (
lorenzen_m = TRUE, the default) is now anchored so that the mean M over the adult age range equals the suppliedm, rather than pinningmat the asymptotic (largest/oldest) size. A single reportedmis therefore interpreted as an average adult rate — consistent with howtmax- and growth-based empirical M estimators are derived, and analogous to the age-range Lorenzen option in Stock Synthesis (Powers 2014, ICES J. Mar. Sci. 71:1629). The newlorenzen_ref_ageargument tocreate_critter()/Fish$new()sets the lower age bound of that range (defaults to the age at maturity). Existing simulations using the default Lorenzen M will produce slightly different M-at-age and, in turn, unfished equilibria and tuned catchabilities.
Bug Fixes
-
Fish$plot_movement()no longer errors on its first call in a fresh session (e.g. on a critter restored viareadRDS()).Matrixis now a declared dependency, so its S4 methods are registered when marlin loads, and the plot-time multiply densifies the (small) movement matrices to avoid relying on those methods at all.
marlin 1.0.0
Breaking Changes
Travel costs are now set by
travel_fraction, which species the proportion of the total costs that come from travel. cost_per_distance is now deprecated and may cause breaksOld open access parameters no longer work. see
?create_fleetfor new parameters