#!/bin/ksh

##########################################################################################################
# This script executes the Trop. Cyc. graphic manually in order to update 
# watches and warnings.              
#                                    
# M. Mainelli  4/02    Initially created. 
# M. Mainelli  5/03    Updated for the inclusion of 5-day forecast. 
# M. Mainelli  5/04    Updated for Linux. 
# M. Klein     6/05    Modified for HPC.  
# A. Robson  6/2/06    Added line to call modified startXvfb script for TPC to create 1280x1024 gifs. 
# A. Robson  8/1/06    Added code to remove the extra "Issued by" line from advisories and added code to
#                      uses intermediate advisories, if present.
# A. Robson 7/17/07    Modified to create new cone graphic without track line and to use web_launch_hpc.pl 
#                      instead of wwgraph2_send.
# A. Robson 09/23/11   RHEL5 testing and test variables...
# A. Robson 11/16/11   Changed Xvfb display # & commented out stopXvfb commands.
# A. Robson 12/20/11   Changed to startXvfb_auto
# A. Robson 02/28/13   Name changed to WPC
##########################################################################################################

#if [ ${NOSSH:-null} = "null" ]; then
#    ssh=ssh
#    scp=scp
#else
#    echo No ssh or scp allowed
#    ssh=echo
#    scp=echo
#fi
#-------------------------------
# Set up environmental variables
#-------------------------------
ADVS=$HOME/wgraph
export ADVS
cd ${ADVS}
year=`date -u +%Y`
yy=`date -u +%y`
hour=`date -u +%H`
date=`date -u +%Y%m%d`
rm -f area.out

#---------------
# Get user input
#---------------
print "Please enter the four-character storm id (e.g., al01):" 
read stormid
dirname=`echo $stormid | tr "a-z" "A-Z"`
basin=`echo $stormid | cut -c1-2`
bas=`echo $basin | tr "a-z" "A-Z"`
stmnu=`echo $stormid | cut -c3-4`
dev=gf

ls -al  ${ADVS}/mar/${stormid}${year}.* | tr -s " " | cut -f9 -d" " > listing
advno=`cat listing | tail -1 | cut -f3 -d"."`

#-----------------------------------
# Remove extra line added by WPC
#-----------------------------------
# Copy the file from the /mar directory to $ADVS.
print "Removing extra line from TCM if present"
tcm=${stormid}${year}.fstadv.${advno}
cp ${ADVS}/mar/${tcm} ${ADVS}/.
grep -v 'ISSUED BY THE WEATHER' ${tcm} > tcm_tmp

# Rename the tcm_tmp file back to the original file name.
mv tcm_tmp ${ADVS}/mar/${stormid}${year}.fstadv.${advno}
rm -f  ${ADVS}/${tcm}

# Check for Intermediate Advisories ("A" and "B") and remove extra line, if present
if [ -s ${ADVS}/pub/${stormid}${year}.public_a.${advno} ]; then 
    print "Intermediate Public Advisory 'A' found. Removing extra line, if present."
    pub_a=${stormid}${year}.public_a.${advno}
    cp ${ADVS}/pub/${pub_a} ${ADVS}/.
    grep -v 'ISSUED BY THE WEATHER' ${pub_a} > pub_a_tmp
    mv pub_a_tmp ${ADVS}/pub/${stormid}${year}.public_a.${advno}
    rm -f  ${ADVS}/${pub_a}
fi

if [ -s ${ADVS}/pub/${stormid}${year}.public_b.${advno} ]; then 
    print "Intermediate Public Advisory 'B' found. Removing extra line, if present."
    pub_b=${stormid}${year}.public_b.${advno}
    cp ${ADVS}/pub/${pub_b} ${ADVS}/.
    grep -v 'ISSUED BY THE WEATHER' ${pub_b} > pub_b_tmp
    mv pub_b_tmp ${ADVS}/pub/${stormid}${year}.public_b.${advno}
    rm -f  ${ADVS}/${pub_b}
fi

if [ $bas = "AL" ];
then
   webbasin=AT
else
   webbasin=EP
fi

