
     Given below are outlines of the file organization and update
procedures used on the Vax and Modcomp by the NRAO AIPS
programming group.  The rules are fairly casual and sketchy at the
moment and, if good will does not prevail, may have to become more
detailed in the future.  These rules must be followed by NRAO
programmers, but are, of course, only advisory for outside groups.



    Procedures for updating in the Post-Processing System

         (Issue date: March 16, 1981 by Ed Fomalont)


I.  AIPS FILE ORGANIZATION IN A VAX


    A.  AIPS logon - user production area
        This area contains
            *.EXE   execution modules and a few command files
            all necessary data, message and POP's files.
            This area runs [VPOPS]-level source code.

    B.  VPOPS logon - (Restricted, access by password)
         This area contains the production source code.
              *.EXE   execution modules
              *.INC   'include' modules
              *.COM   command modules
         No data, message or POP's files are located in VPOPS since
         AIPS is not run out of VPOPS.
         Subdirectories containing the source code are:
              [VPOPS.APL]   source code for application software
              [VPOPS.AIPS]  source code for AIPS and TV
              [VPOPS.NOTST] 'non-standard' source code; esp. AP code
              [VPOPS.FPS]   array processor code: microcode, VFC, and
                            their semi-Fortran results
              [VPOPS.PSAP]  array processor simulation code: looks
                            like AP routines, but runs in CPU
    C.  TEST logon - experimental working code
        This area contains a duplication of VPOPS and its
        subdirectories with the following differences:
            [TEST.HELP] Help files for test area tasks, etc.
            [TEST.INPUTS] Inputs for TEST area tasks, verbs
            CHANGE.DOC contains documentation of all changes in TEST
               including source code, documentation, Helps, Inputs ...
            all necessary data, message and POP's files are included
               in TEST so that AIPS can be run completely out of TEST
               for debugging.

    D.  INDIVIDUAL directories
        Program development and modification

    E.  INPUTS logon
        Text files containing inputs for all tasks and verbs
        Used by [AIPS] for [VPOPS] version of code

    F.  HELP logon
        Text files containing help information for all tasks, verbs
        and adverbs.  Used by [AIPS] for [VPOPS] version of code.

    G.  DOC logon
        Text files containing brief documentation of all software
        This includes:
           The AIPS manual
           WHATSUP.  description of all subroutine
           APPLSUP.  description of application code
           POPSUP.   description of POP's oriented code
           TASKSUP.  description of tasks
           TVSUP.    description of TV routines
           UTILSUP.  description of utilities
           APSUP.    description of real & pseudo-array processor code
           INCSUP.   description of Include files
           WISH.     a wish list of work to be done in AIPS
                     in the forseeable future


    H.  RUN logon
        Text files containing RUN files for use in AIPS


II.  PROCEDURE FOR INCORPORATING NEW CODE IN A VAX


    A.  TASKS
        Modify existing code by first copying the code from the
        TEST subdirectory into your user area.  New code should
        be also generated in your user area.  Compile and link the
        new task in the TEST area by using an appropriate command
        file to obtain the new source code from your area and the
        remaining code from the TEST libraries.  This will generate
        in TEST a .EXE file which can be used in AIPS for further
        debugging.  Modify and generate the appropriate HELP and
        INPUTS files for the task.  When the program appears to work
        do the following:
            Generate .EXE file in TEST without the debug option
            Update all HELP, INPUTS and DOC files
            Note modification or addition in CHANGE.DOC file
            The code should be place in the [TEST.NOTST] subdirectory.
               The AIPS manager will verify it and ultimately move it
               to a standard area.
            Send listing of all new or revised code to the
               AIPS manager.  He will check the code and docu-
               mentation, add new adverbs if necessary and update
               VPOPS and AIPS at the appropriate times.  Updates
               to other post-processing systems will be handled by
               the AIPS manager.

    B.  VERBS
        To write new verbs, consult with the AIPS manager as
        you design the subroutine.  He will assign a subroutine
        name and make appropriate changes in the TEST version
        of AIPS to allow your verb(s) and subroutine(s) to be
        incorporated.  Then type the code and debug and routines
        as you would for a task.  However, AIPS will have to be
        relinked in order to execute and further debug the verb.

    C.  QUICK FIXES
        Quick fixes of bugs should be done as described above.  Contact
        the AIPS manager at the VLA-site or in CV as soon as possible
        in order to update VPOPS quickly.  Make sure all changes are
        documented in CHANGE.DOC.  Load modules (name.EXE) may be
        copied from [TEST] to [AIPS] for temporary use.
        However, they lack the protection accorded to modules
        placed in [AIPS] by the AIPS Manager and they will
        disappear without warning unless the Manager has been
        properly informed of their presence.



