You are on page 1of 68

RD-A173 643 GUIDE TO USING DISPLAY INTEGRATED SOFTWARE SYSTEM AD 1/t

PLOTTING LANGUAGE (DISSPLA)(U) DAVID W TAYLOR NAVAL


SNIP RESEARCH AND DEVELOPMENT CENTER BET K G BRADY

EhEEE//EEEliE
UNCLASSIFIED 81 MAY 86 DTNSRDCiCMLD-6-1i F/G 9/2 ML

llIlEEEEEEEEEEE
IIIIIIlIIIIlIIII.fl
EEEEElllEEEEllE
lllllllEllEE
'IU2__
.. 82.
~~l
a. k 13 .2

Ail5 I L

lill **. UOFSADAD4(

Jill'
11.25~ki ____
illy.4
Davi W.Taylor NvlShip Research and Development Center
H- Bethesda, MID 20084-5000

CMLD-86-18 May 1986

Computation, Mathematics & Logistics


4j Departmental
0
'-4

0) GUIDE TO USING
>4 DISPLAY INTEGRATED SOFTWARE
SYSTEM AND PLOTTING LANGUAGE (DISSPLA)

44) KEVIN G. BRADY

.4-

'V

U) APPROVED FOR PUBLIC RELEASE:


CS DISTRIBU1TION UNLIMITED

l~a..I
COMMANDER 00
I
TECHNICAL DIRECTOR 01

OFFICER IN CHARGE OFFICER IN CHARGE


CARDEROCK 05 04 ANNAPOLIS

SHIP SYSTEMS INTEGRATION PROPULSION AND AUXILIARY


DEPARTMENT 12 27 SYSTEMS DEPARTMENT

SHIP PERFORMANCE SHIP MATERIALS ENGINEERING


DEPARTMENT 15 28 DEPARTMENT

AVIATION AND SURFACE


EFFECTS DEPARTMENT 16

STRUCTURES DEPARTMENT 17 l

COMPUTATION, MATHEMATICS
& LOGISTICS DEPARTMENT 18

SHIP ACOUSTICS DEPARTMENT 19

CENTRAL INSTRUMENTATION
DEPARTMENT 29

DESTRUCTION NOTICE - For classified documents, follow the procedures in DOD


5220.22M, Industrial Security Manual, Section 11-9, or DOD 5200.1-R, Information
Security Program Regulation, Chapter IX. For unclassified, limited documents,
destroy by any method that will prevent disclosure of contents or reconstruction of
the document.

NDW.I TNSROC 5402130 (Rev 4-86)

.,MNIM
,,, " , .- , '
M.ai
iTIFCLASSIFICATION OF THIS PAC~E l1 9 ,. Y j#
REPORT DOCUMENTATION PAGE
Is REPORT SECURITY CLASSIFICATION 1b. RESTRICTIVE MARKINGS
Unclassified
Za SECURITY CLASSIFICATION AUTHORITY 3 DISTRIBUTIONJ/AVAILABILITY OF REPORT
_____________________________ Approved for Public Release:
2b DECLASSIFICATION1/ OWNGRADING SCHEDULE Distribution Unlimited
4 PERFORMING ORGANIZATION REPORT NUJMBER(S) S MONITORING ORGANIZATION REPORT NUMBER(S)
CMLD-86-18

6a NAME OF PERFORMING ORGANIZATION


DTNSRDC, User Services j
6b OFFICE SYMBOL
(ifdpplicabej
7a. NAME OF MONITORING ORGANIZATION

6c ADDRESS (City, State, and ZIP Code) 7b. ADDRESS (City, State, and ZIP Code)

Bethesda, MD 20084-5000
8a NAME OF FUNDING /SPONSORING 8b. OFFICE SYMBOL 9. PROCUREMENT INSTRUMENT IDENTIFICATION NUMBER
ORGANIZATION OIf applicable)

8i ADDRESS (City. State, and ZIP Code) 10 SOURCE.OF FUNDING NUMBERS


PROGRAM IPROJECT ITASK IWORK UNIT
NO. INO No. ACCESSION NO
inlue
II IElasiictin)ELEMENT
Iecriy
11 t r (inlud Seurit Clssifcaton)(DISSPLA)
Guide to Using Display Integrated Software System and Plotting Lanu fIed

S12 PIRSONAL AUTHOR(S)


Brady, Kevin Gerard
13a TYPE OF REPORT 11b TIME COVERED 14. DATE OF REPORT (Year, Month, Day) S PAGE COUNT
IFROM_1/3/85 TO indef 1986, May n01 70
-Final
16 SUPPLEMENTARY NOTATION

17 COSATI CODES 18. SUBJECT TERMS (Continue on reverse if necessary and identity by block number)
FILD GRUP SUB-GROUP C,$ er DISSPLA CALLOMP
FIEL
GROP V PRoes S Tektronix Plotting
19 ABSTRACT 1Graphics NSB
19 ABTRACT(Continue on reverse if necessary and idetntify by block number)
This document contains a brief discussion and examples using
Display Integrated Software System and Plotting Language (DISSPLA)
at Central Computer Facility.

20 DISTRIUUTiON/AVAILASILiTY OF ABSTRACT 21 ABSTRACT SECURITY CLASSIFICATION


UUN(LASSIFIEOIUNLIMAITED 0 SAME AS APT 0 DTIC USERS Unclassified
S 2a. NAMVE Of RESPONSIBLE INDIVIDUAL 22b TELEPHONE (Include Area Codle) 22c OFFICE SYMBOL

DO FORM 1473, 84 MAR 83 APR edition may be used until exhsausted SECURITY CLASSIFICATION OF THIS PAGE
All other editions art obsolete

-w -p 'I
Table of Contents

Introduction................................................. 1

Conventions.................................................. 1

Devices..................................................... 2
Illegal Unit Numbers...................................... 3
Example 1................................................. 5
The Level Structure ......................................... 10
Example 2................................................ 13

Two Dimensional Graphing..................................... 14


Example 3............................................. 17
Example 4................................................ 21

Legends and Stories......................................... 22


Example 5............................................. 25
Example 6................................................ 27

Interpolation ............................................... 28
Example 7............................................. 31
Example 8............................................. 35
Post-Processor.............................................. 36
Example 9........................................... 37
3-Dimensional Plotting...................................... 38
Example 10............................................... 41
Example 11............................................... 45
Example 12............................................... 47

Graffiti Plots........................................ ...... 48


Example 13 ............................................... 51
Example 14............................................... 52

Character Sets.............................................. 53
Example 15 ............................................... 55

Instruction Alphabet........................................ 56
Example 16 ............................................... 59

A( i)

. - , . ** V"%
-1- DISSPLA

Introduction

This document is intended to give the user a basic


understanding ofDisplay Intearated,, oftware Systema nd lottina
Lanauace. All eiamples were taken from implernentatitns ft David
,Taylor Naval Ship R & D Center to show actual scientific uses.
All examples were run, unless specifically stated, on the
VAXcluster using version 9.2 of DISSPLA. This version will soon
be available on the CYBERs and aside from certain machine
dependencies, all examples will then run on the CYBERs. In
interactive examples, underlined commands are typed by the user.

Conventions

Throughout this document the following argument naming


conventions hold:

ARGUMENTS:
X, IX, LX - Refer to the X-axis
Y, IY, LY - Refer to the Y-axis
I, J, K, M. N - Integer Values
All Others - Real Values
L - String of text
RAY - Array of values

NOTATION:

- Within a program listing


are comments
(underline) - In examples are user type-ins

p/s - parameter setting

Accession For
NTIS GRA&I
DTIC TAB
Unannounced EZ]