# CHECK AGAIN FOR INTERMEDIATE ADVISORIES AND CHANGE $advno AS APPROPRIATE 
value=0
advnoBase=${advno}

if [ -s ${ADVS}/pub/${stormid}${year}.public_a.$advno ]; 
then
   if [ -s ${ADVS}/pub/${stormid}${year}.public_b.$advno ];  
   then
       advno=${advno}B
       value=B
   else
       advno=${advno}A
       value=A
   fi
fi

echo "STOPPED VIRTUAL SERVER"
# START THE VIRTUAL SERVER.
dsp=`startXvfb_tpc 12`
if [ $? = "0" ];
then
    echo ${dsp}
    DISPLAY=${dsp}
    export DISPLAY
fi


gptcww << EOF
strmid=${basin}${stmnu}${year}/${advno}/${dev}/5

list

run

exit

EOF

rm -f area.out

mv -f ${bas}${stmnu}${year}W.${advno}.GIF ${bas}${stmnu}${year}_5W_${advnoBase}_${value}.GIF


gptcww << EOF
strmid=${basin}${stmnu}${year}/${advno}/${dev}/5//n

list

run

exit

EOF

rm -f area.out

mv -f ${bas}${stmnu}${year}W.${advno}.GIF ${bas}${stmnu}${year}_5NLW_${advnoBase}_${value}.GIF


gptcww << EOF
strmid=${basin}${stmnu}${year}/${advno}/${dev}/3

list

run

exit

EOF

rm -f area.out
mv -f ${bas}${stmnu}${year}W.${advno}.GIF ${bas}${stmnu}${year}_3W_${advnoBase}_${value}.GIF

gptcww << EOF
strmid=${basin}${stmnu}${year}/${advno}/${dev}/3//n

list

run

exit

EOF

rm -f area.out
mv -f ${bas}${stmnu}${year}W.${advno}.GIF ${bas}${stmnu}${year}_3NLW_${advnoBase}_${value}.GIF

gpend

cp -f ${bas}${stmnu}${year}_5W_${advnoBase}_${value}.GIF ${bas}${stmnu}${yy}W5.GIF
cp -f ${bas}${stmnu}${year}_5NLW_${advnoBase}_${value}.GIF ${bas}${stmnu}${yy}W5_NL.GIF
cp -f ${bas}${stmnu}${year}_3W_${advnoBase}_${value}.GIF ${bas}${stmnu}${yy}W.GIF
cp -f ${bas}${stmnu}${year}_3NLW_${advnoBase}_${value}.GIF ${bas}${stmnu}${yy}W_NL.GIF

echo "The 5-DAY TC-Graphic of ${bas}${stmnu} for ${advno} on ${date} around ${hour}Z" >> graph.status
echo "has been run automatically by the specialists. " >> graph.status

print "Now sending the Tropical Cylone graphic to the world!"
echo "${bas}${stmnu}${year}_5W_${advno}" > sendtwo_file
echo "${bas}${stmnu}${year}_3W_${advno}" >> sendtwo_file

mkdir vgfiles    
cp -f *.vgf vgfiles
chmod 664 *.NAM

echo "sending to web"

perl ${OPSDIR}/ops/scripts/interactive/web_launch_hpc.pl ${bas}${stmnu}${yy}W5.GIF\|${bas}${stmnu}${yy}W5_NL.GIF\|${bas}${stmnu}${yy}W.GIF\|${bas}${stmnu}${yy}W_NL.GIF graphics ${webbasin}${stmnu} > send1.txt

echo ""
echo "sending to web archive"

perl ${OPSDIR}/ops/scripts/interactive/web_launch_hpc.pl ${bas}${stmnu}${year}_5W_${advnoBase}_${value}.GIF\|${bas}${stmnu}${year}_5NLW_${advnoBase}_${value}.GIF\|${bas}${stmnu}${year}_3W_${advnoBase}_${value}.GIF\|${bas}${stmnu}${year}_3NLW_${advnoBase}_${value}.GIF graphics /home/httpadm/docs/archive/${year}/graphics/${basin}${stmnu} > send2.txt

mv *.GIF giffiles
rm -f listing
# STOP VIRTUAL SERVER
stopXvfb $dsp

exit
