From 40e5a5811c6ffce9b0974e93cdd927cbcf60c157 Mon Sep 17 00:00:00 2001
From: Joe Hunkeler <jhunkeler@gmail.com>
Date: Tue, 11 Aug 2015 16:51:37 -0400
Subject: Repatch (from linux) of OSX IRAF

---
 noao/astutil/doc/astcalc.hlp | 654 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 654 insertions(+)
 create mode 100644 noao/astutil/doc/astcalc.hlp

(limited to 'noao/astutil/doc/astcalc.hlp')

diff --git a/noao/astutil/doc/astcalc.hlp b/noao/astutil/doc/astcalc.hlp
new file mode 100644
index 00000000..f138e8ea
--- /dev/null
+++ b/noao/astutil/doc/astcalc.hlp
@@ -0,0 +1,654 @@
+.help astcalc Jan96 astutil
+.ih
+NAME
+astcalc -- astronomical calculator
+.ih
+USAGE
+astcalc
+.ih
+PARAMETERS
+.ls commands
+A file of commands using the simple syntax given in the DESCRIPTION.  If no
+file name is given then the commands are read interactively from the
+standard input with a prompt given by the \fIprompt\fR parameter.  The
+command input ends with either EOF or "quit".  If a list of images and/or a
+table is specified the commands are repeated for each image or until the
+end of the table is reached.  Comments beginning with '#', blank lines, and
+escaped newlines are allowed.
+.le
+.ls images = ""
+Optional list of images.  The command input is repeated for each image.
+Image header keyword values may be read and used as variables and
+keywords may be created, modified, or deleted provided the image has
+read-write permissions.
+.le
+.ls table = ""
+Optional text file containing columns of values.  The table consists of
+one or more lines of whitespace separated columns of values.  Note that a
+string with whitespace needs to be quoted.  The lines may be scanned and
+the values assigned to variables for use in expressions.  If the command
+input includes reading from the table then the commands will be repeated
+until all the lines in the table have been read.
+.le
+.ls prompt = "astcalc> "
+When no command file is specified the input commands are read from the
+standard input (the terminal) and the value of the \fIprompt\fR string is
+printed as a prompt.  Note that if the input command file is specified as
+"STDIN" there will be no prompt even though commands will also be read from
+the standard input.
+.le
+.ls verbose = no
+Print each variable assignment?  This is useful for debugging command
+files.
+.le
+.ih
+DESCRIPTION
+\fBAstcalc\fR evaluates statements using variables, constants, and
+functions.  Of special interest are many astronomical functions and the
+ability to read and write image header keywords (\fIimages\fR), read
+from a text file (\fItable\fR), and read and write CL parameters.
+
+This task may be used interactively or with input from a command file
+(\fIcommands\fR).  If no command file is specified a prompt (\fIprompt\fR)
+is printed and commands are entered interactively.  The input is terminated
+with either the end-of-file character (EOF) or the command "quit".  Input
+command files simply contain the same input in a file and end with the end
+of the file or "quit".  The input commands, either those entered
+interactively or from a file, are repeated for each image in the image list
+and until the end of the input text table is reached, whichever comes
+first.  The image list and the table are optional and if neither is
+specified the commands are executed just once.
+
+The command input consists of statements with each statement on a
+line by itself.  However long statements may be broken up with
+escaped newlines using the back-slash as the escape character;
+i.e. \<newline>.  Comments beginning with '#', blank lines,
+and whitespace are ignored.
+
+There are three types of statements: assignment, expressions, and
+conditional.  Each statement is on a line by itself though long statements
+may be broken up with escaped newlines (\<newline>).  Assignment statements
+have a variable name, an equal sign, and an expression.  Expression
+statements consist of only the expression with the value of the expression
+being ignored.  Expression statements are generally used with certain
+functions.  Conditional statements are blocks of if-endif and if-else-endif
+with assignment and expression statements between the if-else-endif
+statements.  These may not be nested.
+
+A variable is an arbitrary identifier which must begin with an alphabetic
+character or '$' followed by an alphabetic character and may use alphabetic
+characters, digits, or the characters '_', '$', or '.'.  Other special
+characters may be used but they must be set and referenced with the
+special '@' operator described below.  Lower and upper
+case characters may be used and are considered different characters; i.e.
+identifiers are case sensitive (as are function names).
+
+There are a few special predefined variables: "$D" contains the current
+local date (in new FITS YYYY-MM-DD), "$T" contains the current local
+time, "$GMD" contains the current Greenwich meridian date (in FITS
+YYYY-MM-DD format), "$GMT" contains the current Greenwich meridian time,
+and "$GMDT" contains the current date and time in FITS YYYY-MM-DDTHH:MM:SS
+format.
+
+The expression syntax is described below.  Expressions may use previously
+define variable names, constants (both quoted strings and numeric values),
+and functions.  The functions are given below.  Input from image headers,
+and text files, and CL parameters, and output to image headers is performed
+by I/O functions.
+
+In \fBastcalc\fR variables are maintained internally and input and output
+are performed explicitly by functions.  A related task is \fBasthedit\fR.
+In that task variables are image header keywords and references to keywords
+(assignments, use in expressions, and by themselves with no expression)
+read and write to the image headers.  Updating of the image headers,
+however, can be suppressed.  Also a line of a text table is read
+automatically at the beginning of the command input so that column values
+can be referenced directly.
+
+STATEMENTS
+
+The following gives a more formal description of the statement syntax
+and the special words "if", "else", "endif", and "quit".
+
+.nf
+        <variable> = <expression>
+        <expression>
+        if (<expression>)
+            <statements>
+        endif
+        if (<expression>)
+            <statements>
+        else
+            <statements>
+        endif
+        quit
+.fi
+
+The result of the expression in the "if" statement is normally a logical
+value.  However, a numeric value of 0 is false while any other value is
+true and any string beginning with either "y" or "Y" is true with
+any other value being false; i.e. string values of yes and no may be used.
+
+VARIABLES
+
+Variables may formally be defined as:
+
+.nf
+        [$]{a-zA-Z}[{a-zA-Z0-9._$}]*
+.fi
+
+where [] indicate optional, {} indicates a class, - indicates an
+ASCII range of characters, and * indicates zero or more occurrences.
+Stated in words, a variable must begin with an alphabetic character (ignoring
+an option leading $) and may be followed by any combinations of
+alphabetic, digit, or '.', '_', and '$' characters.
+
+There are a few predefined variables which may be referenced in
+expressions.
+
+.nf
+        $I      The name of the current image (if used)
+        $D      The current date in the YYYY-MM-DD format
+        $T      The current (local) time as a sexagesimal string
+.fi
+
+The date and time are set once at the beginning of execution.
+
+Though not recommended it is possible to use any set of characters
+for a variable provided the variable is referenced as @"<name>".
+For example one could use @"date-obs" to include the character '-'.
+
+EXPRESSIONS
+
+Expressions consist of operands and operators.  The operands may be any
+PREVIOUSLY DEFINED variables, quoted string constants, numeric constants,
+and functions.  Values given as sexagesimal strings are automatically
+converted to decimal numbers.  The operators are arithmetic, logical, and
+string.  The expression syntax is equivalent to that used in the CL and SPP
+languages.
+
+Additional information may be found in the help for \fBhedit\fR except that
+all unquoted nonnumeric strings are considered to be variables and so the
+'(', ')' operators are not used.  The "field" references are not needed so
+the references "." and  "$" are not used and are not legal variable
+names in this task.
+
+operators:
+
+The following operators are recognized in expressions.  With the exception
+of the operators "?" and "?=", the operator set is equivalent to that
+available in the CL and SPP languages.
+
+
+.nf
+        +  -  *  /              arithmetic operators
+        **                      exponentiation
+        //                      string concatenation
+        !  -                    boolean not, unary negation
+        <  <= >  >=             order comparison (works for strings)
+        == != && ||             equals, not equals, and, or
+        ?=                      string equals pattern
+        ? :                     conditional expression
+	@			reference a variable
+.fi
+
+
+The operators "==", "&&", and "||" may be abbreviated as "=", "&", and "|"
+if desired.  The ?= operator performs pattern matching upon strings.
+
+A point to be aware of is that in the ?: conditional expression both
+possible result values are evaluated though the result of the expression
+is only one of them.  This means that one should not use this to
+call I/O functions that one wants to be executed only if a certain
+condition holds.
+
+intrinsic functions:
+
+A number of standard intrinsic functions are recognized within expressions.
+The set of functions currently supported is shown below.
+
+
+.nf
+	abs     atan2   deg     log     min     real    sqrt
+	acos    bool    double  log10   mod     short   str
+	asin    cos     exp     long    nint    sin     tan
+	atan    cosh    int     max     rad     sinh    tanh
+.fi
+
+
+The trigonometric functions operate in units of radians.
+The \fImin\fR and \fImax\fR functions may have any number of arguments up
+to a maximum of sixteen or so (configurable).  The arguments need not all
+be of the same datatype.
+
+A function call may take either of the following forms:
+
+.nf
+        <identifier> '(' arglist ')'
+or
+        <string_expr> '(' arglist ')'
+.fi
+
+The first form is the conventional form found in all programming languages.
+The second permits the generation of function names by string valued
+expressions and might be useful on rare occasions.
+
+astronomical functions:
+
+In addition to the above intrinsic functions there are a number of
+astronomical functions.  More will be added in time.  These are:
+
+.nf
+     sexstr - convert a number to a sexagesimal string (xx:mm:ss.ss)
+      epoch - compute an epoch given a date and time
+     julday - compute a Julian day given a date and time
+        mst - compute a mean sidereal time w/ date, time, and longitude
+ ra_precess - precess ra from one epoch to another
+dec_precess - precess dec from one epoch to another
+    airmass - compute airmass w/ ra, dec, sidereal time, and latitude
+   eairmass - compute effective airmass given
+                ra, dec, sidereal time, exposure time, and latitude
+      obsdb - get parameters from the observatory database
+.fi
+
+.ls sexstr (number), sexstr (number, digits)
+Convert a number to a sexagesimal string in the format X:MM:SS.SS.  There
+is an optional second argument (the default is 0) which is the number of
+decimal digits in the seconds field.
+.le
+.ls epoch (date[, ut])
+Compute an epoch given a date and time.  The date is a string in the
+format DD/MM/YY, YYYY-MM-DD, or YYYY-MM-DDTHH:MM:SS.
+Typically this argument will be the standard FITS
+keyword DATE-OBS.  Because of possible confusion of the hyphen with
+subtraction this keyword would be specified as @"date-obs".  The time
+argument is optional.  If it is not given the time from the date
+string will be used and if absent a time of 0h is used.
+.le
+.ls julday (date[, ut])
+Compute a Julian day given a date and time.  The date and time are
+specified as described previously.
+.le
+.ls mst (date[, ut], longitude)
+Compute a mean sidereal time given a date, time, and longitude in degrees.  The
+date and (optional) time are specified as described previously.  The longitude
+may be given as a constant or using the observatory database function
+as shown in the examples.  The returned value is a sexagesimal
+string with two decimals in the seconds.
+.le
+.ls precess (ra, dec, epoch1, epoch2)
+Precess coordinates from one epoch to another.  The ra is the
+right ascension in hours, the dec in the declination in degrees,
+and the epochs are in years.  This function returns a formatted string with
+the precessed right ascension, declination, and epoch.  Numerical
+values for the right ascension and declination are obtained with the
+functions ra_precess and dec_precess.
+.le
+.ls ra_precess (ra, dec, epoch1, epoch2)
+Precess a right ascension from one epoch to another.  The ra is the
+input right ascension in hours, the dec is the declination in degrees,
+and the epochs are in years.  Because a function can return only one
+value there is a second function to return the precessed declination.
+The returned value is a sexagesimal string with two decimals in the seconds.
+.le
+.ls dec_precess (ra1, dec1, epoch1, epoch2)
+Precess a declination from one epoch to another.  The ra is the
+input right ascension in hours, the dec is the declination in degrees,
+and the epochs are in years.  Because a function can return only one
+value there is a second function to return the precessed right ascension.
+The returned value is a sexagesimal string with two decimals in the seconds.
+.le
+.ls arcsep (ra1, dec1, ra2, dec2)
+Compute the separation between two spherical coordinates.  The parameters
+ra1 and ra2 are coordinates in hours (right ascension, longitude, etc.)
+and the dec1 and dec2 parameters are coordinates in degrees (declination,
+latitude, etc.).  The computed value is returned in seconds of arc.
+.le
+.ls airmass (ra, dec, st, latitude)
+Compute an airmass given right ascension in hours, declination in
+degrees, sidereal time in hours, and latitude in degrees.  The latitude
+is often specified using the observatory database function as shown
+in the examples.
+.le
+.ls eairmass (ra, dec, st, exptime, latitude)
+Compute an "effective" airmass given right ascension in hours, declination
+in degrees, beginning sidereal time in hours, exposure time in seconds, and
+latitude in degrees.  The The latitude is often specified using the
+observatory database function as shown in the examples.  The effective
+airmass is based on a Simpson's rule weighting of the beginning, middle,
+and ending airmass (with no provision for paused exposure).  The weights
+are:
+
+.nf
+    effective = beginning + 4 * middle + ending
+.fi
+.le
+.ls obsdb (observatory, parameter)
+Return a value from the observatory database.  The observatory parameter is
+a observatory identification string as defined in the database.  Another
+special value is "observatory" which then follows a name resolution
+scheme.  The observatory database mechanism is described by the help topic
+\fBobservatory\fR.  The parameter is a string given the quantity desired.
+Typically this would be "longitude" or "latitude" but there are other
+possible parameters.
+.le
+
+input/output functions:
+
+There are special functions for formatting, printing, error aborts,
+reading, writing, and deleting image header keywords, reading a text file,
+and reading and writing CL parameters.
+
+.nf
+     print  - print a set of arguments with default format
+     printf - print a set arguments with specified format
+     format - format a string
+     error  - print an error message and abort
+     clget  - get a value from a CL parameter
+     clput  - put a value to a CL parameter
+      scan  - scan a string and parse into variables
+     fscan  - scan a line of a text file
+     imget  - get the value of an image header keyword
+     imput  - put (add or modify) the value of an image header keyword
+     imdel  - delete an image header keyword
+.fi
+
+.ls print ([argument, ...])
+Print the arguments with default formats based on the type of value ending
+with a newline.  There may be zero or more arguments.  With zero arguments
+only a newline will be printed.
+.le
+.ls printf (fmt [, argument, ...])
+Print a list of arguments using the formatting syntax described later.
+Parameters to be formatted are given by the % fields and the values are
+passed as further arguments in the order in which they are referenced.
+There is no automatic newline so the format must include "\n" to
+produce newlines.
+.le
+.ls error (message)
+Print the "message", which can be any string variable such as might
+be produced by "format", and abort the task.  This is useful in
+conjunction with the conditional operator to abort if a variable
+takes an inappropriate value.
+.le
+.ls clget (parameter)
+Get the value of a CL parameter.  The argument must be a string.  The
+function value is the value of the parameter.
+.le
+.ls clput (parameter, value)
+Put a value into a CL parameter.  The parameter argument must be a
+string and the value can be anything.  The function returns a string
+of the form "clput: parameter = value" where parameter and value are
+the actual values.
+.le
+.ls scan (string, var, ...)
+Parse a string of whitespace separated words into a list of
+variables.  The number of variables assigned is
+the returned value of the function.
+.le
+.ls fscan (var, ...)
+Scan a line of a text file into a list of variables.  The arguments
+are zero or more variable names to which to assign the values of
+the whitespace separated fields.  The number of variables assigned
+is the returned value of the function.
+.le
+.ls imget (parameter)
+Get the value of an image header keyword from the current image.  The
+argument must be a string.  The function value is the value of the keyword.
+.le
+.ls imput (parameter, value)
+Put a value into an image header keyword for the current image.  The
+parameter argument must be a string and the value can be anything.  If the
+keyword exists it will be modified and if it does not exist it will be
+added.  The function returns a string of the form "imput: parameter =
+value" for new keywords or "imput: parameter = old_value -> value" for
+modified keywords where parameter and value are the actual values.
+.le
+.ls imdel (parameter)
+Delete an image header keyword.  The parameter argument must be a string.
+The returned values are the strings "imdel: parameter not found"
+or "imdel: parameter = value (DELETED)" where parameter is the parameter
+name and value is the old value.
+.le
+
+.ih
+FORMATS
+A  format  specification has the form "%w.dCn", where w is the field
+width, d is the number of decimal places or the number of digits  of
+precision,  C  is  the  format  code,  and  n is radix character for
+format code "r" only.  The w and d fields are optional.  The  format
+codes C are as follows:
+    
+.nf
+b       boolean (YES or NO)
+c       single character (c or '\c' or '\0nnn')
+d       decimal integer
+e       exponential format (D specifies the precision)
+f       fixed format (D specifies the number of decimal places)
+g       general format (D specifies the precision)
+h       hms format (hh:mm:ss.ss, D = no. decimal places)
+m       minutes, seconds (or hours, minutes) (mm:ss.ss)
+o       octal integer
+rN      convert integer in any radix N
+s       string (D field specifies max chars to print)
+t       advance To column given as field W
+u       unsigned decimal integer 
+w       output the number of spaces given by field W
+x       hexadecimal integer
+z       complex format (r,r) (D = precision)
+    
+    
+Conventions for w (field width) specification:
+    
+    W =  n      right justify in field of N characters, blank fill
+        -n      left justify in field of N characters, blank fill
+        0n      zero fill at left (only if right justified)
+absent, 0       use as much space as needed (D field sets precision)
+    
+    
+Escape sequences (e.g. "\n" for newline):
+    
+\b      backspace   (not implemented)
+\f      formfeed
+\n      newline (crlf)
+\r      carriage return
+\t      tab
+\"      string delimiter character
+\'      character constant delimiter character
+\\      backslash character
+\nnn    octal value of character
+    
+Examples
+    
+%s          format a string using as much space as required
+%-10s       left justify a string in a field of 10 characters
+%-10.10s    left justify and truncate a string in a field of 10 characters
+%10s        right justify a string in a field of 10 characters
+%10.10s     right justify and truncate a string in a field of 10 characters
+    
+%7.3f       print a real number right justified in floating point format
+%-7.3f      same as above but left justified
+%15.7e      print a real number right justified in exponential format
+%-15.7e     same as above but left justified
+%12.5g      print a real number right justified in general format
+%-12.5g     same as above but left justified
+
+%h          format as nn:nn:nn.n
+%15h        right justify nn:nn:nn.n in field of 15 characters
+%-15h       left justify nn:nn:nn.n in a field of 15 characters
+%12.2h      right justify nn:nn:nn.nn
+%-12.2h     left justify nn:nn:nn.nn
+    
+%H          / by 15 and format as nn:nn:nn.n
+%15H        / by 15 and right justify nn:nn:nn.n in field of 15 characters
+%-15H       / by 15 and left justify nn:nn:nn.n in field of 15 characters
+%12.2H      / by 15 and right justify nn:nn:nn.nn
+%-12.2H     / by 15 and left justify nn:nn:nn.nn
+
+\n          insert a newline
+.fi
+
+.ih
+EXAMPLES
+1.  This example shows interactive use.
+
+.nf
+    cl> astcalc
+    astcalc> print ((1 + 2 + 3) / 2 - 2 * 2)
+    -1
+    astcalc> observatory = "kpno"
+    astcalc> date = "05/04/87"
+    astcalc> ut = 9:27:27
+    astcalc> ra = 13:29:24
+    astcalc> dec = 47:15:34
+    astcalc> epoch = epoch (date, ut)
+    astcalc> mst = mst (date, ut, obsdb (observatory, "longitude"))
+    astcalc> print (epoch)
+    1987.257752395672
+    astcalc> print (mst)
+    14:53:39.81
+    astcalc> print (julday (date, ut))
+    2446890.894062519
+    astcalc> print (ra_precess (ra, dec, epoch, 1950))
+    13:27:49.84
+    astcalc> print (dec_precess (ra, dec, epoch, 1950))
+    47:27:05.72
+    astcalc> print (airmass (ra, dec, mst, obsdb (observatory, "latitude")))
+    1.07968417231416
+    astcalc> printf ("Hello World: %s\n", precess (ra, dec, epoch, 1950))
+    Hello World: 13:27:49.84  47:27:05.7   1950.
+    astcalc> quit
+.fi
+
+2.  This example shows the same commands as in the previous example
+read from a file.
+
+.nf
+    cl> type example2.dat
+    # Define variables.
+    observatory = "kpno"
+    date = "05/04/87"
+    ut = 9:27:27
+    ra = 13:29:24
+    dec = 47:15:34
+    epoch = epoch (date, ut)
+    mst = mst (date, ut, obsdb (observatory, "longitude"))
+
+    # Print results of some expressions.
+    print ((1 + 2 + 3) / 2 - 2 * 2)       # Calculation with constants
+    print (epoch)                         # Print variable
+    print (mst)                           # Print variable
+    print (julday (date, ut))             # Print result of function
+    print (ra_precess (ra, dec, epoch, 1950))
+    print (dec_precess (ra, dec, epoch, 1950))
+    print (airmass (ra, dec, mst, obsdb (observatory, "latitude")))
+
+    # Formatted print with arguments.  Note newline.
+    printf ("Hello World: %s\n", precess (ra, dec, epoch, 1950))
+    cl> astcalc commands=example2.dat
+    -1
+    1987.257752395672
+    14:53:39.81
+    2446890.894062519
+    13:27:49.84
+    47:27:05.72
+    1.07968417231416
+    Hello World: 13:27:49.84  47:27:05.7   1950.
+.fi
+
+3.  This example precesses coordinates given in a text file.
+
+.nf
+    cl> type example3.dat,table.dat
+    ===> example3.dat <===
+    # Read table of RA, DEC, and optional EPOCH and precess to 2000.
+
+    epoch = 1900            # Default input epoch
+    epoch1 = 2000           # Precession epoch
+
+    # Scan table and precess coordinates.
+    if (fscan ("ra", "dec", "epoch") >= 2)
+	ra1 = ra_precess (ra, dec, epoch, epoch1)
+	dec1 = dec_precess (ra, dec, epoch, epoch1)
+	printf ("%h %h %d -> %h %h %d\n", ra, dec, epoch, ra1, dec1, epoch1)
+    else
+	printf ("Missing coordinates\n")
+    endif
+
+    ===> table.dat <===
+    12:22:31        31:10:15        1950
+    13:52:44        10:21:32        1996.1
+    14:52:44        11:21:32
+    10:20:30
+
+    cl> astcalc commands=example3.dat table=table.dat
+    12:22:31.0 31:10:15.0 1950 -> 12:25:00.56 30:53:38.13 2000
+    13:52:44.0 10:21:32.0 1996 -> 13:52:55.54 10:20:23.11 2000
+    14:52:44.0 11:21:32.0 1900 -> 14:57:33.16 10:57:24.74 2000
+    Missing coordinates
+.fi
+
+4.  This complex example illustrates reading from CL parameters and
+image header keywords.  It precesses coordinates to a standard epoch
+and computes the arc separation between the coordinates and a center
+coordinate.  If the separation is less than a specified amount it
+prints the image name and additional information.  This is the
+data file for the \fBastradius\fR script task.
+
+.nf
+    cl> type astutil$astradius.dat
+    # Print images which are within a given radius in the sky.
+
+    # Get parameters.
+    racenter = clget ("astradius.racenter")
+    deccenter = clget ("astradius.deccenter")
+    epcenter = clget ("astradius.epcenter")
+    radius = clget ("astradius.radius")
+    ra = imget(clget("keywpars.ra"))
+    dec = imget(clget("keywpars.dec"))
+
+    epoch = imget(clget("keywpars.epoch"))
+    if (str(epoch) == "" || real(epoch) == 0.)
+	date = imget(clget("keywpars.date_obs"))
+	ut = imget(clget("keywpars.ut"))
+	epoch = epoch (date, ut)
+    endif
+
+    # Precess image coordinates to center epoch and compute separation.
+    radec = precess (ra, dec, epoch, epcenter)
+    ra1 = ra_precess (ra, dec, epoch, epcenter)
+    dec1 = dec_precess (ra, dec, epoch, epcenter)
+    sep = arcsep (racenter, deccenter, ra1, dec1)
+
+    # Print result if within radius.
+    if (sep < real (radius))
+	printf ("%-15s %s %4d %s\n", $I, radec, sep, imget ("title"))
+    endif
+    cl> astcalc commands=astutil$astradius.dat images=dev$pix
+    RA center (hours) (13:31): 
+    DEC center (degrees) (47:00): 
+    Epoch of center (2000.): 
+    Radius in arc seconds (3600.): 
+    dev$pix         13:29:56.16  47:11:37.9   2000.  955 m51  B  600s
+.fi
+
+.ih
+REVISIONS
+.ls ASTCALC V2.15
+The $D variable was changed from the old MM/DD/YY format to the post-Y2K
+YYYY-MM-DD format.
+.le
+.ls ASTCALC V2.11.2
+Y2K update:  The epoch, julday, and mst functions now take either the old
+or new FITS style date strings.  The time argument is optional and if
+it is not specified the time from the date string is used and if neither
+time is present a value of 0h is used.  New internal variables $GMD,
+$GMT, and $GMDT for the current time Greenwich time are defined.
+.le
+.ls ASTCALC V2.11
+This task is new in this release.
+.le
+.ih
+SEE ALSO
+astradius, asthedit, setairmass, setjd, asttimes, precess, observatory, hedit
+.endhelp
-- 
cgit 

