Skip to contents

Sets and validates the fishing inputs of a `sim_list`: fishing mortality, selectivity, catchability, observation error, and the age and length composition settings for the aggregate and population-specific data sources.

Usage

Setup_Sim_Fishing(
  sim_list,
  ln_sigmaC = array(log(0.02), dim = c(sim_list$n_regions, sim_list$n_yrs,
    sim_list$n_seas, sim_list$n_fish_fleets)),
  ln_sigmaC_pop = array(log(0.02), dim = c(sim_list$n_pop, sim_list$n_regions,
    sim_list$n_yrs, sim_list$n_seas, sim_list$n_fish_fleets)),
  ln_sigmaCAA = array(log(0.2), dim = c(sim_list$n_obs_ages, sim_list$n_sexes,
    sim_list$n_fish_fleets)),
  ln_sigmaDAA = array(log(0.2), dim = c(sim_list$n_obs_ages, sim_list$n_sexes,
    sim_list$n_fish_fleets)),
  UseCatchAA = array(0, dim = c(sim_list$n_regions, sim_list$n_yrs, sim_list$n_seas,
    sim_list$n_obs_ages, sim_list$n_sexes, sim_list$n_fish_fleets)),
  UseDiscardAA = array(0, dim = c(sim_list$n_regions, sim_list$n_yrs, sim_list$n_seas,
    sim_list$n_obs_ages, sim_list$n_sexes, sim_list$n_fish_fleets)),
  ObsCatchAA_SE = NULL,
  ObsDiscardAA_SE = NULL,
  CatchAA_Type = "spltRaggS",
  DiscardAA_Type = "spltRaggS",
  CatchAA_LikeType = "lognormal",
  DiscardAA_LikeType = "lognormal",
  CatchAA_sigma_form = "none",
  DiscardAA_sigma_form = "none",
  use_catch_aa = rep(0, sim_list$n_fish_fleets),
  use_discard_aa = rep(0, sim_list$n_fish_fleets),
  AgeObsCorr_catch = "iid",
  AgeObsCorr_discard = "iid",
  trans_rho_catch = NULL,
  trans_rho_catch_year = NULL,
  trans_rho_catch_us = NULL,
  trans_rho_discard = NULL,
  trans_rho_discard_year = NULL,
  trans_rho_discard_us = NULL,
  CatchAA_seas_Type = 0,
  DiscardAA_seas_Type = 0,
  UseCatchAA_pop = NULL,
  UseDiscardAA_pop = NULL,
  ln_sigmaCAA_pop = NULL,
  ln_sigmaDAA_pop = NULL,
  ObsCatchAA_pop_SE = NULL,
  ObsDiscardAA_pop_SE = NULL,
  CatchAA_pop_Type = "spltRaggS",
  DiscardAA_pop_Type = "spltRaggS",
  CatchAA_pop_LikeType = "lognormal",
  DiscardAA_pop_LikeType = "lognormal",
  CatchAA_pop_sigma_form = "none",
  DiscardAA_pop_sigma_form = "none",
  CatchAA_pop_seas_Type = 0,
  DiscardAA_pop_seas_Type = 0,
  AgeObsCorr_catch_pop = "iid",
  AgeObsCorr_discard_pop = "iid",
  trans_rho_catch_pop = NULL,
  trans_rho_catch_pop_year = NULL,
  trans_rho_catch_pop_us = NULL,
  trans_rho_discard_pop = NULL,
  trans_rho_discard_pop_year = NULL,
  trans_rho_discard_pop_us = NULL,
  catch_units = array(1, dim = c(sim_list$n_fish_fleets)),
  init_F_val = array(0, dim = c(sim_list$n_regions, sim_list$n_seas,
    sim_list$n_fish_fleets)),
  Fmort_input = array(0.1, dim = c(sim_list$n_regions, sim_list$n_yrs, sim_list$n_seas,
    sim_list$n_fish_fleets, sim_list$n_sims)),
  fish_sel_input,
  fish_q_input = array(1, dim = c(sim_list$n_regions, sim_list$n_yrs,
    sim_list$n_fish_fleets, sim_list$n_sims)),
  ObsFishIdx_SE = array(0.2, dim = c(sim_list$n_regions, sim_list$n_yrs, sim_list$n_seas,
    sim_list$n_fish_fleets)),
  ObsFishIdx_pop_SE = array(0.2, dim = c(sim_list$n_pop, sim_list$n_regions,
    sim_list$n_yrs, sim_list$n_seas, sim_list$n_fish_fleets)),
  fish_idx_type = array(1, dim = c(sim_list$n_regions, sim_list$n_fish_fleets)),
  fish_idx_ages = NULL,
  FishIdx_LikeType = rep(0, sim_list$n_fish_fleets),
  sigmaFishIdx_form = "fix",
  ln_sigmaFishIdx = NULL,
  sigmaFishIdx_pop_form = "fix",
  ln_sigmaFishIdx_pop = NULL,
  Catch_seas_Type = NULL,
  Catch_pop_seas_Type = NULL,
  FishIdx_seas_Type = NULL,
  FishIdx_pop_seas_Type = NULL,
  FishAgeComps_seas_Type = NULL,
  Discard_seas_Type = NULL,
  Discard_pop_seas_Type = NULL,
  FishLenComps_seas_Type = NULL,
  FishAgeComps_pop_seas_Type = NULL,
  FishLenComps_pop_seas_Type = NULL,
  FishAgeComps_discard_seas_Type = NULL,
  FishLenComps_discard_seas_Type = NULL,
  FishAgeComps_discard_pop_seas_Type = NULL,
  FishLenComps_discard_pop_seas_Type = NULL,
  seas_agg_slot = NULL,
  FishIdx_Cov = NULL,
  UseFishIdx = NULL,
  t_fish = array(0, dim = c(sim_list$n_regions, sim_list$n_seas, sim_list$n_fish_fleets)),
  comp_fish_caal_like = rep(999, sim_list$n_fish_fleets),
  ISS_Fish_caal = NULL,
  ln_Fish_caal_theta = NULL,
  ln_Fish_caal_theta_agg = NULL,
  Fish_caal_Type = array(999, dim = c(sim_list$n_yrs, sim_list$n_fish_fleets)),
  comp_fishage_like = rep(0, sim_list$n_fish_fleets),
  ISS_FishAgeComps = array(100, dim = c(sim_list$n_regions, sim_list$n_yrs,
    sim_list$n_seas, sim_list$n_sexes, sim_list$n_fish_fleets, sim_list$n_sims)),
  ln_FishAge_theta = array(log(1), dim = c(sim_list$n_regions, sim_list$n_sexes,
    sim_list$n_fish_fleets)),
  ln_FishAge_theta_agg = rep(log(1), sim_list$n_fish_fleets),
  FishAge_corr_pars_agg = rep(0.01, sim_list$n_fish_fleets),
  FishAge_corr_pars = array(0.01, dim = c(sim_list$n_regions, sim_list$n_sexes,
    sim_list$n_fish_fleets, 2)),
  FishAgeComps_Type = array(2, dim = c(sim_list$n_yrs, sim_list$n_fish_fleets)),
  comp_fishlen_like = rep(0, sim_list$n_fish_fleets),
  ISS_FishLenComps = array(100, dim = c(sim_list$n_regions, sim_list$n_yrs,
    sim_list$n_seas, sim_list$n_sexes, sim_list$n_fish_fleets, sim_list$n_sims)),
  ln_FishLen_theta = array(log(1), dim = c(sim_list$n_regions, sim_list$n_sexes,
    sim_list$n_fish_fleets)),
  ln_FishLen_theta_agg = rep(log(1), sim_list$n_fish_fleets),
  FishLen_corr_pars_agg = rep(0.01, sim_list$n_fish_fleets),
  FishLen_corr_pars = array(0.01, dim = c(sim_list$n_regions, sim_list$n_sexes,
    sim_list$n_fish_fleets, 2)),
  FishLenComps_Type = array(2, dim = c(sim_list$n_yrs, sim_list$n_fish_fleets)),
  comp_fishage_pop_like = rep(0, sim_list$n_fish_fleets),
  ISS_FishAgeComps_pop = array(100, dim = c(sim_list$n_pop, sim_list$n_regions,
    sim_list$n_yrs, sim_list$n_seas, sim_list$n_sexes, sim_list$n_fish_fleets,
    sim_list$n_sims)),
  ln_FishAge_pop_theta = array(log(1), dim = c(sim_list$n_pop, sim_list$n_regions,
    sim_list$n_sexes, sim_list$n_fish_fleets)),
  ln_FishAge_pop_theta_agg = array(log(1), dim = c(sim_list$n_pop,
    sim_list$n_fish_fleets)),
  FishAge_pop_corr_pars = array(0.01, dim = c(sim_list$n_pop, sim_list$n_regions,
    sim_list$n_sexes, sim_list$n_fish_fleets, 2)),
  FishAge_pop_corr_pars_agg = array(0.01, dim = c(sim_list$n_pop,
    sim_list$n_fish_fleets)),
  FishAgeComps_pop_Type = array(2, dim = c(sim_list$n_yrs, sim_list$n_fish_fleets)),
  comp_fishlen_pop_like = rep(0, sim_list$n_fish_fleets),
  ISS_FishLenComps_pop = array(100, dim = c(sim_list$n_pop, sim_list$n_regions,
    sim_list$n_yrs, sim_list$n_seas, sim_list$n_sexes, sim_list$n_fish_fleets,
    sim_list$n_sims)),
  ln_FishLen_pop_theta = array(log(1), dim = c(sim_list$n_pop, sim_list$n_regions,
    sim_list$n_sexes, sim_list$n_fish_fleets)),
  ln_FishLen_pop_theta_agg = array(log(1), dim = c(sim_list$n_pop,
    sim_list$n_fish_fleets)),
  FishLen_pop_corr_pars = array(0.01, dim = c(sim_list$n_pop, sim_list$n_regions,
    sim_list$n_sexes, sim_list$n_fish_fleets, 2)),
  FishLen_pop_corr_pars_agg = array(0.01, dim = c(sim_list$n_pop,
    sim_list$n_fish_fleets)),
  FishLenComps_pop_Type = array(2, dim = c(sim_list$n_yrs, sim_list$n_fish_fleets)),
  FishLenComps_sel = rep("age", sim_list$n_fish_fleets),
  fish_sel_l_input = NULL,
  ret_sel_l_input = NULL,
  ret_sel_input = array(1, dim = c(sim_list$n_pop, sim_list$n_regions, sim_list$n_yrs,
    sim_list$n_seas, sim_list$n_ages, sim_list$n_sexes, sim_list$n_fish_fleets,
    sim_list$n_sims)),
  dmr_input = array(0, dim = c(sim_list$n_regions, sim_list$n_yrs, sim_list$n_seas,
    sim_list$n_fish_fleets, sim_list$n_sims)),
  discard_units = array(3, dim = c(sim_list$n_fish_fleets)),
  ln_sigmaD = array(log(0.02), dim = c(sim_list$n_regions, sim_list$n_yrs,
    sim_list$n_seas, sim_list$n_fish_fleets)),
  ln_sigmaD_pop = array(log(0.02), dim = c(sim_list$n_pop, sim_list$n_regions,
    sim_list$n_yrs, sim_list$n_seas, sim_list$n_fish_fleets)),
  comp_fishage_discard_like = rep(0, sim_list$n_fish_fleets),
  ISS_FishAgeComps_discard = array(100, dim = c(sim_list$n_regions, sim_list$n_yrs,
    sim_list$n_seas, sim_list$n_sexes, sim_list$n_fish_fleets, sim_list$n_sims)),
  ln_FishAge_discard_theta = array(log(1), dim = c(sim_list$n_regions, sim_list$n_sexes,
    sim_list$n_fish_fleets)),
  ln_FishAge_discard_theta_agg = rep(log(1), sim_list$n_fish_fleets),
  FishAge_discard_corr_pars = array(0.01, dim = c(sim_list$n_regions, sim_list$n_sexes,
    sim_list$n_fish_fleets, 2)),
  FishAge_discard_corr_pars_agg = rep(0.01, sim_list$n_fish_fleets),
  FishAgeComps_discard_Type = array(2, dim = c(sim_list$n_yrs, sim_list$n_fish_fleets)),
  comp_fishlen_discard_like = rep(0, sim_list$n_fish_fleets),
  ISS_FishLenComps_discard = array(100, dim = c(sim_list$n_regions, sim_list$n_yrs,
    sim_list$n_seas, sim_list$n_sexes, sim_list$n_fish_fleets, sim_list$n_sims)),
  ln_FishLen_discard_theta = array(log(1), dim = c(sim_list$n_regions, sim_list$n_sexes,
    sim_list$n_fish_fleets)),
  ln_FishLen_discard_theta_agg = rep(log(1), sim_list$n_fish_fleets),
  FishLen_discard_corr_pars = array(0.01, dim = c(sim_list$n_regions, sim_list$n_sexes,
    sim_list$n_fish_fleets, 2)),
  FishLen_discard_corr_pars_agg = rep(0.01, sim_list$n_fish_fleets),
  FishLenComps_discard_Type = array(2, dim = c(sim_list$n_yrs, sim_list$n_fish_fleets)),
  comp_fishage_discard_pop_like = rep(0, sim_list$n_fish_fleets),
  ISS_FishAgeComps_discard_pop = array(100, dim = c(sim_list$n_pop, sim_list$n_regions,
    sim_list$n_yrs, sim_list$n_seas, sim_list$n_sexes, sim_list$n_fish_fleets,
    sim_list$n_sims)),
  ln_FishAge_discard_pop_theta = array(log(1), dim = c(sim_list$n_pop,
    sim_list$n_regions, sim_list$n_sexes, sim_list$n_fish_fleets)),
  ln_FishAge_discard_pop_theta_agg = array(log(1), dim = c(sim_list$n_pop,
    sim_list$n_fish_fleets)),
  FishAge_discard_pop_corr_pars = array(0.01, dim = c(sim_list$n_pop, sim_list$n_regions,
    sim_list$n_sexes, sim_list$n_fish_fleets, 2)),
  FishAge_discard_pop_corr_pars_agg = array(0.01, dim = c(sim_list$n_pop,
    sim_list$n_fish_fleets)),
  FishAgeComps_discard_pop_Type = array(2, dim = c(sim_list$n_yrs,
    sim_list$n_fish_fleets)),
  comp_fishlen_discard_pop_like = rep(0, sim_list$n_fish_fleets),
  ISS_FishLenComps_discard_pop = array(100, dim = c(sim_list$n_pop, sim_list$n_regions,
    sim_list$n_yrs, sim_list$n_seas, sim_list$n_sexes, sim_list$n_fish_fleets,
    sim_list$n_sims)),
  ln_FishLen_discard_pop_theta = array(log(1), dim = c(sim_list$n_pop,
    sim_list$n_regions, sim_list$n_sexes, sim_list$n_fish_fleets)),
  ln_FishLen_discard_pop_theta_agg = array(log(1), dim = c(sim_list$n_pop,
    sim_list$n_fish_fleets)),
  FishLen_discard_pop_corr_pars = array(0.01, dim = c(sim_list$n_pop, sim_list$n_regions,
    sim_list$n_sexes, sim_list$n_fish_fleets, 2)),
  FishLen_discard_pop_corr_pars_agg = array(0.01, dim = c(sim_list$n_pop,
    sim_list$n_fish_fleets)),
  FishLenComps_discard_pop_Type = array(2, dim = c(sim_list$n_yrs,
    sim_list$n_fish_fleets))
)

