^PY^-
^IOP^IL0600^IS404^IC1000^IJ00700^IT00700^PN^-

B. SYSTEM ENVIRONMENT FOR AIPS UNDER UNIX


1. Introduction

   This section describes the AIPS system environment under UNIX at NRAO.
It is intended as an overview whereas chapter C provides a detailed
description of the installation process.  The NRAO model may not be
appropriate for your computing environment however, the installation
procedure is highly dependent on the environment as described.  It is
recommended that you minimize deviations from the process, especially
if this is your first installation.  The major node of UNIX/AIPS
development at NRAO has occurred under UTS on our Charlottesville IBM
4341.  UTS is Amdahl Corporation's implementation of Bell's Version 7
UNIX.  Amdahl is in the process of upgrading to Bell's System V UNIX
(promised in the first quarter of 1985).  A Masscomp MC-500 with an
implementation of Bell's System III UNIX has served as a secondary test
bed for UNIX/AIPS including the installation procedure.  A third UNIX
system exists at NRAO as an emulator on our VAX/780 running under VMS.
This UNIX emulator was procured from the Dept. of Math Sciences at Rice
University and is called Phoenix.  It has not proved to be particularly
useful as a UNIX/AIPS development tool for a variety of reasons (mostly
lack of disk space), but is purported to be an emulation of 4.1 Berkeley
UNIX.  We also possess a variety of manuals from other flavors of UNIX
including Bell's System V and have ordered the manuals for 4.2 Berkeley.
None of the NRAO UNIX environments have the wealth of peripherals that
NRAO's VMS AIPS is lucky enough to have.  This may or may not change in
the future.  In particular, we have no array processor , no TV display or
printer/plotter so the support for these devices is lacking to say the
least.  Even if we had these devices, the hardware differences that
pervade the UNIX community would make this an almost impossible task.
Nevertheless, you may find the VMS model for supporting these devices
valuable.  The NRAO VMS AIPS peripherals include a VERSATEC printer/
plotter, a TEKTRONIX 4012 graphics terminal, an FPS AP-120B array
processor and a Model 70 IIS TV device.

2. The AIPS account.

   The following is a description of the AIPS account on NRAO computers
running UNIX.

   It's not necessary for the AIPS account to have special priviledges.
In fact, we have gone to great pains to avoid any processes that require
special priviledges.  We have even eliminated the need for a password.
Upon login, a moderately complicated procedure is executed that, among
other things, assigns values to a rather large number of shell variables.
These variables need to be defined in many cases only for the programming
aspects of AIPS (e.g., for intallation and maintenance) but in other cases
they serve to establish the environment for the execution of AIPS (e.g.,
the simulation of VMS logical assignments for devices, etc.).

Username: aips

Password: null

HOME    : /AIPS

PATH    : $PATH:$UNIX (i.e., whatever your normal PATH is plus the value
                       of the shell variable UNIX which is set to
                       $VER/UNIX; this is performed by the login procedure
                       as modified for the purposes of AIPS.  Additional
                       modifications are described under the ILOAD process
                       later)

OS      : UTS         (Unlike HOME and PATH, this is an AIPS specific
                       shell variable which is used to branch to the
                       appropriate commands within the shell scripts
                       provided.  Someday, when there is a standard for
                       UNIX this may not be necessary but don't hold your
                       breath.  We have tried to minimize the use of OS.
                       Again, this assignment is performed by the login
                       procedure as modified for the purposes of AIPS.)

   Throughout this document you will see the string "xxx".  It represents
