PLTGKS 1993 Documentation (pltgks2)

P L T G K S - D O C U M E N T A T I O N

Pltgks is a general graphics utility and data editor.


WARNING: This Documentation is old (1993) and is for the Oregon State University Version so there are a few inaccurracies when compared to the Colorado State University Version. (A small section was added in front to describe the major differences between the 2 versions.)


Table of Contents

  • How to Run the CSU Version
  • How to Run It
  • Overview of Features
  • User Interaction with Program Sections
  • REFERENCE LIST OF ALL CONTROL PARAMETERS
  • Section I Parameters
  • Section IB Parameters
  • Section II Parameters
  • Section III Parameters
  • Graphics Line, Marker, Fill and Text Descriptors
  • Segments
  • Input Data Base
  • Special Characters in Text Strings
  • Map Projections
  • Examples

  • HOW TO RUN THE CSU VERSION

         The CSU version 2.0 of pltgks is executed by typing
    
         	pltgks2 command_file_name DD
    
         where DD is the display type and command_file_name contains
         the commands to execute.  DD can be
    
    	  GF	create gif file "plt.gif"
    	  PF	create postscript file "plt.ps"
    	  PJ	send postscript image to deskjet (color)
    	  PS	send postscript image to laserjet (black/white)
    	  PV	view postscript image with ghostview
    	  TK	view image on tek4014 screen
    	  XI	view cgm image with idt (use for animation)
    	  XX	view image in X11 window
    
         The CSU version uses netcdf files for its database (not the 
         OSU binary database).  There should be no major differences 
         in the user interface.
    
         Note when using device XX, you need to hit return in the text 
         window (not the plot window) to advance to the next page.
    
    

    PLTGKS Oregon State University 1993 Documentation


    HOW TO RUN IT

    
        The program is executed by typing
    
          % pltgks
    
        This should execute the image file $OSUATMOS/bin/pltgks
    
        You must source the file $OSUATMOS/lib/inits/pltgks to use all
        the features available. Add the following line to your .cshrc
        file:
    
          source /usr/local/lib/inits/pltgks
    
        The proceedure reads its command line to search for the command
        file, the first graphics workstation and the GKS error message
        file in that order. Each argument must be preceeded with a
        slash, /.
    
        For example,
    
          % pltgks /cfile /4014l2 /efile
    
        sets the command file to cfile, the workstation to your terminal
        assumed to emulate a Tektronics 4014 in landscape mode and the
        error file to efile.
    
        Instead of using the command line, you may use unix
        environmental variables.
    
        These are: PLT_COMMAND_FILE
                   GKS_WORKSTATION_1 (and _2 _3 _4)
                   GKS_ERROR_FILE
    
        For example,
    
          % setenv GKS_WORKSTATION_1 postl1
          % pltgks /cfile
    
        sets the command file to cfile, the workstation to landscape
        postscript and the error file to your terminal (default).  The
        workstation assignment will remain in effect until changed or
        you terminate the session.
    
    
        Pltgks consists of high level routines which call an external
        GKS library to handle graphics. The GKS library is not part of
        pltgks. Several GKS librarys exist, and therefore there are
        several versions of pltgks.
    
        Each pltgks version is the same except for the GKS library.
    
        These versions are:
    
        opltgks   local ats_gks2a, postscript, Tektronics 4014 and 4128
    
        pltgks    local gks2a, postscript, Tektronics 4014 and 4128 and
        suncore
    
        spltgks   SunGKS 3.0, postscript and sunview
    
        xpltgks   IBM xgks, xwindows
    
        The workstations for each version are shown below.
    
    
    
      o pltgks
    
                            DESCRIPTION
        WRKS    TYPE        (L=LANDSCAPE, P=PORTRAIT)
        ------  ----------  ---------------------------
        CG2DL1  sunconsole  a raw sunconsole device
        CG2DL2  sunview     a sunview window
    
        4014L1  Tek 4014    A specfic 4014
        4014P1
        4014L2  Tek 4014    Your terminal
        4014P2
    
        POSTL1  Postscript  Creates file PS1
        POSTP1
        POSTL2  Postscript  Creates file PS2
        POSTP2
    
        4128L1  Tek 4128    A specfic 4128
        4128P1
        4128L2  Tek 4128    Your terminal
        4128P2
    
        WISS_1  generic
        WISS_2  generic
    
      o spltgks
    
                            DESCRIPTION
        WRKS    TYPE        (L=LANDSCAPE, P=PORTRAIT)
        ------  ----------  ---------------------------------
        STLBL   suntool     Big landscape suntool workstation
        STLSL   suntool     Small
        STLBP   suntool     Big portrait suntool workstation
        STLSP   suntool     Small
    
        POSTL1  Postscript  Creates a file called ps1
        POSTL2  Postscript  Creates a file called ps2
    
        METAI   meta        metafile input
        METAO   meta        metafile output
        MOBIN   meta        binary metafile
    
        WISS_   generic
    
      o xpltgks
    
                            DESCRIPTION
        WRKS    TYPE        (L=LANDSCAPE, P=PORTRAIT)
        ------  ----------  --------------------------------
        X1      xwindows    pop up window
        X2      xwindows    another pop up window
        MI      meta        metafile input
        MO      meta        metafile output
        WISS    generic
    
    
    
    
    
        EXAMPLES OF INVOKING PLTGKS:
    
        1.  % pltgks /myfile.mer /postl1
    
        This  assigns  the  command  file  to  be  myfile.mer,   assigns
        workstation  1  to  be POSTL1 and assigns the message file to be
        your terminal. If the command file does not exist the task  will
        fail  to  start. The order of the parameters on the command line
        is significant. The output will be a file called PS1, unless you
        have previously assigned something to PS1, for example;
    
        % setenv PS1 myfile.vec
    
        If the command file myfile.mer sets WRKS(1), eg.  WRKS='4014L2',
        then  workstation number 1 will be 4014L2, not POSTL1, since the
        command  file  assignment  is  done  after  the   command   line
        assignment.
    
        2.  % pltgks
    
        The program is started with no command file or workstation.
    
        3.   You  may  also  assign  things  using   the   environmental
        variables.
    
        % setenv PLT_COMMAND_FILE myfile.mer
    
        % setenv GKS_WORKSTATION_1 postp1
    
        % setenv GKS_ERROR_FILE errfile
    
        % pltgks
    
        is equivalent to % pltgks /myfile.mer /postp1  /errfile,  except
        when  you  use  the  environmental variables they remain defined
        until you chanage them of logoff.
    
        4.  You may assign more than one workstation and the  postscript
        output file
    
        % setenv GKS_WORKSTATION_2 postl1
    
        % setenv GKS_WORKSTATION_3 wiss_1
    
        % setenv GKS_WORKSTATION_4
    
        % setenv PS1 mypost1
    
        % pltgks /myplt /4014l2 /pltgks.errors
    
        this case starts PLTGKS with 3 workstations; 1)4014L2,  2)POSTL1
        and 3)WISS_1, the postscript will be in the file mypost1
    
    

    OVERVIEW OF FEATURES

    
        1) INPUT DATA
    
        PLTGKS reads two types of data files: 1) the DISPLAY  DATA  BASE
        (DDB),  and  2)  in  STATION FILE form. A discussion of the data
        base is in section XI and in the separate RWDATA  documentation.
        See  the  separate document Station Type Data, and the section I
        SFILE parameter for a disucssion of station files. The data base
        is  binary,  direct  access for fast access to large data files.
        Station data files are sequential, text files.
    
        All fields in the data base have four dimensions. Of course,  up
        to three of them may not be applicable for any particular field.
        The dimensions may be things like longitude,latitude,height,time
        or  anything.  There  is  a PLTGKS plotting restriction that the
        data in all dimensions be on a regular grid, ie. the grid  nodes
        are  equally spaced.  The data base stores the data in a binary,
        direct access data file, and stores the data  description  in  a
        text file.
    
        The Station type data files are sequential text files which  may
        be  created  with  another program or with an editor. Plots that
        can be done using Station type data files are XY line plots, Bar
        plots, Histograms, vector plots and station plots.
    
        While there is no limit to the size of arrays in the data  base,
        there  is a limit to the array size of data that PLTGKS can read
        and plot at one time.  The input data and  the  user  parameters
        PLANE,CORD,WINDOW  and WRAP determine the size of the final two-
        dimensional array of data. The size of this array cannot  exceed
        32,767  WORDS,  ie.  the  product of nx and ny must be less than
        32,767.  For data larger than this limit, parts of the data  can
        be  plotted  one at a time, and the subplots merged to look just
        like one plot.
    
        For Station file plots, the size limit is 32,767 divided by  the
        number  of fields to extract from the station file. For example,
        the maximum number  of  stations  to  plot  at  one  time,  when
        extracting   four  fields  per  station,  is  32,767/4  =  8,191
        stations.
    
        2) TYPES OF PROCESSING
    
        A) Extracting a slice of data
    
        Regardless of the logical order in which the data is  stored  in
        the  data base, eg. longitude,latitude,height, and time, any two
        dimensional windowed slice may  be  extracted.  The  window  may
        include  an option to select every other node, every third node,
        etc.  Either dimension may be wrapped around.  A  dimension  may
        also be reversed.
    
        B) Quick examination of data
    
        The mean,minimum and maximum of  the  extracted  data  slice  is
        computed  and  reported  to  the  interactive  user every time a
        request is completed.   An  option  exist  for  computing  these
        statistics on a sphere.
    
        The field array may be printed to a  file  or  the  terminal  to
        allow  examinaton of actual data values. The statistics may also
        be printed to a file by using the GRAPH parameter.  These may be
        examined later to select the best plotting parameters.
    
        C) Data manipulation with Functions
    
        Data arrays may be scaled  using  constants,  eg.  multiply  all
        values  by  1E6 prior to plotting, subtract a constant, etc. Two
        arrays may be combined with a function to compute a new array of
        data.  The  user first extracts field number one and 'saves' it,
        then extracts the second field and supplies the function name to
        perform.  Eg.  the  difference  of two arrays may be computed by
        scaling one with a minus one mulitply constant and  then  adding
    
    
    
        the two arrays.
    
        A list of functions exist for performing operations like:
          1) multiple,divide,add and exponent a single array with
        constants
          2) multiply two arrays together
          3) divide two arrays
          4) add two arrays (subtract=mulitply one by minus 1 and add
        them)
          5) raise one array to the power of a second array
          6) grid transformation (one regular grid to another)
          7) 9-point smoother filter
          8) Esbensen/Kushnir gaussian filter
          9) averaging a 2-d array over one of its dimensions
         10) extending data with a data fill algorithm
         11) take the log (base 10 or e) of a single array
         12) do a harmonic decompostiion
         13) compute a 2-d average of a 3-d field
         14) compute monthly means from daily means
         15) compute annual means from monthly means
         16) compute sliding, 12-month means from monthly means
         17) normalize an array so the maximum range is -1 to +1
         18) compute simple derivatives
         19) transfrom from an irregular to a regular grid
    
        3) TYPES OF PLOTS
    
        A) CONTOUR/FILL
    
        Parameters which control contour/fill  plots  are  CON  (contour
        levels to draw) and FILL (the regions to grey shade or fill with
        color).   The  fill  may  be  done  continuously  or  for   each
        individual  cell  (cell  array).   Nice  valued, equal increment
        contour levels may be automatically generated.  A  list  of  the
        drawn  contour  lines  may be requested with CON.L and a list of
        the fill regions may be requested with FILL.L. A fill  or  color
        bar may be displayed using FILL.BAR.
    
        Contour line options include CON.COLOR,  CON.LWIDTH,  CON.LTYPE,
        CONLAB.TXT and CON.FORLAB.
    
        Fill options include  FILL.COLOR,  FILL.INTSTYLE,  FILL.STYLEIND
        and  FILL.METHOD and FILL.BAR. For denoting missing data regions
        the FILL.BAD.DATA option may be used.
    
        B) VECTOR
    
        Vector plotting draws an arrow whose length is  proportional  to
        the  vector  magnitude  (see  VECPAR) and whose direction is the
        vector direction. The vector magnitude may also be contoured and
        filled  as  in a normal contour plot. A vector plot requires the
        use of the SAVE.DATA (to save the -> component) and FUNCTION (to
        VECTOR  the  current  field  and  the  saved  one) parameters in
        section I.  FUNCTION='VECTOR' invokes a  vector  plot.  VEC.DESC
        controls  the  polyline  attributes.  An example vector with the
        magnitude  labelled  may  be  placed  on  the  plot  using   the
        VEC.LEGEND   parameter.  The  VEC.UVLEG  and  VEC.UVLEGT  inputs
        control an optional legend showing selected u and  v  components
        with  a  label,  including the maximum u and v components in the
        data.
    
        Vector plots may be done using data either from the DDB or  from
        STATION files.
    
        C) XY TYPE LINE DRAWING
    
        The program may be used to do XY type plots, eg. temperature  as
        a  function  of  height. All inputs and processes apply just the
        same as for vector/contour plots. When the  2-dimensional  slice
        of  data  read  has one of its dimensions with 1 grid node only,
        then an XY type plot is ASSUMED. If the data is one dimensional,
        then XY type plots will always be assumed. If the data is 2,3 or
        4 dimensonal, then WINDOW and CORD must be used  to  select  the
        data in such a manner that one dimension has 1 grid node.
    
        In a XY type plot values must be  supplied  for  the  plot  data
        axis.  Eg.  for temperature as a function of a dimension you may
        want to specify plot labels for the temperature of 10,20,30  and
        40  degrees  C.  This  is  acomplished  by  using PRANGE for the
        appropriate axis (see PRANGE).
    
        If PRANGE is not supplied for the appropriate  plot  axis,  then
        'nice'  limits  are  AUTOMATICALLY computed for that axis of the
        plot frame.  For example, if the temperature range is 8.2 to  15
        degrees,  the  'nice' limits might be 8 to 16 with a frame label
        every 2 degrees.
    
        The XY line is clipped to the current user  window  and  missing
        data is handled. A legend of drawn lines may be generated.
    
        The points may be markered and/or connected with line  segments.
        The  parameter XYMARKS.DESC defines the markers, and XYLINE.DESC
        the  line  segments.   If  the  marker  type  (line   type)   in
        XYMARKS.DESC (XYLINE.DESC) is zero, then the the markers (lines)
        are not drawn, since zero is not a valid marker  or  line  type.
        The default is to connect with line segements and not mark.
    
        XY type plots may also be  done  with  station  data.  See  this
        discussion below.
    
        D) SCATTER
    
        These consist of placing a  mark  at  (x,y)  paired  data  value
        locations.   The  method  is invoked by first reading the x-axis
        component using SAVE.DATA='Y', then the y-axis  component  using
        FUNCTION='SCATTER'  to indicate that the next plot is a scatter.
        The 8th byte of FUNCTION is used to set the character that  will
        be  drawn for the plot. If the 8th byte is a blank, then markers
        are drawn. See SCAT.TXT  in  section  II  for  a  more  complete
        description of this option.
    
        E) STREAMLINE
    
        A streamline plot is a representation of a two-dimensional  flow
        field displayed by drawing continous streamlines with arrowheads
        indicating the flow direction.  The magniutde of the flow, which
        is  not represented, is returned from the streamline routines so
        it may easily be contoured on the same plot if desired.
    
        The STRPAR parameter controls many aspects of  the  streamlines.
        As  with  vector  plots, streamline plots require the use of the
        SAVE.DATA (to save the -> component)  and  FUNCTION  parameters.
        FUNCTION='STREAM',  invokes  a  streamline  plot.  The  STR.DESC
        parameter controls the polyline attributes.
    
        F) STATION DATA
    
        PLTGKS recognizes a particular type of file as  a  station  data
        file,  and  this  file  may  be  input  by  specifying the SFILE
        parameter.  For a  true  station  plot,  the  data  consists  of
        irregularly located stations, with a series of fields defined at
        each station. The station file may be interpretated in different
        ways depending on the station plot command.
    
        A station data file is NOT in display data base form,  it  is  a
        simple  text  file, and as such can be created with an editor or
        any  applications  program.    See   the   Station   Type   Data
        Documentation for a description of this file type.
    
        The full functionality of PLTGKS in terms of data windowing  and
        manipulation  is  NOT implemented for station data plots. Bad or
        missing data is handled.
    
        The details of plotting with station files is  given  under  the
        section I STA.NAMES and STA.PLOT entrys.
    
        F-A) TRUE STATION PLOT
    
        A station plot displays the location of the stations,  in  terms
        of  any  x,y  space  that can be defined by any two of the field
        values.  At each location, the value of any of  the  fields  may
        also  be  displayed.   An  option exists for displaying only the
        sign (+ or -) of a field value at each station location.
    
        F-B) XY LINE PLOT
    
        If the number  of  fields  requested  using  the  STA.NAMES  and
        STA.PLOT  parameters is two, then it is assumed that the request
        is to connect  the  station  locations  sequentially  with  line
        segments.
    
        F-C) BAR PLOT
    
        If the station plot command (STA.PLOT) is of  the  form  'BARPLT
        i,j,k'  a  bar plot is done. The i,j,k triplets point to the bar
        plots x-location, y-location and y extent.  The line descriptors
        for  the  bar  plot  are  given  by  XYLINE.DESC  and the marker
        descriptors by XYMARKS.DESC.
    
        F-D) HISTOGRAM
    
        If the station plot  command  is  of  the  form  'HISTO  i,j'  a
        histogram  plot  is  done.  The  i,j  pairs point to the x and y
        values for each box of the histogram. The first  and  last  pair
        are   interpreted   alittle   differently.   See   the  STA.PLOT
        discussion.  The line descriptors for the bar plot are given  by
        XYLINE.DESC.
    
        F-E) VECTOR
    
        If the station plot command is of the form  'VECTOR  i,j,m,n'  a
        vector  plot  is  done.  The  i,j  pair  point  to  the  u and v
        components of the vector, and the m,n pair points to the x and y
        values.   Eg.  with STA.NAMES='LON','LAT','UT','VT', the station
        plot  command  might  look  like  'VECTOR  3,4,1,2'.   The  line
        descriptors for the vectors are given by VECPAR and VEC.DESC.
    
        G) SURFACE PERSPECTIVES
    
        This plot type is a perspective surface drawing of a function of
        two variables, the x and y axes, with hidden lines removed. This
        option is enabled by using FUNCTION='SURFACE'.  The  section  II
        parameter  SRFPAR  controls the eye viewing position in terms of
        angles from the horizontal and vertical.
    
        H) PRINT VALUES
    
        In this type plot, the value of the data is printed (plotted) at
        each  grid  node.  It  is  very much like the PFILE, print file,
        option  except  the  values  are  displayed  on   the   graphics
        workstation  instead of a disk file or terminal.  This plot type
        is invoked with FUNCTION='PRTVAL'.
    
        There are options for how to display the values. If the  seventh
        byte of FUNCTION is a blank, then the fortran format supplied in
        the FORMAT parameter is used  to  display  the  values.  If  the
        seventh byte is not blank, then the values will be printed using
        an algorithm which uses the least number of characters. In  this
        case  the  seventh  byte  is used to set the number of digits of
        precision  desired.  For  example,   FUNCTION='PRTVAL3',   would
        display three digits.
    
        The section II text descriptor parameter DEFCHAR.TXT is used  to
        set the color, relative size and font for the displayed values.
    
        I) MAP PROJECTIONS
    
        The default map projection  for  latitude,  longitude  plots  is
        RECTANG,  or  cylindrical equidistant.  Other projections may be
        selected  using  the  section  II  MAP.PROJECT  parameter.   Ten
        different  projections  are  possible.   Not  all  type plotting
        functions are currently supported for all projections, but basic
        contouring  and  filling  are.  The algorithm for the projection
        equations is from the Ncar Graphics  Ezmap  routines.  Different
        MAP options are available for RECTANG and all other projections.
        Section XIII has a full discussion of the various projections.
    
        J) NO-DATA PLOTS
    
        Plots with 'no-data', that is no information file and no station
        file,  can  be  constructed. Parameters typically used for these
        types                of                plots                 are
        PRANGE,BOX,TRIANGLE,LINES,ARCS,MARKS,PUTCHAR,DEFCHAR,LAB.AXS and
        LAB.FRQ.  For these plots, the 'data' is supplied  in  the  plot
        command  file  parameters.   For  example,  lines  may  be drawn
        connecting points in the LINES parameter.
    
        4) GRAPHICS OPTIONS
    
        Any data dimension may be assigned to either plot  axis.  Either
        plot axis grid may be windowed, wrapped around and or reversed.
    
        Any number of frames may be put on a single page at any location
        with  any  size,  and  any number of plots may be overlayed in a
        single frame.
    
        Almost all features of the graphics,  such  as  axis  labelling,
        where  and if to put descriptive text, etc. are user controlled.
        The many  parameters  which  define  how  the  plot  looks,  eg.
        labelling,  frame  sizes, etc., may be set up once in a file and
        then reused.
    
        Text may include sub-scripts and super-scripts, and font changes
        within strings. See section XII for a complete description.
    
        Special plot frame labels may  be  automatically  generated  for
        axes  which are months, longitude and latitude. Unevenly spaced,
        user specified plot frame labels may be requested.
    
        The user controls the color,linewidth and linetype for all drawn
        lines.
    
        The user controls the color,size and font for all text strings.
    
        Fill        region(s)        color,        interior        style
        (hollow,solid,pattern,hatch)  and  style index (pattern or hatch
        type) are user controlled. Either continuous,  ie.  interpolated
        contour following, or individual cell fill can be selected.
    
        An optional fill bar, or color bar, may  be  drawn  showing  the
        range  of  data  values  that correspond to each fill, or color,
        region.
    
        An optional line legend may be drawn showing a  sample  of  each
        line next to a user supplied text string identitfying that line.
    
        A map  drawing  routine  is  available  for  showing  land/water
        boundarys or any other boundary type features as an overlay to a
        plot. One type of  map  draws  boundary  lines  between  unequal
        surface  codes, eq. 0 for water and 1 for land. This type of map
        is created by the user with the SAVEMAP function  from  data  in
        the data base.
    
        There are map options which draw specific maps, such  as  actual
        world  continential outlines, the OSU GCM 4x5 grid outlines, the
        US political boundarys and the state of Oregon boundary.
    
        At present, the  special  maps  available  are:  1)  the  actual
        current  global  continental outlines, 2) the US state boundarys
        and 3) the OSU AGCM 4x5 grid continental  outlines.   All  these
        special  maps  assume  that X is longitude and Y is latitude and
        that the projection  is  RECTANG.  When  another  projection  is
        active,  the  list  of  maps  changes.  See  section  XIII for a
        complete description.
    
        A data masking function is available for masking out  longitude,
        latitude  data  fields  with  the  Scripps 1x1 degree topography
        data.  Land, ocean or grid points within a range  of  elevations
        may be masked.
    
        Regardless of the data, including the case of  no-data,  figures
        such  as  boxes,  triangles, lines, arcs, marks and text strings
        may be placed anywhere on the plot. The closed  figures  may  be
        filled. The boxes may be drawn and filled in 3-D.
    
        Graphics  segments  may  be  created  and  manipulated.    These
        segments  are  saved  temporary,  ie.  only  as  long  as PLTGKS
        executes.
    
        By utilizing  multiple  plots  per  page  and/or  frame  drawing
        options  and or the segment options, arrays to large to fit into
        PLTGKS at one time may be plotted one section at a time to  look
        like one coherent plot.
    
        Device dependent graphics codes may be  saved  to  a  disk  file
        specified  by  the  GRAPHICS.FILE  parameter  in  Section I. The
        graphics may then be played back on the same type  device  at  a
        later  time  with  the CPLOT utility. This is useful for 'movie'
        type graphics, where a series of  plots  must  be  displayed  in
        rapid succesion, repeatedly.
    
        5) OUTPUT DATA
    
        Data may be permanently saved to disk  files.   This  option  is
        triggered  with  the  SAVE.DATA parameter.  Data may be saved in
        memory (SAVE.DATA='YES') for using FUNCTION,  or  to  DDB  files
        (SAVE.DATA='DISK') or to RIMG image files (SAVE.DATA='RIMG').
    
        When saving to DISK, the name of the output information file and
        the  text  descriptors  in  the  output  information file may be
        specified. Existing DDB files are appended  and  new  files  are
        created.   With  this  option, the utility may be used as a data
        editor with or without graphics.
    
        The SAVE.DATA='RIMG' option outputs a RIMG, or raw image format,
        file.   This  file  is  then  suitable  for display with imaging
        software like the NCSA imagetool program or IDL  or  others.  An
        RIMG  file  is  a  stream of 8-bit bytes with no fortran control
        words. Each byte is the color index  for  a  single  pixel.  The
        pixels  are written as the plot would be viewed according to the
        pltgks options in effect, from left to right, and top to bottom.
    
        6) USERS HOOKS
    
        Pltgks has 2 user hooks. Using these hooks you may add your  own
        subroutines  to pltgks. One hook is for data processing, and one
        hook is for graphics. The approach taken is that the user writes
        the  two hook subroutines and then builds his or her own version
        of pltgks  that  then  uses  the  specific  routines.  The  user
        specific version of pltgks is built using the makepltgks script.
    
        The subroutine names  must  be  user_funct  and  user_plot.  The
        binding  may  be  found by examining the two files, user_funct.f
        and user_plot.f, in the pltgks source directory. This should be,
        $OSUATMOS/src/pltgks.
    
    

    USER INTERACTION WITH PROGRAM SECTIONS

    
        User interaction with the program is handled using  a  symbolic,
        dictionary  oriented,  Input-Output LANguage library of routines
        called IOLAN. See the separate descritpion of IOLAN.
    
        The program takes user interaction  in  three  sections  in  one
        complete cycle of producing each plot. If you are saving data to
        disk, there are four sections.
    
        For the user not doing graphics, sections II  and  III  are  not
        invoked,  such  that flow always returns to section I. The GRAPH
        parameter determines whether or not graphics are being done.  If
        GRAPH  is  not  equal to 'YES', then graphics are not attempted.
        GRAPH may be assigned in both sections I and III.
    
        The turning on/off of graphics is useful in  the  case  where  a
        function  of fields is being computed and only the final product
        is to be plotted.
    
        The cycle begins with section I. Upon reading the  IOLAN  escape
        code  dollar sign ($), the program attempts to complete the data
        request.  If the attempt is successful, and data  is  not  being
        saved to disk, flow continues to section II, if not a message is
        reported and section I is  repeated.  If  graphics  activity  is
        turned  off  (GRAPH='NO'  or  'STAT')  flow returns to section I
        regardless.
    
        When saving  data  to  disk,  SAVE.DATA='DISK',  section  IB  is
        invoked  after  section  I. These parameters are the name of the
        output information file and the  information  file  descriptors.
        After  section  IB, flow continues to section II if graphics are
        turned on, else back to section I.
    
        If there are any errors fulfilling the section I  data  request,
        such  as  specifying  an  information file that doesn't exist or
        requesting an illegal data slice, and  the  program  is  running
        from  a  command file (the CFILE option), the program stops. The
        interactive user is informed of  the  error  and  given  another
        chance at section I.
    
        Upon reading the escape code from section II flow  continues  to
        section  III.  When  the  IOLAN escape code is read from section
        III, the graphics are  attempted  and  the  program  returns  to
        section  I,  assuming  graphics  are  turned on. If GRAPH is not
        'YES', then  flow  returns  immediately  to  section  I  without
        attempting any graphics.
    
        You may stop the program at any time by entering STOP.  However,
        if  you  do this, GKS workstations may be left in an open/active
        state.
    
        A MORE GRACEFULL EXIT SHOULD  BE  DONE  BY  USING  GRAPH='STOP'.
        THIS CLOSES ALL WORKSTATIONS, CLOSES GKS AND STOPS EXECUTION.
    
    
        A brief summary of the type of inputs found in each section are:
    
    
        I. DATA REQUEST AND PROCESSING OPTIONS:
    
        command file name, workstations,  segment  actions,  information
        file  name, station data file name, station field names and plot
        request,  search  entry,  slice/window  of  field  to   extract,
        operation  and  functon to perform on the data field(s), masking
        options
    
    
        IB. SAVE DATA TO DISK OUTPUT DESCRIPTORS:
    
        output information file name, field  id,  name  and  units,  two
        lines of additional description and dimension names and units.
    
    
        II. GRAPHICS OPTIONS THAT RELATE TO THE CURRENT DATA SET:
    
        optional ranges for the  plot  axes,  contour  levels  and  line
        descriptions, fill regions and fill descriptions, vector drawing
        parameters,   streamline   parameters,   station    data    plot
        descriptors,  map  projection  and  outline type, special figure
        drawing (boxes,triangles,lines,markers and characters)
    
    
        III. GRAPHICS OPTIONS THAT DEFINE THE GENERAL LOOK OF THE PLOT:
    
        description of the frame lines and frame text,  number  of  plot
        frames on a page, number of plots to overlay in each frame, size
        and location of the plot frame, how and if to label each axis of
        the  frame,  where  and  if  to  put all other plot labels, text
        strings and where to place them on the plot
    
    

    REFERENCE LIST OF ALL CONTROL PARAMETERS

    Section I.

  • ADUMP
  • CFILE
  • CORD
  • FORMAT
  • FUNCTION
  • GRAPH
  • GRAPHICS.FILE
  • GRDFILE
  • ID
  • IFILE
  • LABFILE
  • MASK
  • MASK.BOX
  • MASK.CRC
  • MDAEP
  • MODE
  • NAME
  • NEW.GRID
  • PFILE
  • PLANE
  • POST.SEGMENT
  • PRE.SEGMENT
  • PROC.DATA
  • READ.DATA
  • SAVE.DATA
  • SEGTRANS
  • SFILE
  • STA.NAMES
  • STA.PLOT
  • STAT.TYPE
  • TOPO.INCLUDE
  • WINDOW
  • WRAP
  • WRKS
  • Section IB.

    if SAVE.DATA='DISK' then

  • DNAM
  • DUNI
  • ID
  • IFILE
  • NAME
  • TEXT1
  • TEXT2
  • UNITS
  • if SAVE.DATA='RIMG' then

  • IFILE
  • IMGPAR
  • Section II.

  • ALL.LABELS
  • ARCS
  • BOX
  • CON
  • CON.COLOR
  • CON.FORLAB
  • CON.LTYPE
  • CON.LWIDTH
  • CONLAB.TXT
  • DEFCHAR
  • DEFCHAR.TXT
  • FILL
  • FILL.BAD.DATA
  • FILL.BAR
  • FILL.COLOR
  • FILL.INTSTYLE
  • FILL.METHOD
  • FILL.STYLEIND
  • LINES
  • MAP
  • MAP.DESC
  • MAP.PROJECT
  • MARKS
  • PRANGE
  • PUTCHAR
  • SCAT.TXT
  • SIGNOF.TXT
  • SLINES.DESC
  • SMARKS.DESC
  • SRF.DESC
  • SRFPAR
  • STA.FORMAT
  • STATION.TXT
  • STR.DESC
  • STRPAR
  • TRIANGLE
  • VEC.DESC
  • VEC.LEGEND
  • VEC.UVLEG
  • VEC.UVLEGT
  • VECPAR
  • XF.NODES
  • XYLEG.LAB
  • XYLEGEND
  • XYLINE.DESC
  • XYLINE.LAB
  • XYLINE.TXT
  • XYMARKS.DESC
  • YF.NODES
  • Section III.

  • AFRAME
  • COLOR.FILE
  • FRAME.DESC
  • FRAME.TXT
  • GRAPH
  • HDLAB
  • HLAB
  • LAB.AXS
  • LAB.FRQ
  • NFRAMES
  • NPLOTS
  • PLT.LOC
  • REF.CHAR.SIZES
  • TEXT
  • TICS
  • TIME_STAMP
  • VDLAB
  • VFRAME.TXT
  • VLAB
  •     and the 23 .L parameters which control where text strings go:
    
    
        ID.L     NAME.L     UNITS.L    DFILE.L    TEXT1.L    TEXT2.L
        HDNAM.L  HDUNI.L    VDNAM.L    VDUNI.L
        CORD.L   MDAEP.L    MASK.L
        AVG.L    MIN.L      MAX.L      NHAVG.L    SHAVG.L
        HAX.L    VAX.L      TEXT.L
        CON.L    FILL.L
    
    
    

    SECTION I PARAMETERS

    
        All parameters in sections I,II and III are discussed below.
    
        The format is the parameter name , the  fortran  variable  type,
        the  number  of  elements  or  dimension  size,  and the default
        value(s) enclosed in brackets.
    
    
      o GRAPH C*4 1 [ NO ] 
    
        If GRAPH is not equal to YES then graphics are not attempted. If
        in  section  I  with  GRAPH  not  equal YES, control will always
        return to section I.  To proceed to section II and the  graphics
        GRAPH  must  be  equal  to  YES.   The preferred way to exit the
        program is by setting GRAPH equal to STOP, since this gracefully
        closes the GKS interface.
    
        If GRAPH is equal to 'STAT', then the information file name, the
        field  identification,  the  field  name  and the statistics are
        printed without attempting any graphics. If PFILE is  null  then
        the  print  is  done  to logical unit 6, or standard output.  If
        PFILE is not null, the print is done to the PFILE (print  file).
        This  may  be  useful for previewing the data before plotting to
        better select the plot paramters such as contour levels and fill
        limits.
    
    
      o WRKS C*8 4 [ all null ] 
    
        These are the workstation assignments. The first element may  be
        set  with  the  PLTGKS command line or here. The remaining three
        may be set here.  If an element  is  set,  that  workstation  is
        opened    and    set    to    active.    Workstations   may   be
        deactivated/closed by setting WRKS to null.
    
    
      o MODE C*4 1 [ MAN ] 
    
        This is the graphics page-completion wait mode. If  MODE  equals
        MAN   then   the   graphics   beeps   (or   not   depending   on
        PLTGKS_RING_BELL), and  waits  for  a  [cr]  when  the  plot  is
        finished.  Otherwise  the  MODE  string  is  intrepreted  as the
        integer number of seconds to wait upon page completion.
    
        MODE is only used when workstations with a display  are  active.
        Eg., if PostScript is the only workstation, MODE is ignored.
    
    
      o ADUMP C*4 1 [ N ] 
    
        Y or YES to automatically dump the  dictionary  on  every  entry
        into a new section. If ADUMP is not equal to Y the dictionary is
        not dumped unless you type DUMP and [cr].
    
    
      o IFILE C*56 1 [ null ] 
    
        Information file name. IFILE may either point  to  a  true  data
        file or a map file (see FUNCTION and MAP for a discussion of map
        files), or IFILE may be null, the 'no-data' case. This parameter
        is  how  you  point  to  the  particular  data  file you want to
        display.
    
    
      o CFILE C*56 1 [ null ] 
    
        The command file name. All the instructions for  PLTGKS  may  be
        put  in  a  file,  which is called the command file, or typed in
        interactively at a terminal. Using the command  file  method  is
        highly recomended.
    
        If CFILE is not null, then PLTGKS assumes  you  are  running  in
        command  file  mode, and all subsequent inputs are read from the
        command file.  If CFILE is later reset,  inputs  are  then  read
        from  the  file  specified,  including  the terminal if CFILE is
        null.
    
        Whenever the command file is not equal to the last command file,
        ie.  it is reset, Section I is repeated. See also LABFILE, which
        is an optional command file for section III only. CFILE may also
        be set using the graphics device logical.
    
    
      o PFILE C*56 1 [ null ] 
    
        The print file name. If PFILE is set, the data as  it  would  be
        plotted  is  printed  to  the  print file along with header text
        describing the data.   The  data  array  is  printed  using  the
        fortran format statement supplied through the FORMAT parameter.
    
        If the first two characters of pfile are 'TT' or 'tt', then  the
        data will be printed to standard output.
    
    
      o LABFILE C*24 1 [ null ] 
    
        LABFILE is the command file for section III only. If LABFILE  is
        not  null then all inputs for section III are read from LABFILE,
        otherwise the section  III  inputs  are  read  from  either  the
        terminal or the command file depending on CFILE.
    
        The LABFILE is automatically rewound on an end  of  file  (eof).
        This  rewind  feature  is useful for doing a series of different
        type plots in succession and having each series look  the  same,
        except of course for the data, contours, etc.
    
        This option exists because of the numerous  plotting  and  label
        specifications  possible  in  section  III. If you want all your
        plots for a certain type of data set to look the same, then  you
        may  create  a  label  file  once  and  use  that for all plots.
        Sections I and  II  are  specific  to  the  data  and  thus  are
        distinctive  from  the  'graphics only' type parameters found in
        section III.
    
    
      o FORMAT C*24 1 [ (10F7.1) ] 
    
        A valid format for printing the data to the PFILE. The  data  is
        written  to  the PFILE as ((a(i,j),i=1,nx),j=ny,1,-1), ie. it is
        printed as it would appear in a plot, from left to right and top
        to bottom.
    
        FORMAT is also used with the FUNCTION='PRTVAL' option.  In  this
        case  the  values  are  displayed  on  the workstation using the
        format.
    
    
      o ID C*8 1 [ null ] 
    
        Search id. Entrys in an information file may be searched on  the
        ID  and NAME fields. If ID is null no search is performed on the
        id. If ID is specified the information file entrys are  searched
        for an exact match on the id field.
    
    
      o NAME C*16 1 [ null ] 
    
        Search name. If NAME is null no search is performed on the name.
        If  both  ID  and NAME are null, no searching is done, such that
        the next sequential entry in IFILE will be found.  The  file  is
        rewound  on an EOF. If a search is requested all entrys are read
        at  least  once,  with  automatic  rewind,  until   the   search
        completes.  If a request is not found, a message appears to that
        effect.
    
    
      o PLANE INT 2 [ 1,2 ] 
    
        PLANE,CORD,WINDOW and WRAP combined  determine  the  final  data
        window.   The  order  of  processing to arrive at the final plot
        window is :  1) read a piece of data according to  the  PLANE  /
        CORD / WINDOW set 2) wrap around the data based on WRAP
    
        The plane to  slice  the  data  into.  PLANE(1)  refers  to  the
        horizontal  plot  axis  and  PLANE(2)  the  vertical.  Enter the
        dimension number to specify which dimension becomes  which  axis
        for  the  plot. Eg. PLANE=1,2 would assign dimension number 1 as
        the horizontal axis and dimension number 2 as the vertical.
    
        To reverse the grid in a dimension specify  PLANE  as  negative.
        Eg.  PLANE=-4,1  would assign dimension 4 as the horizontal axis
        and reverse the grid nodes and data for the 4th  dimension,  and
        assign  dimension 1 as the vertical axis. Valid values for PLANE
        are numbers 1,2,3,4,-1,-2,-3 and -4.
    
    
      o CORD REAL 4 [ 0,0,0,0 ] 
    
        The coordinates in the 2 fixed  dimensions.  CORD(1)  refers  to
        dimension number 1, CORD(2) to dimension 2 and so on.
    
        Eg.  if  PLANE=1,2  then  coordinates  must  be  specified   for
        dimension  3  and  4 to uniquely define the two dimensional data
        slice. In this case you would specify CORD(3) as the  coordinate
        for   dimension   number   3   and  CORD(4)  for  the  4th.  Eg.
        CORD=,,120,0.6.
    
        The values must be valid grid node  coordinates  for  respective
        dimensions. Eg. in this case the grid for the 3rd dimension must
        have a node equal to 120, and the grid  for  the  4th  dimension
        must have a node of 0.6.
    
    
      o WINDOW REAL 12 [ 12*0 ] 
    
        The data window in the  2  PLANE  dimensions  to  read.  If  all
        elements   are  zero,  then  all  the  data  for  the  requested
        dimensions is read.
    
        WINDOW does not necesarily define the  final  plot  window  (see
        PLANE   and  WRAP),  but  rather  defines  what  data  to  read.
        WINDOW(1),(2) and (3) refer to dimension  1,  WINDOW(4),(5)  and
        (6) refer to dimension 2 and so on. If any of the three elements
        for a dimension are non-zero, then all three elements  are  used
        to  define  the window. If all are zero, then the window used is
        the full window of the data.
    
        The 3 values which define the window  in  a  dimension  are  the
        minimum,maximum and interval.
    
        Eg. if PLANE=1,3 and a subset or window of the data is  desired,
        then  you  must specify WINDOW(1),(2),(3) for dimension 1 and/or
        WINDOW(7),(8) and (9) for the  3rd  dimension.  WINDOW  must  be
        given   in  grid  units  and  must  map  to  valid  grid  nodes.
        WINDOW=1,9,2,3*0,900,300,-150,3*0 would mean window dimension  1
        to  grid nodes with values of 1,3,5,7 and 9 and window dimension
        3 to grid nodes with values  of  900,750,600,450  and  300.  The
        interval may be used to skip grid nodes.
    
    
      o WRAP REAL 4 [ 0,0,0,0 ] 
    
        WRAP allows data to be wrapped around in one or both  dimensons.
        WRAP (1) and (2) refer to x1 and x2, while WRAP(3) and (4) refer
        to y1 and y2. If (1) is not equal (2), the horizontal  dimension
        is  wrapped  around from (1) to (2). The WRAP(1) coordinate must
        lie within the  existing  grid.  WRAP(2)  may  lie  outside  the
        current domain.
    
        Eg. if the grid is -180 to 175 by 5 for 72 nodes, and  you  want
        to  plot  the data on a grid of -30 to 390 by 5 for 85 nodes, do
        not use WINDOW since you want to plot all the data. Instead  use
        WRAP=-30,390  to  wrap  the dimension  beginning at node -30 and
        proceeding in the positive direction, repeating to the beginning
        when  the rightmost node,175 , is reached. The plot axis will be
        updated to -30 to 390 by 5 for 85  nodes.  The  same  proceedure
        applies to WRAP(3) and (4) for the vertical plot axis. Of course
        WRAP may also be used to simply window  the  data  already  read
        from the data file.
    
    
      o NEW.GRID REAL 6 [ 6*0 ] 
    
        When FUNCTION='NEWGRID', this parameter defines  the  new  grid.
        The  elements  are:  (1)=X1,  (2)=Y1, (3)=DX, (4)=DY, (5)=NX and
        (6)=NY.  The input regularly gridded data  is  transformed  with
        bi-linear interpolation to the new grid.
    
        When FUNCTION='GRIDATA', this parameter has  the  same  meaning,
        except  the input data is on a irregulary spaced grid defined by
        the data in the GRDFILE. Bi-linear interpolation is used.
    
    
      o GRDFILE C*56 [ null ] 
    
        When FUNCTION='GRIDATA', this must contain the irregular  x  and
        y-axis grid nodes of the input data. The NEW.GRID parameter must
        contain the desired regularly spaced target  grid.  The  GRDFILE
        must  have nx x-axis grid node values followed by ny y-axis grid
        values. Each value must be separated by a white space character;
        blank,comma,tab or newline.
    
        In this case, nx  is  the  number  of  elements  read  from  the
        database  for  the  x-axis,  and  ny the y-axis. This of course,
        depends on  IFILE,  PLANE,  WINDOW  and  WRAP.  Here,  the  grid
        definition  read  from  the  information  file is simply a dummy
        description,  for  example,  FIRST=4*0,  DELTA=4*1.   After  the
        function  is  complete,  the  grid  description will be equal to
        NEW.GRID.
    
        The display data base does not  in  general  handle  irregularly
        spaced   grids.  However,  the  NEW.GRID,  GRDFILE  and  GRIDATA
        function can be used to contour/fill irregular data.
    
    
      o MDAEP REAL 5 [ 1,1,0,1,0 ] 
    
        Constants which multiply (M), divide (D), add to  (A),  exponent
        (E)  and  power (P) the data. MDAEP(1) is the multiply constant,
        (2) the divide, (3) the add, (4) the exponent and (5) the power.
        Eg.   anew=MDAEP(1)/MDAEP(2)*  (aold+MDAEP(3)).  MDAEP(4) is the
        exponent as in anew=aold**MDAEP(4). MDAEP(5) is the power as  in
        anew=MDAEP(5)**aold.   MDAEP(5)  is used only if it is not equal
        to zero. The default of MDAEP=1,1,0,1,0 has  no  effect  on  the
        data.   The  order  of  operations  is  anew=M/D*(aold+A),  then
        anew=anew**E, then anew=P**anew. Eg. to convert from  deg  F  to
        deg C set MDAEP=5,9,-32,1,0
    
    
      o MASK REAL 4 [ 0,0,0,0 ] 
    
        Two ranges of data values to mask out, ie. set to the  bad  data
        value  such  that  those values are not included in the stats or
        any plotting.  Data  values  between  MASK(1)  and  MASK(2)  and
        between  MASK(3)  and  MASK(4) are masked out. If the two values
        defining the mask range are equal no masking is done.
    
    
      o STAT.TYPE C*8 1 [ REGULAR ] 
    
        This parameter controls the way statistics are computed.  If  it
        is  equal  to  REGULAR,  then  the mean, minimum and maximum are
        computed in the usual way.  If it is equal to  GLOBE,  then  the
        data  is  assumed to be on a x=longitude and y=latitude surface,
        and a global mean, northern and southern hemisphere  means,  and
        minimum and maximum are computed.
    
        The statistics are reported  to  the  interactive  user  at  the
        terminal.  The statistics may be placed on the plot by using the
        AVG.L,MIN.L,MAX.L,NHAVG.L and SHAVG.L parameters in section III.
    
    
      o FUNCTION C*8 1 [ null ] 
    
        Defines a function to peform. To use the functions of two fields
        a  data  set  must  have  been  previously  saved  by  using the
        SAVE.DATA='YES' option.  Some functions trigger certain graphics
        options.   Functions  use  the  next data as set A and the saved
        data as set B, to create a new data set D.
    
        function  operation   notes
        ++++++++  +++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++
        null      D=A         no action (the default)
        ADD       D=A+B       add arrays
        MULTIPLY  D=A*B       multiply arrays
        DIVIDE    D=A/B       divide arrays
        POWER     D=A**B      raise an array to the other power
        LOGE      D=LOG(A)    natural logarithm
        LOG10     D=LOG10(A)  common logarithm
    
        9PTFILT   D=filt(A)   a nine point filter
        9PTSMOO   D=smooth(A) a nine point smoother
        25PTFILT  D=filt(A)   a 25 point filter
        25PTSMOO  D=smooth(A) a 25 point smoother
        LEISEFnn  D=filt(A)   Leise filter. NOAA T.M. ERL WPL-82.
                  nn=steps for dimensions 1 and 2. All data must be valid.
        LEISEEXT  D=f(A)      Leise extension. NOAA T.M. ERL WPL-82.
                  Replaces missing data with 'good' data.
        EKGFnnmm  D=f(A)      Esbensen/Kushnir gaussian filter. nn and mm
                  are the 1/2 power wavelengths for dimensions 1 and 2 in
                  in multiples of the grid intervals, dx and dy.
    
        NORMALIZ  D=A/MAX(ABS(A)) Normalize array. Maximum range is -1 to +1
    
        NEWGRID   D=T(A)      performs a grid transformation from one regular
                  grid to another regular grid. The new grid description is
                  defined by the NEW.GRID parameter.
    
        GRIDATA   D=T(A)      interpolates irregularly spaced grid data to a
                  regular grid. The new regular grid description is defined by
                  the NEW.GRID parameter. The GRDFILE data must contain the
                  irregular grid nodes for the x-axis and y-axis.
    
        AVGn      D=favg(A)   favg averages the data for dim number n. The
                  result is a 1-dimensional vector in the other dimension.
    
        3DAVGn    D=f3(A) f3 averages a 2-D field over a 3rd dimension,n.
                  WINDOW defines the range of the 3rd dimension. Eg.,PLANE=1,2
                  CORD=,,0 WINDOW=6*0,0,5,1 FUNCTION='3DAVG3' would create a
                  2-d field averaged over nodes 0,1,2,..5 in the 3rd dimension.
                  This could also be done using MDAEP and the ADD function.
    
        HARM_?nn  D=h(A) does a harmonic analysis for wave number nn. The ? is
                  either A for amplitude, P for phase or W for a reconstruction.
                  Options A (or P) return 1-dimensional fields of the amp (phase)
                  as a function of the 2nd dimension. Option W returns the
                  decompostiion of field a for wave number nn.
    
        TAnMONmm  D=monthly_mean(A) computes monthly means from daily means.
                  n is the dimension number and mm is the 1st month number (00-12)
        TAnANNmm  D=annual_mean(A) computes annual means from monthly means.
                  n is the dimension number and mm is the 1st month number (00-12)
        TAnRANmm  D=running 12-month mean(A) computes running 12 month means
                  from monthly means. n and mm same as TAnANNmm
    
        DERIVnm   D=dA/dn computes the first derivative of A. n is the dimension
                  number for the derivatives and m sets the differencing method.
                  m can be either F for forward differences or C for centered.
    
        VECTOR    D=mag(A,B)  trigger a vector plot: B=horiz component, A=vert
        STREAM    D=mag(A,B)  trigger a streamline plot: B=horiz component, A=vert
        SURFACE   D=A         trigger a surface perspective plot
        SCATTER   D=A         trigger a scatter plot: B=horiz axis, A=vert axis
    
        BOXTRIFL  D=A         fill areas enclosed by BOX and TRIANGLE
        3DBOXFL   D=A         fill areas enclosed by BOX and make boxes 3-D
    
        DGRIDXY   D=A         trigger drawing the grid lines as an overlay.
                  Options are DGRIDX, DGRIDY or DGRIDXY for both.
                  The line attributes are set with FRAME.DESC
    
        MGRID     D=A         trigger drawing markers at all grid nodes.
                  The marker attributes are set with SMARKS.DESC
    
        PRTVALn   D=A         trigger a print value type plot. if n is not blank it
                  defines the number of digits of precision. if blank, use FORMAT.
    
        SAVEMAP   D=A         save data as a map  (see MAP='BMAP)
    
    
      o READ.DATA C*4 1 [ YES ] 
    
        A switch to either read new data or not. If Y or  YES,  then  an
        attempt  is  made to read new data unless IFILE is null. If this
        switch is turned off, then the new data is  defined  to  be  the
        previous data.
    
    
      o PROC.DATA C*4 1 [ YES ] 
    
        A switch to turn on or off the processing of the data. If  Y  or
        YES  then the data is put through the processing unless IFILE is
        null (the  nodata  case).  The  processing  is  defined  as  the
        MASKing,  the  MDAEPing and the FUNCTIONing.  With READ.DATA and
        PROC.DATA turned off, the  exact  same  data  will  be  repeated
        regardless of other parameter settings.
    
    
      o SAVE.DATA C*4 1 [ N ] 
    
        A switch with options to either save the  current  data  or  not
        save  it.  If  SAVE.DATA  is  equal to YES, the data is saved in
        memory. Data that is saved in memory can be later combined  with
        another  data set to compute new data that is a function of both
        data sets (see FUNCTION).
    
        New data can be computed with FUNCTION and  saved  at  the  same
        time, such that functions of a number of fields can be done in a
        stepwise manner.  Data that is saved in memory is lost when  the
        program terminates or when new data is saved.
    
        If SAVE.DATA='DISK', the current data array is permanently saved
        to  the  display data base.  In this case, section IB is invoked
        after section I. Here you may specify the  name  of  the  output
        information  file  IFILE  and  the text descriptors defining the
        data; ID,NAME,UNITS,TEXT1 and TEXT2.
    
    
        If SAVE.DATA='RIMG', the current data array is permanently saved
        in RIMG, or raw image, format. An RIMG file is a stream of 8-bit
        bytes that can range from 0  to  255  that  are  often  used  as
        indices  into  a  256  color table.  In this case, section IB is
        invoked after section I. Here you may specify the base  name  of
        the  output  RIMG  file  and image scaling parameters.  The base
        name  you  supply  via  the  IFILE  parameter  is  automatically
        appended  with  the  string  '.wwwxhhh',  where www is the image
        width and hhh the height.  The output RIMG base name  should  be
        changed for every image created.  The other section IB parameter
        is IMGPAR, which has the image scaling options.
    
        The elements of  IMGPAR(3)  are  1)  minimum  data  value  which
        defines an image value of 1, 2) maximum data value which defines
        an image value of 255, and 3) the image magnification  or  zoom.
        If  (1)  and  (2)  are  not  defined, then every image is scaled
        according to  the  actual  data  minimum  and  maximum,  and  if
        multiple  images  are  done, each may be scaled differently. For
        example, if imaging a time series of a field, and  the  min  and
        max  over  the  entire time series is say zero to ten, you could
        set IMGAR=0,10 when the first image is done, and  then  for  all
        images,  the  image  values  will  be representative of the same
        actual data values for all the images. IMGPAR only needs  to  be
        set once.  An output image value of zero is reserved for missing
        data.
    
        IMGPAR(3), the zoom parameter, controls how big the output image
        is.  If  the zoom is 1, the output image is the same size as the
        data array. If its 2, the output image  it  twice  as  large  in
        width  and height, and so on.  The sign of the zoom controls the
        method used to zoom the image. If the sign  is  positive,  pixel
        sampling  is used, and if the sign is negative, interpolation is
        used. Pixel sampling duplicates pixels and interpolation creates
        new  pixel values using bilinear interpolation. Sampling gives a
        checkerboard looking image, and interpolation,  while  it  takes
        longer,  gives  a  very  smooth image. The default for IMGPAR is
        0,0,0.
    
    
      o MASK.BOX REAL 16 [ 16*0 ] 
    
        By setting the elements of MASK.BOX, data in regions of  the  XY
        domain  may  be masked out. The elements are defined as: (1) and
        (2) are the X,Y pair of the lower left corner  of  the  box  and
        (3),(4) are the X,Y upper right corner. Elements (5) through (8)
        define the second region, etc., for a total of 4 boxes. All data
        at  grid  nodes  inside  each  box  is  masked out. If the two X
        coordinates defining  a  box  are  equal,  then  no  masking  is
        attempted for that box.
    
    
      o MASK.CRC REAL 12 [ 12*0 ] 
    
        This parameter  is  similiar  to  MASK.BOX,  except  it  defines
        circular  regions  for  masking. Elements (1),(2) and (3) define
        the X center, Y center, and the radius,  respectively.  Elements
        (4)  through (6) define the second region,etc., for a total of 4
        circles. All data at grid nodes inside  each  circle  is  masked
        out.  If  the  radius  is zero, then no masking is attempted for
        that circle.
    
    
      o TOPO.INCLUDE INT 3 [0,0,0] 
    
        Longitude, latitude data arrays may be masked according  to  the
        elevation  of  the grid point. The Scripps 1x1 degree resolution
        topography data for Earth is used to map to the user  grid.  The
        Scripps  data  is interpolated to the users grid with a Gaussian
        weighting function using the distances (km) from the grid to the
        point.  There are two ways of using TOPO.INCLUDE.
    
        The first way is to specify the minimum  and  maximum  elevation
        (in  meters)  of  grid points to keep, ie. to not mask out.  Eg.
        TOPO.INCLUDE=500,99999,0 would mask out all grid points with  an
        elevation  below  500 meters. For this method, make sure the 3rd
        element of TOPO.INCLUDE is zero.
    
        The second way is to select a special case. For this method, set
        the  first  two  elements to zero, and the third element to 1 to
        mask out land points, or 2 to mask out ocean points.
    
    
      o SFILE C*56 1 [ null ] 
    
        Specifies the station file name.  A station data  type  plot  is
        triggered  when SFILE is not a null string.  If entrys are given
        for both SFILE and IFILE, the station data is used and the IFILE
        is  ignored.   The  READ.DATA  parameter  may  also be used with
        station files to replot the data without rereading it.
    
        Beware, that most of the pltgks features for data  analysis  and
        plotting   are   NOT  implemented  for  station  data.  See  the
        discussion of the STA.PLOT parameter for what  capabilities  are
        available.
    
    
      o STA.NAMES C*8 6 [ all null ] 
    
        Specifies the search names for the station data fields  to  read
        and  plot.  The names given are searched for in the station data
        file headers. If a requested field is not  found,  an  error  is
        reported.
    
    
      o STA.PLOT C*24 1 [ null ] 
    
        This is the station plot command. It  determines  what  type  of
        plot is requested and how to interprete each field.
    
        Fields are referenced by their relative number as  specified  by
        STA.NAMES, ie. 1,2,...6.
    
        For TRUE  STATION  plots  the  form  of  the  plot  command  is:
        'n1,n2,...  VS  nx,ny'.  Nx  is  the  field number to define the
        horizontal plot axis, and ny defines the vertical.   n1  is  the
        field  number  of the first displayed field, n2 the second, etc.
        For  example,  if   STA.NAMES='LONG','LAT','TEMP','PRESS',   and
        STA.PLOT='3,4   VS   1,2',   then   the   plot   axes   will  be
        longitude,latitude, and the displayed fields will  be  temp  and
        press.  Relative field number one is displayed above the station
        location, field number two below, three to the left and four  to
        the  right.  The 'display' consists of printing the value of the
        field.
    
        An XY TYPE plot is assumed when the number  of  fields  is  two.
        That  is  no  fields  preceding  the  'VS'  in  the station plot
        command.  The plot command should look  like:  'VS  nx,ny'.   In
        this case there are no fields to be displayed, only fields which
        define the horizontal and vertical locations. The resulting line
        that  will  be  drawn  connecting  the  XY  pairs  will  use the
        XYLINE.DESC line descriptors for line color, width and type.
    
        For BAR PLOTS the form is  'BARPLT  nx,ny,ndy'.   In  this  case
        nx,ny,ndy  must  point to the (x,y,dy) triplet to define the bar
        plot.   For   example;   if   STA.NAMES='SZA','RFL','DRFL'   and
        STA.PLOT='BARPLT  1,2,3', then a bar plot will be done where the
        x locations are given by SZA, the y midpoint locations  by  RFL,
        and  the  y  range by DRFL. The vertical line segments and lines
        connecting the  mid  points  are  drawn  using  the  XYLINE.DESC
        descriptors, except that the vertical bar is always drawn with a
        solid line type.  The vertical segments are drawn from  (x,y-dy)
        to  (x,y+dy).   If  XYMARKS.DESC defines a valid marker, markers
        are done at the (x,y) pairs.
    
        For HISTOGRAMS the form is 'HISTO nx,ny'.  In  this  case  nx,ny
        must point to the (x,y) coordinates to define the histogram. For
        example; if STA.NAMES='RAD','PROBDEN' and STA.PLOT='HISTO  1,2',
        then a histogram will be done where the x locations are given by
        RAD and the y  by  PROBDEN.   All  lines  are  drawn  using  the
        XYLINE.DESC descriptors.
    
        The required form of the  station  data  for  histograms  is  as
        follows:  x1,y1 is the bottom left edge of the 1st box, x2,y2 is
        the x-mid point and y value for the 1st box, etc... to xn,yn  is
        the  bottom  right  edge of the last box.  Thus, if the bins are
        evenly spaced, x(2)-x(1) will equal x(n)-x(n-1) and both will be
        one-half all the x(i)-x(i-1), for i=3,n-1.
    
        For VECTOR plots  the  form  is  'VECTOR  upt,vpt,nx,ny'.   Here
        upt,vtp point to the u and v wind components, and nx,ny point to
        the x,y coordinates of the vector.
    
    
      o PRE.SEGMENT C*32 1 [ null ] 
    
        This command defines the segment action  request(s)  before  the
        next  graphics  cycle  is started. Any number of requests may be
        given, each seperated by a blank space. Possible actions are:
    
        String      Description
        ---------   -------------------------------------------------------
        CREA.n      create segment number n (seg n should not exist).
                    you may only have one segment open at a time
        CLOS.n      close segment number n  (seg n should be created).
                    the segment is retained for later use
        DELE.n      delete segment number n (seg n should be closed).
                    the segment is lost
        COPY.n.m    copy segment number n to workstation number m.
                    (seg n should be closed, wrks m should be open/active)
                    before the copy, the segment transformation in the
                    SEGTRANS parameter is applied, the segment must be in
                    WISS for the copy segment action.
        TRNS.n      transform segment number n with the SEGTRANS parameters.
                    the segment need not be WISS for CREA,CLOS,DELE and TRNS.
    
    
      o POST.SEGMENT C*32 1 [ null ] 
    
        This command defines the segment  action  request(s)  after  the
        next  graphics  is completed. The possible actions are identical
        to the PRE.SEGMENT request. For example:
    
              PRE.SEGMENT='CREA.1 TRNS.1'
              POST.SEGMENT='CLOS.1 DELE.1'
    
              This case creates segment number 1, applies the segment
              transformation, completes the next graphics activity,
              closes segment 1 and deletes segment 1. This example
              would be suitable for using the segment transformation
              to translate/rotate/scale all graphics.
    
    
      o SEGTRANS REAL 8 [ 5*0,3*1 ] 
    
        These are the segment transformation  parameters.  They  may  be
        used to translate, rotate and scale segments. The eight elements
        are the arguments of  the  GKS  GEVTM  (EValuate  Transformation
        Matrix)  routine,  with  the  exception  that the rotation angle
        should be in degrees not radians.
    
            (1) =  X-coordinate of a fixed pivot point
            (2) =  Y-coordinate of a fixed pivot point
            (3) =  Shift vector for translation, X-coordinate
            (4) =  Shift vector for translation, Y-coordinate
            (5) =  Rotation angle in degrees (mathematical angle)
            (6) =  X-coordinate scale factor
            (7) =  Y-coordinate scale factor
            (8) =  Indicates coordinate system: 0=World, 1=Normalized
        Device
    
                   The default does no transformation to the segment.
    
    
      o GRAPHICS.FILE C*56 1 [ null ] 
    
        Device dependent graphics instructions for WRKS(1) may be  saved
        to  a  file  by  specifying the disk file with this entry. These
        instructions, which are stored in a binary  file,  may  then  be
        played  back  on  the  same  device using the CPLOT utility. The
        saving of  graphics  may  be  stopped,  before  terminating  the
        program,  by setting the GRAPHICS.FILE to OFF, or a null string.
        You may specify a new file at any time,  so  that  one  graphics
        session  can  create  multiple files.  The graphics sent to WRKS
        number one only, are saved to the file.
    
        This parameter is not supported in all versions.
    
    

    SECTION IB PARAMETERS

    
    
      o IFILE C*56 1 [ last input information file ] 
    
        The name of the output information file. If  this  file  already
        exists,  it  will  be  appended with a new entry. If it does not
        exist it will be created.
    
    
      o ID C*8 1 [ last input id ] 
    
        The field id desired for the output data.
    
    
      o NAME C*8 1 [ last input name ] 
    
        The field name desired for the output data.
    
    
      o UNITS C*24 1 [ last input units ] 
    
        The field units desired for the output data.
    
    
      o TEXT1 C*48 1 [ last input text1 field ] 
    
        The desired text description, line one, for the output data.
    
    
      o TEXT2 C*48 1 [ last input text2 field ] 
    
        The desired text description, line two, for the output data.
    
    
      o DNAM C*24 4 [ current horizontal and vertical dimensions ] 
    
        The desired dimension names  for  the  output  data.  These  are
        derived  from  the  last data read and PLANE used. Usually these
        will not change.
    
    
      o DUNI C*24 4 [ current horizontal and vertical dimensions ] 
    
        The desired dimension units  for  the  output  data.  These  are
        derived  from  the  last data read and PLANE used. Usually these
        will not change.
    
    

    SECTION II PARAMETERS

    
    
    
      o PRANGE REAL 6 [ 0,0,0,0,0,0 ] 
    
        This may be used to control the frame of the plot.  The  plot  x
        and  y  axis may be extended (or shrunk) beyond the range of the
        current window by using PRANGE.
    
        PRANGE(1) refers to xmin, (2) is xmax, (3) to delta x, (4) ymin,
        (5)  ymax  and  (6)  delta  y.  If  element  (3) is zero, PRANGE
        elements (1),(2) and (3) are ignored and the data window for the
        x-axis  is  used to define the plot frame x-axis. Similiarly, if
        element (6) is zero elements (4),(5) and (6) are ignored and the
        the data window for the y-axis is used to define the plot.
    
        Eg. a grid window of 0 to 30 by 5 in x and 0 to 60 by  10  in  y
        may  be  plotted in a frame that extends from -10 to 40 in x and
        -10 to 70 in y by specify PRANGE=-10,40,5,-10,70,10. The delta x
        and  y  combined  with  LAB.FRQ  may be used to change the label
        intervals for the plot axes.
    
        If there is no data to define the limits for an axis, and PRANGE
        is zero for that axis, the default range is set to -1 to +1.
    
        For the case of no data GRID to define one of the axis, such  as
        SCATTER,  XY,  BARPLT  and  HISTOGRAM plots, and PRANGE for that
        axis is all zero, nice limits are computed AUTOMATICALLY and the
        frame is labelled accordingly.
    
    
      o CON REAL 30 [ 30*0 ] 
    
        The contour levels to draw. Contour  levels  may  be  explicitly
        specified  or  they  may  be  generated using a constant contour
        interval.
    
        If the first 2 elements, ie. CON(1) and  CON(2),  are  equal  to
        zero, then no contouring is attempted.
    
        If CON(3) and CON(4) are both zero, it is assumed that  contours
        will  be  generated  using  a  constant  interval, otherwise the
        values are taken explicitly as the levels to draw.
    
        When generating contours there are two possiblitlies:  1) CON(2)
        is greater than zero  or  2) CON(2) is less than zero.
    
        For case 1), CON(1) is taken as the  1st  level  and  subsequent
        levels  are  computed  as  level=level+CON(2).  For case 2), the
        absolute value of CON(2) is taken as the interval  and  the  1st
        level  is computed by decrementing CON(1) down to the minimum of
        the data. Subsequent levels are level=level+abs(CON(2)).
    
        In both cases of generating contours, CON(1)  must  lie  in  the
        range  of  the  data,  and  the  absolute value of CON(2) is the
        constant interval.
    
        Eg. CON=100,-5,28*0 with a data range of 87 to  109  would  draw
        contour  levels  of 90,95,100 and 105. CON=100,5,28*0 would draw
        levels at 100 and 105 only.
    
        When explicitly  specifying  the  levels  the  contours  may  be
        'turned  off' in either of two ways. If two succesive levels are
        equal or if the zero level is encounterd  a  second  time,  then
        contouring  ends. Eg.  CON=-5,-2,-1,0,1,2,5,23*0 and CON=-5,-2,-
        1,0,1,2,5,5 both will attempt levels  of  -5,-2,-1,0,1,2  and  5
        only.
    
        Nice valued, equally spaced contour levels may be  AUTOMATICALLY
        generated  by  setting  the first element of CON to 123456. This
        triggers the option.  The  second  element  is  the  approximate
        number of levels to draw.
    
        For example, if CON=123456,5 and  the  data  range  is  .023  to
        56.79, contours would be drawn at levels of 10,20,30,40 and 50.
    
    
      o CON.COLOR INT 30 [ 30*1 ] 
    
        This controls the color of each drawn contour line. The  default
        is black.
    
        Element (1) refers to the first level specified in CON,  (2)  to
        the   second,   etc.   If  contours  are  being  generated,  the
        correspondence between the descriptors,  color,  line-width  and
        line-type,  and  the levels will in general be unknown. Thus, if
        you want a specific contour level to  have  unique  descriptors,
        specify the levels explicilty in CON.
    
    
      o CON.LWIDTH INT 30 [ 30*15 ] 
    
        This controls the line width of each  drawn  contour  line.  The
        value  is  the relative line width times ten. The default is 1.5
        times the nominal width.
    
    
      o CON.LTYPE INT 30 [ 30*1 ] 
    
        This controls the line type of each  drawn  contour  level.  The
        default is a solid line.
    
    
      o CONLAB.TXT INT 3 [ 1,10,1 ] 
    
        The description of the contour labels. The  three  elements  are
        the  color, the relative size times ten (see REF.CHAR.SIZES) and
        the font index.
    
    
      o CON.FORLAB C*4 1 [ NO ] 
    
        This may be used to FORce LABelling of more  contour  lines.  If
        this  is  set  to  YES, then more lines will be labeled but some
        contour labels may overwrite each other.
    
    
      o FILL REAL 32 [ 32*0 ] 
    
        The 32 elements of FILL can be used to specify 16 distinct  fill
        (color)  areas.   Each  area  to  fill  requires  2  elements to
        specify; FILL(1),(2), define the first area, (3),(4) the second,
        etc.  The  pair  of  numbers  define the limits of the region to
        fill.  Eg. FILL=-1E32,0,10,1E32 would fill all areas of the plot
        which  have data values between and including -1E32 and zero and
        all values between 10 and  1E32.   A  continuous  or  cell  fill
        method may be specified with FILL.METHOD.
    
        Nice valued, equally spaced fill regions  may  be  AUTOMATICALLY
        generated  by  setting  the first element of FILL to 123456. The
        second element is the approximate number of levels to generate.
    
        When continuious fill is desired, ie. no data gaps, there is  an
        easier  way to specify the fill regions. If the first element of
        FILL is -123456, then it is assumed that the remaining  elements
        define  the  break  points  for  the  fill regions. For example,
        FILL=-123456,0,1,2,3,4 is equivalent to FILL=0,1,1,2,2,3,3,4.
    
    
      o FILL.COLOR INT 16 [ 7,6,4,13*1 ] 
    
        The color to fill the regions specified  by  FILL.  Element  one
        corresponds  to  the  region  defined  by  FILL(1)  and FILL(2),
        element two to the region defined by FILL(3) and (4),  etc.  The
        default  gives  yellow, magenta and blue, or in black and white,
        light, medium and dark.
    
    
      o FILL.INTSTYLE INT 16 [16*1 ] 
    
        The interior style for the 16 possible fill regions. The default
        is solid.
    
    
      o FILL.STYLEIND INT 16 [ 16*1 ] 
    
        The fill area style index  for  the  16  fill  regions.  If  the
        interior  style  is equal to 2 (pattern) or 3 (hatch), then this
        parameter selects the pattern or hatch style to use.  The  style
        index is a number from 1 to 16.
    
    
      o FILL.METHOD C*4 1 [ CONT ] 
    
        The current  fill  methods  are  CONT,  for  continuous  contour
        following  fill,  and  CELL, for cell fill. If this parameter is
        CONT, the fill is done by drawing the contour  lines  separating
        the  regions  and  then  filling  between the lines, which gives
        smooth, interpolated transitions.
    
        If it is CELL, then the box  surrounding  each  individual  grid
        point  is  filled  based on the value at that box, including the
        background color for all boxs outside the fill range.  The  CELL
        method  uses  the  gks  cell array primitive, and thus wipes out
        everything previously plotted.
    
    
      o FILL.BAR INT 8 [ 0,0,0,1,10,1,8,2 ] 
    
        This parameter controls if, where and how a fill bar  is  placed
        on  the plot. A fill bar, or color bar, shows an example of each
        fill pattern along with the limits of data represented  by  that
        fill.  The first 6 elements have the same meaning as the section
        III <->.L parameters.  They are the  text  descriptors  for  the
        labelling  along  the  fill bar. Element three is the switch for
        turning on/off the bar.  Element 7 is the length, in units of  a
        reference  character size, of each section of the bar. Element 8
        is the height of the bar in the  same  units.  A  continuous  or
        broken fill bar is done according to the elements of FILL.
    
    
      o FILL.BAD.DATA INT 2 [ 0,0 ] 
    
        This option is used to fill all grid boxes whose data  value  is
        equal  to  the  BAD.DATA  value  read  with  the  data  from the
        information file. The first element is a switch which  turns  on
        the  option.  If  it is zero, the fill is not done, otherwise it
        is. The second element sets the color for the  fill.  Note  that
        the  default  color  is  the background, so no fill will be done
        unless the color is changed.
    
        This option uses the gks cell array primitive,  and  thus  wipes
        out everything previously plotted.
    
    
      o VECPAR REAL 2 [ 1,0 ] 
    
        This controls the length of drawn vectors when  doing  a  vector
        plot.   VECPAR(1)  controls the maximum length of any arrow. The
        units are  the  minimum  grid  node  spacing  in  the  x  and  y
        directions.  Eg.  if  VECPAR(1)  is  equal  to  one, the longest
        possible arrow will be the minimum grid node spacing, if two  it
        will be twice the minimum spacing, etc.
    
        VECPAR(2) sets the speed in data units that will  correspond  to
        the  maximum arrow length. If VECPAR(2) is zero, then the actual
        maximum speed is used. This parameter is  useful  for  comparing
        multiple  vector  plots  to see the speed difference. If you use
        the default of zero, then the actual maximum speed will be  used
        for  every plot, so a 1 inch arrow will have a different meaning
        depending on the maximum speed.  If you  set  VECPAR(2)=20,  for
        example,  then  for  all  plots  an arrow of a given length will
        represent the same speed.
    
        When doing vector plots  you  may  also  draw  contours  and  do
        filling  (see  CON and FILL). The field that is contoured/filled
        is the vector magnitude or speed.
    
    
      o VEC.LEGEND INT 7 [ 0,0,0,1,10,1,0 ] 
    
        This parameter controls the vector legend for vector type plots.
        The  legend  consists  of  a  single  vector  with the magnitude
        labelled. The first six elements have the same  meaning  as  the
        <->.L  parameters.  They  are  positioning and text descriptors.
        Element seven is the magnitude of the vector for the legend.  If
        element  seven is zero, VECPAR(2) is used. If VECPAR(2) is zero,
        than the maximum vector magnitude is used. The  vector  will  be
        drawn with the VEC.DESC line descriptors.
    
    
      o VEC.DESC INT 3 [ 1,15,1 ] 
    
        These are the line descriptors  for  drawn  vectors.  The  three
        elements refer to the 1) color, 2)linewidth and 3)linetype.
    
    
      o VEC.UVLEG REAL 8 [ 0,0,0,1,10,1,0,0,0,0 ] 
    
        These control another form of vector legend. In this legend both
        u-component  (v=0) and v-component (u=0) vectors are drawn.  The
        first  six  elements  have  the  same  meaning  as   the   <->.L
        parameters. They are positioning and text descriptors.
    
        Element 7 is the desired u-component and 8 the  v-component.  If
        (7)  is  zero,  then  the maximum u value in the current data is
        used. The same holds for v.  Element 9 is  a  scale  factor  for
        encoding the label for the u vector.  If (9) is non-zero and the
        label (see VEC.UVLEGT) is blank, then  the  actual  u  value  is
        scaled  with  this value and the resulting number is encoded for
        the label. The scale factor is only used for the label, not  for
        drawing  the  vector.   The  FORMAT  parameter  is  used for the
        encoding unless it is blank, in which case a format is  selected
        for you. If the label (VEC.UVLEGT) is not blank, then that label
        is used and element nine is not used. Element 10 is the same  as
        nine, except for the v-component.
    
    
      o VEC.UVLEGT C*8 2 [ null,null ] 
    
        These are text labels for the VEC.UVLEG vector plot  legend.  If
        blank then the actual u and v components are encoded to form the
        label. If not blank, these labels are used. Element one is for u
        and two is for v.
    
    
      o STRPAR REAL 4 [ 0,0,0,0.025 ] 
    
        This parameter controls some aspects of drawn streamlines.   The
        first  element  is the displacement distance in grid units. This
        distance  is  how  far  a  streamline  moves  before  the  (u,v)
        components  are  updated.  If equal to zero, it is calculated as
        0.1 x (abs(dx)+abs(dy)). Making this smaller increases  the  CPU
        time  required.  The  second  element is the cutoff distance for
        terminating lines. If lines get closer than this distance  at  a
        grid  box  crossing point they are stopped. If equal to zero, it
        is calculated as 0.25 x the  displacement  distance.  Decreasing
        this  may  increase  the  CPU  time.   The  third element is the
        stagnation count limit. If a line remains in a single  grid  box
        for  this  many steps, it is terminated. If equal to zero, it is
        calculated as 3 x sqrt(dx**2+dy**2) / the displacement distance.
        Making this larger may increase the CPU time.
    
        The  fourth  element  is  really  two  parameters:  a  key  that
        determines how many grid boxes are initially disabled from being
        streamline start locations, and the size of the vector heads  in
        object  space.  The  fourth  element  is  the  sum  of these two
        parameters. The key definition is: key=0 (default)  the  program
        calculates  the  key  as max(nx,ny)/25+1; key=1 turn off 4 of 9;
        key=2 turn off 8 of 9; key=3 turn off 24 of 25; key=4  turn  off
        48  of  49;  key=5  turn off 80 of 81; and key=6 turn off 120 of
        121. It is necessary to 'turn  off'  some  of  the  grid  boxes,
        otherwise  the  display  will have too many streamlines. Turning
        off a box  does  not  discard  the  data  there  or  restrict  a
        streamline  originating  somewhere else from passing through it.
        The default works quite well, however, for some flow fields  you
        may want more (or less) streamlines than the default gives.
    
    
      o STR.DESC INT 3 [ 1,15,1 ] 
    
        The line descriptors for streamlines. The three  elements  refer
        to the 1) color, 2)linewidth, and 3)linetype.
    
    
      o SRFPAR REAL 2 [ 45,60 ] 
    
        This parameter controls the  eye  viewing  postion  for  surface
        perspective plots.  The first element is the angle in degrees in
        the XY plane to the line of sight counter-clock  wise  from  the
        plus X axis. The second element is the angle in degrees from the
        XY plane to the line of sight, with positive  angles  above  the
        middle Z.
    
    
      o SRF.DESC INT 3 [ 1,15,1 ] 
    
        The line descriptors for surface perspective  plots.  The  three
        elements refer to the 1) color, 2)linewidth, and 3)linetype.
    
    
      o MAP C*4 1 [ null ] 
    
        If MAP is a null string no map is drawn.  One type of map  is  a
        boundary    map,   which   is   created   by   the   user   with
        FUNCTION='SAVEMAP' in section I. Drawing this map is enabled  by
        setting MAP equal to 'BMAP', for Boundary map.  Any user defined
        map may be drawn in this manner.
    
        In addition to the boundary map, there  are  special  predefined
        maps  that may be requested without any user preparation. Simply
        setting MAP equal to one of the options listed below  will  draw
        the corresponding map.
    
          1) OMAP   the current, actual, world continental outlines
          2) USMP   the US state political boundarys
          3) OSUO   the OSU, GCM 4 x 5 grid, continental outlines
          4) OREG   the state of Oregon actual political boundary
          5) USHR   a high resolution version of USMP
    
        The special maps  above  will  be  windowed  or  wrapped  around
        according  to  the  X,Y  (assumed  to longitude,latitudein degs)
        space defined by the current data, or the  PRANGE  parameter  if
        given.
    
        When the map projection is set to anything other  than  RECTANG,
        the list of predefined maps changes to the following:
    
          1) CO     the current, actual, world continental outlines
          2) US     the US state political boundarys
          3) PS     CO plus US plus international outlines
          4) PO     CO plus international outlines
    
    
      o MAP.DESC INT 3 [ 1,15,1 ] 
    
        These are the line  descriptors  for  map  drawing.   The  three
        elements refer to the 1) color, 2)linewidth and 3)linetype.
    
    
      o MAP.PROJECT C*48 1 [ RECTANG ] 
    
        This parameter selects the map projection.
    
        The  current  options  are  Lambert   conformal,   Sterographic,
        Orthographic,    Lambert   equal   area,   Gnomonic,   Azimuthal
        equidistant, Satellite view, Cylindrical  equidistant,  Mercator
        and Mollweide.
    
        See section XIII for a complete description.  Projections  other
        than  RECTANG  use significantly more cpu time, and usually more
        io.
    
    
      o BOX REAL 32 [ 32*0 ] 
    
        Enables the drawing of  rectangles  at  specified  locations  in
        subject  space.  The  32 elements are logically broken down into
        groups of four elements. (1),(2) are the lower left  corner  x,y
        coordinates,   and  (3),(4)  are  the  upper  right  corner  x,y
        coordinates.  The  locaton  of  the  second  box  is  given   by
        BOX(5),(6),(7)  and  (8),  etc. If any of the 4 elements for the
        possible 8 (32/4) boxes is not zero, then  that  box  is  drawn.
        More  than  eight boxes may be done by overlaying multiple plots
        in the same frame.
    
        By using FUNCTION='BOXTRIFL', the boxes may be filled  according
        to   the  FILL.COLOR,  etc.   parameters.  The  first  box  uses
        FILL.COLOR(1), the second FILL.COLOR(2), etc.
    
        With FUNCTION='3DBOXFL', the boxes are drawn and filled in  3-D.
        This option will do a three dimensional bar (or histogram) plot.
        The FILL parameters control how each box is filled.
    
    
      o TRIANGLE REAL 48 [ 48*0 ] 
    
        This enables the drawing of triangles at specified locations  in
        subject  space.  The  48 elements are logically broken down into
        groups of six elements. (1),(2) are the x,y pair for one corner,
        (3),(4)  another corner, and (5),(6) the third corner. If any of
        the 6 elements for the possible 8 (48/6) triangles is not  zero,
        then that triangle is drawn.
    
        By  using  FUNCTION='BOXTRIFL',  the  triangles  may  be  filled
        according   to  the  FILL.COLOR,  etc.   parameters.  The  first
        triangle uses FILL.COLOR(1), the second FILL.COLOR(2), etc.
    
    
      o LINES REAL 48 [ 48*0 ] 
    
        This enables the drawing of  lines  at  specified  locations  in
        subject  space.  The  48 elements are logically broken down into
        groups  of  four  elements.  (1),(2)  are  the  first  x,y  pair
        coordinates, and (3),(4) are the second x,y pair. The locaton of
        the second line is given by LINES(5),(6),(7) and  (8),  etc.  If
        any  of  the  4 elements for the possible 12 (48/4) lines is not
        zero, then that line is drawn.
    
    
      o ARCS REAL [ 30*0 ] 
    
        This parameter enables the drawing of arcs at specifed locations
        in subject space. The 30 elements are logically broken down into
        groups of five elements. (1) and (2) are the x,y coordinates  of
        the  center  of the arc (circle), (3) is the radius, and (4) and
        (5) are the start and end angles in degrees. The second  arc  is
        given  by elements (6) through 10, etc.., up to 6 arcs per time.
        If the radius is equal to zero the arc  is  not  attempted.  Eg.
        ARCS=2*0,25,0,360,2*0,50,0,360   will  draw  two  circles,  both
        centered at (0,0), the first with a radius of 25 and the  second
        with a radius of 50.
    
    
      o MARKS REAL 33 [ 33*0 ] 
    
        This enables the drawing of markers at specified locations.  The
        first  element  is  the  number  of  locations. Elements 2 and 3
        define the first location X and Y values, respectively. Elements
        4  and  5  define  the  second X,Y, etc., up to 32 locations per
        plot.
    
    
      o SLINES.DESC INT 3 [ 1,15,1 ] 
    
        The line descriptors for special lines. Special lines are  those
        defined  by  BOX,TRIANGLE,LINES  and  ARCS.   The three elements
        refer to the 1) color, 2)linewidth and 3)linetype.
    
    
      o SMARKS.DESC INT 3 [ 1,10,1 ] 
    
        The marker descriptors for  the  markers  in  MARKS.  The  three
        elements  refer  to the 1) color, 2) relative size and 3) marker
        type.  These also set the marker attributes for  the  grid  node
        marks when using FUNCTION='MGRID'.
    
    
      o PUTCHAR REAL 49 [ 49*0 ] 
    
        Enables the drawing of short character strings at up to 24 at  a
        time  specified locations in subject space. The last 48 elements
        are logically broken down into groups of two elements. 1,2 refer
        to  the first x,y pair, and 3,4 the second pair, etc.. The first
        element of PUTCHAR is the number of locations to do. Eg. to  put
        the  character string (see DEFCHAR) at 4 locations corresponding
        to        x1,y1,x2,y2,x3,y3        and         x4,y4         set
        PUTCHAR=4,x1,y1,x2,y2,x3,y3,x4,y4.
    
    
      o DEFCHAR C*4 24 [ null ] 
    
        These are the character strings put at  locations  specified  by
        PUTCHAR.  Element  one  corresponds to PUTCHAR elements 2 and 3,
        element two corresponds to PUTCHAR elements 4 and 5, etc.
    
    
      o DEFCHAR.TXT INT 3 [ 1,10,1 ] 
    
        The text descriptors for the DEFCHAR  characters.  The  elements
        refer to 1)color, 2)relative size and 3)font.
    
        These descriptors are also used  for  print  value  type  plots,
        invoked  with FUNCTION='PRTVAL'. In this case, they are the text
        descriptors for the displayed values.
    
    
      o SCAT.TXT INT 3 [ 1,10,1 ] 
    
        This parameter can have two meanings depending on  the  FUNCTION
        parameter.   If  FUNCTION  is  SCATTER and the 8th byte is not a
        blank, then these are the TEXT descriptors for the scatter  plot
        character  (the  8th  byte).   The  elements  refer  to 1)color,
        2)relative size and 3)font.
    
        If the 8th byte of FUNCTION is a blank then these are the MARKER
        descriptors.  In  this  case  the  elements  refer  to  1)color,
        2)relative size and 3)marker type.  See  the  attached  list  of
        marker types.
    
    
      o ALL.LABELS C*4 1 [ N ] 
    
        This parameter is either YES, NO or null. If YES, then  all  the
        <>.L  parameters  in  section  III, which determine where and if
        text labels appear on the plot, are set to  some  default  value
        (see  section  III  discussion).   Setting  ALL.LABELS to NO, is
        equivalent  to  setting  the  third  element  of  all  the  <>.L
        parameters  to  zero,  ie.  turnning  off  labelling.   If  this
        parameter is null, the <>.L parameters are unchanged from  their
        current setting.
    
        Note that as each plot in a series is passed  through,  all  the
        labelling  is turned off each time, if ALL.LABELS is 'NO', so if
        you want to label each  plot  with  just  TEXT  and  TEXT.L  for
        example,  then  TEXT.L must be set for each plot. Alternatively,
        you  may  just  set  the  <>.L  parameters  once  and  then  set
        ALL.LABELS  to  null, so succesive plots will have the same text
        labels.
    
    
      o XF.NODES REAL 13 [ 13*0 ] 
    
        Like  PRANGE,  this  parameter  may  be  used  to  control   the
        horizontal  axis plot frame.  XF.NODES overrides PRANGE, so that
        if both are  set,  XF.NODES  will  prevail.   It  enables  frame
        labelling  at  IRREGULARLY  spaced nodes. It does not define the
        data at irregular nodes, it only defines the  plot  frame  label
        locations, which may or may not be regularly spaced.
    
        The first element is the number  of  x-axis  nodes.  The  second
        element  is  the  first x-axis node, ie. the leftmost, the third
        element is the second node, and the nxn+1 element  is  the  last
        node, where nxn is the number of xnodes.
    
        For example,  XF.NODES=5,1,2,5,10,20  would  define  the  x-axis
        frame  to  be  from  1 to 20. Five frame labels would be done at
        1,2,5,10 and 20,  assuming  LAB.AXS  does  not  turn  off  frame
        labelling.  LAB.FRQ  does  not  apply when using XF.NODES. Every
        irregular node supplied will be labelled  on  the  frame.   HLAB
        still  applys,  so  that  for  the  example above, the labels at
        1,2,5,10 and 20 on the frame could be set  to  any  8-byte  text
        string.
    
    
      o YF.NODES REAL 13 [ 13*0 ] 
    
        Identical to XF.NODES except for the vertical axis plot frame.
    
    
      o XYLINE.DESC INT 3 [ 1,15,1 ] 
    
        These are the line descriptors for lines drawn in simple XY type
        plots.   A  XY  type  plot  is automatically assumed if nx or ny
        equal one and the FUNCTION parameter does not select a VECTOR or
        SCATTER  plot.   The  three  elements  refer  to  the  1) color,
        2)linewidth and 3)linetype. These descriptors are saved for each
        line  for  the  line  legend.  The  line segments connecting the
        points may be turned off by setting the line type to zero.
    
        When doing a station plot with two fields, the  line  connecting
        the  XY  pairs  will  also  use  this  parameter  for  the  line
        descriptors.
    
    
      o XYMARKS.DESC INT 3 [ 1,10,0 ] 
    
        These are the marker descriptors for marking the x,y pair points
        for  a  XY  type  plot. The three elements refer to 1) color, 2)
        relative size and 3) type. The default type of zero,  turns  off
        drawing the markers.
    
    
      o XYLINE.LAB C*8 2 [ ' ','AUTO' ] 
    
        This parameter controls the labelling of lines in XY type plots.
        A  label  consists  of  a short character string positioned just
        above and along a segment of the line.  The first element is the
        label,  if  equal  to  a null string no label is attempted.  The
        second element controls the location of the  label.  If  'AUTO',
        the  program selects a location for you. To specifically control
        the location of the label set the second element to the  desired
        grid  location.  For example, to label at the grid node -60, set
        the second element to '-60'.
    
    
      o XYLINE.TXT INT 3 [ 1,10,1 ] 
    
        The text descriptors for the XYLINE.LAB  label  characters.  The
        elements refer to 1)color, 2)relative size and 3)font.
    
    
      o XYLEGEND INT 8 [ 0,0,0,1,10,1,6,2 ] 
    
        This controls if, where and how a legend of the  XY  type  drawn
        lines  is  placed on the plot. A line legend consists of a short
        character string followed  by  an  example  line  segment.   The
        legend  is  drawn  when  the  last  line in the current frame is
        complete, and it will include all the lines.
    
        The first six elements  have  the  same  meaning  as  the  <->.L
        parameters.   They are positioning and text descriptors. Element
        seven is the length of the  lines  in  units  of  the  reference
        character  width.  Element eight is the vertical spacing between
        lines in units of the reference character height. The first line
        is  placed  at the top and the last at the bottom of the legend.
        The text associated with each line is supplied in XYLEG.LAB.
    
    
      o XYLEG.LAB C*4 8 [ all null ] 
    
        These are the text strings to be  placed  in  the  line  legend.
        Element  one  is  associated  with the first XY type line in the
        current frame. Element two with the second, and so on  up  to  a
        maximum  of  eight  lines per frame.  Each string will be placed
        adjacent to its corresponding line segment.
    
    
      o STA.FORMAT C*8 6 [ all null] 
    
        This parameter defines what aspects of a field are displayed  on
        a  station plot. The six elements correspond to the six elements
        of the STA.NAMES parameter. Options for this parameter are:
           Value        Meaning
          -----------------------------------------------------------
           null         does a character representation of the field
        value
                        (the program selects the 'best' format.
           a format     any valid Fortran format statement for real
        numbers
           SIGNOF       the sign of the field is displayed (+ or - or
        X),
                        where X is missing.
    
        For station type plots, the minimum, maximm and mean of the LAST
        displayed  field  may be shown on the plot with the MIN.L, MAX.L
        and AVG.L section III parameters. If the format for  this  field
        is  SIGNOF, then the MIN.L will contain the number of negatives,
        and the MAX.L will contain the number of positives.
    
    
      o STATION.TXT INT 12 [ 4 x (1,10,1) ] 
    
        The text descriptors for station plot field displays. The  first
        three  elements define the descriptors for relative field number
        1, the second three define relative field number two,  etc.  The
        descriptors are color, relative size and font.
    
    
      o SIGNOF.TXT INT 9 [ 2,3,4, 15,10,10, 1,1,1 ] 
    
        The text descriptors for station plot field displays when  using
        the  STA.FORMAT  equals  SIGNOF option. The first three elements
        define the colors for +,- and missing, respectively. The  second
        three  elements  define  the  relative  sizes and the last three
        define the fonts. The default makes the +'s red and  large,  the
        -'s  green  and  medium  size,  and the missings blue and medium
        size.
    
    

    SECTION III PARAMETERS

    
        Section III inputs may be supplied at the  terminal,  using  the
        command  file  (CFILE)  or  using  the  special section III only
        command file (LABFILE). Using the LABFILE option is  useful  for
        setting  up  the  plot once, and there after all plots will look
        the same.
    
    
      o GRAPH C*4 1 [ NO ] 
    
        See section I for a description  of  GRAPH.  This  parameter  is
        repeated  here  to  allow  a  last  minute  escape  of  graphics
        activity.
    
    
      o TIME_STAMP C*4 [ null ] 
    
        This controls if and where a time stamp is  done.  If  blank  or
        null, no time stamp is done. Valid values are 'LL','LR','UL' and
        'UR', for placing the stamp in  the  lower-left  corner,  lower-
        right,  upper-left  or upper-right.  A time stamp is the current
        time and date.
    
    
      o REF.CHAR.SIZES REAL 2 [ 1,1 ] 
    
        The reference size of characters.  Element  (1)  refers  to  the
        character  width and (2) to the height. The size of all text put
        on a plot may  be  individually  controlled  with  the  specific
        parameter  for  that  field.  For example FRAME.TXT controls the
        size of the frame axis labels and CONLAB.TXT controls  the  size
        of  contour labels. These descriptors control the relative size,
        where the reference size is controlled by REF.CHAR.SIZES.  Thus,
        changing  this  parameter  will change the size of all text. The
        default provides reasonably sized characters.
    
    
      o FRAME.DESC INT 3 [ 1,15,1 ] 
    
        The descriptors for the lines  which  comprise  the  frame.  The
        elements  refer  to 1)color, 2)linewidth, and 3)linetype.  These
        also set the line attributes  for  the  grid  lines  when  using
        FUNCTION='DGRIDxx'.
    
        They are also used for the grid overlay  and  surrounding  frame
        box  for  plots  where  a projection other than RECTANG is used.
        Setting the linewidth to zero will turn off the grid overlay.
    
    
      o FRAME.TXT INT 3 [ 1,10,1 ] 
    
        The text descriptors for the frame labels. The elements refer to
        1)color, 2)relative size and 3)font. The horizontal and vertical
        axes  of  the  frame  may  have  their  own  frame  label   text
        descriptors (see VFRAME.TXT).
    
        They also control the text on the grid overlay for plots where a
        projetion  other than RECTANG is used.  Setting the size to zero
        will turn off the text labels on the grid overlay.
    
    
      o VFRAME.TXT INT 3 [ 3*0 ] 
    
        Text descriptors for the frame labels. If all three elements are
        zero, this parameter is ignored and FRAME.TXT controls both axes
        of the frame text labels. If any element is not zero,  FRAME.TXT
        defines  the  text  descriptors  for  the  horizontal  axis  and
        VFRAME.TXT defines the descriptors for the vertical axis.
    
    
      o PLT.LOC REAL 4 [ .125,.125,.75,.7 ] 
    
        The location on the page for the next plot  frame  in  terms  of
        fractions  (zero  to  one) of the page in the x and y direction.
        PLT.LOC(1) refers to the x margin, (2) the y margin, (3)  the  x
        fraction  and  (4) the y fraction. Eg. PLT.LOC=.2,.1,.6,.5 would
        cause the next frame to be drawn with the lower left  corner  at
        x=0.2  of the total x range, y=0.1 of the total y range, and the
        length of the frame would be 0.6 of the total x range,  and  the
        height  0.5  of  the y range. The upper right corner would be at
        x,y= 0.8,0.6. The x range is zero at the left  and  one  at  the
        right, while y is zero at the bottom and one at the top.
    
        Beware that for most graphics devices the page length and height
        are  typically  not  the  same,  SO  GIVING  AN X FRACTION AND Y
        FRACTION WHICH ARE EQUAL WILL NOT RESULT IN A SQUARE  FRAME.  To
        get  a square frame, you need to include the aspect ratio of the
        device resolution.  See AFRAME below for automatic generation of
        frames, including square.
    
        Beware that if the plot location is changed  from  the  default,
        the  default  labelling  may  not all fit and some labels should
        probably be eliminated or moved.
    
    
      o AFRAME REAL 6 [ 0,.1,.1,.1,.1,1] 
    
        This option is useful  for  generating  pictures  with  multiple
        frames  and for making the plot axes lengths proportional to the
        dimension they represent. The elements of AFRAME refer to 1) the
        number  of frames per row, ie. across the page, 2) the left hand
        X-margin for the entire picture, 3) the  top  Y-margin  for  the
        entire  picture,  4)  the  X  spacing  between  frames, 5) the Y
        spacing between frames and 6) the relative X  to  Y  frame  size
        relative  to the actual grid size. This option is turned on when
        AFRAME(1) is not zero.  Eg.  if  NFRAMES=9  and  AFRAME=3,4*.1,1
        then  a  page  will consist of 9 frames, 3 per row, with margins
        and  spacing  and  with  the  plot  X-axis  and  Y-axis  lengths
        proportional  to  the grid. If AFRAME= 3,4*.1,2 then the plot X-
        axis will be twice the plot Y-axis in  length,  proportional  to
        the  grid.  If  the  X  and  Y data axis are both 100 units, and
        AFRAME(6)=1, the frame will be square, etc.
    
    
      o LAB.FRQ INT 2 [ 5,5 ] 
    
        The frequency to label the x and y grid nodes. A label  consists
        of  a  long tic mark and text describing the grid node. The text
        is a character representation of the value of the grid  at  that
        node using the minimum number of characters.
    
        LAB.FRQ(1) refers to the x axis, and (2) refers to the  y  axis.
        Eg. if LAB.FRQ=10,5 then the 1st x node is labelled, the 11th is
        labelled, and so on to the end, and the 1st y node is  labelled,
        the  6th y node, etc.. to the end. If the x grid interval is say
        5 km and  LAB.FRQ(1)=5,  then  labels  will  be  done  every  25
        kilometers.  Every  grid  node  is  marked with a short tic mark
        regardless of LAB.FRQ unless  LAB.AXS  (see  below)  turns  this
        function off.
    
        If XF.NODES and/or  YF.NODES  is  being  used,  ie.  irregularly
        spaced  frame  label locations, LAB.FRQ for that plot frame axis
        is ignored, and every irregular frame label is done.
    
    
      o LAB.AXS INT 6 [ 1,1, 1,-1,1,-1 ] 
    
        Switches to control which sides of the frame are drawn  and  how
        they  are  labelled (in conjuntion with LAB.FRQ). LAB.AXS(1) and
        (2) refer only to the last label for the horizontal and vertical
        plot  axis,  respectively.  The  last  label is the rightmost or
        topmost  one.   If  LAB.AXS(1)=1  the  last  grid  node  in  the
        horizontal is labelled regardless of whether it is a multiple of
        the LAB.FRQ parameter.  If LAB.AXS(1) is not  equal  to  1,  the
        last  node is not labelled.  LAB.AXS(3) through (6) refer to the
        left,right,bottom and top edges of the frame, respectively.  The
        switches for (3) thorugh (6) have the following interpretation:
    
         1   draw the edge and label according to LAB.FRQ (full
        labelling)
         0   draw the edge but don't do any labelling or any short tics
        -1   draw the edge with long tics at label locations and short
        tics
             at every node but don't draw any text description of the
        node -2   don't draw the edge at all leaving the frame open on
        that side
    
             The default fully labels the left and bottom, and labels
             without the text on the right and top, ie. 1,-1,1,-1.
    
    
      o TICS C*4 1 [ OUT  ] 
    
        This controls how  the  frame  tic  marks  are  drawn.  The  six
        possible choices are OUT (drawn from frame border outward), OUTS
        (out and small), OUTB  (out  and  big),  IN  (inside  frame  and
        nominal  size),  INS (small) and INB (big). The nominal tic mark
        size is controlled by the REFERENCE.CHAR.SIZE.  Small  tics  are
        half as large, and big tics are twice as big.
    
    
      o NFRAMES INT 1 [ 1 ] 
    
        The number of frames on a single plot  page.  This  is  used  to
        determine  when  the  graphics  for  a  page  is complete so the
        appropiate action can be taken. When using NFRAMES greater  than
        one,  it  is  usually  desireable  to  change the PLT.LOC so the
        frames are not on top of each other. Also see AFRAME and NPLOTS.
    
        When using NFRAMES greater than one or NPLOTS greater than  one,
        it  is  desireable  to  run  using  a command file or run from a
        terminal other than the graphics device,  since  otherwise  user
        prompts and inputs will overwrite the graphics on the screen.
    
    
      o NPLOTS INT 1 [ 1 ] 
    
        The number of plots in a single frame.  Eg.  two  plots  can  be
        overlayed by specifying NPLOTS=2.
    
        The total number of plots done on a single page is NFRAMES times
        NPLOTS.  Both  NFRAMES  and  NPLOTS may be changed any number of
        times.
    
    
      o HLAB C*8 12 [ null ] 
    
        Text strings to use as axis labels in place  of  the  grid  node
        descriptions  for  the  horizontal  axis. Where the labels go is
        determined by  LAB.FRQ,LAB.AXS  and  the  grid  itself.  If  all
        elements  are  null then HLAB is ignored, otherwise all elements
        are used. This option may be useful for labelling the plot  with
        strings like 'MONDAY','TUESDAY', or 'jan','feb', or '90S','70S',
        etc. when the grid node values are numbers like 1,2,3..etc.  The
        description of the text is controlled by FRAME.TXT.
    
        A special option is  triggered  when  HLAB='AUTO_MON','MMM','N'.
        The plot horizontal axis is labelled with the months of the year
        in sequence according to the LAB.AXS and LAB.FRQ parameters. MMM
        is  the  first  three characters of the 1st month in the series,
        eg. 'JAN','SEP', etc. N is the number  of  characters  for  each
        label, which may be 1,2 or 3.
    
        Longitude or latitude labels  may  be  triggered  by  specifying
        HLAB='AUTO_LON' or HLAB='AUTO_LAT', respectively. For longitude,
        this option replaces negative grid nodes with a West identifier,
        and  positve  with  East.   For  latitude,  negative  values are
        identified as South and positve as North.  Thus, for a longitude
        vs  latitude  plot,  you may set HLAB='AUTO_LON' and VLAB='AUTO-
        LAT' to label with W,E and S,N identifiers for the X and Y axes.
    
    
      o VLAB C*8 12 [ null ] 
    
        Identical to  HLAB  except  for  the  vertical  plot  axis.  The
        AUTO_MON  option is disabled for VLAB. The AUTO_LON and AUTO_LAT
        options work for VLAB just as for HLAB.
    
    
      o HDLAB C*48 1 [null ] 
    
        A text string to be placed according to  the  HAX.L  parameters.
        The  main  motivation for this field is when the horizontal plot
        axis  needs  to  be  labelled  with  something  other  than  the
        dimension  name  and units read with the data, eg. for a xy type
        or scatter plot. However, HDLAB may be  used  to  put  any  text
        anywhere on the plot. HAX.L controls where the text will go, the
        color, relative size and font.
    
    
      o VDLAB C*48 1 [null ] 
    
        A text string to be placed according to  the  VAX.L  parameters.
        The  main  motivation  for  this field is when the vertical plot
        axis  needs  to  be  labelled  with  something  other  than  the
        dimension  name  and units read with the data, eg. for a xy type
        or scatter plot.
    
    
      o TEXT C*64 1 [ null ] 
    
        A text string to be placed according to the  TEXT.L  parameters.
        The  main motivation for this field is when a function of two or
        fields is plotted and this function needs to be  placed  on  the
        plot.  Eg.  if  the plot is a difference of two fields, then you
        may want to set TEXT equal to  'Exp#  21  minus  Exp#  20',  for
        instance.
    
    
      o COLOR.FILE C*56 1 [ null ] 
    
        This parameter allows the user to define his  own  color  table.
        To use colors other than the defaults, set this to the name of a
        color table file. This file should have 16  lines  corresponding
        to  color  numbers  0  to  15,  where  each  line has 3 integers
        separated by at least one blank space. The 3  integers  are  the
        RED,GREEN   and   BLUE   components   in  percent  (0  to  100),
        respectively. Color number zero, the first line of the file,  is
        the background color.
    
        With this option, a smooth image of a data  set  may  easily  be
        done.  Create  a color table with some scheme, say blue to green
        to yellow to red  in  16  steps.  Then  use  FILL=123456,16  and
        FILL.COLOR=1,2,3,4,...16.
    
    
      o THE L PARAMETERS
    
        Section III  has  23  more  parameters  which  are  all  closely
        related.  They all control where and how text gets placed on the
        plot.  All these variables are integers with six elements.  Each
        element has the following meaning:
    
        Element   Descritpion
        ------    ----------------------------------------------------
          1       the X displacement from a reference point in units
                  of the reference character width.
    
          2       same as element 1 but for Y and a character height.
    
          3       this number is really three numbers: a centering
                  option, an angle category and a reference point.
                  It is also the controller for whether the field
                  is labelled or not. If it is zero, the field is
                  not labelled.
    
                  the HUNDREDS digit is the centering option:
    
                  0=no centering           1=center on the X frame
                  2=center on the Y frame  3=right justify on X frame
    
                  the TENS digit is the angle category:
    
                  category 1 is 0 deg.    category 2 is 90 deg.
                  category 3 is 180 deg.  category 4 is 270 deg.
    
                  and the ONES digit is the reference point:
    
                  reference point 1 is the lower left  frame corner
                  reference point 2 is the lower right frame corner
                  reference point 3 is the upper left  frame corner
                  reference point 4 is the upper right frame corner
    
          4       color           (zero to fifteen)
          5       relative size   (10 gives the current reference size)
          6       font number     (one to number of possible fonts)
    
          eg.     CON.L=0,-8,11,3,10,1
    
                  means place the list of drawn contour levels zero
                  character widths to the right and 8 character heights
                  below the lower left frame corner and draw at 0 degrees.
                  Use color number 3, the reference size and font one.
    
          eg.     TEXT.L=0,6,113,3,30,2
    
                  means center the text in the TEXT parameter on the
                  X frame six character heights above the frame. Use color
                  3, a character size three times the reference and font 2.
    
    
        The complete list of the section III text controllers  is  shown
        below:
    
        Name     Default  Field to be labelled 
        -------  ------- ------------------------------------- 
        CON.L    8,-6,11  Echoing of drawn contour levels 
        FILL.L   8,-8,11  Echoing of filled regions (see also FILL.BAR)
    
        ID.L     0,8,13   ID read from information file 
        NAME.L   10,8,13  NAME read from information file 
        UNITS.L  28,8,13  UNITS read from information file
    
        DFILE.L  54,8,13  DFILE read from information file
    
        TEXT1.L  0,7,13   TEXT1 read from information file 
        TEXT2.L  0,6,13   TEXT2 read from information file
    
        HDNAM.L  8,-4,11  horizontal dimension name read from ifile
        HDUNI.L  34,-4,11 horizontal dimension units read from ifile
    
        VDNAM.L  -8,8,21  vertical dimension name read from ifile
        VDUNI.L  -8,34,21 vertical dimension units read from ifile
    
        CORD.L   0,5,13   fixed coordinates in other 2 planes 
        MDAEP.L 0,4,13    Mul,Div,Add,Exp and Power constants 
        MASK.L   32,4,13  Mask range
    
        AVG.L    0,3,13   mean of all data points (or global mean) 
        MIN.L    13,3,13  minimum of all data points 
        MAX.L    26,3,13  maximum of all data points 
        NHAVG.L  39,3,13  northern hemisphere mean
        SHAVG.L  52,3,13  southern hemisphere mean
    
        HAX.L    8,-4,11  horizontal plot axis label supplied as HDLAB
        VAX.L    -8,8,21  veritcal plot axis label supplied as VDLAB
        TEXT.L   0,2,13   64 byte text string supplied as TEXT
    
    
        The last three elements of each of these fields are identical
        and are
    
        1,10,1      which is white, the reference size and font number
        one.
    
        Note that the amount of labelling and the location of the labels
        is  a  matter of taste. The default is to do NO labelling except
        for the plot frame axes labelling (see LAB.AXS and  ALL.LABELS).
        Many  users may wish to turn on some or all of the labelling, or
        change the locations and angles.
    
        If ALL.LABELS is set to YES,  all  the  <->.L  parameter  listed
        above  are  set to their defualt values. If ALL.LABELS is set to
        NO (the default) the third element is set to  zero  which  turns
        off the labelling of the associated field.
    
        If ALL.LABELS is null then all the  <->.L  parameters  are  left
        unchanged from their last value.
    
    

    GRAPHICS LINE, MARKER, FILL AND TEXT DESCRIPTORS

    
        PLTGKS has descriptors for all lines and text put on the plot.
    
        A. Line descriptors end with a .DESC extension and include:
           color, line-width and line-type.
    
        B. Text descriptors end with a .TXT extension and include:
           color, size and font.
    
        C. Marker descriptors (XYMARKS.DESC, SMARKS.DESC and optionally
           SCAT.TXT) include: color, size and marker-type.
    
        D. The section III parameters which have a .L extension, describe
           text labelling. Besides the positioning information they include:
           color, size and font.
    
        E. Contours and filling operations have their own descriptors:
           CON.COLOR, CON.LWIDTH and CON.LTYPE
           and FILL.COLOR, FILL.INTSTYLE and FILL.STYLEIND (and FILL.METHOD)
    
    
        The following table defines these descriptors.
    
        Feature       Description
        ----------    -------------------------------------------
        color         Selects a color out of the color table by number.
                      Color index zero is the background color.
                      Valid values are 0-15. See attached. You may define
                      your own color table using COLOR.FILE.
    
        line-width    Ten times the relative line-width. A value of ten
                      is the nominal line width, 20 is twice as wide, etc.
    
        line-type     Selects the line type. 1 is solid, 2 is dashed,
                      3 is dotted, 4 is dash-dot, -1 is broken, -2 is
                      dot-broken, -3 is broken-dash and -4 is large broken.
                      See attached.
    
        marker-type   Selects the marker type. 1 is a dot, 2 is a plus sign,
                      3 is an asterisk, 4 is a circle, 5 is an X. -1 is a box
                      with an X, -2 is a box, -3 is a box with a dot, -4 is a
                      box and dot rotated 45 degrees and -5 is a box rotated
                      45 degrees. See attached.
    
        intstyle      The set fill area interior style.
                      0 is hollow, 1 is solid, 2 is pattern and 3 is hatch.
    
        styleind      The set fill area style index. If intstyle is pattern
                      this selects the pattern, iF intstyle is hatch then
                      this selects the hatch style. See attached.
    
        text-size     Ten times the relative size. A value of ten is the
                      reference text size, 20 is twice as large, etc. The
                      reference text size may be set with the REF.CHAR.SIZES
                      parameter in section III.
    
        font          Selects the font for text. The default font number is 1.
                      Other optional fonts are numbered -1 through -12.
                      See attached.
    
    

    SEGMENTS

    
        Graphics segments may be created when  a  workstation  is  open.
        These  segments  may  then  be  manipulated  using  the SEGTRANS
        transformation.  If a segment is created in WISS, it may also be
        copied  to  any  other  active  workstation(s).  The  section  I
        parameters:
    
           PRE.SEGMENT     POST.SEGMENT     SEGTRANS
    
        must be used  to  create,  close,  transform,  copy  and  delete
        segments.  Any  number  of segments may be created, but only one
        may be open at  any  one  time  (this  is  a  GKS  restriction).
        SEGTRANS may be used to manipulate individual segment(s) through
        translation, scaling and rotation.  The  default  transformation
        reproduces the segment as written.
    
        Segments may be useful for 1) drawing an overlay such as  a  map
        that never changes from plot to plot, 2) scaling and translating
        a plot to select the best size,location and aspect ratio for the
        frame(s),  and  3)  enlarging  a  particular region of a plot to
        better see some feature.
    
        Example 10 in section XIV shows how a segment may be translated,
        rotated and scaled.
    
      XI. INPUT DATA BASE
    
        See the library  of  routines  called  RWDATA  for  reading  and
        writing data from the data base.
    
        Any one can write software to read and write data from the  data
        base,  it  is  not  difficult.  However  the  RWDATA  library of
        routines can easily be incorporated into any particular  program
        to handle the job for you.
    
        The input data consists of two parts in two distinct files:  the
        data itself, and the information describing the data.
    
        The data file is an unformatted, direct access file with a fixed
        record  length  of  512  bytes, or 128 four-byte words. The data
        base is limited to real 4-byte words.
    
        Each array of data is stored with element (1) as the first  word
        in  the  1st record, elememt (2) as the second word in the first
        record, etc., with the standard fortran convention  for  fastest
        indicies in the case of multiply dimensioned arrays.
    
        Several distinct pieces of data may all reside in a single  data
        file.   The  information  describing  the  data (see information
        file) includes the data file name and  a  record  number  within
        that data file which points to the start of the data.
    
        Although not required, it is probably a  good  idea  to  have  a
        single information file which corresponds to a single data file.
        One convention is to call the files mydata.INF  and  mydata.DAT.
        As  more entrys are added to the data file, the information file
        is updated accordingly (RWDATA  handles  this  case).   Existing
        entrys can be appended using RWDATA.
    
        The information  file  is  an  IOLAN  type  file  with  all  the
        information  about  the data including the data file name. These
        files can be examined with the editor and modified as needed.  A
        single information file may contain the describtions for several
        distinct pieces of data, with each set of descriptors  seperated
        by the IOLAN escape character $.
    
    
        Fields in the information file are:
    
        Name     Type  Size    Decription
        ----     ----  ----    -------------------------------------
        DFILE    C*56   1      data file name
        ID       C*8    1      identification for the data
        NAME     C*8    1      name of the field
        UNITS    C*24   1      units of the field
        TEXT1    C*48   1      descriptive text: line 1
        TEXT2    C*48   1      descriptive text: line 2
        DNAM     C*24   4      name of each of the 4 dimensions
        DUNI     C*24   4      units of each of the 4 dimensions
        FIRST    R*4    4      first grid node value for each dimension
        DELTA    R*4    4      grid node interval for each dimension
        NDIM     I*2    4      number of grid nodes for each dimension
        BAD.DATA R*4    1      the value for missing data
        OFFSET   I*4    1      the record number preceding the data
    
    
        It is suggested that a consistent file naming convention be used
        for the information and data files. This will easily allow you
        to inventory all data that is in the data base. One convention
        is to select a file name for the data, and use a .INF extension
        for the information file and a .DAT extension for the data file.
    
        Eg. myfile.INF  and  myfile.DAT
    
    
        Specifying a DELTA of zero will cause problems when using PLTGKS
        to read the data. Always set the DELTA's for dimensions which are
        not significant to one, not zero.
    
        All four values of NDIM must be greater than zero. Set the NDIM's
        for the non-significant dimensions to one.
    
        It is a good idea to set all non-significant values for FIRST to zero,
        since the default value of CORD in PLTGKS is (0,0,0,0).
    
        The three notes above may be accomplished by inserting the following
        line in your driver program which creates new data base files:
    
        DATA FIRST/4*0./, DELTA/4*1./, NDIM/4*1/
    
        Then set the significant elements to their corresponding true values.
    
    
        The following is an example information file.
    
    
    
        DFILE='USER1:[SMITH.DATA]EXP01.DAT'
        ID='EXP01'
        NAME='QR'
        UNITS='G/KG'
        TEXT1='RAIN WATER MIXING RATIO'
        TEXT2='COLLECTION PARAMETER SET # 1'
        DNAM='DISTANCE BEHIND LINE','DISTANCE ACROSS LINE'#
        DUNI='KM','KM','METERS','HOURS'
        FIRST=0.,-50.,100.,0.5
        DELTA=5.,5.,100.,0.5
        NDIM=21,21,50,20
        BAD.DATA=1E10
        OFFSET=0
        $
        NAME='QS'
        TEXT1='SNOW MIXING RATIO'
        OFFSET=3446
        $
        NAME='QG'
        TEXT1='GRAUPEL MIXING RATIO'
        OFFSET=6892
        $
    
        This example describes a data file with three fields in it.  All
        the  fields  are  defined  on the same grid, from the same model
        experiment so some of the information need not be  repeated  for
        each  entry.  The only descriptions which change are the name of
        the field, the title of the field (which has  been  put  in  the
        TEXT1  parameter), and the location of the start of the field in
        the data file.
    
        The grid is as follows:
    
        dim #    first delta last size
        -------   ----- ----- ---- ----
            1      0     5     100  21
            2      -50   5     50   21
            3      100   100   5000 50
            4      .5    .5    10   20
    
        The offset is computed from the size of the field. In this  case
        the  product  of all the dimension sizes is 441,000 words. Since
        there are  128  words  per  direct  access  record,  each  field
        requires 441,000/128 = 3445.3 -> 3446 records.
    
    

    SPECIAL CHARACTERS IN TEXT STRINGS

    
        By  using  special  action  codes,  graphics  text  may  include
        subscripts,  superscripts  and font changes within a single line
        of text.
    
        In  PLTGKS  the  user  specifys   graphics   text   strings   in
        HLAB,VLAB,TEXT,HDLAB  and VDLAB, as well as the information file
        text strings TEXT1,TEXT2,HDNAM,HDUNI,VDNAM and  VDUNI.   Any  or
        all of these may contain the special action codes.
    
        All codes must be delimetered with the  backslash  character,  .
        After  the  first backslash is the specific special action code;
        an underscore for subscripts, an up arrow for  superscripts  and
        an at sign for change font.
    
    
        action       code    desciption
        -----------  ----    ------------------------------------------------
        subscript    \_n\    where n is the subscript. All characters after
                             the _ and before the  will be subscripted. The
                             subscript may be any number of characters long.
    
        superscript  \^n\    where n is the superscript. All characters after
                             the ^ and before the  will be super.
    
        font change  \@m.t\  where m is the font number. The font number must
                             be terminated with a dot. All text between the dot
                             and the next backslash, denoted by t here, will
                             be in font number m. The font will then be set
                             back to its original value.
    
    
    
        Examples
        ---------------------------------------------------------------
        TEXT='CO\_2\ CONCENTRATION'   ..the chemical symbol CO2
    
        TEXT='Watts/m\^2\'      .the squared sign as a superscript
    
        TEXT='surface albdeo,\@-12.a\'   ..the greek a, or alpha
    
        TEXT='Name: \@-2.TS\ \@1.,Temperature\'  ..change font
    
    

    MAP PROJECTIONS

    
        The pltgks section II parameter MAP.PROJECT selects the projection.
    
        When this is 'RECTANG', no special mapping is required.
    
        This section describes the other optional map projections.
    
    
        o The first 2 bytes of MAP.PROJECT specify the projection to be used.
          In what follows, this is referred to JPRJ. The possible values are:
    
    
    
          The conic projection:       'LC' - Lambert conformal conic with two
                                             standard parallels.
    
    
          The azimuthal projections:  'ST' - Stereographic.
    
                                      'OR' - Orthographic.  Causes the parameter
                                             'SA' to be zeroed.
    
                                      'LE' - Lambert equal area.
    
                                      'GN' - Gnomonic.
    
                                      'AE' - Azimuthal equidistant.
    
                                      'SV' - Satellite-view.
    
    
          The cylindrical projections:'CE' - Cylindrical equidistant.
    
                                      'ME' - Mercator.
    
                                      'MO' - Mollweide.  The projection used is
                                             not actually a true Mollweide.
    
    
        o The second 2 bytes specify one of five ways in which the limits of the
          map are defined by the parameters PLM1, PLM2, PLM3, and PLM4.
    
          If you want the maximum useful area produced by the projection, you can
          use anything for the second 2 bytes. If the choice does not match any
          of the possible values, '