# PGPLOT Module: PGCONF -- fill between two contours

SUBROUTINE PGCONF (A, IDIM, JDIM, I1, I2, J1, J2, C1, C2, TR)

INTEGER IDIM, JDIM, I1, I2, J1, J2

REAL A(IDIM,JDIM), C1, C2, TR(6)

Shade the region between two contour levels of a function defined on

the nodes of a rectangular grid. The routine uses the current fill

attributes, hatching style (if appropriate), and color index.

If you want to both shade between contours and draw the contour

lines, call this routine first (once for each pair of levels) and

then CALL PGCONT (or PGCONS) to draw the contour lines on top of the

shading.

Note 1: This routine is not very efficient: it generates a polygon

fill command for each cell of the mesh that intersects the desired

area, rather than consolidating adjacent cells into a single polygon.

Note 2: If both contours intersect all four edges of a particular

mesh cell, the program behaves badly and may consider some parts

of the cell to lie in more than one contour range.

Note 3: If a contour crosses all four edges of a cell, this

routine may not generate the same contours as PGCONT or PGCONS

(these two routines may not agree either). Such cases are always

ambiguous and the routines use different approaches to resolving

the ambiguity.

**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).

C1, C2 (input) : contour levels; note that C1 must be less than C2.

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.