the name of the top most directory for the version of AIPS that you are
installing.  It must reside just below the home directory of your AIPS
account.  In this way it is possible to maintain multiple versions of
AIPS on your system.  We use the release date of the version of AIPS
involved (e.g., 15JUL84) for the name of this directory.  Although you
are free to choose any other name that you like, we recommend that you
use the same convention in order to facilitate the communication of
bug reports for a specific release.  In any case, this directory must be
created manually by the installer.  Once created, it is the directory
where you should be when down loading the AIPS installation tar tape.
Tar will automatically create the remainder of the AIPS system directory
tree under this release "node".  The ILOAD step of the installation
procedure will also create other directories required by AIPS (if they
don't already exist).  A detailed description of the AIPS directory
structure is included later in this chapter (see section 3).

   The AIPS account default shell can be either the Bourne shell
(sometimes referred to as the "standard shell") or the C-shell.  You will
find that all the NRAO provided shell scripts are written in Bourne shell
syntax.  Since the C-shell is not available everywhere, we must take the
conservative approach and assume that only the Bourne shell exists.
Those of you who prefer the C-shell will find (hopefully) that NRAO's
insistence on Bourne shell programming will not hinder you.  The ILOAD
step of the installation procedure (see chapter C section 4) will prompt
you for information to create two or three files depending on whether the
default shell for the AIPS account is the Bourne shell or the C-shell.

   In the case of either shell, ILOAD creates a file called "SYSPARM."
(yes it ends with a ".") in the directory $HOME/xxx/DOC/TEXT.  This file
is used by the stand alone service program called FILAI2 that creates
and intializes most of the files that are used in the execution of AIPS.
The following is the default "SYSPARM." file which defines an almost
minimal AIPS system:

   1.0        !  1   NO. OF DISK DRIVES
   1.0        !  2   NO. OF TAPE DRIVES
  24.0        !  3   NO. OF LINES PER CRT PAGE
  61.0        !  4   NO. OF LINES PER PRINT PAGE
   0.0        !  5   NO. OF BATCH QUEUES
2112.0        !  6   PLOTTER NO. OF X DOTS PER PAGE
1600.0        !  7   PLOTTER NO. OF Y DOTS PER PAGE
  20.0        !  8   PLOTTER NO. OF X DOTS PER CHARACTER
  25.0        !  9   PLOTTER NO. OF Y DOTS PER CHARACTER
   3.0        ! 10   NO. OF INTERACTIVE AIPS
  64.0        ! 11   NO. OF WORDS IN AP ( IN 1024s )
   0.0        ! 12   NO. OF TV DEVICES AVAILABLE
   0.0        ! 13   NO. OF GRAPHICS TERMINALS
   7.83       ! 14   NO. OF X DOTS PER MM ON PRINTER
   5.0        ! 15   NO. OF X DOTS PER MM ON GRAPHICS
   0.0        ! 16   NO. OF USERS ALLOWED ACCESS TO TVS
   0.0        ! 17   NO. OF USERS ALLOWED ACCESS TO TKS
 300.0        ! 18   NO. ENTRIES IN PRIVATE CATALOGS
   0.0        ! 19   NO. OF RESERVED AIPS TERMINALS
   0.0        ! 20   NO. OF MESSAGE TERMINALS
   0.0        ! 21   NO. OF REMOTE GRAPHICS TERMINALS
 800.0        ! 22   MAXIMUM ALLOWED USER NUMBER

   If you tell ILOAD that the AIPS account default shell is the Bourne
shell, ILOAD also creates a file called PROFILE in $HOME/xxx/UNIX.  This
file must be incorporated into the script executed on login to the AIPS
account (i.e., into (.)login, (.)profile, (.)init or whatever your
system calls it) before continuing with the remainder of the installation
procedure.  After doing so, you should logoff and login again to activate
the shell variables it defines since the remaining steps of the
installation procedure depend on them.  Just as an example, the
following SYSPARM. and PROFILE files result from executing ILOAD and
specifying an environment that has at least two of everything.  This will
enable many options and make many "logical definitions" that are supported
under VMS AIPS although not yet fully implemented under UNIX/AIPS.  Items
that are not implemented will generate logical definitions that will
simply go unused however, telling ILOAD that you have a TV when in fact
you don't may generate strange error messages when you execute AIPS.
Notice that in PROFILE and LOGIN below, the full pathnames for the four
tape drives are defined as "".  This is exactly the answer given to ILOAD
for each drive.  Under UTS at NRAO, we manage the tape drive pathnames
in a way peculiar to UTS running under VM.  You can answer many of the
ILOAD prompts for device pathnames in this way and the Z-routine ZXTLOG
which extracts these definitions from the environment will return NULL.
AIPS interprets such a return as "no such logical device" and will tell
you so.

Example $HOME/xxx/DOC/TEXT/SYSPARM. :

   6.0        !  1   NO. OF DISK DRIVES
   4.0        !  2   NO. OF TAPE DRIVES
  24.0        !  3   NO. OF LINES PER CRT PAGE
  61.0        !  4   NO. OF LINES PER PRINT PAGE
   2.0        !  5   NO. OF BATCH QUEUES
2112.0        !  6   PLOTTER NO. OF X DOTS PER PAGE
1600.0        !  7   PLOTTER NO. OF Y DOTS PER PAGE
  20.0        !  8   PLOTTER NO. OF X DOTS PER CHARACTER
  25.0        !  9   PLOTTER NO. OF Y DOTS PER CHARACTER
   6.0        ! 10   NO. OF INTERACTIVE AIPS
  64.0        ! 11   NO. OF WORDS IN AP ( IN 1024s )
   2.0        ! 12   NO. OF TV DEVICES AVAILABLE
   2.0        ! 13   NO. OF GRAPHICS TERMINALS
   7.83       ! 14   NO. OF X DOTS PER MM ON PRINTER
   5.0        ! 15   NO. OF X DOTS PER MM ON GRAPHICS
   2.0        ! 16   NO. OF USERS ALLOWED ACCESS TO TVS
   2.0        ! 17   NO. OF USERS ALLOWED ACCESS TO TKS
 300.0        ! 18   NO. ENTRIES IN PRIVATE CATALOGS
   2.0        ! 19   NO. OF RESERVED AIPS TERMINALS
   2.0        ! 20   NO. OF MESSAGE TERMINALS
   2.0        ! 21   NO. OF REMOTE GRAPHICS TERMINALS
4095.0        ! 22   MAXIMUM ALLOWED USER NUMBER
   4.0        ! 23   NUMBER OF IMAGE PLANES IN TV DEVICE     #1
   4.0        ! 24   NUMBER OF GRAPHICS PLANES IN TV DEVICE  #1
   4.0        ! 25   NUMBER OF IMAGE PLANES IN TV DEVICE     #2
   4.0        ! 26   NUMBER OF GRAPHICS PLANES IN TV DEVICE  #2
NRAO(CV) IBM/UTS 2.2


   Based on the system parameters above, ILOAD will prompt the installer
for many other things such as the full pathnames of devices, directories
and special peripheral link libraries.  For the purpose of demonstration
we answered the prompts for the hypothetical system with typical answers
and ILOAD produced the $HOME/xxx/UNIX/PROFILE shown below when told that
the AIPS account default shell was the Bourne shell.  This file has been
editted since ILOAD would not let us lie about such things as vendor
supplied link libraries our fictitious AP and TV devices.  We also had
to create the directories $HOME/xxx/SKY and its subdirectories as well
as $HOME/xxx/APL/YSUB/JUP in order to fool ILOAD.  The scripts produced
by ILOAD when you tell it that the AIPS account default shell is the
C-shell immediately follow this one.

Resulting $HOME/xxx/UNIX/PROFILE (AIPS account default shell = Bourne) :

: "The first half of this login script is executed only on"
: "the initial login.  Once the shell variable VER is set,"
: "only the second half is executed again and only when"
: "either the user executes the shell command 'newgrp' or"
: "when the user executes the 'shell variable commands'"
: "CDOLD or CDNEW (see definitions of CDOLD and CDNEW"
: "near the end of the first half of this script)."
:
if (test "$VER" = "")
then
   : "=================================================="
   : "Define all shell variables needed for running AIPS"
   : "=================================================="
   :
   : "Define UNIX dialect (e.g., BSD2 ==> BSD 4.2,"
   : "UTS ==> Amdahl's UNIX, MC ==> Masscomps UNIX)."
   :
   OS=UTS                                           ; export OS
   :
   : "Define AIPS version directories."
   :
   OLD=$HOME/15SEP83                                ; export OLD
   NEW=$HOME/15JUL84                                ; export NEW
   VER=$NEW                                         ; export VER
   UNIX=$VER/UNIX                                   ; export UNIX
   LOAD=$VER/LOAD                                   ; export LOAD
   LOCAL=$HOME/LOCAL                                ; export LOCAL
   :
   : "Define search path for commands."
   :
   TPATH=$PATH                                      ; export TPATH
   PATH=$PATH:$UNIX                                 ; export PATH
   :
   : "Define AIPS data areas"
   :
   DA00=/AIPS/DA00                                  ; export DA00
   DA01=/AIPS/DA01                                  ; export DA01
   DA02=/AIPS/DA02                                  ; export DA02
   DA03=/AIPS/DA03                                  ; export DA03
   DA04=/AIPS/DA04                                  ; export DA04
   DA05=/AIPS/DA05                                  ; export DA05
   :
   : "Define reserved AIPSn terminals."
   :
   RESSTT1=/dev/tty001                              ; export RESSTT1
   RESSTT2=/dev/tty002                              ; export RESSTT2
   :
   : "Define TASKn message terminal.  If none,"
   : "direct TASKn messages to AIPSn terminal."
   :
   TASKTT0=`tty`                                    ; export TASKTT0
   AIPSTT1=/dev/tty001                              ; export AIPSTT1
   TASKTT1=/dev/tty003                              ; export TASKTT1
   AIPSTT2=/dev/tty002                              ; export AIPSTT2
   TASKTT2=/dev/tty004                              ; export TASKTT2
   :
   : "Define batch error terminal.  If none,"
   : "direct batch error messages to disk file."
   :
   BATTT=$VER/BATER.MSG                             ; export BATTT
   :
   : "Define graphics device for non-remote"
   : "AIPS terminals and default (TEKTK0)"
   : "graphics device."
   :
   TEKTK0=/dev/tty005                               ; export TEKTK0
   AITKTT1=/dev/tty001                              ; export AITKTT1
   TEKTK1=/dev/tty005                               ; export TEKTK1
   AITKTT2=/dev/tty002                              ; export AITKTT2
   TEKTK2=/dev/tty006                               ; export TEKTK2
   :
   : "Define AIPSn/TASKn tv display device,"
   : "and default (TVDEV0)."
   :
   TVDEV0=/dev/tv001                                ; export TVDEV0
   TVDEV1=/dev/tv001                                ; export TVDEV1
   AITVTT1=/dev/tty001                              ; export AITVTT1
   TVDEV2=/dev/tv002                                ; export TVDEV2
   AITVTT2=/dev/tty002                              ; export AITVTT2
   :
   : "Define magnetic tape devices."
   :
   MT00=""                                          ; export MT00
   MT01=""                                          ; export MT01
   MT02=""                                          ; export MT02
   MT03=""                                          ; export MT03
   :
   : "Define remote terminals (i.e., no tv access,"
   : "graphics output sent back to AIPSn terminal"
   : "if AITKTTn not defined)."
   :
   REMOTT1=/dev/tty007                              ; export REMOTT1
   REMOTT2=/dev/tty008                              ; export REMOTT2
   :
   : "Define plot device."
   :
   PLOTTER=/dev/calcomp                             ; export PLOTTER
   :
   : "Define RUN file directory."
   :
   RUNFIL=$HOME/RUN                                 ; export RUNFIL
   :
   : "Define CDOLD and CDNEW (shell variables that"
   : "are assigned a command sequence for switching"
   : "the definitions of AIPS source code shell"
   : "variables between OLD and NEW versions, resp.)."
   : "Changes shell variable VER and re-executes"
   : "login.  Since VER is non-null, first part"
   : "of this login script is skipped and only the"
   : "part below this section gets executed."
   :
   CDOLD='eval VER=$OLD; export VER; newgrp'        ; export CDOLD
   :
   CDNEW='eval VER=$NEW; export VER; newgrp'        ; export CDNEW
   :
   : "Execute AIPS startup procedure."
   :
   AIPSTR
   :
   : "Assume NEW source code definition desired."
   :
   $CDNEW
   :
   : "On login, skip the rest (done by CDOLD & CDNEW)."
   :
else   :
   : "Already logged in, so this must be CDOLD or CDNEW"
   :
   : "Redefine major node subdirectories of version $VER."
   :
   APL=$VER/APL                                     ; export APL
   DOC=$VER/DOC                                     ; export DOC
   HLPFIL=$VER/HELP                                 ; export HLPFIL
   HST=$VER/HIST                                    ; export HST
   INCS=$VER/INC                                    ; export INCS
   LOAD=$VER/LOAD                                   ; export LOAD
   NOTST=$VER/NOTST                                 ; export NOTST
   POPS=$VER/AIPS                                   ; export POPS
   PSAP=$VER/PSAP                                   ; export PSAP
   FPSFIL=$VER/FPS                                  ; export FPSFIL
   SKYFIL=$VER/SKY                                  ; export SKYFIL
   AP=$SKYFIL                                       ; export AP
   UNIX=$VER/UNIX                                   ; export UNIX
   VMS=$VER/VMS                                     ; export VMS
   :
   : "Define vendor supplied link libraries for peripherals."
   :
   TVLIB=/usr/lib/libjup.a                          ; export TVLIB
   APLIB=/usr/lib/libsky.a                          ; export APLIB
   :
   : "Redefine command search path."
   :
   PATH=$TPATH:$UNIX                                ; export PATH
   :
   : "Redefine POPS (AIPS) subdirectory shell variables."
   :
   AIPSUB=$POPS/SUB                                 ; export AIPSUB
   AIPPGM=$POPS/PGM                                 ; export AIPPGM
   AIPBSD1=$POPS/ZSUB/UNIX/BSD1                     ; export AIPBSD1
   AIPBSD2=$POPS/ZSUB/UNIX/BSD2                     ; export AIPBSD2
   AIPGEN=$POPS/ZSUB/UNIX/GEN                       ; export AIPGEN
   AIPMC=$POPS/ZSUB/UNIX/MC                         ; export AIPMC
   AIPMC4=$POPS/ZSUB/MC4                            ; export AIPMC4
   AIPMFT=$POPS/ZSUB/MFT                            ; export AIPMFT
   AIPUNOS=$POPS/ZSUB/UNIX/UNOS                     ; export AIPUNOS
   AIPUTS=$POPS/ZSUB/UNIX/UTS                       ; export AIPUTS
   AIPZ=$POPS/ZSUB/UNIX/LOC                         ; export AIPZ
   AIPVMS=$POPS/ZSUB/VMS                            ; export AIPVMS
   :
   : "Redefine APL subdirectory shell variables."
   :
   APLSUB=$APL/SUB                                  ; export APLSUB
   APLPGM=$APL/PGM                                  ; export APLPGM
   APLAPG=$APL/APGM                                 ; export APLAPG
   APLDEA=$APL/YSUB/DEA                             ; export APLDEA
   APLIIS=$APL/YSUB/IIS                             ; export APLIIS
   APLM75=$APL/YSUB/M75                             ; export APLM75
   APLJUP=$APL/YSUB/JUP                             ; export APLJUP
   APLY=$APLJUP                                      ; export APLY
   APLBSD1=$APL/ZSUB/UNIX/BSD1                      ; export APLBSD1
   APLBSD2=$APL/ZSUB/UNIX/BSD2                      ; export APLBSD2
   APLGEN=$APL/ZSUB/UNIX/GEN                        ; export APLGEN
   APLMC=$APL/ZSUB/UNIX/MC                          ; export APLMC
   APLMC4=$APL/ZSUB/MC4                             ; export APLMC4
   APLMFT=$APL/ZSUB/MFT                             ; export APLMFT
   APLUNOS=$APL/ZSUB/UNIX/UNOS                      ; export APLUNOS
   APLUTS=$APL/ZSUB/UNIX/UTS                        ; export APLUTS
   APLZ=$APL/ZSUB/UNIX/LOC                          ; export APLZ
   APLVMS=$APL/ZSUB/VMS                             ; export APLVMS
   :
   : "Redefine DOC subdirectory shell variables."
   :
   DOCWHO=$DOC/WHO                                  ; export DOCWHO
   DOCTXT=$DOC/TEXT                                 ; export DOCTXT
   DOCGRIP=$DOC/GRIP                                ; export DOCGRIP
   DOCPUBL=$DOC/PUBL                                ; export DOCPUBL
   :
   : "Redefine FPS subdirectory shell variables."
   :
   FPSSUB=$FPSFIL/SUB                               ; export FPSSUB
   FPSVMS=$FPSFIL/ZSUB/VMS                          ; export FPSVMS
   FPSMC4=$FPSFIL/ZSUB/MC4                          ; export FPSMC4
   :
   : "Redefine SKY subdirectory shell variables."
   :
   SKYSUB=$SKYFIL/SUB                               ; export SKYSUB
   APSUB=$SKYSUB                                    ; export APSUB
   APZ=$SKYFIL/ZSUB/UNIX/UTS                        ; export APZ
   :
   : "Redefine NOTST subdirectory shell variables."
   :
   NOTSUB=$NOTST/SUB                                ; export NOTSUB
   NOTPGM=$NOTST/PGM                                ; export NOTPGM
   NOTAPG=$NOTST/APGM                               ; export NOTAPG
   NOTBSD1=$NOTST/ZSUB/UNIX/BSD1                    ; export NOTBSD1
   NOTBSD2=$NOTST/ZSUB/UNIX/BSD2                    ; export NOTBSD2
   NOTGEN=$NOTST/ZSUB/UNIX/GEN                      ; export NOTGEN
   NOTMC=$NOTST/ZSUB/UNIX/MC                        ; export NOTMC
   NOTMC4=$NOTST/ZSUB/MC4                           ; export NOTMC4
   NOTMFT=$NOTST/ZSUB/MFT                           ; export NOTMFT
   NOTUNOS=$NOTST/ZSUB/UNIX/UNOS                    ; export NOTUNOS
   NOTUTS=$NOTST/ZSUB/UNIX/UTS                      ; export NOTUTS
   NOTZ=$NOTST/ZSUB/UNIX/LOC                        ; export NOTZ
   NOTVMS=$NOTST/ZSUB/VMS                           ; export NOTVMS
   :
   : "Redefine PSAP subdirectory shell variables."
   :
   SAPSUB=$PSAP/SUB                                 ; export SAPSUB
   SAPBSD1=$PSAP/ZSUB/UNIX/BSD1                     ; export SAPBSD1
   SAPBSD2=$PSAP/ZSUB/UNIX/BSD2                     ; export SAPBSD2
   SAPGEN=$PSAP/ZSUB/UNIX/GEN                       ; export SAPGEN
   SAPMC=$PSAP/ZSUB/UNIX/MC                         ; export SAPMC
   SAPMC4=$PSAP/ZSUB/MC4                            ; export SAPMC4
   SAPMFT=$PSAP/ZSUB/MFT                            ; export SAPMFT
   SAPUNOS=$PSAP/ZSUB/UNIX/UNOS                     ; export SAPUNOS
   SAPUTS=$PSAP/ZSUB/UNIX/UTS                       ; export SAPUTS
   SAPZ=$PSAP/ZSUB/UNIX/LOC                         ; export SAPZ
   SAPVMS=$PSAP/ZSUB/VMS                            ; export SAPVMS
   :
fi


   If instead, you tell ILOAD that the AIPS account default shell is the
C-shell, ILOAD will create two files in addition to the "SYSPARM." file
shown above.  These files are called LOGIN and CDVER and will be created
in the directory $HOME/xxx/UNIX.  This time, the installer must
incorporate the file called LOGIN in the AIPS account login process.  The
file called CDVER should remain in the $HOME/xxx/UNIX directory where it
was created and must also be copied to the $HOME/yyy/UNIX directory where
"yyy" represents the name of your OLD version of AIPS, if any.  If there
is no OLD version of AIPS then, of course, only one copy of CDVER is
needed.  After doing so, logoff and login again to activate the shell
variables that these scripts define.  This is necessary since the
remaining steps of the installation procedure depend on these definitions.
The examples of LOGIN and CDVER that appear below are based on the same
answers to ILOAD used to generate the SYSPARM. and PROFILE files that
appear above (i.e., where we told ILOAD that the default shell was the
Bourne shell),

Resulting $HOME/xxx/UNIX/LOGIN (AIPS account default shell = C-shell) :

# "=================================================="
# "Define all shell variables needed for running AIPS"
# "=================================================="
#
# "Define UNIX dialect (e.g., BSD2 ==> BSD 4.2,"
# "UTS ==> Amdahl's UNIX, MC ==> Masscomps UNIX)."
#
setenv OS UTS
#
# "Define AIPS version directories."
#
setenv OLD $HOME/15SEP83
setenv NEW $HOME/15JUL84
setenv VER $NEW
setenv UNIX $VER/UNIX
setenv LOAD $VER/LOAD
setenv LOCAL $HOME/LOCAL
#
# "Define search path for commands."
#
setenv TPATH "$PATH"
setenv PATH "$TPATH":"$UNIX"
#
# "Define AIPS data areas"
#
setenv DA00 /AIPS/DA00
setenv DA01 /AIPS/DA01
setenv DA02 /AIPS/DA02
setenv DA03 /AIPS/DA03
setenv DA04 /AIPS/DA04
setenv DA05 /AIPS/DA05
#
# "Define reserved AIPSn terminals."
#
setenv RESSTT1 /dev/tty001
setenv RESSTT2 /dev/tty002
#
# "Define TASKn message terminal.  If none,"
# "direct TASKn messages to AIPSn terminal."
#
setenv TASKTT0 `tty`
setenv AIPSTT1 /dev/tty001
setenv TASKTT1 /dev/tty003
setenv AIPSTT2 /dev/tty002
setenv TASKTT2 /dev/tty004
#
# "Define batch error terminal.  If none,"
# "direct batch error messages to disk file."
#
setenv BATTT $VER/BATER.MSG

#
# "Define graphics device for non-remote"
# "AIPS terminals and default (TEKTK0)"
# "graphics device."
#
setenv TEKTK0 /dev/tty005
setenv AITKTT1 /dev/tty001
setenv TEKTK1 /dev/tty005
setenv AITKTT2 /dev/tty002
setenv TEKTK2 /dev/tty006
#
# "Define AIPSn/TASKn tv display device,"
# "and default (TVDEV0)."
#
setenv TVDEV0 /dev/tv001
setenv TVDEV1 /dev/tv001
setenv AITVTT1 /dev/tty001
setenv TVDEV2 /dev/tv002
setenv AITVTT2 /dev/tty002
#
# "Define magnetic tape devices."
#
setenv MT00 ""
setenv MT01 ""
setenv MT02 ""
setenv MT03 ""
#
# "Define remote terminals (i.e., no tv access,"
# "graphics output sent back to AIPSn terminal"
# "if AITKTTn not defined).
#
setenv REMOTT1 /dev/tty007
#
# "Define remote terminals (i.e., no tv access,"
# "graphics output sent back to AIPSn terminal"
# "if AITKTTn not defined).
#
setenv REMOTT2 /dev/tty008
#
# "Define plot device."
#
setenv PLOTTER /dev/calcomp
#
# "Define RUN file directory."
#
setenv RUNFIL $HOME/RUN
#
# "Define CDOLD and CDNEW (shell variables that"
# "are assigned a command sequence for switching"
# "the definitions of AIPS source code shell"
# "variables between OLD and NEW versions, resp.)."
# "Changes shell variable VER and executes"
# "'source $UNIX/CDVER'."
#
setenv CDOLD 'eval setenv VER $OLD; source $UNIX/CDVER'
#
setenv CDNEW 'eval setenv VER $NEW; source $UNIX/CDVER'
#
# "Execute AIPS startup procedure."
#
AIPSTR
#
# "Assume NEW source code definition desired."
#
$CDNEW


   The following file $HOME/xxx/UNIX/CDVER is produced in addition to
the $HOME/xxx/DOCTXT/SYSPARM. and the $HOME/xxx/UNIX/LOGIN files above
when ILOAD is told that the AIPS account default shell is the C-shell.
It should remain in the $HOME/xxx/UNIX directory but also be copied to
the corresponding directory for any "OLD" version of AIPS that you might
also be maintaining.  Its purpose is for toggling between versions based
on the definition of the shell variable VER (i.e., defined as either $NEW
or $OLD).  All the other shell variables are redefined based on the value
of VER via the 'command shell variables' CDNEW and CDOLD which are defined
in $HOME/xxx/LOGIN above.

Resulting $HOME/xxx/UNIX/CDVER (AIPS account default shell = C-shell) :

# "Redefine major node subdirectories of version $VER."
#
setenv APL $VER/APL
setenv DOC $VER/DOC
setenv HLPFIL $VER/HELP
setenv HST $VER/HIST
setenv INCS $VER/INC
setenv LOAD $VER/LOAD
setenv NOTST $VER/NOTST
setenv POPS $VER/AIPS
setenv PSAP $VER/PSAP
setenv FPSFIL $VER/FPS
setenv SKYFIL $VER/SKY
setenv AP $SKYFIL
setenv UNIX $VER/UNIX
setenv VMS $VER/VMS
#
# "Define vendor supplied link libraries for peripherals."
#
setenv TVLIB /usr/lib/libjup.a
setenv APLIB /usr/lib/libsky.a
#
# "Redefine command search path."
#
setenv PATH "$TPATH":"$UNIX"
#
# "Redefine POPS (AIPS) subdirectory shell variables."
#
setenv AIPSUB $POPS/SUB
setenv AIPPGM $POPS/PGM
setenv AIPBSD1 $POPS/ZSUB/UNIX/BSD1
setenv AIPBSD2 $POPS/ZSUB/UNIX/BSD2
setenv AIPGEN $POPS/ZSUB/UNIX/GEN
setenv AIPMC $POPS/ZSUB/UNIX/MC
setenv AIPMC4 $POPS/ZSUB/MC4
setenv AIPMFT $POPS/ZSUB/MFT
setenv AIPUNOS $POPS/ZSUB/UNIX/UNOS
setenv AIPUTS $POPS/ZSUB/UNIX/UTS
setenv AIPZ $POPS/ZSUB/UNIX/LOC
setenv AIPVMS $POPS/ZSUB/VMS
#
# "Redefine APL subdirectory shell variables."
#
setenv APLSUB $APL/SUB
setenv APLPGM $APL/PGM
setenv APLAPG $APL/APGM
setenv APLDEA $APL/YSUB/DEA
setenv APLIIS $APL/YSUB/IIS
setenv APLM75 $APL/YSUB/M75
setenv APLJUP $APL/YSUB/JUP
setenv APLY APLJUP
setenv APLBSD1 $APL/ZSUB/UNIX/BSD1
setenv APLBSD2 $APL/ZSUB/UNIX/BSD2
setenv APLGEN $APL/ZSUB/UNIX/GEN
setenv APLMC $APL/ZSUB/UNIX/MC
setenv APLMC4 $APL/ZSUB/MC4
setenv APLMFT $APL/ZSUB/MFT
setenv APLUNOS $APL/ZSUB/UNIX/UNOS
setenv APLUTS $APL/ZSUB/UNIX/UTS
setenv APLZ $APL/ZSUB/UNIX/LOC
setenv APLVMS $APL/ZSUB/VMS
#
# "Redefine DOC subdirectory shell variables."
#
setenv DOCWHO $DOC/WHO
setenv DOCTXT $DOC/TEXT
setenv DOCGRIP $DOC/GRIP
setenv DOCPUBL $DOC/PUBL
#
# "Redefine FPS subdirectory shell variables."
#
setenv FPSSUB $FPSFIL/SUB
setenv FPSVMS $FPSFIL/ZSUB/VMS
setenv FPSMC4 $FPSFIL/ZSUB/MC4
#
# "Redefine SKY subdirectory shell variables."
#
setenv SKYSUB $SKYFIL/SUB
setenv APSUB $SKYSUB
setenv APZ $SKYFIL/ZSUB/UNIX/UTS
#
# "Redefine NOTST subdirectory shell variables."
#
setenv NOTSUB $NOTST/SUB
setenv NOTPGM $NOTST/PGM
setenv NOTAPG $NOTST/APGM
setenv NOTBSD1 $NOTST/ZSUB/UNIX/BSD1
setenv NOTBSD2 $NOTST/ZSUB/UNIX/BSD2
setenv NOTGEN $NOTST/ZSUB/UNIX/GEN
setenv NOTMC $NOTST/ZSUB/UNIX/MC
setenv NOTMC4 $NOTST/ZSUB/MC4
setenv NOTMFT $NOTST/ZSUB/MFT
setenv NOTUNOS $NOTST/ZSUB/UNIX/UNOS
setenv NOTUTS $NOTST/ZSUB/UNIX/UTS
setenv NOTZ $NOTST/ZSUB/UNIX/LOC
setenv NOTVMS $NOTST/ZSUB/VMS
#
# "Redefine PSAP subdirectory shell variables."
#
setenv SAPSUB $PSAP/SUB
setenv SAPBSD1 $PSAP/ZSUB/UNIX/BSD1
setenv SAPBSD2 $PSAP/ZSUB/UNIX/BSD2
setenv SAPGEN $PSAP/ZSUB/UNIX/GEN
setenv SAPMC $PSAP/ZSUB/UNIX/MC
setenv SAPMC4 $PSAP/ZSUB/MC4
setenv SAPMFT $PSAP/ZSUB/MFT
setenv SAPUNOS $PSAP/ZSUB/UNIX/UNOS
setenv SAPUTS $PSAP/ZSUB/UNIX/UTS
setenv SAPZ $PSAP/ZSUB/UNIX/LOC
#


   For the sake of demonstration, if we incorporated the
$HOME/xxx/UNIX/PROFILE script (from our hypothetical system above) in
the login process for the NRAO UTS AIPS account, the first part of the
script would be executed on any initial login and would define the shell
variables below (in alphabetical order).  On initial login, the script
defaults to the "NEW" version of AIPS and assigns the shell variable
VER accordingly (here $HOME/15JUL84):

AIPSTT1=/dev/tty001
AIPSTT2=/dev/tty002
AITKTT1=/dev/tty001
AITKTT2=/dev/tty002
AITVTT1=/dev/tty001
AITVTT2=/dev/tty002
BATTT=/AIPS/15JUL84/BATER.MSG
CDNEW=eval VER=$NEW; export VER; newgrp
CDOLD=eval VER=$OLD; export VER; newgrp
DA00=/AIPS/DA00
DA01=/AIPS/DA01
DA02=/AIPS/DA02
DA03=/AIPS/DA03
DA04=/AIPS/DA04
DA05=/AIPS/DA05
HOME=/AIPS
LOAD=/AIPS/15JUL84/LOAD
LOCAL=/AIPS/LOCAL
MT00=
MT01=
MT02=
MT03=
NEW=/AIPS/15JUL84
OLD=/AIPS/15SEP83
OS=UTS
PATH=:/bin:/usr/bin:/AIPS/15JUL84/UNIX
PLOTTER=/dev/calcomp
REMOTT1=/dev/tty007
REMOTT2=/dev/tty008
RESSTT1=/dev/tty001
RESSTT2=/dev/tty002
RUNFIL=/AIPS/RUN
TASKTT0=/dev/ttyf00 (result of TASKTT0=`tty`)
TASKTT1=/dev/tty003
TASKTT2=/dev/tty004
TEKTK0=/dev/tty005
TEKTK1=/dev/tty005
TEKTK2=/dev/tty006
TPATH=:/bin:/usr/bin
TVDEV0=/dev/tv001
TVDEV1=/dev/tv001
TVDEV2=/dev/tv002
UNIX=/AIPS/15JUL84/UNIX
VER=/AIPS/15JUL84


   The second half of the login script is only executed after the initial
login and only when the user executes the UNIX "newgrp" command.  The
definitions of the shell variables CDNEW and CDOLD redefine the shell
variable VER as $NEW and $OLD respectively followed by the execution of
newgrp.  Newgrp causes the re-execution of the login procedure for the
AIPS account.  Since the shell variable VER was set during the original
login process, re-execution of the login procedure causes the script to
branch to the second half of the login script.  This portion of the login
script defines many shell variables to serve as mnemonics for directories
of either the $NEW or $OLD versions of AIPS depending on the value of
the shell variable VER.  These shell variables are not required for the
execution of AIPS but are required as part of the programming environment,
specifically in the case of the NRAO provided programming shell scripts
found in the directory $HOME/xxx/UNIX.  After the execution of $CDNEW,
the following shell variable definitions will exist (again, in
alphabetical order):

AIPBSD1=/AIPS/15JUL84/AIPS/ZSUB/UNIX/BSD1
AIPBSD2=/AIPS/15JUL84/AIPS/ZSUB/UNIX/BSD2
AIPGEN=/AIPS/15JUL84/AIPS/ZSUB/UNIX/GEN
AIPMC=/AIPS/15JUL84/AIPS/ZSUB/UNIX/MC
AIPMC4=/AIPS/15JUL84/AIPS/ZSUB/MC4
AIPMFT=/AIPS/15JUL84/AIPS/ZSUB/MFT
AIPPGM=/AIPS/15JUL84/AIPS/PGM
AIPSTT1=/dev/tty001
AIPSTT2=/dev/tty002
AIPSUB=/AIPS/15JUL84/AIPS/SUB
AIPUNOS=/AIPS/15JUL84/AIPS/ZSUB/UNIX/UNOS
AIPUTS=/AIPS/15JUL84/AIPS/ZSUB/UNIX/UTS
AIPVMS=/AIPS/15JUL84/AIPS/ZSUB/VMS
AIPZ=/AIPS/15JUL84/AIPS/ZSUB/UNIX/LOC
AITKTT1=/dev/tty001
AITKTT2=/dev/tty002
AITVTT1=/dev/tty001
AITVTT2=/dev/tty002
AP=/AIPS/15JUL84/SKY
APL=/AIPS/15JUL84/APL
APLAPG=/AIPS/15JUL84/APL/APGM
APLBSD1=/AIPS/15JUL84/APL/ZSUB/UNIX/BSD1
APLBSD2=/AIPS/15JUL84/APL/ZSUB/UNIX/BSD2
APLDEA=/AIPS/15JUL84/APL/YSUB/DEA
APLGEN=/AIPS/15JUL84/APL/ZSUB/UNIX/GEN
APLIB=/usr/lib/libsky.a
APLIIS=/AIPS/15JUL84/APL/YSUB/IIS
APLJUP=/AIPS/15JUL84/APL/YSUB/JUP
APLM75=/AIPS/15JUL84/APL/YSUB/M75
APLMC=/AIPS/15JUL84/APL/ZSUB/UNIX/MC
APLMC4=/AIPS/15JUL84/APL/ZSUB/MC4
APLMFT=/AIPS/15JUL84/APL/ZSUB/MFT
APLPGM=/AIPS/15JUL84/APL/PGM
APLSUB=/AIPS/15JUL84/APL/SUB
APLUNOS=/AIPS/15JUL84/APL/ZSUB/UNIX/UNOS
APLUTS=/AIPS/15JUL84/APL/ZSUB/UNIX/UTS
APLVMS=/AIPS/15JUL84/APL/ZSUB/VMS
APLY=/AIPS/15JUL84/APL/YSUB/JUP
APLZ=/AIPS/15JUL84/APL/ZSUB/UNIX/LOC
APSUB=/AIPS/15JUL84/SKY/SUB
APZ=/AIPS/15JUL84/SKY/ZSUB/UNIX/UTS
BATTT=/AIPS/15JUL84/BATER.MSG
CDNEW=eval VER=$NEW; export VER; newgrp
CDOLD=eval VER=$OLD; export VER; newgrp
DA00=/AIPS/DA00
DA01=/AIPS/DA01
DA02=/AIPS/DA02
DA03=/AIPS/DA03
DA04=/AIPS/DA04
DA05=/AIPS/DA05
DOC=/AIPS/15JUL84/DOC
DOCGRIP=/AIPS/15JUL84/DOC/GRIP
DOCPUBL=/AIPS/15JUL84/DOC/PUBL
DOCTXT=/AIPS/15JUL84/DOC/TEXT
DOCWHO=/AIPS/15JUL84/DOC/WHO
FPSFIL=/AIPS/15JUL84/FPS
FPSMC4=/AIPS/15JUL84/FPS/ZSUB/MC4
FPSSUB=/AIPS/15JUL84/FPS/SUB
FPSVMS=/AIPS/15JUL84/FPS/ZSUB/VMS
HLPFIL=/AIPS/15JUL84/HELP
HOME=/AIPS
HST=/AIPS/15JUL84/HIST
INCS=/AIPS/15JUL84/INC
LOAD=/AIPS/15JUL84/LOAD
LOCAL=/AIPS/LOCAL
MT00=
MT01=
MT02=
MT03=
NEW=/AIPS/15JUL84
NOTAPG=/AIPS/15JUL84/NOTST/APGM
NOTBSD1=/AIPS/15JUL84/NOTST/ZSUB/UNIX/BSD1
NOTBSD2=/AIPS/15JUL84/NOTST/ZSUB/UNIX/BSD2
NOTGEN=/AIPS/15JUL84/NOTST/ZSUB/UNIX/GEN
NOTMC=/AIPS/15JUL84/NOTST/ZSUB/UNIX/MC
NOTMC4=/AIPS/15JUL84/NOTST/ZSUB/MC4
NOTMFT=/AIPS/15JUL84/NOTST/ZSUB/MFT
NOTPGM=/AIPS/15JUL84/NOTST/PGM
NOTST=/AIPS/15JUL84/NOTST
NOTSUB=/AIPS/15JUL84/NOTST/SUB
NOTUNOS=/AIPS/15JUL84/NOTST/ZSUB/UNIX/UNOS
NOTUTS=/AIPS/15JUL84/NOTST/ZSUB/UNIX/UTS
NOTVMS=/AIPS/15JUL84/NOTST/ZSUB/VMS
NOTZ=/AIPS/15JUL84/NOTST/ZSUB/UNIX/LOC
OLD=/AIPS/15SEP83
OS=UTS
PATH=:/bin:/usr/bin:/AIPS/15JUL84/UNIX
PLOTTER=/dev/calcomp
POPS=/AIPS/15JUL84/AIPS
PSAP=/AIPS/15JUL84/PSAP
REMOTT1=/dev/tty007
REMOTT2=/dev/tty008
RESSTT1=/dev/tty001
RESSTT2=/dev/tty002
RUNFIL=/AIPS/RUN
SAPBSD1=/AIPS/15JUL84/PSAP/ZSUB/UNIX/BSD1
SAPBSD2=/AIPS/15JUL84/PSAP/ZSUB/UNIX/BSD2
SAPGEN=/AIPS/15JUL84/PSAP/ZSUB/UNIX/GEN
SAPMC=/AIPS/15JUL84/PSAP/ZSUB/UNIX/MC
SAPMC4=/AIPS/15JUL84/PSAP/ZSUB/MC4
SAPMFT=/AIPS/15JUL84/PSAP/ZSUB/MFT
SAPSUB=/AIPS/15JUL84/PSAP/SUB
SAPUNOS=/AIPS/15JUL84/PSAP/ZSUB/UNIX/UNOS
SAPUTS=/AIPS/15JUL84/PSAP/ZSUB/UNIX/UTS
SAPVMS=/AIPS/15JUL84/PSAP/ZSUB/VMS
SAPZ=/AIPS/15JUL84/PSAP/ZSUB/UNIX/LOC
SKYFIL=/AIPS/15JUL84/SKY
SKYSUB=/AIPS/15JUL84/SKY/SUB
TASKTT0=/dev/ttyf00 (results from TASKTT0=`tty`)
TASKTT1=/dev/tty003
TASKTT2=/dev/tty004
TEKTK0=/dev/tty005
TEKTK1=/dev/tty005
TEKTK2=/dev/tty006
TPATH=:/bin:/usr/bin
TVDEV0=/dev/tv001
TVDEV1=/dev/tv001
TVDEV2=/dev/tv002
TVLIB=/usr/lib/libjup.a
UNIX=/AIPS/15JUL84/UNIX
VER=/AIPS/15JUL84
VMS=/AIPS/15JUL84/VMS


   On the other hand, if we execute $CDOLD, many of the shell variables
defined above will be toggled (i.e., redefined) to the OLD version of
AIPS (here $HOME/15SEP83) and the following definitions would exist
again, in alphabetical order):

