Name: GRAF3  6,22
The routine  GRAF3 plots a  3-D axis system  where the Z-axis is
plotted as a colour bar.
The call is:  CALL GRAF3 (XA, XE, XOR, XSTEP, YA, YE, YOR,
                          YSTEP, ZA, ZE, ZOR, ZSTEP)     level 1
         or:  void graf3 (float xa, float xe, float xor, 
                     float xstep, float ya, float ye, float yor,
                     float ystep, float za, float ze, float zor,
                                                   float zstep); 
XA, XE        are the lower and upper limits of the X-axis.
XOR, XSTEP    are the  first X-axis label  and the step  between
              labels.
YA, YE        are the lower and upper limits of the Y-axis.
YOR, YSTEP    are the  first Y-axis label  and the step  between
              labels.
ZA, ZE        are the lower and upper limits of the Z-axis.
ZOR, ZSTEP    are the  first Z-axis label  and the step  between
              labels.
Note:         GRAF3  must be called  from level 1  and  sets the
              level to 3. For furthers Notes, the user is refer-
              red to the routine GRAF.
Name: ZAXIS  7,22
The routine ZAXIS plots a linearly scaled colour bar.  
The call is:  CALL ZAXIS (A, B, OR, STEP, NL, CSTR, IT, NDIR,
                          NX, NY)                  level 1, 2, 3
         or:  void zaxis (float a, float b, float or,
                          float step, int nl, char *cstr, 
                          int it, int ndir, int nx, int ny);   
A, B          are the lower and upper limits of the colour bar.
OR, STEP      are the first label and the step between labels.
NL            is the length  of the colour bar in plot coordina-
              tes.
CSTR          is a character string containing the axis name.
IT            indicates how ticks,  labels and the axis name are
              plotted.  If IT = 0,  they are plotted in a clock-
              wise  direction.  If IT = 1, they are plotted in a
              counter-clockwise direction.
NDIR          defines the direction of the colour bar. If NDIR =
              0, a vertical colour bar will be plotted;  if NDIR
              = 1, a horizontal colour bar will be plotted.
NX, NY        are the plot coordinates of the lower left corner.
Name: ZAXLG  7,22
The routine ZAXLG plots a logarithmically scaled colour bar.
The call is:  CALL ZAXLG (A, B, OR, STEP, NL, CSTR, IT, NDIR,
                          NX, NY)                  level 1, 2, 3
         or:  void zaxlg (float a, float b, float or, 
                          float step, int nl, char *cstr,
                          int it, int ndir, int nx, int ny);   
A, B          are the lower and upper limits of the colour bar.
OR, STEP      are the first label and the step between labels.
NL            is the  length of  the colour bar  in plot coordi-
              nates.
CSTR          is a character string containing the axis name.
IT            indicates how ticks,  labels and the axis name are
              plotted.  If IT = 0,  they are plotted in a clock-
              wise  direction.  If IT = 1, they are plotted in a
              counter-clockwise direction.
NDIR          defines the direction of the colour bar. If NDIR =
              0, a vertical colour bar will be plotted;  if NDIR
              = 1, a horizontal colour bar will be plotted.
NX, NY        are the plot coordinates of the lower left corner.
Name: CURVE3  22
The routine CURVE3 plots three-dimensional data points.
The call is:  CALL CURVE3 (XRAY, YRAY, ZRAY, N)          level 3
         or:  void curve3 (float *xray, float *yray, 
                           float *zray, int n);
XRAY          is an array  containing the  X-coordinates of data
              points.
YRAY          is an array  containing the  Y-coordinates of data
              points.
ZRAY          is an array  containing the  Z-coordinates of data
              points.
N             is the number of data points.
Name: CURVX3  22
The routine CURVX3 plots three-dimensional data points.
The call is:  CALL CURVX3 (XRAY, Y, ZRAY, N)             level 3
         or:  void curvx3 (float *xray, float y, float *zray,
                                                         int n);
XRAY          is an array  containing the  X-coordinates of data
              points.
Y             is the Y-position of a row of data points.
ZRAY          is an array  containing the  Z-coordinates of data
              points.
N             is the number of data points.
Name: CURVY3  22
The routine CURVY3 plots three-dimensional data points.
The call is:  CALL CURVY3 (X, YRAY, ZRAY, N)             level 3
         or:  void curvy3 (float x, float *yray, float *zray,
                                                         int n);
X             is the X-position of a column of data points.
YRAY          is an array  containing the  Y-coordinates of data
              points.
ZRAY          is an array  containing the  Z-coordinates of data
              points.
N             is the number of data points.
Name: CRVMAT  22
The routine  CRVMAT  plots a coloured surface according to a ma-
trix.
The call is:  CALL CRVMAT (ZMAT, IXDIM, IYDIM, IXPTS, IYPTS)
                                                         level 3
         or:  void crvmat (float *zmat, int ixdim, int iydim,
                                          int ixpts, int iypts);
