Skip to content

refactor Fmethod controls and expand Fmethod 4 capabilities  #581

@Rick-Methot-NOAA

Description

@Rick-Methot-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:

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

  • 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

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

Metadata

Metadata

Labels

change loguse for issues that should appear in change logdocdocumentation still needed.fishing mortality

Type

No type

Projects

Status

Done

Status

Done

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions