#!/bin/ksh
#
#---------------------------------------
# ksh job run in Hexagon
#---------------------------------------
#
#PBS -A nn9039k
#PBS -W group_list=noresm
#PBS -N timeseries
#PBS -l select=1:ncpus=32
#PBS -l walltime=20:00:00
#PBS -j oe
#PBS -S /bin/ksh
#
set -xe
#
typeset -Z2 monat    
# what does this typeset?
# loading modules in NorStore for ksh
#. /opt/modules/default/init/ksh
#module load cdo

# Script for preparing the MICOM forcing BCs for the CAM4_eqmeanSST_mean case

# I have to calculate the multi-year means in this script. Otherwise it will be same as CAM4_eqmeanSST case

# These are previous steps that I did in the timeseries.sh scripts for selecting the data from CAM4 output files.
# I COULD WRITE A SINGLE SCRIPT THAT DOES EVERYTHING AT THE SAME TIME AND RUN IT ON DIFFERENT SCREENS

#cdo selname,PRECT FAMIPCN_f09_f09_GR01_SSTclim.cam2.h2.2013-01-01-00000.nc FAMIPCN_f09_f09_GR01_SSTclim.cam2.h2.2013-01-01-00000.nc_PRECT_2013.nc
#cdo mergetime FAMIPCN_f09_f09_GR01_SSTclim.cam2.h2.1982-01-01-00000.nc_PRECT_****.nc FAMIPCN_f09_f09_expD.cam2.h2.1982-2013_PRECT_.nc

cdo ydaymean FAMIPCN_f09_f09_expD.cam2.h2.1982-2013_FLDS_.nc FAMIPCN_f09_f09_expD.2013_FLDS_daymean.nc
cdo ydaymean FAMIPCN_f09_f09_expD.cam2.h2.1982-2013_FSDS_.nc FAMIPCN_f09_f09_expD.2013_FSDS_daymean.nc
cdo ydaymean FAMIPCN_f09_f09_expD.cam2.h2.1982-2013_FSNS_.nc FAMIPCN_f09_f09_expD.2013_FSNS_daymean.nc

# Precipitation
cdo ymonmean FAMIPCN_f09_f09_expD.cam2.h2.1982-2013_PRECT_.nc FAMIPCN_f09_f09_expD.2013_PRECT_monmean.nc
cdo remapcon,n47 FAMIPCN_f09_f09_expD.2013_PRECT_monmean.nc FAMIPCN_f09_f09_expD.2013_PRECT_temp.nc
# LWDN
cdo remapcon,n47 FAMIPCN_f09_f09_expD.2013_FLDS_daymean.nc FAMIPCN_f09_f09_expD.2013_FLDS_temp.nc
# SWDN
cdo remapcon,n47 FAMIPCN_f09_f09_expD.2013_FSDS_daymean.nc FAMIPCN_f09_f09_expD.2013_FSDS_temp.nc
# SWUP
cdo sub FAMIPCN_f09_f09_expD.2013_FSDS_daymean.nc FAMIPCN_f09_f09_expD.2013_FSNS_daymean.nc FAMIPCN_f09_f09_expD.2013_SWUP_daymean.nc
cdo remapcon,n47 FAMIPCN_f09_f09_expD.2013_SWUP_daymean.nc FAMIPCN_f09_f09_expD.2013_SWUP_temp.nc
# SLP
cdo inttime,1982-01-01,00:00:00,6hour FAMIPCN_f09_f09_expD.cam2.h3.1982-2013_PSL_.nc FAMIPCN_f09_f09_expD.1982-2013_PSL_6h.nc
cdo yhourmean FAMIPCN_f09_f09_expD.1982-2013_PSL_6h.nc FAMIPCN_f09_f09_expD.2013_PSL_6hmean.nc
cdo remapcon,n47 FAMIPCN_f09_f09_expD.2013_PSL_6hmean.nc FAMIPCN_f09_f09_expD.2013_PSL_temp.nc
# t_10
cdo inttime,1982-01-01,00:00:00,6hour FAMIPCN_f09_f09_expD.cam2.h3.1982-2013_TREFHT_.nc FAMIPCN_f09_f09_expD.1982-2013_TREFHT_6h.nc
cdo yhourmean FAMIPCN_f09_f09_expD.1982-2013_TREFHT_6h.nc FAMIPCN_f09_f09_expD.2013_TREFHT_6hmean.nc
cdo remapcon,n47 FAMIPCN_f09_f09_expD.2013_TREFHT_6hmean.nc FAMIPCN_f09_f09_expD.2013_TREFHT_temp.nc

