#!/bin/sh

set -x

if [ $# -ne 1 ]
then
   echo "Usage: hysplit_web_index.sh [canned|on_demand|all]"
   exit
else
   run_type=$1
fi

typeset -Z2 hh
hh=`date -u +%H`
let hh=hh/6*6
####################################################################
# Creates html files for hysplit web server
####################################################################
export USHutil=${USHutil:-/nwprod/util/ush}
export EXECutil=${EXECutil:-/nwprod/util/exec}
export FIXhysplit=${FIXhysplit:-/nwprod/fix}
export DATA=${DATA:-/ptmp/`whoami`hysplitweb}
export SENDCOM=${SENDCOM:-NO}
export PDY=${PDY:-`date -u +%Y%m%d`}
export NET=${NET:-hls}
export RUN=${RUN:-hysplit}
export envir=${envir:-prod}
export cyc=${cyc:-$hh}

mkdir -p $DATA
cd $DATA

typeset -Z2 lcyc

lcyc=$cyc
ldate=$PDY
end_date=`$EXECutil/ndate -24 $PDY$cyc`

rm $DATA/city_list
while [ "$ldate$lcyc" -ge "$end_date" ]
do
   find /com/$NET/$envir/$RUN.$ldate -name "*t${lcyc}z_fine_01.gif" >> $DATA/city_list
   #find /com/$NET/$envir/$RUN.$ldate -name "*t${lcyc}z*[.|_]fine_01.gif" >> $DATA/city_list

   let lcyc=lcyc-6
   if [ $lcyc -lt 0 ]
   then
      lcyc=18
      ldate=`$USHutil/finddate.sh $ldate d-1`
   fi
done

cat $DATA/city_list

rm $DATA/on_demand_city_list $DATA/city_times
for city in `awk -F_ '{print $1}' $DATA/city_list | awk -F".*\/" '{print $2}' | sort -u`
do
   grep \/${city}_ $DATA/city_times
   err=$?

   if [ $err -eq 1 -o $err -eq 2  ]
   then
      file=`grep \/${city}_ $DATA/city_list | head -1`
      TZTMP=$TZ
      export TZ=GMT
      ls -l $file | awk '{print "CITY_"$6"_"$7"_"$8}' | sed "s/CITY/$city/g" >> city_times
      export TZ=$TZTMP
   fi
   
   if [ `grep $city $FIXhysplit/hysplit_loc | wc -l` -eq 0 ]
   then
      echo "$city;-99;-99" >> $DATA/on_demand_city_list
   fi
done

cat $DATA/on_demand_city_list

rm $DATA/on_demand_times $DATA/canned_times
for city_time in `sort $DATA/city_times`
do
   city=`echo $city_time | awk -F_ '{print $1}'`
   time=`echo $city_time | awk -F_ '{print $2" "$3" "$4}'`
   grep "^$city;" $DATA/on_demand_city_list
   err=$?

   if [ $err -eq 0 ]
   then
      echo "<TR><TD><a href=\"${city}_site.html\">$city</a></TD><TD>$time UTC</TD></TR>" >>$DATA/on_demand_times
   else
      echo "<TR><TD><a href=\"${city}_site.html\">$city</a></TD><TD>$time UTC</TD></TR>" >>$DATA/canned_times
   fi
done

cat <<EOF > $DATA/index.html
  <HEAD>
  <META HTTP-EQUIV="REFRESH" CONTENT="900">
  <META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
  <META HTTP-EQUIV="EXPIRES" content="Fri, 08 Dec 2000 120000 GMT">
  <TITLE>HYSPLIT Page</TITLE>
  <LINK href="hysplit.css" type="text/css" rel="STYLESHEET">
</HEAD>

<HTML>
<BODY>
   <TABLE BORDER=0 WIDTH=400 ALIGN=CENTER>
   <TR><TD ALIGN=CENTER><H1>NCEP HYSPLIT Model Forecast Runs</H1></TD></TR>
   </TABLE>
   <BR>
   <TABLE BORDER=1 WIDTH=400 ALIGN=CENTER>
      <TR><TD class=state COLSPAN=2 ALIGN=CENTER><B>On-Demand Runs</B></TD></TR>
      <TR><TD class=coarse>RUN ID</TD><TD class=coarse>Time of Last Update</TD></TR>
EOF

cat $DATA/on_demand_times >> $DATA/index.html

cat <<EOF >> $DATA/index.html
   </TABLE>
   <BR>
   <TABLE BORDER=1 WIDTH=400 ALIGN=CENTER>
      <TR><TD class=state COLSPAN=2 ALIGN=CENTER><B>Regularly Scheduled Runs</B></TD></TR>
      <TR><TD class=coarse>RUN ID</TD><TD class=coarse>Time of Last Update</TD></TR>
EOF

cat $DATA/canned_times >> $DATA/index.html

cat <<EOF >> $DATA/index.html
   </TABLE>
<address>
<table align="center" cellSpacing="0" cellPadding="0" width="400"
border="0">
<tbody>
<tr>
<td colSpan="3"><hr></td>
</tr>
<tr valign="top">
<td>
<a href="http://www.noaa.gov/">NOAA/</a>
<a href="http://www.nws.noaa.gov/">National Weather Service</a><br>
<a href="http://www.ncep.noaa.gov/">National Centers for Environmental
Prediction</a><br>
5200 Auth Road<br>
Camp Springs, Maryland 20746<br>
<a href="mailto:ncep.helpdesk@noaa.gov">NCEP Internet Services
Team</a><br></td>
<td><a href="http://www.nws.noaa.gov/disclaimer.html">Disclaimer</a></td>
<td align="right"><a href="http://www.nws.noaa.gov/notice.html">Privacy
Policy</a></td>
</tr>
</tbody>
</table>
</address>
</BODY>
</HTML>
EOF

case $run_type in
   on_demand) cat $DATA/on_demand_city_list > $DATA/city_html_list;;
      canned) cat $FIXhysplit/hysplit_loc > $DATA/city_html_list;;
         all) cat $FIXhysplit/hysplit_loc $DATA/on_demand_city_list > $DATA/city_html_list;;
           *) exit;;
