library(stockassessment)

#source("src/fixforecast.R")
load("run/model.RData")
 
# options
Ry  <- fit$data$years[(length(fit$data$years)-10):(length(fit$data$years)-1)]
fsq <- fbartable(fit)[nrow(fbartable(fit)),1]

# target F options (set Fsq manually, otherwise the Fsq of the last assessment year is used)
ft   <- c(  0.236, 0.000001,  0.24, 0.33)
labs <- c("CC_Fsq",  "CC_Fzero","CC_Fmsy", "CC-Fpa")

# Catch constraint scenarios (derived from TAC-uptake relationship)
FC<-list(); j <- 0
for (i in 1:length(ft)) {
  j <- j + 1
  set.seed(12345)
  FC[[j]] <-forecast(fit, 
                      catchval = c(NA, 18451, NA, NA, NA), 
                      fval     = c(fsq, NA, ft[i], ft[i], ft[i]), 
                      rec.years = Ry, 
                      label = labs[i], 
                      processNoise = FALSE, 
                      addTSB = TRUE)
}

set.seed(12345)
FC[[length(FC)+1]] <- forecast(fit, fval=c(fsq, NA, NA, NA, NA), catchval=c(NA, 18451, NA, NA, NA), 
                                     nextssb=c(NA,NA,82999,NA,NA), fscale=c(NA,NA,NA,1,1), label="MSYBtrigger/Bpa", rec.years = Ry, 
                                     processNoise = FALSE, addTSB = TRUE)

set.seed(12345)
FC[[length(FC)+1]] <- forecast(fit, fval=c(fsq, NA, NA, NA, NA), catchval=c(NA, 18451, NA, NA, NA), 
                                     nextssb=c(NA,NA,59730,NA,NA), fscale=c(NA,NA,NA,1,1), label="Blim", rec.years = Ry, 
                                     processNoise = FALSE, addTSB = TRUE)

# detailed Fsq forecast (for TAC uptake scenario)
ft2   <- seq(0.01,0.3,0.01)
labs2 <- paste0("F=",as.character(seq(0.01,0.3,0.01)))

FC2   <-list()
for (i in 1:length(ft2)){
  set.seed(12345)
  FC2[[i]] <-forecast(fit, 
                       catchval = c(NA, 18451, NA, NA, NA),
                       fval     = c(fsq, NA, ft2[i], ft2[i], ft2[i]), 
                       rec.years = Ry, 
                       label = labs2[i], 
                       processNoise = FALSE, 
                       addTSB = TRUE)
}



save(FC, file="run/forecast.RData")
save(FC2, file="run/forecast_detailed.RData")
