%N pgcons %F $MIR/src/pgcons.f
%D Contour map of a 2D data array (fast algorithm)
%B
      SUBROUTINE PGCONS (A, IDIM, JDIM, I1, I2, J1, J2, C, NC, TR)
      INTEGER IDIM, JDIM, I1, I2, J1, J2, NC
      REAL    A(IDIM,JDIM), C(*), TR(6)

 Draw a contour map of an array. The map is truncated if
 necessary at the boundaries of the viewport.  Each contour line is
 drawn with the current line attributes (color index, style, and
 width).  This routine, unlike PGCONT, does not draw each contour as a
 continuous line, but draws the straight line segments composing each
 contour in a random order.  It is thus not suitable for use on pen
 plotters, and it usually gives unsatisfactory results with dashed or
 dotted lines.  It is, however, faster than PGCONT, especially if
 several contour levels are drawn with one call of PGCONS.

 Arguments:
  A      (input)  : data array.
  IDIM   (input)  : first dimension of A.
  JDIM   (input)  : second dimension of A.
  I1,I2  (input)  : range of first index to be contoured (inclusive).
  J1,J2  (input)  : range of second index to be contoured (inclusive).
  C      (input)  : array of contour levels (in the same units as the
                    data in array A); dimension at least NC.
  NC     (input)  : number of contour levels (less than or equal to
                    dimension of C). The absolute value of this
                    argument is used (for compatibility with PGCONT,
                    where the sign of NC is significant).
  TR     (input)  : array defining a transformation between the I,J
                    grid of the array and the world coordinates. The
                    world coordinates of the array point A(I,J) are
                    given by:
                      X = TR(1) + TR(2)*I + TR(3)*J
                      Y = TR(4) + TR(5)*I + TR(6)*J
                    Usually TR(3) and TR(5) are zero - unless the
                    coordinate transformation involves a rotation
                    or shear.