# U10, TAUX and TAUY for calcualting u_10 and v_10 in MATLAB using the Bulk formulas
cdo inttime,1982-01-01,00:00:00,6hour FAMIPCN_f09_f09_expD.cam2.h3.1982-2013_U10_.nc FAMIPCN_f09_f09_expD.1982-2013_U10_6h.nc
cdo yhourmean FAMIPCN_f09_f09_expD.1982-2013_U10_6h.nc FAMIPCN_f09_f09_expD.2013_U10_6hmean.nc
cdo remapcon,n47 FAMIPCN_f09_f09_expD.2013_U10_6hmean.nc FAMIPCN_f09_f09_expD.2013_U10_temp.nc
cdo inttime,1982-01-01,00:00:00,6hour FAMIPCN_f09_f09_expD.cam2.h3.1982-2013_TAUY_.nc FAMIPCN_f09_f09_expD.1982-2013_TAUY_6h.nc
cdo yhourmean FAMIPCN_f09_f09_expD.1982-2013_TAUY_6h.nc FAMIPCN_f09_f09_expD.2013_TAUY_6hmean.nc
cdo remapcon,n47 FAMIPCN_f09_f09_expD.2013_TAUY_6hmean.nc FAMIPCN_f09_f09_expD.2013_TAUY_temp.nc
cdo inttime,1982-01-01,00:00:00,6hour FAMIPCN_f09_f09_expD.cam2.h3.1982-2013_TAUX_.nc FAMIPCN_f09_f09_expD.1982-2013_TAUX_6h.nc
cdo yhourmean FAMIPCN_f09_f09_expD.1982-2013_TAUX_6h.nc FAMIPCN_f09_f09_expD.2013_TAUX_6hmean.nc
cdo remapcon,n47 FAMIPCN_f09_f09_expD.2013_TAUX_6hmean.nc FAMIPCN_f09_f09_expD.2013_TAUX_temp.nc


cdo setyear,2013 FAMIPCN_f09_f09_expD.2013_PRECT_temp.nc FAMIPCN_eqmeanSSTmean.prect.T62.2013.nc
cdo setyear,2013 FAMIPCN_f09_f09_expD.2013_FLDS_temp.nc FAMIPCN_eqmeanSSTmean.lwdn.T62.2013.nc
cdo setyear,2013 FAMIPCN_f09_f09_expD.2013_FSDS_temp.nc FAMIPCN_eqmeanSSTmean.swdn.T62.2013.nc
cdo setyear,2013 FAMIPCN_f09_f09_expD.2013_SWUP_temp.nc FAMIPCN_eqmeanSSTmean.swup.T62.2013.nc
cdo setyear,2013 FAMIPCN_f09_f09_expD.2013_PSL_temp.nc FAMIPCN_eqmeanSSTmean.slp.T62.2013.nc
cdo setyear,2013 FAMIPCN_f09_f09_expD.2013_TREFHT_temp.nc FAMIPCN_eqmeanSSTmean.t_10.T62.2013.nc
cdo setyear,2013 FAMIPCN_f09_f09_expD.2013_U10_temp.nc FAMIPCN_eqmeanSSTmean.U10.T62.2013.nc
cdo setyear,2013 FAMIPCN_f09_f09_expD.2013_TAUX_temp.nc FAMIPCN_eqmeanSSTmean.TAUX.T62.2013.nc
cdo setyear,2013 FAMIPCN_f09_f09_expD.2013_TAUY_temp.nc FAMIPCN_eqmeanSSTmean.TAUY.T62.2013.nc


# ---------------------
# Calculate dn10 variable
# ---------------------

cdo inttime,1982-01-01,00:00:00,6hour FAMIPCN_f09_f09_expD.cam2.h0.1982-2013_QREFHT_.nc FAMIPCN_f09_f09_expD.cam2.h0.1982-2013_QREFHT_6h.nc
cdo yhourmean FAMIPCN_f09_f09_expD.cam2.h0.1982-2013_QREFHT_6h.nc FAMIPCN_f09_f09_expD.cam2.h0.2013_QREFHT_6hmean.nc
cdo remapcon,n47 FAMIPCN_f09_f09_expD.cam2.h0.2013_QREFHT_6hmean.nc FAMIPCN_f09_f09_expD.2013_QREFHT_temp.nc

