#!/bin/bash
handler_INT ()
{
  echo "Deleting temp files..."
  rm -fr tmp.id${id}
  exit 2
}
trap handler_INT 2

# module load cdo
# module load nco
##
##  Scripts para converter os arquivos do mercator para 
##  inicializar o modelo MOM6. Default is new grid
##  Opcional: grid: new (360x312,360x313,361x312) or old (360x312)
##
##  Ex: grid_mercator2mom cmems_mod_glo_phy_my_0.083deg_P1D-m_multi-vars_180.00W-179.92E_80.00S-90.00N_0.49-5274.78m_1993-10-31.nc
##
if [ "${1}" = "help" -o -z "${1}" ]
  then grep "##" ${0}|grep -v grep
  exit 0
fi

id=$$
file=${1}
model=${2}
if [ ! "`ls ${file}*`" ]
  then echo "Arquivo inexistente..."
  exit 0
fi
ulimit
set -x
mkdir tmp.id${id}
cp ${file} tmp.id${id}/${file}
cdo -b F32 splitname tmp.id${id}/${file} tmp.id${id}/${file}-
for var in siconc sithick so thetao uo vo zos
do
  ncatted -h -O -a _FillValue,${var},o,f,9.96921e+36 -a missing_value,${var},o,f,9.96921e+36 tmp.id${id}/${file}-${var}.nc
done
# file0=$(ls ${file}_2D_fcst*|head -1)
# file1=$(ls ${file}_3D*|grep uovo|head -1)
file2=tmp.id${id}/${file}-uo.nc
file3=tmp.id${id}/${file}-vo.nc
# file4=$(ls ${file}*|grep wo|head -1)
file5=tmp.id${id}/${file}-so.nc
file6=tmp.id${id}/${file}-thetao.nc
# file5=$(ls ${file}_3D*|grep so|head -1)
# file6=$(ls ${file}_3D*|grep thetao|head -1)
file7=tmp.id${id}/${file}-siconc.nc
file8=tmp.id${id}/${file}-sithick.nc
file9=tmp.id${id}/${file}-zos.nc

cdo mulc,905.0 ${file8} ${file8}.tmp
mv ${file8}.tmp ${file8}

if [ "${model}" = "old" ]
  then 
  cdo -P 1 remapdis,~/bin/grid_360x312.nc,4 -fillmiss ${file2} tmp.id${id}/remap_uo.nc
  cdo -P 1 remapdis,~/bin/grid_360x312.nc,4 -fillmiss ${file3} tmp.id${id}/remap_vo.nc
  # cdo -P 1 remapdis,~/bin/grid_360x312.nc,4 -fillmiss ${file4} tmp.id${id}/remap_wo.nc
  cdo -P 1 remapdis,~/bin/grid_360x312.nc,4 -fillmiss ${file5} tmp.id${id}/remap_so.nc
  cdo -P 1 remapdis,~/bin/grid_360x312.nc,4 -fillmiss ${file6} tmp.id${id}/remap_thetao.nc
  cdo -P 1 -aexpr,'siconc=(siconc>0)?siconc:0' -remapdis,~/bin/grid_360x312.nc,4 -setmisstoc,0.0 ${file7} tmp.id${id}/remap_siconc.nc
  cdo -P 1 remapdis,~/bin/grid_360x312.nc,4 -setmisstoc,0.0 ${file8} tmp.id${id}/remap_sithick.nc
  cdo -P 1 remapdis,~/bin/grid_360x312.nc,4 -fillmiss ${file9} tmp.id${id}/remap_zos.nc
  else
  cdo -P 1 remapdis,~/bin/grid_361x312.nc,4 -fillmiss ${file2} tmp.id${id}/remap_uo.nc
  cdo -P 1 remapdis,~/bin/grid_360x313.nc,4 -fillmiss ${file3} tmp.id${id}/remap_vo.nc
  # cdo -P 1 remapdis,~/bin/grid_360x312.nc,4 -fillmiss ${file4} tmp.id${id}/remap_wo.nc
  cdo -P 1 remapdis,~/bin/grid_360x312.nc,4 -fillmiss ${file5} tmp.id${id}/remap_so.nc
  cdo -P 1 remapdis,~/bin/grid_360x312.nc,4 -fillmiss ${file6} tmp.id${id}/remap_thetao.nc
  cdo -P 1 -aexpr,'siconc=(siconc>0)?siconc:0' -remapdis,~/bin/grid_360x312.nc,4 -setmisstoc,0.0 ${file7} tmp.id${id}/remap_siconc.nc
  cdo -P 1 remapdis,~/bin/grid_360x312.nc,4 -setmisstoc,0.0 ${file8} tmp.id${id}/remap_sithick.nc
  cdo -P 1 remapdis,~/bin/grid_360x312.nc,4 -fillmiss ${file9} tmp.id${id}/remap_zos.nc
fi
# cdo merge tmp.id${id}/remap_so.nc tmp.id${id}/remap_thetao.nc tmp.id${id}/remap_uo.nc tmp.id${id}/remap_vo.nc tmp.id${id}/remap_wo.nc tmp.id${id}/remap_${file}.nc
# ncrename -v so,salt -v thetao,ptemp -v uo,u -v vo,v -v wo,w tmp.id${id}/remap_${file}.nc
cdo merge tmp.id${id}/remap_so.nc tmp.id${id}/remap_thetao.nc tmp.id${id}/remap_uo.nc tmp.id${id}/remap_vo.nc tmp.id${id}/remap_siconc.nc tmp.id${id}/remap_sithick.nc tmp.id${id}/remap_zos.nc tmp.id${id}/remap_${file}.nc
ncrename -v so,salt -v thetao,ptemp -v uo,u -v vo,v -v siconc,sic -v sithick,sit -v zos,ssh tmp.id${id}/remap_${file}.nc
cdo fillmiss tmp.id${id}/remap_${file}.nc ./mom6_${file/.nc/}${model}.nc
handler_INT
