[comp.sources.misc] v11i008: ephem, 7 of 7

ecd@cs.umn.edu@ncs-med.UUCP (Elwood C. Downey) (03/11/90)

Posting-number: Volume 11, Issue 8
Submitted-by: ecd@cs.umn.edu@ncs-med.UUCP (Elwood C. Downey)
Archive-name: ephem4.12/part07

# This is the first line of a "shell archive" file.
# This means it contains several files that can be extracted into
# the current directory when run with the sh shell, as follows:
#    sh < this_file_name

# This is file 2 of a two-part manual, Man.txt.
if test -r Man.txt
then
    echo Man.txt has already been built.
    exit
fi

echo x Man.txt.2
sed -e 's/^X//' << 'EOFxEOF' > Man.txt.2
X     follows the absolute magnitude and luminosity index coefficients.
X
X     7.1.4.  On or Off
X
X     The last selection on the right toggles the calculations for the object On
X     and Off.  It toggles when selected with RETURN and then immediately exits
X     the quick-choice menu back to the main menu.  If calculations become On,
X     then they will be performed for the current type of object; if they become
X     Off the object-X row of information will be erased.
X
X     8.  Plotting
X
X     Each time a field is drawn on the screen during a full screen update cycle
X     (that as, during automatic looping or a manual "q" command character from
X     the main menu but not from a screen redraw from control-l or when an
X     individual planet is turned on or a single time field is changed) its
X     full-precision value may be written to a file.  This implies you may not
X     plot a field from other than the current menu at the time plotting is on.
X     You can append several plot runs together, however, if necessary.
X
X     Each line in the file consists of a tag character followed by two or three
X     floating point variables, all separated by commas. If there are two
X     values, they should be interpreted to be x and y (or perhaps r and theta).
X     If there is a third, it is a z or trace value.
X
X     For efficiency on systems that can compute a screen full faster than they
X     can display it, screen updates are suppressed while plotting is on and
X     NStep is greater than 1. This can greatly reduce the time to generate a
X     long plot file. Fields are still logged for plotting; they just are not
X     drawn on the screen.
X
X     The Plot field controls plotting.  Whether plotting is currently active is
X     indicated by "on" or "off" immediately to its right.
X
X     Picking "Plot" brings up a quick-choice menu, as follows:
X
X     Select: Select fields, Display a plot file, Cartesian coords, Begin plotting
X
X
X     8.1.  Defining plot fields
X
X     Select the "Select fields" option.  You will be asked to move the cursor
X     to the field you want to use as the x coordinate (abscissa), then asked to
X     choose the y coordinate (ordinate), then asked to choose an optional z
X     trace variable and finally a tag character.  (X and Y may be for other
X     coordinate systems too but ephem's quicky plotter can only plot in
X     Cartesian coordinates.) If you type q for either x or y then no more
X     fields will be defined.  If you type q for the z field there will be no z
X     field.  You can not label a plot line with the letter "q" at this time.
X
X     This then repeats so you may choose up to ten of these sets for any given
X     plot run.  Each set defines what will become a line on the final plot.
X
X
X
X
X
X
X
X
X
X                                       - 14 -
X
X
X     Note that you may select the "Search" field to indicate use of the current
X     search function; that function must be defined by the time plotting is
X     turned on.
X
X     If you turn plotting off and back on the fields selected for plotting are
X     reactivated the same as they were last time. You may change them if
X     desired, of course, but there is no need to redefine them if you do not
X     wish to change them.
X
X     8.2.  Displaying a plot file
X
X     Select the "Display a plot file" option to generate a crude plot on the
X     screen of an existing plot file previously created by ephem.  The entries
X     in the file will be drawn on the screen using their tag characters; the
X     plot remains on the screen until you type any character.
X
X     The plot may be made in polar or Cartesian coordinates, depending on the
X     setting of the plotting mode in the quick-choice (see next section).
X
X     8.3.  Cartesian or Polar coords
X
X     This toggles the plotting mode coordinate system.  The mode remains until
X     changed.  Polar coordinates assume the first numeric field in the plot
X     file is the radius, and the second is the angle counterclockwise from
X     right, in degrees.
X
X     8.4.  Begin Plotting
X
X     If plot field lines are defined then the third option, "Begin plotting"
X     will be available.  You will be asked for the name of the file to use and,
X     if it already exists, whether to overwrite it or append to it.  Once you
X     have chosen a file, plotting is on and the top menu plotting status field
X     changes to "on".  The default plot file name is ephem.plt.  The values are
X     written to the plot file each time they are updated on the screen until
X     you select "Plot" again and select the "Stop" option to turn plotting back
X     off.
X
X     8.5.  Stopping Plotting
X
X     If plotting is on, then selecting the Plot field in the top section will
X     turn plotting off. You may pick Plot again and resume with the same fields
X     by selecting "Begin plotting" again.
X
X     Note that due to internal buffering the plot file will not be completely
X     written to disk until plotting is turned off.
X
X     9.  Watching
X
X     You may generate a simple drawing on the screen of the night sky or the
X     solar system by selecting "Watch".  It will bring up a quick-choice menu
X     as follows:
X
X     Select: Night sky, Solar system, No trails
X
X
X
X
X
X
X
X
X
X
X                                       - 15 -
X
X
X     9.1.  Trails
X
X     You may either erase after each iteration or leave the tags up, referred
X     to as "trails". Picking the right-most choice will toggle between "No
X     trails" and "Leave trails"; you should set it as desired before you select
X     the style of sky plot you wish.  Ephem will remember your selection.
X
X     9.2.  Night sky
X
X     This selection draws the currently active planets as they would appear in
X     the sky at the current time and date.  The coordinate system is such that
X     0 degrees azimuth (north) through 360 degrees (north, once around) is
X     mapped to the horizontal screen dimension, and 0 degrees altitude (level)
X     through 90 degrees (the zenith) is mapped to the vertical dimension. Thus,
X     the bottom row is the horizon and all across the top is the zenith.
X
X     9.3.  Solar System
X
X     This selection draws the currently active planets as they would appear
X     looking "down from the top" of the ecliptic, with the sun at the center
X     and zero hours right ascension towards the right.  The scale is adjusted
X     to roughly fill the screen according to the outter most active planet.
X     The screen transformation assumes a screen aspect width/height ratio of
X     4/3.  Down the left column of the screen is the heliocentric altitude of
X     the planet above or below the ecliptic, drawn to the same scale as the
X     circular display.
X
X     In either style of display, pressing RETURN advances the time by whatever
X     amount StpSz is set to.  Pressing "h" advances the time by one hour, "d"
X     advances by one day, and "w" advances by one week (seven days).  Pressing
X     "q" returns to the tabular main screen.  Pressing any other key starts an
X     automatic loop with each step advancing by StpSz; pressing any key stops
X     the looping.
X
X     As symbols are placed, collisions (overstrikes) are avoided by moving
X     characters in such a way as to maintain increasing sorted order towards
X     the right.  In the case of the heliocentric altitude display, for example,
X     greater height is indicated towards the right on the same row; the S and E
X     symbols are always at 0.
X
X     When you return to the main menu, the last watched time will be maintained
X     as the current time.  The StpSz is not changed.
X
X     10.  Searching
X
X     Ephem can search for arbitrary conditions to exist among most displayed
X     fields.  You first enter a function, then select from among three forms of
X     equation solvers to iteratively solve for the next time when the function
X     meets the requirements of the solver. The solver selects the next time for
X     which it wants the function evaluated and sets StpSz so that the next
X     iteration will occur at that time. The solvers continue to iterate until
X     either they achieve their goal or NStep reaches 0.
X
X     You may set NStep to be quite large and let ephem search unattended or set
X
X
X
X
X
X
X
X
X
X                                       - 16 -
X
X
X     it to 1 and watch it converge one step at a time. You may also plot at the
X     same time as search to record the exact steps ephem took to converge.
X     (But recall that screen updates are suppressed if plotting is also on).
X
X     The "Search" selection in the top half of the screen controls all
X     searching.  Picking it brings up a quick-choice menu as follows:
X
X     Select: Find extreme, Find 0, Binary, New function, Accuracy
X
X
X     10.1.  Find extreme
X
X     This search algorithm searches for a local maximum or a minimum in the
X     search function, whichever it finds first. It begins by evaluating the
X     search function at the current time then for two more times each separated
X     by StpSz. It then fits these three points to a parabola and solves it for
X     the time of its maximum (or minimum). StpSz is set so that the next
X     iteration will evaluate at this point.  This parabolic fit solution keeps
X     repeating until StpSz changes by less than the desired accuracy or until
X     the curve becomes so flat that an extrema appears too broad to find.
X
X     10.2.  Find 0
X
X     This search algorithm uses the secant method to solve for the time at
X     which the search function is zero. The function is evaluated at the
X     current time and then again StpSz later to establish a slope for which the
X     x-intercept is found as the next zero guess. This is used to set StpSz for
X     the next desired time value and the slope hunting process repeats until
X     StpSz changes by less than the desired accuracy.
X
X     10.3.  Binary
X
X     This search algorithm must be used with a search function that yields a
X     boolean result, ie, a true or false value. The idea is that the function
X     is assumed to be one truth value when evaluated at the present time, and
X     the opposite truth value when it is evaluated StpSz later. The algorithm
X     will then do a binary search for the time when the truth value changes.
X
X     The binary algorithm does not begin until the state change is bounded in
X     time.  Initially, as long as the truth value at StpSz is the same as the
X     previous value the algorithm will just keep moving in time by StpSz
X     looking for when the state changes.  That is, a linear search is initiated
X     to bound the state change, then the binary search proceeds.
X
X     10.4.  Define a New function
X
X     Select "New function" to display the current search function.  If you type
X     "q" it will be left unchanged.  If you type RETURN it will be erased.  If
X     you type anything else it will be compiled and, if there are no errors, it
X     will become the new search function.  Once a valid function has been
X     stored, it will remain unless changed.  If a search function is selected
X     and there is as yet no valid search function defined, you will
X     automatically be asked to enter one as though you had selected "New
X     function."
X
X
X
X
X
X
X
X
X
X                                       - 17 -
X
X
X     A search function consists of intrinsic functions, field-specifiers,
X     constants and operators, and precedence may be overridden with
X     parentheses.
X
X
X     10.4.1.  Intrinsic functions
X
X     In this release, the only intrinsic function available is abs(), which
X     returns the absolute value of its argument.
X
X     10.4.2.  Field Specifiers
X
X     A field in the bottom half of the menu is specified in the form of
X     "object_name.column_name". The object_name is enough of the planet name to
X     be unique; use "x" for the user-specified object X. The column_name is
X     from the following table, depending on which menu is up. In all cases
X     additional characters may be entered but are ignored.
X
X     Planet Data Menu        Rise/Set Menu               Separation Menu
X     ------------------      --------------------        ---------------
X     al      Alt             hr      Hrs Up, or          j       Jup
X     az      Az              hu      Hrs Up              ma      Mars
X     d       Dec             raz     Rise Az             me      Merc
X     ed      Ea Dst          rt      Rise Time           mo      Moon
X     el      Elong           saz     Set Az              n       Nep
X     hla     Helio Lat       st      Set Time            pl      Pluto
X     hlo     Helio Long      ta      Transit Alt         sa      Saturn
X     ph      Phs             tt      Transit Time        su      Sun
X     ra      R.A.                                        u       Uranus
X     sd      Sn Dst                                      ve      Venus
X     si      Size
X     vm      VMag
X
X
X     In addition, the following top-half fields may be used:
X
X     da      Dawn
X     du      Dusk
X     n       NiteLn
X
X
X
X     Remember, searching may only involve fields being calculated for display
X     at the time the solver is active.  While you can syntactically include any
X     field in a search function it is useless to define a search that uses
X     fields from other than the menu that is selected at the time the search is
X     running.
X
X     10.4.3.  Constants
X
X     Constants may be integers or floating point numbers. The latter may be
X     expressed in scientific notation if desired. Examples include 100, .9,
X     1.234, 1e10 and 1.2e-4.  Any number may be preceded by - to make it
X     negative.
X
X
X
X
X
X
X
X
X
X                                       - 18 -
X
X
X     10.4.4.  Operators
X
X     The collection of arithmetic, relational and boolean operators provided
X     mimics those of C language as listed in the following table, in decreasing
X     order of precedence.  Operators grouped together have the same precedence
X     and all have left-to-right associativity. Parentheses may be used as
X     desired.
X
X     Symbol  Meaning                 Resulting type
X     ------  --------------------    --------------
X     *       multiply                arithmetic
X     /       divide                  arithmetic
X
X     +       add                     arithmetic
X     -       subtract                arithmetic
X
X     >       greater than            boolean
X     >=      greater than or equal   boolean
X     <       less than               boolean
X     <=      less than or equal      boolean
X
X     ==      equality                boolean
X     !=      inequality              boolean
X
X     &&      logical and             boolean
X
X     ||      logical or              boolean
X
X
X     10.5.  Specifying Search Accuracy
X
X     Selecting "Accuracy" allows you to specify when the search will stop.  The
X     search algorithms will stop when StpSz becomes equal to or less than this
X     value. The default is one minute.  If ephem has not yet converged to the
X     specified accuracy but NStep has decremented to 1, the searching will stop
X     but the search status field will still indicate which search procedure is
X     in effect. To try more iterations you may increase NStep and resume
X     searching. If the accuracy was achieved, the search status field will
X     switch to "off" with the number of "unused" steps remaining in NStep and
X     the last step size in the StpSz fields.
X
X     10.6.  Stop
X
X     If searching is on, this option will also appear on the quick-choice menu
X     and may be selected to turn off the search.
X
X     10.7.  Example Searches
X
X     As an example, let's find when Pluto again becomes the furthest planet
X     from Sol.  You may find when the difference in their sun distance is zero,
X     or you might use a binary search on the condition that Pluto's sun
X     distance is larger then Neptune's.
X
X     To try the former approach select Search, select "Find 0", specify the
X
X
X
X
X
X
X
X
X
X                                       - 19 -
X
X
X     search function to be:
X
X     pl.sd - nep.sd
X
X     set StpSz to something large like 10d, NStep to allow several iterations
X     like 20, and then type "q" to start the search and watch ephem do the
X     hunt.  Ephem will settle on about 21:02 1/10/1999 UT.
X
X     To try a binary search, you first need to have some idea of when the event
X     will occur so you can eliminate the initial linear search for the state
X     change. We can start at, say, 1/1/1999, set StpSz to 30d, select Binary
X     search, specify the search function to be:
X
X     pl.sd > nep.sd
X
X     and go. Once it brackets the state change note how StpSz keeps being cut
X     in half but can go in either direction (sign) as it divides each interval
X     in half.  Ephem will converge on the same answer.
X
X     10.8.  Another Example
X
X     To find the time of last quarter moon during December, 1989, use the "Find
X     0" search algorithm to solve "moon.el + 90".  (At last quarter, the moon
X     is 90 degrees west of the sun, or -90 east in ephem's elongation display.)
X     Set the initial time to mid-month, 12/15/1989, StpSz to 1 day and NStep to
X     10. Ephem takes only a few iterations to settle on 23:57 12/19 UT.
X
X     10.9.  Caution
X
X     Beware that most celestial phenomena are generally pseudo-periodic in
X     nature.  In early search steps ephem can easily skip over a local maxima
X     and find a later one, which, while correct, may not be what was desired.
X     In general, the closer you can be when you start the search the better
X     ephem can refine it; it is not as good with very broad searches that can
X     go "wild". Set StpSz large enough to offer significant change in the
X     function value, but small enough not to skip too far.
X
X     For example, Saturn and Neptune had three close approaches during 1989.
X     If you did not know this then just asking ephem to find a minimum would
X     have produced different results depending on the starting conditions.
X     When starting a search for a certain class of event it is a good idea to
X     first use the plotting or watching facility of ephem to get a broad
X     picture of the general circumstances then use ephem's search facility to
X     refine a given region (or create and inspect a plot file and do your own
X     interpolation directly from it separately).
X
X     Similarly, ephem's searching techniques are not good for eclipses because
X     the moon and sun are close every month; the trick is sorting through the
X     frequent conjunctions for ones that are particularly close. One needs a
X     way of establishing an envelope fit to the local extrema of a cyclic
X     function in order to find a more global extreme.
X
X
X
X
X
X
X
X
X
X
X
X
X                                       - 20 -
X
X
X     11.  Implementation Notes
X
X     Remember that everything is for the current local time. So, for example,
X     the calendar marks moon events in local time; commercial calendars usually
X     mark the UT date.  Similarly, the rise/set times are for the current local
X     day.
X
X     The program uses a horizontal plane tangent to the earth as the horizon
X     for all altitude calculations, rise/set events, etc.  This is not the same
X     as the angle up from the local horizon unless the observer is directly on
X     the ground due to earth's curvature.  The effect can be found from:
X
X             sin(a)**2 = (h**2 + 2Rh) / (R+h)**2
X         where:
X             R = radius of earth
X             h = height above ground (same units as R)
X             a = increase in altitude
X
X     For example, the effect is more than two arc minutes at a height of 5
X     feet.
X
X     Visual magnitudes are not very accurate at all... I haven't bother to fix.
X
X     The accuracy of ephem can not be specifically stated since the Duffett-
X     Smith book does not warrant its planet position polynomials to any given
X     degree. I know for sure that better accuracy could be achieved if ephem
X     used ephemeris time but I have not yet decided on a suitable UT-ET
X     algorithm.
X
X     The program uses double precision throughout. While this precision might
X     seem a little ridiculous, it is actually more efficient for most
X     traditional K&R C compilers, the search functions are far more stable, it
X     improves small angles (conjunctions) calculated using acos(), etc.
X
X     Searching and plotting always use full precision but if neither of these
X     are turned on pure display and watching only recompute a given planets new
X     location if the time has changed enough to effect the required display
X     precision, based on the planets mean apparent orbital motion.
X
X     The sun-moon distance is the solution for the third side of a planar
X     triangle whose two other sides are the earth-moon distance and earth-sun
X     distance separated by the angle of elongation.
X
X     11.1.  Program limits
X
X     The search function is limited to a maximum of 32 instructions (each
X     constant, field spec, and operation is one instruction), with no more than
X     a total of 16 constants and field specs. At run time, the function can not
X     require more than 16 stacked values (due to operator precedence or
X     explicit parenthetical expressions) to evaluate.
X
X     No more than 32 different fields can be tracked simultaneously for
X     plotting and/or searching.
X
X
X
X
X
X
X
X
X
X
X                                       - 21 -
X
X
X     No more than 10 lines may be plotted at once.
X
X     The maximum file name length is 14 characters.
X
X     12.  DOS Installation Procedure
X
X     Summary:
X
X     You must be running DOS V2.0 or later, though somewhere between V2.0 and
X     V3.21 the behavior of control-c to terminate the program was fixed.  A
X     8087 floating point chip will be used if present.
X
X     The distribution floppy contains two files, ephem.exe and ephem.cfg.
X     Ephem.exe is the executable program; ephem.cfg is a sample configuration
X     file. To run the program, make working copies of these two files in a
X     directory and run "ephem" from that directory.  The program uses the
X     environment variable TZ to establish the local timezone.
X
X     12.1.  Setting TZ
X
X     Set a DOS environment variable, TZ, in the following form:
X
X     set TZ=SSSnDDD
X
X
X     This environment variable is used to establish the timezone name and hours
X     offset whenever the "NOW" shorthand is used from ephem, either from the
X     configuration startup file or whenever any time field is changed manually.
X
X     SSS  the 3-letter abbreviation for the local standard timezone;
X
X     n    a number between -23 to 24 indicating the number of hours that are
X          subtracted from GMT to obtain local standard time;
X
X     DDD  is an optional 3-letter abbreviation for the local daylight savings
X          time zone name. Leave it off if you do not have savings time in your
X          area or it is not currently in effect. If the changeover dates differ
X          from the internal algorithm, just use SSS and n directly.
X
X     For example, in the midwestern United States with savings times set
X     TZ=CST6CDT
X
X     If for some reason your system does not change to savings time at the
X     right time, then omit the DDD parameter and just set the SSS and n to
X     exactly what you want.
X
X     You can put this in your AUTOEXEC.BAT file so it gets set each time you
X     boot DOS.
X
X     13.  Wish List
X
X     incorporate Terrestrial Dynamical Time (known as Ephemeris Time prior to
X     1984).  TDT is about 57 seconds ahead of UT1 in 1990.
X
X
X
X
X
X
X
X
X
X
X                                       - 22 -
X
X
X     add explicit searching for eclipses and occultations.
X
X     work on a better precession algorithm. current one exhibits some
X     hysteresis.
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X                                       - 23 -
X
X
X     14.  Sample Screens
X
X     Here are sample ephem screens. They are generated using the first sample
X     ephem.cfg file (listed in the section describing the configuration file).
X     There is one for each of the three possible screen formats.  The rise/set
X     screen was done using the Adaptive option.  The separations screen was
X     done using the Geocentric option.
X
X
X
XMove to another field, RETURN to change this field, ? for help, or q to run
X
XCST 19:45:00  4/04/1990 | LST    8:22:37 | Lat   44:50:37 |      April 1990
XUTC  1:45:00  4/05/1990 |                | Long  93:42:08 | Su Mo Tu We Th Fr Sa
XJulianDat 2447986.57292 | Dawn      4:10 | Elev    800 ft |  1  2  3  4  5  6  7
X                        | Dusk     20:27 | Temp      40 F |  8 FM 10 11 12 13 14
XWatch                   | NiteLn    7:43 | AtmPr 29.50 in | 15 16 17 18 19 20 21
XSearch              off |                | TZ     6:00:00 | 22 23 NM 25 26 27 28
XPlot                off | NStep        1 | Epoch (OfDate) | 29 30
XMenu        Planet Data | StpSz RT CLOCK |                |
X--------------------------------------------------------------------------------
XOb R.A.    Dec    Az     Alt    Helio  Helio  Ea Dst Sn Dst Elong  Size VMag Phs
X   Hr:Mn.d Deg:Mn Deg E  Deg Up Long   Lat    AU(mi) AU     Deg E  ArcS      %
XSu  0:55.3   5:55 289:53 -10:56 195:01        1.0004               1919  -27
XMo  9:18.7  15:26 153:36  57:49               241151 1.0018  122.3 1847  -12  68
XMe  1:54.5  13:19 284:22   4:39  96:23   5:14 1.0909 0.3105   16.3  6.2 -2.4  71
XVe 22:02.0 -11:07 320:00 -50:07 241:32   0:53 0.7267 0.7250  -46.4 23.3 -5.1  53
XMa 21:23.9 -16:34 330:36 -58:56 282:18  -1:28 1.7066 1.4309  -56.9  5.5  0.5  91
XJu  6:14.0  23:29 241:30  56:16 104:06   0:05 5.2961 5.1847   78.2 37.1 -2.2  99
XSa 19:46.0 -21:00  20:34 -65:00 288:58   0:12 10.137 10.019  -80.4 16.3  1.2 100
XUr 18:41.7 -23:24  52:10 -60:18 276:37  -0:18 19.276 19.397  -95.5  3.4  5.7 100
XNe 19:02.8 -21:48  42:00 -61:43 282:39   0:52 30.183 30.208  -90.5  2.1  7.9 100
XPl 15:16.7  -1:38  81:32 -10:43 226:07  15:30 28.837 29.657 -144.5  0.3 13.7 100
XX   1:47.7  20:05 290:19   8:13  93:07  26:03 1.1320 0.3759   19.0      -1.8 74
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X                                       - 24 -
X
X
X     Move to another field, RETURN to change this field, ? for help, or q to run
X
X     CST 19:45:00  4/04/1990 | LST    8:22:37 | Lat   44:50:37 |      April 1990
X     UTC  1:45:00  4/05/1990 |                | Long  93:42:08 | Su Mo Tu We Th Fr Sa
X     JulianDat 2447986.57292 | Dawn      4:10 | Elev    800 ft |  1  2  3  4  5  6  7
X                             | Dusk     20:27 | Temp      40 F |  8 FM 10 11 12 13 14
X     Watch                   | NiteLn    7:43 | AtmPr 29.50 in | 15 16 17 18 19 20 21
X     Search              off |                | TZ     6:00:00 | 22 23 NM 25 26 27 28
X     Plot                off | NStep        1 | Epoch (OfDate) | 29 30
X     Menu      Rise/Set Info | StpSz RT CLOCK |                |
X     --------------------------------------------------------------------------------
X     Ob            Rise               Transit                Set            Hrs Up
X               Time     Az          Time     Alt         Time     Az
X     Su        5:49    80:53       12:18    50:58       18:47   279:24      12:58
X     Mo       13:17    65:36       20:43    59:56        3:30   297:14      14:14
X     Me        6:18    70:50       13:16    58:17       20:16   289:49      13:58
X     Ve        4:05   105:12        9:24    33:57       14:44   254:58      10:38
X     Ma        3:52   113:04        8:47    28:31       13:42   247:04       9:51
X     Ju        9:50    54:50       17:37    68:39        1:27   305:10      15:37
X     Sa        2:36   119:28        7:10    24:11       11:45   240:32       9:09
X     Ur        1:44   123:07        6:06    21:48       10:29   236:53       8:45
X     Ne        1:57   120:39        6:27    23:24       10:58   239:21       9:01
X     Pl       20:41    91:31        2:42    43:32        8:39   268:29      11:58
X     X         5:46    61:23       13:11    64:52       20:40   299:57      14:54
X
X
X
X     Move to another field, RETURN to change this field, ? for help, or q to run
X
X     CST 19:45:00  4/04/1990 | LST    8:22:37 | Lat   44:50:37 |      April 1990
X     UTC  1:45:00  4/05/1990 |                | Long  93:42:08 | Su Mo Tu We Th Fr Sa
X     JulianDat 2447986.57292 | Dawn      4:10 | Elev    800 ft |  1  2  3  4  5  6  7
X                             | Dusk     20:27 | Temp      40 F |  8 FM 10 11 12 13 14
X     Watch                   | NiteLn    7:43 | AtmPr 29.50 in | 15 16 17 18 19 20 21
X     Search              off |                | TZ     6:00:00 | 22 23 NM 25 26 27 28
X     Plot                off | NStep        1 | Epoch (OfDate) | 29 30
X     Menu        Separations | StpSz RT CLOCK |                |
X     --------------------------------------------------------------------------------
X     Ob   Sun   Moon   Merc   Venus  Mars    Jup  Saturn Uranus   Nep   Pluto    X
X
X     Su        122:17  16:20  46:22  56:53  78:11  80:24  95:28  90:29 144:29  19:02
X     Mo 122:17        106:01 168:37 178:19  44:06 157:19 142:15 147:14  89:57 104:59
X     Me  16:20 106:01         62:37  73:11  61:56  96:40 111:44 106:43 156:32   6:57
X     Ve  46:22 168:37  62:37         10:43 124:33  34:03  49:07  44:07 100:46  63:41
X     Ma  56:53 178:19  73:11  10:43        135:03  23:35  38:36  33:40  91:16  74:24
X     Ju  78:11  44:06  61:56 124:33 135:03        158:36 173:39 168:38 131:51  61:21
X     Sa  80:24 157:19  96:40  34:03  23:35 158:36         15:04  10:06  68:17  97:27
X     Ur  95:28 142:15 111:44  49:07  38:36 173:39  15:04          5:07  54:09 112:25
X     Ne  90:29 147:14 106:43  44:07  33:40 168:38  10:06   5:07         58:29 107:19
X     Pl 144:29  89:57 156:32 100:46  91:16 131:51  68:17  54:09  58:29        151:30
X     X   19:02 104:59   6:57  63:41  74:24  61:21  97:27 112:25 107:19 151:30
X
X
X
X
X
X
X
X
X
EOFxEOF
len=`wc -c < Man.txt.2`
if expr $len != 29650 > /dev/null
then echo Length of Man.txt.2 is $len but it should be 29650.
fi

# if Man.txt.1 exists, then the first part of the manual has already been
# extracted from its shar file, and we stick this one after it to form the
# complete manual, Man.txt.
if test -w Man.txt.1
then
    echo catting Man.txt.2 to Man.txt.1 to form Man.txt
    cat Man.txt.2 >> Man.txt.1
    rm Man.txt.2
    mv Man.txt.1 Man.txt
fi