# PGPLOT Module: PGCONS -- contour map of a 2D data array (fast algorithm)

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.