next up previous contents index
Next: SUBROUTINE MVAX5D Up: MASTER Subroutines Previous: SUBROUTINE MVAX3D

SUBROUTINE MVAX3DX

   MVAX3DX is a 3-d surface plotting routine which plots a 3-d surface as mesh with hidden lines removed using the  PLT3D routine or a 2-d histogram with hidden lines removed using the  HLT3D routin. Axes and a axis back panel can be optionally plotted as well. The upper side of the visible surface can be shown with optional side plates on the mesh surface. If the side plates are not used or for histogram plotting, the lower side of the visible surface may be displayed in different colors or using a dotted line.

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.

MVAX3DX contains an internal working storage array for use by PLT3D and HLT3D. 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 MVAX3DX(d,ndx,ndz,nx,nz,a,b,xh,yh,zh,iflag,iax,
               <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 : mesh surface w/side panels, lower side of
                     surface not shown
               = 1 : mesh surface w/no side panels, lower side of
                     surface shown using dotted lines
               = 2 : mesh surface w/no side panels, lower side of
                     surface shown using solid lines
               = 3 : mesh surface w/no side panels, lower side of
                     surface not shown
               = 4 : histogram surface, lower side of surface
                     shown using dotted lines
               = 5 : histogram surface, lower side of surface
                     shown using solid lines
               = 6 : histogram surface, lower side of surface
                     shown using solid lines
 (100's digit) = 0 : Ask which screen device to use
              <> 0 : Screen Device Number (see FRAME)
iax   (I): axis format control
           < 0 : plot axes, using input scale factors dm and dx
           = 0 : no axes plotted, parameters (xt...dx) not used.
                 scaling derived from d array is used
           > 0 : plot axes, use 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 : Use default axis type
               = 1 : Use input AXIS3 parameters
 (100's digit) = 0 : Do not plot backplane
               = 1 : Plot backplane
(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 optional parameters are accessed 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 plot surface (return)



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