cdo mulc,287.04 FAMIPCN_f09_f09_expD.2013_TREFHT_temp.nc TREFHT_term.nc
cdo mulc,0.608 FAMIPCN_f09_f09_expD.2013_QREFHT_temp.nc QREFHT_term_temp.nc
cdo addc,1 QREFHT_term_temp.nc QREFHT_term.nc
cdo mul TREFHT_term.nc QREFHT_term.nc TREFHT_QREFHT_term.nc
cdo div FAMIPCN_f09_f09_expD.2013_PSL_temp.nc TREFHT_QREFHT_term.nc FAMIPCN.dn10.f09_f09.expD.2013_6hmean_temp.nc
cdo setyear,2013 FAMIPCN.dn10.f09_f09.expD.2013_6hmean_temp.nc FAMIPCN_eqmeanSSTmean.dn10.T62.2013_temp.nc
cdo setname,dn10 FAMIPCN_eqmeanSSTmean.dn10.T62.2013_temp.nc FAMIPCN_eqmeanSSTmean.dn10.T62.2013.nc
cdo setyear,2013 FAMIPCN_f09_f09_expD.2013_QREFHT_temp.nc FAMIPCN_eqmeanSSTmean.q_10.T62.2013.nc


# -----------
#
# Use the shiftime loop here for creating files for every year
#
# ----------

iyr=2013
eyr=1949

i=$iyr
while [ ${i} -ge $eyr ] ; do
echo $i
#
# Select the variables one by one and creating one file per variable and year
cdo shifttime,-365day FAMIPCN_eqmeanSSTmean.prect.T62.${i}.nc FAMIPCN_eqmeanSSTmean.prect.T62.$(($i - 1)).nc
cdo shifttime,-365day FAMIPCN_eqmeanSSTmean.lwdn.T62.${i}.nc FAMIPCN_eqmeanSSTmean.lwdn.T62.$(($i - 1)).nc
cdo shifttime,-365day FAMIPCN_eqmeanSSTmean.swdn.T62.${i}.nc FAMIPCN_eqmeanSSTmean.swdn.T62.$(($i - 1)).nc
cdo shifttime,-365day FAMIPCN_eqmeanSSTmean.swup.T62.${i}.nc FAMIPCN_eqmeanSSTmean.swup.T62.$(($i - 1)).nc
cdo shifttime,-365day FAMIPCN_eqmeanSSTmean.slp.T62.${i}.nc FAMIPCN_eqmeanSSTmean.slp.T62.$(($i - 1)).nc
cdo shifttime,-365day FAMIPCN_eqmeanSSTmean.t_10.T62.${i}.nc FAMIPCN_eqmeanSSTmean.t_10.T62.$(($i - 1)).nc
cdo shifttime,-365day FAMIPCN_eqmeanSSTmean.q_10.T62.${i}.nc FAMIPCN_eqmeanSSTmean.q_10.T62.$(($i - 1)).nc
cdo shifttime,-365day FAMIPCN_eqmeanSSTmean.dn10.T62.${i}.nc FAMIPCN_eqmeanSSTmean.dn10.T62.$(($i - 1)).nc
cdo shifttime,-365day FAMIPCN_eqmeanSSTmean.U10.T62.${i}.nc FAMIPCN_eqmeanSSTmean.U10.T62.$(($i - 1)).nc
cdo shifttime,-365day FAMIPCN_eqmeanSSTmean.TAUX.T62.${i}.nc FAMIPCN_eqmeanSSTmean.TAUX.T62.$(($i - 1)).nc
cdo shifttime,-365day FAMIPCN_eqmeanSSTmean.TAUY.T62.${i}.nc FAMIPCN_eqmeanSSTmean.TAUY.T62.$(($i - 1)).nc


# Advancing to the next timestep (year)
i=`expr ${i} - 1`
done


rm  *6hmean.nc
rm  *daymean.nc
rm  *monmean.nc
rm  *temp.nc
rm  *6h.nc


