%-----------------------------------------------------------------------
%;  Copyright (C) 1996
%;  Associated Universities, Inc. Washington DC, USA.
%;
%;  This program is free software; you can redistribute it and/or
%;  modify it under the terms of the GNU General Public License as
%;  published by the Free Software Foundation; either version 2 of
%;  the License, or (at your option) any later version.
%;
%;  This program is distributed in the hope that it will be useful,
%;  but WITHOUT ANY WARRANTY; without even the implied warranty of
%;  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
%;  GNU General Public License for more details.
%;
%;  You should have received a copy of the GNU General Public
%;  License along with this program; if not, write to the Free
%;  Software Foundation, Inc., 675 Massachusetts Ave, Cambridge,
%;  MA 02139, USA.
%;
%;  Correspondence concerning AIPS should be addressed as follows:
%;          Internet email: aipsmail@nrao.edu.
%;          Postal address: AIPS Project Office
%;                          National Radio Astronomy Observatory
%;                          520 Edgemont Road
%;                          Charlottesville, VA 22903-2475 USA
%-----------------------------------------------------------------------
%Body of \AIPS\ Letter for 15 January 1996

\documentstyle [twoside]{article}

\newcommand{\AMark}{AIPSMark$^{(93)}$}
\newcommand{\AMarks}{AIPSMarks$^{(93)}$}
\newcommand{\LMark}{AIPSLoopMark$^{(93)}$}
\newcommand{\LMarks}{AIPSLoopMarks$^{(93)}$}
\newcommand{\AM}{A_m^{(93)}}
\newcommand{\ALM}{AL_m^{(93)}}

\newcommand{\AIPRELEASE}{January 15, 1996}
\newcommand{\AIPVOLUME}{Volume XVI}
\newcommand{\AIPNUMBER}{Number 1}
\newcommand{\RELEASENAME}{{\tt 15JAN96}}
\newcommand{\OLDNAME}{{\tt 15JUL95}}

%macros and title page format for the \AIPS\ letter.
\input LET94.MAC
\input psfig

\newcommand{\MYSpace}{-11pt}

\normalstyle

\section{This is Your Last \Aipsletter\ Unless $\ldots$}

The publication of the \Aipsletter\ in paper form has become quite
expensive due to the steady growth in the mailing list.  The last
edition was mailed to 103 people in NRAO, 455 others in the United
States, and 286 in foreign countries, a total of 844.  The cost of
printing and mailing is well justified if the recipients actually read
it, but is a waste of trees otherwise.  Therefore, if you wish to
to receive a paper copy of the next (and later) \Aipsletter s, you
must notify us of this desire.  Use e-mail or snail mail to the
addresses in the masthead; the order form at the end of this
\Aipsletter\ also has a place to indicate your wish to remain on the
mailing list.  Note that the \Aipsletter\ is made available via the
World-Wide Web before it appears in paper form.

\section{The Good News $\ldots$}

Ketan Desai has accepted a position in the Classic \AIPS\ group.  He
will soon move to Charlottesville and will concentrate on applying
\AIPS\ to Space \hbox{VLBI}.

The next release of \AIPS\ will be {\tt 15OCT96}, a shift in the
schedule to make releases more convenient for us.

The \RELEASENAME\ release is the second release under a new system
designed to protect NRAO's intellectual property rights, while making
\AIPS\ more readily available to both the astronomy and non-astronomy
communities.  All files are now copyrighted by Associated
Universities, Inc., NRAO's parent corporation, but are made freely
available under the GNU General Public License \hbox{(GPL)}.  This
means that User Agreements are no longer required, that you may obtain
copies via anonymous ftp without contacting Ernie Allen, and that you
may redistribute (and/or modify) the software, under certain
restrictions, if you so choose.  You may {\it not} sell this software;
it remains free to everyone.  Details on this new way to get \AIPS\
appear later in this \Aipsletter.

The \RELEASENAME\ release of Classic \AIPS\ is now available.  It may
be obtained via {\it anonymous} ftp or by contacting Ernie Allen at
any of the addresses given in the masthead.  281 copies of the
\OLDNAME\ release were given out electronically (156 source only and
74 binary over 8 operating systems) or on magnetic tape (25 8mm, 25
4mm, 1 QIC, and {\it no} 9-track).  122 of the 258 were of the full
binary release.  Of the 206 non-NRAO sites, 75 have registered with
NRAO to help us and to receive assistance with \OLDNAME\ if needed.
They (and some unregistered sites that used order forms) have
indicated their plans to run \AIPS\ on 174 SUN OS 4, 168 SUN Solaris,
48 PC Linux, 39 DEC Alpha, 27 HP-UX, 21 SGI Irix, 13 IBM AIX, 4 DEC
Ultrix, 2 PC LinuxElf, 2 SUN OS 3, and 1 Convex computers. A total of
499, which would have been larger if all sites actually using \AIPS\
had registered.

\section{$\ldots$ and the Bad}

The use of Sun OS 4.1.{\it x} is being phased out at the NRAO in favor
of the Solaris operating system, currently at Solaris 2.4 (also called
SunOS 5.4).  This means that the \OLDNAME\ version was the
last to be tested extensively under the old Sun Berkeley-based
operating system.  We will keep one or more computers on the old
system as long as we can and we do not anticipate major problems
anytime soon, but it is inevitable that the quality of our support for
the old OS will diminish with time.

\section{Improvements for Users in 15JAN96}

\subsection{Using \AIPS}

\subsubsection{GNU readline}

     One of the benefits of using the GNU General Public License on
