#!/bin/sh
#
#  variance calculation
#
# $1 is the grib file specification (currently has to be pgb)
# $2 is starting forecast hour (at least 2-digit)
# $3 is ending forecast hour (at least 2-digit)
# $4 is forecast hour interval
# $5 is output file name
#
file=$1
fhs=$2
fhe=$3
intvl=$4
outgrib=$5
prog=grvar
#
if [ $file != pgb ] ; then
	$DATA/err_exit "variance of $file not allowed"
fi
echo "$GRIBKPDS5"  >$prog.$file.$fhs-$fhe.parm
echo "$GRIBKPDS6" >>$prog.$file.$fhs-$fhe.parm
echo "0"          >>$prog.$file.$fhs-$fhe.parm
echo "$outgrib"   >>$prog.$file.$fhs-$fhe.parm
rm -f temp.parm.$$ 2>/dev/null
fh=$fhs
count=1
while [ $fh -le $fhe ] ; do
	fhr=$fh
	if [ $fh -lt 10 ] ; then
		fhr=0$fh
	fi
	if [ ! -s ${file}f$fhr ] ; then
           cp $COM_YMDH_DG/${file}f$fhr .
           if [ $? != 0 ]; then
		$DATA/err_exit "${file}f$fhr does not exist. variance for fhr=$fhs-$fhe terminating."
           fi
	fi
	echo ${file}f$fhr >>temp.parm.$$
	fh=`expr $fh + $intvl`
	count=`expr $count + 1`
done
count=`expr $count - 1`
echo "$count"    >>$prog.$file.$fhs-$fhe.parm
cat temp.parm.$$ >>$prog.$file.$fhs-$fhe.parm
echo "-2"        >>$prog.$file.$fhs-$fhe.parm
echo "$fhe"      >>$prog.$file.$fhs-$fhe.parm
rm -f temp.parm.$$
#
export pgm=$GRVARexec
. $DATA/prep_step

$DATA/startmsg
$pgm <$prog.$file.$fhs-$fhe.parm \
	>$prog.$file.$fhs-$fhe.out2 2>$prog.$file.$fhs-$fhe.err
export err=$?; $DATA/err_chk

rm -f $prog.$file.$fhs-$fhe.out2
rm -f $prog.$file.$fhs-$fhe.err
#