AIPBSD1=/AIPS/15SEP83/AIPS/ZSUB/UNIX/BSD1
AIPBSD2=/AIPS/15SEP83/AIPS/ZSUB/UNIX/BSD2
AIPGEN=/AIPS/15SEP83/AIPS/ZSUB/UNIX/GEN
AIPMC=/AIPS/15SEP83/AIPS/ZSUB/UNIX/MC
AIPMC4=/AIPS/15SEP83/AIPS/ZSUB/MC4
AIPMFT=/AIPS/15SEP83/AIPS/ZSUB/MFT
AIPPGM=/AIPS/15SEP83/AIPS/PGM
AIPSTT1=/dev/tty001
AIPSTT2=/dev/tty002
AIPSUB=/AIPS/15SEP83/AIPS/SUB
AIPUNOS=/AIPS/15SEP83/AIPS/ZSUB/UNIX/UNOS
AIPUTS=/AIPS/15SEP83/AIPS/ZSUB/UNIX/UTS
AIPVMS=/AIPS/15SEP83/AIPS/ZSUB/VMS
AIPZ=/AIPS/15SEP83/AIPS/ZSUB/UNIX/LOC
AITKTT1=/dev/tty001
AITKTT2=/dev/tty002
AITVTT1=/dev/tty001
AITVTT2=/dev/tty002
AP=/AIPS/15SEP83/SKY
APL=/AIPS/15SEP83/APL
APLAPG=/AIPS/15SEP83/APL/APGM
APLBSD1=/AIPS/15SEP83/APL/ZSUB/UNIX/BSD1
APLBSD2=/AIPS/15SEP83/APL/ZSUB/UNIX/BSD2
APLDEA=/AIPS/15SEP83/APL/YSUB/DEA
APLGEN=/AIPS/15SEP83/APL/ZSUB/UNIX/GEN
APLIB=/usr/lib/libsky.a
APLIIS=/AIPS/15SEP83/APL/YSUB/IIS
APLJUP=/AIPS/15SEP83/APL/YSUB/JUP
APLM75=/AIPS/15SEP83/APL/YSUB/M75
APLMC=/AIPS/15SEP83/APL/ZSUB/UNIX/MC
APLMC4=/AIPS/15SEP83/APL/ZSUB/MC4
APLMFT=/AIPS/15SEP83/APL/ZSUB/MFT
APLPGM=/AIPS/15SEP83/APL/PGM
APLSUB=/AIPS/15SEP83/APL/SUB
APLUNOS=/AIPS/15SEP83/APL/ZSUB/UNIX/UNOS
APLUTS=/AIPS/15SEP83/APL/ZSUB/UNIX/UTS
APLVMS=/AIPS/15SEP83/APL/ZSUB/VMS
APLY=/AIPS/15SEP83/APL/YSUB/JUP
APLZ=/AIPS/15SEP83/APL/ZSUB/UNIX/LOC
APSUB=/AIPS/15SEP83/SKY/SUB
APZ=/AIPS/15SEP83/SKY/ZSUB/UNIX/UTS
BATTT=/AIPS/15JUL84/BATER.MSG
CDNEW=eval VER=$NEW; export VER; newgrp
CDOLD=eval VER=$OLD; export VER; newgrp
DA00=/AIPS/DA00
DA01=/AIPS/DA01
DA02=/AIPS/DA02
DA03=/AIPS/DA03
DA04=/AIPS/DA04
DA05=/AIPS/DA05
DOC=/AIPS/15SEP83/DOC
DOCGRIP=/AIPS/15SEP83/DOC/GRIP
DOCPUBL=/AIPS/15SEP83/DOC/PUBL
DOCTXT=/AIPS/15SEP83/DOC/TEXT
DOCWHO=/AIPS/15SEP83/DOC/WHO
FPSFIL=/AIPS/15SEP83/FPS
FPSMC4=/AIPS/15SEP83/FPS/ZSUB/MC4
FPSSUB=/AIPS/15SEP83/FPS/SUB
FPSVMS=/AIPS/15SEP83/FPS/ZSUB/VMS
HLPFIL=/AIPS/15SEP83/HELP
HOME=/AIPS
HST=/AIPS/15SEP83/HIST
INCS=/AIPS/15SEP83/INC
LOAD=/AIPS/15SEP83/LOAD
LOCAL=/AIPS/LOCAL
MT00=
MT01=
MT02=
MT03=
NEW=/AIPS/15JUL84
NOTAPG=/AIPS/15SEP83/NOTST/APGM
NOTBSD1=/AIPS/15SEP83/NOTST/ZSUB/UNIX/BSD1
NOTBSD2=/AIPS/15SEP83/NOTST/ZSUB/UNIX/BSD2
NOTGEN=/AIPS/15SEP83/NOTST/ZSUB/UNIX/GEN
NOTMC=/AIPS/15SEP83/NOTST/ZSUB/UNIX/MC
NOTMC4=/AIPS/15SEP83/NOTST/ZSUB/MC4
NOTMFT=/AIPS/15SEP83/NOTST/ZSUB/MFT
NOTPGM=/AIPS/15SEP83/NOTST/PGM
NOTST=/AIPS/15SEP83/NOTST
NOTSUB=/AIPS/15SEP83/NOTST/SUB
NOTUNOS=/AIPS/15SEP83/NOTST/ZSUB/UNIX/UNOS
NOTUTS=/AIPS/15SEP83/NOTST/ZSUB/UNIX/UTS
NOTVMS=/AIPS/15SEP83/NOTST/ZSUB/VMS
NOTZ=/AIPS/15SEP83/NOTST/ZSUB/UNIX/LOC
OLD=/AIPS/15SEP83
OS=UTS
PATH=:/bin:/usr/bin:/AIPS/15SEP83/UNIX
PLOTTER=/dev/calcomp
POPS=/AIPS/15SEP83/AIPS
PSAP=/AIPS/15SEP83/PSAP
REMOTT1=/dev/tty007
REMOTT2=/dev/tty008
RESSTT1=/dev/tty001
RESSTT2=/dev/tty002
RUNFIL=/AIPS/RUN
SAPBSD1=/AIPS/15SEP83/PSAP/ZSUB/UNIX/BSD1
SAPBSD2=/AIPS/15SEP83/PSAP/ZSUB/UNIX/BSD2
SAPGEN=/AIPS/15SEP83/PSAP/ZSUB/UNIX/GEN
SAPMC=/AIPS/15SEP83/PSAP/ZSUB/UNIX/MC
SAPMC4=/AIPS/15SEP83/PSAP/ZSUB/MC4
SAPMFT=/AIPS/15SEP83/PSAP/ZSUB/MFT
SAPSUB=/AIPS/15SEP83/PSAP/SUB
SAPUNOS=/AIPS/15SEP83/PSAP/ZSUB/UNIX/UNOS
SAPUTS=/AIPS/15SEP83/PSAP/ZSUB/UNIX/UTS
SAPVMS=/AIPS/15SEP83/PSAP/ZSUB/VMS
SAPZ=/AIPS/15SEP83/PSAP/ZSUB/UNIX/LOC
SKYFIL=/AIPS/15SEP83/SKY
SKYSUB=/AIPS/15SEP83/SKY/SUB
TASKTT0=/dev/ttyf00 (results from TASKTT0=`tty`)
TASKTT1=/dev/tty003
TASKTT2=/dev/tty004
TEKTK0=/dev/tty005
TEKTK1=/dev/tty005
TEKTK2=/dev/tty006
TPATH=:/bin:/usr/bin
TVDEV0=/dev/tv001
TVDEV1=/dev/tv001
TVDEV2=/dev/tv002
TVLIB=/usr/lib/libjup.a
UNIX=/AIPS/15SEP83/UNIX
VER=/AIPS/15SEP83
VMS=/AIPS/15SEP83/VMS


   For AIPS accounts where the default shell is the C-shell, the scripts