Arguments

sim_list

Simulation list holding `n_pop`, `n_regions`, `n_yrs`, `n_seas`, `n_ages`, `n_sexes`, `n_fish_fleets` and `n_sims`.

ln_sigmaC, ln_sigmaC_pop

Log-scale observation sd for total and population-specific catch, `n_regions x n_yrs x n_seas x n_fish_fleets` with a leading `n_pop` for the second. Default log(0.02).

ln_sigmaCAA, ln_sigmaDAA

Log-scale observation error for the at-age data sources, `n_obs_ages x n_sexes x n_fish_fleets`. The sex dim is required.

UseCatchAA, UseDiscardAA

Integer arrays `n_regions x n_yrs x n_seas x n_obs_ages x n_sexes x n_fish_fleets`, `1` where an at-age observation is drawn. The draws sit on the observed ages from `Setup_Sim_Dim`, read through `AgeingError_fish_input` the way the estimation model reads them. The sex dim is required: a data source summed over sexes has its flag in sex slot one.

ObsCatchAA_SE, ObsDiscardAA_SE

Reported standard errors shaped like the use arrays, read only when the data source's `sigma_form` asks for them.

CatchAA_Type, DiscardAA_Type

Which dims each fleet reports separately: `"agg"`, `"spltRaggS"` (default), `"aggRspltS"` or `"spltRspltS"`. A summed dim is drawn once, into slot one.