\AIPS\ is that we are free to include and use other GNU-licensed
packages.  The first of these is the GNU {\tt readline} library which
provides the user-input interface for {\tt AIPS} under Unix beginning
with the {\tt 15JAN96} release. The GNU readline library will be
shipped and built with \hbox{\AIPS}.  It gives the user the ability to
use the cursor-arrow keys, as well as various ``control'' and
``escape'' key sequences, to recall previously-entered commands, to
edit the current command line (without having to back-space and
re-type the entire line), to search the command history for
previously-executed commands, to define customized key bindings for
executing commands and macros, and much more.  The full information
may be obtained with the command {\tt man readline} from the system
command line (not inside \hbox{{\tt AIPS}}).  ({\tt \$SYSUNIX} must be
in your {\tt \$MANPATH} for this to work.)  There is even ``tab
completion'' based on the list of \AIPS\ help files and on context.
At any point, when typing a symbol, you may hit the {\tt TAB} key.
The symbol name will be completed if it is unique or the screen will
flash (or the bell sound) if it is not.  A second hit on the {\tt TAB}
key will produce a list of the possible completions. Since a task name
cannot be the first symbol on a line, tasks are included in the
possible completions only after some other symbol appears on the line.

     The default key bindings should be very familiar to users of {\tt
emacs} and/or the bash shell; many of them should also be recognizable
to users of the Korn and tcsh shells.  Hard-core {\tt vi} users can
put {\tt AIPS} into ``{\tt vi}-mode'' and use {\tt vi}-like key
bindings instead.  (The basic {\tt emacs}-like key bindings are
outlined in Chapter 2 of the \Cookbook.)  Your command-line history is
automatically saved between sessions, unique to both the user number
and the ``\AIPS\ number'' of the session, and then recovered at the
next {\tt AIPS} startup.

\subsubsection{Guest image catalogs}

One of the more powerful aspects of \AIPS\ is the ability to compute
on one or more compute servers, but still get one's displays
(messages, graphics, TV) on the X-Windows display of the computer at
which the user is sitting.  Previously, this capability was available
only to users within a local area network and only between computers
of a similar architecture, \ie\ only if the computers are at the same
\AIPS\ ``site.''  (In Charlottesville, for example, we have two such
sites, one for big-endian (newtwork byte order) machines like Suns and
IBMs and the other for little-endian machines like PCs and DEC
Alphas.)  For \RELEASENAME\  we have added the capability of assigning
``guest'' image catalogs on compute servers to \AIPS\ computers not at
the same site.  The assignment is only for the duration of the {\tt
AIPS} session and can be a bit confusing.  When all computers which
display on the user's workstation are within the same ``site,'' there
is a single image catalog file for that workstation and all computers
are aware of the state of the display.  A guest image catalog is a
different file on the server which means that the local machine and
the server will have different ideas about the state of the display.
So long as only one computer at a time uses the display, everything
will behave as usual. This slight complexity is more than justified by
the ability to do your normal displays from a compute server of
another architecture or a remote site.  Previously, a remote user had
to run {\tt XAS} and friends on the server with the {\tt DISPLAY} set
to his/her remote machine.  This prevented anyone else, including the
person at the console, from using \AIPS' displays on the server.

\subsubsection{Remote gripes}

The \AIPS\ Gripe System has fallen into disuse in part because the
mechanism of harvesting the gripes and forwarding them to the
programmers collapsed.  In an attempt to improve matters and to allow
non-NRAO sites to participate in the Gripe System, the {\tt GRIPE} and
{\tt GRDROP} verbs were changed to e-mail copies of the gripe to a
number of system and individual addresses.  We hope that this will
allow serious problems to be addressed immediately and to restore some
responsiveness to the whole System.  Non-NRAO sites never forwarded
the {\tt GRIPE} entries to us and our gripe harvesting only included
NRAO computers.  With e-mail, our non-NRAO users may also complain.

\subsubsection{Other \POPS\ enhancements}

The {\tt COMPRESS} pseudoverb has (finally) been written for the
\AIPS\ version of \hbox{\POPS}.  It saves all user procedures and
adverb values, loads in an up-to-date ``virgin'' \POPS\ vocabulary,
and then recompiles all of the saved procedures and adverb values.  It
is surprisingly fast and removes the need for the {\tt NEWPARMS} {\tt
RUN} file.  To assist in converting user numbers between decimal and
the extended hexadecimal (base 36) used in \AIPS, two new verbs {\tt
EHEX} and {\tt REHEX} were written.  They do the same things as the
command-line procedures of the same names.  Finally, the first batch
queue is now allowed to run any task.

\subsection{\Cookbook}

The \AIPS\ \Cookbook\ was revised for this release.  The most
important change was the development of an Index capability which has
been applied to all present chapters and which will be kept current as
chapters are revised.  A new chapter was written on processing
single-dish data in \hbox{\AIPS}.  The old chapters on analysis,
exiting, problem solving, advanced topics (\POPS, remote use,
programming) and file sizes were all revised and modernized.  See the
separate article in this \Aipsletter\ for details.

\subsection{$UV$ data processing}

\subsubsection{Polynomial bandpasses}

A new task called {\tt CPASS} has been written to fit polynomials to
the bandpass calibration data.  This takes advantage of the
correlation between nearby channels in their calibration to produce
solutions with better signal-to-noise ratios than are possible when
each channel is treated separately (as in the task \hbox{{\tt
BPASS}}).  Both {\tt CPASS} and {\tt BPASS} write their solutions into
{\tt BP} tables which are applied to the data by numerous tasks under
control of the {\tt DOBAND} and {\tt BPVER} adverbs.  The application
software determines the type of bandpass from a keyword in the {\tt
BP} table header and does the right form of correction without
intervention by the user.  In addition to improvements in the
signal-to-noise, the new form of bandpass solution is easier to
correct for frequency shifts arising from antenna-based fringe
rotation in the VLBA correlator.  This is important for high-frequency
VLBA data where such shifts may be more noticeable.  This is the first
release of {\tt CPASS} and further improvements will be made as more
experience is gained with this method of bandpass removal. This task
complements {\tt BPASS} and does not replace it.

\subsubsection{Other new tasks}

