set -xa

#   Kitzmiller  Oct 2001
#   Creates 10-km radar reflectivity mosaic based on RCM's;
#   Collects model, satellite, lightning, surface data for
#     quality-control procedures;
#   Creates QC'ed mosaic for public dissemination;
#   Creates text ROBs for public dissemination

#    AUTOROB_LATEST.yyyymmddhh and rcmedit_grib.yyyymmddhh
#    are to be disseminated over the SBN !

echo "--- Start 10-km RCM mosaic processing at: " `date`
echo "  "

#   Collect RCM files.  Collection of current valid RCMs
#   is in RCM30.SRVR or RCM00.SRVR

echo "--- Collect valid RCMs"
echo "  "

export daystring=$PDY
export jhr=$cyc

if [ $do_radsum = 'no' ]
then
   echo "Creating RCM00.SRVR..."
   export daystring=$PDY
   export jhr=$cyc
   export mi1=40
   export mi2=55
   if [ $jhr -eq "00" ]
   then
     export daystring=$PDYm1
     export jhr=23
   else 
     export jhr=`expr $cyc - 1`
   fi
else
   export mi1=10
   export mi2=25
fi

export dt_string=${daystring}${jhr}

if [ $do_radsum = "yes" ]
then
   $USHradar/radar_fetchrcm_local.sh 30
   echo "RCM30.SRVR" > rcmread.cn1
   echo "${dt_string}30 -0030" > rcmread.inp
else
   $USHradar/radar_fetchrcm_local.sh 00
   echo "RCM00.SRVR" > rcmread.cn1
   echo "${dt_string}00 -0030" > rcmread.inp
fi
#    Housecleaning: remove any interim .SRVR files

rm -f NMC*.SRVR RCM??IN.SRVR

#    Create basic mosaic from RCM's
#    Output mosaic is in file natrcm1.dat
#    Mosaic within local radar umbrellas is in lclmask.dat
#    Diagnostic output files also used in other programs:
#    radar_w_refl, radar_w_sight, radars_processed.dat, radars_used_list
#    Further diagnostic output in lclmask_ascii

echo "Execute rcmread"
echo "--- Mosaic RCMs"
echo "  "
echo "0|`pwd`| cd to this before running rcmread" >rcmread.source
echo "0|`pwd`| cd to this before running rcmread" >rcmread.execution
echo "0|`pwd`| cd to this before running rcmread" >rcmread_lclmask.data
cat $PARMradar/radar_rcmread_lclmask.data >> rcmread_lclmask.data
cp $PARMradar/radar_rcmread.execution rcmread.execution
cp $PARMradar/radar_occult.rcm.tables occult.rcm.tables 

export pgm=radar_rcmread
. prep_step

$EXECradar/radar_rcmread >> $pgmout 2>>errout
err=$? ; export err; err_chk

mv natrcm1.dat natrcm.dat
#   Determine if new Nam output is available.
#   If so, decode from GRIB to REAL*4 binary format.
#   Output is in files: nam_grib_latest_hh_decode where
#   hh is 00,06,12,18 for time projection in hours.
echo "--- Check for new Nam forecasts"
echo "  "
$USHradar/radar_get-decode_nam_grib_asp.sh

#   Collect NAM output for RH and temperature fields
#   used in editing.  Interpolate to current radar time and
#   10-km radar grid.
#   Output is in nwp11_bin_rcm_fields

#   NOTE: Model output is decoded from GRIB via another script
#   in get-decode_nam_grib_asp.csh

echo " Execute model_to_rcm - Interpolate atmospheric data to RCM grid"
cp $PARMradar/radar_model_to_rcm_8.ctl model_to_rcm_8.ctl
echo "  "

export pgm=radar_model_to_rcm
. prep_step

$EXECradar/radar_model_to_rcm >> $pgmout 2>>errout
err=$? ; export err; err_chk
rm -f early_nwp_grid late_nwp_grid

#   Collect channel 4 IR satellite image (presently from
#   copies placed on tgsv1 server).  Interpolate data to 
#   radar grid.
#   Output is in ch4_rcm_latest

echo "--- Interpolate satellite IR data to RCM grid"
echo "  "
$USHradar/radar_get_sat_analysis.sh
#   Collect lightning data.  Interpolate strikes to radar grid.
#   Output is in ltgrcm.dat

echo "--- Interpolate lightning data to RCM grid"
echo "  "
$USHradar/radar_gailtg_asp.sh 

