#!/bin/sh
#
#  This script template requires following edit variables to be defined
#      %EXECSUBDIR% %YYYY% %MM% %DD% %HH% %FHE% %FHS% %INTSFCX% 
#      %ENDHOUR% %INTFLX% %INTSIG% %PLATFORM% %FTPDIR%
#      %YYYYS% %MMS% %DDS% %HHS% %YYYYE% %MME% %DDE% %HHE%
#      /nfsuser/g03/wx52op/pt6-62/run/runscr'
#      %FTP_SIG% %FTP_SFC% %FTP_ZNL% %FTP_FLX% %FTP_DIA% %FTP_KEN% 
#      %FTP_PGB% %FTP_SGB% %FTP_SFCANL% %FTP_SFCOUT% %FTP_FCSTOUT%
#      %LIST_OF_FILES% %FILES_TO_BE_KEPT% %FILES_TO_BE_AVERAGED%
#      %RMAVRG% %VARIANCE%
#
#  Obtain the member from input:
member=$1
if [ $member -lt 10 ]; then member=0$member; fi

set -ax
#    which should be defined in cpost.in
#
#  obtain forecast hours for various ending dates
#
. $USHcfs/cfs_endfhrs.sh
#
#fhsp=`expr $FHS + $INTSFCX`
#
c=1
while [ $c -le $MCOUNT ] ; do
	x=\$MFHOUR_$c
	x=`eval echo $x`
	echo MFHOUR_$c=$x
	c=`expr $c + 1`
done
#
# skip first month for averaging
#
c=1
#
# if first month is less than 15 days, skip second month also
#
flen=`expr $MFHOUR_1 \/ 24`
maxlen=15
if [ $flen -le $maxlen ]; then c=2; fi                                                  
while [ $c -le $MCOUNT ] ; do
#  c=`expr $c + 1`
   fte=\$MFHOUR_$c
   fte=`eval echo $fte`
#  if [ $fte -gt $FHS -a $fte -le $FHE ] ; then
   if [ $fte -gt 0 -a $fte -le $ENDHOUR ] ; then
      echo 'Performing averaging'
      cm=`expr $c - 1`
      if [ $cm -eq 0 ] ; then
	fts=0
      else
	fts=\$MFHOUR_$cm
	fts=`eval echo $fts`
      fi
      NEWDATE=$($NDATE $fts $start_date)
      yyyy=$(echo $NEWDATE | cut -c-4)
      mm=$(echo $NEWDATE | cut -c5-6)
      dd=$(echo $NEWDATE | cut -c7-8)
      hh=$(echo $NEWDATE | cut -c9-10)
#
#     fh=`expr $fts + $INTSFCX`
      for file in $FILES_TO_BE_AVERAGED ; do
         intvl=$INTFLX
#
         bdate=$start_date
         if [ $file = pgb ] ; then
           intvl=$INTSIG
           igau=2
         elif [ $file = ocn  -o $file = csst ] ; then
           bdate=0
           iop=180
           jop=139
           intvl=24
           igau=2
         else
           igau=1
         fi
         fh=`expr $fts + $intvl`
         sdate=$($NDATE $fh $start_date)
         edate=$($NDATE $fte $start_date)
#
         $USHcfs/cfs_grib_avrg.sh $file $bdate $sdate $edate \
                                  $intvl $igau $datadir
              
#        $EXECclim/clim_force_grib_date_mon \
#	 	./$file.$yyyy$mm.*avrg.grib $yyyy${mm}0100 
#
         if [ $SENDCOM = YES ] ; then
            for filename in $FILES_TO_SEND_COM ; do
              if [ $filename = avrg ] ; then
                ${NCP:-/bin/cp} $file$yyyy$mm.avrg.grib \
                $COM_YMDH_MG/$file$member.$yyyy$mm.avrg.grib
                if [ $SENDDBN = YES ] ; then
                   if [ CUE2RUN = prod ] ; then
                     $DBNROOT/bin/dbn_alert MODEL CFS_FCST $job \
                     $COM_YMDH_MG/$file$member.$yyyy$mm.avrg.grib
                   fi
                fi
              fi
            done
         fi

         if [ $file = pgb -a $VARIANCE = YES ] ; then
#           $USHclim/cfs_variance.sh $file $fh $fte $intvl \
#       	   $file.$yyyy$mm.variance.grib 
#	    $EXECclim/cfs_force_grib_date_mon \
#			./$file.$yyyy$mm.variance.grib $yyyy${mm}0100 
            if [ $SENDCOM = YES ] ; then
               for filename in $FILES_TO_SEND_COM ; do
                 if [ $filename = variance ] ; then
                    ${NCP:-/bin/cp} $file.$yyyy$mm.variance.grib \
                         $COM_YMDH_MG/$file$member.$yyyy$mm.variance.grib
                    if [ $SENDDBN = YES ] ; then
                       if [ CUE2RUN = prod ] ; then
                          $DBNROOT/bin/dbn_alert MODEL CFS_FCST $job \
                          $COM_YMDH_MG/$file$member.$yyyy$mm.variance.grib
                       fi
                    fi
                 fi
               done
            fi
         fi
      done
   fi
   c=`expr $c + 1`
done