esac

for city_str in `cat $DATA/city_html_list`
do
   city=`echo $city_str | awk -F\; '{print $1}'`
   lat=`echo $city_str | awk -F\; '{print $2}'`
   lon=`echo $city_str | awk -F\; '{print $3}'`
 
   if [ $lat -eq -99 ]
   then
      end_date=`$EXECutil/ndate -24 $PDY$cyc`
   else
      end_date="`$USHutil/finddate.sh $PDY d-5`00"
   fi
   lcyc=$cyc
   ldate=$PDY

###################################################################
# Print Header Info at top of page
###################################################################
   cat <<EOF > ${city}_site.html
<HTML>
<HEAD>
  <META HTTP-EQUIV="REFRESH" CONTENT="900">
  <META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
  <META HTTP-EQUIV="EXPIRES" content="Fri, 08 Dec 2000 120000 GMT">
  <TITLE>NCEP HYSPLIT Runs</TITLE>
  <LINK href="hysplit.css" type="text/css" rel="STYLESHEET">
</HEAD>

<BODY>
EOF

   if [ $lat -eq -99 ]
   then
      cat <<EOF >> ${city}_site.html
<TABLE BORDER=0 WIDTH=80% ALIGN=CENTER>
   <TR>
      <TD align=center COLSPAN=16><font size=+1><B>On-Demand HYSPLIT Model Forecast Run</B></font></TD>
   </TR>
</TABLE>
<BR>
<TABLE BORDER=1 WIDTH=80% ALIGN=CENTER>
   <TR>
      <TD class=state align=center COLSPAN=16><font size=+1><B>$city</B>&nbsp&nbsp</font></TD>
   </TR>
EOF
   else
      cat <<EOF >> ${city}_site.html
<TABLE BORDER=0 WIDTH=80% ALIGN=CENTER>
   <TR>
      <TD align=center COLSPAN=16><font size=+1><B>Regularly Scheduled HYSPLIT Model Forecast Run</B></font></TD>
   </TR>
</TABLE>
<BR>
<TABLE BORDER=1 WIDTH=80% ALIGN=CENTER>
   <TR>
      <TD class=state align=center COLSPAN=16><font size=+1><B>$city</B> &nbsp&nbsp (LAT:$lat LON:$lon)</font></TD>
   </TR>
EOF
   fi

###################################################################
# End of Header Info Print
###################################################################

   while [ "$ldate$lcyc" -ge "$end_date" ]
   do
      if [ -s "/com/$NET/$envir/$RUN.$ldate/${city}_t${lcyc}z_fine_01.gif" -a \
           -s "/com/$NET/$envir/$RUN.$ldate/${city}_t${lcyc}z_fine_09.gif" ]
      then
         echo "Doing html for $city $lcyc $ldate"