CatchAA_LikeType, DiscardAA_LikeType

`"lognormal"` (default) or `"normal"`, per fleet.

CatchAA_sigma_form, DiscardAA_sigma_form

Where the observation error comes from: `"none"` (default), `"data"`, `"est_additive"` or `"est_quadrature"`.

use_catch_aa, use_discard_aa

Integer vectors `n_fish_fleets`, `1` for fleets whose at-age data sources are drawn.

AgeObsCorr_catch, AgeObsCorr_discard

How each fleet's at-age residuals are correlated, as in [Setup_Mod_Catch_and_F()]: `"iid"` (default), `"1dar1"` across ages, `"us"` across ages, or `"2dar1"` across ages and the observed years. A correlated fleet's standardized residuals are drawn before the first year, so its years and ages are drawn together.

trans_rho_catch, trans_rho_catch_year, trans_rho_catch_us, trans_rho_discard, trans_rho_discard_year, trans_rho_discard_us

Unconstrained correlations under the estimation model's names and shapes: across ages and across years `[n_regions, n_sexes, n_fish_fleets]`, and the unstructured parameters `[n_pairs, n_regions, n_sexes, n_fish_fleets]` over pairs of observed ages. `NULL` (default) is zero.

CatchAA_seas_Type, DiscardAA_seas_Type, CatchAA_pop_seas_Type, DiscardAA_pop_seas_Type

