#!/bin/sh

#set -nv

###############################################################################
set +x
echo "------------------------------------------------------------------------"
echo "exhysplit_post_web_rsmc.sh.sms - "
echo " "
echo "Hysplit RSMC Dissemination to ARL web site"
echo "  of model output or 'unavailables'"
echo "   "
echo "    30 Mar 2011 - from volcanic ash WAFS"
echo "------------------------------------------------------------------------"

# INPUT FILES - $GESDIR/rsmc.ini 
###############################################################################
set -x

cd $DATA

RSMC=/pub/rsmc/restrict
RSMC_US=${RSMC}/US

#############################################################
# Set run type per setup_hysplit
#############################################################
export typenum=1                                   # RSMC ###

##################################
# typenum=1 RSMC
# typenum=2 Volcano
# typenum=3 Homeland Security
# typenum=4 Back-tracking
##################################

##############################################################
# define TYP for filename
##############################################################
case $typenum in
1) runtyp=rsmc;;
2) exit 0;;
3) exit 0;;
4) exit 0;;
esac

####################################################
#  Read SDM Input
####################################################
cp ${GESDIR}/rsmc.ini ./
if [ -s rsmc.ini ];
then
  k=0
  cat rsmc.ini | while read tmp
  do
    let k=$k+1
    case $k in
      1)  FILE=$tmp;;
      2)  site=$tmp;;
      3)  seq=$tmp;;
    esac
  done
else
   msg='rsmc.ini file not found -- job terminated'
   postmsg "$jlogfile" "$msg"
   export err=1; err_exit
fi

########################################################################
# If want to send 'unavailables', set flag to get them
########################################################################
uflg=0
if [ "${FILE}" = "unavailable" ]
then
   uflg=1
else
   ########################################################################
   # else get appropriate base filename  (${COMOUT}/hysplit.$cycle.rsmc???)
   ########################################################################
   # read generic portion of filename  # assume ends .rsmc.ps
     klen=`expr "${FILE}" : ".*"`
     let klengen=${klen}-8                   # 8 for .rsmc.ps  'klen generic'
     BASE=`echo ${FILE} | cut -c1-${klengen}`
fi

########################################################################
# Get files for dissemination       
########################################################################
if [ ${uflg} -eq 1 ]
then
  cp ${FIXhysplit}/hysplit_rsmc_unavailable.gif               CVRUS.gif
  cp ${FIXhysplit}/hysplit_rsmc_unavailable.html              jntreg34.html
  cp ${FIXhysplit}/hysplit_rsmc_unavailable.html              jnttest.html
  cp ${FIXhysplit}/hysplit_rsmc_unavailable_leadrsmc.txt      leadrsmc.txt
  cp ${FIXhysplit}/hysplit_rsmc_unavailable_US_DATE.TXT_tdump tdump
  cp ${FIXhysplit}/hysplit_rsmc_unavailable_US_DATE.TXT_tdump US_DATE.TXT
  cp ${FIXhysplit}/hysplit_rsmc_unavailable.gif               LTJUS.gif
  cp ${FIXhysplit}/hysplit_rsmc_unavailable.gif               STJUS.gif

else
# additional files go to 'all products' web page
  cp ${BASE}.US_DATE.TXT US_DATE.TXT
  cp ${BASE}.cdump       cdump
  cp ${BASE}.MESSAGE.001 MESSAGE.001
  cp ${BASE}.MESSAGE.002 MESSAGE.002
  cp ${BASE}.MESSAGE.003 MESSAGE.003
  cp ${BASE}.MESSAGE.004 MESSAGE.004
  cp ${BASE}.MESSAGE.005 MESSAGE.005
  cp ${BASE}.MESSAGE.006 MESSAGE.006
  cp ${BASE}.MESSAGE.007 MESSAGE.007
  cp ${BASE}.MESSAGE.008 MESSAGE.008
  cp ${BASE}.CONTROL.conc CONTROL.conc
  cp ${BASE}.SETUP.conc   SETUP.conc
  cp ${BASE}.hyout.ps     hyout.ps
  cp ${BASE}.MAPTEXT.conc MAPTEXT.conc
  cp ${BASE}.tdump        tdump
  cp ${BASE}.MESSAGE.traj MESSAGE.traj
  cp ${BASE}.CONTROL.traj CONTROL.traj
  cp ${BASE}.MAPTEXT.traj MAPTEXT.traj
  cp ${BASE}.conc.kmz     conc.kmz
  cp ${BASE}.CVRUS.gif    CVRUS.gif
  cp ${BASE}.LTJUS.gif    LTJUS.gif
  cp ${BASE}.STJUS.gif    STJUS.gif
  cp ${BASE}.rsmc.ps      rsmc.ps   
  cp ${BASE}.rsmc.pdf     rsmc.pdf  
  cp ${BASE}.hysplit.ini  hysplit.ini
