#!/bin/bash
#
# This script do the post-processing of the 3D ARPEGE simulation
# preparing the nc files to evaluate the metrics
#
# It is called by run_postpro.sh and evaluate annual or seasonal
# mean of a subset of variables using cdo
#
#################################################################

if [ $# != 3 ] ; then
cat <<eod
Usage : postpro.sh WAVE pattern nsim
eod
exit
fi

WAVE=$1
pattern=$2
nsim=$3

#module load nco
#module load cdo/1.9.10

freqm=mon 
per=205009_205111

function moyANN {
  fin=$1
  exp=$2
  var=$3
  cdo seltimestep,4/15 $fin tmp.nc
  cdo timmean tmp.nc postprocessed/${exp}_${var}_ANN.nc
  rm -f tmp.nc
}

function season {
  fin=$1
  exp=$2
  var=$3
  cdo seltimestep,4,5,6 $fin tmp.nc
  cdo timmean tmp.nc postprocessed/${exp}_${var}_DJF.nc
  rm -f tmp.nc
  cdo seltimestep,7,8,9 $fin tmp.nc
  cdo timmean tmp.nc postprocessed/${exp}_${var}_MAM.nc
  rm -f tmp.nc
  cdo seltimestep,10,11,12 $fin tmp.nc
  cdo timmean tmp.nc postprocessed/${exp}_${var}_JJA.nc
  rm -f tmp.nc
  cdo seltimestep,13,14,15 $fin tmp.nc
  cdo timmean tmp.nc postprocessed/${exp}_${var}_SON.nc
  rm -f tmp.nc
}

function extended_season {
  fin=$1
  exp=$2
  var=$3
  cdo seltimestep,4,5,6,7 $fin tmp.nc
  cdo timmean tmp.nc postprocessed/${exp}_${var}_DJFM.nc
  rm -f tmp.nc
 
  cdo seltimestep,10,11,12,13 $fin tmp.nc
  cdo timmean tmp.nc postprocessed/${exp}_${var}_JJAS.nc
  rm -f tmp.nc
}

for isim in `seq -w 001 $nsim`
do
    exp=${pattern}_W${WAVE}_r${isim}
    ## We start by evaluate annual mean of a list of variables
    # gn_fnet_sea gn_sftsf : pour le bilan net à la surface des oceans
    # add cltrad ts tas gn_fnet_sea gn_sftsf hur hurs huss cl uas va vas wap 
    for var in rsdt rsut rsutcs rlut rlutcs rlds rsds rlus rsus hfls hfss pr clt ta hus ua
    do
      fin=orig/${exp}/${exp}_arpsfx_${freqm}_${var}_${per}.nc
      moyANN $fin $exp $var 
    done

    ## Than new variables are evaluated on annual means
    # RSNT
    cdo sub postprocessed/${exp}_rsdt_ANN.nc postprocessed/${exp}_rsut_ANN.nc postprocessed/${exp}_rsnt_ANN.nc
    ncrename -v rsdt,rsnt postprocessed/${exp}_rsnt_ANN.nc
    # RNNT
    cdo sub postprocessed/${exp}_rsnt_ANN.nc postprocessed/${exp}_rlut_ANN.nc postprocessed/${exp}_rnnt_ANN.nc
    ncrename -v rsnt,rnnt postprocessed/${exp}_rnnt_ANN.nc
    # CRE SW
    cdo sub postprocessed/${exp}_rsutcs_ANN.nc postprocessed/${exp}_rsut_ANN.nc postprocessed/${exp}_cresw_ANN.nc
    ncrename -v rsutcs,cresw postprocessed/${exp}_cresw_ANN.nc
    # CRE LW
    cdo sub postprocessed/${exp}_rlutcs_ANN.nc postprocessed/${exp}_rlut_ANN.nc postprocessed/${exp}_crelw_ANN.nc
    ncrename -v rlutcs,crelw postprocessed/${exp}_crelw_ANN.nc
    # RSNS
    cdo sub postprocessed/${exp}_rsds_ANN.nc postprocessed/${exp}_rsus_ANN.nc postprocessed/${exp}_rsns_ANN.nc
    ncrename -v rsds,rsns postprocessed/${exp}_rsns_ANN.nc
    # RLNS
    cdo sub postprocessed/${exp}_rlds_ANN.nc postprocessed/${exp}_rlus_ANN.nc postprocessed/${exp}_rlns_ANN.nc
    ncrename -v rlds,rlns postprocessed/${exp}_rlns_ANN.nc
    # RNNS
    cdo add postprocessed/${exp}_rsns_ANN.nc postprocessed/${exp}_rlns_ANN.nc postprocessed/${exp}_rnns_ANN.nc
    ncrename -v rsns,rnns postprocessed/${exp}_rnns_ANN.nc
    # HFS
    cdo add postprocessed/${exp}_hfls_ANN.nc postprocessed/${exp}_hfss_ANN.nc postprocessed/${exp}_hfs_ANN.nc
    ncrename -v hfls,hfs postprocessed/${exp}_hfs_ANN.nc
    # FNET
    cdo sub postprocessed/${exp}_rnns_ANN.nc postprocessed/${exp}_hfs_ANN.nc postprocessed/${exp}_fnet_ANN.nc
    ncrename -v rnns,fnet postprocessed/${exp}_fnet_ANN.nc
    # TA200
    cdo sellevel,20000 postprocessed/${exp}_ta_ANN.nc postprocessed/${exp}_ta200_ANN.nc
    #cdo --reduce_dim sellevel,20000 postprocessed/${exp}_ta_ANN.nc postprocessed/${exp}_ta200_ANN.nc
    ncrename -v ta,ta200 postprocessed/${exp}_ta200_ANN.nc
    # UA200
    cdo sellevel,20000 postprocessed/${exp}_ua_ANN.nc postprocessed/${exp}_ua200_ANN.nc
    ncrename -v ua,ua200 postprocessed/${exp}_ua200_ANN.nc
    # HUS850
    cdo sellevel,85000 postprocessed/${exp}_hus_ANN.nc postprocessed/${exp}_hus850_ANN.nc
    ncrename -v hus,hus850 postprocessed/${exp}_hus850_ANN.nc
    # HUS500
    cdo sellevel,50000 postprocessed/${exp}_hus_ANN.nc postprocessed/${exp}_hus500_ANN.nc
    ncrename -v hus,hus500 postprocessed/${exp}_hus500_ANN.nc

    ## Finally, precipitation or averaged over extended seasons
    # PR DJFM and JJAS
    #fin=orig/${exp}/${exp}_arpsfx_${freqm}_pr_${per}.nc
    #extended_season $fin $exp pr
done