Per fleet, `1` where the at-age observation is a year total, as `"aggSeas"` in [Setup_Mod_Catch_and_F()]: drawn once a year from every season summed, into the season its use flags name. `0` (default) draws each season.

UseCatchAA_pop, UseDiscardAA_pop, ln_sigmaCAA_pop, ln_sigmaDAA_pop, ObsCatchAA_pop_SE, ObsDiscardAA_pop_SE, CatchAA_pop_Type, DiscardAA_pop_Type, CatchAA_pop_LikeType, DiscardAA_pop_LikeType, CatchAA_pop_sigma_form, DiscardAA_pop_sigma_form

The population-specific at-age data sources, as the aggregated ones with a leading `n_pop` dim on the arrays: each population is drawn on its own from its own numbers, never summed over populations. `NULL` draws none.

AgeObsCorr_catch_pop, AgeObsCorr_discard_pop, trans_rho_catch_pop, trans_rho_catch_pop_year, trans_rho_catch_pop_us, trans_rho_discard_pop, trans_rho_discard_pop_year, trans_rho_discard_pop_us

Their correlation across ages, as the aggregated settings with a leading `n_pop` dim on the parameters.

catch_units

Catch units per fleet, 0 = abundance, 1 = biomass (default).

init_F_val

Initial fishing mortality, `n_regions x n_seas x n_fish_fleets`. Default 0.