produced by ILOAD (LOGIN and CDVER) are designed to work similarly.


3. Directories / subdirectories

   All of AIPS is contained in one main directory with a large
number of subdirectories.  These subdirectories are implemented in a
way that allows multiple versions of AIPS software to exist at one time.
At NRAO we run two versions called OLD and NEW.  The OLD version should
be more thoroughly debugged but the NEW version may contain newly added
capabilities and programs.  In the following description of the
subdirectories, if an xxx appears in the directory name, the system
allows for both an OLD and NEW version of that subdirectory exist.  At
NRAO, xxx is the release date (in the form DDMMMYY) for the version of
AIPS involved.  For example, for OLD the xxx might be 15SEP83 and for
NEW the xxx might be 15JUL84.  A third area called LOCAL contains site
specific routines.  This area can be used at your site to develop tasks
or to keep tasks developed at your site separate from those provided by
NRAO, particularly if they involve proprietary software.

   Opposite the directory name, the corresponding shell variable is
shown enclosed in parentheses.

$HOME/RUN                                        (RUNFIL)

   This subdirectory contains the run files (of the form *.RUN) used by
the AIPS pseudoverb RUN.

$HOME/xxx                                        (NEW, OLD, VER)

   This subdirectory contains the AIPS memory files and serves as the
