### Changes in 2020 to solve problem of convergence


myrunwithout <- function(fit, year=NULL, fleet=NULL, ...){
  data <- reduce(fit$data, year=year, fleet=fleet, conf=fit$conf)      
  conf <- attr(data, "conf")
  pd <- defpar(data,conf)
  par<-fit$pl
  par$logFpar[]<-0 # change in 2025
  par$logN<-pd$logN
  par$logF<-pd$logF  
  par$missing<-NULL
  attr(par, "what") <- NULL
  ret <- sam.fit(data, conf, par, map=fit$obj$env$map, ...)
  return(ret)
}

myretro <- function(fit, year=NULL, ncores=detectCores(), ...){
  data <- fit$data
  y <- fit$data$aux[,"year"]
  f <- fit$data$aux[,"fleet"]
  suf <- sort(unique(f))
  maxy <- sapply(suf, function(ff)max(y[f==ff]))
  if(length(year)==1){
    mat <- sapply(suf,function(ff){my<-maxy[ff];my:(my-year+1)})
  }
  if(is.vector(year) & length(year)>1){
    mat <- sapply(suf,function(ff)year)
  }
  if(is.matrix(year)){
    mat <- year
  }

  if(nrow(mat)>length(unique(y)))stop("The number of retro runs exceeds number of years")
  if(ncol(mat)!=length(suf))stop("Number of retro fleets does not match")

  setup <- lapply(1:nrow(mat),function(i)do.call(rbind,lapply(suf,function(ff)if(mat[i,ff]<=maxy[ff]){cbind(mat[i,ff]:maxy[ff], ff)})))
  runs <- lapply(setup, function(s)myrunwithout(fit, year=s[,1], fleet=s[,2], ...))
  attr(runs, "fit") <- fit
  class(runs)<-"samset"
  runs
}


library(stockassessment)
load("run/model.RData")
MAT <- cbind(matrix(rep(max(fit$data$year):(max(fit$data$year)-4), fit$data$noFleets-1), ncol=fit$data$noFleets-1), 3000) # corrected in 2025, previously 6 peels, 3000 so that no year is removed for sumfleet
#MAT<-cbind(max(fit$data$year):(max(fit$data$year)-5), max(fit$data$year):(max(fit$data$year)-5), max(fit$data$year):(max(fit$data$year)-5), max(fit$data$year):(max(fit$data$year)-5), max(fit$data$year):(max(fit$data$year)-5), max(fit$data$year):(max(fit$data$year)-5), max(fit$data$year):(max(fit$data$year)-5), max(fit$data$year):(max(fit$data$year)-5), max(fit$data$year):(max(fit$data$year)-5), 3000)
#MAT<-cbind(2020:2015, 2020:2015, 2020:2015, 2020:2015, 2020:2015, 2020:2015, 2020:2015, 2020:2015, 2020:2015, 3000)
RETRO<-myretro(fit, year=MAT)
save(RETRO, file="run/retro.RData")
 


#library(stockassessment)
#load("run/model.RData")
#MAT<-cbind(2019:2014, 2019:2014, 2019:2014, 2019:2014, 2019:2014, 2019:2014, 2019:2014, 2019:2014, 2019:2014, 3000)
#RETRO<-retro(fit, year=MAT)
#save(RETRO, file="run/retro.RData")
