Name: CONCRV  25
CONCRV plots contours generated by other software packages.
The call is:  CALL CONCRV (XRAY, YRAY, N, ZLEV)       level 2, 3
         or:  void concrv (float *xray, float *yray, int n, 
                                                    float zlev);
XRAY, YRAY    are arrays containing  the X- and Y-coordinates of
              a contour line.
N             is the number of points.
ZLEV          is a function value used for labels.
Name: CONTUR  25
The routine CONTUR calculates and plots contours of the function
Z = F(X,Y).
The call is:  CALL CONTUR (XRAY, N, YRAY, M, ZMAT, ZLEV)
                                                      level 2, 3
         or:  void contur (float *xray, int n, float *yray, 
                              int m, float *zmat[], float zlev);
XRAY          is an array containing X-coordinates.
N             is the dimension of XRAY.
YRAY          is an array containing Y-coordinates.
M             is the dimension of YRAY.
ZMAT          is a  matrix  of the  dimension  (N, M) containing
              function values.
ZLEV          is a function value that defines the contour  line
              to be calculated. ZLEV can be used for labels.
Name: CONMAT  25
The routine  CONMAT  plots contours of the  function Z = F(X,Y).
The function values correspond to a linear grid in the XY-plane.
The call is:  CALL CONMAT (ZMAT, N, M, ZLEV)          level 2, 3
         or:  void conmat (float *zmat[], int n, int m, 
                                                    float zlev);
ZMAT          is a matrix of the dimension (N, M) containing the
              function values. If XA, XE, YA and YE are the axis
              limits in  GRAF or values defined with the routine
              SURSZE, the connection of  grid points and  matrix
              elements can be described by the formula:
              ZMAT(I,J) = F(X,Y) where
                X = XA + (I - 1) * (XE - XA) / (N-1),  I=1,..,N
                Y = YA + (J - 1) * (YE - YA) / (M-1),  J=1,..,M.
N, M          define the dimension of ZMAT.
ZLEV          is a function value that defines  the contour line
              to be calculated.  The value  can  be used for la-
              bels.
Notes:      - CONCRV, CONTUR and CONMAT use linear interpolation
              to connect contour points. The routine  TRFMAT can
              be used to pass a matrix with  a better resolution
              to CONTUR and CONMAT.
            - Geographical projections  can be defined  for con-
              touring.
            - The thickness of contours can be set with  THKCRV.
              Line styles and colours can also be defined.
            - The number of matrix points in  CONTUR  and CONMAT
              is limited to N * M <= 256000 in Fortran 77. There
              is no limit for the C and Fortran 90  libraries of
              DISLIN.  
            - To plot contours  for randomly  distributed points
              of the form X(N), Y(N) and Z(N),  the routine GET-
              MAT can be used to calculate a function matrix, or
              the data can be triangulated with the routine TRI-
              ANG and contours can be plotted from the  triangu-
              lation  with  the routine CONTRI.
Name: CONTRI  25
The routine  CONTRI  plots contours  from triangulated data that
can be calculated by the routine TRIANG from a set of irregular-
ily distributed data points.
The call is:  CALL CONTRI (XRAY, YRAY, ZRAY, N, I1RAY, I2RAY,
                           I3RAY, NTRI, ZLEV)         level 2, 3
         or:  void contri (float *xray, float *yray, 
                    float *zray, int n, int *i1ray, int *i2ray,
                    int *i3ray, int ntri, float zlev);
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.
ZLEV          is a function value that defines  the contour line
              to be calculated.
Name: CONSHD  25
The routine  CONSHD  plots filled  contours of the  function Z =
F(X,Y).  Two  algorithms  can be  selected  for contour filling:
a cell filling algorithm and a polygon filling algorithm.  For a
polygon filling,  only closed contours  can be filled. The algo-
rithm can be defined with the routine SHDMOD. 
The call is:  CALL CONSHD (XRAY, N, YRAY, M, ZMAT, ZLVRAY, NLEV) 
                                                      level 2, 3
         or:  void conshd (float *xray, int n, float *yray,
                           int m, float *zmat, float *zlvray,
                           int nlev);
XRAY          is an array containing X-coordinates.
N             is the dimension of XRAY.
YRAY          is an array containing Y-coordinates.
M             is the dimension of YRAY.
ZMAT          is a  matrix  of the  dimension (N, M)  containing
              function values.
ZLVRAY        is an array containing the levels. The levels must
              be sorted  in ascending order  if cell filling  is
              selected.  For polygon filling,  the levels should
              be sorted  in such a way  that inner contours  are
              plotted last.
