library(stockassessment)

oldwd<-setwd("data")

  cn<-read.ices("cn.dat")
  cw<-read.ices("cw.dat")
  dw<-read.ices("dw.dat")
  lw<-read.ices("lw.dat")
  mo<-read.ices("mo.dat")
  nm<-read.ices("nm.dat")
  pf<-read.ices("pf.dat")
  pm<-read.ices("pm.dat")
  sw<-read.ices("sw.dat")
  lf<-read.ices("lf.dat")
  surveys<-read.ices("survey.dat")
  cnA<-read.ices("cn_A.dat")
  cnC<-read.ices("cn_C.dat")
  cnD<-read.ices("cn_D.dat")
  cnF<-read.ices("cn_F.dat")
  cwA<-read.ices("cw_A.dat")
  cwC<-read.ices("cw_C.dat")
  cwD<-read.ices("cw_D.dat")
  cwF<-read.ices("cw_F.dat")

  idx<-!rownames(cn)%in%rownames(cnA)
  sumACDF<-cn[idx,]
  attr(sumACDF, "sumof")<-c(1,2,3,4)
  # temp fix to convergence problems 
# Change in 2025 (comment the code below):
# cnA[cnA==0]<-1; cnA[,1]<-0
# #cnC[cnC==0]<-1
# cnD[cnD==0]<-1
# cnF[cnF==0]<-1




  # patch back in time:
  cwA<-rbind(t(t(cw[!rownames(cw)%in%rownames(cwA),])), cwA)
  cwC<-rbind(t(t(cw[!rownames(cw)%in%rownames(cwC),])), cwC)
  cwD<-rbind(t(t(cw[!rownames(cw)%in%rownames(cwD),])), cwD)
  cwF<-rbind(t(t(cw[!rownames(cw)%in%rownames(cwF),])), cwF)

## CVs for IBTS/BITS Q1
ibtsbitsCV <- read.table("ibtsbitsCV.dat")
#ibtsbitsCV <- as.matrix(ibtsbitsCV)
attributes(surveys[[4]])$weight = (1/ibtsbitsCV^2)
##

setwd(oldwd)

dat<-setup.sam.data(surveys=surveys,
                    residual.fleet=list(cnA, cnC, cnD, cnF), 
                    sum.residual.fleets=sumACDF,
                    prop.mature=mo, 
                    stock.mean.weight=sw, 
                    catch.mean.weight=list(cwA, cwC, cwD, cwF), 
                    dis.mean.weight=dw, 
                    land.mean.weight=lw,
                    prop.f=pf, 
                    prop.m=pm, 
                    natural.mortality=nm, 
                    land.frac=lf)

attr(dat, "fleetNames")[1:4] <- c("A-fleet", "C-fleet", "D-fleet", "F-fleet") # better naming of the fleets
attr(dat, "fleetNames")[length(attr(dat, "fleetNames"))] <- "Fleet(A+C+D+F)"

save(dat, file="run/data.RData")