Fmort_input

Fishing mortality, `n_regions x n_yrs x n_seas x n_fish_fleets x n_sims`. Default 0.1.

fish_sel_input

Fishery selectivity, `n_pop x n_regions x n_yrs x n_seas x n_ages x n_sexes x n_fish_fleets x n_sims`.

fish_q_input

Catchability, `n_regions x n_yrs x n_fish_fleets x n_sims`. Default 1.

ObsFishIdx_SE, ObsFishIdx_pop_SE

Observation sd for the fishery indices, `n_regions x n_yrs x n_seas x n_fish_fleets` with a leading `n_pop` for the second. Default 0.2.

fish_idx_type

Index type, 0 = abundance, 1 = biomass (default), `n_regions x n_fish_fleets`.

fish_idx_ages

Ages counted in each fleet's index total, a 0/1 array `n_ages x n_fish_fleets`, the estimation model's `fish_idx_ages`. `NULL` (default) counts every age.

FishIdx_LikeType

Error structure each fleet's index is drawn under: `"lognormal"` (0, default), `"normal"` (1) or `"mvn"` (2), matching the estimation model. An mvn fleet draws from `FishIdx_Cov` through a common-factor decomposition (see cov_to_factor) instead of `ObsFishIdx_SE`, and its population-specific data source stays lognormal.

sigmaFishIdx_form, sigmaFishIdx_pop_form

How the index sd combines the reported errors with an estimated part, as sigmaFishIdx_spec in Setup_Mod_FishIdx_and_Comps: `"fix"` (0, default) draws at `ObsFishIdx_SE`, `"est_additive"` (1) at `SE + sigma`, `"est_quadrature"` (2) at `sqrt(SE^2 + sigma^2)` and `"est_replace"` (3) at `sigma`. The reported errors stay in `ObsFishIdx_SE`, so a refit reading them estimates the same part.