fi

# time-integrated conc
if [ ${uflg} -eq 1 ]
then
  cp ${FIXhysplit}/hysplit_rsmc_unavailable.gif LICUS_01.gif
  cp ${FIXhysplit}/hysplit_rsmc_unavailable.gif LICUS_02.gif
  cp ${FIXhysplit}/hysplit_rsmc_unavailable.gif LICUS_03.gif
  cp ${FIXhysplit}/hysplit_rsmc_unavailable.gif SICUS_01.gif
  cp ${FIXhysplit}/hysplit_rsmc_unavailable.gif SICUS_02.gif
  cp ${FIXhysplit}/hysplit_rsmc_unavailable.gif SICUS_03.gif
else
  ls ${BASE}.LICUS_*.gif | while read tmp
  do
   # read generic portion of filename  
     klen=`expr "${tmp}" : ".*"`
     let char_frame_end=${klen}-4                   # 5 for .gif
     let char_frame_start=${klen}-5                   # 2-char frame number
     num=`echo ${tmp} | cut -c${char_frame_start}-${char_frame_end}`
      	# should be an SI file for for each LI file
     cp ${BASE}.LICUS_${num}.gif LICUS_${num}.gif
     cp ${BASE}.SICUS_${num}.gif SICUS_${num}.gif 	
  done
fi

# deposition
if [ ${uflg} -eq 1 ]
then
  cp ${FIXhysplit}/hysplit_rsmc_unavailable.gif LTDUS_01.gif
  cp ${FIXhysplit}/hysplit_rsmc_unavailable.gif LTDUS_02.gif
  cp ${FIXhysplit}/hysplit_rsmc_unavailable.gif LTDUS_03.gif
  cp ${FIXhysplit}/hysplit_rsmc_unavailable.gif STDUS_01.gif
  cp ${FIXhysplit}/hysplit_rsmc_unavailable.gif STDUS_02.gif
  cp ${FIXhysplit}/hysplit_rsmc_unavailable.gif STDUS_03.gif
else
  ls ${BASE}.LTDUS_*.gif | while read tmp
  do
   # read generic portion of filename  
     klen=`expr "${tmp}" : ".*"`
     let char_frame_end=${klen}-4                   # 5 for .gif
     let char_frame_start=${klen}-5                   # 2-char frame number
     num=`echo ${tmp} | cut -c${char_frame_start}-${char_frame_end}`
      	# should be SI for for each LI file
     cp ${BASE}.LTDUS_${num}.gif LTDUS_${num}.gif
     cp ${BASE}.STDUS_${num}.gif STDUS_${num}.gif 	
  done
fi

###
# time of arrival place-holder
###

# in case cdump2 was turned off do this separately
if [ ${uflg} -ne 1 ]
then
  if [ -s ${BASE}.cdump2 ]
  then
     cp ${BASE}.cdump2           cdump2
     cp ${BASE}.concplot.fine.ps concplot.fine.ps
     cp ${BASE}.fine.kmz         fine.kmz
  fi
fi

 ### copy the below from hysplit_post.sh       (typenum=1 only)

if [ $SENDARL = 'YES' ]
then
  ####################################################
  #    send to ARL 
  ####################################################
