This issue extends the work of issue #570.
Here I introduce a new indexing array F_PH_time(f,t) that holds the phase in which a F parameter becomes active. In earlier phases, that F parameter will use hybrid. A value of -1 will keep the input value for that F, 99 will cause it to stay hybrid, and other values are as intended.
This new time-specific array allowed deprecated some other F indexing arrays and generally simplifying the code.
This array also allowed the F_detail approach previously only available with Fmethod 2 to be available in Fmethod 4.
So, Fmethod 4 is now a complete superset of Fmethod 2 and 3.
The syntax for F_detail with FMethod 4 looks like this:
4 # F_Method: 1=Pope midseason rate; 2=F as parameter; 3=F as hybrid; 4=fleet-specific parm/hybrid (#4 is superset of #2 and #3 and is recommended)
2.9 # max F (methods 2-4) or harvest fraction (method 1)
# Read list of fleets that do F as parameter; unlisted fleets stay hybrid, bycatch fleets must be included with start_PH=1, high F fleets should switch early
# (A) fleet;
# (B) F_starting_value (ignored if start_PH=1 or reading from ss3.par);
# (C) start_PH for fleet's Fparms (99 to stay in hybrid, <0 to stay at starting value)
# Terminate list with -9999 for fleet (use -9998 to read fleet-time specific F values after reading N hybrid tune loops)
# (A) (B) (C)
1 0.001 99 # Art_Gillnet_1
2 0.001 2 # LongLine_2
3 0.001 99 # Purse_Seine_3
4 0.1001 2 # RR_4
5 0.1 99 # FAD_5
-9998 1 1 # end of list, trigger reading F_detail
4 #_number of loops for hybrid tuning; 4 precise; 3 faster; 2 enough if switching to parms is enabled
# F_detail: List of fleet-time specific F related values to read; enter -Yr to fill remaining years&seasons; -999 for phase or catch_se keeps base value for the run
#Fleet Yr Seas F_value catch_se phase
2 1960 1 0.123 0.05 3
-9999 1 1 1 1 1 # end of F_detail: time-specific F inputs
#
#_initial_F_parms; for each fleet x season that has init_catch; nest season in fleet; count = 0
There is pretty good detail of what is going on in echoinput; search on: 4 F_Method as read.
To-Do
[x] change more of the F loops to using catch_fleet loop rather than all fleets
[ ] use ss_new language to update Manual @e-perl-NOAA
Describe the solution you would like.
This issue extends the work of issue #570. Here I introduce a new indexing array F_PH_time(f,t) that holds the phase in which a F parameter becomes active. In earlier phases, that F parameter will use hybrid. A value of -1 will keep the input value for that F, 99 will cause it to stay hybrid, and other values are as intended. This new time-specific array allowed deprecated some other F indexing arrays and generally simplifying the code. This array also allowed the F_detail approach previously only available with Fmethod 2 to be available in Fmethod 4. So, Fmethod 4 is now a complete superset of Fmethod 2 and 3. The syntax for F_detail with FMethod 4 looks like this:
There is pretty good detail of what is going on in echoinput; search on: 4 F_Method as read. To-Do
FMethod4_test.zip
Describe alternatives you have considered
none
Statistical validity, if applicable
NA
Describe if this is needed for a management application
NA
Additional context
much improved code internal documentation