ZMAT          is a matrix of the  dimension  (IXDIM, IYDIM) con-
              taining Z-coordinates.  The coordinates correspond
              to a linear grid that overlays the axis system. If
              XA, XE, YA and YE  are the axis limits in GRAF3 or
              values defined with the routine SURSZE,  the rela-
              tionship  between  the grid points  and the matrix
              elements can be described by the formula:
              ZMAT(I,J) = F(X,Y)  where
                   X = XA + (I - 1) * (XE - XA) / (IXDIM - 1)
                   Y = YA + (J - 1) * (YE - YA) / (IYDIM - 1).
IXDIM, IYDIM  define the dimension of ZMAT (>= 2).
IXPTS, IYPTS  is the number of interpolation steps between  grid
              lines (>= 1).  CRVMAT can interpolate points line-
              arly.
Name: CRVTRI  22
The routine  CRVTRI  plots a coloured  surface  of the  Delaunay
triangulation of a set of data points.
The call is:  CALL CRVTRI (XRAY, YRAY, ZRAY, N, I1RAY, I2RAY,
                           I3RAY, NTRI)                  level 3
         or:  void crvtri (float *zray, float *yray, 
                           float *zray, int n, int *i1ray, 
                           int *i2ray, int *i3ray, int ntri);
XRAY          is an array  containing the  X-coordinates of data
              points.
YRAY          is an array  containing the  Y-coordinates of data
              points.
ZRAY          is an array  containing the  Z-coordinates of data
              points.
N             is the number of data points.
I1RAY, I2RAY, is  the  Delaunay  triangulation  of  the   points
    I3RAY     (XRAY, YRAY) calculated  by the routine TRIANG.
NTRI          is the number of  triangles in  I1RAY,  I2RAY  and 
              I3RAY.
Name: SETRES  22
SETRES defines the size of rectangles plotted by CURVE3,  CURVY3
and CRVMAT.
The call is:  CALL SETRES (NPB, NPH)               level 1, 2, 3
         or:  void setres (int npb, int nph);
NPB, NPH      are the width and height of rectangles in plot co-
              ordinates (> 0).                   Default: (1,1).
Name: AUTRES  22
With a call to  AUTRES,  the size of coloured rectangles will be
automatically calculated by GRAF3 or CRVMAT.
The call is:  CALL AUTRES (IXDIM, IYDIM)                 level 1
         or:  void autres (int ixdim, int iydim);
IXDIM, IYDIM  are the  number  of data points  in the  X- and Y-
              direction.
Name: SETCLR  22
The routine SETCLR defines the colour used for text and lines.
The call is:  CALL SETCLR (NCOL)                   level 1, 2, 3
         or:  void setclr (int ncol);
NCOL          is a colour number in the range 0 to 255.
                                    Default: NCOL = 255 (White).
Name: SETRGB  22
The routine  SETRGB defines the  foreground colour specified  in
RGB  coordinates.  SETRGB sets  the nearest entry  in the colour 
table that matches the RGB coordinates. This means that a colour
will not be defined exactly if it is not contained in the colour
table.
The call is:  CALL SETRGB (XR, XG, XB)             level 1, 2, 3
         or:  void setrgb (float xr, float xg, float xb);
XR, XG, XB    are the RGB coordinates  of a  colour in the range
              0 to 1.
Name: INDRGB  22
The  function  INDRGB  returns the  nearest  entry in the colour 
table that matches given RGB coordinates.
The call is:  N = INDRGB (XR, XG, XB)              level 1, 2, 3
         or:  int indrgb (float xr, float xg, float xb);    
XR, XG, XB    are the  RGB coordinates of a colour in  the range
              0 to 1.
N             is the returned colour index.
Name: AX3LEN  22
The routine  AX3LEN  defines the axis lengths of a coloured axis
system.
The call is:    CALL AX3LEN (NXL, NYL, NZL)              level 1
         or:    void ax3len (int nxl, int yl, int nzl);
NXL, NYL, NZL   are the axis lengths in plot coordinates.
Name: WIDBAR  22
The routine WIDBAR defines the width of the colour bar.
The call is:  CALL WIDBAR (NZB)                    level 1, 2, 3
         or:  void widbar (int nzb);
NZB           is the width in plot coordinates. Default NZB = 85
Name: VKXBAR  22
The routine VKXBAR defines horizontal  shifting of  colour bars.
The distance  between the colour bar and the axis system is,  by
default, 85 plot coordinates.
The call is:  CALL VKXBAR (NVFX)                   level 1, 2, 3
         or:  void vkxbar (int nvfx);
