Instructions that work on a Sun workstation [for VMS see below]

Unpack the tar.gz file in a subdirectory `space' in the directory 
where you want the satellite prediction table sats.html to be placed.
The shell scripts assume the following directory structure:
.. 		(will contain sats.html)
. = ../space	-- contains the code
../HST    	-- will contain the HST plot files
../GRO		-- will contain the GRO plot files
../Mir		-- will contain the Mir plot files

To generate an executable, use
> f77 plotrack.f satsubs.f subs.f
> mv a.out plotrack

Get an up-to-date copy of tle.new from
ftp://archive.afit.af.mil/pub/space/tle.new

The program asks for an input UTC in the form YYDDDHHMMSSFFF so
96172123456789 = the 172nd day of 1996, 12:34:56.789 UTC.  I find it
incovenient to count the days from Jan 1, so the string NOW can be
entered instead, and the computer's clock reading will be used.  [This
section of CODE is the most system dependent so be sure it works before
using it.]  This input time is backed up to the previous local noon to
avoid having a day boundary in the middle of a visible pass.  The
program generates predictions for two weeks ahead of the UTC time
given.  Thus new predictions should be generated about once per week.
A new copy of tle.new should be obtained before making predictions,
because atmospheric drag and satellites maneuvers can make predictions
inaccurate after several days.

The next input to the program is the TARGET: enter the satellite name as
it appears in the tle.new file.

The final input is your latitude, longitude, and optional fields for the
minimum elevation of the satellite and the maximum sun elevation, and a
flag IFSGP.  Latitude is entered as decimal degrees, with N positive.
Longitude is entered with W positive.  The minimum elevation defaults to
10 degrees, and the maximum sun elevation defaults to -6 degrees.  At
this elevation, the sky is 500 times fainter than it is at sunset, but
still more than a thousand times brighter than the dark night sky.
If IFSGP is not zero (the default), then the SGP routine will be used
instead of the default SGP4 routine for calculating satellite
positions.

The output of the program includes a table of satellite pass times,
azimuths and elevations, and Postscript star charts for each pass.
Note that the Postscript files are named using the convention
yymmddhh.ps [96061104.ps = 11-Jun-96, 04:xx:xx UTC] and that different
satellites can have the same file names.  So store the results of one
run before doing another run.  An HTML version of the satellite pass
table is generated and appended to fort.2.

The C-shell script plotrack.csh will run plotrack and put the
Postscripts plots into the correct subdirectories.  It assumes that the
executable plotrack, the shell script plotrack.csh, and the two line
element file tle.new are all in a subdirectory of the directory into
which the satelltie listing sats.html will be placed, and that there
are subdirectories Mir, HST, and GRO into which the star chart and
satellite track Postscript plots are placed.  Note that since different
satellites can have the same file names, they have to be placed in
separate subdirectories.

For cities much North of Los Angeles, GRO and HST will never be visible,
and these sections of plotrack.csh can be deleted.


CHANGES for VMS

The diff outputs below show the changes to be made in the code for a
VMS system.  Copy the *.f files to *.for, and then edit plotrack.for
and subs.for to follow the diff outputs.  The DCL command file
PLOTRACK.COM makes the executable and runs it for Mir, HST and GRO.

> diff plotrack.f plotrack.for
134c134,135
<                   OPEN (UNIT=2,STATUS='UNKNOWN',ACCESS='APPEND')
---
>                   OPEN (UNIT=2,STATUS='UNKNOWN',
>       1       CARRIAGECONTROL='LIST',ACCESS='APPEND')
304c305,306
<       OPEN(UNIT=IPSLUN,FILE=GMT(1:8)//'.ps',STATUS='UNKNOWN')
---
>       OPEN(UNIT=IPSLUN,FILE=GMT(1:8)//'.ps',
>       1       CARRIAGECONTROL='LIST',STATUS='UNKNOWN')

> diff subs.f subs.for
465a466
>       CHARACTER*40 DT
477,479c478,480
<         CALL IDATE(JD)
<         CALL ITIME(JT)
<         SECOND = IS
---
> C       CALL IDATE(JD)
> C       CALL ITIME(JT)
> C       SECOND = IS
482,488c483,488
< C       CALL LIB$DATE_TIME(DT)
< C       MON = (INDEX(
< C     1       '-JAN-FEB-MAR-APR-MAY-JUN-JUL-AUG-SEP-OCT-NOV-DEC-'
< C     2       ,DT(3:7))-1)/4+1
< C       READ (DT,FMT='(I2,5X,I4,1X,I2,1X,I2,1X,F5.2)')
< C     1       ID, IY, IH, MINUTE, SECOND
< C
---
>         CALL LIB$DATE_TIME(DT)
>         MON = (INDEX(
>       1       '-JAN-FEB-MAR-APR-MAY-JUN-JUL-AUG-SEP-OCT-NOV-DEC-'
>       2       ,DT(3:7))-1)/4+1
>         READ (DT,FMT='(I2,5X,I4,1X,I2,1X,I2,1X,F5.2)')
>       1       ID, IY, IH, MINUTE, SECOND