#  (sftp by $USERID to $ARL:$DIR/$FILE)
#  ARL=205.156.4.190			# alert.arl.noaa.gov
  ARL=140.90.78.254			# alert.arl.noaa.gov
  ARLdir=/home/prod/ncep_hysplit
  USERID=ncepdev
  PORT=57103

# unavailables go direct to RSMC web page, others need to be processed
if [ ${uflg} -eq 1 ]
then

  echo "unavailable" > hysplit.ini
  site="UNAVAILABLE"
  seq="001"

  # remove files (there is no unavailable_rsmc.ps)
  ssh -p ${PORT} ${USERID}@${ARL} rm -f ${RSMC_US}/rsmc.ps
  ssh -p ${PORT} ${USERID}@${ARL} rm -f ${RSMC_US}/*.gif
  ssh -p ${PORT} ${USERID}@${ARL} rm -f ${RSMC_US}/US_DATE.TXT
  ssh -p ${PORT} ${USERID}@${ARL} rm -f ${RSMC_US}/tdump
  ssh -p ${PORT} ${USERID}@${ARL} rm -f ${RSMC_US}/traj.txt
  ssh -p ${PORT} ${USERID}@${ARL} rm -f ${RSMC_US}/leadrsmc.txt

  ssh -p ${PORT} ${USERID}@${ARL} rm -f ${RSMC_US}/jntreg34.html

  # write unavailables
  scp -P ${PORT} CVRUS.gif    ${USERID}@${ARL}:${RSMC_US}
  scp -P ${PORT} LICUS_01.gif ${USERID}@${ARL}:${RSMC_US}
  scp -P ${PORT} LICUS_02.gif ${USERID}@${ARL}:${RSMC_US}
  scp -P ${PORT} LICUS_03.gif ${USERID}@${ARL}:${RSMC_US}
  scp -P ${PORT} SICUS_01.gif ${USERID}@${ARL}:${RSMC_US}
  scp -P ${PORT} SICUS_02.gif ${USERID}@${ARL}:${RSMC_US}
  scp -P ${PORT} SICUS_03.gif ${USERID}@${ARL}:${RSMC_US}
  scp -P ${PORT} LTDUS_01.gif ${USERID}@${ARL}:${RSMC_US}
  scp -P ${PORT} LTDUS_02.gif ${USERID}@${ARL}:${RSMC_US}
  scp -P ${PORT} LTDUS_03.gif ${USERID}@${ARL}:${RSMC_US}
  scp -P ${PORT} STDUS_01.gif ${USERID}@${ARL}:${RSMC_US}
  scp -P ${PORT} STDUS_02.gif ${USERID}@${ARL}:${RSMC_US}
  scp -P ${PORT} STDUS_03.gif ${USERID}@${ARL}:${RSMC_US}
  scp -P ${PORT} LTJUS.gif    ${USERID}@${ARL}:${RSMC_US}
  scp -P ${PORT} STJUS.gif    ${USERID}@${ARL}:${RSMC_US}
  scp -P ${PORT} US_DATE.TXT  ${USERID}@${ARL}:${RSMC_US}
  scp -P ${PORT} tdump        ${USERID}@${ARL}:${RSMC_US}/traj.txt
  scp -P ${PORT} leadrsmc.txt ${USERID}@${ARL}:${RSMC_US}

  scp -P ${PORT} jntreg34.html ${USERID}@${ARL}:${RSMC_US}

else

# note: $site includes characters " . -  _ , ' "
#   so need something else as delimeter (ie, @ # + :) for processing at ARL

# created date-time
  cdt=`tail -1 US_DATE.TXT`

# files common to all run types, except hysplit.ini, which is sent last
  sftp -o Port=${PORT} ${USERID}@${ARL} << arlEOF
  cd ${ARLdir}
  put cdump         ${PDY}${cyc}+${cdt}+${site}+${runtyp}${seq}+cdump
  put MESSAGE.001   ${PDY}${cyc}+${cdt}+${site}+${runtyp}${seq}+MESSAGE.001 
  put CONTROL.conc  ${PDY}${cyc}+${cdt}+${site}+${runtyp}${seq}+CONTROL.conc
  put SETUP.conc    ${PDY}${cyc}+${cdt}+${site}+${runtyp}${seq}+SETUP.conc
  quit
arlEOF

  case $typenum in
  1) 
         sftp -o Port=${PORT} ${USERID}@${ARL} << arlEOF
         cd ${ARLdir}
         put hyout.ps      ${PDY}${cyc}+${cdt}+${site}+${runtyp}${seq}+ps	
         put MAPTEXT.conc  ${PDY}${cyc}+${cdt}+${site}+${runtyp}${seq}+MAPTEXT.conc
         put tdump         ${PDY}${cyc}+${cdt}+${site}+${runtyp}${seq}+tdump
         put MESSAGE.traj  ${PDY}${cyc}+${cdt}+${site}+${runtyp}${seq}+MESSAGE.traj
         put CONTROL.traj  ${PDY}${cyc}+${cdt}+${site}+${runtyp}${seq}+CONTROL.traj
         put MAPTEXT.traj  ${PDY}${cyc}+${cdt}+${site}+${runtyp}${seq}+MAPTEXT.traj
         put conc.kmz      ${PDY}${cyc}+${cdt}+${site}+${runtyp}${seq}+conc.kmz

         put US_DATE.TXT
         put CVRUS.gif  
         put LTJUS.gif  
         put STJUS.gif  
         put rsmc.ps       
         put rsmc.pdf
         put tdump traj.txt
         quit
arlEOF

       # variable number of output files - integrated concentrations (IC)
       #   use LICUS as base.  List LICUS_XX.gif files.  
       #   loop through XX and ftp the set of files.
         ls LICUS_*.gif | while read tmp
         do
           num=`echo ${tmp} | cut -c7-8`
           sftp -o Port=${PORT} ${USERID}@${ARL} << arlEOF
           cd ${ARLdir}
           put LICUS_${num}.gif
           put SICUS_${num}.gif
           quit
arlEOF
         done

         case $typenum in
         1)

       # variable number of output files - deposition (D) (not for back-tracking)
       #   use LICUS as base.  List LICUS_XX.gif files.  
       #   loop through XX and ftp the set of files.
         ls LTDUS_*.gif | while read tmp
         do
           num=`echo ${tmp} | cut -c7-8`
           sftp -o Port=${PORT} ${USERID}@${ARL} << arlEOF
           cd ${ARLdir}
           put LTDUS_${num}.gif
           put STDUS_${num}.gif
           quit
arlEOF
         done

        # time of arrival plot
          #sftp -o Port=${PORT} ${USERID}@${ARL} << arlEOF
          #cd ${ARLdir}
          #put chron_dep.gif 
          #put chron_con.gif 
          #quit
#arlEOF

         esac

       # in case cdump2 was turned off do this separately
         if [ -s cdump2 ]; then
           sftp -o Port=${PORT} ${USERID}@${ARL} << arlEOF
           cd ${ARLdir}
           put cdump2           ${PDY}${cyc}+${cdt}+${site}+${runtyp}${seq}+cdump2
           put concplot.fine.ps ${PDY}${cyc}+${cdt}+${site}+${runtyp}${seq}+concplot.fine.ps
           put fine.kmz         ${PDY}${cyc}+${cdt}+${site}+${runtyp}${seq}+fine.kmz
           quit
arlEOF
         fi

         if [ -s cdump.txt ]; then
           sftp -o Port=${PORT} ${USERID}@${ARL} << arlEOF
           cd ${ARLdir}
           put cdump.txt
           quit
arlEOF
         fi
     ;;

  esac 

fi
# end if unavailable

# hysplit.ini is last file for ARL processing script  (skip for unavailable case)
if [ ${uflg} -ne 1 ]
then
  sftp -o Port=${PORT} ${USERID}@${ARL} << arlEOF
  cd ${ARLdir}
  put hysplit.ini   ${PDY}${cyc}+${cdt}+${site}+${runtyp}${seq}+hysplit.ini
  quit
arlEOF
fi

fi
# end if SENDARL

exit
