Skip to contents

Distributes the population-level catch matrix c_p_a (patch x age) produced by a critter's swim() method across fleets, then calculates revenue and profit for each fleet-patch combination.

Usage

allocate_yields(
  f_p_a_fl,
  p_p_a_fl,
  e_p_fl,
  critter,
  pop,
  patches,
  ages,
  fleets,
  fauna
)

Arguments

f_p_a_fl

3-D numeric array [patches, ages, fleets] of proportional fishing mortality by fleet (normalised to sum to 1 across fleets for each patch-age cell).

p_p_a_fl

3-D numeric array [patches, ages, fleets] of price per unit catch, by patch, age, and fleet.

e_p_fl

Numeric matrix of effort by patch (rows) and fleet (columns).

critter

Character. Name of the species being processed (used to index fauna).

pop

List returned by critter$swim(), including c_p_a (catch by patch and age).

patches

Integer. Total number of patches.

ages

Integer. Number of age classes for this species.

fleets

Named list of fleet objects from create_fleet.

fauna

Named list of fauna objects from create_critter.

Value

A named list:

c_p_a_fl

3-D array [patches, ages, fleets] of catch in numbers.

r_p_a_fl

3-D array [patches, ages, fleets] of revenue.

r_p_fl

Matrix [patches, fleets] of revenue summed across ages.

c_p_fl

Matrix [patches, fleets] of catch summed across ages.

prof_p_fl

Matrix [patches, fleets] of profit (revenue minus cost).

Details

The fishing-mortality share of each fleet in each patch-age cell is given by f_p_a_fl / f_p_a (already normalised). Total catch in each cell is then multiplied by this share to give fleet-specific catch. Revenue is calculated as catch times price (p_p_a_fl). Profit is revenue minus the patch-level cost, where costs follow the formula: $$C_{l,p} = c_{0,l} \, E^{ref}_l \left[\left(\frac{E_{l,p}/n_{sp}}{E^{ref}_l}\right)^{\gamma_l} + \theta_l \, \tilde{d}_{l,p} \, \frac{E_{l,p}/n_{sp}}{E^{ref}_l}\right]$$ Note that effort is divided by the number of species (\(n_{sp}\)) to avoid double-counting costs across the species loop in simmar.

This is an internal helper called once per critter per time step inside simmar and go_fish.