// TPL code for: // J. T. Schnute and L. J. Richards. 1995. The influence of error on // population estimates from catch-age models. Can. J. Fish. // Aquat. Sci. 52: 2063-2077. // // Modified to version where recruitment is modelled as a random effect. DATA_SECTION init_int nyear init_int nage init_vector cat(1,nyear) init_matrix spat(1,nage,1,nyear) init_vector sindex(1,nyear) int nf PARAMETER_SECTION init_bounded_number alpha(0.02,50.0) //-- selectivity exponent init_bounded_number beta(0.0,1.0) //-- selectivity at age class 1 init_bounded_number M(0.02,0.8) //-- natural mortality init_bounded_number q(0.1,10.0) //-- catchability init_bounded_number R(0.1,10.0) //-- recruitment init_bounded_number gam(-1.0,1.0) //-- recruitment correlation init_number rho(-1) //-- ratio sigma1^2 and kappa^2 number kappa_2 number tau_2 number xiSS number eta0tSS number eta_atSS number tmp number S vector beta_a(1,nage) vector betaNat(1,nage) matrix Nat(1,nage,1,nyear) matrix ut(1,nage,1,nyear) matrix dpat(1,nage,1,nyear) matrix xat(1,nage,1,nyear) vector Ft(1,nyear) vector Pt(1,nyear) vector dindex(1,nyear) vector xi_t(2-nage,nyear) vector eta_0t(1,nyear) matrix eta_at(1,nage,1,nyear) vector like_terms(1,5) number penalty sdreport_number sd_alpha sdreport_number sd_beta // sdreport_number sd_M // sdreport_number sd_q // sdreport_number sd_R // sdreport_number sd_gam init_bounded_number mean_recruit(.6,1.2,1) init_bounded_number sd_recruit(.01,.3,2) vector recruit(2-nage,nyear) random_effects_vector u(2-nage,nyear,2) //init_bounded_vector recruit(2-nage,nyear,1.0E-03,50.0,2) objective_function_value lf PRELIMINARY_CALCS_SECTION nf = 0; PROCEDURE_SECTION lf += 0.5*norm2(u); recruit = mean_recruit + sd_recruit*u; Calc_Selectivity(); Calc_Nat_and_Moments(); Calc_Resids(); Calc_Objective_Function(); FUNCTION Calc_Selectivity for (int a=1; a