root of AIPS version xxx where "xxx" is usually the release date of
the version, e.g., 15JUL84.

$HOME/xxx/UNIX                                   (UNIX)

   This subdirectory contains the UNIX command procedures (shell scripts)
to assist in programming AIPS, plus the 'control files' used by the list
driven AIPS programming shell scripts.

$HOME/xxx/VMS                                    (VMS)

   This subdirectory contains the VMS command procedures (DCL scripts)
to assist in programming AIPS, plus the 'control files' (of the form
*.CT*) used in installing VMS AIPS.

$HOME/xxx/INC                                    (INCS)

   This subdirectory contains the include files (of the form *.INC)
referred to in the AIPS source code.  The file $HOME/xxx/UNIX/PP is
a shell script that serves as a preprocessor for all Fortran source
code.  One of PP's steps is to insert the specified include files into
the source code prior to compilation.

$HOME/xxx/HELP                                   (HLPFIL)

   This subdirectory contains the help files (of the form *.HLP) used
by AIPS.  HELP files contain text used by the verb INPUTS, followed
by a line of dashes and the text used by the verb HELP followed again
by a line of dashes and finally the text used by the verb EXPLAIN.

$HOME/xxx/HIST                                   (HST)

   This subdirectory contains the CHANGE.DOC and CHANGED.* files