cat <<EOF >> ${city}_site.html
   <TR><TD class=state ALIGN=CENTER COLSPAN=16>$lcyc UTC HYSPLIT Runs for $ldate</TD></TR>
   <TR>
      <TD class=fine align=center ROWSPAN=5><B>FINE<BR>GRID<BR>RUN</B></TD>
      <TD class=fine>GIF</TD>
      <TD class=fgif><A HREF="hysplit.$ldate/${city}_t${lcyc}z_fine_loop.html">LOOP</A></TD>
      <TD class=fgif><A HREF="hysplit.$ldate/${city}_t${lcyc}z_fine_01.gif">01</A></TD>
      <TD class=fgif><A HREF="hysplit.$ldate/${city}_t${lcyc}z_fine_02.gif">02</A></TD>
      <TD class=fgif><A HREF="hysplit.$ldate/${city}_t${lcyc}z_fine_03.gif">03</A></TD>
      <TD class=fgif><A HREF="hysplit.$ldate/${city}_t${lcyc}z_fine_04.gif">04</A></TD>
      <TD class=fgif><A HREF="hysplit.$ldate/${city}_t${lcyc}z_fine_05.gif">05</A></TD>
      <TD class=fgif><A HREF="hysplit.$ldate/${city}_t${lcyc}z_fine_06.gif">06</A></TD>
      <TD class=fgif><A HREF="hysplit.$ldate/${city}_t${lcyc}z_fine_07.gif">07</A></TD>
      <TD class=fgif><A HREF="hysplit.$ldate/${city}_t${lcyc}z_fine_08.gif">08</A></TD>
      <TD class=fgif><A HREF="hysplit.$ldate/${city}_t${lcyc}z_fine_09.gif">09</A></TD>
      <TD class=fgif COLSPAN=4>4km Nam Run</TD>
   </TR>
   <TR>
      <TD class=fine>PS</TD>
      <TD class=fps><A HREF="hysplit.$ldate/${city}_t${lcyc}z_fine.ps">ALL</A></TD>
      <TD class=fps><A HREF="hysplit.$ldate/${city}_t${lcyc}z_fine_01.ps">01</A></TD>
      <TD class=fps><A HREF="hysplit.$ldate/${city}_t${lcyc}z_fine_02.ps">02</A></TD>
      <TD class=fps><A HREF="hysplit.$ldate/${city}_t${lcyc}z_fine_03.ps">03</A></TD>
      <TD class=fps><A HREF="hysplit.$ldate/${city}_t${lcyc}z_fine_04.ps">04</A></TD>
      <TD class=fps><A HREF="hysplit.$ldate/${city}_t${lcyc}z_fine_05.ps">05</A></TD>
      <TD class=fps><A HREF="hysplit.$ldate/${city}_t${lcyc}z_fine_06.ps">06</A></TD>
      <TD class=fps><A HREF="hysplit.$ldate/${city}_t${lcyc}z_fine_07.ps">07</A></TD>
      <TD class=fps><A HREF="hysplit.$ldate/${city}_t${lcyc}z_fine_08.ps">08</A></TD>
      <TD class=fps><A HREF="hysplit.$ldate/${city}_t${lcyc}z_fine_09.ps">09</A></TD>
      <TD class=fps COLSPAN=4>4km Nam Run</TD>
   </TR>
   <TR>
      <TD class=fine>PDF</TD>
      <TD class=fpdf><A HREF="hysplit.$ldate/${city}_t${lcyc}z_fine.pdf">ALL</A></TD>
      <TD class=fpdf><BR></TD>
      <TD class=fpdf><BR></TD>
      <TD class=fpdf><BR></TD>
      <TD class=fpdf><BR></TD>
      <TD class=fpdf><BR></TD>
      <TD class=fpdf><BR></TD>
      <TD class=fpdf><BR></TD>
      <TD class=fpdf><BR></TD>
      <TD class=fpdf><BR></TD>
   </TR>
   <TR>
      <TD class=fine>KMZ</TD>
      <TD class=fkmz><A HREF="hysplit.$ldate/${city}_t${lcyc}z_fine.kmz">ALL</A></TD>
      <TD class=fkmz><BR></TD>
      <TD class=fkmz><BR></TD>
      <TD class=fkmz><BR></TD>
      <TD class=fkmz><BR></TD>
      <TD class=fkmz><BR></TD>
      <TD class=fkmz><BR></TD>
      <TD class=fkmz><BR></TD>
      <TD class=fkmz><BR></TD>
      <TD class=fkmz><BR></TD>
      <TD class=fkmz COLSPAN=4>4km Nam Run</TD>
   </TR>
   <TR>
      <TD class=fine>GIS</TD>
      <TD class=fgis><A HREF="hysplit.$ldate/${city}_t${lcyc}z_fine.gis.tar">ALL</A></TD>
      <TD class=fgis><BR></TD>
      <TD class=fgis><BR></TD>
      <TD class=fgis><BR></TD>
      <TD class=fgis><BR></TD>
      <TD class=fgis><BR></TD>
      <TD class=fgis><BR></TD>
      <TD class=fgis><BR></TD>
      <TD class=fgis><BR></TD>
      <TD class=fgis><BR></TD>
      <TD class=fgis COLSPAN=4>4km Nam Run</TD>
   </TR>