III. AIPS FILE ORGANIZATION IN A MODCOMP


    A.  Procedure AIPS causes execution of the program AIPS
        from global logic file names LMV and VTL.  These are
        normally assigned go physical files VPL and VQL, resp.

    B.  There are batch procedures roughly equivalent to VAX
        logons. These procedures assign the logical names
        USL, UL and PL (source, compiled code, load modules, resp.)
        to the appropriate physical files.  The equivalents of the
        TEST logon, used for public experimental code, are:
           TAPL   (files VSL, VEL, VQL) for normal, standard code
           TAIPS  (files VSR, VER, VPL) for standard subroutines of
              the AIPS program itself
           TNOTST (files VSN, VEN, VQL) for non-standard code
           TFPS   (files VSX, VEX, VQL) for real FPS code
           TPSAP  (files VSP, VEP, VQP) for pseudo AP code

    C.  The equivalents of the VPOPS logon are not now implemented
        on the Modcomp in Charlottesville.

    D.  The procedures equivalent to the text logons in the VAX are
        similar and are called
           HELP   (file HE100000)
           INPUTS (file IN100000)
           RUN    (file RU100000)
           DOC    (file DO100000)

    E.  All released include files (*.INC) are kept in file VMS
        and are accessed via procedure INC.  Test includes should
        be kept in the same source file (USL) as the program into
        which they are included.

    F.  All standard files (USL's) have a member called CHNGINFO.
        Any chages to the source file must be recorded in this
        member.  These are no longer used in Charlottesville.  Record
        all changes in the Vax [TEST]CHANGE.DOC file.

@@
IV.  PROCEDURE FOR INCORPORATING NEW CODE IN A MODCOMP


    A.  TASKS
        Write, compile and link new tasks in your user area.
        Prepare an appropriate INPUTS member in the INPUTS
        area.  The task may be tested using AIPS by (temporarily)
        setting the global assignment of VTL to your load module file.
        Use existing adverbs when possible at least for the testing
        stages.  When the code appears to work do the following:
           Move the code to the TEST libraries (TAIPS for sub-
              routines of AIPS, else TNOTST)
           Update all HELP, INPUTS and DOC files.
           Note all changes in the appropriate CHNGINFO files.
              In Charlottesville, record the changes instead in the Vax
              [TEST]CHANGE.DOC file.
           Send listing of all new or revised code to the AIPS
              manager.  The manager will check everything and update
              VAPL et al. at the appropriate time.  New adverbs will
              be chosen at this time.  Updates to other post-processing
              systems will be handled by the AIPS manager.

    B.  VERBS
        To write new verbs, consult with the AIPS manager
        as you design the subroutine.  He will assign a subroutine
        name and make appropriate changes in the TAIPS version of
        AIPS to allow your verb(s) and subroutines to be incorpor-
        ated.  Type the code and test its compilation in your area.
        Then move it to the TAIPS source file, compile it into
        the TAIPS element library and relink AIPS.


    C.  QUICK FIXES
        Quick fixes of bugs should be done as described above.  Contact
        the AIPS manager as soon as possible in order to update VAPL
        as quickly as possible.  Make sure all changes are documented
        in CHNGINFO.
