#!/bin/ksh
############################################################
# This job converts GEFS and GFS forecasts to SREF-lookalike 
# files. It depends on a previous job exsref_wrf_gfsprep.sh.sms
#
# Change Log:
# 05/27/2012: Jun Du, Initial Program
#
############################################################
set -x

XLFRTEOPTS="namelist=old"
export XLFRTEOPTS

XLSMPOPTS="parthds=2"
export XLSMPOPTS

#################################
HR=$1

cd $HR  || exit
rm -f $HR/*

# GEFS and GFS
group="c00 p01 p02 p03 p04 p05 p06 p07 p08 p09 p10 p11 p12 p13 p14 p15 p16 p17 p18 p19 p20 gfs"
for mem in $group
do 
 if [ $mem = gfs ];then
  infile=${COM_IN}/${RUN}.${PDY}/global_pgrb/gfs.t${gefscyc}z.master.grbf${HR}
 else
  infile=${COM_IN}/${RUN}.${PDY}/global_pgrb/gens_${mem}.t${gefscyc}z.pgrbf${HR}
 fi
# sfc variables
$utilexec/wgrib $infile | grep ":TMP:kpds5=11:kpds6=105:kpds7=2:"    | $utilexec/wgrib -i -grib $infile -o t2m
$utilexec/wgrib $infile | grep ":SPFH:kpds5=51:kpds6=105:kpds7=2:"   | $utilexec/wgrib -i -grib $infile -o q2m
$utilexec/wgrib $infile | grep ":RH:kpds5=52:kpds6=105:kpds7=2:"     | $utilexec/wgrib -i -grib $infile -o rh2m
$utilexec/wgrib $infile | grep ":UGRD:kpds5=33:kpds6=105:kpds7=10:"  | $utilexec/wgrib -i -grib $infile -o u10m
$utilexec/wgrib $infile | grep ":VGRD:kpds5=34:kpds6=105:kpds7=10:"  | $utilexec/wgrib -i -grib $infile -o v10m
$utilexec/wgrib $infile | grep ":PRMSL:kpds5=2:kpds6=102:kpds7=0:"   | $utilexec/wgrib -i -grib $infile -o slp
$utilexec/wgrib $infile | grep ":APCP:kpds5=61:kpds6=1:kpds7=0:"     | $utilexec/wgrib -i -grib $infile -o ppt
#$utilexec/wgrib $infile | grep ":CAPE:kpds5=157:kpds6=1:kpds7=0:"    | $utilexec/wgrib -i -grib $infile -o cape
#$utilexec/wgrib $infile | grep ":CIN:kpds5=156:kpds6=1:kpds7=0:"     | $utilexec/wgrib -i -grib $infile -o cin
#$utilexec/wgrib $infile | grep ":LFTX:kpds5=131:kpds6=1:kpds7=0:"    | $utilexec/wgrib -i -grib $infile -o li
#$utilexec/wgrib $infile | grep ":PWAT:kpds5=54:kpds6=200:kpds7=0:"   | $utilexec/wgrib -i -grib $infile -o pwat
# 1000 hpa variables
#$utilexec/wgrib $infile | grep ":TMP:kpds5=11:kpds6=100:kpds7=1000:"  | $utilexec/wgrib -i -grib $infile -o 1000_t
#$utilexec/wgrib $infile | grep ":RH:kpds5=52:kpds6=100:kpds7=1000:"   | $utilexec/wgrib -i -grib $infile -o 1000_rh
#$utilexec/wgrib $infile | grep ":UGRD:kpds5=33:kpds6=100:kpds7=1000:" | $utilexec/wgrib -i -grib $infile -o 1000_u
#$utilexec/wgrib $infile | grep ":VGRD:kpds5=34:kpds6=100:kpds7=1000:" | $utilexec/wgrib -i -grib $infile -o 1000_v
#$utilexec/wgrib $infile | grep ":HGT:kpds5=7:kpds6=100:kpds7=1000:"   | $utilexec/wgrib -i -grib $infile -o 1000_z
# 850 hpa variables
$utilexec/wgrib $infile | grep ":TMP:kpds5=11:kpds6=100:kpds7=850:"  | $utilexec/wgrib -i -grib $infile -o 850_t
$utilexec/wgrib $infile | grep ":RH:kpds5=52:kpds6=100:kpds7=850:"   | $utilexec/wgrib -i -grib $infile -o 850_rh
$utilexec/wgrib $infile | grep ":UGRD:kpds5=33:kpds6=100:kpds7=850:" | $utilexec/wgrib -i -grib $infile -o 850_u
$utilexec/wgrib $infile | grep ":VGRD:kpds5=34:kpds6=100:kpds7=850:" | $utilexec/wgrib -i -grib $infile -o 850_v
#$utilexec/wgrib $infile | grep ":HGT:kpds5=7:kpds6=100:kpds7=850:"   | $utilexec/wgrib -i -grib $infile -o 850_z
# 700 hpa variables
#$utilexec/wgrib $infile | grep ":TMP:kpds5=11:kpds6=100:kpds7=700:"  | $utilexec/wgrib -i -grib $infile -o 700_t
#$utilexec/wgrib $infile | grep ":RH:kpds5=52:kpds6=100:kpds7=700:"   | $utilexec/wgrib -i -grib $infile -o 700_rh
#$utilexec/wgrib $infile | grep ":UGRD:kpds5=33:kpds6=100:kpds7=700:" | $utilexec/wgrib -i -grib $infile -o 700_u
#$utilexec/wgrib $infile | grep ":VGRD:kpds5=34:kpds6=100:kpds7=700:" | $utilexec/wgrib -i -grib $infile -o 700_v
#$utilexec/wgrib $infile | grep ":HGT:kpds5=7:kpds6=100:kpds7=700:"   | $utilexec/wgrib -i -grib $infile -o 700_z
# 500 hpa variables
#$utilexec/wgrib $infile | grep ":TMP:kpds5=11:kpds6=100:kpds7=500:"  | $utilexec/wgrib -i -grib $infile -o 500_t
#$utilexec/wgrib $infile | grep ":RH:kpds5=52:kpds6=100:kpds7=500:"   | $utilexec/wgrib -i -grib $infile -o 500_rh
#$utilexec/wgrib $infile | grep ":UGRD:kpds5=33:kpds6=100:kpds7=500:" | $utilexec/wgrib -i -grib $infile -o 500_u
#$utilexec/wgrib $infile | grep ":VGRD:kpds5=34:kpds6=100:kpds7=500:" | $utilexec/wgrib -i -grib $infile -o 500_v
$utilexec/wgrib $infile | grep ":HGT:kpds5=7:kpds6=100:kpds7=500:"   | $utilexec/wgrib -i -grib $infile -o 500_z
# 250 hpa variables
$utilexec/wgrib $infile | grep ":UGRD:kpds5=33:kpds6=100:kpds7=250:" | $utilexec/wgrib -i -grib $infile -o 250_u
$utilexec/wgrib $infile | grep ":VGRD:kpds5=34:kpds6=100:kpds7=250:" | $utilexec/wgrib -i -grib $infile -o 250_v
rm -f infile 
#cat   slp 500_z 700_z 850_z 1000_z 500_t 700_t 850_t 1000_t 250_u 500_u 700_u 850_u 1000_u 250_v 500_v 700_v 850_v 1000_v 500_rh 700_rh 850_rh 1000_rh t2m q2m rh2m u10m v10m cape cin li pwat ppt > gens_old
#rm -f slp 500_z 700_z 850_z 1000_z 500_t 700_t 850_t 1000_t 250_u 500_u 700_u 850_u 1000_u 250_v 500_v 700_v 850_v 1000_v 500_rh 700_rh 850_rh 1000_rh t2m q2m rh2m u10m v10m cape cin li pwat ppt
cat   slp 500_z 850_t 250_u 850_u 250_v 850_v 850_rh t2m q2m rh2m u10m v10m ppt > gens_old
rm -f slp 500_z 850_t 250_u 850_u 250_v 850_v 850_rh t2m q2m rh2m u10m v10m ppt

domain="212 243 216"
for grid in $domain
do
 $utilexec/copygb -x -g $grid gens_old gens_new
 if [ $mem = c00 ]; then mv gens_new $COMIN/sref_nmb.t${gefscyc}z.pgrb$grid.ctl.f$HR;fi
 if [ $mem = p01 ]; then mv gens_new $COMIN/sref_nmb.t${gefscyc}z.pgrb$grid.n1.f$HR;fi
 if [ $mem = p02 ]; then mv gens_new $COMIN/sref_nmb.t${gefscyc}z.pgrb$grid.p1.f$HR;fi
 if [ $mem = p03 ]; then mv gens_new $COMIN/sref_nmb.t${gefscyc}z.pgrb$grid.n2.f$HR;fi
 if [ $mem = p04 ]; then mv gens_new $COMIN/sref_nmb.t${gefscyc}z.pgrb$grid.p2.f$HR;fi
 if [ $mem = p05 ]; then mv gens_new $COMIN/sref_nmb.t${gefscyc}z.pgrb$grid.n3.f$HR;fi
 if [ $mem = p06 ]; then mv gens_new $COMIN/sref_nmb.t${gefscyc}z.pgrb$grid.p3.f$HR;fi
 if [ $mem = p07 ]; then mv gens_new $COMIN/sref_nmm.t${gefscyc}z.pgrb$grid.ctl.f$HR;fi
 if [ $mem = p08 ]; then mv gens_new $COMIN/sref_nmm.t${gefscyc}z.pgrb$grid.n1.f$HR;fi
 if [ $mem = p09 ]; then mv gens_new $COMIN/sref_nmm.t${gefscyc}z.pgrb$grid.p1.f$HR;fi
 if [ $mem = p10 ]; then mv gens_new $COMIN/sref_nmm.t${gefscyc}z.pgrb$grid.n2.f$HR;fi
 if [ $mem = p11 ]; then mv gens_new $COMIN/sref_nmm.t${gefscyc}z.pgrb$grid.p2.f$HR;fi
 if [ $mem = p12 ]; then mv gens_new $COMIN/sref_nmm.t${gefscyc}z.pgrb$grid.n3.f$HR;fi
 if [ $mem = p13 ]; then mv gens_new $COMIN/sref_nmm.t${gefscyc}z.pgrb$grid.p3.f$HR;fi
 if [ $mem = p14 ]; then mv gens_new $COMIN/sref_em.t${gefscyc}z.pgrb$grid.ctl.f$HR;fi
 if [ $mem = p15 ]; then mv gens_new $COMIN/sref_em.t${gefscyc}z.pgrb$grid.n1.f$HR;fi
 if [ $mem = p16 ]; then mv gens_new $COMIN/sref_em.t${gefscyc}z.pgrb$grid.p1.f$HR;fi
 if [ $mem = p17 ]; then mv gens_new $COMIN/sref_em.t${gefscyc}z.pgrb$grid.n2.f$HR;fi
 if [ $mem = p18 ]; then mv gens_new $COMIN/sref_em.t${gefscyc}z.pgrb$grid.p2.f$HR;fi
 if [ $mem = p19 ]; then mv gens_new $COMIN/sref_em.t${gefscyc}z.pgrb$grid.n3.f$HR;fi
 if [ $mem = p20 ]; then mv gens_new $COMIN/sref_em.t${gefscyc}z.pgrb$grid.p3.f$HR;fi
 if [ $mem = gfs ]; then mv gens_new $COMIN/sref_gfs.t${gefscyc}z.pgrb$grid.ctl.f$HR;fi
done

 rm -f gens_old
done