NVFX          is an integer  that defines the shifting.  If NVFX
              is positive, the colour bar will be shifted right;
              if NVFX is negative the colour bar will be shifted
              left.                            Default: NVFX = 0
Name: VKYBAR  22
This routine VKYBAR defines a vertical shifting of colour bars.
The call is:  CALL VKYBAR (NVFY)                   level 1, 2, 3
         or:  void vkybar (int nvfy);
NVFY          is an integer  that defines the shifting.  If NVFY
              is positive, the colour bar will be shifted up; if
              NVFY is negative,  the colour bar  will be shifted
              down.                            Default: NVFY = 0
Name: NOBAR   22
The routine  NOBAR instructs  DISLIN to suppress the plotting of
colour bars.
The call is:  CALL NOBAR                           level 1, 2, 3
         or:  void nobar ();
Name: COLRAN  22
The routine defines  the range of colours  used for colour bars.
By default, the range is 1 to 254.
The call is:  CALL COLRAN (NCA, NCE)               level 1, 2, 3
         or:  void colran (int nca, int nce);
NCA, NCE      are colour numbers in the range 1 to 254.
                                              Default: (1, 254).
Name: NOBGD   22
With a call to the routine  NOBGD,  the plotting  of points with
the colour 0 will be suppressed. This reduces plotting  time and
the size of plotfiles.
The call is:  CALL NOBGD                           level 1, 2, 3
         or:  void nobgd ();
Name: SETVLT  22
SETVLT selects a colour table.
The call is:  CALL SETVLT (CVLT)                   level 1, 2, 3
         or:  void setvlt (char *cvlt);
CVLT          is a  character  string  that  defines  the colour
              table.
  = 'SMALL'   defines a small colour table with the 8 colours:
              1 = BLACK, 2 = RED,  3 =  GREEN,  4 = BLUE,  
              5 = YELLOW, 6 = ORANGE, 7 = CYAN and 8 = MAGENTA.
  = 'VGA'     defines the  16 standard colours of a VGA graphics
              card. 
  = 'RAIN'    defines  256 colours arranged  in a rainbow  where
              0 means black and 255 means white.
  = 'SPEC'    defines  256 colours arranged  in a rainbow  where
              0  means black  and  255 means white.  This colour
              table uses more violet colours than 'RAIN'.
  = 'GREY'    defines 256 grey scale colours where 0 means black
              and 255 is white.
  = 'RRAIN'   is the reverse colour table of 'RAIN'.
  = 'RSPEC'   is the reverse colour table of 'SPEC'.
  = 'RGREY'   is the reverse colour table of 'GREY'.
  = 'TEMP'    defines a temperature colour table.
              The  default  colour  table for a  PostScript file
              created  with  the keyword  'POST'  in  METAFL  is
              'RGREY'  and otherwise 'RAIN'.
Name: MYVLT   22
The routine MYVLT changes the current colour table.
The call is:  CALL MYVLT (XR, XG, XB, N)        level 0, 1, 2, 3
         or:  void myvlt (float *xr, float * xg, float *xb,
                                                          int n)
XR, XG, XB    are arrays containing RGB coordinates in the range
              0 to 1.   
N             is the number of colour entries.
Note:         MYVLT can also be called before DISINI.
Name: SETIND  22
The routine  SETIND allows the user to change the current colour
table.
The call is:  CALL SETIND (INDEX, XR, XG, XB)      level 1, 2, 3
         or:  void setind (int index, float xr, float xg, 
                                                      float xb);
INDEX         is an index between  0 and 255.
XR, XG, XB    are the RGB coordinates of a colour in the range 0
              to 1.
Name: HSVRGB  22
The routine HSVRGB converts HSV coordinates to RGB coordinates.
The call is:  CALL HSVRGB (XH, XS, XV, XR, XG, XB) level 1, 2, 3
         or:  void hsvrgb (float  xh, float  xs, float  xv,
                           float *xr, float *xg, float *xb);  
XH, XS, XV    are the hue, saturation and value of a colour.  XH
              must be in the range 0 to 360 degrees while XS and
              XV can have values  between  0 and 1.  In the  HSV
              model,  colours lie  in a spectral order on a six-
              sided pyramid  where red corresponds  to the angle
              0, green to 120 and blue to 240 degrees.
XR, XG, XB    are the RGB coordinates in the range 0 to 1 calcu-
              lated by HSVRGB.
Name: RGBHSV  22
The routine RGBHSV converts RGB coordinates to HSV coordinates.
The call is:  CALL RGBHSV (XR, XG, XB, XH, XS, XV) level 1, 2, 3
         or:  void rgbhsv (float  xr, float  xg, float  xb,
                           float *xh, float *xs, float *xv);