containing a record of the changes made to AIPS programs.

$HOME/xxx/LOAD                                   (LOAD)

   This subdirectory contains the executable modules (*.EXE) comprising
the AIPS system.  If you do not have an array processor, this is also
where the pseudo array processor executable modules are stored.
Otherwise, real array processor modules are stored here and their pseudo
array processor counterparts are stored in the directory
$HOME/xxx/PSAP/LOAD.  AIPS provides an adverb called VERSION to specify
the directory where the desired executable module is to be found and
in addition to the mnemonics NEW, OLD, NEWPSAP, OLDPSAP and LOCAL,
full directory pathnames are also recognized (e.g., /usr/joe/...).

$HOME/xxx/AIPS                                   (POPS)

   This subdirectory is where the object module library (SUBLIBU) resides
for subroutines used exclusively by the main AIPS program or the stand
alone utility programs (i.e., not AIPS tasks).  It is referred to as
the "POPS" node for historical reasons.

$HOME/xxx/AIPS/SUB                               (AIPSUB)

   This subdirectory contains the source code for the machine
independent subroutines used exclusively by the main AIPS program,
the batch subsystem, or the utility programs.

$HOME/xxx/AIPS/PGM                               (AIPPGM)

   This subdirectory contains the source code for the main AIPS program,
