#! /bin/sh

#
# Metafile Script : exgempak_gif.sh.sms
#
# Log :
# D.W.Plummer/NCEP   2/97   Add log header
# D.W.Plummer/NCEP  12/97   Added NGM v. NAM plot comparison if NGM precedes NAM
# J. Carr/HPC        8/98   Changed map to medium resolution
# J. Carr/HPC        1/99   Changed contur from 1 to 2 per OM request
# J. Carr/HPC        2/99   Changed skip to 0 per OM request
# B. Gordon/NCO      5/00   Ported to IBM-SP, Standardized for production,
#                           changed gdplot_nc -> gdplot2_nc
# B. Gordon/NCO      4/01   Modified to make individual GIF images.
#
# Shirey/NCO         2/02   Modified to create web tree in /com
# Steve Lilly/NCO    5/07   Add logic which calls utility script
#                           gempak_gif6.sh generates Storm Total Precipitation 
#                           charts for the following models, regions and hours.
#                              NAM-->North American-->(84HR)
#                              NGM-->North American-->(48HR)
#                              GFS-->North American-->(384HR)
#                              GFS-->South American-->(384HR)
# L. Sager/NCO       8/07   Modified to add African graphics 
# C. Magee/NCO      12/07   Add safer copies of mdates files 
# S. Lilly/NCO      01/08   Modified to add Golbal Wave (pacatl)charts of Wave
#                           Heights and Wind for lat 25S - 70N and long 110E - 10E
# S. Lilly/NCO      01/24   Modified to add the 10m Wnd 06hr PCPN from the NAM model
#

export PS4='exgempakgif:$MAPAREA$SECONDS + '
echo "MAPAREA =" $MAPAREA

cd $DATA

set -xa
sh $utilscript/setup.sh

export PDY2=`echo $PDY | cut -c3-`
export DATE=$PDY
export RSHPDY=`echo $PDY | cut -c5-``echo $PDY | cut -c3-4`

if [ $RUN2 = mww3 ]; then
  fstart=000
  finc=3
  fend=126
fi

export fhr=$fstart
typeset -Z3 fhr

case $RUN in
 gfs) MOD=gfs ;;
 ruc) MOD=ruc2;;
 *)  MOD=$RUN ;;
esac

precip_inc=06
prec_name=cp
if [ "$MODEL" = "RUC2" ] ; then
     precip_inc=01
     prec_name=01
fi
export precip_inc
export prec_name 
########################################
while [ $fhr -le $fend ] ; do

#
# Start by creating the day-of-week Title
#

echo 0${fhr}${PDY}${cyc} > dates
export XLFUNIT_55="title.output"
$utilexec/webtitle  <  dates
export TITLEIT=`cat fort.55`

#
# Wait for gempak grid for $fhr to be produced
#
  icnt=1
if [ "$MODEL" != "NWW3" ] ; then
  while [ $icnt -lt 100 ] ; do
    if [ ! -f $COMIN/${MOD}_${PDY}${cyc}f${fhr} ] ; then
      sleep 120
    else
      break    
    fi
    if [ $icnt -gt 30 ] ; then
      err_exit "ABORTING after 1 hour of waiting for $fhr ${MODEL} gempak file."
    fi
    let icnt=icnt+1
  done
else
  while [ $icnt -lt 100 ] ; do
    if [ $RUN2 != mww3 ]; then
      if [ ! -f $COMIN/${RUN2}_${PDY}${cyc} ] ; then
        sleep 120
      else
        break    
      fi
   else
    if [ ! -f $COMIN/${RUN2}_${PDY}${cyc}f${fhr} ] ; then
        sleep 120
    else
      break
    fi
   fi
    if [ $icnt -gt 30 ] ; then
      err_exit "ABORTING after 1 hour of waiting for ${MODEL} gempak file."
    fi
    let icnt=icnt+1
  done
fi   
 
  if [ "${MODEL}" = "NAM" ] ; then
    export MODEL2=NAM44
  else
    export MODEL2=$MODEL
  fi

  #
  # Call the scripts in parallel to make the gif images
  #
if [ "$MODEL" != "NWW3" ] ; then  
  if [ "$MODEL" = "GFS" ]
  then
      $USHgempak/gempak_gif1_gfs.sh
  else
      $USHgempak/gempak_gif1.sh
  fi
  $USHgempak/gempak_gif2.sh
  if  [ ${MAPAREA} = namer -o ${MAPAREA} = samer -o ${MAPAREA} = africa ]
  then
     if [ "$MODEL" != "RUC2" ]
     then
        $USHgempak/gempak_gif3.sh 
        $USHgempak/gempak_gif4.sh 
        $USHgempak/gempak_gif6.sh 
        if [ "$MODEL" = "NAM" ]
        then
           #MODEL2=NAM12
           $USHgempak/gempak_gif5.sh
        fi 
     else
        $USHgempak/gempak_rucgif.sh
     fi	
  fi
else
  if [ "$MAPAREA" = "pacatl" ]
  then
    $USHgempak/gempak_wave_pacatl.sh
  else
    $USHgempak/gempak_wavgif.sh
  fi