EOF
      elif [ -s "/com/$NET/$envir/$RUN.$ldate/${city}_t${lcyc}z_fine_01.gif" ]
      then
         echo "Doing html for $city $lcyc $ldate"
cat <<EOF >> ${city}_site.html
   <TR><TD class=state ALIGN=CENTER COLSPAN=16>$lcyc UTC HYSPLIT Runs for $ldate</TD></TR>
   <TR>
      <TD class=fine align=center ROWSPAN=5><B>FINE<BR>GRID<BR>RUN</B></TD>
      <TD class=fine>GIF</TD>
      <TD class=fgif><A HREF="hysplit.$ldate/${city}_t${lcyc}z_fine_loop.html">LOOP</A></TD>
      <TD class=fgif><A HREF="hysplit.$ldate/${city}_t${lcyc}z_fine_01.gif">01</A></TD>
      <TD class=fgif><A HREF="hysplit.$ldate/${city}_t${lcyc}z_fine_02.gif">02</A></TD>
      <TD class=fgif><A HREF="hysplit.$ldate/${city}_t${lcyc}z_fine_03.gif">03</A></TD>
      <TD class=fgif><A HREF="hysplit.$ldate/${city}_t${lcyc}z_fine_04.gif">04</A></TD>
      <TD class=coarse align=center ROWSPAN=5><B>COARSE<BR>GRID<BR>RUN</B></TD>
      <TD class=coarse>GIF</TD>
      <TD class=cgif><A HREF="hysplit.$ldate/${city}_t${lcyc}z_coarse_loop.html">LOOP</A></TD>
      <TD class=cgif><A HREF="hysplit.$ldate/${city}_t${lcyc}z_coarse_01.gif">01</A></TD>
      <TD class=cgif><A HREF="hysplit.$ldate/${city}_t${lcyc}z_coarse_02.gif">02</A></TD>
      <TD class=cgif><A HREF="hysplit.$ldate/${city}_t${lcyc}z_coarse_03.gif">03</A></TD>
      <TD class=cgif><A HREF="hysplit.$ldate/${city}_t${lcyc}z_coarse_04.gif">04</A></TD>
      <TD class=cgif><A HREF="hysplit.$ldate/${city}_t${lcyc}z_coarse_05.gif">05</A></TD>
      <TD class=cgif><A HREF="hysplit.$ldate/${city}_t${lcyc}z_coarse_06.gif">06</A></TD>
   </TR>
   <TR>
      <TD class=fine>PS</TD>
      <TD class=fps><A HREF="hysplit.$ldate/${city}_t${lcyc}z_fine.ps">ALL</A></TD>
      <TD class=fps><A HREF="hysplit.$ldate/${city}_t${lcyc}z_fine_01.ps">01</A></TD>
      <TD class=fps><A HREF="hysplit.$ldate/${city}_t${lcyc}z_fine_02.ps">02</A></TD>
      <TD class=fps><A HREF="hysplit.$ldate/${city}_t${lcyc}z_fine_03.ps">03</A></TD>
      <TD class=fps><A HREF="hysplit.$ldate/${city}_t${lcyc}z_fine_04.ps">04</A></TD>
      <TD class=coarse>PS</TD>
      <TD class=cps><A HREF="hysplit.$ldate/${city}_t${lcyc}z_coarse.ps">ALL</A></TD>
      <TD class=cps><A HREF="hysplit.$ldate/${city}_t${lcyc}z_coarse_01.ps">01</A></TD>
      <TD class=cps><A HREF="hysplit.$ldate/${city}_t${lcyc}z_coarse_02.ps">02</A></TD>
      <TD class=cps><A HREF="hysplit.$ldate/${city}_t${lcyc}z_coarse_03.ps">03</A></TD>
      <TD class=cps><A HREF="hysplit.$ldate/${city}_t${lcyc}z_coarse_04.ps">04</A></TD>
      <TD class=cps><A HREF="hysplit.$ldate/${city}_t${lcyc}z_coarse_05.ps">05</A></TD>
      <TD class=cps><A HREF="hysplit.$ldate/${city}_t${lcyc}z_coarse_06.ps">06</A></TD>
   </TR>
   <TR>
      <TD class=fine>PDF</TD>
      <TD class=fpdf><A HREF="hysplit.$ldate/${city}_t${lcyc}z_fine.pdf">ALL</A></TD>
      <TD class=fpdf><BR></TD>
      <TD class=fpdf><BR></TD>
      <TD class=fpdf><BR></TD>
      <TD class=fpdf><BR></TD>
      <TD class=coarse>PDF</TD>
      <TD class=cpdf><A HREF="hysplit.$ldate/${city}_t${lcyc}z_coarse.pdf">ALL</A></TD>
      <TD class=cpdf><BR></TD>
      <TD class=cpdf><BR></TD>
      <TD class=cpdf><BR></TD>
      <TD class=cpdf><BR></TD>
      <TD class=cpdf><BR></TD>
      <TD class=cpdf><BR></TD>
   </TR>
   <TR>
      <TD class=fine>KMZ</TD>
      <TD class=fkmz><A HREF="hysplit.$ldate/${city}_t${lcyc}z_fine.kmz">ALL</A></TD>
      <TD class=fkmz><BR></TD>
      <TD class=fkmz><BR></TD>
      <TD class=fkmz><BR></TD>
      <TD class=fkmz><BR></TD>

      <TD class=fine>KMZ</TD>
      <TD class=ckmz><A HREF="hysplit.$ldate/${city}_t${lcyc}z_coarse.kmz">ALL</A></TD>
      <TD class=ckmz><BR></TD>
      <TD class=ckmz><BR></TD>
      <TD class=ckmz><BR></TD>
      <TD class=ckmz><BR></TD>
      <TD class=ckmz><BR></TD>
      <TD class=ckmz><BR></TD>
   </TR>
   <TR>
      <TD class=fine>GIS</TD>
      <TD class=fgis><A HREF="hysplit.$ldate/${city}_t${lcyc}z_fine.gis.tar">ALL</A></TD>
      <TD class=fgis><BR></TD>
      <TD class=fgis><BR></TD>
      <TD class=fgis><BR></TD>
      <TD class=fgis><BR></TD>

      <TD class=fine>GIS</TD>
      <TD class=cgis><A HREF="hysplit.$ldate/${city}_t${lcyc}z_coarse.gis.tar">ALL</A></TD>
      <TD class=cgis><BR></TD>
      <TD class=cgis><BR></TD>
      <TD class=cgis><BR></TD>
      <TD class=cgis><BR></TD>
      <TD class=cgis><BR></TD>
      <TD class=cgis><BR></TD>
   </TR>
