#! /bin/ksh --login
#
#Request _NPROCUNGRIB_ cores
#PBS -l procs=_NPROCUNGRIB_
##
## -- Specify a maximum wallclock
#PBS -l walltime=0:15:00
##
## -- Specify under which account a job should run
#PBS -A rm
##
## -- Set the name of the job, or moab will default to STDIN
#PBS -N UNGRIB
#
## change directory to the working directory of the job
## Use the if clause so that this script stays portable
##
#
#if [ x$PBS_O_WORKDIR != x ]; then
#   cd $PBS_O_WORKDIR
#fi
#
   np=$PBS_NP

DATE=_YSTARTMSTARTDSTART_
CYC=_HSTART_
flen=_FLEN_
GRIB=_GRIBSRC_

PACKDIR=_PACKDIR_
WORKDIR=_WORKDIR_

mkdir -p $WORKDIR/ungrib
cd $WORKDIR/ungrib
rm $WORKDIR/ungrib/*
rm $WORKDIR/*


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

cp $PACKDIR/namelist.nps .

echo PASSED IN GRIB AS $GRIB

if [ $GRIB == "GFS" ]
then
### GFS block
mod=gfs
type=pgrbf
suf=" "

cp $PACKDIR/NPS/ungrib/Variable_Tables/Vtable.GFS Vtable

elif [ $GRIB == "NAM" ]
then
### NAM block
mod=nam
type=awip32
suf=".tm00"
cp $PACKDIR/NPS/ungrib/Variable_Tables/Vtable.NAM Vtable

elif [ $GRIB == "RUC" ]
then
### RUC block
mod=ruc2
type=pgrb20f
suf=" "

cp $PACKDIR/NPS/ungrib/Variable_Tables/Vtable.RUCp Vtable

else
echo "GRIB is $GRIB and quitting"
fi

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

cp $PACKDIR/NPS/ungrib.exe .

echo DATE $DATE
echo CYC $CYC

rm GRIBFILE.*

if [ $GRIB == "RUC" ]
then
filedir=/com_p6/ruc/prod/ruc2a.${DATE}
else
filedir=/com_p6/${mod}/prod/${mod}.${DATE}
filedir=/scratch2/portfolios/NCEPDEV/rstprod/com/${mod}/prod/${mod}.${DATE}
fi


if [ $GRIB == "RUC" ]
then
ln -sf $filedir/${mod}.t${CYC}z.pgrb20anl GRIBFILE.AAA
else
ln -sf $filedir/${mod}.t${CYC}z.${type}00${suf} GRIBFILE.AAA
fi

ln -sf $filedir/${mod}.t${CYC}z.${type}03${suf} GRIBFILE.AAB
ln -sf $filedir/${mod}.t${CYC}z.${type}06${suf} GRIBFILE.AAC
ln -sf $filedir/${mod}.t${CYC}z.${type}09${suf} GRIBFILE.AAD
ln -sf $filedir/${mod}.t${CYC}z.${type}12${suf} GRIBFILE.AAE
ln -sf $filedir/${mod}.t${CYC}z.${type}15${suf} GRIBFILE.AAF

if [ $GRIB != "RUC" ]
then
ln -sf $filedir/${mod}.t${CYC}z.${type}18${suf} GRIBFILE.AAG
ln -sf $filedir/${mod}.t${CYC}z.${type}21${suf} GRIBFILE.AAH
ln -sf $filedir/${mod}.t${CYC}z.${type}24${suf} GRIBFILE.AAI


echo flen is $flen

if [ $flen -ge 27 ] 
then
ln -sf $filedir/${mod}.t${CYC}z.${type}27${suf} GRIBFILE.AAJ
fi

if [ $flen -ge 30 ] 
then
ln -sf $filedir/${mod}.t${CYC}z.${type}30${suf} GRIBFILE.AAK
fi

if [ $flen -ge 33 ] 
then
ln -sf $filedir/${mod}.t${CYC}z.${type}33${suf} GRIBFILE.AAL
fi

if [ $flen -ge 36 ] 
then
ln -sf $filedir/${mod}.t${CYC}z.${type}36${suf} GRIBFILE.AAM
fi

if [ $flen -ge 39 ] 
then
ln -sf $filedir/${mod}.t${CYC}z.${type}39${suf} GRIBFILE.AAN
fi

if [ $flen -ge 42 ] 
then
ln -sf $filedir/${mod}.t${CYC}z.${type}42${suf} GRIBFILE.AAO
fi

if [ $flen -ge 45 ] 
then
ln -sf $filedir/${mod}.t${CYC}z.${type}45${suf} GRIBFILE.AAP
fi

if [ $flen -ge 48 ] 
then
echo LINKED 48
ln -sf $filedir/${mod}.t${CYC}z.${type}48${suf} GRIBFILE.AAQ
fi

if [ $flen -ge 51 ] 
then
echo LINKED 51
ln -sf $filedir/${mod}.t${CYC}z.${type}51${suf} GRIBFILE.AAR
fi

if [ $flen -ge 54 ] 
then
ln -sf $filedir/${mod}.t${CYC}z.${type}54${suf} GRIBFILE.AAS
fi

if [ $flen -ge 57 ] 
then
ln -sf $filedir/${mod}.t${CYC}z.${type}57${suf} GRIBFILE.AAT
fi

if [ $flen -ge 60 ] 
then
ln -sf $filedir/${mod}.t${CYC}z.${type}60${suf} GRIBFILE.AAU
fi

if [ $flen -ge 63 ] 
then
ln -sf $filedir/${mod}.t${CYC}z.${type}63${suf} GRIBFILE.AAV
fi

if [ $flen -ge 66 ] 
then
ln -sf $filedir/${mod}.t${CYC}z.${type}66${suf} GRIBFILE.AAW
fi

if [ $flen -ge 69 ] 
then
ln -sf $filedir/${mod}.t${CYC}z.${type}69${suf} GRIBFILE.AAX
fi

if [ $flen -ge 72 ] 
then
ln -sf $filedir/${mod}.t${CYC}z.${type}72${suf} GRIBFILE.AAY
fi

if [ $flen -ge 75 ] 
then
ln -sf $filedir/${mod}.t${CYC}z.${type}75${suf} GRIBFILE.AAZ
fi

if [ $flen -ge 78 ] 
then
ln -sf $filedir/${mod}.t${CYC}z.${type}78${suf} GRIBFILE.ABA
fi

if [ $flen -ge 81 ] 
then
ln -sf $filedir/${mod}.t${CYC}z.${type}81${suf} GRIBFILE.ABB
fi

if [ $flen -ge 84 ] 
then
ln -sf $filedir/${mod}.t${CYC}z.${type}84${suf} GRIBFILE.ABC
fi

if [ $flen -ge 87 ] 
then
echo NEED TO LINK MORE GRIB FILES IN run_ungrib.ll
exit 9
fi

fi


diff $PACKDIR/NPS/ungrib/Variable_Tables/Vtable.GFS $PACKDIR/NPS/ungrib/Variable_Tables/Vtable.GFS_spectral > /dev/null 2>&1
is_spectral=$?
echo is_spectral is $is_spectral

if [ $is_spectral = 0 ] 
then
ln -sf $filedir/gfs.t${CYC}z.sf00 fort.27
ln -sf $filedir/gfs.t${CYC}z.sf03 fort.28
ln -sf $filedir/gfs.t${CYC}z.sf06 fort.29
ln -sf $filedir/gfs.t${CYC}z.sf09 fort.30
ln -sf $filedir/gfs.t${CYC}z.sf12 fort.31
ln -sf $filedir/gfs.t${CYC}z.sf15 fort.32
ln -sf $filedir/gfs.t${CYC}z.sf18 fort.33
ln -sf $filedir/gfs.t${CYC}z.sf21 fort.34
ln -sf $filedir/gfs.t${CYC}z.sf24 fort.35
ln -sf $filedir/gfs.t${CYC}z.sf27 fort.36
ln -sf $filedir/gfs.t${CYC}z.sf30 fort.37
ln -sf $filedir/gfs.t${CYC}z.sf33 fort.38
ln -sf $filedir/gfs.t${CYC}z.sf36 fort.39
ln -sf $filedir/gfs.t${CYC}z.sf39 fort.40
ln -sf $filedir/gfs.t${CYC}z.sf42 fort.41
ln -sf $filedir/gfs.t${CYC}z.sf45 fort.42
ln -sf $filedir/gfs.t${CYC}z.sf48 fort.43
ln -sf $filedir/gfs.t${CYC}z.sf51 fort.44
ln -sf $filedir/gfs.t${CYC}z.sf54 fort.45
ln -sf $filedir/gfs.t${CYC}z.sf57 fort.46
ln -sf $filedir/gfs.t${CYC}z.sf60 fort.47
ln -sf $filedir/gfs.t${CYC}z.sf63 fort.48
ln -sf $filedir/gfs.t${CYC}z.sf66 fort.49
ln -sf $filedir/gfs.t${CYC}z.sf69 fort.50
ln -sf $filedir/gfs.t${CYC}z.sf72 fort.51
ln -sf $filedir/gfs.t${CYC}z.sf75 fort.52
ln -sf $filedir/gfs.t${CYC}z.sf78 fort.53
ln -sf $filedir/gfs.t${CYC}z.sf81 fort.54
ln -sf $filedir/gfs.t${CYC}z.sf84 fort.55
fi

mpiexec_mpt -np $np ./ungrib.exe

cp FILE* ../

cd $PACKDIR

qsub run_geo.lsf