fi

################################
# Send files to com 
# If this is the beginning of a run, delete the images
################################
export IMAGDIR=${COMOUT}/$MAPAREA/$RUN/$cyc/images
if [ ${fhr} -eq 00 ] ; then
rm -rf ${COMOUT}/$MAPAREA/$RUN/$cyc
fi
if [ ! -d $IMAGDIR ] ; then
  mkdir -p -m 775 $IMAGDIR
fi
pwd
mv *${fhr}*.gif $IMAGDIR
###############################################
# Update date file if it does not exists in
# local working directory.
###############################################
if [ ! -s mdates.${RUN} ] ; then
  cp /com/nawips/${envir}/gifdate/webgif_mdates.${RUN} .mdates.${RUN}.$MAPAREA.old
  errcp=$?
  if [ $errcp -eq 0 ] ; then
    mv .mdates.${RUN}.$MAPAREA.old mdates.${RUN}.$MAPAREA.old
  else
    err_exit "cp of mdates to local dir failed"
  fi
  if [ $RUN = "ruc" ] ; then
     cp mdates.${RUN}.$MAPAREA.old .mdates.ruc
     mv .mdates.ruc mdates.ruc
     md=`echo $PDY | cut -c5-8`
     yr=`echo $PDY | cut -c3-4`
     mdy=${md}${yr}
     export pgm=ruc_hours
     $USHgempak/ruc_hours $cyc $mdy
     export err=$?
     if [ $err -eq 0 ] ; then
       cp mdates.ruc /com/nawips/${envir}/gifdate/.webgif_mdates.${RUN}
       errcp=$?
       if [ $errcp -eq 0 ] ; then
         mv /com/nawips/${envir}/gifdate/.webgif_mdates.${RUN} /com/nawips/${envir}/gifdate/webgif_mdates.${RUN}
       else
         err_exit "cp of mdates back to /com/nawips for RUC failed"
       fi
#
#      Remove the four hour old ruc directory
#
       if [ -f fourhour.old ] ; then
         four=`cat fourhour.old`
       fi
     else
       msg='Error return from $USHgempak/ruc_hours'
       echo $msg $err ${MAPAREA} ${RUN} ${cyc}
       postmsg "$jlogfile" "$msg"
     fi
     err_chk
  else
    echo ${MAPAREA}
    oldline=`grep $RUN mdates.${RUN}.$MAPAREA.old`
    olddate=`grep $RUN mdates.${RUN}.$MAPAREA.old | awk -F: '{print $1"\n"$2"\n"$3"\n"$4"\n"$5}' | grep ^${cyc}`
    yy=`echo $PDY | cut -c3-4`
    mm=`echo $PDY | cut -c5-6`
    dd=`echo $PDY | cut -c7-8`
    newdate="${cyc}-${mm}${dd}${yy}"
    newline=`grep $RUN mdates.${RUN}.$MAPAREA.old | sed s/${olddate}/${newdate}/g`
    sed s/${oldline}/${newline}/g mdates.${RUN}.$MAPAREA.old > mdates.${RUN}
    cp mdates.${RUN} /com/nawips/${envir}/gifdate/.webgif_mdates.${RUN}
    errcp=$?
    if [ $errcp -eq 0 ] ; then
      mv /com/nawips/${envir}/gifdate/.webgif_mdates.${RUN} /com/nawips/${envir}/gifdate/webgif_mdates.${RUN}
    else
      err_exit "cp of mdates back to /com/nawips failed"
    fi
  fi
fi
cat mdates.${RUN} > mdates
for fil in `ls -1 /com/nawips/${envir}/gifdate/webgif_mdates.* | grep -v ${RUN}`
do
  cat $fil >> mdates
done
cp mdates ${COMOUT}/$MAPAREA/$RUN/$cyc/.mdates
errcp=$?
if [ $errcp -eq 0 ] ; then
  mv ${COMOUT}/$MAPAREA/$RUN/$cyc/.mdates ${COMOUT}/$MAPAREA/$RUN/$cyc/mdates
else
  err_exit "cp of mdates back to $COMOUT/$MAPAREA/$RUN/$cyc failed"
fi

###These 2 fix files are pointed to directly in the perl scripts
##cp $FIXgempak/webgif_fpdef $DATA/fpdef
##cp $FIXgempak/webgif_mtrans $DATA/mtrans

if [ "$SENDWEB" = "YES" ] ; then
###send flag to send to rzdm, it's done in exbld_html.sh.sms, comment out 
#   echo "1" > $COMOUT/../checkpoint_analysis_${MAPAREA}_${RUN}
###send flag to create html pages
    echo "${RSHPDY}" > $COMOUT/../bldhtml_flags/bld_html_${MAPAREA}_${RUN}_${cyc}  
fi

  if [ "${MODEL}" = "GFS" -a $fhr -ge 180 ] ; then
    finc=12
    export precip_inc=12
  fi
  let fhr=fhr+finc
  

done