(2
Justification

By
_Distribution/ . .. .E~t

AvsiLability Codes
Avail and/or
'
71 Special

A-I
-2- DISSPLA

Devices

The call to a device MUST be the first call in a DISSPLA


program. The following devices are currently active; Other
devices may be activated at the user's request, these calls are
supported by version 9.2 which is currently only on the
VAXcluster and should soon be on the CYBERs.

Tektronix 4000 Series:

CALL TK4006 ( icps )


CALL TK4OO ( icps
CALL TK4012 ( icps )
CALL TK4013 (icps
CALL TK4014 C icps, idevc )
CALL TK4015 (icps, idevc )
CALL TK4016 ( icps, idevc )
CALL TK4025
CALL TK4027
CALL TK4051 ( icps
CALL TK4052 (icps
CALL TK4054 ( icps, idevc )

CALL TEKALL ( imodel, icps, 0, idevc, 0

CALL PTEKAL { will prompt for all information

icps - Baud rate (30, 120, 240, 480, 960)

idevc - is 1 for high resolution (4096)


- is 0 for low resolution (1024)

Tektronix 4100 Series:

CALL TK41 ( IMODEL )

IMODEL - 4105, 4107, 4109, 4112, 4113, 4114, 4115, 4116

CALL PTK41 { will prompt for model number }

-5
-3- DISSPLA
0
DEC Terminals:

CALL REGIS ( ioptin, idevc )

ioptin - I ( VT125 )
- 2 ( VKIO0 )
- 3 (VT240, VT241 )
- 4 ( DEC PRO 350 )

idevc - 0 (Monochrome Monitor)


- 1 (Color Monitor )

CALL PREGIS [will prompt for information)

CALCOMP:

CALL CALCOMP (0, 0, 10)

The file CALCOMPOUT.DAT is created for processing to


tape using the procedure VSYS:CALCD2T on the VAX.

ei& The file TAPEIO is created for processing to tape


either of the CYBERs.
on

META FILE:

CALL COMPRS

The file DISPLOT.DAT is created for processing by the


Post-Processor on the VAX. (RUN VSYS:DISPOP)

The file PLFILE is created for processing by the


Post-Processor on either of the CYBERs. (DISPOST)

Illegal Unit Numbers

Unit Numbers used by DISSPLA which CANNOT be used in your


program:

31,32,33 Scratch files


90,91,93 Mapping and Landblanking
95 META file for COMPRS
96 Font files
97 Scratch file
10 CALCOMP file
-4- D1SSPLA

This is an example of running a DISSPLA program on the


VAXcluster.

PROGRAM EXAMPLE1 { This example is for the VAX I


DIMENSION X(10), Y(1O)
DATA Y /1, 2, 3. 4, 5, 6, 7, 8, 9, 1o/
DATA X /1, 2, 3, 4, 5, 6, 7, 8, 9, 1o/
CALL COMPRS
CALL BGNPL (0)
CALL TITLE ('This is a Simple GraphS', 100, 'X-AxisS. 100.
'Y-Axis$', 100, 6., 8.)
CALL GRAF (0., 1., 10., 0., 1., 10.)
CALL CURVE (X, Y, 10, 1)
CALL ENDPL (0)
CALL DONEPL
END

$ fortran myfile
$ dislink myfile
Other Libraries (y or n): n
$ run myfile

PLOTTING COMMENCING
...................

NO. OF FIRST PLOT 0

END OF DISSPLA 9.2 -- 894 VECTORS IN 1 PLOTS.


RUN ON 1/17/86 USING SERIAL NUMBER 3105 AT DTNSRDC VAX
PROPRIETARY SOFTWARE PRODUCT OF ISSCO, SAN DIEGO, CA.
403 VIRTUAL STORAGE REFERENCES; 5 READS; 0 WRITES.
$ run vsys:dispop
ENTER DEVICE TYPE .....

I-TEK 40xx, 2-CALCOMP 1051, 3-TEK 41xx, 4-REGIS (VT240), 5-PRINTER PLOT

ENTER MODEL NUMBER { Enter your device }


ENTER POST-PROCESSOR DIRECTIVES
<CR>
PLOT FILE GENERATED BY Kevin Brady
AT DTNSRDC VAX
ON JAN 17, 1986 8:46
-5- DISSPLA

Exaple I

Th 'us aS-ump~e Graph


0

2-

a I

0 1 1 S-1~k -
40 50 6. .0 90 1
!"'I 1. . 1 .0
-6- DISSPLA

This command procedure on the VAciuster will do the entire


process with no user interaction:

$ on error then exit


$ again:
$ if p1 .eqs. I'"then inquire p) "Filename"
$ 1 Keep prompting for filename
$ if pI .eqs. I..then goto again
$ fortran 'p1'
$ 1 libraries linked twice because of nowrap search
$ link 'p1',vsys:disintf/library,disspla/1Ebrary,-
disintf/library,disspla/library
$ run 'Pl'
$ run vsys:dispop
3
4105 {This line must be changed to your device
$exit
-7- DISSPLA

The sime program run interactively on either of the CYBERs to


create a CALCOMP plot :

PROGRAM EXAMPLE1
DIMENSION X(lO), Y(1O)
DATA Y /1, 2, 3, 4, 5, 6, 7, 8, 9, 10/
DATA X /1, 2, 3, 4, 5, 6, 7, 8, 9, 1o/
CALL COMPRS
CALL BGNPL (0)
CALL HEIGHT (0.2)
CALL TITLE ("THIS IS A SIMPLE GRAPH", 22, "X-AXIS", 6
"V-AXIS", 6, 6., 8.)
CALL GRAF (0., 1., 10., 0., 1., 10.)
CALL CURVE (X, Y. 10, 1)
CALL ENDPL (0) {Double quotes are }
CALL DONEP {required on CYBERs}
END

COMMAND-CONNECT,OUTPUT
COMMAND-ATTACH,INFILE,MYPLOT, ID-CAKB
AT CY- 001 SN-SYSSET
COMMAND-ATTACH,DISSPLA
PFN IS DISSPLA
AT CY- 006 SN-SYSSET1
COMMAND-REOUEST,TAPEI0,*PF
COMMAND-ATTACH,NSRDC
PFN IS NSRDC
AT CY- 105 SN-SYSSET1
COMMAND-LIBRARY,DISSPLA,NSRDC
COMMAND-FTN5,i-INFILE,L=O
56100 CM STORAGE USED.
0.020 CP SECONDS COMPILATION TIME.
COMMAND-LGO

PLOTTING COMMENCING
o...................

.....
DISSPLA VERSION 8.2 .....
NO. OF FIRST PLOT 0

END OF DISSPLA 8.2 -- 897 VECTORS GENERATED IN I PLOT FRAMES.


-ISSCO- 4186 SORRENTO VALLEY BLVD.,SAN DIEGO CALIF. 92121

DISSPLA IS A CONFIDENTIAL PROPRIETARY PRODUCT OF ISSCO AND ITS USE


IS SUBJECT TO A NONDISSEMINATION AND NONDISCLOSURE AGREEMENT.
NON-FATAL LOADER ERRORS - SEE MAP
END PLOTIT
61300 MAXIMUM EXECUTION FL..
0.132 CP SECONDS EXECUTION TIME.
-8- DISSPLA

COMMAND-RETURNDISSPLANSRDC
COMMAND-ATTACH,DISPOST
PFN IS DISPOST
AT CY= 007 SN=SYSSET1
COMMAND-LIBRARY,DISPOST
COMMAND-POP936

*** * * ** * * CALCOMP POST-PROCESSOR **********


INPUT DIRECTIVES { Input space then <CR> }

PLOT FILE GENERATED BY CAKBOE2 AT 10.05.27 ON O/17/86


1 THE NUMBER OF CALCOMP BLOCKS IN THIS FILE IS 3
1 PLOTS HAVE BEEN PROCESSED

......................... END OF POSTPROCESSOR .........................


END POP936
COMMAND-CATALOG,TAPE O, ID=CAKB
NEWCYCLE CATALOG
RP = 030 DAYS
CT ID= CAKB PFN=TAPEIO
CT CY= 002 00000016 PRUS $0000.04
/DAY
CT SN= SYSSET
COMMAND-
'IO
-9- DISSPLA

The following procedure, stored in the user's permanent file


PLOTIT, will let him view his output on a Tektronix terminal:

.PROC,PLOT IT.
ATTACH, INFl LE ,MYPLOT, ID-CAKB.
ATTACH,DISSPLA.
REQUEST,PLF ILE,*PF.
ATTACH, NSRDC.
LI BRARYDISSPLA,NSRDC.
FTN5, I-INF ILE,L-O.
LGO.
CATALOG,PLFILE, ID-CAKB.
RETURN,D ISSPLA.NSRDC.
ATTACH,DISPOST.
LIBRARY,DISPOST.
TEK300.
REVERT.

To execute type:

COMMAND-ATTACH,PLOT IT,IDinxxxx

COMMAND-PLOTIT

NOTE: Currently on the CYBERs there are two versions of the


Tektronix post-processor, the one attached above is used for
color plots and WILL NOT stop between plots if there are more
than one. To view multiple plots with a pause between each one,
the other version of the post processor must be used. Instead of
the "ATTACH,DISPOST" and "LIBRARY,DISPOST', MSFETCH the file
TEK300 ("MSFETCH,TEK300,UN-CSYS") and continue.
-10- DISSPLA

Level Structure

The axis system cannot be drawn until the sub-plot area and
physical origin are defined. Similarly, curves cannot be drawn
until the axis system is established. Thus, DISSPLA has a level
structure to ensure that all necessary information is present
during the construction of a plot. An error message is printed if
a routine is called at the wrong level.

The DISSPLA levels are:

0 - before device initialization

I - after device initialization

2 - after page border, physical origin, and subplot


area defined

3 - after axis system is defined

Subroutine Level Level


at after
call call

CALL DEVICE 0 1

CALL AREA2D (XAXIS, YAXIS) 1 2

CALL XNAME (LXNAME, YXNAME) 2 p/s

CALL YNAME (LYNAME, IYNAME) 2 p/s

CALL HEADIN (LHEAD, IHEAD, HTMULT, NLINES) 2,3 same

CALL GRAF (XORG, XSTP, XMAX, YORG, YSTP, YMAX) 2 3

CALL CURVE (XARAY, YARRAY, NPTS, IMARK) 3 same

CALL ENDPL (IPLOT) 2,3 1


CALL DONEPL 1 0

6&1
-11- DISSPLA

Subroutine Level Level


at after
call call

To change page size from 8.5 x 11 inch default:

CALL PAGE (XPAGE, YPAGE) 1 p/s

To position the physical origin:

CALL PHYSOR (XPHYS, YPHYS) 1 p/s

To re-position the origin relative to PHYSOR:

CALL OREL (XOREL, YOREL) 1 p/s

To end the plot and remain on same page:

CALL ENDGR (IPLOT) 2,3 1

To frame the subplot area:

CALL FRAME 2,3 same

To understand the concept of setting up the plot, consider


the following example. The page will be set to 24" X i1", and
will contain two subplots. The lower left corner of the first
plot is positioned at the point (3",2") by PHYSOR. AREA2D then
sets the current plotting area to 8" X 6". Now the plotting can
begin (although no plots are actually done in this example). The
first plot is then ended by ENDGR, which tells DISSPLA you are
done with the first plot but will remain on the same page to do
another plot. The lower left corner of the second plot is then
put at (13",2") by OREL (moved relative to previous origin).
AREA2D is called again to define the second plot area, and
plottiig could commence. This plot is ended by ENDGR again then
ENDPL terminates the plot on this page.
-12- DISSPLA

PROGRAM EXAMPLE2

CALL COMPRS { Level 0 to Level I )

CALL BGNPL (0)

CALL PAGE (24., 11.)

CALL PHYSOR (3., 2.)


CALL AREA2D (8., 6.) { Level 1 to Level 2 1

CALL FRAME

CALL HEADIN ('THIS IS SUBPLOT # W', 100, 3., 1)

CALL ENDGR (0) { Level 2 to Level 1


CALL OREL (10., 0.)

CALL AREA2D (8., 6.) { Level 1 to Level 2 1

CALL FRAME

CALL HEADIN ('THIS IS SUBPLOT # 2$', 100, 3., 1)

CALL ENDGR (0) { Level 2 to Level 1

CALL DONEPL { Level 1 to Level 0 1

END

NOTE: Programs are for VAXcluster only!


-13- 1SSPLA

Example 2

A-k

38 hSISUL~1T4BLPOe

isVern 1 IP
3-ter
-lieD DISSPLA

Two Dimensional Graphina

Once the subplot area has been defined, the next step is to
define the axis system. Below are some of the major routines,
refer to the User's Manual for a more complete description.

Subroutine Level Level


at after
call call

Primary graph setup routines:

CALL GRAF (XORG, XSTP. XMX, YORG, YSTP, YMX) 2 3


CALL XLOG (XORIG, XCYCLE, VORIG, YSTEP) 2 3
CALL YLOG (XORIG, XSTEP. YORIG, YSTEP) 2 3
CALL LOGLOG (XORIG, XCYCLE. YORIG, YCYCLE) 2 3
CALL POLAR (THEFAC, RSTEP, XDfST, YDIST) 2 3
CALL GRID (IXGRID, IYGRID) 3 Same

To position messages in INCHES:

CALL MESSAG (LMESS, IMESS, XPOS, YPOS) 2,3 Same

CALL REALNO (ANUM. IPLACE, XPOS, YPOS) 2,3 Same

'ALL INTNO (INUM. xPOS, YPOS) 2,3 Same

CALL VECTOR (XFROM, YFROM, XTO, YTO, IVEC) 2,3 Same

~To position messag. in DATA units:

CALL RLMESS (LMESS. IMESS, XVAL, YVAL) 3 Same


CALL RLREAL (ANUM. IPLACE. XVAL, YVAL) 3 Same

CALL RLINT (INUM. XVAL, YVAL) 3 Same


CALL RLVEC (EFROM, YFROM, XTO, YTO, IVEC) 3 Same
-15- DISSPLA

Now let us reconsider example #2 as it actually appaired when


ran. Example #3 is the same program with the sequence of commands
used to draw the vectors (with arrowheads) and the integer
distances included. It is actually three plots (the first two are
th . subplots, the third is the entire page) so that the vectors
can be placed around the subplot areas but not off of the page.
First the vector is drawn (in inches from the origin), then INTNO
places the value currently into the variable INUM (integer) at
the coordinates specified (in inches from the origin). Then
MESSAG is called to place the inch symbol (notice that 'ABUT' is
used for both coordinates) directly after the previous symbol it
just wrote, in this case directly after what INTNO wrote.

I.
-16- DISSPLA

PROGRAM EXAMPLE3 CALL VECTOR(4.,2.,4.,8.,3402)


CALL COMPRS INUM-6
CALL BGNPL (0) CALL INTNO(INUM,4.595.5)
CALL PAGE (24., 11.) CALL MESSAG('"l'2,'ABUT','ABUT')
CALL PHYSOR (3., 2.) CALL VECTOR(11.,4.,13.,4.,3402)
CALL AREA2D (8., 6.) INUM-2
CALL FRAME CALL INTNO(INUM,11.7594.5)
CALL HEADIN('THIS IS SUBPLOT # I$' CALL MESSAG('l'l,2,'ABUTl,'ABUTl)
.100, 3., 1.)
CALL ENDGR (0) CALL VECTOR(14.,2.,14.,8.,3402)
CALL OREL (10., 0.) INUM-6
CALL AREA2D (8., 6.) CALL INTNO(INUM,14.5.5.5)
CALL FRAM4E CALL MESSAG('"l'.2,'ABUT'.'ABUT')
CALL HEADIN('THIS IS SUBPLOT # 2$' CALL VECTOR(13.,3-.21.,3.3402)
,100, 3., 1.)
CALL ENDGR (0) INU14-8
CALL PHYSOR (0., 0.) CALL INTNO(INU14,14.5,5.5)
CALL AREA2D (20., 11.) CALL MESSAG('"',2,'ABUT'.'ABUT')
CALL HEIGHT (.5) CALL VECTOR(21.,0.,21.,2.,3402)
CALL SETCLR ('REDW) INUM-2
CALL VECTOR (3., 0., 3., 2., 3402) CALL INTNO(INUM4,21.5,.75)
INUM-2 CALL MESSAG('"',2,'ABUT','ABUT')
CALL INTNO (INUM, 3.5, .75) CALL VECTOR(21.,8.,21.,l11.,3402)
CALL MESSAG ("',2,'ABUT','ABUT') INUM-3
CALL VECTOR (0., 4., 3., 4., 3402) CALL INTNO(INUM,21.9.5)
INUM=3 CALL MESSAG ('"l' ,2,'ABUT' ,'ABUT')
CALL INTNO (INUM, 1.5, 4.5) CALL VECTOR(21.,4.,24..4.,3402)
CALL MESSAG ('"',2,'ABUT','ABUT') INUM=3
CALL VECTOR (3., 8., 3., ]1.,3402) CALL INTNO(INUM,22.4.5)
INUM-3 CALL MESSAG('"',2, 'ABUT' ,'ABUT')
CALL INTNO (INUM, 1.5, 9.5) CALL ENDPL(0)
CALL MESSAG ("",2,'ABUT'.'ABUTl) CALL DONEPL
CALL VECTOR (3., 3., ]1., 3.,3402) END
Null-B
CALL INTNO (INUM, 6.5, 3.5)
CALL MESSAG (",2, 'ABUT', 'ABUT')
D ISSPLA

Example

3m 3*
TM Is8sLupxLO TMS18SLOP=OT2

* 3m t " t 3m
IA

______--V a

2"
-18- DISSPLA

Once DISSPLA is in level 3, plotting of curves may begin.


The call to CURVE may be made as many times as needed.

Subroutine Level Level


at after
call call

To draw a curve:

CALL CURVE (XARAY, YARAY, NPTS, IMARK) 3 Same

XARAY - array of X values


YARAY - array of Y values
NPTS - number of points to plot
IMARK - < 0 symbols every Ith point, not connected
- 0 points connected, no symbols
> 0 symbols every Ith mark, connected

To blank an area around the curve:

CALL BLCURV (OFWDTH, OFLNTH) 1,2,3 p/s

To thicken curves:

CALL THKCRV (THKNSS) 1,2,3 p/s

To change the grace margin of subplot:

CALL GRACE (GRACEM) 1,2,3 p/s

To select a marker:

CALL MARKER (ISYM) 1,2,3 p/s

To blank symbol markers:

CALL BLSYM 1,2,3 p/s

To change size of markers:

CALL SCLPIC (FACTOR) 1,2,3 p/s

4'
-19- DISSPLA

This example reads data points into two arrays, then plots
the curve. This object must be drawn to scale, so PAGE is set to
23" X 11". AREA2D then sets the plot size to 20" X 8" (from
within TITLE). SETDEV directs error messages and summary
messages to unit # 3 (FOROO3.DAT on the VAXcluster; TAPE# on the
CYBERs), so that they will not appear on the screen and a
hardcopy is kept. INTAXS will print only the integer values along
the axes, and YAXANG will write the values along the Y axis
horizontally. GRAF sets up the scale of the axes, the X axis will
run from 0 to 20 by steps of 1, the Y axis will run from -4 to +4
by steps of 1. CURVE is then called twice, once to plot the upper
portion, and the second time to plot the lower portion.

i-
-20- DISSPLA

PROGRAM EXAMPLE4

DIMENSION XC10000) ,v(loooo)


OPEN CI F ILE-' FOROOl .DAT' ,STATUS-'OLD')
OPEN (2.FILE-' FOROO2.DAT , STATUS.' OLD)

CALL COMPRS ILevel 0 to Level 1I


CALL BGNPL (0)

CALL SETDEV (3, 3)


CALL SETCLR ('BLUE')

CALL PAGE (23.0. 11.0)

CALL HEIGHT (.3)


CALL SWISSB

CALL SHDCHR (90., 1, .002, 1)

CALL INTAXS

CALL YAXANG (0.)

CALL TITLE ('MLTA FOIL PROFILE$', 100. 'X ( INCHES W$,


100, 'Z ( INCHES )$', 100, 20., 8.) 1 Level 1 to Level 21
CALL GRAF (0.. 1., 20., -4., 1., 4.)
{Level 2 to Level 3
CALL SETCLR ('RED')

DO 20 1-1,10000

READ (1,'(E 15.5, 3X,E 15.5) ',END-2 1)X (I),Y (l)

20 CONTINUE

21 CALL CURVE CX, Y, 9500, 0)

DO 30 1-1,10000

READ (2,' CE 15.5, 3x, 15.5) ' ,END-32)X (I),Y (I)


30 CONTINUE

32 CALL CURVE CX, Y, 9500, 0)

CALL ENDPL (0) 1Level 3 to Level I


CALL DONEPL ILevel I to Level 01
END
-21- DISSPLA

Examele 4

MLTA FOIL PROMIL

4 4 WI 8 U 2

X*Mhe
-22- DISSPLA

Legends and Stories

To draw a Legend for your graph, or write out a block of


text(Story), use one of the following routines.

Subroutine Level Level


at after
call call

To store lines of text:

* CALL LINES (LSTRING, IPKARAY, ILINE) 1,2,3 Same

To draw a legend:

CALL LEGEND (IPKARAY, NLINES, XPOS, YPOS) 1,2,3 Same

To initialize IPKARAY and set J to max lines possible in Legend:

J = LINEST (IPKRAY, NPKWRD, IMAX) 1.2,3 Same

To write a block of centered text:

CALL STORY (IPKARAY, NLINES, XPOS, YPOS) 1,2,3 Same

To left justify a block of text:

CALL LSTORY (IPKARAY, NLNES, XPOS, YPOS) 1,2,3 Same

To right justify a block of text:

CALL RSTORY (IPKARAY, NLINES, XPOS, YPOS) 1,2,3 Same

To get the size of LEGEND:


.XLEN XLEGEND (IPK, NLINES) 1,2,3 Same
YLEN - YLEGEND (IPK, NLINES) 1,2,3 Same

To get the size of STORY:

XLEN = XSTORY (IPK, NLINES) 1,2,3 Same


YLEN = YSTORY (IPK, NLINES) 1.2,3 Same

1/
-23- DISSPLA
0
To get the length of messages:

XLEN - XMESS (LMESS, IMESS) 1,2,3 Same

To get the length of numbers:

XLEN - XREAL (ANUM, IPLACE) { REALS } 1,2,3 Same


XLEN - XINT (INT) {INTEGER) 1,2,3 Same

To get X,Y position in inches of a data point:

A - XPOSN (XVAL, YVAL) 1,2,3 Same


B - YPOSN (XVAL, YVAL) 1,2,3 Same

To get X,Y coordinate values:

A = XINVRS (XINCH, YINCH) 1,2,3 Same


B - YINVRS (XINCH, YINCH) 1,2,3 Same

The next example uses a legend containing 9 lines which are


packed by LINES and stored. MYLEGN changes the title on the
legend to any string. BLREC uses the values of XLEGEND and
YLEGEND to blank out the area where the legend will be written,
to prevent curves from over writing it. Notice that LEGLIN is
called directly before CURVE, the line type is stored with the
legend titles. NOTE: the curves must be called in the same order
as they appear in the legend. LEGEND then prints out the legend
at the specified coordinates.

The second example is basically the same except SPCMOD is


called. This subroutine calls MYSPEC and also stores the color
of the line that was used.
-24- DISSPLA

PROGRAM EXAMPLE5
DIMENSION IPAX(10000),Y0O),Z(1O)
OPEN(1 ,FILE-'JETDATA' ,STATUS-'OLD')
CALL COMPIRS
CALL BGNPL (0)
CALL SETDEV (2, 2)
CALL SETCLR ('BLUE')
CALL PAGE (12.0, 11.0)
CALL SWISSB
CALL INTAXS
CALL YAKANG (0.)
CALL SHDCHR (90., 1, .002, 1)
CALL TITLE ('IMPACT WINDOW, 100, 'Z - IMPACTS', 100,
'- IMPACTS', 100, 9., 7.)
CALL GRAF (-200., 20., 200., -200., 20., 200.)
CALL SETCLR ('RED')
CALL LINES ('.0000 - .0625$', IPAK, 1)
CALL LINES ('.0625 - .1220$', IPAK, 2)
CALL LINES ('.1250 - .2500$', IPAK, 3)
CALL LINES ('.2500 - .5000$', IPAK, 4)
CALL LINES ('.5000 - .7500$', IPAK, 5)
CALL LINES ('.7500 - 1.000$', IPAK, 6)
CALL LINES ('1.000 - 2.000$1, IPAK, 7)
CALL LINES ('2.000 - 3.000$', IPAK, 8)
CALL LINES ('3-000 - 4.000$', IPAK, 9)
CALL LIKES C' > 4.000$1. (PAK, 10)
CALL MYLEGN ('DEPTH IN INCHES$', 100)
XR - XLEGND (IPAK, 10) + .3
YR - YLEGND (IPAK, 10) + .3
CALL BLREC (7.-.3, 6.-.3, XR+.3, YR+.3, .02)
DO 20 1-1,500
READ(1,'(70X,F5.2,2XF9.2,2X.F9.2)',END-32)DEP,Y(1),Z(l)
IF((DEP.GE.0.0 ) .AND. (DEP.LT.0.0625)) CALL MARKER(1)
IF((DEP.GE.0.0625) .AND. (DEP.LT.0.1250)) CALL MARKER(2
IF((DEP.GE.0.1250) .AND. (DEP.LT.O.2500)) CALL MARKER(3
IF((DEP.GE.0.25 ) .AND. (DEP.LT.0.5000)) CALL MARKER(4)
IF((DEP.GE.O.5 ) .AND. (DEP.LT.O.750 ))CALL MARKER(5)
IF((DEP.GE.O.75 ) .AND. (OEP-LT.LO ) CALL MARKER(6)
IF((DEP.GE.1.0 ) .AND. (DEP.LT.2.0 ))CALL MARKER(7
IF((DEP.GE.2.0 ) .AND. (DEP.LT.3.0 ))CALL MARKER (8)
IF((DEP.GE.3.O ) .AND. (DEP.LT.4.O ) CALL MARKER(9)
IF((DEP.GE.4.0) ) CALL MARKER(10)
CALL LEGLIN
CALL CURVE (Y. Z. 1, -1)
20 CONTINUE
32 CALL RESET ('BLNKS')
CALL LEGEND (IPAK, 10, 7., 6.)
CALL ENOPL (0)
CALL DONEPL
END
-25- DISSPLA

Example

* Wsee. -sea
IMPACT WINDOW ofU.42 - 11
-
v.5000 .75"0
2441 xin.7590 - L
led1 a -1160- LM65
1S6~ .606 - 11.
166] X800 -4.110
>-4.4104
136 xUUU

0 x x
x~ o

4 1

Z IMPACT
-26- DI1SSPLA

PROGRAM EXAMPLE6
DIMENSION X(50),Y(50),IPAK(1000)
OPEN (1,FILE-'DAT',STATUS-'OLD')
CALL COMPRS
CALL BGNPL (0)
CALL SETCLR ('BLUE')
CALL HEIGHT (.2)
CALL PAGE (12.0, 11.0)
CALL INTAXS
CALL YAXANG (0.)
CALL TITLE ('FUNCTIONS', 100, 'X -AXISS'. 100,
*'Y - AXIS$'. 100. 9., 7.)
CALL SETCLR ('GREEN')
CALL GRAF (-., 1., 3., -4.., 1., 10.)
CALL SETCLR ('GREEN')
CALL LINES ('INPUT POINTS$'. IPAK, 1)
CALL LINES (' DEGREE 1 $', IPAK, 2)
CALL LINES C' DEGREE 2 $', IPAK, 3)
CALL LINES C' DEGREE 3 V', IPAK. 4)
CALL LINES (' DEGREE 4 $', IPAK. 5)
CALL LINES (' DEGREE 5 $', IPAK, 6)
CALL LINES (' DEGREE 6 V'. IPAK. 7)
CALL MYLEGN ('POLY DEGREES', 100)
XR - XLEGND (IPAK, 7) +.3
YR - YLEGND (IPAK, 7) + .3I
CALL BLREC (7--.3, 6--.3, XR+.3, YR4.3, .02)
DO 10 1-1,13
RE AD (I,*)X(1), Y(1)
10 CONTINUE
CALL SPCMOD
CALL LEGLIN
CALL CURVE (X,Y, 13, 1)
DO 30 J-1.6
DO 20 1-1,4.9
READ(01,*) X(1) ,Y(1)
20 CONTINUE
CALL SPCMOD
CALL LEGLIN
CALL CURVE (X,Y, 49, 1)
30 CONTINUE
32 CALL BLMOVE (XR+.9. 0.)
CALL LEGEND (IPAK, 7, 7., 6.)
CALL ENDPL (0)
CALL DONEPL
END
SUBROUTINE MYSPEC (J)
IF (J .EQ. 1 ) CALL SETCLR ('RED')
IF (J .EQ. 2 ) CALL SETCLR ('MAGENTA')
IF (J .EQ. 3 ) CALL SETCLR ('BLUE')
IF (J .EQ. 4 ) CALL SETCLR ('CYAN')
IF WJ EQ. 5 ) CALL SETCLR ('YELLOW')
RETURN
END
0-27- DISSPLA

Example 6

POLY DEGREE
FUNCTION
FUNCTIN
-: t Po~nts
0 6eree I
a De-gree 2
] x Degree4
IDegree 5
v Degree 6
7

AAL'

-3-2-
x - Axis
-28- DISSPLA

Interpolation

To use interpolation routines provided by DISSPLA:

Subroutine Level Level


at after
call call

CALL SPLINE 1,2,3 p/s

CALL PSPLIN 1,2,3 p/s

CALL POLY3 1.2,3 p/s

CALL POLY5 1,2,3 p/s

CALL LINEAR 1,2,3 p/s

CALL PARA3 1,2,3 p/s

CALL PARA5 1.2,3 p/s

CALL STEP 1,2,3 p/s

CALL BARS (BARWTH) 1,2,3 p/s

For smoothing: (Supply error weighting factors in blank common YOLARAY)

CALL SMOOTH 1,2,3 p/s

CALL PSMTH 1,2,3 p/s


To change line texture:

CALL DOT 1,2,3 p/s

CALL DASH 1,2,3 p/s

CALL CHNDOT 1,2,3 p/s


CALL CHNDSH 1,2,3 p/s

CALL RESET ('DOT) {SOLID) 1,2,3 p/s

To construct your own texture:

CALL MRSCOD (TLENG, NMRKSP, RATRAY) 1.2,3 p/s


-29- DISSPLA

This page intentionally left blank


-30- DISSPLA z

PROGRAM EXAMPLE7
DIMENSION X(13),Y(13),RATRAY(6)
DATA X/-3.,-2.5,-2.,-1.5,-1.,-. ,o., .5,1..1.5,2.,2.5,3./
5
DATA Y/-1 .,4.5,-3. .6.,-2. .3.
,-3.,8. -2.,5. ,-1 .5.3
DATA RATRAY /5.., 2., 2.. 2., 7., 2.1
CALL COMPRS
CALL BGNPL (0)
CALL HEIGHT (1.)
CALL SCMPLX
CALL PAGE (24.0, 18.0)
00 30 J-1,6
CALL PHYSOR (0., FLOAT(J-])*3.)
CALL AREA2D (15., 3.)
CALL SETCLR ('GREEN')
CALL GRAF (-., 1.- 3., -4.. 2., 10.)
CALL FRAME
CALL MESSAG ('5,100, 15., 0.19)
IF ( J.EQ.1 ) THEN
CALL LINEAR
CALL SETCLR ('RED')
CALL MESSAG ('LINEARS', 100, 16., 1.)
ELSE IF (J.EQ.2 ) THEN
CALL POLY3
CALL SETCLR ('BLUE')
CALL MESSAG ('POLY3$1. 100, 16., 1.)S
CALL DOT
ELSE IF (J.EQ.3 ) THEN
CALL STEP
CALL SETCLR ('YELLOW')
CALL MESSAG ('STEPS, 100, 16., 1.)
CALL DASH
ELSE IF( J.EQ.4 ) THEN
CALL SPLINE
CALL SETCLR ('MAGENTA')
CALL MESSAG ('SPLINES', 100, 16., 1.)
CALL CHNDOT
ELSE IF (J.EQ.5 ) THEN
CALL BARS (1.)
CALL SETCLR ('CYAN')
CALL MESSAG ('BARS$', 100, 16., 1.)
CALL CHNDSH
ELSE IF (J.EQ.6 ) THEN
CALL POLY5
CALL SETCLR ('YELLOW')
CALL MESSAG ('POLY5S', 100, 16., 1.)
CALL MRSCOD (2., 6, RATRAY)
END IF
CALL CURVE (X,Y, 13, 1I)
CALL ENDGR (0)
30 CONTINUE
CALL ENOPL (0)
CALL DONEPL
END
-31- 9 1SSPLA

Exauple 2

~/'POLY5

II F j j 7]H BARS-

SPLINE

TPOLY3
LIEA

on /m qulL.ull
-32- DISSPLA

Example #8 shows a polar plot of flows around a prop. The


data is read in from two data files containing angles and
magnitudes of the flows. A vector will be drawn for each flow,
will the length being the magnitude, the direction being the
angle. The data did have to be adjusted to convert to the polar
coordinate system. Notice that subroutine TITLE is used even
though it is is an obsolete routine it is still supported by
DISSPLA. In all calls to MESSAG, the position (XVAL, YVAL) is
given in polar coordinates (i.e., ANGLE, MAGNITUDE). In the call
to POLAR you determine whether angles are in radians or degrees.

.9.

( -S
-33- DISSPLA

0-@ This page intentionally left blank

I I
-34- DISSPLA

PROGRAM EXAMPLE8
OPEN (1,F ILE-'TUBEI.DAT' ,STATUS-'OLD')
OPEN (2,F ILE-'TUBE2.DAT' ,STATUS-'OLD')
CALL COMPRS IF((TH.GT.o) .AND. (TH.LE.9o)) THEN
CALL SETDEV (9, 9) IF(THNEW.LT.O) THNEW--THNEW
CALL BGNPL (1) ENDIF
CALL PAGE (11., it.) IF((TH.GT.1BO).AND.(TH.LE.270))THEN
CALL SETCLR ('BLUE') ANG -2.
CALL TITLE(' ',1,'RADIUS',6,1H ,1,10.5,10.5) X1 Rl*COSDCTH-TH1-ANG*(9O.))
CALL POLAR (3-14159/180.,.25,5.25,5.25) Y1 R1*SIND(TH-THI-ANG*(9o.))
CALL HEIGHT (.2) IF((TH.GT.180).AND.(TH.LE.270))THEN
CALL SETCLR ('GREEN') IF ((X1.LT.O.).AND.(v1.LT.O.)) THEN
CALL GRID (1,1) Y1 - -YJ
DO 105,K-1,2 X1 - -XI
IF(K.EQ.1) THEN ENOIF
CALL SETCLR ('RED') -XNEW - X - X1
READ0(,' (5x,18x.I3) ')INUM YNEW - Y - Y1
CALL RLMESS (' TUBE - ',8,6o.,1.3) RNEW - SQRT((XNEW**2)+(YNEW**2))
CALL INTHO (INUM,'ABUT','ABUT') THNEW - ATAND(YNEW/XNEw)
CALL RLMESS (' TUBE - ',8,135.,l.6) lF(TH.GT.180).AND.(TH.LE270)) THEN
CALL INTNO (INUM.'ABUT','ABUT') IFkTHNEW.GT.0) THNEW - THNEW+180.
CALL RLMESS (' TUBE - ',8.220.,1.6) ENDIF
CALL INTNO (INUM,'ABUT','ABUT') ENDIF
CALL RLMESS (' TUBE - ',8,310.,1.35) CALL RLVEC(TH,R,THNEW,RNEW,1201)
CALL INTN90 (INUM,'ABUT','ABUT') 50 CONTINUE
ENDIF 105 CONTINUE
IF(K.EQ.2) THEN 999 CONTINUE
CALL SETCLR ('BLUE') CALL ENDPL(0)
READ(2,'(5x,18X,13)')iNUMi CLOSE(9.STATUS-'DELETE')
CALL RLMESS (' TUBE - ',8,50.,1.3) CALL DONEPL
CALL INTNO (INUM,'ABUT','ABUT') END
CALL RLMESS (' TUBE - ',8,14o.,i.5)
CALL INTNO (INUM,'ABUT'.'ABUT')
CALL RLMESS I['TUBE - ',8.220..1.8)
CALL INTNO (INUM,'ABUT','ABUT')
CALL RLMESS C' TUBE - ',8,290.,1.3)
CALL INTHO (INUM,'ABUT','ABUT')
END IF
00 50 1-1,2500
IF(K.EQ.1) READ(111END-105)TH,R1,THI
IF(K.EQ.2) READ (2,11 ,END-999)TH,R1 ,TH1
IF (K.EQ.1) R -1.25
IF (K.EQ.2) R -. 75
x - R * COSD(TH)
Y - R * SIND(TH)
xi RI * COSO (180. +TH-THI)

=l Rl * SIND(1BO. + TH -THI)

XNEW = X +XI
YNEW - Y + Y1
RNEW - SQRT((XNEW**2)+(YNEW**2))
THNEW - ATAND(YNEW/XNEW)
0 1SSPLA
Lxpe8-35-

- UB I TUB --

TUB 2V7~ . TUBE 2


-36- D ISSPLA

Post-Processor

When COMPRS is used as the device, DISSPLA creates a device


independent META file (called DISPLOT.DAT on VAX and PLFILE on
the CYBERS). When you run the post processor, you can choose any
device and make certain modifications. A plot can be scaled up or
down, certain ones drawn, or a small portion of the plot "zoomed"
in on.

The following command used on the preceding example would produce


the following graph:

MODI - 1( WINDOW - UPPER( 5.75),LOWER( 0.75),


RIGHT( 5.75),LEFT ( 0.75) * SIZE - 11,8)

NOTE: The graph cannot be changed (i.e., viewpoint), you can only
work with the plot as it existsl

L 1A

S. ' '

S. " r *" , " ' ' ' . " " " " " . . " . . .- "" . . - " " -
EX.DJ. fSSPLA

00

TUBEI
-38- DISSPLA

J-Dimensional Plotting

Three-dimensional plotting in DISSPLA is similar to two-


dimensional plotting except that some subroutines are changed to
accommnodate the Z coordinate arguments. There are also some
additional routines to cope with 3-D plotting properties. The
user wishing to use 3-D is advised to read the User's Anual.

Subroutine Level Level


at after
call call

To select relative axis lengths:

CALL VOLM313 (X3AXIS, Y3AXIS, Z3AXIS) 2 p/s

To select a viewpoint: (Absolute units)

CALL VUABS (XVU, YVU, ZVU) 2 p/s

CALL WUANG (PHI. THETA, RADIUS) 2 p/s

To set 3-D axis:

CALL GRAF3D (X3ORIG, X3STEP, X3MAX,


Y3ORIG, Y3STEP, Y3MAX, 2 3
Z3ORIG, Z3STEP, Z3MAX)

To draw a curve:

CALL CURV3D) (XARAY, YARAY, ZARAY. N, 1) 3 Same


N - Number of points to be plotted

I- < 0 Symbol every i-th mark not connected


a 0 No symbols just a line
> 0 Symbol every i-th mairk and connected

To draw 3-D Vector:

CALL VECTR3 (XFROM, YFROM, ZFROM,


XTO, YTO, ZTO, IVEC) 2.3 Same

CALL RLVEC3 (XROM, YFROM, ZFROM,


XTO, YTO, ZTO, IVEC) 2.3 Same
-39- DISSPLA

Example 10 shows a simple 3-D plot of a conic section.


Notice that along with AREA2D, AXES3D is called to define the 3-D
work area. It is defined in "absolute units", so that VUABS can
define the view angle relative to the work area. Four subplots
will be put onto the same page, each one using a different
viewpoint. The X, Y, and Z arrays are filled with the coordinates
to be plotted using the equation of the conic.

0
-4.0-
DISSPLA 6

PROGRAM EXAMPLE 10
DIMENSION X(500), Y(500), Z(500), ZX(250)
CALL COMPRS
CALL BGNPL (0) Z (2*ICOUNT+1) -Z (1)
CALL PAGE (14., 11.) X(2*ICOUNT+1).X (1)
CALL HEIGHT (.3) Y(2*ICOUNT+])mY (1)
CALL INTAXS CALL CURV30 (X, Y, Z.
CALL ZAXANG (90.) .2 * ICOUNT+1,O)
0O 100 IRUNS-1,4 10 CONTINUE
CALL SETCLR ('BLUE') CALL ENDGR (0)
If (IRUNS.EQ.1) THEN 100 CONTINUE
CALL PHYSOR (.5, .5) CALL ENDPL (0)
CALL AREA2D) (6., 5.) CALL DONEPL
CALL VUABS (3., -30., 3.) END
ELSE IF (IRUNS.EQ.2) THEN
CALL PHYSOR (.5, 5.5)
CALL AREA2D) (6., 5.)
CALL VUABS (1.5, 1.5, 30.)
ELSE IF (IRUNS.EQ.3) THEN
CALL PHYSOR (7.5, .5)
CALL AREA2D) (6., 5.)
CALL VUABS (30., 30., 30.)
ELSE IF (IRUNS.EQ.4) THEN
CALL PHYSOR (7. 5.5)
CALL AREA2D (6., 5.)
CALL VUABS (-30., -30., -30.)
END IF
CALL AXES30 ('x', 1, 'V', I- '1', 1, 3., 3., 3.)
CALL GRAF3D) (-3., 15., 30., -30., 15., 30., -30., 15., 30.)
DO 10 1-1,60
ICOUNT -1
DO 20 J-1,60
ZZ - FLOAT (1-30)
YY - FLOAT WJ-30)
XX - (((ZZ**2/16)-(vY**2/4)) + 1 )*4
IF(XX.GE.0) THEN
X(ICOUNT) - SQRT(XX)
Y(ICOUNT) - YY
ZOCOUNT) - ZZ
ZX (ICOUNT) - -SQRT (XX)
ICOUNT - ICOUNT+1
END IF
20 CONTINUE
COUNT - ICOUNT-1
CALL SETCLR ('GREEN')
DO 500 IX-1,ICOUNT
Z(ICOUNT+IX) -Z(ICOUNT+1-IX)
X(ICOUNT+IX) -ZX(ICOUNT+1-IX)
Y(ICOUNT+IX) -Y(ICOUNT+1-IX)
500 CONTINUE
D ISSPLA

Examp~le 10

K) -

030
-1 0 15 30
-42- DISSPLA

Example Il shows how to plot a surface defined by a


function of two variables. Once the work box is set up VUANGL is
called to define the viewpoint. This has the same effect as
VUABS, only it uses spherical coordinates. The equation to be
plotted is put in an EXTERNAL function with two arguments. The
call to SURFUN contains the name of the function and will
automatically compute the points to be plotted. The figure Is
plotted 15 times, each from a different viewpoint to simulate
rotation.

Example #12 shows a single surface plot, the call to VUABS


will draw the surface as if you were looking at it from (-
1o.,4.,20.). ZAXANG(O.) will label the Z-axis horizontally the
same way YAXANG works in 2-D.

NOTE: When defining the viewpoint, you must draw the object from
the outside looking in. DISSPLA will print an error message if
you are within the work box (i.e., looking from the inside out).

Ai

"'1

.......................

A ~ .*%~ .. '. *P 14
-43- DISSPLA

This page intentionally left blank.


-44- OISSPLA

PROGRAM4 EXA14PLEII
EXTERNAL PYRR, PYRRi
CALL COMPRS
CALL BGNPL (0)
THETA - 0
PHI - -18o.
CALL PAGE (35. 30.)
DO 20 1-1,5
DO 30 J-1,3
CALL SETCLR ('BLUE'
CALL PHYSOR (FLOAT(I-1)*(35.5/5.), FLOAT(J)*10-10)
CALL AREA2D (35.5/5., 30./3.)
CALL FRAME
CALL BLSUR
CALL AXES3D (0, 0, 0, 0, 0, 0, 5., 5., 5.)
CALL VUANGL (PHI, THETA, 20.)
CALL GRAF3D (-1000., 500., 1000., -1000., 500., 1000., -1000.,
500.,1000.)
CALL SETCLR ('CYAN')
CALL SURFUN (PYRR, 1, 100., 1, 100., WORK)
CALL SETCLR ('RED')
CALL SURFUN (PYRRI. 1, 100., 1, 100., WORK)
CALL ENDGR (0)
IF ( J.EQ.2) THEN Au
THETA - 90.- 1*10.
ELSE
PHI - PHI + 90.
END IF
30 CONTINUE
PHI m -180.
THETA m I * 10.
20 CONTINUE
CALL ENDPL (0)
CALL DONEPL.
END

FUNCTION PYRR(X,Y)
PYRR - SQRT (ABS ((3*Y**2-16*X)/12))
RETURN
END

FUNCTION PYRRI (x,Y)


PYRRI - .SQRT(ABS((3*Y**2-16*X)/12))
RETURN
END)
DISSPLA

Example 11

-LI - p.-
-1.6-DISSPLA

PROGRAM~ EXAMPLE12

EXTERNAL PYRR

CALL COMPRS

CALL BGNPL (0)

CALL PAGE (14., 11.)

CALL HEIGHT (.3)

CALL INTAXS

CALL ZAXANG (90.)

CALL SETCLR ('BLUE')

CALL AREAZO (10., 8.)

CALL HEADIN (' 3-D SURFACE PLOT$', 100, 1.2, 1)

CALL AXES3D ('X', 1, 'I', 1, 'Z'. 1, 5., 5., 5.)


CALL VUABS (-10., 4., 20.)

CALL GRAF3D) (-2., 1., 2., -2., 1., 2., 0., 1.. 2.)