{\tt FIXWT} is a new task that makes a copy of a data set with weights
derived from estimates of the standard deviation of amplitudes in the
data.  The resulting weights should be a better approximation of the
inverse variance weights than those given by most input sources.

{\tt SNEDT} is a new task to do interactive editing of {\tt SN} and
{\tt CL} tables in a style similar to that used by \hbox{{\tt IBLED}}.
Up to 5 antennas may be displayed at a time with the central one being
edited.  Data may be deleted or replaced with interpolated values
by a variety of methods.

{\tt OMFIT} is a new task submitted by Ketan Desai.  It is similar to
{\tt UVFIT} with the following advantages: (1) it self-calibrates the
\uv\ data as it fits models; (2) it uses singular-value-decomposition
to determine parameters better; (3) it employs Levenberg-Marquardt
non-linear convergence methods; and (4) it will be able to solve for
multiple self-calibration models (one for each model component).  For
further information contact Ketan at {\tt kdesai@nrao.edu}.

\subsubsection{Miscellaneous \uv\ task improvements}

%\vspace{-10pt}
\begin{description}
\myitem{VPLOT} Enhanced to perform flagging on data outside of a
    user-specified range around the local mean, to plot this range, to
    do scalar as well as vector averaging, to plot real and imaginary
    parts of the visibilities after averaging, and to run
    significantly faster.
\myitem{SPLIT} Corrected ``feature'' which caused {\tt SPLIT} to write
    multi-source output files when the source table had multiple
    qualifiers for the source.
\myitem{UVCOP} Changed the limit on the number of sources from 500 to
    16384, added a test on overflow of that limit, and removed a low
    limit on the product of the number of channels and IFs.  Changed
    to apply selection criteria while copying {\tt PC} tables.
\mylitem{FQ selection} Changed data selection so that an {\tt FQ}
    table with only one entry is always selected.  Previously, that
    single entry had to have {\tt FQ} number one.
\myitem{UVFIT} Improved the estimate of parameters needed by the
    fitting routines.  Previously, it sometimes did not converge or
    explore an adequate region of parameter space.
\myitem{FILLM} Increased the range allowed for Q band.  Corrected the
    reading of time for data originally recorded before 1988, and to
    avoid writing multiple entries in the {\tt CL} and {\tt TY} tables
    for the same time.
\myitem{MK3IN} Raised buffer sizes to handle large problems and
    modified to allow AC lag functions starting at lag one rather than
    lag zero.
\myitem{IBLED} Improved to avoid plotting the data and moving the TV
    cursor unnecessarily.
\end{description}

\subsection{Other VLBI-related programs}

\subsubsection{Data Loading --- {\tt FITLD}}

Several enhancements have been made to {\tt FITLD} in this release,
including: (i) the ability to select data by frequency and/or
bandwidth; (ii) the implementation of a correction for floating point
saturation in the VLBA correlator; and (iii) improvements in the
removal of total power FFT artifacts.  Fine tuning of the FFT factors
at the correlator has significantly reduced the artifacts and {\tt
FITLD} applies this correction only when necessary.  Floating-point
saturation has been shown to occur during autocorrelation accumulation
at the correlator, affecting the overall scaling of self-spectra.  The
factor depends on the polarization mode at the correlator and {\tt
FITLD} now scales the autocorrelation spectra to remove this effect.
The existing cross-correlation scale factor within {\tt FITLD} has
been adjusted by as it was previously based on autocorrelation data
which had not been corrected for floating-point saturation.

\subsubsection{Data editing ---- {\tt UVFLG}, {\tt VPLOT}}

Two enhancements have been made in this release to improve automated
editing of uv-data within \hbox{\AIPS}.  The task {\tt VPLOT} now
allows clipping about a running mean in amplitude and writes the
editing information to a flag table.  {\tt UVFLG} has also been
upgraded to flag VLBI data below a specified elevation limit.  This
editing information is either appended to a flag table or applied to
single source data files directly.

\subsubsection{Polarization calibration --- {\tt POLSN}, {\tt SPCAL}}

New features have been added for VLBI polarization calibration. These
include: (i) an upgrade of {\tt POLSN} to allow multiple solutions for
the R-L residual delay and phase offsets; and (ii) an upgrade of the
spectral-line polarization calibration task {\tt SPCAL} to allow for
linearly-polarized spectral-line calibrators.  The {\tt POLSN} changes
complete the new polarization calibration software contributed by Kari
Lepannen and discussed in the previous \Aipsletter.

\subsection{Miscellaneous imaging task improvements}

\begin{description}
\myitem{IMAGR} Corrected to make only a few scratch files, to apply
    taper when doing natural weight, to load the current spectral
    channel to the TV rather than channel 1, to read in circular
    windows correctly, and to use the maximum $u$ baseline over all
    sub-arrays.
\myitem{Clean} Corrected errors related to Cleaning with the first
    field empty of components.
\myitem{FRMAP} Changed to work for the VLA system of coordinates as
    well as \hbox{VLBI}.  Fringe-rate imaging has been found to be
    useful for VLA observations of methanol masers observed in the A
    configuration.
\myitem{IM2UV} Added options to shift the phase center, control the
    peak amplitude, set the central weight, and taper the weights.
\myitem{CONVL} Added an option to do a brute-force deconvolution of a
    Gaussian from an image.
\myitem{FFT} Corrected to do the FFT on all planes of the input.
    Previously it made an output cube, but filled only the first
    plane.
\myitem{MCUBE} Corrected error causing it to fail when it created a
    {\tt SEQ.NUM} axis under Fortran 77.
\myitem{UTESS} Corrected errors causing it to fail under Solaris, to
    abort when {\tt NOISE = 0}, to leave read status set, and to leave
    a history file empty.
\end{description}

\subsection{Image analysis and display}

\subsubsection{Image fitting}

     {\tt IMFIT} and {\tt JMFIT} were changed to use the actual noise