the batch subsystem programs, and the utility programs.

$HOME/xxx/AIPS/ZPGM                              (none)

   This subdirectory serves as the major node for stand alone programs
that are peculiar to operating systems (just as in case of the Z-routine
subdirectories below).  Examples are the two routines used frequently to
start up and terminate an AIPS session, ZSTRTA and ZSTOPA.

$HOME/xxx/AIPS/ZSUB/MC4                          (AIPMC4)

   This subdirectory serves as the root for all the source code for
Modcomp IV specific subroutines used exclusively by the main AIPS program,
the batch subsystem, or the utility programs.

$HOME/xxx/AIPS/ZSUB/MFT                          (AIPMFT)

   This subdirectory serves as the root for all the source code for
IBM OS/MFT specific subroutines used exclusively by the main AIPS program,
the batch subsystem, or the utility programs.

$HOME/xxx/AIPS/ZSUB/UNIX                         (none)

   This subdirectory serves as the root for all the source code for UNIX
specific subroutines used exclusively by the main AIPS program, the
batch subsystem, or the utility programs.

   It contains subdirectories that contain subroutines that have
been developed for several different flavors of UNIX as well as
subdirectories called GEN and LOC.  GEN contains a set of Z-routines
that are believed to be generic.  LOC is where the Z-routines for the
local system should be stored.  Currently, the following subdirectories
exist:

$HOME/xxx/AIPS/ZSUB/UNIX/GEN                     (AIPGEN)
   Routines that are believed to be generic.

$HOME/xxx/AIPS/ZSUB/UNIX/LOC                     (AIPZ)
   Routines for the local system.

$HOME/xxx/AIPS/ZSUB/UNIX/BSD1                    (AIPBSD1)
   Routines for 4.1bsd UNIX.

$HOME/xxx/AIPS/ZSUB/UNIX/BSD2                    (AIPBSD2)
   Routines for 4.2bsd UNIX.

$HOME/xxx/AIPS/ZSUB/UNIX/MC                      (AIPMC)
   Routines for Masscomp's implementation of Bell's System III UNIX

$HOME/xxx/AIPS/ZSUB/UNIX/UTS                     (AIPUTS)
   Routines for Amdahl's implementation of Bell's Version 7 UNIX

$HOME/xxx/AIPS/ZSUB/UNIX/UNOS                    (AIPUNOS)
   Just a copy of the UTS routines sent to a Charles River Data site
   running UNOS.


$HOME/xxx/AIPS/ZSUB/VMS                          (AIPVMS)

   This subdirectory contains the source code for the VAX/VMS machine
dependent subroutines used exclusively by the main AIPS program, the
batch subsystem, or the utility programs.

$HOME/xxx/APL                                    (APL)

   This subdirectory is where the object module library (SUBLIBU) resides
for subroutines used by the AIPS programs and the tasks.

$HOME/xxx/APL/SUB                                (APLSUB)

   This subdirectory contains the source code for the machine
independent subroutines used by the AIPS programs, and the tasks.

$HOME/xxx/APL/PGM                                (APLPGM)

   This subdirectory contains the source code for the tasks that do not
use the array processor.

$HOME/xxx/APL/APGM                               (APLAPG)

   This subdirectory contains the source code for tasks that use the
array processor.

$HOME/xxx/APL/ZSUB/MC4                           (APLMC4)

   This subdirectory serves as the root for all the source code for
Modcomp IV specific subroutines used exclusively by the main AIPS programs
and the tasks.

$HOME/xxx/APL/ZSUB/MFT                           (APLMFT)

   This subdirectory serves as the root for all the source code for
IBM OS/MFT specific subroutines used exclusively by the main AIPS programs
and the tasks.

$HOME/xxx/APL/ZSUB/UNIX                          (none)

   This subdirectory serves as the root for all the source code for UNIX
specific subroutines used exclusively by the main AIPS programs and the
tasks.

   It contains subdirectories that contain subroutines that have
been developed for several different flavors of UNIX as well as
subdirectories called GEN and LOC.  GEN contains a set of Z-routines
that are believed to be generic.  LOC is where the Z-routines for the
local system should be stored.  Currently, the following subdirectories
exist:

$HOME/xxx/APL/ZSUB/UNIX/GEN                      (APLGEN)
   Routines that are believed to be generic.

$HOME/xxx/APL/ZSUB/UNIX/LOC                      (APLZ)
   Routines for the local system.