CALL SETCLR ('RED')

CALL SURFUN (PYRR. 2, .1, 2, .1, WORK)

CALL ENDPL (0)

CALL DONEPL

END

FUNCTION PYRR(X,Y)

PYRR a (X**2+2*Y**2) *EXP (I-X**2-Y**2)

RETURN

END
-47 DISSPLA

Exampla 12

3-D Su.rface PLot

IN

2b
-48- DISSPLA

Graffiti Plots

Graffiti plots allow the user to project a 2-D plot onto a


plane in 3-D. The call below defines the plane by giving three
points that are on the plane.

CALL GRFITI (XLCORN, YLCORN, ZLCORN,


XBASEX, YBASEX, ZBASEX,
XOTHER, YOTHER, ZOTHER)

XLCORN, YLCORN, ZLCORN - coordinates of the lower left corner of


the plane in absolute workbox units.

XBASEX, YBASEX, ZBASEX - coordinates of a point on the X-axis in


absolute workbox units.

XOTHER, YOTHER, ZOTHER - coordinates of a point in the plane above


the X-axis in absolute workbox units.

Example #13 shows a 3-D graffiti plot. it is important to


note that when drawing a graffiti plot, the 2-D plot must be
finished ( CALL END3GR ) before 3-0 plotting or another 2-0 plot
can be started. The workbox is defined to be 5 X 5 X 5, the first
graffiti plot defines the 2-D plane (0,5,0) (5,5,0) (2,5,2) which
is the Z-X plane when Y is equal to 5. A grid is drawn on the
plane and a message written before it is ended by END3GR. Then
the second plane is defined, the Y-Z plane when X is 5. A grid is
again drawn on the plane and the message written before it is
ended by END3GR. Finaly the third plane is defined, the X-Y plane
when Z is zero, and the same events occur. After the final call
to END3GR the 3-D plotting can begin.