ln_sigmaFishIdx, ln_sigmaFishIdx_pop

Log of the estimated part, one per fleet, read under a form other than `"fix"`. Default `NULL`.

Catch_seas_Type, Catch_pop_seas_Type, Discard_seas_Type, Discard_pop_seas_Type, FishIdx_seas_Type, FishIdx_pop_seas_Type, FishAgeComps_seas_Type, FishLenComps_seas_Type, FishAgeComps_pop_seas_Type, FishLenComps_pop_seas_Type, FishAgeComps_discard_seas_Type, FishLenComps_discard_seas_Type, FishAgeComps_discard_pop_seas_Type, FishLenComps_discard_pop_seas_Type

Whether the operating model reports a data source once a season (`"spltSeas"`, the default) or once a year as a season total (`"aggSeas"`), one value for every fleet or one per fleet. An annual total is written into the season `seas_agg_slot` names, season one by default, with the other seasons left at zero and the observation error applied once to that total. A discard fraction is the year's discards over the year's catch, and a composition is drawn from the numbers summed over the year. An estimation model reading it should mark the same season in its `Use` array and set the matching argument in Setup_Mod_Catch_and_F or Setup_Mod_FishIdx_and_Comps.

seas_agg_slot

Named list, by data source (`"Catch"`, `"FishIdx_pop"`, `"FishAgeComps_discard"` and so on), of the season each fleet's year total is written into, an integer matrix `n_yrs x n_fleets`. A data source left out writes into season one. simulation_self_test and condition_closed_loop_simulations fill it from the fit's `Use` arrays, so a total the fit holds in season two is drawn there. Default `NULL`.

FishIdx_Cov

List with one element per fleet holding the fixed covariance over that fleet's fitted index observations, ordered by scanning `UseFishIdx` in array order. Required for mvn fleets. Default `NULL`.

UseFishIdx

Fit flags `n_regions x n_yrs x n_seas x n_fish_fleets` from the estimation model, used to place each simulated cell in the covariance. Its year dim may be shorter than the simulation, in which case later years draw with the mean factor scale and loading. Required for mvn fleets. Default `NULL`.

t_fish

Fishery index timing, `n_regions x n_seas x n_fish_fleets`, the fraction of the season elapsed when the index is observed. Numbers at age are decayed by `exp(-t_fish * ZAA)` before the index is formed, matching `t_srv` and the estimation model's own `t_fish`. Default 0.

comp_fish_caal_like

Conditional age-at-length likelihood per fleet: `"Multinomial"` (0), `"Dirichlet-Multinomial"` (1) or `"none"` (999, default). Only these two families exist for CAAL, since a CAAL row is the age composition of the otoliths from one length bin, usually a small and mostly zero sample.

ISS_Fish_caal

Number of fish aged within each length row, `n_regions x n_yrs x n_seas x n_caal_lens x n_sexes x n_fish_fleets x n_sims`. A bin whose sample size rounds to zero is skipped. `NULL` (default) draws no CAAL; supplying it alongside a likelihood other than `"none"` is what switches `do_fish_caal` on. Requires `n_lens`.

ln_Fish_caal_theta

Log overdispersion for the Dirichlet-multinomial, `n_regions x n_sexes x n_fish_fleets`. Read under the split types, `[r, s, f]` when sexes are split and `[r, 1, f]` when they are joint, and ignored under the multinomial. Default log(1).

ln_Fish_caal_theta_agg

The aggregated type's counterpart, length `n_fish_fleets`. Default log(1).

Fish_caal_Type

Composition structure per year and fleet, `n_yrs x n_fish_fleets`: `"agg"` (0) pools regions and sexes and is drawn once when the region loop reaches the last region, `"spltRspltS"` (1) draws each sex in a bin as its own sample, `"spltRjntS"` (2) draws one sample across the age by sex stack, and `"none"` (999, default) skips the fleet that year. The simulator takes the year by fleet array directly rather than the estimation model's `"CompType_Year_x-y_Fleet_z"` strings.

comp_fishage_like, comp_fishlen_like, comp_fishage_pop_like, comp_fishlen_pop_like, comp_fishage_discard_like, comp_fishlen_discard_like, comp_fishage_discard_pop_like, comp_fishlen_discard_pop_like

Composition likelihood per fleet for the eight fishery composition data sources: 0 = multinomial (default), 1 = Dirichlet-multinomial, 2-4 = logistic-normal, 999 = none.

