#!/bin/ksh
################################################################################
# hwrf_exndas_mkbnd.sh
#########################
#
####  UNIX Script Documentation Block
#                      .                                             .
# Script name:         exdgex_mkbnd.sh.sms
# Script description:  Runs code to interpolate FNL/AVN sigma files to HWRF boundaries
#
# Author:        Eric Rogers       Org: NP22         Date: 2004-03-30
#
# Abstract: Runs code to interpolate FNL/AVN sigma files to Eta. Since boundaries
#           are processed every 3-h, the code is run seven times simulataneously,
#           followed by a code which "quilts" the seven boundary files into the 
#           monolithic file needed by BCTEND
#
# Script history log:
# 2004-03-30  Eric Rogers
# 2005-03-30  Matthew Pyle - More modifications for cycling WRF purposes
# 2005-08-23  Rogers switch to using new Gayno-based NMM orog static file
# 2006-09-11  Young Kwon Change for HWRF
#
# 2007-04-03  Vijay Tallapragada modified for HWRF operations 
# June 2009 Modified for HWRF 2009 implementation by Vijay Tallapragada
################################################################################

set -x

####### GET THE INPUT VARIABLES #######
if [ $# -eq 9 ]
then
   nm=${1}
   DOM=${2}
   tmmark=${3}
   CDATE=${4}
   STORM=${5} 
   lat=${6}
   lon=${7}
   CSTREAM=${8}
   GEOFILE=${9}

   echo 'nm     = ' ${nm}
   echo 'DOM    = ' ${DOM}
   echo 'tmmark = ' ${tmmark}
   echo 'CDATE  = ' ${CDATE} 
   echo 'STORM  = ' ${STORM}
   echo 'lat    = ' ${lat}
   echo 'lon    = ' ${lon}
   echo 'CSTREAM = ' ${CSTREAM}
   echo 'GEOFILE= ' ${GEOFILE}
else
   echo 'Usage: sh hwrf_exndas_mkbnd.sh nm DOM tmmark CDATE STORM lat lon \ '  
   echo '        CSTREAM EXEChwrf PARMhwrf /path/to/geo_nmm.int'  
   echo 'NEED NINE ARGUMENTS'
   echo 'SCRIPT WILL EXIT'
   sh ${utilscript}/setup.sh
   err=911
   err_exit "NEED NINE ARGUMENTS"
fi

######################################

PREP_DATA=${CSTREAM}/PREP/DATA
$USHhwrf/hwrf_mkdirp.sh $PREP_DATA/${STORM}.${CDATE}
cd $PREP_DATA
pwd

export ERRSCRIPT=${ERRSCRIPT:-'eval [[ $err = 0 ]]'}
echo 'ERRSCRIPT = ' ${ERRSCRIPT} 

rm -f $PREP_DATA/mkboundout.${nm} 
rm -f $PREP_DATA/mkbnddone.${nm} 

## STATIC FILE DIRECTORY (BINARY)

set -x
ipiece=${nm} 
$USHhwrf/hwrf_mkdirp.sh  $PREP_DATA/mkbndwork.${ipiece}
cd $PREP_DATA/mkbndwork.${ipiece}
rm -f $PREP_DATA/mkbndwork.${ipiece}/*
echo ${ipiece} > itime

cat << eor > dloc
$lat
$lon
eor


let "ione=ipiece"

rm fort.*

# run executable hwrf_prep
export jlogfile=${PREP_DATA}/jlogfile.${nm}  
export pgmout=${PREP_DATA}/pgmout.${nm}  
export pgmerr=${PREP_DATA}/pgmerr.${nm}  
sh ${utilscript}/setup.sh 
export XLFRTEOPTS="unit_vars=yes"
export MKL_NUM_THREADS=1
export OMP_NUM_THREADS=1
export pgm=hwrf_prep
. prep_step

ln -sf $PREP_DATA/gfsbc${ione}.${tmmark}                fort.11
ln -sf "$GEOFILE"                                       geogrid.out
ln -sf itime                                            fort.44
ln -sf dloc                                             fort.45
ln -sf $PREP_DATA/${STORM}.${CDATE}/hwrfbcs00_${ipiece} fort.52
if [[ ${nm} = 0 ]] 
then
ln -sf $PREP_DATA/${STORM}.${CDATE}/hwrfinit_${ipiece}  fort.53
fi

if [[ "$PARAFLAG" == YES ]] ; then
    $USHhwrf/hwrf_port_cachesync.sh
fi

startmsg
${EXEChwrf}/hwrf_prep < ${PARMhwrf}/hwrf_na12_mkbnd.parm >> $PREP_DATA/mkboundout.${ipiece} 2>&1

export ERR=$?
export err=$ERR; err_chk
$ERRSCRIPT||exit 2

echo PREP PIECE ${ipiece} DONE > $PREP_DATA/mkbnddone.${ipiece}

if [[ "$PARAFLAG" == YES ]] ; then
    $USHhwrf/hwrf_port_cachesync.sh
fi