Example #14 shows a graffiti plot with actual graphs.


-49- DISSPLA

TI-s page intentionally left blank.

U w
-50- DISSPLA

PROGRAM EXAMPLE13
CALL TK41 (4105)
CALL BGNPL (0)
CALL PAGE (14., 11.)
CALL SETCLR ('BLUE')
CALL PHYSOR (.5, .5)
CALL HEIGHT (.25)
CALL INTAXS
CALL AREA2D (13., 10.)
CALL SETCLR ('RED')
CALL FRAME
CALL AXES3D ('X - AXIS',8,'Y - AXIS',B,'Z - AXIS',8,5.,5.,5.)
CALL VUABS (-10., -10., 10.)
CALL GRAF3D (-150.,50.,150.,-150.,50.,150.,-150.,50.,150.)
CALL GRFITI (0., 5., 0., 5., 5., 0., 2., 5., 2.)
CALL AREA2D (5., 5.)
CALL GRAF (-150., 10., 150., -150., 10., 150.)
CALL SETCLR ('GREEN')
CALL MESSAG ('THIS IS THES', 100, 1., 2.5)
CALL MESSAG ('Z - X PLANES', 100, 1., 2.)
CALL BLREC (.7, 1.7, 3., 1.5, .08)
K- CALL GRID (1, 1)
CALL END3GR (0)
CALL GRFITI (5., 5., 0., 5., 0., 0., 5., 2., 2.)
CALL AREA2D (5., 5.)
CALL GRAF (-150.,10.,150.,-150.,10.,150.)
CALL SETCLR ('YELLOW')
CALL MESSAG ('THIS IS THES', 100, 1., 2.5)
CALL MESSAG ('Y - Z PLANES', 100, 1., 2.)
* CALL BLREC (.7, 1.7, 3., 1.5, .08)
CALL GRID (1, 1)
CALL END3GR (0)
CALL GRFITI (0., 0., 0., 5., 0., 0., 0., 5., 0.)
CALL AREA2D (5., 5.)
CALL GRAF (-150.,10.,150.,-150.,0.,150.)
CALL SETCLR ('BLUE')
CALL MESSAG ('THIS IS THES', 100, 1., 2.5)
CALL MESSAG ('X - Y PLANES', 100, 1., 2.)
CALL BLREC (.7, 1.7, 3., 1.5, .08)
CALL GRID (1, 1)
CALL END3GR (0)
CALL SETCLR ('CYAN')
CALL BOX3D
CALL ENDPL (0)
CALL DONEPL
END
-51- VISSPLA

