![]() |
Indian Ocean Skipjack
|
#include <model.hpp>
Public Member Functions | |
void | initialise (void) |
void | update (uint time) |
void | equilibrium (void) |
void | pristine_go (void) |
Frame | yield_curve (double step=0.01) |
Frame | yield_per_recruit (void) |
void | msy_go (void) |
void | msy_find (void) |
void | status_go (const double &status) |
void | b40_find (void) |
void | write (void) |
Variable getting methods | |
double | biomass_status (void) const |
Parameter setting methods | |
void | movement_uniform (void) |
void | spawning_uniform (void) |
Dynamics setting methods | |
void | exploitation_rate_set (double value) |
double | exploitation_rate_get (void) const |
void | fishing_mortality_set (double value) |
double | fishing_mortality_get (void) const |
void | catches_set (double catches_, double error=0.2) |
void | effort_set (double effort_) |
Public Attributes | |
Array< double, Region, Age > | numbers |
Array< double, Region > | biomass |
Array< double, Region > | biomass_spawners |
Array< double, Region > | biomass_spawners_unfished |
double | msy |
double | e_msy |
double | f_msy |
double | biomass_spawners_msy |
int | msy_trials |
double | e_40 |
double | f_40 |
double | biomass_spawners_40 |
Spawning and stock-recruitment | |
Array< double, Quarter > | spawning |
Array< double, Region, Quarter > | biomass_spawning |
Array< double, Region, Quarter > | biomass_spawning_unfished |
Array< double, Region > | recruits_unfished |
double | recruits_steepness |
bool | recruits_relation_on = true |
Array< double, Region > | recruits_determ |
bool | recruits_variation_on = true |
double | recruits_sd |
Normal | recruits_distrib |
double | recruits_autocorr |
double | recruits_deviation = 0 |
double | recruits_multiplier = 1 |
Array< double, Region > | recruits |
Growth | |
double | growth_rate_1 |
double | growth_rate_2 |
double | growth_assymptote |
double | growth_stanza_inflection |
double | growth_stanza_steepness |
double | growth_age_0 |
double | growth_cv_0 |
double | growth_cv_old |
Array< double, Size > | length_size |
Array< Normal, Age > | length_age |
Array< double, Age, Size > | age_size |
Weight | |
double | weight_length_a |
double | weight_length_b |
Array< double, Size > | weight_size |
Array< double, Age > | weight_age |
Maturity | |
double | maturity_length_inflection |
double | maturity_length_steepness |
Array< double, Size > | maturity_size |
Array< double, Age > | maturity_age |
Natural mortality | |
double | mortality_mean |
Array< double, Age > | mortality_shape |
Array< double, Age > | mortality |
Array< double, Age > | survival |
Movement | |
Array< double, RegionFrom, Region > | movement_region |
double | movement_length_inflection |
double | movement_length_steepness |
Array< double, Size > | movement_size |
Array< double, Age > | movement_age |
Data related "nuisance" parameters | |
Array< double, Quarter > | m_pl_quarter = {0.97,0.87,0.97,1.19} |
Selectivity and exploitation | |
Array< double, SelectivityKnot > | selectivity_lengths = {20,30,40,50,60,70,80} |
Array< double, Method, SelectivityKnot > | selectivity_values |
Array< double, Method, Size > | selectivity_size |
Array< double, Method, Age > | selectivity_age |
enum IOSKJ::Model::{ exploit_none = 0, exploit_rate = 1, exploit_catch = 2, exploit_effort = 3 } | exploit |
Array< double, Region, Method > | biomass_vulnerable |
Array< double, Region, Method > | cpue |
Array< GeometricMean, Region, Method > | cpue_base |
Array< double, Region, Method > | catches |
Array< double, Region, Method > | effort |
Array< double, Region, Method > | catchability |
Array< GeometricMean, Region, Method > | catchability_estim |
Array< double, Region, Method > | exploitation_rate_specified |
Array< double, Region, Method > | catches_taken |
Array< double, Region, Method > | exploitation_rate |
Array< double, Region, Age > | escapement |
Model of the Indian Ocean skipjack tuna fishery. This class encapsulates the dynamics of both the fish population and fishing.
Test that when there is no substantial change in equilibrium conditions given further simulation.
Test that when there is no movement and equal reruitment distribution that the equilibrium biomass is equal in all areas
Test that recruitment variation has the right mean and standard deviation.
|
inline |
Calculate a status related re
|
inline |
Get the stock status (spawning biomass as a fraction of pristine)
|
inline |
Set the catch by region/method assuming a certain allocation, currently based on the period 2003-2012 (see data/nominal-catches-quarter.R
)
Note that currently this does not allow for seasonal variation, assumes an equal split across quarters
|
inline |
Set the number of effort units by region/method
|
inline |
Move the population to a deterministic equilibrium by iterating over time until biomass in each region remains stable
|
inline |
Get overall exploitation rate.
|
inline |
Set overall exploitation rate. Used in testing and in equilibrium exploitation e.g. MSY/BMSY calculations
Currently assumes an equal explotation rate is applied to the three main methods in each region (W/PS,M/PL,E/GN). An alternative would be to assume equal exploitation rates in each region and use current partial exploitation rates by method within each region.
|
inline |
Get overall instantaneous rate of fishing mortality (F). Like exploitation_rate_get
but gives F instead of exp. rate.
|
inline |
Set overall instantaneous rate of fishing mortality (F). Like exploitation_rate_set
but uses F instead of exp. rate.
|
inline |
Initialise various model variables based on current parameter values
|
inline |
Set movement parameters so that there is uniform movement.
All movement_regions elements set to 1/(number of regions). All sizes move. Mainly used for testing
|
inline |
Calculate MSY related reference points
|
inline |
Take this model to a equilibirum state associated with MSY
|
inline |
Set spawning seasonality parameters so that there is uniform spawning.
All elements set to 1. Mainly used for testing.
|
inline |
Take this model to a equilibrium state associated with a proportion of B0
|
inline |
Perform a single time step
|
inline |
Write model attributes to files for examination
|
inline |
Generate a yield curve
|
inline |
Generate a yield per recruit curve
This is really a biomass-per-recruit curve.
Array<double,Age,Size> IOSKJ::Model::age_size |
Proportion of fish of each age in each size bin
Array<double,Region> IOSKJ::Model::biomass |
Total biomass by region
Array<double,Region> IOSKJ::Model::biomass_spawners |
Total biomass of spawners
Array<double,Region> IOSKJ::Model::biomass_spawners_unfished |
Unfished equlibrium spawners (biomass)
This differs from biomass_spawning_unfished
in that it is not affected by the proportion spawning in a season
Array<double,Region,Quarter> IOSKJ::Model::biomass_spawning |
The total spawning biomass by region
Array<double,Region,Quarter> IOSKJ::Model::biomass_spawning_unfished |
Unfished spawning biomass by region and quarter. It is necessary to have this by quarter because the proportion of mature fish that spawn varies by quarter.
Array<double,Region,Method> IOSKJ::Model::biomass_vulnerable |
Vulnerable biomass by region and method
Array<double,Region,Method> IOSKJ::Model::catchability |
Estimated catchability by region and method
Array<double,Region,Method> IOSKJ::Model::catches |
Catches by region and method
Array<double,Region,Method> IOSKJ::Model::catches_taken |
Catches by region and method given maximimum exploitation rate of one. This variable is useful for penalising against impossible dynamics.
Array<double,Region,Method> IOSKJ::Model::cpue |
CPUE. Simply biomass_vulnerable
scaled to its geometric mean for the period 1985-2013
double IOSKJ::Model::e_40 |
40B0 related variables
Array<double,Region,Method> IOSKJ::Model::effort |
Effort by region and method
Currently these are nominal units relative to the period 2004-2013
Array<double,Region,Age> IOSKJ::Model::escapement |
Escapement (i.e. survival form exploitation)
Array<double,Region,Method> IOSKJ::Model::exploitation_rate |
Exploitation rate by region and method for current time step
Array<double,Region,Method> IOSKJ::Model::exploitation_rate_specified |
The exploitation rate specified, for example, when calculating MSY/Bmsy
double IOSKJ::Model::growth_rate_1 |
Parameters of the two-stanza vonBertallanffy
Array<Normal,Age> IOSKJ::Model::length_age |
Length distribution for each age group
Array<double,Size> IOSKJ::Model::length_size |
Length associated with each size
Array<double,Quarter> IOSKJ::Model::m_pl_quarter = {0.97,0.87,0.97,1.19} |
Lengths at each selectivity knot
The default values below are simply the means of the observed standardised CPUE index by quarter.
double IOSKJ::Model::maturity_length_inflection |
Maturity at length logistic function
Array<double,Size> IOSKJ::Model::maturity_size |
Maturity at size and age
Array<double,Age> IOSKJ::Model::mortality |
Instantaneous rate of natural mortality at age
double IOSKJ::Model::mortality_mean |
Mean instantaneous rate of natural mortality across ages
Array<double,Age> IOSKJ::Model::mortality_shape |
Relative morality by age. These are used to calculate a mortality at age by multiplying by mortality_mean
. These are from Everson 2011 IOTC–2011–WPTT13–30
double IOSKJ::Model::movement_length_inflection |
Movement proportion at size logistic function
Array<double,RegionFrom,Region> IOSKJ::Model::movement_region |
Movement maximum proportion moving from one region to another
double IOSKJ::Model::msy |
MSY related variables
Array<double,Region,Age> IOSKJ::Model::numbers |
Fish numbers by region and age
Array<double,Region> IOSKJ::Model::recruits |
Total number of recruits at time t
double IOSKJ::Model::recruits_autocorr |
Autocorrelation in recruitment deviations
Array<double,Region> IOSKJ::Model::recruits_determ |
Deterministic recruitment at time t
double IOSKJ::Model::recruits_deviation = 0 |
Recruitment deviation at time t
Normal IOSKJ::Model::recruits_distrib |
Underlying distribution for generation recr deviations
double IOSKJ::Model::recruits_multiplier = 1 |
Recruitment multiplier at time t
bool IOSKJ::Model::recruits_relation_on = true |
Flag to turn on/off recruitment relation (if off then recruits_unfished is used)
double IOSKJ::Model::recruits_sd |
Standard deviation of recruitment deviations
double IOSKJ::Model::recruits_steepness |
Steepness of stock-recruit relation
Array<double,Region> IOSKJ::Model::recruits_unfished |
Unfished equlibrium recruitment (numbers) by region
bool IOSKJ::Model::recruits_variation_on = true |
Flag to turn on/off recruitment variation
Array<double,SelectivityKnot> IOSKJ::Model::selectivity_lengths = {20,30,40,50,60,70,80} |
Lengths at each selectivity knot
Array<double,Method,Size> IOSKJ::Model::selectivity_size |
Selectivities by method and size
Array<double,Method,SelectivityKnot> IOSKJ::Model::selectivity_values |
Proportion selected at each selectivity knot for each method
Array<double,Quarter> IOSKJ::Model::spawning |
The spawning fraction by quarter
Array<double,Age> IOSKJ::Model::survival |
Quarterly rate of survival from natural mortality at age
double IOSKJ::Model::weight_length_a |
Weight at length power funciton
Array<double,Size> IOSKJ::Model::weight_size |
Weight at size