ISS_FishAgeComps, ISS_FishLenComps, ISS_FishAgeComps_discard, ISS_FishLenComps_discard

Input sample sizes, `n_regions x n_yrs x n_seas x n_sexes x n_fish_fleets x n_sims`. Default 100.

ln_FishAge_theta, ln_FishLen_theta, ln_FishAge_discard_theta, ln_FishLen_discard_theta

Log-scale overdispersion, `n_regions x n_sexes x n_fish_fleets`. Default log(1).

ln_FishAge_theta_agg, ln_FishLen_theta_agg, ln_FishAge_discard_theta_agg, ln_FishLen_discard_theta_agg

The aggregated types' counterparts, length `n_fish_fleets`. Default log(1).

FishAge_corr_pars_agg, FishLen_corr_pars_agg, FishAge_discard_corr_pars_agg, FishLen_discard_corr_pars_agg

Their aggregated counterparts, length `n_fish_fleets`. Default 0.01.

FishAge_corr_pars, FishLen_corr_pars, FishAge_discard_corr_pars, FishLen_discard_corr_pars

Correlation parameters, `n_regions x n_sexes x n_fish_fleets x 2`. Default 0.01.

FishAgeComps_Type, FishLenComps_Type, FishAgeComps_pop_Type, FishLenComps_pop_Type, FishAgeComps_discard_Type, FishLenComps_discard_Type, FishAgeComps_discard_pop_Type, FishLenComps_discard_pop_Type

Composition structure per year and fleet, `n_yrs x n_fish_fleets`: 0 = aggregated, 1 = split region and sex, 2 = split region joint sex (default), 999 = none.

ISS_FishAgeComps_pop, ISS_FishLenComps_pop, ISS_FishAgeComps_discard_pop, ISS_FishLenComps_discard_pop

The population-specific counterparts, with a leading `n_pop` dim. Default 100.

ln_FishAge_pop_theta, ln_FishLen_pop_theta, ln_FishAge_discard_pop_theta, ln_FishLen_discard_pop_theta

Log-scale overdispersion for the population-specific data sources, `n_pop x n_regions x n_sexes x n_fish_fleets`. Default log(1).

ln_FishAge_pop_theta_agg, ln_FishLen_pop_theta_agg, ln_FishAge_discard_pop_theta_agg, ln_FishLen_discard_pop_theta_agg

Their aggregated counterparts, `n_pop x n_fish_fleets`. Default log(1).

FishAge_pop_corr_pars, FishLen_pop_corr_pars, FishAge_discard_pop_corr_pars, FishLen_discard_pop_corr_pars

Correlation parameters for the population-specific data sources, `n_pop x n_regions x n_sexes x n_fish_fleets x 2`. Default 0.01.

FishAge_pop_corr_pars_agg, FishLen_pop_corr_pars_agg, FishAge_discard_pop_corr_pars_agg, FishLen_discard_pop_corr_pars_agg

Their aggregated counterparts, `n_pop x n_fish_fleets`. Default 0.01.

FishLenComps_sel

Character vector `[n_fish_fleets]`, `"age"` (default) or `"length"`, as in [Setup_Mod_FishIdx_and_Comps()]. `"length"` spreads the fish available at each age over length and selects them length by length, so the length compositions read `fish_sel_l_input`.

fish_sel_l_input, ret_sel_l_input

Fishery and retention selectivity at length, `n_regions x n_yrs x n_lens x n_sexes x n_fish_fleets x n_sims`, read under `FishLenComps_sel = "length"`. `ret_sel_l_input = NULL` (default) keeps retention at age.

ret_sel_input

Retained selectivity at age, `n_pop x n_regions x n_yrs x n_seas x n_ages x n_sexes x n_fish_fleets x n_sims`. Default 1.

dmr_input

Discard mortality rate, `n_regions x n_yrs x n_seas x n_fish_fleets x n_sims`. Default 0.

discard_units

Discard units per fleet: 0 = abundance, 1 = biomass, 2 = abundance fraction, 3 = biomass fraction (default).

ln_sigmaD, ln_sigmaD_pop

Log-scale observation sd for discards, `n_regions x n_yrs x n_seas x n_fish_fleets` with a leading `n_pop` for the second. Default log(0.02).

Value

A modified `sim_list` with validated fishing inputs.