
################################################################################
#
# Name : dgex_getgfsbc.sh           Author : Eric Rogers
#
# Abstract: This script copies sigma coefficient files from the specified GFS
#           run to the local directory for use as boundary conditions in the
#           NDAS/NAM. This script also returns the where_gfs_ran.  
#
# Log:
#
# 04-03-30 : Eric Rogers created new version for DGEX
#
#             
# Usage:
#
# getgfsbc_nam.sh $DATE $IHFIN
#
# DATE  = 10 digit starting date date (e.g., 1998061900)
# IHFIN = Last forecast hour to be copied
#
set -x

if [ $# -lt 2 ] ; then
   echo "Usage: $0 DATE IHFIN"
   exit 8
fi

gfsstart=$1
ifin=$2
ifhr=000
ifhr_6hold=06
ifhr_12hold=12
ifhr_18hold=18

GFS6HOLD=`/nwprod/util/exec/ndate -6 $gfsstart`
GFS12HOLD=`/nwprod/util/exec/ndate -12 $gfsstart`
GFS18HOLD=`/nwprod/util/exec/ndate -18 $gfsstart`

echo $GFS6HOLD > gfs6hold.date
PDYgfsold=`cut -c 1-8 gfs6hold.date`
HHgfsold=`cut -c 9-10 gfs6hold.date`

echo $GFS12HOLD > gfs12hold.date
PDY12gfsold=`cut -c 1-8 gfs12hold.date`
HH12gfsold=`cut -c 9-10 gfs12hold.date`

echo $GFS18HOLD > gfs18hold.date
PDY18gfsold=`cut -c 1-8 gfs18hold.date`
HH18gfsold=`cut -c 9-10 gfs18hold.date`

let "ineed=ifin/3+1"
echo $ineed

icnt=0
FIXGLOBAL=/nwprod/fix
USHGLOBAL=/nwprod/ush
EXECGLOBAL=/nwprod/exec
utilscript=/nwprod/util/ush

rm fcsthour.bclist

while [ $icnt -le $ineed ] ; do

  /nwprod/util/exec/ndate $ifhr $gfsstart > valdate
  VDATE=`cut -c 1-10 valdate`

  cp /com/gfs/prod/gfs.${PDYgfsold}/gfs.t${HHgfsold}z.sf${ifhr_6hold} gfsbc${icnt}_ops
  err1=$?

  if [ $err1 -ne 0 ] ; then
    cp /com/gfs/prod/gfs.${PDY12gfsold}/gfs.t${HH12gfsold}z.sf${ifhr_12hold} gfsbc${icnt}_ops
    err2=$?
    if [ $err2 -ne 0 ] ; then
      cp /com/gfs/prod/gfs.${PDY18gfsold}/gfs.t${HH18gfsold}z.sf${ifhr_18hold} gfsbc${icnt}_ops
      err3=$?
##      if [ $err3 -ne 0 ] ; then
##        $utilscript/getges.sh -t sigcur -v $VDATE -e $gesenvir gfsbc${icnt}_ops
##      fi
    fi
  fi

  globres=`/nwprod/exec/global_sighdr gfsbc${icnt}_ops JCAP`
  err1=$?

  if [ $err1 -eq 0 ] ; then
   mv gfsbc${icnt}_ops gfsbc${icnt}
   let "icnt=icnt+1"
   echo ${ifhr} >> fcsthour.bclist
  fi

  let "ifhr=ifhr+3"
  let "ifhr_6hold=ifhr_6hold+3"
  let "ifhr_12hold=ifhr_12hold+3"
  let "ifhr_18hold=ifhr_18hold+3"

  if [ $ifhr -lt 10 ] ; then
    ifhr=00${ifhr}
  fi

  if [ $ifhr -gt 10 -a $ifhr -le 100 ] ; then
    ifhr=0${ifhr}
  fi

  if [ $ifhr_6hold -eq 9 ] ; then
   ifhr_6hold=09
  fi

done

wc -l < fcsthour.bclist > listnum

cat listnum fcsthour.bclist > input.bctend.fcstlist


