#!/bin/sh

#######################################################################
#  Purpose: To extract multiple parameters from NCEP GFS model output
#           GRIB file for one projection and interpolate the parameters 
#           to MDL's fine grid. Uses wgrib and copygb utilities.
echo "------------------------------------------------"
echo "JGFSMOS_HRQPF_EXTPREPREP processing             "
echo "------------------------------------------------"
echo "History: May 1, 2011 - First implementation of this new script."
#######################################################################
#
cd $DATA

########################################
set -x
msg="Begin job for $job"
postmsg "$jlogfile" "$msg"
########################################

echo $PDY $cyc: Date and Cycle - echo PDY and cyc

#######################################################################
# LOOP THROUGH PROJECTIONS
#######################################################################
for tau in 99 102 105 108 111 114 117 120 123 126 129 132 135 138 141\
           144 147 150 153 156 159 162 165 168 171 174 177 180 183 186\
           189 192 204 216
do
#######################################################################
# COPY MODEL FILES TO TEMP SPACE
#######################################################################

  cp $COMIN/gfs.$cycle.pgrbf$tau gfs.$PDY$cyc.pgrbf$tau
  cp $COMIN/gfs.$cycle.pgrbif$tau gfs.$PDY$cyc.pgrbif$tau

#######################################################################
# RUN WGRIB TO GET INPUT LIST FOR COPYGB
# RUN COPYGB FOR NON PRECIP
# CONVERTS TO MDL GRID
#######################################################################
  if [ $tau -le 192 ] ; then
     grid=`cat $FIXmdl/mdl_finegds`
  else
     grid=`cat $FIXmdl/mdl_coarsegds`
  fi

  g1=gfs.$PDY$cyc.pgrbf$tau
  x1=gfs.$PDY$cyc.pgrbif$tau
 
  $EXECutil/wgrib $g1 > wgrib.out
  grep -f $FIXmdl/mdl_gfsxpcp.wgrib wgrib.out |\
  $EXECutil/copygb -a -kw -g"$grid" -i0 $g1 $x1 mdl_xpcpx.$cycle.pgrb 
 

#######################################################################
# RUN WGRIB TO GET INPUT LIST FOR COPYGB
# RUN COPYGB FOR PRECIP
# CONVERTS TO MDL GRID
#######################################################################
  if [ $tau -le 192 ] ; then
     grid=`cat $FIXmdl/mdl_finegds`
  else
     grid=`cat $FIXmdl/mdl_coarsegds`
  fi
 
  g1=gfs.$PDY$cyc.pgrbf$tau
  x1=gfs.$PDY$cyc.pgrbif$tau
 
  grep -f $FIXmdl/mdl_gfspcp.wgrib wgrib.out |\
  $EXECutil/copygb -a -kw -g"$grid" -i3 $g1 $x1 mdl_pcpx.$cycle.pgrb
 
done

#######################################################################
# GET INDICES AND INVENTORY
#######################################################################
$EXECutil/grbindex mdl_xpcpx.$cycle.pgrb mdl_xpcpx.$cycle.pgrbi
$EXECutil/grbindex mdl_pcpx.$cycle.pgrb mdl_pcpx.$cycle.pgrbi
$EXECutil/invindex mdl_xpcpx.$cycle.pgrbi > mdl_xpcpx.pgrbinv.$PDY$cyc
$EXECutil/invindex mdl_pcpx.$cycle.pgrbi > mdl_pcpx.pgrbinv.$PDY$cyc

#######################################################################
# GRB2MDLP
# CONVERT GRIB TO MDL_PACK FOR HOURS 99 TO 216
#######################################################################

export pgm=mdl_grb2mdlp
. prep_step
export XLFUNIT_10="ncepdate"
export XLFUNIT_11="mdl_xpcpx.$cycle.pgrb"
export XLFUNIT_21="mdl_xpcpx.$cycle.pgrbi"
export XLFUNIT_12="mdl_pcpx.$cycle.pgrb"
export XLFUNIT_22="mdl_pcpx.$cycle.pgrbi"
export XLFUNIT_30="$FIXmdl/mdl_gridlst"
export XLFUNIT_51="pkgfsxraw.$DAT"
export XLFUNIT_52="grb2mdlp.lst"
echo MDLLOG: `date` - Program grb2mdlp has begun.
startmsg
$EXECmdl/mdl_grb2mdlp < $PARMmdl/mdl_hrqpf_gfsxgrbcnv.cn.$cycle >> $pgmout 2>errfile
export err=$?; err_chk

#######################################################################
# COPY FILES TO COM
#######################################################################

if test $SENDCOM = 'YES'
then
  cp pkgfsxraw.$DAT $COMOUT/mdl_hrqpf_gfsxpkd.$cycle
#  cp mdl_xpcp.$cycle.pgrb $COMOUT
#  cp mdl_xpcp.$cycle.pgrbi $COMOUT
#  cp mdl_pcp.$cycle.pgrb $COMOUT
#  cp mdl_pcp.$cycle.pgrbi $COMOUT
fi

#####################################################################
# GOOD RUN
set +x
echo "************** $job COMPLETED NORMALLY ON THE IBM SP"
set -x
#####################################################################

msg="HAS COMPLETED NORMALLY!"
postmsg "$jlogfile" "$msg"

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