#! /bin/ksh
################################################################################
####  UNIX Script Documentation Block
#                      .                                             .
# Script name:         exdgex_combc.sh.sms
# Script description:  Runs code to combine binary WRF-NMM boundary files from GDAS/GFS
#                      into a single WRF-format boundary file. This needs to run as a
#                      parallel code.
#
# Author:        Eric Rogers       Org: NP22         Date: 2006-01-13
#
# Script history log:
# 2006-04-21  Eric Rogers
# 2010-09-27  E Rogers modified for NEMS-NMMB
#

set -xa

export PS4='$SECONDS + '

cd $DATA

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

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

export tmmark=tm00

echo $CYCLEdgex > nmcdate.dgexbc
echo $CYCLEnam > nmcdate.bc

SDATE=`cut -c 1-10 nmcdate.dgexbc`
CDATE=`cut -c 1-10 nmcdate.bc`

echo SDATE $SDATE

echo $CDATE > cycledate.bc
CYC=`cut -c 9-10 cycledate.bc`

if [ $REGION = alaska ] 
then
IDIM=325
JDIM=231
fi

if [ $REGION = conus ] 
then
IDIM=421
JDIM=302
fi

args="0"

#### wait for completion of mkbnd jobs

for nm in $args
do
echo checking $nm
while [ ! -s $DATA/mkbnddone.$nm ]
do
echo still not done $nm
sleep 10
done
done

# Check on existence of wrfbdy file from real job, wait until it is done

while [ ! -s $COMOUT/dgex_${REGION}.t${CYC}z.nemsbdy_nam78h.bin ]
do
echo nemsbdy file not done
sleep 10
done

cp $COMOUT/dgex_${REGION}.t${CYC}z.nemsbdy_nam78h.bin bdy_nam78h.bin

cp $PARMdgex/nam_combc_gribmap.txt .

export pgm=dgex_combc_${REGION}
. prep_step

export XLFUNIT_11=$DATA/dgexbcs00_0
export XLFUNIT_51=$DATA/boco.01.000.${tmmark}
export XLFUNIT_52=$DATA/boco.01.003.${tmmark}
export XLFUNIT_53=$DATA/boco.01.006.${tmmark}
export XLFUNIT_54=$DATA/boco.01.009.${tmmark}
export XLFUNIT_55=$DATA/boco.01.012.${tmmark}
export XLFUNIT_56=$DATA/boco.01.015.${tmmark}
export XLFUNIT_57=$DATA/boco.01.018.${tmmark}
export XLFUNIT_58=$DATA/boco.01.021.${tmmark}
export XLFUNIT_59=$DATA/boco.01.024.${tmmark}
export XLFUNIT_60=$DATA/boco.01.027.${tmmark}
export XLFUNIT_61=$DATA/boco.01.030.${tmmark}
export XLFUNIT_62=$DATA/boco.01.033.${tmmark}
export XLFUNIT_63=$DATA/boco.01.036.${tmmark}
export XLFUNIT_64=$DATA/boco.01.039.${tmmark}
export XLFUNIT_65=$DATA/boco.01.042.${tmmark}
export XLFUNIT_66=$DATA/boco.01.045.${tmmark}
export XLFUNIT_67=$DATA/boco.01.048.${tmmark}
export XLFUNIT_68=$DATA/boco.01.051.${tmmark}
export XLFUNIT_69=$DATA/boco.01.054.${tmmark}
export XLFUNIT_70=$DATA/boco.01.057.${tmmark}
export XLFUNIT_71=$DATA/boco.01.060.${tmmark}
export XLFUNIT_72=$DATA/boco.01.063.${tmmark}
export XLFUNIT_73=$DATA/boco.01.066.${tmmark}
export XLFUNIT_74=$DATA/boco.01.069.${tmmark}
export XLFUNIT_75=$DATA/boco.01.072.${tmmark}
export XLFUNIT_76=$DATA/boco.01.075.${tmmark}
export XLFUNIT_77=$DATA/boco.01.078.${tmmark}
export XLFUNIT_78=$DATA/boco.01.081.${tmmark}
export XLFUNIT_79=$DATA/boco.01.084.${tmmark}
export XLFUNIT_80=$DATA/boco.01.087.${tmmark}
export XLFUNIT_81=$DATA/boco.01.090.${tmmark}
export XLFUNIT_82=$DATA/boco.01.093.${tmmark}
export XLFUNIT_83=$DATA/boco.01.096.${tmmark}
export XLFUNIT_84=$DATA/boco.01.099.${tmmark}
export XLFUNIT_85=$DATA/boco.01.102.${tmmark}
export XLFUNIT_86=$DATA/boco.01.105.${tmmark}
export XLFUNIT_87=$DATA/boco.01.108.${tmmark}
export XLFUNIT_88=$DATA/boco.01.111.${tmmark}
export XLFUNIT_89=$DATA/boco.01.114.${tmmark}
export XLFUNIT_90=$DATA/boco.01.117.${tmmark}
export XLFUNIT_99=bdy_nam78h.bin

echo "&NUMAVN NTIMES=41,NPIECE=41" > tmpin.${tmmark}
echo "cycdate=${SDATE}" >> tmpin.${tmmark}
echo "IM=${IDIM},JM=${JDIM},LM=60" >> tmpin.${tmmark}
echo "LNSH=5,LNSV=5" >> tmpin.${tmmark}
echo "/" >> tmpin.${tmmark}

startmsg
$EXECdgex/dgex_combc < tmpin.${tmmark} >> $pgmout
export err=$?;err_chk

hour=0

while [ $hour -le 114 ] ; do
  if [ $hour -lt 10 ]
  then
    ifhr=00${hour}
  fi
  if [ $hour -ge 10 -a $hour -lt 100 ]
  then
    ifhr=0${hour}
  fi
  if [ $hour -ge 100 ]
  then
    ifhr=${hour}
  fi
  mv $DATA/boco.01.${ifhr}.${tmmark} $COMOUT/${RUN}_${REGION}.t${cyc}z.boco.01.${ifhr}.${tmmark}
  /nwprod/util/exec/fsync_file $COMOUT/${RUN}_${REGION}.t${cyc}z.boco.01.${ifhr}.${tmmark} 
  let "hour=hour+3"
done

exit

