#!/bin/ksh
if [ $# -ne 8 ] ; then
        echo "Usage: $0 fname bdate sdate edate hint igau datadir fnymdh"
exit 8
fi
set -x
#
export fname=$1
export bdate=$2
export sdate=$3
export edate=$4
export hint=$5
export igau=$6
export datadir=$7
export fnymdh=$8

yyyy=`echo $sdate | cut -c1-4`
yymm=`echo $sdate | cut -c1-6`
mm=`echo $yymm | cut -c5-6`

echo $sdate $edate
#
export byear=`echo $bdate | cut -c1-4`
export bmonth=`echo $bdate | cut -c5-6`
export bday=`echo $bdate | cut -c7-8`
export bhour=`echo $bdate | cut -c9-10`
#
export syear=`echo $sdate | cut -c1-4`
export smonth=`echo $sdate | cut -c5-6`
export sday=`echo $sdate | cut -c7-8`
export shour=`echo $sdate | cut -c9-10`
#
export eyear=`echo $edate | cut -c1-4`
export emonth=`echo $edate | cut -c5-6`
export eday=`echo $edate | cut -c7-8`
export ehour=`echo $edate | cut -c9-10`
#
################  pgb, flx and d3d files
if [ $fname = pgb -o $fname = flx -o $fname = d3d \
                  -o $fname = ocn -o $fname = csst ] ; then
  export idbug=0
  export inputdir=${RECVMON:-$(pwd)}
  export inddir=${RECVMON:-$(pwd)}
  export outdir=${RECVMONO:-$(pwd)}
  export timedir=${RECVMONO:-$(pwd)}
  export name=${filename:-${fname}f}
  if [ $fname = ocn ] ; then export name=ocn_daily ; fi
  if [ $fname = eta ] ; then export name=eta_daily ; fi
  if [ $fname = csst ] ; then export name=csstf ; fi
  export iname=${filename:-$name}
  export oname=$fname
  if [[ igau -eq 2 ]] ; then      # Lat/Lon grid
    export idim=${iop:-144}
    export jdim=${jop:-73}
  else
    export idim=${im:-192}        # Gaussian grid
    export jdim=${jm:-94}
  fi
  export itimser=0
#
#  if [[ $bdate -eq 0 ]] ; then
  if [[ $fnymdh = .true. ]] ; then
    export idbug=1
    newdate=$sdate
    until [ $newdate -gt $edate ] ; do
      if [ ! -s $inputdir/${name}$newdate ] ; then
        ${NCP:-/bin/cp} $datadir/${name}$newdate $inputdir
      fi
#     $force_grib_date_y2k $inputdir/${name}$newdate $newdate
      if [ ! -s $inddir/${name}$newdate.index ] ; then
        $windex $inputdir/${name}$newdate $inddir/${name}$newdate.index
      fi
      newdate=$($NDATE $hint $newdate)
    done
    export ifile=$inputdir/${name}$sdate
#    ls -l $ifile
    export infile=$inputdir/${fname}$sdate.new
  else
    fhs=$($NHOUR $sdate $bdate)
    fhe=$($NHOUR $edate $bdate)
    FH=$((fhs-hint))
    until [[ $((FH=10#$FH+10#$hint)) -gt $fhe ]];do [[ $FH -lt 10 ]]&&FH=0$FH
      if [ ! -s $inputdir/${fname}f$FH ] ; then
        cp $datadir/${name}$FH $inputdir
      fi
      newdate=$($NDATE $FH $bdate)
#     $force_grib_date_y2k $inputdir/${name}$FH $newdate
      if [ ! -s $inddir/${name}$FH.index ] ; then
        $windex $inputdir/${name}$FH $inddir/${name}$FH.index
      fi
    done
    export ifile=$inputdir/${name}$fhs
#    ls -l $ifile
    export infile=$inputdir/${fname}$fhs.new
  fi
#
echo before line 104
#  This step is to remove APCP and ACPCP from pgb files
  > $infile
  $wgrib $ifile | grep -v 'PCP' | $wgrib $ifile -i -grib -o $infile
#
  export ffile=$inputdir/$fname.kpds

echo before ffile = $ffile
  > $ffile
  $getfacexec > $ffile
  krec=`cat $ffile | wc -l`
  ((krec+=0))
  export krec
  echo krec=$krec
#
# inputdir="$inputdir", inddir="$indir",
cat > grib_avg <<EOF
 &grib_avg
  idbug=$idbug,         igau=$igau, itimser=$itimser,
  inputdir="$inputdir", inddir="$inddir",
  timedir="$timedir",   outdir="$outdir",
  iname="$iname",       oname="$oname", yymm="$yymm",
  byear=$byear, bmonth=$bmonth, bday=$bday, bhour=$bhour,
  syear=$syear, smonth=$smonth, sday=$sday, shour=$shour,
  eyear=$eyear, emonth=$emonth, eday=$eday, ehour=$ehour, ncyi=$hint,
  idim=$idim,   jdim=$jdim,     krec=$krec, ffile="$ffile", fnymdh=$fnymdh /
EOF
  $avgexec <grib_avg 1>avg.$fname.$sdate-$edate.out2 2>avg.$fname.$sdate-$edate.err
  export err=$?;$DATA/err_chk
  if [[ $err -ne 0 ]] ; then
    echo "executable avg_grib.x failed  for $fname file"
    exit 1
  fi
# if [[ $znl = YES ]] ; then
#  $znlavgexec <<EOF
#$outdir/${oname}$yymm
#$outdir/${oname}z$yymm
#EOF
# fi
fi