EOF
      fi

      let lcyc=lcyc-6
      if [ $lcyc -lt 0 ]
      then
         lcyc=18
         ldate=`$USHutil/finddate.sh $ldate d-1`
      fi
   done
   cat <<EOF >> ${city}_t${cyc}z_fine_loop.html
<HEAD><TITLE>HYSPLIT Page</TITLE></HEAD>
<HTML><IMG SRC="${city}_t${cyc}z_fine_loop.gif"></HTML>
EOF
   cat <<EOF >> ${city}_t${cyc}z_coarse_loop.html
<HEAD><TITLE>HYSPLIT Page</TITLE></HEAD>
<HTML><IMG SRC="${city}_t${cyc}z_coarse_loop.gif"></HTML>
EOF
   cat <<EOF >> ${city}_site.html
</TABLE>
<address>
<table align="center" cellSpacing="0" cellPadding="0" width="400"
border="0">
<tbody>
<tr>
<td colSpan="3"><hr></td>
</tr>
<tr valign="top">
<td>
<a href="http://www.noaa.gov/">NOAA/</a>
<a href="http://www.nws.noaa.gov/">National Weather Service</a><br>
<a href="http://www.ncep.noaa.gov/">National Centers for Environmental
Prediction</a><br>
5200 Auth Road<br>
Camp Springs, Maryland 20746<br>
<a href="mailto:ncep.helpdesk@noaa.gov">NCEP Internet Services
Team</a><br></td>
<td><a href="http://www.nws.noaa.gov/disclaimer.html">Disclaimer</a></td>
<td align="right"><a href="http://www.nws.noaa.gov/notice.html">Privacy
Policy</a></td>
</tr>
</tbody>
</table>
</address>

</BODY>
</HTML>
EOF

done

if test "$SENDCOM" = "YES"
then
   cp $DATA/*.html /com/${NET}/${envir}/${RUN}.${PDY}
fi
