DI-3000 is an integrated system of graphics software tools. DI-3000 is implemented as a library of FORTRAN-callable subroutines, written in ANSI Fortran for use with Fortran 77 applications. An application program calls DI-3000 subrouttines to generate graphics images on one or more graphics dipslay devices.
Although you can
compile your DI-3000 programs when working on any terminal, you must be on an X
terminal or working in an xterm window to run the
programs.  
DI-3000 is licensed for all of the University's Solaris systems.
DI-3000 is available on Strauss. This document requires that you are working on an X terminal or an xterm window.
To use DI-3000, you must first set several UNIX environment variables. These settings may adversely interact with settings needed for other UNIX applications. The instructions below provide a strategy for avoiding these interactions.
You start a new shell before you use DI-3000, modify the environment, run DI-3000, and exit the shell before working with other software. You can start a new shell either by opening a new window on an X terminal or by issuing the UNIX csh command. These instructions assume that you are using the C shell (csh), which is the default for University of Delaware users.
csh
setenv PVI_ROOT /opt/lib/pvi
setenv PATH ${PATH}:/opt/lib/pvi/bin
setenv LD_LIBRARY_PATH /opt/X11R5/lib:/opt/lib:${PVI_ROOT}/lib:/opt/SUNWspro/lib
setenv PVI_DEV_1 x11
setenv PVI_LINK dynamic
di3000 -o filename filename.f
filename
csh
or by opening a new window on the X terminal.
PROGRAM POLAR
C
C ***** This is an example program in Chapter 3 of the DI-3000 User's
C ***** Guide. It demonstrates the conversion routines using JURTOW,
C ***** JUPOCA, and JXPOLR. It produces a four quadrant polar axis
C ***** with cosine data displayed.
C
INTEGER J, NUMPTS
REAL TWOPI, ANGINC, WMIN, WMAX
REAL RADIUS(100), THETA(100), XDAT(100), YDAT(100)
REAL WCXDAT(100), WCYDAT(100)
REAL RWXRNG(2), RWYRNG(2), WCRNG(2), RNGRNG(2)
C
DATA NUMPTS /100/
C
C ***** Initialize DI-3000 and device 1, and select device 1.
C
CALL JBEGIN
CALL JDINIT (1)
CALL JDEVON (1)
C
C ***** Define square window with convenient dimensions.
C
CALL JWINDO (-1200.0, 1200.0, -1200.0, 1200.0)
C
C ***** Define polyline attribute table index 1 as a solid, thin,
C ***** green line. Define polyline attribute table index 2 as a
C ***** dotted, thin, yellow line. Define polyline attribute table
C ***** index 3 as a dashed, thin, red line.
C
CALL JSTBPL (1, 0, 0, 2, 0)
CALL JSTBPL (2, 2, 0, 3, 0)
CALL JSTBPL (3, 1, 0, 1, 0)
C
C ***** Calculate angle increment for 100 points to be generated.
C
TWOPI = 2.0 * 3.141592654
ANGINC = TWOPI / FLOAT(NUMPTS)
C
C ***** Loop to generate 100 polar points as RADIUS/THETA pairs.
C
DO 1000 J=1, NUMPTS
THETA(J) = J * ANGINC
RADIUS(J) = COS (2.0 * THETA(J))
01000 CONTINUE
C
C ***** Convert polar data points into Cartesian data points.
C
CALL JUPOCA (RADIUS, THETA, NUMPTS, XDAT, YDAT)
C
C ***** Use JUFRNG to set the minimum and maximum Cartesian data
C ***** values. Set the world coordinate boundaries, and convert
C ***** the X and Y Cartesian data values into their world coordinate
C ***** equivalents.
C
CALL JUFRNG (XDAT, NUMPTS, 0, RWXRNG, WMIN, WMAX)
CALL JUFRNG (YDAT, NUMPTS, 0, RWYRNG, WMIN, WMAX)
WCRNG(1) = -1000.0
WCRNG(2) = 1000.0
CALL JURTOW (RWXRNG, WCRNG, XDAT, NUMPTS, 0, WCXDAT)
CALL JURTOW (RWYRNG, WCRNG, YDAT, NUMPTS, 0, WCYDAT)
C
C ***** Define ring range and horizontal radial axis world
C ***** coordinate endpoints.
C
RNGRNG(1) = 0.0
RNGRNG(2) = 1.0
WCRNG(1) = 0.0
WCRNG(2) = 1000.0
C
C ***** Open temporary segment, define and display polar axes,
C ***** set current polyline attributes to polyline attribute
C ***** table index 3, move to first data point, and plot data
C ***** as a polyline.
C
CALL JOPEN
CALL JXPOLR (WCRNG, 0.0, RNGRNG, 0.2, 4, 2, 0, 1, 2)
CALL JSCATT (1, 3)
CALL JMOVE (WCXDAT(1), WCYDAT(1))
CALL JPOLY (WCXDAT, WCYDAT, NUMPTS)
CALL JCLOSE
C
C ***** Wait for user response.
C
CALL JPAUSE(1)
C
C ***** Terminate device and DI-3000.
C
CALL JDEVOF (1)
CALL JDEND (1)
CALL JEND
STOP
END
di3000 -o example example.f
example
The command really is "di3000". However, you must be on Strauss to use it. In addition, you must set up your working environment for DI-3000 before typing the di3000 command. See the section Setting the DI-3000 Working Environment for details.
You have not set up your working environment completely for DI-3000, see section Setting the DI-3000 Working Environment.
If you need help quickly, call the University of Delaware's IT Help Center at 831-6000 between 8 a.m. and 5 p.m. Monday through Friday. Or you can submit a question via a web request form or e-mail.