in the image together with theory from Condon to estimate the
uncertainties in the fit parameters.  The previous estimates are also
given and are surprisingly similar despite their previous bad
reputation.  The computation of the actual noise, \ie\ the finding of
the width of the histogram of intensities around the background level,
can fail if the histogram used is too fine, too coarse, or centered
around the wrong intensities.  To allow the user to set the noise
estimate, a new verb called {\tt ACTNOISE} was created to place the
noise estimate as a keyword in the image header.  If that keyword is
present (and positive), {\tt IMFIT}, {\tt JMFIT}, and {\tt SAD} will
use it rather than fitting for it.

     Fitting tasks do the Gaussian fits in pixels and then must
convert the results to appropriate celestial angles.  {\tt IMFIT} and
{\tt JMFIT} did not do this correctly before the current release and
{\tt SAD} got the deconvolved sizes and position angles wrong although
it did a better job before deconvolution.  Now full non-linear
coordinate routines are used throughout to account for rotation,
non-square pixels, and non-linearities in the projections of the sky.

\subsubsection{Miscellaneous analysis and display improvements}

\begin{description}
\myitem{PATGN} Added option to make an image of a single-dish beam
    pattern with the VLA beam of {\tt PBCOR} as the default.
\myitem{IMMOD} Corrected the units and scaling of brightness which
    were confusing at best.
\myitem{PCNTR} Corrected the display of polarization vectors and the
    Clean beam.  Coordinate rotation, non-square pixels, and
    non-linear coordinate projections were not considered previously!
\myitem{KNTR} Improved the drawing of dashed contours, corrected the
    beam position angle, and changed the labeling to represent the
    third axis correctly even if it is not velocity.
\myitem{TVRGB} Added the option to write out a full color (24-bit)
    PostScript representation of the final display using a new adverb
    {\tt RGBGAMMA} (set by the {\tt GAMMASET} verb or by the user) to
    control the gamma correction.
\myitem{TVCPS} Added the option to make the background and blanked
    pixels white (transparent) rather than black (in non-inverted
    color displays).
\myitem{COPIES} Added the {\tt COPIES} adverb to {\tt LWPLA}, {\tt
    TVCPS}, and {\tt TVRGB} for direct printing on PostScript
    printers.
\myitem{LWPLA} Changed the representation of grey levels to a full 255
    levels to provide better intensity resolution and to avoid bugs in
    some PostScript programs.
\myitem{SL2PL} Changed the setting of plot ranges to provide better
    control for the user, as is provided by other tasks.
\myitem{XAS} Corrected a bug which caused it to display nothing when
    it should have displayed graphics channels with no image channel.
\end{description}

\subsection{Single-dish data in \AIPS}

     With the writing of a new chapter for the \Cookbook, the area of
single-dish data in \AIPS\ received a considerable boost.  The only
new task for this release is called \hbox{{\tt SDMOD}}.  It adds
Gaussian source components (spatially and, optionally, spectrally) to
single-dish ``\uv'' data sets with random noise while retaining or
ignoring the actual observed data.  The single-dish imaging task {\tt
SDGRD} was enhanced with the addition of circular convolving functions
to the rectangular functions normally used in interferometry.  The
task {\tt OTFUV}, which translates 12m on-the-fly spectral-line data
into \AIPS, was corrected to determine the number of data samples from
the actual record size rather than its contents (which had a round-off
problem) and to allow more scans in a single run.  It was revised to
run on little-endian (byte-swapped) computers (such as DEC Alphas and
PCs) and to create and fill an {\tt AN} (antenna) table.

     Tasks which might be of use with single-dish data were tested
systematically during the writing of the \Cookbook\ chapter.  Most
were found to need at least minor modifications.  In particular, {\tt
INDXR} was changed to function without a source table, to write {\tt
CS} rather than {\tt CL} tables for single-dish data, to use the {\tt
SCAN} random parameter if it is present in the data, and to allow the
user to provide needed information when there is no {\tt AN} table.
{\tt INDXR} had a significant bug which caused it to perform
improperly if used with multiple sub-arrays.  {\tt CSCOR} was changed
to allow the user to provide the antenna longitude and latitude when
the {\tt AN} file is missing.  {\tt POSSM} was changed to recognize
single-dish data, calling it appropriate things, and to use an {\tt
AN} file if present.  The format of {\tt POSSM}'s output text file was
improved and errors in the computation of the velocities and
frequencies in that table were corrected.  {\tt DBCON} was altered to
stop it from claiming to change single-dish phases; {\tt UVPLT} was
changed to call single-dish and autocorrelator data more sensible
things; and {\tt IBLED} was revised to average single-dish and
autocorrelator data properly and to compute ``decorrelations'' for
them.

\section{Improvements Primarily for Programmers in 15JAN96}

\subsection{Changes affecting \AIPS\ Managers}

     \AIPS\ Managers are provided with a few more tools (read
responsibilities) in the \RELEASENAME\ version.  The Manager file {\tt
\$NET0/DADEVS.LIST} indicates which disks are attached to which host,
providing a list of disk resources which may be attached to any {\tt
AIPS} session.  Managers may now separate groups of computers on the
local area net into different \AIPS\ ``sites,''  maintaining separate
{\tt DADEVS.LIST.\$SITE} files.  You may have to do this because the
machines differ in architecture (\ie\ big- versus little-endian) or
you may choose to do this for local management reasons.  To allow
computers in a particular ``site'' to be used as compute servers for
other \AIPS\ computers not in that site, you may create extra {\tt ID}
and {\tt IC} (TV device and catalog) files for use by such ``guests.''
The number of extra files you create determines the maximum number of
simultaneous guests a site can entertain.  A guest computer runs the
display servers ({\tt XAS}, {\tt TEKSRV}, {\tt MSGSRV}) itself rather
than hogging the single copies of the servers which are allowed to run
on the compute server.  Without this guest capability, remote users of
compute servers are forced either to do without interactive displays
or to lock local users out of the displays.

     A new Manager file {\tt \$NET0/TPHOSTS} has been created.  It