so5
-52- DISSPLA

Extople 14

USE OF GRAFITI PLOTS


-53- DISSPLA

Character Sets

DISSPLA contains numerous alphabets and character styles.


Consult the User's Manual for examples of each.

Subroutine Level Level


at after
call call

CALL CARTOG 1,2,3 p/s

CALL SIMPLX 1,2.3 p/s

CALL SCMPLX 1,2,3 p/s

CALL COMPLX 1,2,3 p/s

CALL DUPLX 1,2,3 p/s

CALL TRIPLX 1,2,3 p/s

CALL GOTHIC 1,2,3 p/s

Then to choose an alphabet:

CALL BASALF (LALPHA) 1,2,3 p/s

where LALPHA is:

"STANDARD" "L/CSTD" "GREEK" "L/CGREEK" "RUSSIAN" "L/CRUSSIAN" "HEBREW"

"ITALIC" "L/CITALIC" "SCRIPT" "SPECIAL" "MATHEMATIC" "INSTRUCTION"

Example #15 shows how to use several alphabets, and how to change
from one to another. The user must call MXIALF with the alphabet
chosen and a character to represent it. At this point, any time
you write out text, this character causes DISSPLA to switch to
the alphabet it represents. In each call to MESSAG, these special
characters are not printed but the words appear in different
alphabets. Each string must end in the BASALF to use the "S"
string counter feature.
-54- DISSPLA