XR, XG, XB    are the RGB coordinates in the range 0 to 1
XH, XS, XV    are the HSV coordinates calculated by RGBHSV  (see
              also HSVRGB).
Name: REVSCR  22
The routine  REVSCR exchanges the colours with the indices 0 and
255.
The call is:  CALL REVSCR                          level 1, 2, 3
         or:  void revscr ();
Name: EXPZLB  22
The routine  EXPZLB  expands the numbering of a  logarithmically
scaled  Z-axis  to the next order of  magnitude that  lies up or
down the axis limits. The scaling of the  colour bar will not be
changed.  This routine  is useful  if the range  of  the  Z-axis
scaling is smaller  than 1
order of magnitude.
The call is:  CALL EXPZLB (CSTR)                   level 1, 2, 3
         or:  void expzlb (char *cstr);
CSTR          is a  character string  defining  the expansion of
              the Z-axis numbering.
  = 'NONE'    means that the numbering will not be expanded.
  = 'FIRST'   means that  the numbering  will  be expanded down-
              wards.
  = 'BOTH'    means that  the numbering  will be expanded  down-
              and upwards.
                                         Default: CSTR = 'NONE'.
Name: RECFLL  22
The routine RECFLL plots a coloured rectangle where the position
is determined by the upper left corner.
The call is:  CALL RECFLL (NX, NY, NB, NH, NCOL)   level 1, 2, 3
         or:  void recfll (int nx, int ny, int nb, int nh,
                                                      int ncol);
NX, NY        are the plot coordinates of the upper left corner.
NB, NH        are the width and height in plot coordinates.
NCOL          is a colour index in the range 0 to 255.
Name: POINT   22
The routine  POINT plots a coloured rectangle where the position
is determined by the centre.
The call is:  CALL POINT (NX, NY, NB, NH, NCOL)    level 1, 2, 3
         or:  void point (int nx, int ny, int nb, int nh, 
                                                      int ncol);
NX, NY        are the plot coordinates of the centre point.
NB, NH        are the width and height in plot coordinates.
NCOL          is a colour index in the range 0 to 255.
Name: RLPOIN  22
The routine RLPOIN plots a coloured rectangle where the position
is specified in user coordinates.
The call is: CALL RLPOIN (X, Y, NB, NH, NCOL)         level 2, 3
         or: void rlpoin (float x, float y, int nb, int nh, 
                                                      int ncol);
Note:        RLPOIN clips  rectangles at the borders  of an axis
             system.
Name: SECTOR  22
The routine SECTOR plots coloured pie sectors.     level 1, 2, 3
The call is:  CALL SECTOR (NX, NY, NR1, NR2, ALPHA, BETA,NCOL)
         or:  void sector (int nx, int ny, int nr1, int nr2,
                           float alpha, float beta, int ncol);
NX, NY        are the plot coordinates of the centre point.
NR1           is the interior radius.
NR2           is the exterior radius.
ALPHA, BETA   are the start and  end angles  measured in degrees
              in a counter-clockwise direction.
NCOL          is a colour index between 0 and 255.
Example:      CALL SECTOR  (100,  100,  0,  50,  0., 360., NCOL)
              plots a circle  around the centre  (100,100)  with
              the radius 10 and the colour NCOL.
Name: RLSEC   22
The routine  RLSEC  plots coloured pie sectors  where the centre
and the radii are specified in user coordinates.
The call is:  CALL RLSEC (X, Y, R1, R2, ALPHA, BETA, NCOL)
                                                      level 2, 3
         or:  void rlsec (float x, float y, float r1, float r2,
                           float alpha, float beta, int ncol);
X, Y          are the user coordinates of the centre point.
R1            is the interior radius.
R2            is the exterior radius.
ALPHA, BETA   are the  start and  end angles measured in degrees
              in a counter-clockwise direction.
NCOL          is a colour index between 0 and 255.
Notes:      - For the conversion of the radii  to plot coordina-
              tes, the scaling of the X-axis is used.
            - Sectors  plotted by  RLSEC  will not be cut off at
              the borders of an axis system.
Name: NZPOSN  22
The function NZPOSN converts a Z-coordinate to a colour number.
The call is:  ICLR = NZPOSN (Z)                          level 3
         or:  int    nzposn (float z);
Note:         If  Z  lies  outside  of the axis limits  and Z is
              smaller  than the lower limit,  NZPOSN returns the
              value 0 and the routine returns the  value 255  if
              Z is greater than the upper limit.
Name: COLRAY  22
The routine COLRAY converts an array of Z-coordinates  to colour
values.
The call is:  CALL COLRAY (ZRAY, NRAY, N)                level 3
         or:  void colray (float *zray, int *nray, int n);
ZRAY          is an array of Z-coordinates.
NRAY          is an array of colour  numbers  calculated by COL-
              RAY.
N             is the number of coordinates.