NLEV          is the number of levels.
Notes:     -  CONSHD may give better  results for a higher reso-
              lution of  ZMAT. A matrix with a higher resolution
              can be calculated with the  routine TRFMAT.
           -  The colours of the  filled contours are calculated
              from  a fictive colour bar  where  the minimum and
              maximum  of the contour  levels  are  used for the 
              lower  and  upper  limits of the  colour bar.  The 
              scaling of the colour bar can be modified with the
              routine ZSCALE while a colour bar can be displayed
              with the routine ZAXIS. If the colours of the fil-
              led  contours  should  not be  calculated  from  a
              colour bar, they can be defined directly  with the
              routine CONCLR.
           -  For  a cell filling,  the  calculation  of contour
              colours are described in the following. The levels
              are sorted  first in ascending order.  By default,
              the colour of the region between  two neighbouring
              levels  is  calculated from the lower value of the
              two levels.  If you want  to use the  upper value,
              you can define it with the routine SHDMOD('UPPER',
              'COLOUR').  In  default  mode    (SHDMOD ('LOWER', 
              'COLOUR'),  the cells  below  the mimimum  of  the
              levels are filled with the lowermost colour of the
              colour bar,  the  cells  above  the maximum of the
              levels are filled with the uppermost colour of the
              colour bar.  The plotting  of this regions can  be
              suppressed with the statement CALL SHDMOD ('NONE',
              'CELL').  
Name: CONFLL  25
The routine CONFLL plots filled contours  from triangulated data
that can be calculated by the routine TRIANG from a set of irre-
gularily distributed data points.
The call is:  CALL CONFLL (XRAY, YRAY, ZRAY, N, I1RAY, I2RAY,
                        I3RAY, NTRI, ZLVRAY, NLEV)    level 2, 3
         or:  void confll (float *zray, float *yray, 
                 float *zray, int n, int *i1ray, int *i2ray,
                 int *i3ray, int ntri, float *zlvray, int nlev);
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.
ZLVRAY        is an array containing the levels. 
NLEV          is the number of levels.
Name: CONPTS  25
The routine  CONPTS  generates  contours  without  plotting.
Multiple curves can be returned for one contour level.
The call is:  CALL CONPTS (XRAY, N, YRAY, M, ZMAT, ZLEV, XPTRAY,
                           YPTRAY, MAXPTS, IRAY, MAXCRV, NCURVS)
                                                level 0, 1, 2, 3
         or:  void conpts (float *xray, int n, float *yray,
                           int m, float *zmat, float zlev, 
                           float *xptray, float *yptray,
                           int maxpts, int *iray, int maxcrv,
                           int *ncurvs);
XRAY          is an array containing X-coordinates.
N             is the dimension of XRAY.
YRAY          is an array containing Y-coordinates.
M             is the dimension of YRAY.
ZMAT          is  a matrix  of the  dimension (N, M)  containing
              function values.
ZLEV          is a function value  that defines the contour line
              to be calculated. 
XPTRAY,       are  returned  arrays  containing  the  calculated
   YPTRAY     contour. The arrays can contain several curves.
MAXPTS        is the maximal number of points that can be passed
              to XPTRAY and YPTRAY.
IRAY          is a returned integer array that contains the num-
              ber of points for each generated contour curve.
MAXCRV        is the maximal  number  of entries that can be
              passed to IRAY.
NCURVS        is the returned number of generated curves.
Name: TRIPTS  25
The routine  TRIPTS  generates  contours  from triangulated data
without plotting.  Multiple curves  can be returned for one con-
tour level.
The call is:  CALL TRIPTS (XRAY, YRAY, ZRAY, N, I1RAY, 
                           I2RAY, I3RAY, NTRI, ZLEV,
                           XPTRAY, YPTRAY, MAXPTS, IRAY,
                           MAXCRV, NCURVS)      level 0, 1, 2, 3
         or:  void tripts (float *xray, float *yray, 
                     float *zray, int n, int *i1ray, int *i2ray,
                     int *i3ray, int ntri, float zlev, 
                     float *xptray, float *yptray,
                     int maxpts, int *iray, int maxcrv,
                     int *ncurvs);
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.
ZLEV          is a function value  that defines the contour line
              to be calculated. 
XPTRAY,       are  returned  arrays  containing  the  calculated
   YPTRAY     contour. The arrays can contain several curves.
MAXPTS        is the maximal number of points that can be passed
              to XPTRAY and YPTRAY.
IRAY          is a returned integer array that contains the num-
              ber of points for each generated contour curve.
MAXCRV        is the maximal  number  of entries that can be
              passed to IRAY.
NCURVS        is the returned number of generated curves.
Name: LABCLR  20,21,25
The routine LABCLR defines the colour of contour labels.
The call is:  CALL LABCLR (NCLR, 'CONTUR')         level 1, 2, 3
         or:  void labclr (int nclr, "CONTUR");
NCLR          is a colour number between  -1 and 255.  If NCLR =
              -1,  the contour labels  will be plotted  with the
              current  colour.
                                              Default: NCLR = -1
Name: CONLAB  25
The routine CONLAB defines a character string which will be used
for labels  if the routine  LABELS  is called with the parameter
'CONLAB'.
The call is:  CALL CONLAB (CLAB)                   level 1, 2, 3
         or:  void conlab (char *clab);
CLAB          is a character string containing the label.
                                            Default: CLAB = ' '.
Name: CONMOD  25
The routine CONMOD modifies the appearance of contour labels. By
default,  DISLIN suppresses the plotting of labels at a position
where the contour is very curved.  To measure the curvature of a
contour for an interval, DISLIN calculates the ratio between the
arc length and the length of the straight line  between the  in-
terval limits. If the quotient is much greater than 1,  the con-
tour l ine is very curved in that interval.
The call is:  CALL CONMOD (XFAC, XQUOT)            level 1, 2, 3
         or:  void conmod (float xfac, float xquot);
XFAC          defines the length of intervals (>= 0). The curva-
              ture of contours  will be tested  in intervals  of
              the  length  (1 + XFAC) * W  where W  is the label
              length.
XQUOT         defines an  upper limit  for the  quotient  of arc
              length and length of the straight line  (> 1).  If
              the quotient is greater than  XQUOT,  the plotting
              of labels will be suppressed  in the tested inter-
              val.
                                            Default: (0.5, 1.5).
Name: CONGAP  25
The routine  CONGAP  defines the distance  between contour lines
and labels.
The call is:  CALL CONGAP (XFAC)                   level 1, 2, 3
         or:  void congap (float xfac);
XFAC          is a  real number used  as a  scaling factor.  The
              distance between contour lines  and labels  is set
              to  XFAC * NH  where  NH is the current  character
              height.
                                            Default: XFAC = 0.5.
Name: SHDMOD  25,23
The routine SHDMOD defines flat or smooth shading  for surfaces,  
or an algorithm  used for contour filling.
The call is:  CALL SHDMOD (COPT, CKEY)             level 1, 2, 3
         or:  void shdmod (char *copt, char *ckey);
CKEY          is a character  string  containing one of the fol-
              lowing keywords:
 = 'CONTUR'   defines  the algorithm  used for  contour filling.
              COPT  can  have  the  values 'CELL' and 'POLY'. 
              The default value is COPT = 'CELL'.
 = 'CELL'     modifies  the cell  filling  algorithm.  COPT  can
              have  the  values  'BOTH',  'UPPER',  'LOWER'  and 
              'NONE'.  If COPT =  'NONE',  the  filling  of  the
              regions  below  and  above  the  level limits  are
              suppressed. If COPT = 'UPPER',  the filling of the
              region  below the  lowermost  level is suppressed.  
              COPT = 'LOWER' means that the filling of the regi-
              on above the uppermost level is suppressed. By de-
              fault, both regions described above are filled. 
 = 'COLOR'    modifies  the calculation of colours for cell fil-
              ling. COPT can have the values  'LOWER',  'MIDDLE'
              and 'UPPER'.  For COPT = 'LOWER',  the lower value
              of  two  neighbouring  levels  is used  for colour 
              calculation, for  COPT = 'UPPER', the  upper value
              of two neighbouring levels is used, and for COPT =
              'MIDDLE', the mean value of the two levels is used
              for  colour  calculation.  The  default  value  is 
              COPT = 'LOWER'.
 = 'SURFACE'  defines flat or smooth shading for surfaces.  COPT
              can have the values  'FLAT' and 'SMOOTH'.  The de-
              fault value is COPT = 'FLAT'.
Name: CONCLR  25
The routine CONCLR defines colours for filled contour lines.
The call is:  CALL CONCLR (NCRAY, N)               level 1, 2, 3
         or:  void conclr (int *ncray, int n);
NCRAY         is an integer array containing colour numbers.
N             is the number of entries in NCRAY.