PROGRAM EXAMPLE15
CALL COMPRS
CALL SETDEV (1, 1)
CALL BGNPL (0)
CALL TRIPLX
CALL BASALF ('STANDARD')
CALL MX1ALF ('STANDARD', '+')
CALL MX2ALF ('L/CGREEK', '1')
CALL MX3ALF ('RUSSIAN', '')
CALL MX4ALF ('SCRIPT', '8')
CALL MX5ALF ('GREEK', '$')
CALL MX6ALF ('ITALIC', 'I')
CALL SETEND (';', 1)
CALL HEIGHT (.5)
CALL PAGE (16., 8.5)
CALL PHYSOR (0., 0.)
CALL AREA2D (16., 8.5)
CALL SETCLR ('BLUE')
CALL MESSAG ('THIS IS AN IEXAMPLE+ USING DIFFERENT;', 100,
*5, 7.5)
CALL MESSAG ('ALPHABETS, SIT IS QUITE EASY ITO USE AND+;',
100, .5,6.5)
CALL MESSAG ('THE IALPHABET CAN +BE CHANGED &AT ANY TIME+;',
100, .5, 5.5)
CALL MESSAG ('NOTICE ITHAT EACH STRING &ENDS IN THE +BASALF;',
100, .5,4.5)
CALL SETCLR ('RED')
CALL MESSAG ('SOME MORE EXAMPLES:;', 100, 2., 3.5)
CALL MESSAG ('RUSSIAN -/RUSSIAN+ L/GREEK -#ABCDEF+;',
100, .5, 2.5)
CALL MESSAG ('GREEK - $ABCDEFGH +ITALIC -IITALIC+;',
100, .5, 1.5)
CALL SETCLR ('BLUE')
CALL MESSAG ('THE ISTRINGS+ ARE PLACED IN INCHES FROM ORIGIN;',
100, .1, .5)
999 CALL ENDPL (0)
CALL DONEPL
CLOSE(1,STATUS-'DELETE')
STOP
END
-55- DISSPLA

