#!/bin/bash

## Just run code in recipes, use it carefully
## example: use cdo to make cache file. Since cdo is quicker than ncl.
#;DIAG_NORCPM; RUNTHESECODES: echo '    no codes run here.'

## ccipc2 env
module purge
module load cdo_gcc-7.5.0/1.9.8
#
outfile=era5_msl_cor_ANN.nc
modfile=ens_PSL_ano.nc
var=msl
outDJF=${outfile%_ANN.*}_DJF.nc
outMAM=${outfile%_ANN.*}_MAM.nc
outJJA=${outfile%_ANN.*}_JJA.nc
outSON=${outfile%_ANN.*}_SON.nc
test -f ${outfile} && exit 0
## loop for every member
ifiles=$(ls ${d}//projects/NS9039K/shared/ERA5/monthly/ts_msl/ts_msl_monthly_{1982..2020}.nc)
cdo -O    -b F64         \
    -select,name=${var} \
    ${ifiles} \
    ERA5_msl_1982-2020.nc
    
# correlation, need regrid
cdo  -O -b F64 \
    -ymonsub ERA5_msl_1982-2020.nc -ymonmean ERA5_msl_1982-2020.nc  \
    ERA5_msl_ano_1982-2020.nc
## Somehow remap is easily crash, should be run along
cdo  -O  \
    -remapbic,${modfile} \
    ERA5_msl_ano_1982-2020.nc \
    tmp2.nc
cdo  -O -timcor     \
    -selvar,msl tmp2.nc    \
    -select,name=PSL ${modfile} \
    ${outfile}
cdo  -O -timcor    \
    -selseason,DJF -selvar,msl tmp2.nc    \
    -selseason,DJF -select,name=PSL ${modfile} \
    ${outDJF}
cdo  -O -timcor    \
    -selseason,MAM -selvar,msl tmp2.nc    \
    -selseason,MAM -select,name=PSL ${modfile} \
    ${outMAM}
cdo  -O -timcor    \
    -selseason,JJA -selvar,msl tmp2.nc    \
    -selseason,JJA -select,name=PSL ${modfile} \
    ${outJJA}
cdo  -O -timcor    \
    -selseason,SON -selvar,msl tmp2.nc    \
    -selseason,SON -select,name=PSL ${modfile} \
    ${outSON}
rm -f ERA5_msl_ano_1982-2020.nc tmp2.nc


