#!/bin/bash
filein=${1}    # diretorio e arquivo de entrada
fileout=${2}   # diretorio e arquivo de saida
opt=${3}       # tipo de arquivo (atmos ou ocean)
if [ $# -lt 3 ]
    then head -4 ${0}|tail -3
    exit 0
fi
. ${MODULESHOME}/init/bash
module load cdo/1.8.2_cmor2
module load nco
ulimit
if [ "${opt}" = "atmos" ]
then
##### saida Atmosferica
    #cdo -f nc remapbil,media.nc -selvar,uvel,vvel -setcalendar,gregorian -import_grads ${filein} ${fileout}.nc
    cdo -f nc selvar,uvel,vvel -setcalendar,gregorian -import_grads ${filein} ${fileout}

    ncatted -h -O -a _CoordinateAxisType,lat,o,c,"Lat" ${fileout}
    ncatted -h -O -a _CoordinateAxisType,lon,o,c,"Lon" ${fileout}
    grids_lat=`cdo -s sinfo ${fileout}.nc |grep lat\ :|cut -f2 -d:`
    grids_lon=`cdo -s sinfo ${fileout}.nc |grep lon\ :|cut -f2 -d:`
    ncatted -h -O -a grids,lat,o,c,"uniform grids from${grids_lat/degrees*/}" ${fileout}
    ncatted -h -O -a grids,lon,o,c,"uniform grids from${grids_lon/degrees*/}" ${fileout}

    ncatted -h -O -a _CoordinateAxisType,time,o,c,"Time" ${fileout}
    ncatted -h -O -a long_name,time,o,c,"Center Time of the Data" ${fileout}

    ncatted -h -O -a long_name,lev,o,c,"pressure" ${fileout}
    ncatted -h -O -a standard_name,lev,o,c,"air_pressure" ${fileout}
    ncatted -h -O -a units,lev,o,c,"Pa" ${fileout}
    ncatted -h -O -a positive,lev,o,c,"down" ${fileout}
    ncatted -h -O -a _CoordinateAxisType,lev,o,c,"Pressure" ${fileout}
    ncrename -h -d lev,plev -v lev,plev ${fileout}

    ncatted -h -O -a units,vvel,o,c,"m s-1" ${fileout}
    ncatted -h -O -a standard_name,vvel,o,c,"northward_wind" ${fileout}

    ncatted -h -O -a units,uvel,o,c,"m s-1" ${fileout}
    ncatted -h -O -a standard_name,uvel,o,c,"eastward_wind" ${fileout}
else
##### saida oceanica
    #flag_ext="-delete,startdate=1990-10-03"
    set -x
    #cdo -f nc setcalendar,gregorian -selvar,u,v ${flag_ext} ${filein} ${fileout}
    #cdo -f nc remapbil,r1440x720 -setcalendar,gregorian -fillmiss -selvar,u,v ${flag_ext} ${filein} ${fileout}
    #cdo -f nc remapbil,Eta20km_LSMK.nc -setcalendar,gregorian -fillmiss -selvar,u,v ${flag_ext} ${filein} ${fileout}

    #cdo -f nc setcalendar,gregorian -sellonlatbox,-85,20,-60,20 -remapbil,r7200x3600 -fillmiss -selvar,u,v ${flag_ext} ${filein} ${fileout}

    cdo -f nc setcalendar,gregorian -sellonlatbox,-85,20,-60,20 -sellevel,5,15,25,35,45,55,65,75,85,95 -remapbil,r3600x1801 -fillmiss -selvar,u,v ${flag_ext} ${filein} ${fileout}
    #cdo -f nc setcalendar,gregorian -sellonlatbox,-60,20,-30,0 -sellevel,5,15,25,35,45,55,65,75,85,95 -remapbil,r3600x1801 -fillmiss -selvar,u,v ${flag_ext} ${filein} ${fileout}

    cdo -f nc ifnotthen Eta10km_LSMK.nc ${fileout} ${fileout}.tmp
    #cdo -f nc ifnotthen Eta10km_LSMK_rec.nc ${fileout} ${fileout}.tmp

    #cdo -f nc setcalendar,gregorian -sellonlatbox,-85,20,-60,20 -sellevel,5,15,25,35,45,55,65,75,85,95 -remapbil,r1440x720 -fillmiss -selvar,u,v ${flag_ext} ${filein} ${fileout}
    #cdo -f nc setcalendar,gregorian -sellonlatbox,-60,20,-30,0 -sellevel,5,15,25,35,45,55,65,75,85,95 -remapbil,r1440x720 -fillmiss -selvar,u,v ${flag_ext} ${filein} ${fileout}

    #cdo -f nc ifnotthen Eta20km_LSMK.nc ${fileout} ${fileout}.tmp
    #cdo -f nc ifnotthen Eta20km_LSMK_rec.nc ${fileout} ${fileout}.tmp

    mv ${fileout}.tmp ${fileout/.tmp/}

    ncatted -h -O -a _CoordinateAxisType,lat,o,c,"Lat" ${fileout}
    ncatted -h -O -a _CoordinateAxisType,lon,o,c,"Lon" ${fileout}
    grids_lat=`cdo -s sinfo ${fileout} |grep lat\ :|cut -f2 -d:`
    grids_lon=`cdo -s sinfo ${fileout} |grep lon\ :|cut -f2 -d:`
    ncatted -h -O -a grids,lat,o,c,"uniform grids from${grids_lat/degrees*/}" ${fileout}
    ncatted -h -O -a grids,lon,o,c,"uniform grids from${grids_lon/degrees*/}" ${fileout}

    ncatted -h -O -a _CoordinateAxisType,time,o,c,"Time" ${fileout}
    ncatted -h -O -a long_name,time,o,c,"Center Time of the Data" ${fileout}

    ncrename -h -d st_ocean,zlev -v st_ocean,zlev ${fileout}
    ncatted -h -O -a long_name,zlev,o,c,"height above sea level" ${fileout}
    ncatted -h -O -a _CoordinateAxisType,zlev,o,c,"Height" ${fileout}

    ncatted -h -O -a units,u,o,c,"m s-1" ${fileout}
    ncatted -h -O -a units,v,o,c,"m s-1" ${fileout}
    set +x
fi