Example

This is an example using different


Alphabets, d &c
1 e4 to use and
the ALPHABET can be changed cd turn-
Notice that each string vnkk &m1lP BASALF
Some more examples:
RUSSIAN -POCCHAH L/GREEK -afl ?6
GREEK - ABHAEVTX ITALIC -ITALIC
The strings are placed in inches from origin

*
-56- DISSPLA

Instruction Alphabet

This next example shows the power of the instruction


alphabet. The user can choose any alphabet, spacing, height or
font through commands similar to those of multiple alphabets. The
commands are enclosed in parentheses and operate only on the line
they appear in. Below are the commands that were used for example
16, for a complete list refer to the reference manual or pate B-
24 of the Pocket Guide.

Pi - set the i-th tab at the current position horizontally. (i<20)

Gi - move back to the i-th tab previously set by P. (i<20)

Er - move up (superscript) from base line a distance r.

Lr - move down (subscript) from base line a distance r.

Yr - skew character by factor r-x/y.

Ui - underline once from i-th P tab to current position.

Di - double underline from i-th P tab to current position. A

Fi Font changed to corresponding style:

0 - Default 8 - FUTURA
1- CARTOG 9 - SERIF
2 - SIMPLX 10 - FASHON
3- SCMPLX 11 - LOGOI
4 - COMPLX 12 - SWISSL
5 - DUPLX 13 - SWISSM
6 - TRIPLX 14 - SWISSB
7 - GOTHIC

