%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% This script defines a number of parameters and functions for %% corvina %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Define parameters and a weight-at-length function %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Natural mortality rate (in year^-1), estimated using %% Pauly (1980)'s method corvina.M = 0.26 ; %% Exploitation rate of old adults % To estimate this exploitation rate, Brad Erisman compiled length data % from 2013-2015 to create a length frequency distribution. Then, he % came up with a mean EOA = 0.825 based on combinations of % M (Pauly, Hoenig) and 3 methods to calculate Z % (Seine, LDFA, catch curves), in the same way EOA was calculated % for Erisman et al. (2014) corvina.EOA = 0.825 ; %% Exploitation rate of young adults corvina.EYA = 0 ; %% Define growth functions % (1) Gherard et al.'s growth model Gherard_growth = @( a , p ) p.Linf_Gherard .* ... ( 1 - exp(-p.k_Gherard.* ( a - p.a0_Gherard ) ) ) ; corvina.Linf_Gherard = 1006 ; % in mm (taken from Gherard et al. (2013)) corvina.k_Gherard = 0.225 ; % in year^-1 (taken from Gherard et al. (2013)) corvina.a0_Gherard = 0.616 ; % in years (taken from Gherard et al. (2013)) % (2) von_Bertalanffy growth model fit to raw data vb_growth = @( a , p ) p.Linf_vb .* ... ( 1 - exp(-p.k_vb.* ( a - p.a0_vb ) ) ) ; corvina.Linf_vb = 916.05 ; corvina.k_vb = 0.28 ; corvina.a0_vb = -0.17 ; % (3) von_Bertalanffy growth model fit to raw data bolstered % by simulated values vb_bolstered_growth = @( a , p ) p.Linf_vb_bolstered .* ... ( 1 - exp(-p.k_vb_bolstered.* ( a - p.a0_vb_bolstered ) ) ) ; corvina.Linf_vb_bolstered = 951.30 ; corvina.k_vb_bolstered = 0.25 ; corvina.a0_vb_bolstered = -0.33 ; % (4) Schnute-Richards growth model fit to raw data sr_growth = @( a , p ) p.Linf_sr.* ... (1+(p.alpha_sr).* exp(-p.aa_sr.* a.^ p.cc_sr )).^ (1./ p.bb_sr); corvina.Linf_sr = 730.91 ; corvina.alpha_sr = -0.003 ; corvina.aa_sr = 0.12 ; corvina.bb_sr = 0.003 ; corvina.cc_sr = 2.18 ; % (5) Schnute-Richards growth model fit to raw data % bolstered by simulated values sr_bolstered_growth = @( a , p ) p.Linf_sr_bolstered.* ... (1+(p.alpha_sr_bolstered).* exp(-p.aa_sr_bolstered.* ... a.^ p.cc_sr_bolstered )).^ (1./ p.bb_sr_bolstered); corvina.Linf_sr_bolstered = 938.80 ; corvina.alpha_sr_bolstered = -0.0046 ; corvina.aa_sr_bolstered = 0.67 ; corvina.bb_sr_bolstered = 0.0019 ; corvina.cc_sr_bolstered = 0.72 ; %% Age of sexual maturity, age of transition from the young adult %% stage to the old adult stage, and maximum age corvina.amin = 0 ; corvina.a50 = 2 ; corvina.aOA = 5 ; corvina.amax = 9 ; %% Necessary parameters for the weight-at-length relationship % Taken from Gherard et al. (2013) corvina.wa = 2e-5 ; corvina.wb = 2.8834 ; %% Weight-length function weight_from_length = @( L , p ) p.wa .* L.^( p.wb ) ; length_from_weight = @( w , p ) ( w ./ p.wa ).^( 1./ p.wb ) ; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Define a set of basic functions that calculate mean weights %% per recruit into each life phase %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% natural_mortality = @( p ) p.M ; % (1) Gherard et al.'s growth model weight_youngadult_Gherard_growth = @( p ) ... quadgk( ( @( a ) ( ( 1 - p.EYA ).^( a - p.a50 ) ).* ... exp( -natural_mortality( p ).* ( a - p.a50 ) ).* ... weight_from_length( Gherard_growth( a , p ) , p ) ) , ... p.a50 , p.aOA ) ; weight_oldadult_Gherard_growth = @( p ) ... quadgk( ( @( a ) ( ( 1 - p.EOA ).^( a - p.aOA ) ).* ... exp( -natural_mortality( p ).* ( a - p.aOA ) ).* ... weight_from_length( Gherard_growth( a , p ) , p ) ) , ... p.aOA , p.amax ) ; % (2) von Bertalanffy growth model fit to raw data weight_youngadult_vb_growth = @( p ) ... quadgk( ( @( a ) ( ( 1 - p.EYA ).^( a - p.a50 ) ).* ... exp( -natural_mortality( p ).* ( a - p.a50 ) ).* ... weight_from_length( vb_growth( a , p ) , p ) ) , ... p.a50 , p.aOA ) ; weight_oldadult_vb_growth = @( p ) ... quadgk( ( @( a ) ( ( 1 - p.EOA ).^( a - p.aOA ) ).* ... exp( -natural_mortality( p ).* ( a - p.aOA ) ).* ... weight_from_length( vb_growth( a , p ) , p ) ) , ... p.aOA , p.amax ) ; % (3) von Bertalanffy growth model fit to raw data % bolstered by simulated values weight_youngadult_vb_bolstered_growth = @( p ) ... quadgk( ( @( a ) ( ( 1 - p.EYA ).^( a - p.a50 ) ).* ... exp( -natural_mortality( p ).* ( a - p.a50 ) ).* ... weight_from_length( vb_bolstered_growth( a , p ) , p ) ) , ... p.a50 , p.aOA ) ; weight_oldadult_vb_bolstered_growth = @( p ) ... quadgk( ( @( a ) ( ( 1 - p.EOA ).^( a - p.aOA ) ).* ... exp( -natural_mortality( p ).* ( a - p.aOA ) ).* ... weight_from_length( vb_bolstered_growth( a , p ) , p ) ) , ... p.aOA , p.amax ) ; % (4) Schnute-Richards growth model fit to raw data weight_youngadult_sr_growth = @( p ) ... quadgk( ( @( a ) ( ( 1 - p.EYA ).^( a - p.a50 ) ).* ... exp( -natural_mortality( p ).* ( a - p.a50 ) ).* ... weight_from_length( sr_growth( a , p ) , p ) ) , ... p.a50 , p.aOA ) ; weight_oldadult_sr_growth = @( p ) ... quadgk( ( @( a ) ( ( 1 - p.EOA ).^( a - p.aOA ) ).* ... exp( -natural_mortality( p ).* ( a - p.aOA ) ).* ... weight_from_length( sr_growth( a , p ) , p ) ) , ... p.aOA , p.amax ) ; % (5) Schnute-Richards growth model fit to raw data % bolstered by simulated values weight_youngadult_sr_bolstered_growth = @( p ) ... quadgk( ( @( a ) ( ( 1 - p.EYA ).^( a - p.a50 ) ).* ... exp( -natural_mortality( p ).* ( a - p.a50 ) ).* ... weight_from_length( sr_bolstered_growth( a , p ) , p ) ) , ... p.a50 , p.aOA ) ; weight_oldadult_sr_bolstered_growth = @( p ) ... quadgk( ( @( a ) ( ( 1 - p.EOA ).^( a - p.aOA ) ).* ... exp( -natural_mortality( p ).* ( a - p.aOA ) ).* ... weight_from_length( sr_bolstered_growth( a , p ) , p ) ) , ... p.aOA , p.amax ) ; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Define probabilities of survival %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% prob_survival_youngadult = @( p ) exp( -p.M.* ... ( p.a50 - p.amin ) ) ; prob_survival_youngadult_oldadult = @( p ) ... exp( -p.M.* ( p.aOA - p.a50 ) ).* ... ( ( 1 - p.EYA ).^( p.aOA - p.a50 ) ) ; prob_survival_oldadult = @( p ) prob_survival_youngadult( p ).* ... prob_survival_youngadult_oldadult( p ) ; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Define final per recruit quantities %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% E_youngadult = @( p ) p.EYA ; E_oldadult = @( p ) p.EOA ; % (1) Gherard et al.'s growth model SSBR_Gherard_growth = @(p) ... (0.5.* prob_survival_youngadult( p ).* ... weight_youngadult_Gherard_growth( p ) ) + ... (0.5.* prob_survival_oldadult( p ).* ... weight_oldadult_Gherard_growth( p ) ) ; YPR_youngadult_Gherard_growth = @( p ) ... E_youngadult( p ).* ... prob_survival_youngadult( p ).* ... weight_youngadult_Gherard_growth( p ) ; YPR_oldadult_Gherard_growth = @( p ) ... E_oldadult(p).* ... prob_survival_oldadult( p ).* ... weight_oldadult_Gherard_growth( p ) ; YPR_Gherard_growth = @( p ) ... YPR_youngadult_Gherard_growth( p ) + ... YPR_oldadult_Gherard_growth( p ) ; % (2) von Bertalanffy growth model fit to raw data SSBR_vb_growth = @(p) ... (0.5.* prob_survival_youngadult( p ).* ... weight_youngadult_vb_growth( p ) ) + ... (0.5.* prob_survival_oldadult( p ).* ... weight_oldadult_vb_growth( p ) ) ; YPR_youngadult_vb_growth = @( p ) ... E_youngadult( p ).* ... prob_survival_youngadult( p ).* ... weight_youngadult_vb_growth( p ) ; YPR_oldadult_vb_growth = @( p ) ... E_oldadult(p).* ... prob_survival_oldadult( p ).* ... weight_oldadult_vb_growth( p ) ; YPR_vb_growth = @( p ) ... YPR_youngadult_vb_growth( p ) + ... YPR_oldadult_vb_growth( p ) ; % (3) von Bertalanffy growth model fit to raw data % bolstered by simulated values SSBR_vb_bolstered_growth = @(p) ... (0.5.* prob_survival_youngadult( p ).* ... weight_youngadult_vb_bolstered_growth( p ) ) + ... (0.5.* prob_survival_oldadult( p ).* ... weight_oldadult_vb_bolstered_growth( p ) ) ; YPR_youngadult_vb_bolstered_growth = @( p ) ... E_youngadult( p ).* ... prob_survival_youngadult( p ).* ... weight_youngadult_vb_bolstered_growth( p ) ; YPR_oldadult_vb_bolstered_growth = @( p ) ... E_oldadult(p).* ... prob_survival_oldadult( p ).* ... weight_oldadult_vb_bolstered_growth( p ) ; YPR_vb_bolstered_growth = @( p ) ... YPR_youngadult_vb_bolstered_growth( p ) + ... YPR_oldadult_vb_bolstered_growth( p ) ; % (4) Schnute-Richards growth model fit to raw data SSBR_sr_growth = @(p) ... (0.5.* prob_survival_youngadult( p ).* ... weight_youngadult_sr_growth( p ) ) + ... (0.5.* prob_survival_oldadult( p ).* ... weight_oldadult_sr_growth( p ) ) ; YPR_youngadult_sr_growth = @( p ) ... E_youngadult( p ).* ... prob_survival_youngadult( p ).* ... weight_youngadult_sr_growth( p ) ; YPR_oldadult_sr_growth = @( p ) ... E_oldadult(p).* ... prob_survival_oldadult( p ).* ... weight_oldadult_sr_growth( p ) ; YPR_sr_growth = @( p ) ... YPR_youngadult_sr_growth( p ) + ... YPR_oldadult_sr_growth( p ) ; % (5) Schnute-Richards growth model fit to raw data % bolstered by simulated values SSBR_sr_bolstered_growth = @(p) ... (0.5.* prob_survival_youngadult( p ).* ... weight_youngadult_sr_bolstered_growth( p ) ) + ... (0.5.* prob_survival_oldadult( p ).* ... weight_oldadult_sr_bolstered_growth( p ) ) ; YPR_youngadult_sr_bolstered_growth = @( p ) ... E_youngadult( p ).* ... prob_survival_youngadult( p ).* ... weight_youngadult_sr_bolstered_growth( p ) ; YPR_oldadult_sr_bolstered_growth = @( p ) ... E_oldadult(p).* ... prob_survival_oldadult( p ).* ... weight_oldadult_sr_bolstered_growth( p ) ; YPR_sr_bolstered_growth = @( p ) ... YPR_youngadult_sr_bolstered_growth( p ) + ... YPR_oldadult_sr_bolstered_growth( p ) ;