#!/bin/ksh -x
#
# Verifica se foi passado algum parametro
if (($#==1)) ; then
  export Run_Date=${2}${1}
else 
  echo "passar data no formato yyyymmddhh"
  exit 0
fi


# VARIAVEIS
export Dir_scr=.
#export Dir_home=`dirname ${Dir_scr}`
#export Dir_datain=`dirname ${Dir_home}`
export ModelDrive=ERA5
export Dir_wrk=.
export Dir_ETAwrk=.
#export Dir_SST_ETAwrk=${Dir_datain}/sst/ETAwrk/${ModelDrive}.${CFS_Member}/${Run_Date}
export Dir_util=.
#export Dir_dprep_exe=${Dir_datain}/dprep/exe
#export InitBC=6
#export IntSST=24
export FInitBC=${ModelDrive}

cp ${Dir_scr}/InputModelInf.txt_${ModelDrive} ${Dir_ETAwrk}/InputModelInf.txt

me=$(whoami)
echo "I am $me."

echo 'remove old files!!!'
rm -fv wbin.*
rm -fv wbin.*


typeset -Z6 Fcti 

Fcti=000000

echo '==================================================='
echo 'file in process '${Dir_wrk}'/ERA5_Pressure_'${Run_Date}'.grib'
echo '==================================================='

line=$(${Dir_util}/wgrib -v ${Dir_wrk}'/ERA5_Pressure_'${Run_Date}'.grib' | grep "Geopotential" | grep "20 mb")
adate=`echo ${line}|cut -d"=" -f2|cut -c1-10`
echo $adate > ${Dir_ETAwrk}/adate.txt
echo $adate $Run_Date

if [ $adate -eq $Run_Date ] ; then
  echo "The ERA5 date is $adate"
else
  echo "Data for $Run_Date isn't available"
  exit 99 
fi

rm -f  ${Dir_ETAwrk}/${FInitBC}_${Run_Date}.${Fcti}
touch  ${Dir_ETAwrk}/${FInitBC}_${Run_Date}.${Fcti}
echo 'OPEN ' ${Dir_ETAwrk}/${FInitBC}_${Run_Date}.${Fcti} '  FILE'

if [[ ! -s ${Dir_ETAwrk}/ERA5_field_rec.txt ]] ; then
for vars in \
          "Geopotential"      \
          "U velocity"        \
          "V velocity"        \
          "Temperature"       \
          "Relative humidity" \
          "Specific humidity" \
          ; do
for levs in 1000 975 950 925 900 875 850 825 800 775 750 700 650 \
             600 550 500 450 400 350 300 250 225 200 \
             175 150 125 100  70  50  30  20 ;do

line=$(${Dir_util}/wgrib -v ${Dir_wrk}'/ERA5_Pressure_'${Run_Date}'.grib' | grep "$vars" | grep ":$levs mb")

if [ -z "$line" ]; then
echo 'MISSING DATA :: VAR = '$vars' LEVEL = '$levs
else

tptp=`expr index "$line" :`
tptp=`expr $tptp - 1`
nrec=${line:0:$tptp}


${Dir_util}/wgrib -d $nrec ${Dir_wrk}'/ERA5_Pressure_'${Run_Date}'.grib' -nh -bin  -append -o ${Dir_ETAwrk}/${FInitBC}_${Run_Date}.${Fcti} >> ${Dir_ETAwrk}/log.${Fcti}
echo  "${nrec}" >> ${Dir_ETAwrk}/ERA5_field_rec.txt
fi   # if [ -z "$line" ]

done # for levs 
done # for vars 
else

cat ${Dir_ETAwrk}/ERA5_field_rec.txt | while read nrec
do
   ${Dir_util}/wgrib -d $nrec ${Dir_wrk}'/ERA5_Pressure_'${Run_Date}'.grib' -nh -bin -append -o ${Dir_ETAwrk}/${FInitBC}_${Run_Date}.${Fcti} >> ${Dir_ETAwrk}/log.${Fcti}
   echo "nrec: $nrec"
done

fi

exit
# SURFACE VARIABLES

for vars in \
            "Land-sea mask"                \
            "Mean sea level pressure"      \
            "Surface pressure"             \
            "Geopotential"                 \
            "Soil temperature level 1"     \
            "Volumetric soil water layer 1"\
            "Soil temperature level 2"     \
            "Volumetric soil water layer 2"\
            "Soil temperature level 3"     \
            "Volumetric soil water layer 3"\
            "Soil temperature level 4"     \
            "Volumetric soil water layer 4"\
            ; do

line=$(${Dir_util}/wgrib -v ${Dir_wrk}'/ERA5_Surface_'${Run_Date}'.grib' | grep "$vars")

if [ -z "$line" ]; then
echo 'NO DATA FOR VAR = '$vars 
else

tptp=`expr index "$line" :`
tptp=`expr $tptp - 1`
nrec=${line:0:$tptp}

${Dir_util}/wgrib -d $nrec ${Dir_wrk}'/ERA5_Surface_'${Run_Date}'.grib' -nh -bin -append -o ${Dir_ETAwrk}/${FInitBC}_${Run_Date}.${Fcti} >> ${Dir_ETAwrk}/log.${Fcti}

fi   # if [ -z "$line" ]
done # for vars


echo 'DONE WITH ' ${Dir_ETAwrk}/${FInitBC}_${Run_Date}.${Fcti} '  FILE'

ls -l ${Dir_ETAwrk}/${FInitBC}_${Run_Date}.${Fcti}
${Dir_dprep_exe}/dg${ModelDrive}.exe << endin
${Dir_ETAwrk}/${FInitBC}_${Run_Date}.${Fcti}
${Dir_ETAwrk}
endin
exit