rm  LUS*SRVR
#   Collect METAR surface precip reports.  Interpolate to radar grid.
#   For current hour radar use sfc obs around 00:50 previous hour,
#   for previous hour radar sfcs obs from 00:50 hour before that.
#   Output is in metarrcm.dat

echo "--- Interpolate METAR precip reports to RCM grid"
echo "  "

if [ $do_radsum = "yes" ]
then
   $USHradar/radar_get_metar_grid_asp.sh 00
else
   $USHradar/radar_get_metar_grid_asp.sh 01
fi

rm  METARS
#   Run editing algorithm to produce final 10-km reflectivity mosaic
#   Output is in rcmedit.dat

echo "--- Edit nonprecip echoes from mosaic"
echo " Execute edit_radar "
cp $PARMradar/radar_edit_radar_9.ctl edit_radar_9.ctl 
cp $PARMradar/radar_rcm_permanent_echo.dat rcm_permanent_echo.dat

export pgm=radar_edit_radar
. prep_step

$EXECradar/radar_edit_radar >> $pgmout 2>>errout
err=$? ; export err; err_chk

#    Create GRIB message with level 0-7 edited data, with OSO
#    and WMO headers for pickup and transmission.  Message is a simple
#    GRIB1, no bitmap, with missing reflectivity boxes represented as
#    value 7.
#    Output is in rcmedit_grib.

rm  rcmedit_grib*

echo "--- Prepare mosaic GRIB file"
echo "Execute make_grib  "

export pgm=radar_make_grib
. prep_step

$EXECradar/radar_make_grib << LEOF >> $pgmout 2>>errout
rcmedit.dat
rcmedit_grib
0
0 7
LEOF
err=$? ; export err; err_chk

cp rcmedit_grib $COMOUT/rcmedit_grib.${PDY}${cyc}

#    FOLLOWING STEPS DONE ONLY FOR NOMINAL 00:15 RADAR DATA
#    ROB production (AUTOROBs or historical-format text messages)
#    Create these only for nominal 00:15 radar time
#    rcm2rob_lclmask creates ROBs in AFOS format, file robtdl.dat

if [ $do_radsum = "yes" ]
then

   echo "--- Create ROBs from mosaic and storm cell data"
   echo "Execute rcm2rob  "
   rm  robtdl.dat
   echo "0|`pwd`| cd to this before running rcmread" >rcm2rob.source
   echo "0|`pwd`| cd to this before running rcmread" >rcm2rob.execution
   echo "0|`pwd`| cd to this before running rcmread" >rcm2rob.data
   cat $PARMradar/radar_rcm2rob.data1 >> rcm2rob.data
   echo "0|`pwd`| Path to write (many!) work files to" >>rcm2rob.data
   cat $PARMradar/radar_rcm2rob.data2 >> rcm2rob.data

   export pgm=radar_rcm2rob
   . prep_step
   $EXECradar/radar_rcm2rob << ROB_END >> $pgmout 2>>errout
auto
q
ROB_END
    err=$? ; export err; err_chk

#    Process AFOS-format AUTOROB messages into WMO-header
#    format.  Output is in file AUTOROB_LATEST

   rm  AUTO*

   echo "Execute conv_afos"

   export pgm=radar_conv_afos
   . prep_step
   $EXECradar/radar_conv_afos << CONVWMO_END >> $pgmout 2>>errout
rcmedit.dat
robtdl.dat
AUTOROB_LATEST
CONVWMO_END
   err=$? ; export err; err_chk

#    Create cell information file for Larry Sager et al to
#    use in making up 90R/90S chart.
#    Output is in cell_info.dat

   rm  cell_info.dat*

   echo "Execute cell_info"
   export pgm=radar_cell_info
   . prep_step

   $EXECradar/radar_cell_info << LEOF1 >> $pgmout 2>>errout
rcmedit.dat
radars_processed.dat
cell_info.dat
LEOF1
   err=$? ; export err; err_chk

#    Create time-tagged files for use in 90R/90S summary
#    chart production

   cp AUTOROB_LATEST $COMOUT/AUTOROB_LATEST.${PDY}${cyc}
   cp cell_info.dat $COMOUT/cell_info.dat.${PDY}${cyc}
else
   exit
fi

#####################################################################
echo "------------------------------------------------"
echo "JRADAR_$cyc the national radar summary postprocessing"
echo "------------------------------------------------"
#################################################################
#
# ABSTRACT : This portion of the script produces the national radar
#            summary chart for TOC/NCDC and AWIPS using GEMPAK.
#            V. Krishna Kumar, Systems Integration Branch/NCEP NCO
#
#################################################################

