next up previous contents index
Next: SUBROUTINE GLPLOT Up: MASTER Subroutines Previous: SUBROUTINE CVAX3D

SUBROUTINE CVAX3DX

   CVAX3DX plots a 3-d surface with hidden lines removed using  PLT3D to produce a mesh surface or  HLT3D to produce a 2-d histogram with an optional contour plot made  GCONTR and plotted on a plane paralell to the surface plane. Axes and a back panel can be optionally plotted. Optionally, a path surface may be plotted which connects the surface and contour plots over a users specified path. The 3d surface is plotted in a manner similar to MVAX3DX. The visible upper side of the surface and the visible lower side of the surface can be optionally shown using different colors and line types.  

Origin of the plot is in the upper-left corner. The x axis runs left to right along the plot bottom. The y axis is plotted as a vertical displacement offset by the z axis value. The z axis appears to point out of the screen. The contour plot is plotted below the surface with a user-specified vertical spacing. The contour plot plane is plotted paralell to the z=0 plane of the surface with the (i,j) indicies of the surface and contour plot aligned vertically. The user may specify a "path" using "pen" motions. The path is plotted as a curve along the surface and the contour plot plane with vertical lines at the corresponding indicies. No hidden line removal is used for the path. The path permits the user to specify a cut plane to enhance the interpretation of the plot. The path is specified as a sequence of pen motion commands and index points of the form,

        ip(1) = 1st path command
        ip(2) = 1st i index
        ip(3) = 1st j index
        ip(4) = 2n path command
        ip(5) = 2nd i index
        ip(6) = 2nd j index
        ... etc.
Path commands are interpreted according to:
        path command      action
       ______________    ___________________________

            0             end of path specification
                           (indicies ignored)
            3             start path at these indicies
            2             continue path though indicies
The path specificiation should start with a path command of 3 and end with 0. Note that several paths can be specified by using several path command 3's.

CVAX3DX contains an internal working storage array for use by GCONTR and PLT3D. The buffer length is sufficient for most surfaces. However, for very complex surfaces the buffer length may be exceeded. When this occurs an error message is written to the terminal and the routine terminates.

CALL CVAX3DX(d,ndx,ndz,nx,nz,a,b,xh,yh,zh,iflag,
               iax,ds,nc,cv,icl,nm,il,ip,
               <xt,nxt,xs,xe,xap,tsx,fdx,
                yt,nyt,yap,tsy,fdy,
                zt,nzt,zs,ze,zap,tsz,fdz,<dm,dx<,ic>>>)

d        (R): array of y values dimensioned d(ndx,ndz)
ndx,ndz  (I): x and z dimensions of d array
nx,nz    (I): x and z sizes of surface to plot d array
a        (R): angle of x axis from horizontal 0-85 degrees
b        (R): angle of z axis from horizontal 0-90 degrees
              note: origin (1,1) is in upper-left corner
                    x axis runs left-to-right
                    y axis runs down-to-up
                    z axis appears to run outof page screen but
                        is angled to the right
xh,yh,zh (R): length of each axis
iflag    (I): option flag
              < 0 : do not close LONGLIB after plotting
              = 0 : close LONGLIB--no plot produced
              > 0 : close LONGLIB after plotting
(magnitude) > 10000 : do not initialize LONGLIB before plotting
 (1's digit)   = 2 : use color array (need all parameters)
               = 1 : do not use color array
 (10's digit)  = 0 : plot surface as a mesh (PLT3D)
               = 1 : plot surface as 2-d historgram (HLT3D)
 (100's digit) = 0 : Ask which screen device to use
              <> 0 : Screen Device Number (see FRAME)
iax   (I): axis format control
           < 0 : plot axis, using input scale factors dm and dx
           = 0 : do not plot axis, axis parameters (xt...dx) not used
                 scaling derived from d array is used
           > 0 : plot axis, using scaling derived from d array, only
                 axis parameters xt thru ze accessed.
 (1's digit)   = 1 : plot actual max/min or input values for Y axis
               = 2 : plot smoothed values for Y axis
 (10's digit)  = 0 : plot contour, surface axes with back panel
               = 1 : plot contour, surface axes w/o back panel
               = 2 : plot contour axes w/o surface axes, back panel
               = 3 : plot surface axes w/o back panel, contour axes
               = 4 : plot surface axes, back panel w/o contour axes
 (100's digit) = 0 : use default axis type
               = 1 : use input AXIS3 parameters
ds    (R): vertical spacing between contour plane and minimum
           value of d plane
nc    (I): number of contours
           < 0 : iabs(nc) contours plotted, the (j)th contour
                 is (max(a)-min(a))/(iabs(nc)-1). values used
                 are returned in cv
           > 0 : contours specified in cv used
cv    (R): contour level array dimensioned dv(iabs(nc)
icl   (I): contour labeling option
           < 0 : label with contour value (number with n digits
                 to the right of the decimal point)
           = 0 : no labels on contours
           > 0 : label contours with ASCII characters (nl <= 26)
nm    (I): minimum line segments before contour labeled
           < 0 : line type array used
           > 0 : line type array not used
il    (I): array of line types dimensioned il(iabs(nc)+2)
           il(1) = underside of surface
           il(2) = path line
           il(3) = contour line 1
           il(4) = contour line 2
             ...   (solid line type on return)
ip    (I): path specification array (see notes above)
           if ip(1) = 0, remainder of array ignored
(NOTE: following optional axis paramters are used only if
       iax<0 or mod(iflag,10)=1)
xt    (C): title of x axis (width)
nxt   (I): number of characters in xt
           = 0 : no axis plotted
           > 0 : normal
xs,xe (R): starting and ending values displayed on x axis
xap   (R): axis tick pattern (see AXIS3)
tsx   (R): size of title and numbers on x axis
           < 0 auto exponent scaling (x10 to power) disabled
           > 0 auto exponent scaling (x10 to power) enabled
fdx   (R): axis number label format (see AXIS3)
yt    (C): title of y axis (height)
nyt   (I): number of characters in yt
           = 0 : no y axis plotted
           > 0 : normal
yap   (R): axis tick pattern (see AXIS3)
tsy   (R): size of title and numbers on x axis
           < 0 auto exponent scaling (x10 to power) disabled
           > 0 auto exponent scaling (x10 to power) enabled
fdy   (R): axis number label format (see AXIS3)
zt    (C): title of z axis (depth)
nzt   (I): number of characters in zt
           = 0 : no z axis plotted
           > 0 : normal
ze,ze (R): starting and ending valued displayed on z axis
zap   (R): axis tick pattern (see AXIS3)
tsz   (R): size of title and numbers on x axis
           < 0 auto exponent scaling (x10 to power) disabled
           > 0 auto exponent scaling (x10 to power) enabled
fdz   (R): axis number label format (see AXIS3)
(NOTE: the following are accessed only if iax<0 or mod(iflag,10)=1)
dm,dx (R): minimum and maximum scale values for d array
ic    (I): color list
           ic(1) : color for axis lines
           ic(2) : color for axis numbers
           ic(3) : color for axis titles
           ic(4) : color for axis exponents
           ic(5) : color for upper surface
           ic(6) : color for lower surface
           ic(7) : color for contour 1
           ic(8) : color for contour 2
            ...        ...
                  (color for last contour on return)



next up previous contents index
Next: SUBROUTINE GLPLOT Up: MASTER Subroutines Previous: SUBROUTINE CVAX3D



David Long
Wed Jun 12 10:34:11 MDT 1996