-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy path10optional_inputs.tex
75 lines (61 loc) · 6.23 KB
/
10optional_inputs.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
\hypertarget{OptionalInputs}{}
\section[Optional Inputs]{\protect\hyperlink{OptionalInputs}{Optional Inputs}}
\hypertarget{WAA}{}
\subsection[Empirical Weight-at-Age (\texttt{wtatage.ss})]{\protect\hyperlink{WAA}{Empirical Weight-at-Age (\texttt{wtatage.ss})}}
The model has the capability to read empirical body weight-at-age for the population and each fleet, in lieu of generating these weights internally from the growth parameters, weight-at-length, and size-selectivity. Selection of this option is done by setting an explicit switch near the top of the control file. The values are read from a separate file named, \verb|wtatage.ss|. This file is only required to exist if this option is selected.
The first value read is a single integer for the maximum age used in reading this file. So if the maximum age is 40, there will be 41 columns of weight-at-age entries to read, with the first column being for age 0. If the number of ages specified in this table is greater than maximum age in the model, the extra weight-at-age values are ignored. If the number of ages in this table is less than maximum age in the model, the weight-at-age data for the number of ages in the file is filled in for all unread ages out to maximum age.
The format of this input file is:
\begin{center}
\begin{tabular}{l l l l l l l l l}
\hline
40 & \multicolumn{8}{l}{Maximum Age} \\
\hline
& & & Growth & Birth & & & & \Tstrut\\
Year & Season & Sex & Pattern & Season & Fleet & Age-0 & Age-1 & ... \Tstrut\Bstrut\\
\hline
\-1971 & 1 & 1 & 1 & 1 & -2 & 0 & 0 & 0.1003 \Tstrut\\
\-1971 & 1 & 1 & 1 & 1 & -1 & 0.0169 & 0.0864 & 0.2495 \\
\-1971 & 1 & 1 & 1 & 1 & 0 & ... & ... & ... \\
\-1971 & 1 & 1 & 1 & 1 & 1 & ... & ... & ... \\
\-1971 & 1 & 1 & 1 & 1 & 2 & ... & ... & ... \\
-9999 & 1 & 1 & 1 & 1 & 0 & ... & ... & ... \Bstrut\\
\hline
\end{tabular}
\end{center}
where:
\begin{itemize}
\item Fleet = -2 is age-specific fecundity (e.g., fecundity-scalar*maturity*weight-at-age), so time-varying fecundity is possible to implement.
\item Fleet = -1 is population weight-at-age at middle of the season.
\item Fleet = 0 is population weight-at-age at the beginning of the season.
\item There must be an entry for fecundity, population weight-at-age at the middle of the season, population weight-at-age at the beginning of the season, and weight-at-age for each fleet (even if these vectors are identical in some cases).
\item Fleets that do not use biomass do not need to have weight-at-age assigned.
\item Growth pattern and birth season probably will never be used, but are included for completeness.
\item A negative value for year will fill the table from that year through the ending year of the forecast, overwriting anything that has already been read for those years.
\item Judicious use of negative years in the right order will allow user to enter blocks without having to enter a row of info for each year
\item There is no internal error checking to verify that weight-at-age has been read for every fleet and for every year.
\item In the future, there could be an option to use another value of the control file switch to turn off all aspects of growth parameters and size selectivity.
\item The values entered for endyr + 1 will be used for the benchmark calculations and for the forecast; this aspect needs a bit more checking.
\end{itemize}
\myparagraph{Caveats}
\begin{itemize}
\item The growth curve is calculated from the input parameters and can still calculate size-selectivity and can still examine size-composition data.
\item However, there is no calculation of weight-at-age from the growth input, so there is no way to compare the input weight-at-age from the weight-at-age derived from the growth parameters.
\item If weight-at-age is read and size-selectivity is used, a warning is generated.
\item If weight-at-age is read and discard/retention is invoked, then a warning is generated because of untested consequences for the body weight of discarded fish.
\item Age-0 fish seem to need to have weight=0 for spawning biomass calculation (code -2).
\end{itemize}
\myparagraph{User Testing}
\begin{itemize}
\item Setup a model with age-maturity (option 2) and only age selectivity.
\item Take the output calculation of weight-at-age and fecundity-at-age from \verb|report.sso| and put into \verb|wtatage.ss| (as shown above).
\item Re-run the model with this input weight-at-age (Maturity\_Option 5) to see if identical results are produced relative to the run that had generated the weight-at-age from the growth parameters.
\end{itemize}
\hypertarget{runnumber}{}
\subsection[\texttt{runnumber.ss}]{\protect\hyperlink{runnumber}{\texttt{runnumber.ss}}}
This file contains a single integer value. It is read when the program starts, incremented by 1, used when processing the profile value inputs (see below), used as an identifier in the batch output, then saved with the incremented value. Note that this incrementation may not occur if a run crashes.
\hypertarget{profilevalues}{}
\subsection[\texttt{profilevalues.ss}]{\protect\hyperlink{profilevalues}{\texttt{profilevalues.ss}}}
This file contains information for changing the value of selected parameters for each run in a batch. In the control file, each parameter that will be subject to modification by \texttt{profilevalues.ss} is designated by setting its phase to -9999.
The first value in \texttt{profilevalues.ss} is the number of parameters to be batched. This value MUST match the number of parameters with phase set equal to -9999 in the control file. The program performs no checks for this equality. If the value is zero in the first field, then nothing else will be read. Otherwise, the model will read runnumber * Nparameters values and use the last Nparameters of these to replace the initial values of parameters designated with phase = -9999 in the control file.
Usage Note: If one of the batch runs crashes before saving the updated value of \texttt{runnumber.ss}, then the processing of the \verb|profilevalues.ss| will not proceed as expected. Check the output carefully until a more robust procedure is developed. Also, this options was created before use of R became widespread. You probably can create a more flexible approach using R today.
\pagebreak