PLOTWORKS, Inc.]    PLOT88
 


 HOME

 TECHNICAL
 SPECIFICATIONS

 WHAT'S NEW!

 SELECTING 
 LIBRARY OR 
 SOURCE

 PURCHASING 
 THE PLOT88 
 LIBRARY

 PURCHASING
 THE PLOT88 
 SOURCE  

 CONTACT
 PLOTWORKS  Inc.
 

3.62 CCNTUR Subroutine

The CCNTUR subroutine converts the grid of control points into a set of contours and draws the contours and/or fills the surface area between the contour lines with a color pattern.  The drawing is made  in two dimensions in the area shown in Figure 6 or three dimensions in the area as shown in figure 8. The grid to be contoured ( z) can be generated from random control points using ZGRID or DGRID. The contour levels drawn can be determined by a prior call to ZLEVEL. No contours will be drawn in an area of the grid set to "undefined"(1.0E35). The contours are drawn in two or three dimensions depending on the value of iform in the last call to DISP3D (Section 3.56).

This function is similar to ZCNTUR with the addition of the color filled surface patterns.  CCNTUR is based on the ACM algorithm 671 (FARB-E-2D) with extensions for bad value processing and 3D representation.

Calling Sequence:

    CALL CCNTUR ( z, nxsize, nysize, nx, ny, xlplot, ylplot, xhplot,
                      yhplot, zlev, ldig, lwgt, nlev, hgt, icol, mode, xtmp, ytmp)

Parameters:

Parameter     Type     Value     Description

z                         real                            two-dimensional array of control
                          array                          points that is to be contoured.

nxsize                integer      GE3            number of rows in z as dimensioned
                                                            in the main program. See Section 2.5.

nysize                integer     GE 3             number of columns in z as
                                                           dimensioned in the main program.

nx                      integer      GE3           number of rows in z that are
                                    LE nxsize         actually used.

ny                      integer     GE 3             number of columns in z that are
                                      LEnysize         actually used.

xlplot, ylplot      real                             for two-dimensional drawings,
                                                            (xlplot,ylplot) defines the
                                                            map in inches.

                                                            for three-dimensional drawings,
                                                            (xlplot,ylplot) defines the
                                                            lower left hand corner of the
                                                            map in world units. Usually
                                                            (xlow,ylow) as passed to ZGRID
                                                             is used (see figures 5 and 8).

xhplot, yhplot    real                             for two-dimensional drawings,
                                                            (xhplot,yhplot) defines the
                                                            upper right hand corner of the
                                                            map in inches.

                                                            for three-dimensional drawings,
                                                            (xhplot,yhplot) defines the
                                                            upper right hand corner of the
                                                            map in world units. Usually
                                                           (xhigh,yhigh) as passed to ZGRID
                                                            is used (see figures 5 and 8).

zlev                    real                            array containing the contour
                          array                          levels to be drawn in world units.

ldig                    integer                        array containing the annotation
                          array                          control information for each level.
                                                            Included for compatibility with ZCNTUR
                                                            Not currently used.

lwgt                       integer                    array containing the line type and
                              array                      color index for each contour level.
                                                            NEWPEN is called to set the line width
                                                            of the contour. COLOR is called to
                                                            set the color for the contour. The
                                                            line width and color of the last
                                                            contour will remain in effect after
                                                            CCNTUR is complete. Only positive
                                                             pen numbers are supported: operator
                                                             intervention is not permitted. See
                                                            COLOR (Section 3.37) for a description
                                                             of negative pen numbers.

                                           ici*100+ inp   Contour is drawn with a solid
                                                                  line. The line has a width of inp
                                                                  (see NEWPEN, Section 3.10) and a
                                                                 color index of ici (see COLOR,
                                                                 Section 3.37).

                                        -(ici*100+ inp)     Contour is drawn as a dashed line
                                                                     using the previous dash setting
                                                                     in STDASH (Section 3.4). The line
                                                                     has a width of inp and a color
                                                                     index of ici.

nlev                   integer        > 0          number of contour levels in zlev, ldig ,icol, &
                                LE 100       lwgt. Note: This size is larger that allowed for
                                                           ZCNTUR and ZCSEG. See section 2.10.

hgt                     real           >0.0         height of contour annotation in
                                                            inches. Not currently used.  Included
                                                            for compatibility with ZCNTUR.

icol              integer                               integer array of surface fill color and fill pattern.
                   array                                 icol(i) = fill color*100 + fill pattern
                                                                      = -1000 for "invisible" color ( not filled).

                                                            This array must be dimensioned (nlev+1) elements.

                                                           See STFILL for fill pattern available for the output device.
                                                           See COLOR  for available colors for the output device.

                                                          icol(i) is used for all data of array between
                                                                     zlev(i-1) and zlev(i).
                                                          icol(1) is used for all data of array z less that zlev(1).
                                                          icol(nlev+1) is used for all values above  zlev(nlev).

mode                integer                         type of drawing
                                          0               draw the surface filled color patterns based on icol.
                                          1                draw contour lines only  based on lwgt ( this is like
                                                            ZCNTUR) except that no contour annotation is drawn.
                                          2                draw surface filled color patterns and contour lines.

xtmp                 real                              temporary work array dimensioned NXSIZE elements.
                        array

ytmp                 real                              temporary work array dimensioned NYSIZE elements.
                        array

Note:

Each contour level has the following information:

For the ith contour level, i = 1 to nlev;

contour level value in zlev(i)
contour annotation in ldig(i)  [ not currently used]
contour line type in lwgt(i)
contour fill pattern and fill color in icol(i)

If more than 100 contours are desired on 1 drawing, make multiple calls to CCNTUR, changing the contour levels in zlev each time.

See Also:

ZGRID, DGRID, DISP3D(3D only), SCAL3D(3D only), ZCSEG, ZCNTUR, CLEGND, examples 4.10 and 4.11.

Example:

These examples use the following array values.  The only difference is the value of the mode parameter (0,1, or 2).

        NLEV = 5

        ZLEV(1) = 11500.0
        ZLEV(2) = 12000.0
        ZLEV(3) = 12500.0
        ZLEV(4) = 13000.0
        ZLEV(5) = 13500.0

        ICOL(1)= 3
        ICOL(2)= 6
        ICOL(3)= 1
        ICOL(4)= 4
        ICOL(5)= 8
        ICOL(6)= 1    ( values greater that ZLEV(5)= 13500.0
                        displayed as fill pattern 1 = solid )

        LDIG(1) = 1
        LDIG(2) = 1
        LDIG(3) = 1
        LDIG(4) = 1
        LDIG(5) = 1

        LWGT(1) = 1
        LWGT(2) = 4    ( contour line 4 times normal width)
        LWGT(3) = 1
        LWGT(4) = -4   ( dashed contour line)
        LWGT(5) = 1
 

The output of CCNTUR is shown on the left; the output of CLEGND is shown on the right below.