Runs an operating model over a range of fishing mortality, \(F\), levels to determine the F at maximum sustainable yield, \(F_{MSY}\).

profile_fmsy(
  om_in,
  results_out,
  start = 0,
  end = 1.5,
  by_val = 0.01,
  verbose = FALSE
)

Arguments

om_in

A full or relative path to a directory that contains an ss3sim operating model.

results_out

A full or relative path to a directory where the results will be saved. The directory will be created if it does not already exist.

start, end

A single numerical value for each argument specifying the lowest and highest fishing levels that you want to explore for the fishing fleet in your model.

by_val

Interval at which fishing mortality will be incremented between start and end using seq(start, end, by_val).

verbose

When TRUE messages will be returned from the function. Often useful for debugging. The default is FALSE.

Value

A data frame of catch by fishing mortality is returned invisibly and saved to the disk along with a figure, Fmsy.pdf.

Details

profile_fmsy() runs the operating model with a constant level of fishing for each year and extracts the expected catch in the terminal year. It is assumed that the model time series is long enough for the population to come to equilibrium, and thus, the catch in the terminal year is equivalent to equilibrium catch.

If the function is run with verbose = TRUE, which is not the default, the coefficient of variations of the catches in the terminal years of the model will be printed to the screen. Here, terminal is defined as half as many years as there are ages in the population dynamics of your model. Thus, if the population plus group starts at age twenty, the standard deviation of the last ten years of catch divided by the mean catch over that same time will be printed to the screen for each model that is ran. For the default cod model provided within the package, the CV is less than 1e-04 for all explored levels of fishing mortality.

Ensure that the argument om_in leads to an operating model that is configured for use within ss3sim. For example, the \(F\) type must allow for an input vector of \(Fs\) rather than catches, along with other specifications.

Examples

if (FALSE) {
d <- system.file("extdata", "models", "cod-om", package = "ss3sim")
fmsy.val <- profile_fmsy(
  om_in = d, results_out = "fmsy",
  start = 0.1, end = 0.2, by_val = 0.05
)
# cleanup
unlink("fmsy", recursive = TRUE)
}