lists those computers allowed to connect to the {\tt TPMON} tape (and
pseudo-tape disk) servers.  All others will be rejected.  This closes
a very serious breach of computer security.  Computers may be listed
individually in this file or with domain-level wildcarding (\eg\ {\tt
*.cv.nrao.edu} and {\tt 192.33.115.*}).

     The {\tt 15JUL94} \Aipsletter\ contained a discussion of the
current swap-space requirements for \hbox{\AIPS}.  These requirements
are excessive due to coding practises which we expect to improve (see
below).  However, at present, the use of shared libraries raises the
swap-space requirements of many tasks by 10 or 20 Mbytes over their
requirements when statically linked.  Therefore, the ability to use
shared \AIPS\ libraries has been removed.

\subsection{Programming considerations}

\subsubsection{Object-based programming and TV menus}

     The \AIPS\ object-based programming package received several
improvements and the beginnings of a new class for this release.  The
new class is an edit class intended to provide interactive editing
capabilities for tables and \uv\ data.  The table editing, for {\tt
SN} and {\tt CL} tables anyway, was developed in the {\tt QEDIUTIL}
library and released in the task called \hbox{{\tt SNEDT}}.  Remaining
developments were suspended.  The table class was given a new public
subroutine, {\tt TABEXI}, to test for the existence of a table.  The
inputs class was given a new public subroutine, {\tt AV2INT}, to start
up interactive tasks. The TV device class was given new capabilities
to (1) return visible-corner pixel numbers, (2) interact with TV
cursor in the usual way with the calling routine to handle results,
and (3) read and change (write) zoom parameters.

      Bugs corrected in the OOP package included finding and using the
frequency reference pixel in the \uv\ utility library and saving the
actual restoring beam parameters and Cleaned fluxes with each Clean
image.

     The handling of interactive menus on the TV was generalized.  The
basic menu manager ({\tt TVMENU}) has a new call sequence, taking in a
list of logicals to say whether the menu is left on after each choice
and returning the selection as a string rather than as column and row
numbers.  {\tt TVMENU} now also handles the real-time help in a
string-based manner.  The new {\tt HLP*.HLP} format is a {\tt C--------}
line separating each section, with the case-sensitive string naming
the section left justified in the next line.  These changes make it
much easier to change menus either for new options or even at run time
depending on the user's data and specifications.

\subsubsection{Common errors}

\begin{description}
\myitem{GTPARM} The number of adverb values for a task must be
    correct in the call to \hbox{{\tt GTPARM}}.  Too small a number
    causes some adverbs not to be set, while too large a number causes
    Solaris systems (at least) to unset fundamental disk I/O
    parameters.
\myitem{Reals} The format of single-precision floats ({\tt REAL}s) and
    double-precision floats ({\tt DOUBLE PRECISION}s) is not the same,
    even in the first 32 bits.  In IEEE, used by most modern
    computers, the exponents have different numbers of bits.  If a
    call to a subroutine uses the wrong kind of float, the best thing
    that can happen is an abort.  On most machines, wrong answers are
    produced instead.
\mylitem{Scratch files} \AIPS\ can keep track of only a finite number
    of scratch files in any one task.  {\tt SCREAT} and the {\tt
    DFIL.INC} include file were modified to know the limits and
    prevent overflows.  Programmers should check for the pre-existence
    of a needed scratch file rather than blindly calling {\tt SCREAT}
    on every iteration.
\myitem{MAXCIF} \AIPS\ provides two basic parameters, {\tt MAXCHA} and
    {\tt MAXIF} to specify the maximum number of spectral channels and
    IFs supported.  These are currently 4100 and 28, respectively.
    \AIPS\ also provides a much-overlooked parameter, {\tt MAXCIF}, to
    specify the maximum supported product of the numbers of channels
    and of IFs.  The current value of this parameter is 8192,
    one-fourteenth the product of {\tt MAXCHA} and \hbox{{\tt MAXIF}}.
    This lower limit represents the limits in correlators which can
    have either a lot of IFs or a lot of channels, but not both.
    Many programmers have opted for code clarity and simplicity and
    used arrays dimensioned {\tt (MAXCHA , \hbox{MAXIF})}.  Since this
    causes significant increases in the swap-space requirements and
    page-fault rates for many \AIPS\ tasks, we will have to change the
    code to use a more complex, but enormously more parsimonious,
    addressing scheme.
\myitem{Tables} Programmers of generalized table routines should be
    aware that properly constructed tables may well have {\tt MAXCIF}
    values in a row or even in a single column of a row.  A number of
    table routines had to have their buffers increased to account for
    recent bandpass tables.
\end{description}

\subsubsection{Miscellaneous matters}

\begin{description}
\myitem{SYSTYP} This four-character parameter in {\tt DDCH.INC} has
    been changed to differentiate between computers rather than just
    between {\tt UNIX} and \hbox{{\tt VMS}}.  The value is set in {\tt
    ZDCHI2.FOR} of which there are 17 non-generic versions in
    \hbox{\AIPS}.  Values like {\tt SUN}, {\tt IBM}, {\tt DEC}, {\tt
    ULTR}, and {\tt SOL} may now be tested in generic Z routines (only
    please) to avoid having multiple versions of nearly identical Z
    routines.
\myitem{ZDIE} This new Z routine is called by {\tt DIETSK} and the
    abort handlers to delete the {\tt /tmp/{\it TASKn\/}.{\it pid}}
    files created at task startup and used to test for task activity.
    Occasionally, a left-over one of these files caused problems when
    the {\it pid} matched some current process.  {\tt ZDIE} also
    deletes the guest image catalog lock file, if any, for programs
    named \hbox{{\tt AIPS}}.