########################################################################
#
#  FLOW OF CONTROL
#
#  1) Check to see if tdl radar mosiac files have updated.
#        If not, sleep
#  2) Create input files for making the radar summary gif product.
#  3) Create input files for the  awips radar summary legends product
#  4) Create input files for the awips radar summary contours product
#########################################################################
if   [  -s $DCOM/$PDY/wtxtbul/SVRWXBX.FILE.${PDY}${cyc} ]
then
     cp $DCOM/$PDY/wtxtbul/SVRWXBX.FILE.${PDY}${cyc} watch_boxes

else
     ls -1tr $DCOM/$PDY/wtxtbul/SVRWXBX.FILE.*  > fname
     if [ -s fname ]
     then
        fname2=`tail -n 1 fname`
        cp $fname2 watch_boxes
     else
        ls -1tr $DCOM/${PDYm1}/wtxtbul/SVRWXBX.FILE.* > fname
        fname2=`tail -n 1 fname`
        cp $fname2 watch_boxes
        cp $fname2 $DCOM/${PDY}/wtxtbul
     fi
fi

echo ENDOFILE >> watch_boxes

###################################################
#      Start by making sure the TDL files have
#      been written to the IBM SP
###################################################

###################################################
#   Make the radar GEMPAK summary chart
###################################################

###################################################
#   Copy all the radar files from fix files prior 
#   to running  radar_summary program
###################################################
    cp $FIXradar/radar_list_OSO ./.
    cp $FIXradar/radar_map_ij_latlon.dat ./.

$EXECutil/grbindex rcmedit_grib rcmedit_gribi

   export pgm=radar_summary
   set +u
   . prep_step
   set -u

   export XLFRTEOPTS="unit_vars=yes"     # Allow overriding default names.
   export XLFUNIT_11="radar_list_OSO"
   export XLFUNIT_12="cell_info.dat"
   export XLFUNIT_13="rcmedit_grib"
   export XLFUNIT_15="radar_map_ij_latlon.dat"
   export XLFUNIT_18="watch_boxes"
   export XLFUNIT_33="rcmedit_gribi"
   export XLFUNIT_22="AUTOROB_LATEST"
   export XLFUNIT_51="na_file.dat"
   export XLFUNIT_52="nb_file.dat"
   export XLFUNIT_53="nc_file.dat"
   export XLFUNIT_54="nd_file.dat"
   export XLFUNIT_55="ne_file.dat"
   export XLFUNIT_56="ns_file.dat"
   export XLFUNIT_57="nt_file.dat"
   export XLFUNIT_58="nw_file.dat"
   export XLFUNIT_59="conn_nlbs_file.dat"
   export XLFUNIT_60="conn_nltb_file.dat"
   export XLFUNIT_61="conn_nltn_file.dat"
   export XLFUNIT_62="conn_nspd_file.dat"
   export XLFUNIT_63="conn_wbln_file.dat"
   export XLFUNIT_64="conn_wbox_file.dat"
   export XLFUNIT_65="radar_summary1_text"
   export XLFUNIT_66="radar_summary2_text"
   export XLFUNIT_67="radar_summary3_text"
   export XLFUNIT_68="radar_summary4_text"
   export XLFUNIT_69="radar_summary5_text"
   export XLFUNIT_70="radar_summary6_text"
   startmsg
   $EXECradar/radar_summary >> $pgmout 2> errfile
   export err=$?;err_chk
#
#
# execute the util script to generate the radar summary charts 
#
#
#$utilscript/startxvfb.sh /bin/sh
#. ./STARTXVFB
#chmod 755 STARTXVFB
#ps -ef

msg='RADAR SUMMARY PLOTS HAVE BEGUN'
postmsg "$jlogfile" "$msg"
#
# Copy all the input files for making the radar summary plots
#
    cp /nwprod/gempak/fix/coltbl.xwp.wbg coltbl.xwp
    cp /nwprod/gempak/fix/tiffprod.tbl tiffprod.tbl
    cp /nwprod/exec/sffdsf ./.
    cp $FIXradar/radar_summary.pack ./.
    cp $FIXradar/sffdsf* ./.

sh $USHutil/exradar.gempak.sh
#############################################################


# Stop the XVFB driver
#$utilscript/stopxvfb.sh

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

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

############## END OF SCRIPT #######################

