next up previous contents index
Next: SUBROUTINE MESH3D Up: MASTER Subroutines Previous: SUBROUTINE LCNTR

SUBROUTINE LSPLOT

 LSPLOT is a general single/multiple data line routine for plotting lines or scatterplots. Optionally, error bars and symbols can be added. LSPLOT differs in philosophy from most other LONGLIB MASTER routines in that plotting options are passed via an option array routine. The routine is designed to produce a reasonable plot with the option array set to all zeros. The output format is changed by initializing selected array elements to the values described below. This permits simple but flexible specification of the plot format.

CALL LSPLOT(x,y,ndp,ndl,iflag,f,c,nc)

x     (R): x input array dimensioned x(ndp,ndl).  Depending
           on option selected, x need only be dimensioned
           x(ndp) -- this is the default option.
y     (R): y input array dimensioned y(ndp,ndl).  If
           ndl=1 then y may dimensioned y(ndp)
ndp   (I): number of data points/line dimension
ndl   (I): number of data lines dimension
iflag (I): LONGLIB option flag (one's digit arbitrary)
           < 0 : do not close LONGLIB after plotting
           = 0 : close LONGLIB--no plot produced
           > 0 : close LONGLIB after plotting
(magnitude) >10000 : do not initialize LONGLIB before plotting
 (100's digit) = 0 : Ask which screen device to use
              <> 0 : Screen Device Number (see FRAME)
f     (R): option array dimensioned at least f(53)
             (described below)
c     (C): array of strings dimensioned C(3+ndl)
           c(1) : x axis title
           c(2) : y axis title
           c(3) : top title
           c(4) : line 1 legend (optionally used)
           c(5) : line 2 legend (optionally used)
           ...        ...
nc    (I): array of string lengths dimensioned nc(3+ndl)
           nc(1) : number of characters to use in C(1)
           nc(2) : number of characters to use in C(2)
            ...       ...

The array elements of the option array f are interpretted according to the following table. Some parameters have default values (shown in square brackets). These are used when the input value is zero. A simple plot may be produced by setting all the elements of f to zero. Note that user specified input scaling factors should be powers of ten when the log axis specification is selected. An optional legend may be plotted. The legend consists of a column of line/simple examples (if selected) and input text.

  array  range of
  index  values   action for each value
 ------- -------- ------------------------

   1    0<=.<=ndp number of points/line to plot [ndp]: 0=ndp used
   2    0<=.<=ndl number of lines to plot [nl]: 0=ndl used
   3     -1/0/1   x scale: 0=auto,smoothed; 1=auto,nosmooth; -1=user
   4      xmin    user supplied scale value (used if f(3)<0)
   5      xmax    user supplied scale value (used if f(3)<0)
   6     -1/0/1   y scale: 0=auto,smoothed; 1=auto,nosmooth; -1=user
   7      ymin    user supplied scale value (used if f(6)<0)
   8      ymax    user supplied scale value (used if f(6)<0)
   9      0/1     x value usage: 0=first line of x data array
                  used for all y lines; 1=lines of x,y paired
   10     0/1     connect plotted points: 0=yes; 1=no
   11     >=0     symbol plotted every ()th point: 0=no symbols
   12     >=0     line symbol size [0.1]: 0=use default
   13     >=0     symbol number for first data line, each line
                  then uses next symbol in sequence
   14     8<.<8   error bar option (see below): 0=no error bars
   16     >=0     error bar size [0.1]: 0=default used
   17     0/1     vertical line from points to reference value:
                  0=no; 1=yes
   18     rval    reference value
   19    -1/0/1   x axis type: 0=linear; 1=log axis, -1=no axis
   20    -1/0/1   y axis type: 0=linear; 1=log axis, -1=no axis
   21     >=0     x axis length [7.0]: 0=default used
   22     >=0     y axis length [5.0]: 0=default used
   23     >=0     x axis tick pattern (see axis3) [7.00]: 0=default
   24     >=0     y axis tick pattern (see axis3) [5.00]: 0=default
   25     0/1     x axis title side of axis: 0=below; 1=above
   26     0/1     y axis title side of axis: 0=left; 1=right
   27     0/1     x axis auto exponent enable: 0=enable; 1=disable
   28     0/1     y axis auto exponent enable: 0=enable; 1=disable
   29     0/1     x axis tick side: 0=below; 1=above
   30     0/1     y axis tick side: 0=left; 1=right
   31     0/1     x axis number orientation: 0=horizontal; 1=vertical
   32     0/1     y axis number orientation: 0=vertical; 1=horizontal
   33     0/1     x axis numbers/title: 0=shown; 1=not shown
   34     0/1     y axis numbers/title: 0=shown; 1=not shown
   35     0/1     use x=log10(abs(x values)+1.e-34): 0=no; 1=yes
   36     0/1     use y=log10(abs(y values)+1.e-34): 0=no; 1=yes
   37   -1/0/1    add mirror x axis: 0=no; 1=w/labels; -1:w/o labels
   38   -1/0/1    add mirror y axis: 0=no; 1=w/labels; -1:w/o labels
                  (mirrored axes placed on opposite from normal axis)
   39     >=0     x axis label size [0.15]: 0=use default
   40     >=0     y axis label size [0.15]: 0=use default
   41     >=0     top title character size [0.18]: 0=use default
   42   0/1/2/3   grid: 0=no grid; 1=solid; 2=dotted; 3=ticked
   43   -1/0/1    legend: 0=no legend; 1=right side; -1=user locate
   44     xval    user specified lower-left corner of legend
   45     yval    user specified lower-left corner of legend
   46     0/1     show plot symbol on legend: 0=no; 1=yes
   47     0/1     show line segment on legend: 0=no; 1=yes
   48     >=0     legend character height [0.12]: 0=use default
   49     >=0     legend line segment length [0.5]: 0=use default
   50   -1/0/1    top title justify: 0=center; -1:left; 1:right
   51    0/1      plot horizontal reference line: 0=no; 1=yes
   52    0/1      use linetype array values: 0=no; 1=yes
   53    0/1      use color array values: 0=no; 1=yes
   54    >=0      color index #1: 0=color value 1 used
   55    >=0      linetype index #1
   56    >=0      color index #2: 0=color value 1 used
   57    >=0      linetype index #2
   ...   ...      ... etc ...

The optional error bar specification, when non-zero, changes interpretation of lines. The first line (and every third line) conidered a "center" line. The second line specifies the relative error (to be added to the first line) used for plotting the tops of the error bars. The third line is used similarily to locate the bottoms of the error bars. When the error bar specification is negative the center line points are marked with a special "x" (in addition to any other option). The absolution value of the specifiation determines the type of error bar according to the following table.

value   type of error bar
------  ---------------------------------------------------
  1     line connecting relative errors
  2     1 + horizontal bars at relative errs
  3     1 + vertical bars at relative errs
  4     double line connecting rel. errs+horizontal bars
  5     double line connecting rel. errs+vertical bars
  6     vertical rectangle w/top and bottom rel. errs
  7     rectangle with corners at relative errors

The color and line type index (when enabled) are used according to the following table.

 index #        color usage     linetype usage
---------      -------------   ----------------
  1              x axis         x axis
  2           x axis numbers    y axis
  3           x axis title      title
  4           x axis exponent   legend titles
  5              y axis         reference line
  6           y axis numbers    error bars
  7           y axis title      line #1 linetype
  8           y axis exponent   line #2 linetype
  9              title            etc.
 10             legend titles     ...
 11            reference line     ...
 12               grid            ...
 13             line #1 color     ...
 14             line #2 color     ...
...             ... etc. ...      ...



David Long
Wed Jun 12 10:34:11 MDT 1996