#!/bin/ksh
######################################################################
#  UNIX Script Documentation Block
#                      .
# Script name:         exaqm_cmaq_maxi.sh
# Script description:  CMAQ post processing for daily surface maximum O3/PM2.5
#
# Author:  Youhua Tang  Org: NP22  Date: 2009-06-30
#          Jianping Huang implemented for HI (139 AM and 196 for NDGD): 03-09-2010 
######################################################################
set -xa

export DBNALERT_TYPE=${DBNALERT_TYPE:-GRIB_HIGH}

cd $DATA

while [ ! -s ${COMIN}/aqm.${cycle}.aconc.bin ]; do
 sleep 120    # wait until the CMAQ output is ready
done

export CMAQFILE1=BIN:${COMIN}/aqm.${cycle}.aconc.bin
export CMAQFILE2=BIN:${COMIN}/aqm.t00z.aconc.bin    
if [ $cyc -eq 12 ]; then
 export CMAQFILE3=BIN:${COMIN}/aqm.t06z.aconc.bin
fi

cat >cmaq-maxi2grib.ini <<EOF5
&control
markutc=04
outfile='aqm-maxi.139.grib'
varlist='o3_1hr','o3_8hr'
id_gribdomain=139
/
EOF5

export NOTCDF_FATAL=F
$EXECaqm/aqm_cmaq_maxi2grib_CHA >> $pgmout 2>errfile
export err=$?; err_chk

# interpolate to grid 196

$utilexec/copygb -g 196 -x -i"1 1" aqm-maxi.139.grib aqm-maxi.196.grib
export err=$?; err_chk

$utilexec/wgrib.aqm -s aqm-maxi.196.grib | grep "OZMAX1" | $utilexec/wgrib.aqm -i aqm-maxi.196.grib -grib -o aqm-1hro3-maxi.196.grib
export err=$?; err_chk
  
$utilexec/wgrib.aqm -s aqm-maxi.196.grib | grep "OZMAX8" | $utilexec/wgrib.aqm -i aqm-maxi.196.grib -grib -o aqm-8hro3-maxi.196.grib
export err=$?; err_chk

for hr in 1 8
do

$utilexec/cnvgrib -g12 -m -p32  aqm-${hr}hro3-maxi.196.grib aqm-${hr}hro3-maxi.196.grib2
export err=$?; err_chk

echo 0 > filesize
export XLFRTEOPTS="unit_vars=yes"
export XLFUNIT_11=aqm-${hr}hro3-maxi.196.grib2
export XLFUNIT_12="filesize"
export XLFUNIT_31=
export XLFUNIT_51=aqm-${hr}hro3-maxi.196.grib2.temp
$utilexec/aqm_smoke < $PARMutil/grib2_cmaq-${hr}hro3-maxi.${cycle}.196
export err=$?; err_chk

echo `ls -l  aqm-${hr}hro3-maxi.196.grib2.temp | awk '{print $5} '` > filesize
export XLFRTEOPTS="unit_vars=yes"
export XLFUNIT_11=aqm-${hr}hro3-maxi.196.grib2.temp
export XLFUNIT_12="filesize"
export XLFUNIT_31=
export XLFUNIT_51=grib2.${envir}.${cycle}.aqm-${hr}hro3-max.196
$utilexec/aqm_smoke < $PARMutil/grib2_cmaq-${hr}hro3-maxi.${cycle}.196
export err=$?; err_chk

rm filesize

       ##############################
       # Post Files to PCOM
       ##############################

       if test "$SENDPCOM" = 'YES'
       then
           cp grib2.${envir}.${cycle}.aqm-${hr}hro3-max.196  $pcom/grib2.${envir}.${cycle}.aqm-${hr}hro3-max.196.$job

          ##############################
          # Distribute Data
          ##############################

          if [ "$SENDDBN" = 'YES' ] ; then
             $DBNROOT/bin/dbn_alert $DBNALERT_TYPE $NET $job $pcom/grib2.${envir}.${cycle}.aqm-${hr}hro3-max.196.$job
          else
             msg="File $output_grb.$job not posted to db_net."
             postmsg "$jlogfile" "$msg"
          fi
       fi

done

if [ $cyc -eq 06 -o $cyc -eq 12 ] ; then
 cp grib2.${envir}.${cycle}.aqm-1hro3-max.196 $COMOUT/
 cp grib2.${envir}.${cycle}.aqm-8hro3-max.196 $COMOUT/
 cp aqm-maxi.139.grib $COMOUT/grib1.${envir}.${cycle}.aqm-daily-max.139
 if [ "$SENDDBN" = 'YES' ] ; then
  $DBNROOT/bin/dbn_alert MODEL AQM_03MAX_HI_GB2 $job $COMOUT/grib2.${envir}.${cycle}.aqm-1hro3-max.196
  $DBNROOT/bin/dbn_alert MODEL AQM_03MAX_HI_GB2 $job $COMOUT/grib2.${envir}.${cycle}.aqm-8hro3-max.196
 fi
fi
