#V3.30.13-safe;_2019_03_09;_Stock_Synthesis_by_Richard_Methot_(NOAA)_using_ADMB_12.0 #Stock Synthesis (SS) is a work of the U.S. Government and is not subject to copyright protection in the United States. #Foreign copyrights may apply. See copyright.txt for more information. #_user_support_available_at:NMFS.Stock.Synthesis@noaa.gov #_user_info_available_at:https://vlab.ncep.noaa.gov/group/stock-synthesis #_data_and_control_files: ytdata.ss // ytcontrol.ss # ------------------------------------------------ PRELIMINARIES 0 # 0 means do not read wtatage.ss; 1 means read and use wtatage.ss and also read and use growth parameters 1 #_N_Growth_Patterns 1 #_N_platoons_Within_GrowthPattern #_Cond 1 #_Morph_between/within_stdev_ratio (no read if N_morphs=1) #_Cond 1 #vector_Morphdist_(-1_in_first_val_gives_normal_approx) # 4 # recr_dist_method for parameters: 2=main effects for GP, Area, Settle timing; 3=each Settle entity; 4=none (only when N_GP*Nsettle*pop==1) 1 # not yet implemented; Future usage: Spawner-Recruitment: 1=global; 2=by area 1 # number of recruitment settlement assignments 0 # unused option #GPattern month area age (for each settlement assignment) 1 1 1 0 # #_Cond 0 # N_movement_definitions goes here if Nareas > 1 #_Cond 1.0 # first age that moves (real age at begin of season, not integer) also cond on do_migration>0 #_Cond 1 1 1 2 4 10 # example move definition for seas=1, morph=1, source=1 dest=2, age1=4, age2=10 # # constant selex in commercial fleet 0 #_Nblock_Patterns # 1 #_blocks_per_pattern # begin and end years of blocks # 1935 2018 # time blocks for selex #_1 #_Nblock_Patterns #_ 2 #_blocks_per_pattern # begin and end years of blocks #_ 1935 1998 1999 2011 # modern 6.5 inch mesh for trawls # # controls for all timevary parameters 1 #_env/block/dev_adjust_method for all time-vary parms (1=warn relative to base parm bounds; 3=no bound check) # # AUTOGEN 0 0 0 0 0 # autogen: 1st element for biology, 2nd for SR, 3rd for Q, 4th reserved, 5th for selex # where: 0 = autogen all time-varying parms; 1 = read each time-varying parm line; 2 = read then autogen if parm min==-12345 # #_Available timevary codes #_Block types: 0: P_block=P_base*exp(TVP); 1: P_block=P_base+TVP; 2: P_block=TVP; 3: P_block=P_block(-1) + TVP #_Block_trends: -1: trend bounded by base parm min-max and parms in transformed units (beware); -2: endtrend and infl_year direct values; -3: end and infl as fraction of base range #_EnvLinks: 1: P(y)=P_base*exp(TVP*env(y)); 2: P(y)=P_base+TVP*env(y); 3: null; 4: P(y)=2.0/(1.0+exp(-TVP1*env(y) - TVP2)) #_DevLinks: 1: P(y)*=exp(dev(y)*dev_se; 2: P(y)+=dev(y)*dev_se; 3: random walk; 4: zero-reverting random walk with rho; 21-24 keep last dev for rest of years # # # ------------------------------------------------ NAT MORT , GROWTH , FECUNDITY , REC , MOVEMENT # 2 #_natM_type:_0=1Parm; 1=N_breakpoints;_2=Lorenzen;_3=agespecific;_4=agespec_withseasinterpolate 1 #Lorenzen ref age # a0 a1 a2 a3 a4 a5 a6+ used average from table B7 # 1.81 0.293 0.215 0.194 0.186 0.182 0.18 # 1 # GrowthModel: 1=vonBert with L1&L2; 2=Richards with L1&L2; 3=age_specific_K_incr; 4=age_specific_K_decr; 5=age_specific_K_each; 6=NA; 7=NA; 8=growth cessation 0 #_Age(post-settlement)_for_L1;linear growth below this 999 #_Growth_Age_for_L2 (999 to use as Linf) -999 #_exponential decay for growth above maxage (value should approx initial Z; -999 replicates 3.24; -998 to not allow growth above maxage) 0 #_placeholder for future growth feature # 0 #_SD_add_to_LAA (set to 0.1 for SS2 V1.x compatibility) 0 #_CV_Growth_Pattern: 0 CV=f(LAA); 1 CV=F(A); 2 SD=F(LAA); 3 SD=F(A); 4 logSD=F(A) # 1 #_maturity_option: 1=length logistic; 2=age logistic; 3=read age-maturity matrix by growth_pattern; 4=read age-fecundity; 5=disabled; 6=read length-maturity 1 #_First_Mature_Age 1 #_fecundity option:(1)eggs=Wt*(a+b*Wt);(2)eggs=a*L^b;(3)eggs=a*Wt^b; (4)eggs=a+b*L; (5)eggs=a+b*W 0 #_hermaphroditism option: 0=none; 1=female-to-male age-specific fxn; -1=male-to-female age-specific fxn 1 #_parameter_offset_approach (1=none, 2= M, G, CV_G as offset from female-GP1, 3=like SS2 V1.x) # #_GROWTH MATURITY FECUNDITY #_ LO HI INIT PRIOR PR_SD PR_type PHASE env_link dev_link dev_minyr dev_maxyr dev_PH Block Block_Fxn 0.1 0.4 0.3 0.3 0 0 -2 0 0 0 0 0 0 0 # M_fem_Lorenz_at_ref 0.01 20 5.7 3.5 0 0 7 0 0 0 0 0 0 0 # L_at_Amin_Fem_GP_1 # fall 30 50 35.2 35.2 0 0 7 0 0 0 0 0 0 0 # L_at_Amax_Fem_GP_1 0.3 0.99 0.85 0.85 0 0 7 0 0 0 0 0 0 0 # VonBert_K_Fem_GP_1 0.05 0.25 0.1 0.1 0 0 -3 0 0 0 0 0 0 0 # CV_young_Fem_GP_1 0.05 0.25 0.1 0.1 0 0 -3 0 0 0 0 0 0 0 # CV_old_Fem_GP_1 1e-10 1e-3 9.7e-06 9.7e-06 0 0 7 0 0 0 0 0 0 0 # Wtlen_1_Fem_GP_1 # fall 2.5 3.5 2.96 2.96 0 0 7 0 0 0 0 0 0 0 # Wtlen_2_Fem_GP_1 20 35 27.4 27.4 0 0 -3 0 0 0 0 0 0 0 # Mat50%_Fem_GP_1 -3 3 -0.25 -0.25 0 0 -3 0 0 0 0 0 0 0 # Mat_slope_Fem_GP_1 -3 3 1 1 0 0 -3 0 0 0 0 0 0 0 # Eggs/kg_inter_Fem_GP_1 -3 3 0 0 0 0 -3 0 0 0 0 0 0 0 # Eggs/kg_slope_wt_Fem_GP_1 # Hermaphroditism # Recruitment Distribution #_ LO HI INIT PRIOR PR_SD PR_type PHASE env_link dev_link dev_minyr dev_maxyr dev_PH Block Block_Fxn # 0 0 0 0 0 0 -4 0 0 0 0 0 0 0 # RecrDist_GP_1 # 0 0 0 0 0 0 -4 0 0 0 0 0 0 0 # RecrDist_Area_1 # 0 0 0 0 0 0 -4 0 0 0 0 0 0 0 # RecrDist_month_1 # Cohort growth dev base #_ LO HI INIT PRIOR PR_SD PR_type PHASE env_link dev_link dev_minyr dev_maxyr dev_PH Block Block_Fxn 0.1 10 1 1 1 0 -1 0 0 0 0 0 0 0 # CohortGrowDev # Movement # Age Error from parameters # catch multiplier # fraction female, by GP #_ LO HI INIT PRIOR PR_SD PR_type PHASE env_link dev_link dev_minyr dev_maxyr dev_PH Block Block_Fxn 1e-06 0.999999 0.5 0.5 0.5 0 -99 0 0 0 0 0 0 0 # FracFemale_GP_1 # #_no timevary MG parameters # #_seasonal_effects_on_biology_parms 0 0 0 0 0 0 0 0 0 0 #_femwtlen1,femwtlen2,mat1,mat2,fec1,fec2,Malewtlen1,malewtlen2,L1,K #_ LO HI INIT PRIOR PR_SD PR_type PHASE #_Cond -2 2 0 0 -1 99 -2 #_placeholder when no seasonal MG parameters # # ----------------------- RECRUITMENT 3 #_Spawner-Recruitment; Options: 2=Ricker; 3=std_B-H; 4=SCAA; 5=Hockey; 6=B-H_flattop; 7=survival_3Parm; 8=Shepherd_3Parm; 9=RickerPower_3parm 0 # 0/1 to use steepness in initial equ recruitment calculation 0 # future feature: 0/1 to make realized sigmaR a function of SR curvature #_ LO HI INIT PRIOR PR_SD PR_type PHASE env-var use_dev dev_mnyr dev_mxyr dev_PH Block Blk_Fxn # parm_name 3 35 11.2 10.3 10 0 1 0 0 0 0 0 0 0 # SR_LN(R0) 0.2 1 0.75 0.75 0.064 3 -1 0 0 0 0 0 0 0 # SR_BH_steep 0 2 0.8 0.8 0.8 0 -99 0 0 0 0 0 0 0 # SR_sigmaR -5 5 0 0 1 0 -4 0 0 0 0 0 0 0 # SR_regime 0 0 0 0 0 0 -99 0 0 0 0 0 0 0 # SR_autocorr 1 #do_recdev: 0=none; 1=devvector (R=F(SSB)+dev); 2=deviations (R=F(SSB)+dev); 3=deviations (R=R0*dev; dev2=R-f(SSB)); 4=like 3 with sum(dev2) adding penalty 1925 # first year of main recr_devs; early devs can preceed this era 2018 # last year of main recr_devs; forecast devs start in following year 2 #_recdev phase 1 # (0/1) to read 13 advanced options 0 #_recdev_early_start (0=none; neg value makes relative to recdev_start) -4 #_recdev_early_phase 0 #_forecast_recruitment phase (incl. late recr) (0 value resets to maxphase+1) 1 #_lambda for Fcast_recr_like occurring before endyr+1 1935 #_last_yr_nobias_adj_in_MPD; begin of ramp 1973 #_first_yr_fullbias_adj_in_MPD; begin of plateau 2018 #_last_yr_fullbias_adj_in_MPD 2018 #_end_yr_for_ramp_in_MPD (can be in forecast to shape ramp, but SS sets bias_adj to 0.0 for fcast yrs) 0.98 #_max_bias_adj_in_MPD (-1 to override ramp and set biasadj=1.0 for all estimated recdevs) 0 #_period of cycles in recruitment (N parms read below) -5 #min rec_dev 5 #max rec_dev 0 #_read_recdevs #_end of advanced SR options # #_placeholder for full parameter lines for recruitment cycles # read specified recr devs #_Yr Input_value # # # ----------------------------- FISHING MORTALITY SETUP 0.3 # F ballpark -2001 # F ballpark year (neg value to disable F ballpark) 3 # F_Method: 1=Pope; 2=instan.(Baranov) every F is a parm use if you have bycatch fleets; 3=hybrid Baranov by F not parms (hybrid is recommended) 3 # max F or harvest rate, depends on F_Method 6 # N iterations for tuning F in hybrid method (recommend 3 to 7) # no additional F input needed for Fmethod 1 # if Fmethod=2; read overall start F value; overall phase; N detailed inputs to read # 0.05 1 0 # setup initial F parms # LO HI INIT PRIOR PR_SD pR_TYPE PHASE 0.01 0.7 0.05 0 0 0 1 #commercial_domestic # try reading in 2 detailed inputs # fleet year season F SE phase # 1 1934 1 0.1 0.01 1 # 1 1933 1 0.1 0.01 1 # if Fmethod=3; read N iterations for tuning for Fmethod 3 # # ------------------------------------------------------------ Q SETUP FOR CPUE INDICES #_Q_setup for fleets with cpue or survey data #_1: fleet number #_2: link type: (1=simple q, 1 parm; 2=mirror simple q, 1 mirrored parm; 3=q and power, 2 parm; 4=mirror with offset, 2 parm) #_3: extra input for link, i.e. mirror fleet# or dev index number #_4: 0/1 to select extra sd parameter #_5: 0/1 for biasadj or not #_6: 0/1 to float float to use analytical #_ fleet link link_info extra_se biasadj float # fleetname 3 1 0 0 0 1 # spring_trawl 4 1 0 0 0 1 # fall_trawl -9999 0 0 0 0 0 # end input # # Ln_Q base - we are using float BUT parameter lines still expected #_ LO HI INIT PRIOR PR_SD PR_type PHASE env-var use_dev dev_mnyr dev_mxyr dev_PH Block Blk_Fxn # parm_name -25 25 -7 0 1 0 -99 0 0 0 0 0 0 0 # LnQ_base_fleet3 -25 25 -7 0 1 0 -99 0 0 0 0 0 0 0 # LnQ_base_fleet4 #_no timevary Q parameters # # ---------------------------------------------------- LENGTH-BASED SELECTIVITY SETUP #Pattern:_0; parm=0; selex=1.0 for all sizes #Pattern:_1; parm=2; logistic; with 95% width specification #Pattern:_5; parm=2; mirror another size selex; PARMS pick the min-max bin to mirror #Pattern:_15; parm=0; mirror another age or length selex #Pattern:_6; parm=2+special; non-parm len selex #Pattern:_43; parm=2+special+2; like 6, with 2 additional param for scaling (average over bin range) #Pattern:_8; parm=8; New doublelogistic with smooth transitions and constant above Linf option #Pattern:_9; parm=6; simple 4-parm double logistic with starting length; parm 5 is first length; parm 6=1 does desc as offset #Pattern:_21; parm=2+special; non-parm len selex, read as pairs of size, then selex #Pattern:_22; parm=4; double_normal as in CASAL #Pattern:_23; parm=6; double_normal where final value is directly equal to sp(6) so can be >1.0 #Pattern:_24; parm=6; double_normal with sel(minL) and sel(maxL), using joiners #Pattern:_25; parm=3; exponential-logistic in size #Pattern:_27; parm=3+special; cubic spline #Pattern:_42; parm=2+special+3; // like 27, with 2 additional param for scaling (average over bin range) #_discard_options:_0=none;_1=define_retention;_2=retention&mortality;_3=all_discarded_dead;_4=define_dome-shaped_retention # #_Pattern Discard Male Special 0 2 0 0 # 1 com_domestic 0 0 0 0 # 2 com_foreign 0 0 0 0 # 3 spring_trawl 0 0 0 0 # 4 fall_trawl # # ---------------------------------------------------- AGE-BASED SELECTIVITY SETUP #_age_selex_patterns #Pattern:_0; parm=0; selex=1.0 for ages 0 to maxage #Pattern:_10; parm=0; selex=1.0 for ages 1 to maxage #Pattern:_11; parm=2; selex=1.0 for specified min-max age #Pattern:_12; parm=2; age logistic #Pattern:_13; parm=8; age double logistic #Pattern:_14; parm=nages+1; age empirical #Pattern:_15; parm=0; mirror another age or length selex #Pattern:_16; parm=2; Coleraine - Gaussian #Pattern:_17; parm=nages+1; empirical as random walk N parameters to read can be overridden by setting special to non-zero #Pattern:_41; parm=2+nages+1; // like 17, with 2 additional param for scaling (average over bin range) #Pattern:_18; parm=8; double logistic - smooth transition #Pattern:_19; parm=6; simple 4-parm double logistic with starting age #Pattern:_20; parm=6; double_normal,using joiners #Pattern:_26; parm=3; exponential-logistic in age #Pattern:_27; parm=3+special; cubic spline in age #Pattern:_42; parm=2+special+3; // cubic spline; with 2 additional param for scaling (average over bin range) # #_Pattern Discard Male Special 12 0 0 0 # 1 com_domestic 15 0 0 1 # 2 com_foreign 12 0 0 0 # 3 spring_trawl 12 0 0 0 # 4 fall_trawl # --------------------------------------------------------------------------------- SELECTIVITY PARAMETERS # note: in the SAW54, model selectivity was by age, 50% at 3, 100% at 4. # ------------ length-based retention and discard mortality for fleet 1 #_ LO HI INIT PRIOR PR_SD PR_type PHASE env-var use_dev dev_mnyr dev_mxyr dev_PH Block Blk_Fxn # parm_name 10 100 32 0 0 0 4 0 0 0 0 0 0 0 # Retain_L_infl_com_domestic(1) -1 20 5 0 0 0 4 0 0 0 0 0 0 0 # Retain_L_width_com_domestic(1) -10 1000 999 10 1 0 -2 0 0 0 0 0 0 0 # Retain_L_asymptote_logit_com_domestic(1) -1 2 0 0 1 0 -4 0 0 0 0 0 0 0 # Retain_L_maleoffset_com_domestic(1) -10 10 -5 -5 1 0 -2 0 0 0 0 0 0 0 # DiscMort_L_infl_com_domestic(1) -1 2 1 1 1 0 -4 0 0 0 0 0 0 0 # DiscMort_L_width_com_domestic(1) -1 2 0.9 0.9 1 0 -2 0 0 0 0 0 0 0 # DiscMort_L_level_com_domestic(1) assumed 95% disc mort for now -1 2 0 0 1 0 -4 0 0 0 0 0 0 0 # DiscMort_L_male_offset_com_domestic(1) # -------------------- age selex init close to SS estimate #_flt2 0 10 2.3 0 0 0 2 0 0 0 0 0 0 0 # AgeSel_P1_com_foreign #_flt2 0 5 0.5 0 0 0 3 0 0 0 0 0 0 0 # AgeSel_P2_com_foreign 0 10 3.0 0 0 0 4 0 0 0 0 0 0 0 # AgeSel_P1_com_domestic 0 5 1.0 0 0 0 4 0 0 0 0 0 0 0 # AgeSel_P2_com_domestic 0 10 1.7 0 0 0 3 0 0 0 0 0 0 0 # AgeSel_P1_SPRING_TRAWL 0 5 0.5 0 0 0 3 0 0 0 0 0 0 0 # AgeSel_P2_SPRING_TRAWL 0 10 1.0 0 0 0 3 0 0 0 0 0 0 0 # AgeSel_P1_FALL_TRAWL 0 5 0.5 0 0 0 3 0 0 0 0 0 0 0 # AgeSel_P2_FALL_TRAWL # -------------------- age selex: surveys fixed to mimic 2019 update # 0 10 2.3 0 0 0 2 0 0 0 0 0 0 0 # AgeSel_P1_com_domestic # 0 5 0.5 0 0 0 3 0 0 0 0 0 0 0 # AgeSel_P2_com_domestic # 0 10 2.3 0 0 0 2 0 0 0 0 0 0 0 # AgeSel_P1_com_foreign # 0 5 0.5 0 0 0 3 0 0 0 0 0 0 0 # AgeSel_P2_com_foreign # 0 10 3.0 0 0 0 2 0 0 0 0 0 0 0 # AgeSel_P1_SPRING_TRAWL # 0 5 0.5 0 0 0 3 0 0 0 0 0 0 0 # AgeSel_P2_SPRING_TRAWL # 0 10 3.0 0 0 0 2 0 0 0 0 0 0 0 # AgeSel_P1_FALL_TRAWL # 0 5 0.5 0 0 0 3 0 0 0 0 0 0 0 # AgeSel_P2_FALL_TRAWL # #_ TIME VARYING LENGTH SELECTIVITY # 0 # use 2D_AR1 selectivity(0/1): experimental feature #_no 2D_AR1 selex offset used # ------------------------ TAGGING # Tag loss and Tag reporting parameters go next 0 # TG_custom: 0=no read; 1=read if tags exist #_Cond -6 6 1 1 2 0.01 -4 0 0 0 0 0 0 0 #_placeholder if no parameters # # no timevary parameters # # -------------------------------------------------------------------- VARIANCE ADJUSTMENT # Input variance adjustments factors: #_1=add_to_survey_CV #_2=add_to_discard_stddev #_3=add_to_bodywt_CV #_4=mult_by_lencomp_N #_5=mult_by_agecomp_N #_6=mult_by_size-at-age_N #_7=mult_by_generalized_sizecomp #_Fact Fleet Value 5 1 1 # com_domestic age comps 5 3 1 # spr_survey age comps multiplicative 1 3 0 # spr_survey CPUE additive 5 4 1 # fall_survey age comps multiplicative 1 4 0 # fall_survey CPUE additive -9999 0 0 # terminator # -------------------------------------------------------------------- LAMBDAS 4 #_maxlambdaphase 1 #_sd_offset; must be 1 if any growthCV, sigmaR, or survey extraSD is an estimated parameter # read 3 changes to default Lambdas (default value is 1.0) # Like_comp codes: 1=surv; 2=disc; 3=mnwt; 4=length; 5=age; 6=SizeFreq; 7=sizeage; 8=catch; 9=init_equ_catch; # 10=recrdev; 11=parm_prior; 12=parm_dev; 13=CrashPen; 14=Morphcomp; 15=Tag-comp; 16=Tag-negbin; 17=F_ballpark; 18=initEQregime #like_comp fleet phase value sizefreq_method # 9 1 1 0 1 -9999 1 1 1 1 # terminator # # lambdas (for info only; columns are phases) # 0 0 0 0 #_CPUE/survey:_1 # 1 1 1 1 #_CPUE/survey:_2 # 1 1 1 1 #_CPUE/survey:_3 # 1 1 1 1 #_agecomp:_1 # 1 1 1 1 #_agecomp:_2 # 0 0 0 0 #_agecomp:_3 # 1 1 1 1 #_init_equ_catch # 1 1 1 1 #_recruitments # 1 1 1 1 #_parameter-priors # 1 1 1 1 #_parameter-dev-vectors # 1 1 1 1 #_crashPenLambda # 0 0 0 0 # F_ballpark_lambda 0 # (0/1) read specs for more stddev reporting # 1 2 -1 5 0 0 1 -1 5 # selex_fleet, 1=len/2=age/3=both, year, N selex bins, 0 or Growth pattern, N growth ages, 0 or NatAge_area(-1 for sum), NatAge_yr, N Natages # 1 3 5 7 8 # vector with selex std bins (-1 in first bin to self-generate) # 1 2 14 26 40 # vector with NatAge std ages (-1 in first bin to self-generate) 999