NOTE: If a shaded font is used it must be called prior to use.

pP
-57- DISSPLA

Mi - Set character set to specified alphabet:

0 - STANDARD 7 - L/CGREEK
1 - L/CSTD 8 - RUSSIAN
2 - ITALIC 9 - L/CRUSSIAN
3 - L/CITALIC 10 - SPECIAL
4 - SCRIPT 11 - MATHEMATIC
5 - L/CSCRIPT 12 - HEBREW
6 - GREEK 13 - ALFBET

X- as an argument, resets instruction to default value.

Example #16 writes out text in various styles using the


instruction alphabet. Text can be slanted, underlined and at
different heights. Also, the mathematical formula is written out
using the mathematical character set (see manual). If time is
taken to learn the instruction alphabet, the user can benefit by
having every style of character DISSPLA can produce available to
*him throughout his plot.

N
-58- DISSPLA

PROGRAM EXAMPLE16
CALL TK41 (4105)
CALL SETDEV (1, 1)
CALL 8GNPL (0)
CALL MIXALF ('INSTRIJ')
CALL HEIGHT (.2)
CALL PAGE (11., 8.5)
CALL PHYSOR (0., 0.)
CALL AREA2D (11. 8.5)
CALL SETCLR ('GREEN')
CALL MESSAG ('(H2F6MOC) THIS IS AN(Y.5) EXAMPLE(YO.)S,
*100,2.,7.0)
CALL MESSAG ('(H2F7MO)OF THE (F6PlH3) INSTRUCTION(H2U1) (P2)
* ALPHABET(D2)$', 100, 1., 6.)
CALL MESSAG ('(H2F6m1OC)E (MO)- MATHEMATICS - (M1O)ES',
* 100, 2., 5.)
CALL SETCLR ('RED')
CALL MESSAG 0'(MOF6H2P 1)L IM(GIL I 5H1M411) L R L T (MO) 0(H3)
* (Mll) (P2E.2)S (1121MO12.501 - 1 (G2LXE4.5S3)N
* (EXMl1H2S3)2$', 100, 1., 3.0)
CALL MESSAG ('(F6H31JP3) I(G3L2.5M6H1)L(L2.7H.5m0) 1
* (H1L2.5Ml0F6)8 (MO)Y(L2.7H.7)I (L2.5m1OH1)9
* (G3LXE3.5H1m6S7)L(E3.3H.5M0)2(E3.5M10H1)8(MiO)Y
* (E3.3H.5) I(E3.5H1M1O)9S', 100, 'ABUT', 'ABUT')
CALL MESSAG ('(F6EXMOH2)F(M11)8(MO)X ,Y(L.5HIF6)1I(S2)$',0
* 100, 'ABUT', 'ABUT')
CALL MESSAG ('(LXH2M11F6)9(MO) DX(M11H2) 3(ml1) R(MOL.5HI)I
* (LXH2)YS', 100, 'ABUT', 'ABUT')
999 CALL DONEPI
CLOSE (1,STATUS-'DELETE')
STOP
END

NOTE: in the call to MESSAG, when ABUT is given as the position


for the X and Y value, the message is placed where the previous
message left off.
-59- DISSPLA

Example 16

This Is an example
(ftijc instruction alphabet
* PT MATHEMATICS= T

Urn /v F Y8x ivy


Af Y
I=I LA,( YO
xv~ i
Initial Distribution

Copies:

12 Director
Defense Technical Information Center (OTIC)
Cameron Station
Alexandria, Virginia 23314

Center Distribution

Copies:

1 18/1809 Schoman, Dr. C. M.


1 1805 Cuthill, E. %.
2 1809S
1 182 Camara, A. W.
1 184 Schot, J. W.
1 185 Schaffran, R.
1 187 Zubkoff, M. J.
1 189 Gray, G. R.
1 189.2
1 189.3 Morris, J.
1 1892.1 Strickland, J. D.
4.0 1892.1 Brady, K. G.
10 1892.2 Sommer, D. V.
1 1892.3 Minor, L. R.
1 1894
1 1896 Glover, A.
1 1896.2 Dennis, L.
1 522 TIC (C)
1 522.2 TIC (A)
1 93 Patent Counsel
S

1. DTN C repors, formal slee, contain information of permanent technical


value. They carry a consecutive numerical identification regardless of their classification
or the originating department.

2. DeWptmenti reports, a senformal series, contain information of a preliminary,


temporary, or proprietary nature or of limited interest or significance. They carry a
departmental alphanumencal identification.

3. Tedhntal memorand, an hiform series, contain technical documentation of


limited use and interest. They are primarily working papers intended for internal use.
They carry an identifying number which indicates their type and the numerical code of
the originating department. Any distribution outside DTNSRDC must be approved by
the head of the originating department on a case-by-case basis.

NOW O-TNSAOC Utt124 ( .v4-N)


F:

You might also like