Short:        Convert among many units (UNIX `units')
Author:       adrian@u.washington.edu
Uploader:     charlton cs utk edu
Type:         misc/sci
Architecture: m68k-amigaos

This is a program which I wrote as a clone of the UNIX 'units'
command.  I threw it together in a couple days, but it seems to work,
with some restrictions.  I have tested it under DOS with Borland C and
Ultrix 4.2.

Adrian Mariano (adrian@u.washington.edu or mariano@geom.umn.edu)
===========================================================================

On Amiga:

Units will run from CLI/Shell and Workbench.

You may want to read `units.lib' to see what sort of units may be converted.
Over 500 different units are supported, as well as units derived from those.

Some interesting conversions:

    You have: megatons-tnt
    You want: joules
        * 4.1730498e+15
        / 2.3963289e-16
        
    You have: furlongs/fortnight
    You want: meters/second
        * 0.0001663
        / 6012.8848

I made the following changes to units:

    I added a version string that can be found by Amiga's VERSION command.
    I corrected the entry for nmile in units.lib (it was missing a space).
    I generated and #included *_protos.h files to keep SAS/C happy.
    I added the ability to type `quit' to quit the program.
    I added Workbench support.


Ron Charlton (charlton@cs.utk.edu or charltoncr@ornl.gov)
01-Aug-1994
==========================================================================

Units.doc:

NAME
   units - conversion program

SYNTAX
   units [-f filename] [-q] [to-unit from-unit]

SUMMARY

   -f filename
     Specifies the name of the units data file to load.

   -q  Supresses prompting of the user for units and the display of statis-
     tics about the number of units loaded.

   from-unit to-unit
	Allows a single unit converstion to be done directly from the com-
     	mand line.  No prompting will occur.  The units program will print
	out only the result of this single conversion.


DESCRIPTION
    The units program converts quantities expression in various scales to
    their equivalents in other scales.  The units program can only handle
    multiplicative scale changes.  It cannot convert Centigrade to
    Fahrenheit, for example.  It works interactively by prompting the user
    for input:

	You have: meters
	You want: feet
	     * 3.2808399
	     / 0.3048

	You have: cm^3
	You want: gallons
	     * 0.00026417205
	     / 3785.4118

    Powers of units can be specified using the '^' character as shown in the
    example, or by simple concatenation: 'cm3' is equivalent to 'cm^3'.
    Multiplication of units can be specified by using spaces, a dash or an
    asterisk.  Division of units is indicated by the slash ('/'). Note that
    multiplication has a higher precedence than division, so If the user
    enters incompatible unit types, the units program will print a message
    indicating that the units are not conformable and it will display the
    reduced form for each unit:

	You have: ergs/hour
	You want: fathoms kg^2 / day
	conformability error
	     2.7777778e-11 kg m^2 / sec^3
	     2.1166667e-05 kg^2 m / sec

    The conversion information is read from a units data file.  The default
    file includes definitions for most familiar units, abbreviations and
    metric prefixes.  Some constants of nature included are:

	pi       ratio of circumference to diameter
	c        speed of light
	e        charge on an electron
	g        acceleration of gravity
	force    same as g
	mole     Avogadro's number
	water    pressure per unit height of water
	mercury  pressure per unit height of mercury
	au       astronomical unit

    'Pound' is a unit of mass.  Compound names are run together so 'pound-
    force' is a unit of force.  British units that differ from their US
    counterparts are prefixed with 'br', and currency is prefixed with its
    country name: 'belgiumfranc', 'britainpound'.  When searching for a
    unit, if the specified string does not appear exactly as a unit name,
    then the units program will try to remove a trailing 's' or a trailing
    'es' and check again for a match.

    All of these definitions can be read in the standard units file, or you
    can supply your own file.  A unit is specified on a single line by giv-
    ing its name and an equivalence.  One should be careful to define new
    units in terms of old ones so that a reduction leads to the primitive
    units which are marked with '!' characters. The units program will not
    detect infinite loops that could be caused by careless unit definitions.

    Prefixes are defined in the same was as standard units, but with a
    trailing dash at the end of the prefix name.