#!/bin/ksh
################################################################################
####  UNIX Script Documentation Block
#                      .                                             .
# Script name:         exnam_coldstart_wrfsi.sh.sms 
# Script description:  Runs WRF standard initialization (SI) from GDAS first guess input 
#                      to coldstart WRF-NMM NDAS
#
# Author:        Eric Rogers       Org: NP22         Date: 2004-07-02
#
# Script history log:
# 2006-02-01  Eric Rogers - Based on HIRESW script
# 2008-08-19  Eric Rogers _ Changed to use WPS instead of SI

set -x

msg="JOB $job FOR WRF-NMM HAS BEGUN"
postmsg "$jlogfile" "$msg"

mod=AVN
LENGTH=3

export USHGETGES=${USHGETGES:-/nwprod/util/ush}
export DOMNAM=nam

#
# Get needed variables from exnam_prelim.sh.sms
#
. $GESDIR/${RUN}.t${cyc}z.envir.sh

cd $DATA
rm *done*

rm -rf $DATA/ungrib $DATA/metgrid $DATA/nemsinterp

mkdir -p $DATA/ungrib
mkdir -p $DATA/metgrid
mkdir -p $DATA/nemsinterp

cd $DATA/metgrid
rm met*.dio
rm FILE*

cd $DATA/ungrib
sh /nwprod/util/ush/setup.sh
rm GRIBFILE.*
rm FILE*

cd $DATA/nemsinterp
rm test*d01
rm boco*
rm GWD.bin

cd $DATA/ungrib

echo DATEXX${CYCLE} > ncepdate.npstm00
cp ncepdate.npstm00 $DATA/metgrid/.

### modify namelist file
ystart=`cat ncepdate.npstm00 | cut -c7-10`
mstart=`cat ncepdate.npstm00 | cut -c11-12`
dstart=`cat ncepdate.npstm00 | cut -c13-14`
hstart=`cat ncepdate.npstm00 | cut -c15-16`

start=$ystart$mstart$dstart$hstart

CYCgdas=`/nwprod/util/exec/ndate -6 $CYCLE`

echo DATEXX${CYCgdas} > nmcdate.gdas
 
PDYgds=`cat nmcdate.gdas | cut -c7-14`
yygds=`cat nmcdate.gdas | cut -c7-10`
mmgds=`cat nmcdate.gdas | cut -c11-12`
ddgds=`cat nmcdate.gdas | cut -c13-14`
cycgds=`cat nmcdate.gdas | cut -c15-16`

end=`/nwprod/util/exec/ndate +03 $start`

yend=`echo $end | cut -c1-4`
mend=`echo $end | cut -c5-6`
dend=`echo $end | cut -c7-8`
hend=`echo $end | cut -c9-10`

cat $PARMnam/nam_namelist.nps | sed s:YSTART:$ystart: | sed s:MSTART:$mstart: \
 | sed s:DSTART:$dstart: | sed s:HSTART:$hstart: | sed s:YEND:$yend: \
 | sed s:MEND:$mend:     | sed s:DEND:$dend: | sed s:HEND:$hend: > namelist.nps

DATE=`echo $start | cut -c1-8`

rm Vtable

#####

cp $PARMnam/nam_Vtable.GFS_spectral Vtable

filedir=$COMIN

hrs="06 09"

for hr in $hrs
do

vldgdas=`/nwprod/util/exec/ndate $hr ${PDYgds}${cycgds}`

$USHGETGES/getges.sh -t pg2ges -v $vldgdas -n gfs gdas.pgbf${hr}
$USHGETGES/getges.sh -t sigges -v $vldgdas -e prod sf${hr}
 
done
 
ln -sf gdas.pgbf06 GRIBFILE.AAA
ln -sf gdas.pgbf09 GRIBFILE.AAB

ln -sf sf06 fort.27
ln -sf sf09 fort.28
 
####
 
export pgm=nam_ungrib
. prep_step
 
startmsg
$EXECnam/nam_ungrib >> $pgmout 2>errfile
export err=$?;err_chk

mv errfile $DATA/errfile.ungrib

### run metgrid

cd $DATA/metgrid
sh /nwprod/util/ush/setup.sh

mv $DATA/ungrib/$pgmout .

STARTHR=00
ENDHR=03
INCRHR=03

ystart=`cat ncepdate.npstm00 | cut -c7-10`
echo ystart $ystart
mstart=`cat ncepdate.npstm00 | cut -c11-12`
echo mstart $mstart
dstart=`cat ncepdate.npstm00 | cut -c13-14`
echo dstart $dstart
hstart=`cat ncepdate.npstm00 | cut -c15-16`
 
orig_start=$ystart$mstart$dstart${hstart}
 
start=`/nwprod/util/exec/ndate 0 ${orig_start}`
ystart=`echo $start | cut -c1-4`
mstart=`echo $start | cut -c5-6`
dstart=`echo $start | cut -c7-8`
hstart=`echo $start | cut -c9-10`
 
end=`/nwprod/util/exec/ndate 3 ${orig_start}`
 
echo $start
echo $end
 
yend=`echo $end | cut -c1-4`
mend=`echo $end | cut -c5-6`
dend=`echo $end | cut -c7-8`
hend=`echo $end | cut -c9-10`

cat $PARMnam/nam_namelist.nps | sed s:YSTART:$ystart: | sed s:MSTART:$mstart: \
 | sed s:DSTART:$dstart: | sed s:HSTART:${hstart}: | sed s:YEND:$yend: \
 | sed s:MEND:$mend:     | sed s:DEND:$dend: | sed s:HEND:$hend: > namelist.nps
 
cp $PARMnam/nam_METGRID.TBL.NMM METGRID.TBL
cp $FIXnam/nam_geo_nmb.d01.dio geo_nmb.d01.dio
 
FHR=$STARTHR
 
while [ $FHR -le $ENDHR ]
do
 
time=`/nwprod/util/exec/ndate +${FHR} ${orig_start}`
yy=`echo $time | cut -c1-4`
mm=`echo $time | cut -c5-6`
dd=`echo $time | cut -c7-8`
hh=`echo $time | cut -c9-10`
 
cp $DATA/ungrib/FILE:${yy}-${mm}-${dd}_${hh} .
echo GRABBED $FHR

FHR=`expr $FHR + $INCRHR`

echo $FHR
done

export pgm=nam_metgrid
. prep_step

startmsg
$EXECnam/nam_metgrid >> $pgmout 2>errfile
export err=$?;err_chk

mv errfile $DATA/errfile.metgrid

### run nemsinterp

cd $DATA/nemsinterp
sh /nwprod/util/ush/setup.sh

cp $DATA/metgrid/$pgmout .
cp $DATA/metgrid/met_nmb*dio .
cp $DATA/metgrid/namelist.nps .

export pgm=nam_nemsinterp
. prep_step

startmsg
$EXECnam/nam_nemsinterp >> $pgmout 2>errfile
export err=$?;err_chk

mv errfile $DATA/errfile.nemsinterp

# move files back to GESDIR

mv input_domain_01_nemsio $GESDIR/nam.t${cyc}z.input_nemsio.d01.tm00_precoldstart
rm input_domain_01
cp $GESDIR/nam.t${cyc}z.input_nemsio.d01.tm00_precoldstart $GESDIR/nam.t${cyc}z.input_nemsio.d01.tm00

rm boco*
mv $pgmout $DATA/.

cd $DATA

cat errfile.ungrib errfile.metgrid errfile.nemsinterp > errfile

msg="JOB $job FOR NMMB HAS COMPLETED NORMALLY"
postmsg "$jlogfile" "$msg"

exit