$HOME/xxx/APL/ZSUB/UNIX/BSD1                     (APLBSD1)
   Routines for 4.1bsd UNIX.

$HOME/xxx/APL/ZSUB/UNIX/BSD2                     (APLBSD2)
   Routines for 4.2bsd UNIX.

$HOME/xxx/APL/ZSUB/UNIX/MC                       (APLMC)
   Routines for Masscomp's implementation of Bell's System III UNIX

$HOME/xxx/APL/ZSUB/UNIX/UTS                      (APLUTS)
   Routines for Amdahl's implementation of Bell's Version 7 UNIX

$HOME/xxx/APL/ZSUB/UNIX/UNOS                     (APLUNOS)
   Just a copy of the UTS routines sent to a Charles River Data site
   running UNOS.

$HOME/xxx/APL/ZSUB/VMS                           (APLVMS)

   This subdirectory contains the source code for the VAX/VMS machine
dependent subroutines used by the AIPS programs and the tasks.

$HOME/xxx/APL/YSUB/DEA                           (APLDEA)

   This subdirectory contains the source code for the subroutines of
both the AIPS program and the tasks that are used with the Deanza
display device.

$HOME/xxx/APL/YSUB/IIS                           (APLIIS)

   This subdirectory contains the source code for the subroutines of
both the AIPS program and the tasks that are used with the Model 70
IIS display device.

$HOME/xxx/APL/YSUB/M75                           (APLM75)

   This subdirectory contains the source code for the subroutines of
both the AIPS program and the tasks that are used with the Model 75
IIS display device.

$HOME/xxx/NOTST                                  (NOTST)

   This subdirectory is where the object module library (SUBLIBU) resides
for the subroutines that do not yet conform to the AIPS programming
standards.

$HOME/xxx/NOTST/SUB                              (NOTSUB)

   This subdirectory contains the source code for the subroutines that
do not yet conform to the AIPS programming standards.

$HOME/xxx/NOTST/PGM                              (NOTPGM)

   This subdirectory contains source code for the non-AP using tasks
that do not yet conform to the AIPS programming standards or that use
non-standard subroutines.


$HOME/xxx/NOTST/APGM                             (NOTAPG)

   This subdirectory contains source code for the AP using tasks that do
not yet conform to the AIPS programming standards or that use non-
standard subroutines.

$HOME/xxx/NOTST/ZSUB/MC4                         (NOTMC4)

   This subdirectory serves as the root for all the source code for
Modcomp IV specific subroutines used exclusively by the tasks that do not
yet conform to the AIPS programming standards.

$HOME/xxx/NOTST/ZSUB/MFT                         (NOTMFT)

   This subdirectory serves as the root for all the source code for
IBM OS/MFT specific subroutines used exclusively by the tasks that do not
yet conform to the AIPS programming standards.

$HOME/xxx/NOTST/ZSUB/UNIX                        (none)

   This subdirectory serves as the root for all the source code for UNIX
specific subroutines used exclusively by the tasks that do not yet
conform to the AIPS programming standards.

   It contains subdirectories that contain subroutines that have
been developed for several different flavors of UNIX as well as
subdirectories called GEN and LOC.  GEN contains a set of Z-routines
that are believed to be generic.  LOC is where the Z-routines for the
local system should be stored.  Currently, the following subdirectories
exist:

$HOME/xxx/NOTST/ZSUB/UNIX/GEN                    (NOTGEN)
   Routines that are believed to be generic.

$HOME/xxx/NOTST/ZSUB/UNIX/LOC                    (NOTZ)
   Routines for the local system.

$HOME/xxx/NOTST/ZSUB/UNIX/BSD1                   (NOTBSD1)
   Routines for 4.1bsd UNIX.

$HOME/xxx/NOTST/ZSUB/UNIX/BSD2                   (NOTBSD2)
   Routines for 4.2bsd UNIX.

$HOME/xxx/NOTST/ZSUB/UNIX/MC                     (NOTMC)
   Routines for Masscomp's implementation of Bell's System III UNIX

$HOME/xxx/NOTST/ZSUB/UNIX/UTS                    (NOTUTS)
   Routines for Amdahl's implementation of Bell's Version 7 UNIX

$HOME/xxx/NOTST/ZSUB/UNIX/UNOS                   (NOTUNOS)
   Just a copy of the UTS routines sent to a Charles River Data site
   running UNOS.

$HOME/xxx/NOTST/ZSUB/VMS                         (NOTVMS)

   This subdirectory contains the source code for the VAX/VMS machine
dependent subroutines used by the AIPS programs and the tasks.

$HOME/xxx/FPS                                    (FPSFIL)

   This subdirectory is where the object module library (SUBLIBU) resides
for the Floating Point Systems 120B array processor.

$HOME/xxx/FPS/SUB                                (FPSSUB)

   This subdirectory contains the source code (of the form *.FOR, *.AP,
*.VFC) for the Floating Point Systems 120B array processor.

$HOME/xxx/PSAP                                   (PSAP)

   This subdirectory is where the object module library (SUBLIBU) resides
for the array processor simulator subroutines (i.e. pseudo AP).

$HOME/xxx/PSAP/SUB                               (SAPSUB)

   This subdirectory contains the source code for the array processor
simulator subroutines.

$HOME/xxx/PSAP/ZSUB/MC4                          (SAPMC4)

   This subdirectory serves as the root for all the source code for
Modcomp IV specific subroutines used in the array processor simulation.

$HOME/xxx/PSAP/ZSUB/MFT                          (SAPMFT)

   This subdirectory serves as the root for all the source code for
IBM OS/MFT specific subroutines used in the array processor simulation.

$HOME/xxx/PSAP/ZSUB/UNIX                        (none)

   This subdirectory serves as the root for all the source code for UNIX
specific subroutines used in the array processor simulation.

   It contains subdirectories that contain subroutines that have
been developed for several different flavors of UNIX as well as
subdirectories called GEN and LOC.  GEN contains a set of Z-routines
that are believed to be generic.  LOC is where the Z-routines for the
local system should be stored.  Currently, the following subdirectories
exist:

$HOME/xxx/PSAP/ZSUB/UNIX/GEN                     (SAPGEN)
   Routines that are believed to be generic.

$HOME/xxx/PSAP/ZSUB/UNIX/LOC                     (SAPZ)
   Routines for the local system.

$HOME/xxx/PSAP/ZSUB/UNIX/BSD1                    (SAPBSD1)
   Routines for 4.1bsd UNIX.

$HOME/xxx/PSAP/ZSUB/UNIX/BSD2                    (SAPBSD2)
   Routines for 4.2bsd UNIX.

$HOME/xxx/PSAP/ZSUB/UNIX/MC                      (SAPMC)
   Routines for Masscomp's implementation of Bell's System III UNIX

$HOME/xxx/PSAP/ZSUB/UNIX/UTS                     (SAPUTS)
   Routines for Amdahl's implementation of Bell's Version 7 UNIX

$HOME/xxx/PSAP/ZSUB/UNIX/UNOS                    (SAPUNOS)
   Just a copy of the UTS routines sent to a Charles River Data site
   running UNOS.

$HOME/xxx/PSAP/ZSUB/VMS                          (SAPVMS)

   This subdirectory contains the source code for the VAX/VMS machine
dependent subroutines used in the array processor simulation.

$HOME/xxx/PSAP/LOAD                              (none)

   If you have an AP, the executable routines for the AP using tasks
which have been linked with the pseudo AP subroutines should be placed
here.  Otherwise this area is empty.  These tasks can be useful when
the array processor is busy or for debugging.

$HOME/xxx/DOC                                    (DOC)

   This subdirectory only contains other subdirectories.

$HOME/xxx/DOC/TEXT                               (DOCTXT)

   This subdirectory contains the text files for the main AIPS manuals.

$HOME/LOCAL                                      (LOCAL)

   This subdirectory should contain a subdirectory for any site specific
routines.  This area and the other LOCAL subdirectories are not updated
by our installation procedure.

$HOME/LOCAL/SUB                                  (none)

   This subdirectory should contain source code for any site specific
subroutines.

$HOME/LOCAL/PGM                                  (none)

   This subdirectory should contain source code for any site specific
programs which do not use the AP.

$HOME/LOCAL/APGM                                 (none)

   This subdirectory should  contain source code for any site specific
programs which use the AP.

$HOME/LOCAL/HELP/                                (none)

   This subdirectory should contain the help/inputs/explain text files
for any site specific tasks.

$HOME/LOCAL/LOAD/                                (none)

   This subdirectory should contain the executable modules for any
site specific tasks.


   Your system may have additional directories where array processor
code (similar to the $HOME/xxx/FPS directories above) and TV display
device code (similar to the $HOME/xxx/APL/YSUB directories above) would
reside.