\myitem{ZWHOMI} This {\tt AIPS} startup routine was changed to find
    the right number to assign to remote graphics rather than
    depending on the {\tt SP} file to be right.  It was also changed
    to assign guest image catalogs if needed and available.
\myitem{ZPRMPT} This prompted, interactive read routine was changed to
    enable all of the capabilities of GNU {\tt readline}.  New Z
    routines {\tt ZGRLHI} and {\tt ZGRLTC} were written to perform the
    operations.  The chief difficulty was in masking and re-enabling
    different interrupts on different systems.
\end{description}

\section{AIPS Publications and the World-Wide Web}

     The {\it World-Wide Web\/} (WWW) is a method for sending and
receiving hypertext over the Internet network and has been made easy
to use by clients such as {\it NCSA Mosaic, Netscape, Arena,\/} and
{\it Lynx\/}.  NRAO is among the many institutions which now offer
informative Web pages and networks of additional information.  The
NRAO ``home'' page is at the Universal Resource Locator (URL) address
\begin{center}
\vskip -10pt
{\tt http://www.nrao.edu/}
\vskip -10pt
\end{center}
The \AIPS\ group home page may be found from the NRAO home page or
addressed directly at URL
\begin{center}
\vskip -10pt
{\tt http://www.cv.nrao.edu/aips/}
\vskip -10pt
\end{center}
This page points at basic information, news items about \AIPS, the
PostScript text of recent \AIPSLETTER s, patch information for all
releases after {\tt 15JAN91}, the latest \AIPS\ benchmark data from
various computer systems, copies of {\tt CHANGE.DOC} for every release
since {\tt 15JAN90}, {\it all} relevant \AIPS\ Memos, {\it every}
chapter of the \Cookbook, and all recent quarterly reports to the
\hbox{NSF}.  There is even a tool to let you browse the {\tt 15OCT96}
versions of all help/explain files.  We recommend that you check this
URL occasionally since it changes when new software patches, revised
\Cookbook\ chapters, and new \AIPS\ Memos are released.

There are two new \AIPS\ Memos with this release:
\begin{center}
\vspace{-6pt}
\begin{tabular}{ccl}
\hline
Memo  &        Date   & Title and author  \\
\hline\hline
  90 & 95/08/15 & Delay decorrelation corrections for VLBA data
                    within \AIPS \\
     &          & \qquad A. J. Kemball, NRAO \\
  91 & 95/12/12 & \AIPS\ Benchmarks on the Sparc Ultra 1 and 2 \\
     &          & \qquad Patrick P. Murphy, NRAO \\
\hline
\end{tabular}
\end{center}
\vspace{-6pt}
These memos are available through the WWW pages.  Since some Memos
are not available electronically and others do not yet have computer
readable figures, you may wish to write for a paper copy of these.  To
do so, use an \AIPS\ order form or e-mail your request to {\tt
aipsmail@nrao.edu}.  If you cannot use the Web, you can still use
\ftp\ to retrieve the Memos, \Cookbook\ chapters, etc.:
\begin{description}
\vspace{-10pt}
\item{ 1.} {\tt ftp aips.nrao.edu}  (currently on {\tt 192.33.115.103})
\item{ 2.} Login under user name anonymous and use your e-mail address
           as a password ({\it yourname}{\tt @} will do; ftp will
           fill in the machine you are using).
\item{ 3.} {\tt cd pub/aips/TEXT/PUBL}
\item{ 4.} {\tt get AAAREADME} and read it for lots more information.
\item{ 5.} {\tt get AIPSMEMO.LIST} for a full list of \AIPS\ Memos.
\end{description}

\section{Patch Distribution}

Since \AIPS\ is now released only semi-annually, we make selected,
important bug fixes and improvements available via {\it anonymous}
\ftp\ on the NRAO cpu {\tt aips.nrao.edu} (currently located on {\tt
baboon} which is {\tt 192.33.115.103}).  Documentation about patches
to a release is placed in the anonymous-ftp area {\tt pub/aips/}{\it
release-name} and the code is placed in suitable subdirectories below
this.  (The patches and their documentation are also available on-line
via the World-Wide Web.)  Reports of significant bugs in \OLDNAME\
\AIPS\ were not numerous, so some of the patches were actually for new
or improved code rather than bug fixes.  The documentation file {\tt
pub/aips/\OLDNAME/README.\OLDNAME} mentions the following items:
\begin{description}
\vspace{-8pt}
\myitem{PCNTR} Corrected the plotting of polarization lines and Clean
   beams to account for rotation, non-square pixels, and coordinate
   non-linearity.  Also affected Clean beam plots in \hbox{{\tt KNTR}}.
\myitem{TVRGB} Added a new option to write out the final display as a
   24-bit color PostScript file.
\myitem{OTFUV} Corrected the computation of the number of data records
   to match that done on-line.  Under some circumstances, the count
   could be off by one with nasty consequences.  Also corrected the
   code to work on byte-swapped computers (\eg\ DEC Alphas, PCs).
\myitem{SDGRD} Corrected the gridding routines used for rather large
   images to support the new circular convolving functions.
\myitem{TPMON} Added code to require authentication before accepting a
   connection from some remote computer.  Previously, any computer
   could use {\tt TPMON}, a gross security hole.
\myitem{XAS} Corrected the {\tt Makefile} for an error affecting
   Solaris systems only.
\myitem{SYSETUP} Corrected an error causing it not to copy a new {\tt
   IC} (image catalog) file from the {\tt TEMPLATE} area during system
   installation.
\myitem{TEKSRV} Removed an {\tt ioctl} call which failed under OSF/1
   on DEC Alpha AXP computers only.
\end{description}
\vspace{-8pt}
Note that we do not revise the original release tapes or \tar\ files
for patches.  No matter when you received your \OLDNAME\ ``tape,'' you
must fetch and install these patches if you require them.  Information
on patches and how to fetch and apply them is also available through
the World-Wide Web pages for \hbox{\AIPS}.  As bugs in \RELEASENAME\
are found, the patches will be placed in the {\tt ftp}/Web area for
\hbox{{\RELEASENAME}}.  No matter when you receive your \RELEASENAME\
``tape,'' you must fetch and install these patches if you require
them.

\vfill
\eject

\section{Obtaining \AIPS\ under the GNU General Public License}

We have decided to make \AIPS\ available via anonymous ftp under the
GNU General Public License, the meaning of which was spelled out in
the {\tt 15JUL95} \hbox{\Aipsletter}.  The installation of \AIPS\ will
now proceed something like the following example:

We assume that you have created an account for \AIPS\ with a root
directory called \hbox{{\tt /AIPS}}.  Then do
\vskip -10pt
\begin{verbatim}
home_prompt<601> cd /AIPS
home_prompt<602> ftp aips.nrao.edu
Connected to baboon.cv.nrao.edu.
220 baboon FTP server (Version wu-2.4(1) Fri Apr 15 12:08:14 EDT 1994) ready.
Name (aips.nrao.cv:egreisen): anonymous
331 Guest login ok, send your complete e-mail address as password.
Password: egreisen@nrao.edu
230- This is the National Radio Astronomy Observatory ftp server for the
230- AIPS, AIPS++, and FIRST projects.  Your access from primate.cv.nrao.edu
230- has been logged, and all file transfers will be recorded.  If you do not
230- like this, type "quit" now.  Counting you there are 1 (max 20) ftp users.
230-
230- Current time in Charlottesville, Virginia is Mon Jan 18 10:18:46 1996.
230-
230-
230-Please read the file README
230-  it was last modified on Wed Mar  8 14:01:24 1995 - 316 days ago
230 Guest login ok, access restrictions apply.
ftp> cd aips/15JAN96
250 CWD command successful.
ftp> get README
200 PORT command successful.
150 Opening ASCII mode data connection for README (nnnn bytes).
226 Transfer complete.
local: README remote: README
nnnn bytes received in T seconds (5 Kbytes/s)
ftp> get INSTALL.PS
200 PORT command successful.
150 Opening ASCII mode data connection for INSTALL.PS (mmmmm bytes).
226 Transfer complete.
local: INSTALL.PS remote: INSTALL.PS
mmmmm bytes received in TT seconds (5 Kbytes/s)
ftp> binary
200 Type set to I.
ftp> hash
Hash mark printing on (8192 bytes/hash mark).
ftp> get 15JAN96.tar.gz
200 PORT command successful.
150 Opening ASCII mode data connection for 15JAN96.tar.gz ( bytes).
226 Transfer complete.
local: 15JAN96.tar.gz remote: 15JAN96.tar.gz
mmmmm bytes received in TTTTT seconds (5 Kbytes/s)
ftp> quit
221 Goodbye.
\end{verbatim}
\vskip -10pt
You should type in your full e-mail address (not {\tt
egreisen@nrao.edu}) at the password prompt.  The {\tt hash} command is
optional and may be inappropriate in some versions of ftp; it does
give a useful indication of progress in the long {\tt get} in most
versions.  If you do not have the GNU file compression code ({\tt
gzip}), you should {\tt get 15JAN96.tar}.  Out ftp server will
uncompress the gzipped file automatically.  (It would be around 3
times faster if you had {\tt gzip}.)

At this point you should read the {\tt README} file to review the
latest changes, if any, affecting your installation of \hbox{\AIPS}.
You should print out the {\tt INSTALL.PS} PostScript document and
read at least its overview section.  To create the rest of the {\tt
/AIPS} directory tree, and fill it with the \AIPS\ source code
\vskip -10pt
\begin{center}
\begin{tabular}{l}
   {\tt cd /AIPS} \\
   {\tt zcat 15JAN96.tar.gz | tar xvf -} \\
\multicolumn{1}{c}{or} \\
   {\tt tar xvf 15JAN96.tar}
\end{tabular}
\end{center}
\vskip -10pt
depending on whether you fetched the source file with compression or
without.

If you want to get the binary version(s) of \AIPS, you should read the
{\tt README} file for further directions.  They will tell you about a
procedure to run from the {\tt INSTEP1} installation procedure and/or
at a later time which will initiate a second ftp session to fetch the
appropriate contents from the {\tt \$LOAD}, {\tt \$LIBR}, {\tt MEMORY},
{\tt BIN}, and {\tt DA00} areas.  You may run this procedure more than
once if you need to fetch binaries for more than one architecture.
You may also have to run portions of this procedure ``by hand'' if you
encounter reliability problems with the network.

You will then have to run the {\tt INSTEP1} procedure, as usual, to
tell your \AIPS\ about your computer environment.  A new part of {\tt
INSTEP1} is its offer to assist you in ``registering'' your copy of
\hbox{\AIPS}.  It will help you complete a registration form and will
even e-mail it to us if you want.  When we get a registration request,
we will enter your information in our user data base and reply with
instructions and registration numeric ``keys'' which you may use to
complete the registration process (using {\tt SETPAR} and \hbox{{\tt
SETSP}}).  This may seem cumbersome and onerous, but we have two
reasons for doing this.  The first reason is to provide us with
information about the use of \hbox{\AIPS}.  This information is useful
to us to justify, to management and funding agencies, our existence
and our need for more employees or computers or disk or whatever.  The
second reason is a concern about excessive demands on our employees'
limited time to provide assistance to sites in installing and running
the software.  If an excessive demand should arise, information from
the registration process will allow us to set priorities among the
different sites.  This registration is entirely optional.  We will use
transaction logging in ftp and, hence, know which sites have fetched
the code.  We will assume that sites which do not register are not
``serious'' in their use of \AIPS\ and we will be unable to provide
any assistance to unregistered sites (except, of course, to help them
register).  This means that unregistered sites will receive no
assistance in installing \AIPS\ and users at those sites will receive
no assistance in using \AIPS, including no printed literature.  All
serious sites are strongly encouraged to register since registration
statistics are used to determine the level of effort that NRAO can
provide for the Classic \AIPS\ project.  The statistics are also used
to obtain assistance from computer vendors.
%  All serious sites are strongly encouraged to register,
%even if they do not need assistance during installation, since
%registration statistics are used to determine the level of effort that
%NRAO can provide for the Classic \AIPS\ project.

As of the {\tt 15JUL95} release, \AIPS\ is available under the GNU
General Public License.  The short statement of this license is in
every \AIPS\ file, is available on-line via {\tt HELP GNU}, and was
given (once) in the {\tt 15JUL95} \hbox{\Aipsletter}.  You should have
received the GNU General Public License from several sources, most
notably GNU themselves with their {\tt emacs}, {\tt gcc}, and numerous
other software products.  Since \AIPS\ now applies that license to
itself --- and intends to import and use other GNU-licensed routines
--- we also include the full license text on-line via {\tt EXPLAIN
GNU} and, once, in the {\tt 15JUL95} \hbox{\Aipsletter}.

\section{\Cookbook\ Update Continues}

     With the exception of the Glossary, the \AIPS\ \Cookbook\ has
been completely updated.  We have done this one chapter at a time and
have made each chapter available via the World-Wide Web as soon as it
was ready.  After the major rewrites, chapters have been revised in
less major ways to account for other changes in the \Cookbook\ or in
the latest \AIPS\ releases.  The WWW page on the \Cookbook\ contains a
revision history for the chapters and, within the \Cookbook, the
latest revision date for each chapter is given at the top of each
page.  This revision information is provided to encourage users to
fetch and/or order only those chapters which they need and which have
had significant revisions.  For details of the Web, see the
publications article in this \Aipsletter.  The chapters are
%\vspace{-8pt}
\vfill\eject
\begin{itemize}
\item\ 1 --- {\it Introduction} --- Added new sections giving a
   project summary and a diagram of the structure of \hbox{\AIPS}.
\item\ 2 --- {\it Starting Up \AIPS} ---  Changed to describe
   workstation use, \AIPS\ in networked environments, and managing the
   TV server \hbox{{\tt XAS}}.
\item\ 3 --- {\it Basic \AIPS\ Utilities} --- Updated information about
   history files and disk allocation, added {\tt ABOUT} and {\tt
   APROPOS} to the help section, moved and updated tape mounting, and
   added a discussion on external disk files (FITS, text, $\ldots$).
\item\ 4 --- {\it Calibrating Interferometer Data} --- With much help
   from Rick Perley and Alan Bridle, rearranged and corrected
   everything, adding a substantial discussion of when and how to edit
   and bringing the description of {\tt TVFLG} up to date including a
   picture.
\item\ 5 --- {\it Making Images from Interferometer Data} --- Rewrote
   old chapters 5 and 6 to describe the new {\tt IMAGR} task rather
   than several old imaging tasks, to modernize the self-calibration
   description, and to replace the discussion of {\tt    IBLED} with
   one describing the current program.
\item\ 6 --- {\it Displaying Your Data} --- Rewrote old chapters 7
   and 8 to make a coherent, current, and complete description of
   printing, plotting, TV, and graphical data displays.
\item\ 7 --- {\it Analyzing Images} --- Revised old chapter to mention
   new image fitting, filtering, and other image-modifying tasks.
\item\ 8 --- {\it Spectral-Line Software} --- Rewrote old chapter 10,
   replacing old outline format with a more coherent (and wordy)
   description of line analysis, emphasizing continuum subtraction and
   other more modern imaging techniques.
\item\ 9 --- {\it Reducing VLBI Data in \AIPS} --- Rewrote the old
   chapter to describe the nearly completely new software now
   available for the \hbox{VLBA}.  This chapter will remain under
   active development for some time.
\item\ 10 --- {\it Single-dish Data in \AIPS} --- Wrote a new chapter
   to describe the reading, editing, calibrating, imaging, and
   analyzing of single-dish data in \hbox{\AIPS}.
\item\ 11 --- {\it Exiting from, and Solving Problems in, \AIPS} ---
   Combined two old chapters to describe Gripes, exiting with backups
   and deletions, and solutions for problems found on modern computer
   systems (rather than Vaxes and Convexes).
\item\ 12 --- {\it \AIPS\ for the More Sophisticated User} ---
   Modernized the chapter, reorganizing the description of \POPS,
   including the list of \POPS\ symbols (no longer in Chapter 13), and
   broadening the description of ``remote'' use of \hbox{\AIPS}.
\item\ 13 --- {\it Current \AIPS\ Software} --- Replaced old lists with
   new ones produced for the {\tt ABOUT} verb.  Now current to the
   \RELEASENAME\ version.
\item\ A --- {\it Summary of \AIPS\ Continuum UV-data Calibration} ---
   Inserted a new appendix giving an updated version of Glen
   Langston's outline of continuum calibration.
\item\ B --- {\it A Step-by-Step Guide to Spectral-Line Data Analysis
   in \AIPS} --- Inserted a new appendix by Andrea Cox and Daniel
   Puche giving {\it their} outline view of spectral-line data
   reduction in \hbox{\AIPS}.
\item\ Y --- {\it File Sizes} --- Modernized the discussion of file
   sizes and disk and magnetic-tape capacities.
\item\ Z --- {\it System-Dependent \AIPS\ Tips} --- Replaced with whole
   new discussions including color printers, screen copying, film
   recorders, workstation environments.  A method for people to have
   NRAO make slides for them is described.
\item\ I --- {\it Index} --- Created a new index chapter which is kept
   up to date with all other chapters.
\end{itemize}
\vfill\eject

\centerline{\hss\psfig{figure=FIG/AIPSORDER.PS,height=23.3cm}\hss}

\end{document}
