#!/bin/ksh
######################################################################
####  UNIX Script Documentation Block
#                      .                                             .
# Script name:         exdgex_fcst.sh.sms
# Script description:  Run DGEX forecast
#
# Author:        Eric Rogers       Org: NP22         Date: 2004-03-30
#
# Abstract: This script runs the DGEX forecast
#
# Script history log:
# 2004-03-30  Eric Rogers
#

set -x
cd $DATA 

#
# Get needed variables from exdgex_prelim.sh.sms
#
. $COMOUT/${RUN}_${REGION}.t${cyc}z.envir.sh

export tmmark=tm00

#
# Next line is for the dgex_fcst module
#
export SERVER_GROUPS=2
export XLSMPOPTS="parthds=1:spins=0:yields=0:schedule=guided"
#
export pgm=dgex_namfcst_${REGION}
. prep_step

#
# Check to see if this is a rerun or fresh start and 
# whether the NDAS ran.  Set up fcstdata.parm from this information.
#
#lasthour=`ls -1 fcstdone*.tm00 | tail -1 | cut -c 9-10`
lasthour=`ls -1t fcstdone*.tm00 | head -1 | cut -c 9- |sed "s/.tm00//g"`
TEND=192.0
TCP=193.0
if [ -z "$lasthour" -o "$RERUN" = "YES" ] ; then
  TSTART=78.0
  if [ -s $COMIN/${RUN}_${REGION}.t${cyc}z.restrt78.dgex ]
  then
      ln -s -f $COMIN/${RUN}_${REGION}.t${cyc}z.restrt78.dgex restrt03
      export XLFUNIT_13=$DATA/restrt03
  else
      err_exit "Could not find restart file"
  fi
elif [ $lasthour -eq $TEND ] ; then
  msg="DGEX forecast complete to F${TEND}.  EXITING NOW"
  postmsg "$jlogfile" "$msg"
  exit
else
  let nexthour=lasthour+3
  TSTART=${lasthour}.0
  if [ -s $DATA/restrt${lasthour}.tm00 ] ; then
    ln -s -f $DATA/restrt${lasthour}.tm00 restrt03
    export XLFUNIT_13=$DATA/restrt03
  else
    err_exit "Could not find restart file"
  fi
fi

let tmpi=TSTART+3
let NMAP="(TEND-TSTART)/3"

while [ $tmpi -le $TEND ] ; do
  TSHDE=${TSHDE}${tmpi}".0,"
  let tmpi=tmpi+3
done

export tmmarkb=$tmmark
cp $PARMdgex/dgex_fcstdata.parm_generic parm.temp

sed s/%TSTART%/${TSTART}/g parm.temp > tmp1
sed s/%TEND%/${TEND}/g tmp1 > tmp2
sed s/%TCP%/${TCP}/g tmp2 > tmp1
sed s/%NMAP%/${NMAP}/g tmp1 > tmp2
sed s/%TSHDE%/${TSHDE}/g tmp2 > fcstdata.parm.${tmmark}

cat fcstdata.parm.${tmmark}

msg="Starting DGEX Forecast at F${TSTART} out to F${TEND}"
postmsg "$jlogfile" "$msg"

cp $PARMnam/nam_template.${tmmark}.parm template
cp $FIXnam/nam_micro_lookup.dat micro_lookup.dat

export tmmarks=t00s

if [ -s $COMIN/${RUN}_${REGION}.t${cyc}z.nbcout.${tmmarks} ]
then
   ln -s -f $COMIN/${RUN}_${REGION}.t${cyc}z.nbcout.${tmmarks} nbcout
fi
if [ -s $COMIN/${RUN}_${REGION}.t${cyc}z.nbcout.tstart.${tmmarks} ]
then
   ln -s -f $COMIN/${RUN}_${REGION}.t${cyc}z.nbcout.tstart.${tmmarks} nbcout.tstart
fi
if [ -s $COMIN/${RUN}_${REGION}.t${cyc}z.nhbdgex ]
then
   ln -s -f $COMIN/${RUN}_${REGION}.t${cyc}z.nhbdgex nhbdgex
fi

ln -sf $DATA/fcstdata.parm.${tmmark} fort.11
export XLFUNIT_12=$DATA/nhbdgex

export XLFUNIT_14=$FIXnam/nam_radco2
export XLFUNIT_16=nbcout
export XLFUNIT_17=nbcout.tstart
export XLFUNIT_21=template
export XLFUNIT_22=$FIXdgex/dgex_z0eff_${REGION}
export XLFUNIT_59=$PARMnam/nam_soil_veg_namelist
export XLFUNIT_80=twrite16_360.${tmmark}
export XLFUNIT_92=gsums.${tmmark}
export MP_SHARED_MEMORY=yes

startmsg
$EXECdgex/dgex_namfcst_$REGION >> $pgmout 2>errfile
export err=$?

if [ $err -ne 1 ]
then
   err_chk
else
   msg="$pgm completed normally"
   sh $utilscript/postmsg.sh "$jlogfile" "$msg"
fi

echo Exiting $0

exit
