#!/bin/sh
####################################################
#
# script:  cfs_extvars.sh
#
# extract
#
if [ $# -ne 3 ] ; then
        $DATA/err_exit "`date` $0: argument error" 
fi
fhs=$1
fhe=$2
fhinc=$3
#
set -x
prog=wgrib
. $DATA/prep_step

#
#if [ $fhs -lt 1 ] ; then
# fhr=$((fhs-fhinc))
#else
#  fhr=$fhs
#fi
fhr=$((fhs-fhinc))
until [[ $((fhr=10#$fhr+10#$fhinc)) -gt $fhe ]];do [[ $fhr -lt 10 ]]&&fhr=0$fhr
#
   pgbfile=pgbf$fhr
#  flxfile=flxf$fhr
   extfile=extvarsf$fhr

   if [ ! -s $pgbfile ] ; then
     cp $COM_YMDH_DG/$pgbfile .
     if [ $? != 0 ]; then
	$DATA/err_exit "$pgbfile missing"
     fi
   fi
#  if [ $fhr != 00 -a ! -s $flxfile ] ; then
#    cp $COM_YMDH/$flxfile .
#    if [ $? != 0 ]; then
#	$DATA/err_exit "$flxfile missing"
#    fi
#  fi

   invout=$pgbfile.invout
   > $invout
   $wgrib $pgbfile > $invout

############### height at given levels ########################
   grep ":HGT:kpds5=7:kpds6=100:kpds7=1000:" $invout | \
   $wgrib $pgbfile -i -grib -o $extfile

   grep ":HGT:kpds5=7:kpds6=100:kpds7=850:" $invout | \
   $wgrib $pgbfile -i -grib -append -o $extfile

   grep ":HGT:kpds5=7:kpds6=100:kpds7=700:" $invout | \
   $wgrib $pgbfile -i -grib -append -o $extfile

   grep ":HGT:kpds5=7:kpds6=100:kpds7=500:" $invout | \
   $wgrib $pgbfile -i -grib -append -o $extfile

   grep ":HGT:kpds5=7:kpds6=100:kpds7=200:" $invout | \
   $wgrib $pgbfile -i -grib -append -o $extfile

############### temperature at given levels ########################
   grep ":TMP:kpds5=11:kpds6=100:kpds7=850:" $invout | \
   $wgrib $pgbfile -i -grib -append -o $extfile

   grep ":TMP:kpds5=11:kpds6=100:kpds7=700:" $invout | \
   $wgrib $pgbfile -i -grib -append -o $extfile

   grep ":TMP:kpds5=11:kpds6=100:kpds7=500:" $invout | \
   $wgrib $pgbfile -i -grib -append -o $extfile

   grep ":TMP:kpds5=11:kpds6=100:kpds7=400:" $invout | \
   $wgrib $pgbfile -i -grib -append -o $extfile

   grep ":TMP:kpds5=11:kpds6=100:kpds7=300:" $invout | \
   $wgrib $pgbfile -i -grib -append -o $extfile

   grep ":TMP:kpds5=11:kpds6=100:kpds7=200:" $invout | \
   $wgrib $pgbfile -i -grib -append -o $extfile

############### U wind at given levels ########################
   grep ":UGRD:kpds5=33:kpds6=100:kpds7=850:" $invout| \
   $wgrib $pgbfile -i -grib -append -o $extfile

   grep ":UGRD:kpds5=33:kpds6=100:kpds7=200:" $invout | \
   $wgrib $pgbfile -i -grib -append -o $extfile

############### V wind at given levels ########################
   grep ":VGRD:kpds5=34:kpds6=100:kpds7=850:" $invout | \
   $wgrib $pgbfile -i -grib -append -o $extfile

   grep ":VGRD:kpds5=34:kpds6=100:kpds7=200:" $invout | \
   $wgrib $pgbfile -i -grib -append -o $extfile

############### Surface Pressure ##############################
   grep ":PRES:kpds5=1:kpds6=1:kpds7=0:" $invout | \
   $wgrib $pgbfile -i -grib -append -o $extfile

############### Sea level Pressure ############################
   grep ":PRMSL:kpds5=2:kpds6=102:kpds7=0:" $invout | \
   $wgrib $pgbfile -i -grib -append -o $extfile

################## PWAT  ######################################
   grep ":PWAT:kpds5=54:kpds6=200:kpds7=0:" $invout | \
   $wgrib $pgbfile -i -grib -append -o $extfile

############### PRATEsfc ########################
   grep ":PRATE:kpds5=59:kpds6=1:kpds7=0:" $invout | \
   $wgrib $pgbfile -i -grib -append -o $extfile

############### TMP2m     ########################
   grep ":TMP:kpds5=11:kpds6=105:kpds7=2:" $invout | \
   $wgrib $pgbfile -i -grib -append -o $extfile

   grep ":TMAX:kpds5=15:kpds6=105:kpds7=2:" $invout | \
   $wgrib $pgbfile -i -grib -append -o $extfile

   grep ":TMIN:kpds5=16:kpds6=105:kpds7=2:" $invout | \
   $wgrib $pgbfile -i -grib -append -o $extfile

   grep ":UFLX:kpds5=124:kpds6=1:kpds7=0:" $invout | \
   $wgrib $pgbfile -i -grib -append -o $extfile

   grep ":VFLX:kpds5=125:kpds6=1:kpds7=0:" $invout | \
   $wgrib $pgbfile -i -grib -append -o $extfile

############### latent heat flux ########################
   grep ":LHTFL:kpds5=121:kpds6=1:kpds7=0:" $invout | \
   $wgrib $pgbfile -i -grib -append -o $extfile

############### sensible heat flux ########################
   grep ":SHTFL:kpds5=122:kpds6=1:kpds7=0:" $invout | \
   $wgrib $pgbfile -i -grib -append -o $extfile

############### USWRFsfc   ########################
   grep ":USWRF:kpds5=211:kpds6=1:kpds7=0:" $invout | \
   $wgrib $pgbfile -i -grib -append -o $extfile

############### ULWRFsfc   ########################
   grep ":ULWRF:kpds5=212:kpds6=1:kpds7=0:" $invout | \
   $wgrib $pgbfile -i -grib -append -o $extfile

############### DSWRFsfc   ########################
   grep ":DSWRF:kpds5=204:kpds6=1:kpds7=0:" $invout | \
   $wgrib $pgbfile -i -grib -append -o $extfile

############### DLWRFsfc   ########################
   grep ":DLWRF:kpds5=205:kpds6=1:kpds7=0:" $invout | \
   $wgrib $pgbfile -i -grib -append -o $extfile

############### olr : ULWRFtoa   ########################
   grep ":ULWRF:kpds5=212:kpds6=8:kpds7=0:" $invout | \
   $wgrib $pgbfile -i -grib -append -o $extfile

############### USWRFtoa   ########################
   grep ":USWRF:kpds5=211:kpds6=8:kpds7=0:" $invout | \
   $wgrib $pgbfile -i -grib -append -o $extfile
 
############### UGRD10m ########################
   grep ":UGRD:kpds5=33:kpds6=105:kpds7=10:" $invout | \
   $wgrib $pgbfile -i -grib -append -o $extfile

############### VGRD10m ########################
   grep ":VGRD:kpds5=34:kpds6=105:kpds7=10:" $invout | \
   $wgrib $pgbfile -i -grib -append -o $extfile

############### sea-level-height ########################
   if [ $fhr != 00 ] ; then
      date=$($NDATE $fhr $start_date)
      etafile=eta_daily$date
      if [ ! -s $etafile ] ; then
        cp $COM_YMDH_DG/$etafile .
        if [ $? != 0 ]; then
          $DATA/err_exit "$etafile missing"
        fi
      fi
      $wgrib $etafile | grep ":kpds5=8:kpds6=1:kpds7=0:" | \
      $wgrib $etafile -i -grib -append -o $extfile
   fi

   if [ $SENDCOM = YES ] ; then
      for filename in $FILES_TO_SEND_COM 
      do
        if [ $filename = extvars ] ; then
           ${NCP:-/bin/cp} $extfile $COM_YMDH_DG/$extfile
        fi
      done
   fi

done

