  Help Library file:   plot3d
 
  HELP
 
      PLOT3D Version 3.6    1 February 1989
 
      Format:  HELP [keyword [keyword [keyword ...]]]
 
      The HELP command prints information on a list of keywords.
      "*" is a wildcard, while "*..." matches anything at the current
      level or below.  Thus "HELP *..." prints all HELP information
      available.  When responding to a "Topic?" or "Subtopic?" prompt,
      a "?" causes information for the current level to be repeated;
      a <RETURN> pops HELP up one level, and an end-of-file terminates
      the HELP session.
 
 
  General_information
 
      In this documentation, information which can be included on a
      command line which is optional is enclosed in [square brackets].
      Control characters are denoted by a preceding caret (^) (i.e.,
      ^D for control-D).
 
      The basic information needed for making a plot (after reading in the
      XYZ and Q data files) are: (1) the function to plot (FUNCTION
      command), and (2) the plot ranges, i.e. XMIN, XMAX, etc. (MINMAX
      command).  A contour plot of Mach number can thus be made using
      the commands
 
          READ/2D/XYZ=xyzfile/Q=qfile
          FUNCTION 154
          MINMAX -1 2 -1.5 1.5
          PLOT/2D
 
      Arguments can be delimited by either blanks or commas, and real
      numbers entered as integers (no decimal point) will be interpreted
      correctly.
 
      The VT100 "green screen" and TEKTRONIX terminals are treated (and
      respond) identically.
 
      Versions for the following machines/graphics libraries are available:
 
      o Silicon Graphics IRIS 2xxx or 3xxx/Unix (W3.5-GL2)
      o Silicon Graphics IRIS 4D/70, 4D/70GT/Unix (4D1-3.0)
      o Generic Unix and IRIS Remote Graphics Library (RGLA-GL2),
           with IRIS 2xxx or 3xxx (W3.5-GL2) and IRIS Remote Graphics
           Library (RGLA-GL2)
           (this version is suitable for CRAY 2/Unicos, Convex, or Alliant
            with remote IRIS 2xxx or 3xxx)
      o VAX/VMS (V4.5) and DISSPLA (V10.5)
      o VAX/VMS (V4.5) and DI-3000 (Version 4)
      o Generic Unix and DI-3000 (Version 4)
      o Apollo/Unix and GMR3D (Version 2.0)
           (no text on plots)
 
      o Sun/SunCore (PLOT3D Version 3.4 only)
           (8 bit-plane color system only)
 
 
      If you have any suggestions or find any anomalies, please contact:
 
         Larry Pierce
         MS 258-2
         Applied Computational Fluids Branch
         NASA Ames Research Center
         Moffett Field, CA  94035
         (415) 694-4492 or (FTS) 464-4492
         pierce%ames-nas@ames-io.ARPA
 
         or
 
         Pieter G. Buning
         MS 258-2
         Computational Fluid Dynamics Branch
         NASA Ames Research Center
         Moffett Field, CA  94035
 
 
  Journal_file
 
      During a PLOT3D session, a "journal file" named PLOT3D.JOU is kept
      of all commands entered to the program.  In the case of an abnormal
      termination (i.e., crash), this file is saved.  The file can also
      be saved by exiting from PLOT3D using EXIT/SAVE (or QUIT/SAVE).
      Normally the journal file is deleted when the program terminates.
 
 
  Initialization_file
 
      When PLOT3D first starts up, it looks for a file "PLOT3DINI.COM"
      in the current directory.  If the file is there, PLOT3D reads
      commands from it first, before taking input from the normal input
      device (the terminal).
 
 
  Installation_of_PLOT3D
 
      Installation notes for PLOT3D Version 3:
 
      1. Check search path (PATH) for help library filename in SUBROUTINE
         HLPCMD.
      2. COMMON blocks /WALL/ and /SUBS/ currently use ~400,000 words
         each, due to the maximum number of (multiple) grids being set to
         50.  To reduce this storage, change all occurrences of "MGRID=50"
         to "MGRID=5" (or whatever).
      3. Look at SUBROUTINE PLTCMD for current plotting device names,
         SUBROUTINE PLTDEV for calls to routines which initialize devices.
         For DISSPLA and DI-3000, which device drivers are available is
         site-specific.
      4. Operating system-specific routines for Unix versions are in files
         "unix.f" and "unixc.c", for VAX/VMS versions are in "VMS.FOR".
         For adapting PLOT3D to another operating system, see
         APPENDIXB.TXT in subdirectory DOCUMENTATION for a description of
         what these routines do.
 
 
  Release_notes
 
 
 
    3.6
 
 
 
      New_features
 
          New versions:
 
          o DI-3000 versions for both VAX/VMS and UNIX available,
            courtesy LTV Aircraft Products Group, Dallas TX, with
            enhancements by Flow Industries, Inc., Kent, WA, and
            Jacques Middlecoff, General Electric Company, NAS User Services.
 
          o SUN/SunCore version of PLOT3D (Version 3.4 only) available,
            courtesy General Electric Company and Sun Microsystems, Inc.
 
          o Apollo/UNIX and GMR3D version is available; Apollo/AEGIS will
            no longer be supported.
          o CRAY/COS and IRIS 1xxx versions are no longer supported.
 
          New commands/options:
 
          o CONTOURS/LINEAR/CUBIC allows the use of parametric cubic
            interpolation for contour lines/shock wave lines instead of the
            usual linear interpolation.  This helps remove "scalloping" from
            contours on highly stretched, high aspect ratio grids.
          o PLOT/OVERLAY=window# allows plots to be overlaid on top of each
            other.  Implemented for IRIS only.
          o PLOT/TITLE/NOTITLE turns on/off the function name (top line of
            the title text).  Title lines entered with the TEXT command will
            still be plotted.
          o PLOT/BAR/NOBAR turns on/off the contour level text.
          o PLOT/ADDITIONAL_TEXT/NOADDITIONAL_TEXT turns on/off the
            additional text information (Mach number, grid size, etc.)
            (Please feel free to use abbreviations for all commands and
            qualifiers!)
          o LIST/FORMATTED fixed to produce files that are compatible across
            different machines, and to produce files which do not exceed
            80 characters per record.
          o PLOT/NOSCRIPT implemented to turn off script command processing.
          o DELETE and RETURN commands added for PLOT/SCRIPT mode to delete
            or leave a graphics window.  See "HELP PLOT Script *".
          o PLOT/SURFACE option renamed to PLOT/FSURFACE to avoid confusion
            with the contour type SURFACE.
 
          New features:
 
          o Dynamic memory allocation has been implemented for all Unix
            and VAX/VMS versions.
 
          o Use of PLOT3D with incompressible flow documented.  See "HELP
            FUNCTIONS Nondimensionalizations".
 
          o Search for Help file uses simple path, ($HOME/bin,/usr/local/bin,
            /usr/unsupported/bin,/usr/unsupported/man) for Unix, SYS$LOGIN,
            SYS$SYSTEM,SYS$HELP,STT0:[BUNING.PLOT3D],DUA0:[CFDLIB.PLOT3D] for
            VAX/VMS.
          o Maximum number of points in a particle trace increased to 4000;
            default set to 2000.
          o Perspective field-of-view has been reduced from 30 deg. to
            20 deg. (except DISSPLA).  This matches GAS.
          o Arrowhead half-aspect ratio changed from 11 to 6.67.
 
 
          New functions:
 
          o Added functions "Helicity density" (function 186), "Relative
            helicity" (187), and "Filtered relative helicity" (188), for
            plotting vortex cores.  See "HELP FUNCTIONS Function_definitions
            Helicity".
          o Added "Divergence of velocity" (158), useful for plotting shocks.
            See "HELP FUNCTIONS Function_definitions Divergence_of_velocity".
          o Added "2D crossing grid line check" (function 10), "Tetrahedron
            decomposition cell volume check" (11), and "Tetrahedron
            decomposition grid crossing check" (12).  See "HELP FUNCTIONS
            Function_definitions Grid_checks".
          o Added "Log of normalized density" (104), "Log of normalized
            pressure" (119), and "Log of normalized temperature" (124),
            useful for plotting high-supersonic flows.
          o Added vector function "Density gradient" (211), scalar functions
            "Pressure gradient magnitude" (192) and "Density gradient
            magnitude" (193).
 
 
          IRIS improvements:
 
          o Added PostScript screen DRAW hardcopy capability, tied to
            "P" key (.RAS file screen dump has been moved to "R" key).
            This is a high-quality image, as it uses moves and draws rather
            than a (pixel) screen dump.  See "HELP PLOT IRIS_interface
            PostScript_screen_saves".  IMPLEMENTED FOR IRIS 2XXX/3XXX;
            MAY work on IRIS 4D/70; will NOT work on 4D/70GT.
          o PLOT/FIGURE=(areax,areay,charht) option implemented (fixed
            plot size, no text).
          o INCLUDE file "fglbugs.h" created to isolate and correct bugs in
            IRIS Graphics Library INCLUDE file <fgl.h>.
          o IRIS 2xxx,3xxx and 4D versions consolidated by using CPP (UNIX
            C Preprocessor) statements.
          o Added PostScript screen DUMP (pixel image) hardcopy capability,
            tied to "D" key ("D" for dangerous).  This can tie up a printer
            for HOURS!  See "HELP PLOT IRIS_interface
            PostScript_screen_saves".
 
          UNIX improvements:
 
          o The UNIX interface has been totally rewritten to be portable: the
            interface is identical between the IRIS, CRAY 2, CONVEX, SUN, and
            BSD 4.3 VAX.  Several standard FORTRAN/C calling conventions have
            been coded, and a particular convention can easily be selected via
            the INCLUDE file "fortcall.h".  Use of CPP (UNIX C Preprocessor)
            with both FORTRAN and C source files is required.
          o Keyboard interrupts (^C) have been enabled.
          o Floating point exception trapping has been enabled where possible.
 
          REMOTE (e.g. CRAY 2)/IRIS improvements:
 
          o Added option for manual startup of PLOT3D_LCL.
          o Startup of PLOT3D_LCL via the UNIX "rsh" or "remsh" command now
            includes a crude PATH capability, checking $HOME/bin,
            /usr/local/bin, and /usr/unsupported/bin directories.
 
 
      Bugs_fixed
 
          Commands/options:
 
          o LIST/FORMATTED fixed to produce files that are compatible across
            different machines, and to produce files which do not exceed
            80 characters per record.
          o Added PLOT/NOSCRIPT option to turn off script command processing.
 
          Features:
 
          o IRIS hidden line attribute (WALLS, SUBSETS) has been fixed.
          o Reading .PAR files with too many points per line is now handled
            (trace lines are truncated).
          o If a new file is to be created and a file of that name already
            exists, it is deleted first (otherwise a FORTRAN run-time error
            would result).
          o Changed confusing error message about an "insidious bug" and
            "automatic paging" to read "Internal storage exhausted while
            getting space for variable xxx, grid n...  Automatic paging of
            variables has not been implemented."
          o Fixed possible divide-by-zero in contour level scaling.
 
          Functions:
 
 
          o Computation of "Stagnation pressure coefficient" (115) corrected.
 
          o Several 2D particle tracing bugs have been fixed.
          o Handling of extrapolation improved for coloring of particle
            traces by a scalar function.
          o Bug in restoring subsets after drawing particle traces colored
            by a scalar function corrected.
          o Particle tracing at grid singularities fixed.
          o Bad warning message from particle tracing colored by a scalar
            function corrected (had caused some spectacular IRIS crashes).
          o Fixed bad dimensions in 3x2 matrix inversion, used for restricted
            particle tracing.
          o Added a maximum number of steps to initially find a point
            for particle tracing.
 
 
          IRIS interface:
 
          o Switching from 60Hz to 30Hz or NTSC display modes fixed.
          o Backface polygon removal initialization fixed.
          o Seiko screen dump now reads the correct screen buffer.
 
          GRAFIX interface:
 
          o Fixed bug in drawing translated 3D polygons (used when plotting
            function surfaces).
 
          GMR3D interface:
 
          o Bug in 2D axis routine fixed.
 
          VMS interface:
 
          o Help File access has been corrected.
          o Translation of logical device names into physical device names
            fixed.
 
          AEGIS interface:
 
          o Added code-arounds for FORTRAN compiler bugs.
 
          CRAY 2 interface:
 
          o Removed all code-arounds for CFT77 (compiler has improved).
 
 
 
      Known_problems
 
          Listed are known or potential problems with various versions of
          PLOT3D.
 
 
        IRIS
 
            o Output to the journal file "plot3d.jou" is not flushed if
              PLOT3D is killed, so the file may be incomplete.
            o On the IRIS 2xxx/3xxx, while running under MEX, holding the
              "hogwhiledown" button down when PLOT3D tries to attach to the
              graphics window makes MEX go bye-bye.  To recover, type
              "gclear", kill PLOT3D (if it ain't dead yet), and restart
              MEX.  The "attached" window is the one with the highlighted
              (usually red) border.  For info on "hogwhiledown", see "HELP
              PLOT IRIS_interface".
            o PostScript screen draw MAY NOT work for IRIS 4D/70, and WILL
              NOT work for 4D/70GT.
            o IRIS 2xxx/3xxx version ignores ILLEGALOP floating point
              exceptions because these are sometimes generated incorrectly
              due to a FORTRAN compiler bug.
            o Z-buffering an image with dashed, dotted, chaindashed, or
              chaindotted linestyles will hang the IRIS 2xxx/3xxx.
            o Changing from single- to double-buffer mode or vice-versa (such
              as when turning z-buffering on or off), when using the window
              manager and more than one plot is on the screen can cause the
              screen to be refreshed incorrectly.  Move some windows slightly
              to force MEX to update the screen.  (IRIS 2xxx/3xxx)
            o In general, and especially at the command prompt level, PLOT3D
              does not keep its graphics windows "idling" with a "swapbuffers"
              (see "Silicon Graphics PIPELINE", Vol. II, No. 1, Fall 1985,
              p. 12).  Thus under the window manager (and double buffering),
              another graphics program will hang until PLOT3D swaps buffers.
            o For very complicated plots and/or particle trace plots, PLOT3D
              has been observed to respond VERY sluggishly.  Response to the
              mouse may take on the order of a minute (keep that mouse button
              down!).  Further screen updates may be somewhat faster.
            o PLOT3D will not update the screen correctly if the window
              manager has been started up using "mex -d" (double-buffered).
              (IRIS 2xxx/3xxx)
            o PLOT3D uses A LOT of (virtual) memory.  IRISes at NASA Ames
              have been reconfigured with 24MB of swap space.  This involves
              repartitioning the system disk (see the "IRIS Series 3000 Owner's
              Guide, Version 2.0" or your SGI rep.).
 
 
        REMOTE/IRIS
 
            o When PLOT3D is interrupted by a ^C while making a plot,
              PLOT3D_LCL may continue to run.  This PLOT3D_LCL should be
              terminated before making another plot.
            o Other problems with communication between PLOT3D and
              PLOT3D_LCL may occur after interrupting PLOT3D.
 
 
        CRAY_2
 
            o When compiling on the CRAY 2, ignore warning messages about
              duplicate entries.
 
 
        VMS
 
            o You may need to increase your page file quota to link and run
              PLOT3D.  You need special priviledge to do this:
 
                 $SD SYS$SYSTEM:
                 $RUN AUTHORIZE
                 MODIFY username /PGFLQUOTA=40000
 
 
        DISSPLA
 
            o Divide-by-zero errors are sometimes generated by DISSPLA while
              making 2D contour plots with labels.  The traceback may point
              to QQTLB(?), CONTUR, or ENDCO2.  This is a DISSPLA internal bug.
              Try changing MINMAX or plotting without contour labels
              ("PLOT/NOLABELS")
            o Spurious lines have been observed on QMS and LN03 output plots.
              The cause is unknown.
 
 
        APOLLO
 
            o Titles and text have not been implemented.
            o PLOT3D is set up to use a maximum of 8 bitplanes of color.
            o The call structure of the C I/O routines has been modified in
              this version to conform to several de facto standards for
              calling C from FORTRAN.  See file "fortcall.h" for the
              currently implemented conventions.
 
 
    3.5
 
 
 
      New_features
 
          New commands/options:
 
          o RAKE/MAXPOINTS=n option added to limit length of particle traces.
          o RAKE/SCALAR_FUNCTION option added for coloring particle traces by a
            scalar function.
          o PLOT/LN03 and PLOT/IMAGEN devices added to DISSPLA version.
          o PLOT/UP=axis option added.
          o PLOT/BACKGROUND=color option added {not in DISSPLA; background
            color must be set in GAS for GRAFIX}.
          o SHOW PLOT command added.
          o SHOW TEXT command added.
          o SHOW FUNCTION also shows the (i,j,k) location of function min and
            max.
          o LIST command added, supporting UNFORMATTED<->FORMATTED<->BINARY
            XYZ and Q data file conversion.
          o VECTOR attributes added to allow many different types of vector
            displays.
          o READ prints an informational message when reading a file, including
            grid size.
          o FSURFACE/NOCONTOUR option name changed to FSURFACE/GRID.
 
          New features/versions:
 
          o Particle tracing uses 2nd-order Runge-Kutta time-advance, still 5
            steps per grid cell.  Slow, and oil flow ain't always what we'd
            want.
          o Removed XY,XZ,YZ restriction capability for particle tracing.
          o CONTOUR plane orientation doesn't matter anymore if subset is just
            a plane.
          o COLOR_CONTOURS now fill in between contour lines, instead of
            filling each grid cell with only one color.
          o Contour GRID_LINES change color at contour levels, rather than
            having only one color for each grid line segment.
          o SHADED_SURFACE walls that are just a single line will be drawn and
            filled as a single polygon.  This can be used to fill in an airfoil
            outline, for instance.
          o HIDDEN_LINE attribute enabled, as polygons filled with the
            background color, then outlined.  (Ordering of the polygons is thus
            still important.)
          o Polygon shininess attribute enabled.  See
            "HELP Attributes Shininess" for an explanation.
          o Journal file capability added--file PLOT3D.JOU saved on abnormal
            exit or EXIT/SAVE.
          o Auto-initialization file capability added--file PLOT3DINI.COM will
            be read and executed on startup of PLOT3D, if it is found in the
            current directory.
          o HELP utility vastly improved.
          o APOLLO version written, using AEGIS and GMR3D; it doesn't do
            everything, but it's workable.
 
 
          New functions:
 
          o Functions "Velocity x vorticity" and "Velocity x vorticity
            magnitude" added.
          o Function "Entropy measure s1" added, a scaled, normalized version
            of exp(s).
 
 
          IRIS improvements:
 
          o IRIS screen saves rewritten to use run-length-encoding for smaller
            files, and to use the ARCGraph RAS file format.  This format
            encodes RGB instead of color map entries, so that pictures can be
            restored in any mode.  A new program RASP restores the screen
            saves, replacing the program PLOT3DPIC.
          o Seiko color printer screen save added to the IRIS version.  See
            "HELP PLOT IRIS_interface Seiko_color_printer_screen_save".
          o More colors available for 6, 8, and 10-plane plots on IRIS.
          o Up to 8 simultaneous graphics windows under window manager on IRIS.
          o Increased WORK array size from 2.5M to 3Mwords on IRIS.  This will
            reduce maximum image complexity.
          o Backface polygon removal implemented for IRIS, tied to "B" key
            during display.
          o Unix SETENV symbols will be translated in PLOT3D when enclosed in
            'single primes'.
 
          DISSPLA improvements:
 
          o 2D polygons now use shading in DISSPLA.
 
          CRAY 2 improvements:
 
          o The CRAY 2/IRIS version of PLOT3D now tries to start up PLOT3D_LCL
            on the workstation.
 
 
      Bugs_fixed
 
          Commands/options:
 
          o READ/PLANES for XYZ file bug fixed (blanking vs. no blanking calls
            were reversed).
          o READ/X="xfile"/Q="qfile" bug fixed (was getting misinterpreted).
          o PLOT/AXES/NOAXES option fixed (wasn't always getting set right).
 
          Features:
 
          o Last contour level coming out white fixed, I hope for good (a
            roundoff problem).
          o "RGB 0 0 0" color now treated correctly.
          o Displaying IK planes in 2D plots should now work correctly (used
            J indices instead of K).
 
 
          Functions:
 
          o Function SWIRL fixed.
          o ENTROPY calculation scaling changed to include specific heat cv.
 
 
          IRIS interface:
 
          o Color table problem with IRIS fixed (only red was displayed due to
            a FORTRAN compiler bug).
          o Worked on near clipping problem with z-buffering on IRIS (where
            z-buffering doesn't work when you're too close to the object).
          o Device INPUTC changed to INPTCH on IRIS; commented out PARAMETER
            initialization of MODECH and INPTCH (these were due to changes in
            the GL2 FORTRAN include file "/usr/include/fgl.h".
          o Mouse buttons should now work correctly under the window manager
            on the IRIS.
          o NTSC display mode for IRIS now correctly maps to a subset of the
            screen.
          o Better handling of keyboard interrupts during graphics
            initialization under MEX.  (Would get message "no more gfports in
            system!!" twice when attempting another plot; would have to
            interrupt again.  If a third plot was tried, system would hang.)
 
          DISSPLA interface:
 
          o MINMAX/xSCALE=scale for DISSPLA now works.
 
          GRAFIX interface:
 
          o 3D shading fixed (was incorrect if VPOINT was specified as
            (x,y,z)).
          o Axis scaling from MINMAX/xSCALE=scale and PLOT/FSURFACE fixed.
 
 
      Known_problems
 
          Listed are known or potential problems with various versions of
          PLOT3D.
 
 
        IRIS
 
            o Z-buffering an image with dashed, dotted, chaindashed, or
              chaindotted linestyles will hang the IRIS.
            o Changing from single- to double-buffer mode or vice-versa (such
              as when turning z-buffering on or off), when using the window
              manager and more than one plot is on the screen can cause the
              screen to be refreshed incorrectly.  Move some windows slightly
              to force MEX to update the screen.
            o In general, and especially at the command prompt level, PLOT3D
              does not keep its graphics windows "idling" with a "swapbuffers"
              (see "Silicon Graphics PIPELINE", Vol. II, No. 1, Fall 1985,
              p. 12).  Thus under the window manager (and double buffering),
              another graphics program will hang until PLOT3D swaps buffers.
            o For very complicated plots and/or particle trace plots, PLOT3D
              has been observed to respond VERY sluggishly.  Response to the
              mouse may take on the order of a minute (keep that mouse button
              down!).  Further screen updates may be somewhat faster.
            o PLOT3D will not update the screen correctly if the window manager
              has been started up using "mex -d" (double-buffered).
            o PLOT3D uses A LOT of (virtual) memory.  IRISes at NASA Ames have
              been reconfigured with 24MB of swap space.  This involves
              repartitioning the system disk (see the "IRIS Series 3000 Owner's
              Guide, Version 2.0" or your SGI rep.).
            o Under W3.4-GL2, support for the Seiko color printer screen dump
              may not exist, indicated by unsatisfied externals (isetcolormap,
              isetname,iclose,iflsbuf,putrow,iopen) when linking.  In this
              case, disable the Seiko color printer screen dump by commenting
              out the call to SCRDMP in EXEQUE.
            o Under W3.5-GL2, the INCLUDE file "/usr/include/fgl.h" does not
              define the Graphics Library function ISMEX to be type LOGICAL.
              If, in a future release, this is fixed, all "LOGICAL ISMEX"
              declarations in IRIS2 will have to be commented out.
 
 
        VMS
 
            o To link PLOT3D under VMS (with the current dimensions in MAIN),
              your page file quota must be something over 40000 pages.  To run
              PLOT3D, it must be at least 20000 pages.  You need special
              privilege to change this:
 
                 $SD SYS$SYSTEM:
                 $RUN AUTHORIZE
                 MODIFY username /PGFLQUOTA=20000
 
 
        COS
 
            o The CRAY/COS version of PLOT3D is really not worth much due to
              the high memory overhead in PLOT3D and the relatively small
              amount of physical memory on the XMP.  See
              "HELP Installation_of_PLOT3D" for tips on reducing the memory
              requirements of PLOT3D.
 
 
        DISSPLA
 
            o Divide-by-zero errors are sometimes generated by DISSPLA while
              making 2D contour plots with labels.  The traceback may point
              to QQTLB(?), CONTUR, or ENDCO2.  This is a DISSPLA internal bug.
              Try changing MINMAX or plotting without contour labels
              ("PLOT/NOLABELS")
            o Spurious lines have been observed on QMS and LN03 output plots.
              The cause is unknown.
 
 
        CRAY_2
 
            The CRAY 2 version of PLOT3D has many idiosyncrasies, due to the
            poor condition of the CFT77 compiler under UNICOS.  Things have
            improved somewhat under UNICOS 2.0.  Some of the remaining problems
            are:
 
            o The "$" format descriptor does not work, so all prompts end with
              a <RETURN>.
            o Multiple line messages, such as those printed by the by the
              SHOW command, are garbled.
            o ^D end-of-files are often not trapped correctly by the FORTRAN
              READ statement.  Type "EOF" instead (see "HELP End-of-file").
            o The utility programs CREHLPLIB and GETHELP do not work: the HELP
              Library file must be created on the IRIS.
 
 
        APOLLO
 
            o Titles and text have not been implemented.
            o The C I/O routines (in the file CIO.C) have not been tested with
              PLOT3D; I don't know how to compile and link them; I've indicated
              something reasonable in the PLOT3DLINK file.  They are needed for
              the READ/BINARY command (but not READ/UNFORMATTED), and for
              particle tracing.  C routines are included because C is faster for
              reading and writing large chunks of data than FORTRAN, and the C
              binary files are pure binary, as opposed to FORTRAN unformatted
              files, which include record length information.  This latter
              feature facilitates the transfer of binary data files from a
              dissimilar type machine such as a CRAY.
            o The FORTRAN compiler has a maximum number of lines of code that it
              will accept from one file.
            o GMR3D V1.0 does NOT support filled polygons.  This is in beta-test
              for the next release of GMR3D.
            o BSP tree hidden surface removal is not supported or documented for
              GMR3D V1.0.
            o I could not get more than 8 colors out of GMR3D in single-buffered
              mode (but could from GPR).  This is a possible GMR3D problem.
              Only 8 colors are available in double-buffered mode, as
              documented.
            o Mouse buttons work strangely--you may have to click the button a
              second time to turn off the rotation, rather than just releasing
              the button.  This is a possible GMR3D problem.
            o Keyboard attention interrupts are handled by PLOT3D using Aegis
              system calls.  However, when interrupting a plot, the textport
              does not come back, but the "PLOT3D V3:" prompt does.  This makes
              continued execution difficult.
            o Line styles and filled polygons (beta-test) don't work correctly
              on the DN580--they originally come up correctly, but when the
              picture is complete (ready to be manipulated), dashed or dotted
              lines change to solid, and filled polygons disappear.
            o When doing a "grow" or "pop" on the PLOT3D window, the viewport is
              cleared and redrawn.  On the DN580, the viewport is incorrectly
              cleared to cyan.  When the mouse buttons are used to rotate or
              translate the image (causing the viewport to be refreshed), the
              picture reappears.  The refresh works correctly on a DN570.
            o As a further note, when writing programs that write files, FORTRAN
              I/O requires that a maximum record length (RECL=#bytes) be
              specified on the OPEN statement when opening ANY new file.  This
              is a BUG.  This DOES affect PLOT3D, when doing particle traces.
              Routines PAR2D and PAR3D must be modified to specify the record
              length when opening the SCRATCH file.  For the rest, current
              coding uses C I/O routines to do the particle trace reads and
              writes; equivalent FORTRAN I/O (but WITHOUT the RECL parameter) is
              commented out beside the C calls.
 
 
    3.4
 
        New in version 3.4:
 
 
          New functions implemented:
            Scalar functions:
              Cross-flow velocity
              Stagnation pressure coefficient
              Pitot pressure
              Pitot pressure ratio
              Dynamic pressure
              Normalized 2D stream function
              Swirl
              Speed of sound
              Shock function
            Vector functions:
              Perturbation velocity
              Pressure gradient
 
          Functions corrected:
              Normalized stagnation density
              Normalized stagnation temperature
 
 
          Commands/options implemented:
            PLOT/2D - 2D plots implemented.
            PLOT/LABELS - works for 2D contour plots using DISSPLA.
            PLOT/FSURFACE (or /CARPET or /LINE) - for 2D line plots or
              3D function surface plots.
            FSURFACE command - to define properties of line or function
              surface plot.
            VIEW command - for 2D plots or 3D function surface plots.
            MINMAX/XSCALE=scale/YSCALE=scale/ZSCALE=scale - to scale
              axes independently.
            PLOT/AXES/NOAXES - axes and axis labels added for IRIS too.
            PLOT/FIGURE=(areax,areay,char ht) - for figure-quality plots
              from DISSPLA.
            READ/PLANES - to read data one IJ plane per record.
            Symbols and arrowheads have been implemented for the IRIS.
            CONTOUR grid-lines - for grid lines colored by contour
              value.
 
          Defaults/initial values changed:
            SUBSETS/NOATTRIBUTES is now the default.
            Contour color map default is now "BLUE CYAN GREEN YELLOW
              RED MAGENTA" instead of "WHITE".
            MINMAX 0 10 -5 5 -5 5 is the initial MINMAX box.
            VPOINT/ANGLES 150 20 20 is the initial viewpoint for 3D
              plots.
 
          IRIS features incorporated:
            PLOT3D runs under the MEX window manager (but does change
              the color map) (IRIS 2xxx only).  You need a .mexrc file,
              with commands "reservebut 13", "bindfunc hogwhiledown 13",
              and "bindfunc menu 101" in it.  See the Window Manager
              section of the IRIS User's Guide for more information.
            Keyboard attention interrupts (^C or <BREAK>) return PLOT3D
              to the command level prompt.
            $system-command may work, depending on system swap space.
            Q key - dumps the screen to a file for printing on the
              QMS Lasergrafix 1200 printer (IRIS 2xxx only).
            Z key - toggles z-buffering mode (IRIS 2xxx only).
            3,6,N keys - change to 30Hz, 60Hz, NTSC video out,
              respectively (IRIS 2xxx only).
 
          IRIS bugs fixed:
            TBL6 6-plane color table fixed.
            IRIS 2xxx PXL screen dump and PLOT3DPIC fixed.
 
          DISSPLA device drivers rearranged:
            PLOT/VER now produces files PARM.PLV and VECTR1.PLV for
              plotting on a VERSATEC connected to a VAX.  At NASA Ames,
              see "$HELP PLOT" on how to submit these files to be
              printed.
            PLOT/DIP produces a .DIP file for plotting on a VERSATEC
              connected to a PDP 11.  At NASA Ames, a .DIP file can be
              converted to a .QMS file for printing on the QMS
              Lasergrafix printer with the "$DIPQMS" command.
            PLOT/QMS produces a .QMS file directly, but this file may
              be very large.
 
          VAX/VMS features restored:
            HELP, keyboard attention interrupts (^C), and error recovery
              now work under VMS 4.2.
 
          ARCGraph GRAFIX interface written - a PLOT3D version (commonly
            known as PLOT3X) for NASA Ames device-independent graphics
            files has been written.
 
 
    3.3
 
        New features in version 3.3:
 
          1.  3D particle traces no longer require right-handed (i,j,k) system.
          2.  PLOT/SCRIPT option for movie scripts.
          3.  EXIT command (same as QUIT).
          4.  PLOT/IRISSINGLE and color maps for IRIS systems with fewer than
              24 bit planes.
          5.  Special command-line characters explained in HELP.
          6.  Command files calling command files and returning fixed.
          7.  VPOINT/ANGLES fixed.
 
 
    3.2
 
        New features in version 3.2:
 
          1.  /CHECK/NOCHECK option on reading Q files.
          2.  /BINARY option (default) on reads for IRIS/Unix, as well as
              /FORMATTED and /UNFORMATTED.
          3.  Default file types are .FMT for formatted, .DAT for unformatted,
              and .BIN for binary.
          4.  Maximum number of grids increased from 10 to 50.
          5.  Faster initial search for RAKE/X particle points.
          6.  Use of C (binary) I/O for faster reading and writing of particle
              trace files on IRIS/Unix.
          7.  "P" for picture save (screen image dump) on IRIS version.
          8.  "Up-arrow" and "down-arrow" to increase or decrease mouse
              sensitivity on IRIS version.
          9.  Default contour colors changed from "WHITE" to "BLUE CYAN GREEN
              YELLOW RED MAGENTA".
         10.  Highlighting on surface-shading disabled.
 
 
  Special_characters
 
      The following characters are treated specially when encountered
      on ANY line of input.
 
      -  If the last character on a line of input, "-" means to
         consider the next input line to be a continuation of the
         current line.
      '  Expected to surround a symbol, to be translated (by calling an
         appropriate system routine) into a character string.
      "  Expected to surround a character string, the contents of which
         are not to be disturbed.  The string is treated as a single
         character argument.
      !  Denotes that all input following on this line is to be
         considered a comment and ignored.
      @  If the first (nonblank) character on a line of input, the rest
         of the line is taken as a file name to be read as input to
         PLOT3D.  When an end-of-file (or EOF) is encountered, input
         continues from the previous source.
     EOF If the ONLY nonblank characters on an input line are EOF, this
         is equivalent to an end-of-file reading input.  Further input
         is taken from the previous input file (or device).
 
 
  Blanking
 
 
      An array IBLANK can be included in the XYZ grid file which supplies
      PLOT3D with information on grid topology.  This can be used to
      indicate that some points in the grid are "turned off" (so contours
      are not plotted through this region), or how multiple grids are
      connected (to aid in particle tracing).  See "READ File_formats XYZ
      with_IBLANK" for information on including IBLANK in XYZ data files.
 
      The use of IBLANK is as follows: where IBLANK is zero, the
      corresponding grid point is assumed turned off, and data at that point
      (XYZ, Q) is NEVER USED.  If IBLANK is anything but zero, data at that
      point is assumed valid.  The NORMAL value for IBLANK in the interior
      of a grid is 1.
 
      Other values are used for particle tracing, and indicate grid
      topologies: around holes (blanked-out regions) and grid boundaries, an
      IBLANK value of -n means that physical space "continues" in grid n; in
      other words, a particle trace leaving the current grid here will
      continue in grid n.  Note that periodic boundaries or C-mesh-type
      boundaries can be coded the same way: for grid m, use IBLANK=-m on the
      common boundaries.
 
      Another IBLANK key is the value 2, and indicates the location of a
      solid wall boundary.  This is used to (artificially) restrict particle
      traces from flowing into the wall and stopping.  Particles are forced
      to remain some fraction of a point away from a wall.  This restriction
      is only implemented for particle tracing through a velocity field.
 
 
 
  Attributes
 
      Various attributes of graphical objects can be set in commands such as
      WALLS, SUBSETS, and CONTOURS.  Examples of such attributes are color,
      line type and thickness, and surface transparency.
 
 
    Hidden_lines
 
        The HIDDEN_LINE attribute type is implemented as polygons filled with
        the background color, and outlined with the given line style.  As a
        result, to generate a correct hidden line image, walls or subsets, as
        well as polygons within the walls or subsets must be ordered correctly
        (i.e., from back to front).  Do this by setting the
        START,END,INCREMENT values appropriately in the WALLS or SUBSETS
        command, and/or split a wall or subset into two.
 
 
    Shaded_surface
 
        Implemented as filled grid cells, giving a faceted shading.  Note that
        hidden surfaces are not by default implemented, so that for a correct
        hidden surface image, walls and subsets, as well as polygons within
        walls or subsets must be ordered correctly (i.e., from back to front).
        Do this by setting the START,END,INCREMENT values appropriately in the
        WALLS or SUBSETS command, and/or split a wall or subset into two.
 
        Shading is done assuming that the light source is at the initial
        viewpoint (specified with the VPOINT command).  The color is ramped
        linearly from 0.3 times the base color at 90 deg. incidence of the
        light source to the polygon normal vector (angle cosine of 0), to full
        color at a cosine of (1-shininess).  As the cosine increases to 1, the
        color changes linearly from the base color to white.
 
 
    Color
 
        Colors may be entered as one of the eight standard (named) colors,
        BLACK, MAGENTA, RED, YELLOW, GREEN, CYAN, BLUE, and WHITE (D), or as a
        set of RGB (red-green-blue) components, in the range of 0 to 1.  RGB
        colors are specified in the form "RGB .2 .3 .4".
 
 
    Line_type
 
        Line type (or style) can be SOLID (D), DASH, DOT, CHAINDASH, CHAINDOT,
        or NONE.
 
        {DOT, CHAINDASH, and CHAINDOT are not implemented for GRAFIX.}
 
 
    Line_thickness
 
        This is a real number which multiplies the standard line thickness.
 
        {Only factors of 1 or 2 are supported for IRIS 1000 series terminals
         and workstations.  Not implemented for GRAFIX.}
 
 
    Symbol_type
 
        Specifies a symbol (by integer number) to be put at each point.
        Symbols are
          -1  dot (single pixel)
           0  no symbol (D)
           1  +
           2  x
           3  square
           4  circle
           5  diamond
           6  triangle (Delta)
           7  triangle (nabla)
           8  filled square
           9  filled circle
          10  filled diamond
          11  filled Delta
          12  filled nabla
 
        {DISSPLA: Symbol -1 may not work; symbols 10-12 are implemented
                  as unfilled.
         GRAFIX : Symbols 1-12 are not implemented.
         APOLLO : Symbol 3 is implemented as a *; symbols 5-12 are
                  implemented as a circle.}
 
 
    Symbol_size
 
        Real number factor which multiplies the standard symbol size.
 
 
    Shading_pattern
 
        Shading pattern for polygon fills.  Default is SOLID.  {Others are
        not yet implemented.}
 
 
    Transparency
 
        Real number between 0 (opaque) and 1 (completely transparent)
        controlling polygon transparency.  {Not implemented for DISSPLA or
        GRAFIX.}
        The HIDDEN_LINE type is flagged via a negative transparency.
        A transparency value greater than 1 results in polygons being outlined
        and not filled.
 
 
    Shininess
 
        Shaded surface shininess; a real number between 0 and 1.
 
        Shading is done assuming that the light source is at the initial
        viewpoint (specified with the VPOINT command).  The color is ramped
        linearly from 0.3 times the base color at 90 deg. incidence of the
        light source to the polygon normal vector (angle cosine of 0), to full
        color at a cosine of (1-shininess).  As the cosine increases to 1, the
        color changes linearly from the base color to white.
 
 
    Material_coefficient
 
        Polygon reflectivity.  {Not implemented.}
 
 
  @file
 
      Use the given file as input for PLOT3D commands.  On an end-of-file,
      control is returned to the previous source of input.  This command may
      be entered at any time during a PLOT3D session, not necessarily at the
      main command level.
 
 
  End-of-file
 
      An end-of-file can be used in many commands to prematurely terminate a
      set of input, preventing that input from being incorporated into the
      program.  Most computer systems have a control character for entering
      an "end-of-file" from the terminal; in VAX/VMS, it is ^Z.  As an
      alternative, the letters "EOF" can be entered as an input line,
      siganling an end-of-file.
 
 
  $system-command
 
      If a "$" is the first character of a command line (at the main command
      level), the rest of the line is passed to the operating system as a
      command (for example $DIR when running under VAX/VMS would result in
      the "DIR" being sent to VMS).  A "$" alone means return to the system
      for awhile.  Upon completion (LOGOUT in VMS, ^D in Unix), return to
      PLOT3D.  {Generally doesn't work for IRIS/Unix due to swap space
      limitations.}
 
 
  CLEAR
 
 
      Format:  CLEAR
 
      Clears all internally computed arrays (such as functions) from the
      WORK storage area.  In general, this is handled automatically.
 
 
  CONTOURS
 
 
      Format:  CONTOURS [max number of levels]
            or CONTOURS/INCREMENT [contour increment]
            or CONTOURS/MANUAL [start[,end,increment]]
 
      Select contour levels or ranges.
 
 
    Qualifiers
 
      /RANGE
        Show the range (minimum and maximum) of the current function over all
        active points in all active grids.
      /AUTOMATIC (D)
      /INCREMENT
      /MANUAL
        For the default AUTOMATIC mode, a maximum number of contour levels to
        be calculated is specified.  In INCREMENT mode, a contour level
        increment is specified.  The number of levels will depend on the
        function range.  MANUAL entry of contour levels allows
        start-end-increment sets to be given.
      /LINEAR (D)
      /CUBIC
        For contour LINES, optionally use parametric cubic interpolation
        to find the intersections of contour lines with edges of cells.
        This smooths out "scalloping" caused by highly stretched, high
        aspect ratio cells.  Takes longer to plot, as might be expected.
      /ATTRIBUTES (D)
      /NOATTRIBUTES
        Controls whether attributes such as color range, line type and
        thickness, and surface transparency are prompted for.  {Symbols
        do not appear for PLOT/2D/LABELS using DISSPLA.}
 
 
  EXIT
 
 
      Format:  EXIT
 
      Exit out of PLOT3D.  Same as QUIT.
 
 
    Qualifiers
 
      /SAVE
        Save the journal file.  Default is to delete it.
 
 
  FSURFACE
 
 
      Format:  FSURFACE
 
      Set the following properties of function surface (or line) plots:
      (1) the scale factor of the function axis;
      (2) the origin (or offset) of walls drawn on the plot for
          reference; and
      (3) whether a 3D function surface will be drawn as grid lines or
          contour lines, if the contour attribute type is LINES.
 
      Other properties of a function surface plot are set by other
      commands:
      (1) the VIEW command sets which spatial (x,y,z) axes will be
          plotted vs. the function;
      (2) the CONTOUR command controls whether the function surface
          will be plotted as lines or a surface (using polygons), as
          well as the color map and line or surface attributes to be
          used;
      (3) the MINMAX command sets the range of the function to be
          plotted (XMIN,XMAX, YMIN,YMAX, or ZMIN,ZMAX, depending upon
          which axis will be used for the function); and
      (4) the /FSURFACE qualifier on the PLOT command is used to select
          a function surface plot instead of the (default) /CONTOUR
          plot.
 
      In 3D, a function surface is a plot of two spatial dimensions
      (x, y, or z) vs. a scalar function.  This is also known as a
      carpet plot.  Which two spatial dimensions are used is chosen
      using the VIEW command.  A right-handed coordinate system is
      maintained; thus a plot with VIEW XZ would plot x vs. f vs. z,
      and the axis range for f would be controlled by YMIN and YMAX
      entered in the MINMAX command.  Note that which axis is considered
      "up" on the plot can be changed using the PLOT/UP=axis option.
 
      In 2D, a function surface can degenerate to a simple line plot,
      depending on the subset(s) active.  A good example of a line plot
      is Cp (pressure coefficient) vs. x for an airfoil.  Here the
      appropriate subset would be just the points on the airfoil
      surface.  In any case, the plot is of one spatial dimension and
      the function value.  (The spatial dimension used is the first
      axis given to the VIEW command.  This spatial dimension will
      noramlly be plotted on the horizontal axis, and the function along
      the vertical axis.  PLOT/2D/UP=X can be used to reverse this.)
 
 
    Qualifiers
 
      /SCALE_FACTOR=scale
      /SCALE_FACTOR=AUTO (D)
        Allows entry of the relative scaling of the function axis compared
        to the spatial (x, y, or z) axes.  Thus a scale factor of 2 would
        mean that 1 unit of the scalar function will have the same length
        as 2 units in x, y, or z.  Specifying "AUTO" for the scale factor
        means that the length of the function axis (from MINMAX) will be
        made equal to the longer of the other two axes (3D), or equal to
        the other axis (2D).
      /WALLS_ORIGIN=origin
      /WALLS_ORIGIN=AUTO (D)
        Allows specification of the origin along the function axis for the
        walls which are drawn on the function surface or line plot.  For
        example, if a value of 5 was entered for a plot of x vs. y vs. f,
        a wall at coordinates (x,y,0) would be plotted at (x,y,5) in
        (x,y,f) space.  Specifying "AUTO" means that the origin will be set
        to zero.
      /CONTOUR
      /GRID (D)
        Controls whether a function surface will be drawn as grid
        lines or contour lines if the contour attribute type is LINES.
        This flag is ignored for 2D plots.
 
 
  FUNCTION
 
 
      Format:  FUNCTION [function number]
 
      Allows the selection of the function number to be plotted.  Numbers
      between 0 and 99 are for grid-type information, between 100 and 199
      are scalar functions (suitable for contour plots), and numbers between
      200 and 299 are vector fields.  Note that currently 200-299 refer to
      vector plots, while 300-399 generate particle trace-type plots.
      Functions from 400 on up are special functions (such as shock wave
      locations).
 
 
    Grid_functions
 
          0 Walls alone (geometry).
          1 Grids.
          2 Outline of IBLANK holes.
         10 2D crossing grid line check.
         11 Tetrahedron decomposition cell volume check.
         12 Tetrahedron decomposition grid crossing check.
 
 
    Scalar_functions
 
 
        100 Density (or Q1).
        101 Normalized density.
        102 Stagnation density.
        103 Normalized stagnation density.
        104 Log of normalized density.
        110 Pressure.
        111 Normalized pressure.
        112 Stagnation pressure.
        113 Normalized stagnation pressure.
        114 Pressure coefficient.
        115 Stagnation pressure coefficient.
        116 Pitot pressure.
        117 Pitot pressure ratio.
        118 Dynamic pressure.
        119 Log of normalized pressure.
        120 Temperature.
        121 Normalized temperature.
        122 Stagnation temperature.
        123 Normalized stagnation temperature.
        124 Log of normalized temperature.
        130 Enthalpy.
        131 Normalized enthalpy.
        132 Stagnation enthalpy.
        133 Normalized stagnation enthalpy.
        140 (Internal) energy.
        141 Normalized (internal) energy.
        142 Stagnation energy.
        143 Normalized stagnation energy.
        144 Kinetic energy.
        145 Normalized kinetic energy.
        150 u velocity.
        151 v velocity.
        152 w velocity.
        153 Velocity magnitude.
        154 Mach number.
        155 Speed of sound.
        156 Cross-flow velocity.
        157 Normalized 2D stream function.
        158 Divergence of velocity.
        160 x-momentum (Q2).
        161 y-momentum (Q3).
        162 z-momentum (Q4).
        163 Stagnation energy per unit volume (Q5).
        170 Entropy.
        171 Entropy measure s1.
        180 x-component of vorticity.
        181 y-component of vorticity.
        182 z-component of vorticity.
        183 Vorticity magnitude.
        184 Swirl.
        185 Velocity x vorticity magnitude.
        186 Helicity density.
        187 Relative helicity.
        188 Filtered relative helicity.
        190 Shock function based on pressure gradient.
        191 Filtered shock function based on pressure gradient.
        192 Pressure gradient magnitude.
        193 Density gradient magnitude.
 
 
 
 
    Vector_functions
 
 
        200 Velocity.
        201 Vorticity.
        202 Momentum (Q2,Q3,Q4).
        203 Perturbation velocity.
        204 Velocity x vorticity.
        210 Pressure gradient.
        211 Density gradient.
 
 
 
 
    Particle_trace_functions
 
        300 Particle traces.
        301 Vortex lines.
 
        Particle traces are generated using trilinear interpolation of
        values of the vector function inside a computational cell, and
        second-order Runge-Kutta steps to advance the particle in space.
        The particles are advanced using the velocity (or vector function)
        in real-space, but the step is limited so the particle will
        only advance some fraction of a computational cell.  Currently,
        five steps are taken per computational cell.
 
        See the RAKE command for specification of starting points and
        attributes for the traces.
 
 
 
    Shock_waves
 
        400 Shock locations based on pressure gradient.
        401 Filtered shock locations based on pressure gradient.
 
        The current algorithm for "finding shocks" is to look at the Mach
        number component in the direction of the local pressure gradient
        Where this value goes through one, AND the Mach number is
        decreasing, is plotted as a shock.  See "FUNCTION Function_definitions
        Shock_function" for additional information.
 
        The way that the shock structure is plotted is determined by the
        FIRST contour specification (attributes, not level).  Thus one can
        specify LINES (and therefore plane orientations) or SURFACES,
        color, line thickness, surface transparency, etc.
 
 
    Nondimensionalizations
 
        Certain reference conditions are assumed in calculating some
        functions (the pressure coefficient, for example).  These
        conditions are set in subroutines SCAFUN and VECFUN.
 
           (1) rho    = 1                (freestream density)
                  inf
 
           (2) c      = 1                (freestream speed of sound)
                inf
 
           (3) p      = 1/gamma          (freestream pressure)
                inf
 
           (4) |V|    = M   *c           (freestream velocity magn.)
                  inf    inf  inf
 
        Conditions 3 and 4 follow from 1 and 2.
 
        NOTE: For incompressible flow, set FSMACH (Minf) to 1, normalize
              all velocities to the freestream velocity, and of course set
              rho to 1 everywhere.  In this way the computation of Vinf
              from condition 4 comes out correctly.  (Note that pinf is
              still (1/gamma).
 
 
    Fluid_constants
 
        The fluid is assumed to be air.  The perfect gas law is also used.
        The following constants are used in computing functions, and are
        defined in BLOCK DATA BFLUID.
 
          gamma = 1.4     (ratio of specific heats)
 
          R     = 1       (gas constant)
 
 
 
    Function_definitions
 
 
 
      Grid_checks
 
          2D crossing grid line check:
 
            Take each logical rectangle of grid points and check to see
            if two kitty-corner points are on opposite sides of the
            diagonal created by the other two points.
            (The two spatial dimensions used are determined from the
            VIEW command.)
 
          Tetrahedron grid checking algorithms were originally coded by
          Dennis C. Jespersen, Computational Fluid Dynamics Branch, NASA
          Ames Research Center.  Jespersen's comments follow:
 
          Tetrahedron decomposition cell volume check:
 
            Imagine each cell decomposed into six tetrahedra as in
            Fig. 3(b) of the reference.  Compute the volume of each
            tetrahedron using the vector formula.  If any of these volumes
            turn out to be "negative," there are probably problems with
            the grid.  If all of these volumes are positive, the grid is
            probably OK.  (I have no theorem about this.)  The word
            "negative" is in quotes because of the nature of finite
            precision arithmetic.  A tolerance is declared as a parameter.
 
          Tetrahedron decomposition grid crossing check:
 
            Imagine each cell decomposed into 5 tetrahedra as in Fig. 2
            of the reference.  For each planar face of the "core"
            tetrahedron, check whether each diagonally opposite pair of
            points is on opposite sides of the plane.  With the notation
            of points as in the reference, we check
               Plane   Points
                138     4 6
                168     3 5
                136     2 8
                368     1 7
 
          Reference: W. Kordulla and M. Vinokur, "Efficient Computation
                     of Volume in Flow Predictions," AIAA J 21 (1983),
                     pp 917-918.
 
 
 
      Density
 
          rho    = Q1
 
          rhoinf = 1
 
                         [     gamma-1        ]**[1/(gamma-1)]
          rho0   = rho * [ 1 + ------- * M**2 ]
                         [        2           ]
 
 
      Pressure
 
          p    = (gamma-1) * rho * [e0-(1/2)*V**2]
 
          pinf = 1/gamma
 
                      [     gamma-1        ]**[gamma/(gamma-1)]
          p0    = p * [ 1 + ------- * M**2 ]
                      [        2           ]
 
 
      Pressure_coefficient
 
          Cp  = (p-pinf)/(.5*rhoinf*Vinf**2)
 
          Cp0 = (p0-p0inf)/(.5*rhoinf*Vinf**2)
 
                [ 2 + (gamma-1)*Minf**2 ]**[gamma/(gamma-1)]
                [-----------------------]                     - 1
                [        gamma+1        ]
          Cp* = -------------------------------------------------
                                 gamma
                                 ----- * Minf**2
                                   2
 
          Ref: A.H. Shapiro, THE DYNAMICS AND THERMODYNAMICS OF
               COMPRESSIBLE FLOW, The Ronald Press Company, New York,
               1953, Vol. 1, p. 107.
 
 
      Pitot_pressure
 
          For M < 1, the pitot pressure is the same as the stagnation
          pressure.  Above Mach 1, it is the equivalent stagnation
          pressure behind a normal shock:
 
          pp = p0y = (p0y/px)*px   (x is before shock, y is after)
 
          pitot pressure ratio = pp/pinf
 
          p0y/px = (p0y/p0x)*(p0x/px)
 
                       [ (gamma+1)         ]**[gamma/(gamma-1)]
                       [ --------- * Mx**2 ]
                       [     2             ]
                 = --------------------------------------------
                   [ 2*gamma           gamma-1 ]**[1/(gamma-1)]
                   [ ------- * Mx**2 - ------- ]
                   [ gamma+1           gamma+1 ]
 
          Ref: A.H. Shapiro, THE DYNAMICS AND THERMODYNAMICS OF
               COMPRESSIBLE FLOW, The Ronald Press Company, New York,
               1953, Vol. 1, p. 119.
 
 
      Dynamic_pressure
 
          q = (1/2)*rho*V**2 = kinetic energy/unit volume
 
 
      Temperature
 
          T      = p/(rho*R)       (perfect gas law)
 
          T/Tinf = (p/pinf)/(rho/rhoinf)
 
                       [     gamma-1        ]
          T0     = T * [ 1 + ------- * M**2 ]
                       [        2           ]
 
 
      Enthalpy
 
          h    = gamma * [ e0 - (1/2)*V**2 ]
               = gamma * ei
               = [gamma/(gamma-1)] * (p/rho)
 
          hinf = gamma*e0inf
               = [gamma/(gamma-1)] * (pinf/rhoinf)
 
          h0   = h + (1/2)*V**2
               = gamma*e0 - (gamma-1)*(1/2)*V**2
               = e0 + p/rho
 
 
      Energy
 
          ei    = e0 - (1/2)*V**2
                = [1/(gamma-1)] * (p/rho)
 
          eiinf = [1/(gamma-1)] * (pinf/rhoinf)
 
          e0    = Q5/rho
 
          e0inf = [1/(gamma-1)]*(pinf/rhoinf) + (1/2)*Vinf**2
 
          ek    = (1/2)*V**2
                = q/rho
 
 
      Mach_number
 
          M = V/c
 
          c = sqrt(gamma*p/rho)
 
 
      Cross-flow_velocity
 
          Vcross-flow = sqrt(v**2+w**2)
 
 
      2D_stream_function
 
          Calculated by integrating the mass flow across a coordinate
          line.  THE STREAM FUNCTION IS ASSUMED TO HAVE THE VALUE ZERO
          AT THE FIRST POINT IN EACH SUBSET.  The values are normalized
          by the freestream Mach number.  Only x and y, and u and v are
          used!  See subroutine STREAM.
 
 
      Momentum
 
          Momentum = (Q2,Q3,Q4)
 
 
      Entropy
 
                    [  p   ]        [ rhoinf ]
          s  = c *ln[ ---- ] + c *ln[ ------ ]
                v   [ pinf ]    p   [  rho   ]
 
 
                      [       (p/pinf)      ]
             = c  * ln[ ------------------- ]
                v     [ (rho/rhoinf)**gamma ]
 
               [       (p/pinf)      ]
          s1 = [ ------------------- ] - 1 ,   another measure of entropy
               [ (rho/rhoinf)**gamma ]
 
 
      Vorticity
 
          omega  = xi w  +eta w   +zeta w    -xi v  -eta v   -zeta v
               1     y xi    y eta     y zeta   z xi    z eta     z zeta
 
                 = d(w)/d(y) - d(v)/d(z)
 
          omega  = xi u  +eta u   +zeta u    -xi w  -eta w   -zeta w
               2     z xi    z eta     z zeta   x xi    x eta     x zeta
 
                 = d(u)/d(z) - d(w)/d(x)
 
          omega  = xi v  +eta v   +zeta v    -xi u  -eta u   -zeta u
               3     x xi    x eta     x zeta   y xi    y eta     y zeta
 
                 = d(v)/d(x) - d(u)/d(y)
 
 
      Swirl
 
          Swirl = (omega dot V)/(rho*V**2)
 
          The swirl is set to zero when |V| is zero.
 
 
      Helicity
 
          Helicity density  = (V dot omega)
 
          Relative helicity = cos(phi),   where phi is the angle between
                                          the velocity vector and the
                                          vorticity vector.
 
                              (V dot omega)
                            = -------------
                               |V| |omega|
 
          The relative helicity is set to zero when either |V| or |omega|
          is zero.
 
          Filtering the relative helicity attempts to get rid of spurious
          maxima due to the "wandering" of the vorticity vector in
          regions where |omega| is basically small.  NOTE THAT THIS
          FILTER IS DIMENSIONAL, AND IS BASED ON A LENGTH SCALE ON THE
          ORDER OF ONE.
 
                                       { cos(phi), abs(V dot omega) >= filter
          Filtered relative helicity = {
                                       { 0       , abs(V dot omega) <  filter
 
                                             filter = 0.1*Vinf**2
 
          The inclusion of (and definitions for) the helicity functions
          are due to Mr. Yuval Levi, Aero Department, Technion Israel
          Institute of Technology, Technion City, Haifa, ISRAEL.
 
 
      Shock_function
 
          The shock function based on pressure gradient, of which some
          parts of the level 1 contour are the shock waves, is computed
          as follows, where V is the velocity vector:
 
                           V    grad(p)
          Shock function = - . ---------
                           c   |grad(p)|
 
          The function is set to zero if the denominator is zero.
 
          Filtering the shock function attempts to get rid of spurious
          indicated shocks due to "wandering" of the grad(p) vector in
          regions where |grad(p)| is basically small (e.g., essentially
          undisturbed flow ahead of a bow shock).  NOTE THAT THIS FILTER
          IS DIMENSIONAL, AND IS BASED ON A LENGTH SCALE ON THE ORDER
          OF ONE.
 
                                    { shock function,   |grad(p)| >= 0.1
          Filtered shock function = {
                                    { 0             ,   |grad(p)| <  0.1
 
 
 
      Divergence_of_velocity
 
          The divergence of the velocity field is also known as the
          total dilatation or the normal-strain rate.  As shown below,
          it gives some normalized measure of the local rate-of-change
          (particle derivative) of the density.
 
          Where this function is negative, the flow is undergoing
          compression.  By choosing suitable contours to accentuate these
          values, shock waves can be displayed!
 
          Note that from the conservation of mass equation,
 
          D(rho)
          ------ + rho div(V) = 0,
           D(t)
 
          we see that
 
                   -1  D(rho)
          div(V) = --- ------,
                   rho  D(t)
 
          which for steady flows is
 
                   -1
                 = --- V dot del(rho).
                   rho
 
          This is how this function is actually computed in subroutine
          DIVV.
 
 
      Perturbation_velocity
 
          V' = V - Vinf
 
 
 
  LIST
 
 
      Format:  LIST [XYZ or Q or FUNCTION]
 
      List the XYZ, Q, or current function data.  Output can be directed
      to the screen (default) or to a file.  FORMATTED, UNFORMATTED, or
      BINARY files suitable for reading into PLOT3D can be produced as well.
 
 
    Qualifiers
 
      /TEXT (D)
      /FORMATTED
      /UNFORMATTED
      /BINARY
        Select the type of LIST output desired.  TEXT output includes
        column headings and suitable for viewing on the screen or printing
        out.  FORMATTED, UNFORMATTED, and BINARY options produce files
        which can be read into PLOT3D using the READ command.
      /OUTPUT=file
        Redirect the list output to a file or device.  A filename is required
        for FORMATTED, UNFORMATTED, or BINARY lists, and will be prompted for
        in case the /OUTPUT qualifier has not been included in the command
        line.
 
 
  MAP
 
 
      Format:  MAP
 
      Produce a map of WORK array usage, including grid number, variable
      names, and source file names.
 
 
  MINMAX
 
 
      Format:  MINMAX [xmin,xmax,ymin,ymax[,zmin,zmax]]
            or MINMAX/INCREMENT [xmin,xmax,xinc,ymin,ymax,yinc[,zmin,zmax,zinc]]
 
      Set the plot ranges, or general region of interest for the plot.
 
 
    Qualifiers
 
      /X (D)
      /NOX
      /Y (D)
      /NOY
      /Z (D)
      /NOZ
        Controls which set of axis limits are to be changed.  To change
        only the y-axis limits, for instance, type "MINMAX/Y ymin,ymax".
      /INCREMENT
        Allows the specification of a tick mark increment.  An increment of
        zero implies automatic scaling of tick marks and possibly rounding of
        axis limits.  (Axis drawing can be suppressed by using PLOT/NOAXES.)
      /XSCALE=scale
        Sets x-axis scale factor.  Default is one.
      /YSCALE=scale
        Sets y-axis scale factor.  Default is one.
      /ZSCALE=scale
        Sets z-axis scale factor.  Default is one.
 
 
  PLOT
 
 
      Format:  PLOT
 
      Initiate a plot.  When the plot is completed, type <RETURN> to return
      to PLOT3D command level.
 
      In general, all qualifiers to the PLOT command REMAIN IN EFFECT until
      changed.  THIS DIFFERS FROM ALL OTHER COMMANDS.  For example, once
      axis plotting has been turned off with PLOT/NOAXES, future plots
      will not have axes until PLOT/AXES is used.  The exception to this
      rule is the PLOT/OVERLAY option, which applies only to the current
      plot.
 
 
    Qualifiers
 
      /2D
      /3D (D)
        Type of plot.  Note that 2D data can be displayed in a 3D plot too.
      /TEKTRONIX (D for DISSPLA)
      /TK41XX
      /ENVISION
      /VERSATEC
      /DIP
      /QMS
      /LN03
      /IMAGEN
      /DICOMED
      /COMPRESS
      /IRIS (D for IRIS)
      /IRISRGB
      /IRISSINGLE
      /GRAFIX (D for GRAFIX)
      /APOLLO (D for Apollo)
      /APOLLOSINGLE
      /METAFILE
        Output device.
 
        DISSPLA ONLY devices: TEKTRONIX (4014) (default)
                              TK41XX (Tektronix 41xx series terminals--
                                 will prompt for terminal type)
                              ENVISION (215)
                              VERSATEC (connected to a VAX; produces
                                 files PARM.PLV and VECTR1.PLV -- see
                                 $HELP PLOT for info on submitting to
                                 Versatec)
                              DIP (NASA Ames Device Independent Plot file;
                                 produces file xxx.DIP*)
                              QMS (QMS 1200 laser printer; produces file
                                 xxx.QMS*)
                              LN03 (DEC LN01S or LN03 Plus laser printer;
                                 produces file INTSCRT1.TMP)
                              IMAGEN (IMAGEN 8/300 laser printer;
                                 produces file IMAGEN.IMP)
                              DICOMED (D48 film recorder; produces file
                                 xxx.D48*)
                              COMPRESS (DISSPLA device independent file
                                 to be used with POP; produces file
                                 POPFIL.DAT)
 
        IRIS ONLY devices:    IRIS (double buffered) (default)
                              IRISSINGLE (single buffered)
                              IRISRGB (RGB mode)
 
        GRAFIX ONLY devices:  GRAFIX (produces xxx.GRA*) (default)
 
        APOLLO ONLY devices:  APOLLO (double buffered) (default)
                              APOLLOSINGLE (single buffered)
 
        DI-3000 ONLY devices: METAFILE
                              (whatever other device driver is loaded)
 
        * For those devices that generate a file (such as DIP), the base
        filename used will be the Q filename (or the XYZ filename, or
        simply "PLOT3D") with an appropriate three letter extension (such
        as ".DIP").  Exceptions are PLOT/COMPRESS, which produces a file
        "POPFIL.DAT", PLOT/LN03, which generates "INTSCRT1.TMP", and
        PLOT/IMAGEN, which generates "IMAGEN.IMP".
 
        If the device specified does not apply to the version of PLOT3D
        being run, the default for that version is used instead.
      /OVERLAY=window#
        Overlay this plot onto the indicated window.  If no window number
        is supplied, overlay onto the most recently active window.
        IMPLEMENTED FOR IRIS ONLY.
      /CONTOUR (D)
      /FSURFACE
      /CARPET
      /LINE
        If this is a plot of a scalar variable, set whether the plot will
        be a CONTOUR plot (the default) or a function surface (FSURFACE)
        plot.  A CARPET plot is another common term for a function surface,
        and in 2D a function surface degenerates to a LINE plot; thus CARPET
        and LINE are synonyms for FSURFACE.  See HELP FSURFACE for more
        information on function surface plots.
      /FULLSCREEN
      /NOFULLSCREEN (D)
        Allows for an enlarged plotting area to be used, at the expense of
        titles and text.  Very helpful for 3D plots.  {For the IRIS or GRAFIX,
        FULLSCREEN simply removes all text from the display.}
      /TITLE (D)
      /NOTITLE
        Optionally turns off plotting of the top line of the title (the
        function name).  Text specified using the TEXT command is still
        displayed.
      /BAR (D)
      /NOBAR
        Optionally turns off plotting of the contour level color bar (list
        of contour levels).
      /ADDITIONAL_TEXT (D)
      /NOADDITIONAL_TEXT
        Optionally turns off plotting of the block of additional text in the
        upper right of the plot, which includes grid size and other case
        information.
      /AXES (D)
      /NOAXES
        Controls whether axes are put on the plot or not.
      /FIGURE=(areax,areay,charht)
      /NOFIGURE (D)
        For /FIGURE, the plot size and character height is specified (in
        inches), title, contour bar, and additional text are not plotted,
        and other measures are taken to pretty up the plot.  {Most of this
        can not be done for the IRIS or GRAFIX.}
      /BACKGROUND=color
        Set the background color of the plot.  Note that if "color" is of
        the form "RGB r,g,b", it must be enclosed in parentheses (e.g.,
        /BACKGROUND=(RGB .5,.5,.5)) so the entire string is associated
        with the /BACKGROUND qualifier.  The default is BLACK.
        {Not implemented for DISSPLA.  The display program (e.g. GAS) sets
        the background color for GRAFIX.}
      /UP=axis
        Specify which axis will be considered generally vertical for a
        plot.  Valid "axes" are X, Y, Z, +X, +Y, +Z, -X, -Y, or -Z.  (A
        right-handed system is always assumed.)  A viewpoint specified in
        spherical coordinates (VPOINT/ANGLES) sets the angles phi, in the
        horizontal plane, and theta, above the plane.  The default is /UP=Z
        for a 3D plot, /UP=Y for 2D.
 
        Note that for a 2D plot, the "y-axis" really means the second axis
        on the plot: if VIEW XZ had been selected, /UP=Y would put the
        Z-valued axis up.  Similarly, if VIEW ZX had been selected, /UP=Y
        would put the x-axis up!  There is the possibility of confusion here!
 
        Example: We have a 2D airfoil, and would like velocity profiles with
        u horizontal and y vertical.  We select proper subsets and function,
        type "VIEW YX" so the line plot will use Y as the spatial axis,
        "MINMAX 0 .2 -.5 1" so y will range from 0 to 0.2, u from -0.5 to 1.
        The we say "PLOT/2D/LINE/UP=X": we're making a 2D line plot, and we
        want the axis which WOULD have been horizontal (and corresponds to
        the first set of MINMAX values) to be "up".  Thus y will be up, u
        horizontal.
      /SCRIPT
      /NOSCRIPT (D)
        Further input will be interpreted as SCRIPT commands for controlling
        the orientation of the display on the screen.  STOP will signify the
        end of SCRIPT commands.  See PLOT SCRIPT for information on these
        commands.  /NOSCRIPT means that SCRIPT commands will not be
        expected.  {SCRIPT is not implemented for DISSPLA or GRAFIX.}
 
 
    IRIS_interface
 
        PLOT3D will run with or without the IRIS window manager MEX.  Under
        MEX, PLOT3D can open multiple graphics ports.  By default, each plot
        is NOT deleted when a <RETURN> is entered and the program returns
        to the PLOT3D command prompt.  Subsequent plots are displayed as
        additional graphics ports connected to PLOT3D.  Mouse and keyboard
        input can be attached to the different ports by using the window
        manager "attach" menu item while mouse and keyboard manipulation is
        active in PLOT3D (i.e., while a picture is being displayed).
 
        To delete a graphics window, attach to the window (again, while a
        picture is being displayed, NOT in PLOT3D command mode) and type
        <DELETE>.
 
        To make different graphics ports have the same viewpoint:
          (1) attach to the port with the desired viewpoint,
          (2) type "=", and
          (3) attach to the port(s) to be modified.
 
        NOTE: a "hogwhiledown" keyboard button can be identified in the
        user's ".mexrc" file to allow attaching to different PLOT3D graphics
        windows.  The .mexrc file lines
              reservebut 13
              bindfunc hogwhiledown 13
        bind the "no scroll" key to the hogwhiledown function.  For more
        information on the .mexrc file and hogwhiledown, read the Window
        Manager section in the IRIS User's Guide.
 
 
      Mouse
 
          On the IRIS, the mouse can be used to manipulate the picture on the
          graphics screen.  The mouse buttons are used to activate different
          degrees of freedom for manipulation, while the mouse (x,y)
          displacement controls the RATE of motion in the respective degree of
          freedom.
 
          While the left mouse button is being depressed, x-motion of the mouse
          is associated with rotation (about the center of the MINMAX box) in
          phi, while y-motion controls rotation in theta.  (Phi and theta are
          cylindrical coordinate angles, using the DISSPLA convention.)
 
          The middle mouse button activates zooming (toward the center of the
          MINMAX box), controlled with the y-motion of the mouse.  X-motion is
          not used.
 
          Depressing the right button allows the picture to be dragged left or
          right (x-motion of the mouse), and up or down (y-motion) on the
          screen.  REMEMBER, the POSITION of the mouse controls the RATE of
          motion (speed) of the object.
 
          The sensitivity of the mouse to zooming and screen dragging is a
          function of the distance of the VPOINT initial viewpoint from the
          center of the MINMAX box.  The closer the viewpoint to the MINMAX
          box, the less sensitive the mouse.  While the plot is on the screen,
          this can be adjusted by typing "up-arrow" (to increase the
          sensitivity by a factor of 2) or "down-arrow" (to decrease it).
 
          More than one button can be depressed at one time.  The mouse position
          will control the rates associated with the last button pushed, while
          the motions associated with the other buttons are maintained, as long
          as they remain depressed.
 
          Type <RETURN> to return to PLOT3D command level.
 
 
      Seiko_color_printer_screen_save
 
          Type "S" to save the current graphics window.
          Type "F" to save the full screen.
 
          The following message will appear when the save is done:
             "Graphics window [or Screen image] saved as file xxx.N.sei"
          where xxx is the Q filename (or XYZ filename, or simply "PLOT3D"),
          and N is the frame number (starting from 1 for each PLOT3D run).
          These files can be printed by typing the Unix command
             "lpr -dseiko xxx.N.sei".
 
          Once the image has been saved, the picture can again be manipulated
          with the mouse.
 
          This screen save option is a fixed-up version of the routine SCRSAVE
          supplied by Silicon Graphics under W3.5-GL2 and documented in the
          GL2-W3.5 Release Notes, p. 4-38.  It still references routines in the
          library "/usr/people/gifts/mextools/imglib/libimage.a".
 
 
      RAS_screen_save
 
          Type "R" to save the graphics window.
 
          The following message will appear when the save is done:
             "Graphics window saved as frame N in file xxx.ras"
          The filename used is the Q filename (or XYZ filename, or simply
          "PLOT3D") with a .RAS extension.
 
          Once the image has been saved, the picture can again be manipulated
          with the mouse.
 
          One file is opened per PLOT3D run.  Frames are added to the existing
          file, if there is one (so we don't delete it by creating a new one!).
 
          Screen images can be restored by running the program RASP.
 
          The ARCGraph GRAFIX RAS file format is used.  See the file
          "arcgraph/graifs.doc", ARCGraph Internal Functional Specifications
          for a description of the format.
 
 
      PostScript_screen_saves
 
          Two types of PostScript screen saves are implemented.  They use the
          "P" key (high-quality line/polygon image) and the "D" key (screen
          dump).  Both convert the image to a gray-shaded image, and both can
          tie up a reasonably powerful printer for a looong time, based on
          the complexity of the image (and that doesn't necessarily mean the
          size of the file)!
 
          The color of any object is converted to a "gray" value based on its
          difference from the background color, and the background color
          becomes equivalent to an "erase":
 
             gray = 1 - max(|R-Rbackground|,|G-Gbackground|,|B-Bbackground|)
 
          where a value of zero is black and one is white.  Thus to generate
          a shaded image, make the body to be shaded white, and plot with a
          white background (as it should appear on the page).
 
          Once the image has been saved, the picture can again be manipulated
          with the mouse.
 
          A new file is opened for every PLOT3D run.  Thus if the file already
          exists, it is deleted!
 
 
        High_quality
 
            Type "P" to save the graphics window.
 
            The following message will appear when the save is done:
               "Graphics window saved as page N in file xxx.ps"
            The filename used is the Q filename (or XYZ filename, or simply
            "PLOT3D") with a .PS extension.
 
            This is intended for high-quality line drawings, or half-tone
            shaded images.  Shading capability (probably) depends on the
            printer.  Z-buffering DOES NOT work with this screen save, but
            backface polygon removal DOES.
 
 
        Screen_dump
 
            A bitmapped screen dump to a PostScript file is available as well.
            Type "D" to save the graphics window.
 
            "D" stands for both "dump" and "dangerous"!  A fullsize shaded
            image can tie up the printer for hours!  Please be courteous to
            other users.
 
            The following message will appear when the save is done:
               "Graphics window saved as page N in file xxx.psd"
            The filename used is the Q filename (or XYZ filename, or simply
            "PLOT3D") with a .PSD extension.
 
 
      Screen_dump_to_QMS
 
          Type "Q" to save the graphics window.
 
          The following message will appear when the save is done:
             "Graphics window saved as page N in file xxx.qms"
          The filename used is the Q filename (or XYZ filename, or simply
          "PLOT3D") with a .QMS extension.
 
          This is intended for line drawings only--anything that is not
          the background color (usually black) will be colored black on the
          QMS (where the background is, of course, white).
 
          Once the image has been saved, the picture can again be manipulated
          with the mouse.
 
          A new file is opened for every PLOT3D run.  Thus if the file already
          exists, it is deleted!
 
 
      Backfacing_polygon_removal
 
          On the IRIS (2000 or 3000 series), typing "B" toggles the removal of
          backfacing polygons on or off.  The default is off.  See the IRIS
          User's guide for a description of backface polygon removal and its
          uses.  Note that this is not an exact procedure, and some polygons
          may not get properly removed due to screen resolution.  (The polygon
          normal is determined in screen coordinates.)
 
          This is a new feature, and as such is not yet polished.  The
          clockwise or counterclockwise ordering of polygon points in walls
          can be changed by using a negative increment for one of the indices.
          This is true for shocks and contour surfaces as well (I believe), by
          using a negative increment in the subset definition.  Point ordering
          for color contours does NOT change with the sign of the increment,
          however.
 
 
      Z-buffering
 
          *****  WARNING  *****  Under GL2-W3.5 (as of 18 March 1987),
          z-buffering does not work for any displays using nonsolid linestyles!
          The machine may crash.
 
          IRIS 2000 or 3000 series machines with 28 or more bitplanes support
          hardware z-buffering to generate hidden surface pictures.  Type "Z"
          to toggle z-buffering on and off.  The default is off.  The MINMAX
          command should be set to include everything of importance, as the
          near and far clipping planes are activated with z-buffering, and are
          set to include somewhat more than the volume specified by the MINMAX
          command.
 
          Z-buffering cannot be done from RGB mode (PLOT/IRISRGB); also, if
          the display is in double buffer mode, a side-effect of typing "Z"
          is that the display mode will change to single buffer mode.  The
          mode will change back when z-buffering is turned off.
 
          Parameters IZNEAR and IZFAR must be set correctly in subroutine IRIS.
 
 
    Script
 
        These commands, when entered following a PLOT/SCRIPT command, control
        the motion of the objects on the display screen.  {Not implemented
        for DISSPLA or GRAFIX.}
 
 
      CENTER
 
 
          Format:  CENTER [x,y,z]
 
          Move the center of the display (equivalent to the center of the
          MINMAX box) to the given (x,y,z) point.  Objects on the screen will
          rotate about this point.
 
 
        Qualifiers
 
          /FROM=(x,y,z)
            Specify what point to move the center from.  Default is the previous
            CENTER, or center of the MINMAX box.
          /IN=n
            Move the center to the new point in n frames.
 
 
      DELETE
 
 
          Format:  DELETE
 
          Delete the current graphics window.  Attach to the "next youngest"
          window.  If there are no other graphics windows, return to the
          PLOT3D command prompt.  (Behavior is identical to the <DELETE> key
          in interactive mode.)
 
 
      GO
 
 
          Format:  GO [number of frames]
 
          "GO n" means advance the display n frames.  The default value for
          n is one.
 
 
      HOLD
 
 
          Format:  HOLD [number of frames]
 
          "HOLD n" means hold the display still for n frames.  Default value
          for n is one.
 
 
      INTERACTIVE
 
 
          Format:  INTERACTIVE
 
          Temporarily enable interactive manipulation of the display.
          All keyboard and mouse controls are active in this mode.
          Typing <RETURN> returns control to the SCRIPT input.  See
          "PLOT Mouse" for a description of interactive control of the
          display.
 
 
      RETURN
 
 
          Format:  RETURN
 
          End of SCRIPT commands.  Return to the PLOT3D command prompt.
          Leave the current graphics window on the screen (if running
          under the window manager).  (Behavior is identical to the
          <RETURN> key in interactive mode.)
 
 
      STOP
 
 
          Format:  STOP
 
          Signals the end of SCRIPT commands.  Equivalent to DELETE
          (followed by RETURN if other graphics windows are on the
          screen.
 
 
      VPOINT
 
 
          Format:  VPOINT [x,y,z]
                or VPOINT/ANGLES [phi,theta,radius]
 
          Change the viewpoint to the given (x,y,z) or (phi,theta,radius)
          position.  Viewpoint is always looking toward the CENTER point.
 
 
        Qualifiers
 
          /ANGLES
            Viewpoint (as well as FROM viewpoint, if supplied) is in
            (phi,theta,radius) spherical coordinates.  Default is (x,y,z)
            cartesian coordinates.
          /FROM=(x,y,z)
            Viewpoint from which to move.  Specified as (x,y,z) or
            (phi,theta,radius), depending on /ANGLES.  Default is to move from
            previous viewpoint.
          /IN=n
            Move the viewpoint to the new viewpoint in n frames.
 
 
  QUIT
 
 
      Format:  QUIT
 
      Exit out of PLOT3D.  Same as EXIT.
 
 
    Qualifiers
 
      /SAVE
        Save the journal file.  Default is to delete it.
 
 
  RAKES
 
 
      Format:  RAKES
 
      Specify the starting locations and attributes of particle traces (and
      vortex lines, both of which are traced through a vector field).
 
 
    Qualifiers
 
      /IJK (D)
      /XYZ
        Traces can be started at (i,j,k) grid points or at (x,y,z) physical
        coordinates.
      /ADD
        Rake specifications are to be added to the end of existing rake
        specs.  This does not work when the particle traces are read in with
        /READ=file.
      /ATTRIBUTES (D)
      /NOATTRIBUTES
        Controls whether attributes such as color, line type and thickness,
        and surface transparency are prompted for.
      /READ=file
      /WRITE=file
        Particle traces can be written out or read in to PLOT3D, allowing
        traces to be replotted later, or calculated elsewhere.  See
        "File_format" for information on file structure.  The default file
        type is .PAR.
      /+TIME (D)
      /-TIME
      /+-TIME
        Controls whether traces in this rake are followed in the plus, minus,
        or both directions of the vector field.
      /MAXPOINTS=n
        Set the maximum number of points for each particle trace segment,
        allowing a crude control on the length of the trace.  Each trace
        MIGHT be made up of more than one segment, as a new segment is
        started when a trace continues in another grid.  Currently, a
        particle takes 5 steps to cross a computational cell; therefore,
        setting /MAXPOINTS=15 means that each trace will be roughly 3 cells
        long.
 
        The default value is /MAXPOINTS=2000.  Maximum value is 4000.
      /SCALAR_FUNCTION=function number
      /NOSCALAR_FUNCTION (D)
        Sets the function to be used to determine the color of the traces.
        Each trace will be colored according to the value of this function
        (which must be a scalar function) and the color map(s) specified using
        the CONTOUR command.  If /NOSCALAR_FUNCTION is selected, the color
        attribute color will be used.  This is the default.
 
 
    Restriction
 
        Traces can be restricted to remain in computational planes.
        This is useful for plotting particle traces on symmetry
        planes or for simulating oil flow.  For oil flow pictures, traces are
        often restricted to remain one computational plane above the surface
        (as the velocity on the surface is zero).
 
        Valid restrictions are IJ, IK, or JK.
 
 
    File_format
 
        Trace files are read and written using FORTRAN UNFORMATTED I/O
        (BINARY on Unix or Apollo, UNFORMATTED on remote versions of PLOT3D
        (e.g. the CRAY 2, Convex, or Alliant versions that use the IRIS))
        as follows:
 
           10 CONTINUE
              READ(unit,END=20) IRAKE,ITRACE,N,IGRID
              READ(unit) (X(I),I=1,N),(Y(I),I=1,N),(Z(I),I=1,N),(T(I),I=1,N),
             C           (RI(I),I=1,N),(RJ(I),I=1,N),(RK(I),I=1,N)
              ...
              GOTO 10
           20 CONTINUE
 
        IRAKE is the rake number, and will be used to determine the attributes
        of the trace when it is drawn.  ITRACE is the trace number inside this
        rake, and N is the number of points to be read in the following
        record.  IGRID is the grid number for this part of the trace.
        The physical location (x,y,z) and time t is recorded for each point in
        the trace, as well as the (i,j,k) coordinates, saved as real numbers
        to indicate both the cell number and position within the cell of the
        point.
 
        A trace may appear in the file as several segments, all with the same
        rake and trace number.
 
 
  READ
 
 
      Format:  READ
 
      Read input data files.
 
 
    Qualifiers
 
      /1D
      /2D
      /3D (D)
        Controls whether the input files are expected to be 1-, 2-, or
        3-dimensional.
      /XYZ=file (D)
        Input standard grid file.
      /Q=file (D)
 
        Input standard Q file, including density, momentum, and stagnation
        energy per unit volume.
 
 
      /FUNCTION=file
        Input an arbitrary function.  {Currently there is no way to plot
        an arbitrary function.}
      /MDATASET
        For multiple datasets in one file.  {Not implemented.}  (Intended to
        support time-varying solutions.)
      /MGRID
        If the files contain multiple grids, in the multiple grid form.
      /FORMATTED
      /UNFORMATTED (D)
      /BINARY (D for Unix)
        Controls whether the files are expected to be in FORTRAN FORMATTED
        or UNFORMATTED, or C BINARY form.  For FORMATTED form, free-formats
        (READ(unit,*)) are used.
 
        Under Unix, I/O is done much more efficiently using C and straight
        BINARY files (which have no record information) than FORTRAN
        UNFORMATTED.  Thus BINARY is the default under Unix or Apollo.
        (Note that on the IRIS, BINARY I/O can be done from FORTRAN too,
        using OPEN(...,FORM='BINARY').)
 
        On remote versions of PLOT3D (e.g. the CRAY 2, Convex, or Alliant
        versions that use the IRIS), UNFORMATTED is the default, since
        FORTRAN reads and writes are fast enough, and ease of data conversion
        favors the use of FORTRAN I/O.  BINARY is available, however (but
        of course the files are different than IRIS BINARY files!).
      /PLANES
      /WHOLE (D)
        Specifies whether the data is to be read in planes (one plane per
        record) or the whole thing at once.  See "READ File_formats" for
        some examples of reads with /PLANES and /WHOLE.  Note that /PLANES
        has no effect for reading other than 3D datasets.
      /CHECK (D)
      /NOCHECK
 
        Controls whether the default checking of Q data for zero or negative
        density or pressure is performed.  Bypassing this check can speed up
        the Q file reading significantly.
 
      /JACOBIAN
      /NOJACOBIAN (D)
 
        Indicates whether Q variables are scaled (divided) by the determinant
        of the metric Jacobian, in which case this determinant is expected as
        an additional Q variable.  {This option may disappear, leaving the
        default of NOJACOBIAN.}
 
      /BLANK
      /NOBLANK (D)
 
        Signals whether the XYZ file contains an integer array IBLANK as a
        fourth (or rather n-dimension plus one) variable.  At (i,j,k) points
        where IBLANK=0, data will NEVER BE USED.
 
 
 
    File_formats
 
 
 
      XYZ_file
 
          Listed are some samples...
 
 
        Single_grid
 
            1D:
                  READ(unit) IDIM
                  READ(unit) (X(I),I=1,IDIM)
 
            2D:
                  READ(unit) IDIM,JDIM
                  READ(unit) ((X(I,J),I=1,IDIM),J=1,JDIM),
                 &           ((Y(I,J),I=1,IDIM),J=1,JDIM)
 
            3D (/WHOLE):
                  READ(unit) IDIM,JDIM,KDIM
                  READ(unit) (((X(I,J,K),I=1,IDIM),J=1,JDIM),K=1,KDIM),
                 &           (((Y(I,J,K),I=1,IDIM),J=1,JDIM),K=1,KDIM),
                 &           (((Z(I,J,K),I=1,IDIM),J=1,JDIM),K=1,KDIM)
 
            3D (/PLANES):
                  READ(unit) IDIM,JDIM,KDIM
                  DO 10 K= 1,KDIM
                     READ(unit) ((X(I,J,K),I=1,IDIM),J=1,JDIM),
                 &              ((Y(I,J,K),I=1,IDIM),J=1,JDIM),
                 &              ((Z(I,J,K),I=1,IDIM),J=1,JDIM)
               10    CONTINUE
 
 
 
        with_IBLANK
 
            (Other combinations such as 2D or multiple grid are similar.)
 
            3D (/WHOLE):
                  READ(unit) IDIM,JDIM,KDIM
                  READ(unit) (((X(I,J,K),I=1,IDIM),J=1,JDIM),K=1,KDIM),
                 &           (((Y(I,J,K),I=1,IDIM),J=1,JDIM),K=1,KDIM),
                 &           (((Z(I,J,K),I=1,IDIM),J=1,JDIM),K=1,KDIM),
                 &      (((IBLANK(I,J,K),I=1,IDIM),J=1,JDIM),K=1,KDIM)
 
            3D (/PLANES):
                  READ(unit) IDIM,JDIM,KDIM
                  DO 10 K= 1,KDIM
                     READ(unit) ((X(I,J,K),I=1,IDIM),J=1,JDIM),
                 &              ((Y(I,J,K),I=1,IDIM),J=1,JDIM),
                 &              ((Z(I,J,K),I=1,IDIM),J=1,JDIM),
                 &         ((IBLANK(I,J,K),I=1,IDIM),J=1,JDIM)
               10    CONTINUE
 
 
 
        Multiple_grid
 
            3D (/WHOLE):
                  READ(unit) NGRID
                  READ(unit) (IDIM(IGRID),JDIM(IGRID),KDIM(IGRID),IGRID=1,NGRID)
                  DO 10 IGRID= 1,NGRID
                     READ(unit)
                 & (((X(I,J,K),I=1,IDIM(IGRID)),J=1,JDIM(IGRID)),
                 &                              K=1,KDIM(IGRID)),
                 & (((Y(I,J,K),I=1,IDIM(IGRID)),J=1,JDIM(IGRID)),
                 &                              K=1,KDIM(IGRID)),
                 & (((Z(I,J,K),I=1,IDIM(IGRID)),J=1,JDIM(IGRID)),
                 &                              K=1,KDIM(IGRID))
               10    CONTINUE
 
            3D (/PLANES):
                  READ(unit) NGRID
                  READ(unit) (IDIM(IGRID),JDIM(IGRID),KDIM(IGRID),IGRID=1,NGRID)
                  DO 10 IGRID= 1,NGRID
                  DO 10 K= 1,KDIM(IGRID)
                     READ(unit)
                 & ((X(I,J,K),I=1,IDIM(IGRID)),J=1,JDIM(IGRID)),
                 & ((Y(I,J,K),I=1,IDIM(IGRID)),J=1,JDIM(IGRID)),
                 & ((Z(I,J,K),I=1,IDIM(IGRID)),J=1,JDIM(IGRID))
               10    CONTINUE
 
 
      Q_file
 
          Listed are some samples...  The Q header information (extra
          information at the beginning of each grid) includes the following:
 
 
             Freestream Mach number (FSMACH)
             Angle-of-attack        (ALPHA)
             Reynolds number        (RE)
             Time (not used)        (TIME)
 
 
 
 
        Single_grid
 
 
            (without Jacobian)
 
            1D:
                  READ(unit) IDIM
                  READ(unit) FSMACH,ALPHA,RE,TIME
                  READ(unit) ((Q(I,NX),I=1,IDIM),
                 &            NX=1,3)
 
            2D:
                  READ(unit) IDIM,JDIM
                  READ(unit) FSMACH,ALPHA,RE,TIME
                  READ(unit) (((Q(I,J,NX),I=1,IDIM),J=1,JDIM),
                 &            NX=1,4)
 
            3D (/WHOLE):
                  READ(unit) IDIM,JDIM,KDIM
                  READ(unit) FSMACH,ALPHA,RE,TIME
                  READ(unit) ((((Q(I,J,K,NX),I=1,IDIM),J=1,JDIM),K=1,KDIM),
                 &            NX=1,5)
 
            3D (/PLANES):
                  READ(unit) IDIM,JDIM,KDIM
                  READ(unit) FSMACH,ALPHA,RE,TIME
                  DO 10 K= 1,KDIM
                     READ(unit) (((Q(I,J,K,NX),I=1,IDIM),J=1,JDIM),
                 &               NX=1,5)
               10    CONTINUE
 
 
        Multiple_grid
 
            (without Jacobian)
            3D (/WHOLE):
                  READ(unit) NGRID
                  READ(unit) (IDIM(IGRID),JDIM(IGRID),KDIM(IGRID),IGRID=1,NGRID)
                  DO 10 IGRID= 1,NGRID
                     READ(unit) FSMACH,ALPHA,RE,TIME
                     READ(unit)
                 &    ((((Q(I,J,K,NX),I=1,IDIM(IGRID)),J=1,JDIM(IGRID)),
                 &                                     K=1,KDIM(IGRID)),
                 &     NX=1,5)
               10    CONTINUE
 
            3D (/PLANES):
                  READ(unit) NGRID
                  READ(unit) (IDIM(IGRID),JDIM(IGRID),KDIM(IGRID),IGRID=1,NGRID)
                  DO 10 IGRID= 1,NGRID
                     READ(unit) FSMACH,ALPHA,RE,TIME
                     DO 10 K= 1,KDIM(IGRID)
                        READ(unit)
                 &       (((Q(I,J,K,NX),I=1,IDIM(IGRID)),J=1,JDIM(IGRID)),
                 &        NX=1,5)
               10       CONTINUE
 
 
      FUNCTION_file
 
          Listed are some samples...
 
 
        Single_grid
 
            1D:
                  READ(unit) IDIM,NVAR
                  READ(unit) ((F(I,NX),I=1,IDIM),
                 &            NX=1,NVAR)
 
            2D:
                  READ(unit) IDIM,JDIM,NVAR
                  READ(unit) (((F(I,J,NX),I=1,IDIM),J=1,JDIM),
                 &            NX=1,NVAR)
 
            3D (/WHOLE):
                  READ(unit) IDIM,JDIM,KDIM,NVAR
                  READ(unit) ((((F(I,J,K,NX),I=1,IDIM),J=1,JDIM),K=1,KDIM),
                 &            NX=1,NVAR)
 
            3D (/PLANES):
                  READ(unit) IDIM,JDIM,KDIM,NVAR
                  DO 10 K= 1,KDIM
                     READ(unit) (((F(I,J,K,NX),I=1,IDIM),J=1,JDIM),
                 &               NX=1,NVAR)
               10    CONTINUE
 
 
        Multiple_grid
 
            3D (/WHOLE):
                  READ(unit) NGRID
                  READ(unit) (IDIM(IGRID),JDIM(IGRID),KDIM(IGRID),NVAR(IGRID),
                 &            IGRID=1,NGRID)
                  DO 10 IGRID= 1,NGRID
                     READ(unit)
                 C    ((((F(I,J,K,NX),I=1,IDIM(IGRID)),J=1,JDIM(IGRID)),
                 C                                     K=1,KDIM(IGRID)),
                 C     NX= 1,NVAR(IGRID))
               10    CONTINUE
 
            3D (/PLANES):
                  READ(unit) NGRID
                  READ(unit) (IDIM(IGRID),JDIM(IGRID),KDIM(IGRID),NVAR(IGRID),
                 &            IGRID=1,NGRID)
                  DO 10 IGRID= 1,NGRID
                  DO 10 K= 1,KDIM(IGRID)
                     READ(unit)
                 &    (((F(I,J,K,NX),I=1,IDIM(IGRID)),J=1,JDIM(IGRID)),
                 &     NX=1,NVAR(IGRID))
               10    CONTINUE
 
 
  SHOW
 
 
      Format:  SHOW [command]
 
      Show the current status of some commands.  Applicable commands are
      CONTOURS, FSURFACE, FUNCTION, MINMAX, PLOT, RAKES, SUBSETS, TEXT,
      VECTORS, VIEW, VPOINT, and WALLS.
 
 
  SUBSETS
 
 
      Format:  SUBSETS
 
      Allows parts of grids to be selected as "active".
 
 
    Qualifiers
 
      /GRID=grid number
        Specifies which grid these subsets are to be associated with (default
        is grid 1).
      /ADD
        These subsets are to be added on to the current list, rather than
        starting from subset number 1.
      /ATTRIBUTES
      /NOATTRIBUTES (D)
        Controls whether attributes such as color, line type and thickness,
        and surface transparency are prompted for.  Subset attributes are
        applied to GRID plots.  {In the future, if NOATTRIBUTES is specified
        for certain types of plots, subset attributes would be used instead.}
 
 
  TEXT
 
 
      Format:  TEXT ["line 1"[,"line 2"]]
 
      Allows the entry of up to two additional lines of text (besides the
      title), to be centered above future plots.  This text will continue to
      be used until another TEXT command is given.  Current text can be
      "erased" by entering a <RETURN> in response to the prompt for text.
      (Text is prompted for if not entered on the command line.)  If text is
      entered on the command line, be sure to enclose each line in double
      quotes.
 
 
  VECTORS
 
 
      Format:  VECTORS
 
      Sets vector plot characteristics, such as arrowheads, vector length,
      and associated scalar function for vector colors.
 
 
    Qualifiers
 
      /SCALAR_FUNCTION=function number
      /NOSCALAR_FUNCTION (D)
        Sets the function to be used to determine the color of the vectors.
        Each vector will be colored according to the value of this function
        (which must be a scalar function) and the color map(s) specified using
        the CONTOUR command.  If /NOSCALAR_FUNCTION is selected, the color
        attribute color will be used.  This is the default.
      /ATTRIBUTES (D)
      /NOATTRIBUTES
        Sets various vector attributes.  NOATTRIBUTES resets all everything to
        default values.  Attributes are:
          Color                      - Vector color if NOSCALAR_FUNCTION is
                                       selected.  Default is white.
          Vector scaling             - whether or not the vector is scaled
                                       with the magnitude.  Default is scaled.
          Vector length scale factor - default is 1 (a vector function of unit
                                       length will be drawn as one unit long.
          Arrowhead type             - LINES (D), FILLED, or NONE.
          Arrowhead scaling          - whether or not the arrowhead is scaled
                                       with the vector length.  Default is
                                       scaled.
          Arrowhead size factor      - default value of 1 corresponds to
                                       3/10ths the vector length for scaled
                                       arrowheads, 1/50th the longest axis if
                                       not scaled.
          Line type                  -
          Line thickness             -
          Symbol type                - causes a symbol to be put at the base
                                       of the vector.
          Symbol size                -
        See HELP ATTRIBUTES for information on line type, etc.
 
 
  VIEW
 
 
      Format:  VIEW [view]
 
      The VIEW command is used for two cases: (1) to specify which axes are
      to be horizontal and vertical for a 2D plot, and (2) to specify which
      two spatial axes are to be used for 3D function surface (carpet) plots.
      Choices are: XY,XZ,YZ,YX,ZX,ZY,TOP,SIDE,FRONT.  TOP,SIDE,FRONT are
      equivalent to XY,XZ,YZ, respectively.
 
 
  VPOINT
 
 
      Format:  VPOINT [x,y,z]
            or VPOINT/ANGLES [phi,theta,radius]
 
      Enter a viewpoint for a 3D plot.
 
 
    Qualifiers
 
      /XYZ (D)
      /ANGLES
        Controls whether the viewpoint will be interpreted as an (x,y,z) point
        in space, or as phi,theta,radius values, corresponding to DISSPLA
        conventions.
 
 
  WALLS
 
 
      Format:  WALLS
 
      Specifies which parts of the grids should be drawn for all plots,
      indicating the grid "geometry" or "configuration" (hence the name
      WALLS).
 
 
    Qualifiers
 
      /GRID=grid number
        Specifies which grid these walls are to be associated with (default is
        grid 1).
      /ADD
        These walls are to be added on to the current list, rather than
        starting from wall number 1.
      /ATTRIBUTES (D)
      /NOATTRIBUTES
        Controls whether attributes such as color, line type and thickness,
        and surface transparency are prompted for.
 

 Programmed STOP 
