Mational Bureau of Standard!

Library, K.w. BldE

NOV 10 1964

Reference book not to be

taken from the library.

echnical <v2ote 249

A PROGRAM FOR PLOTTING CIRCLES

OF CONSTANT OVERPRESSURE

AROUND TARGETED POINTS

MAI LIIS JOEL AND DOUGLAS D. LOTTRIDGE

U. S. DEPARTMENT OF COMMERCE

NATIONAL BUREAU OF STANDARDS
THE NATIONAL BUREAU OF STANDARDS

The National Bureau of Standards is a principal focal point in the Federal Government for assuring

maximum application of the physical and engineering sciences to the advancement of technology in industry and commerce. Its responsibilities include development and maintenance of the national stand- ards of measurement, and the provisions of means for making measurements consistent with those standards; determination of physical constants and properties of materials; development of methods

for testing materials, mechanisms, and structures, and making such tests as may be necessary, particularly for government agencies; cooperation in the establishment of standard practices for incorporation in codes and specifications; advisory service to government agencies on scientific and technical problems; invention and development of devices to serve special needs of the Government; assistance

to industry, business, and consumers in the development and acceptance of commercial standards and

simplified trade practice recommendations; administration of programs in cooperation with United

States business groups and standards organizations for the development of international standards of

practice; and maintenance of a clearinghouse for the collection and dissemination of scientific, technical, and engineering information. The scope of the Bureau's activities is suggested in the following

listing of its four Institutes and their organizational units. Institute for Basic Standards. Electricity. Metrology. Heat. Radiation Physics. Mechanics. Applied Mathematics. Atomic Physics. Physical Chemistry. Laboratory Astrophysics.* Radio Standards Laboratory: Radio Standards Physics; Radio Standards Engineering.** Office of Standard Ref- erence Data. Institute for Materials Research. Analytical Chemistry. Polymers. Metallurgy. Inorganic Materials. Reactor Radiations. Cryogenics.** Office of Standard Reference Materials.

Central Radio Propagation Laboratory.** Ionosphere Research and Propagation. Troposphere

and Space Telecommunications. Radio Systems. Upper Atmosphere and Space Physics.

Institute for Applied Technology. Textiles and Apparel Technology Center. Building Research.

Industrial Equipment. Information Technology. Performance Test Development. Instrumentation.

Transport Systems. Office of Technical Services. Office of Weights and Measures. Office of Engineering Standards. Office of Industrial Services.

* NBS Group, Joint Institute for Laboratory Astrophysics at the University of Colorado.

* * Located at Boulder, Colorado.
NATIONAL BUREAU OF STANDARDS

Technical Note 249

ISSUED OCTOBER 28, 1964

A PROGRAM FOR PLOTTING CIRCLES OF CONSTANT

OVERPRESSURE AROUND TARGETED POINTS

Mai Liis Joel and Douglas D. Lottridge

NBS Technical Notes are designed to supplement the Bureau's regular publications program. They provide a means for making available scientific data that are of transient or limited interest. Technical Notes may be

listed or referred to in the open literature.

For sale by the Superintendent of Documents, U.S. Government Printing Office- Washington, D.C., 20402 - Price 40 cents

Contents

Page

List of Illustrations iv

1

.

Introduction _ 1

2. The Maps 3

3. The Program _ 3

3. 1 General 3

3. 2 Inputs : 3

3. 3 Poutines 5

3.4 Outputs 2

3. 5 Operation 24

4. Future Plans 26

5. Acknowledgements 26

6. References 27

Appendix A: Card Formats

Appendix B: Program Listings

m
List of Illustrations

Page

Figure 1. Lethal Radius Plot Program Flow Chart 4

Figure 2. Phase I - Part 1 Flow Chart 6

Figure 3. Phase I - Part 3 Flow Chart 8

Figure 4. Standard Parallels of Lambert Conformal

Conic Projection 9

Figure 5. Detail of Lambert Conformal Conic Projection 9

Figure 6. Phase II Main Program Flow Chart 12

Figure 7. CIRCLE Subroutine Flow Chart 14

Figure 8. CalComp Plotter Moves 18

Figure 9. Basic PLOT Subroutine Flow Chart 21

Figure iO. SYMBOL Subroutine Flow Chart 22

Figure ii. Semi-Buffered IBM 709-7090 Tape Write Routine

(TRW2) 23

Figure 12. Plot Tape Format 25

IV
A Program for Plotting Circles of Constant Overpressure

Around Targeted Points

by

Mai Liis Joel

and

Douglas D. Lottridge

Abstract

The Defense Communications Agency is responsible

for locating its communications facilities in a manner

that will maximize the probability of maintaining communication in the face of nuclear attack. This report describes a program written for the IBM 7094 which produces as its final output one or more tapes to be used

as input to a CalComp 570 plotter system. With these

tapes the plotter can produce overlays for use with the

series of World Aeronautical Charts covering the

Continental United States. The overlays comprise circles

representing a radius of constant overpressure around

the target point of a given nuclear weapon. Based on

hypothetical attacks the overlays provide the user with

a means of visualizing the hardness required of facilities

to survive in particular areas.

1. Introduction

The Defense Communications Agency (DCA) is responsible for the

design and implementation of a world-wide communications network.

Inherent in such responsibility is the need for DCA to determine

where facilities should be located. There are some obvious restrictions in the placement of facilities. Certainly it would be impossible

to put facilities in areas controlled by unsympathetic alien powers.

Additionally, it is impossible to place facilities in areas which are

topographically restrictive. But aside from these more clearly discernible restrictions, certain other limitations are imposed.

A major consideration in the design of a modern military network

is the maximization of the probability of network survival in the event

of a nuclear attack. The National Bureau of Standards (NBS) was

asked to develop a method for presenting graphically the danger areas

within the Continental United States (CONUS) where communications

facilities might be destroyed if a nuclear attack were to take place.
There are many known effects from a nuclear blast; NBS was

asked to consider, at the present time, only the direct blast effect.

Data for the project are based on hypothetical attacks which are

designed within the Defense Department.

The destructive power of a bomb at a point can be mea&ured in

terms of peak overpressure in pounds per square inch (PSI). This

overpressure can be calculated from two bomb parameters, height of

burst and yield. The distance from the bomb at which the overpressure is calculated is often referred to as the "lethal radius" for

that particular PSI value.

The strength of a facility of the communications network to withstand the blast of a bomb is measured in terms of "hardness. " If a

facility is hardened to 2 PS I, this means that, in all likelihood, it can

withstand the blast of bombs with overpressures which are less than

2 PSI at that point. However, if a bomb were to produce an overpressure of 3 PSI at that point, it is likely that the facility would be

destroyed.

A factor known as "circular error probable" (CEP) is introduced

because it is likely that a bomb targeted at a specific point will not land

exactly on that point, but rather -will land somewhere in the vicinity of

the target. It is possible, therefore, that a facility located

immediately outside the lethal radius might be destroyed if the bomb

actually hit off target in the direction of the facility. An allowance for

this possibility is introduced by adding a specified number of CEP's

to the lethal radius. It should be noted, however, that adding CEP's

will increase the probability that something located within the radius

could actually withstand a blast. The probabilities of these occurrences for given numbers of CEP's have been calculated.

NBS has written a computer program which produces as its final

output a magnetic tape which is used as input to the CalComp 570

Magnetic Tape Plotting System. With this tape as input, the CalComp

plotter will produce overlays for the series of World Aeronautical

Charts (WAC charts). Each of these overlays contains circles which

represent lethal radii (including a specified number of CEP's) around

targeted points. Each circle bears a label of the PSI value which it

represents. By placing an overlay on the appropriate map, then, it is

possible to see to what PSI value a facility would have to be hardened

in order to withstand the particular nuclear attack being considered.

It should be emphasized that this program does not consider all

factors which are essential to the optimal placement of facilities. It does, however, provide readily available guidelines for determining

the required hardness of a facility in a particular locale. It eliminates

the need for laborious hand calculations and manual mapping.
2. The Maps

Before the programming effort began, it was necessary to select

an appropriate map series. It was decided that a scale of 1 inch = lO

to 20 miles provided enough detail without requiring too many maps to

provide practical coverage of CONUS. The World Aeronautical Chart

(WAC) Series was selected because of appropriate scale (1 inch =16

miles) and availability. Because the charts are in the Lambert Conformal Conic Projection, the algorithm to convert geographic co- ordinates to x, y coordinates is somewhat more complex than would be

required for conversion from a rectangular projection. The algorithm

is discussed in more detail in the section entitled Routines.

3. The Program

3. 1 General

This program is written in two phases, both coded for the IBM

7090/94 computers.

Phase I is divided into three parts: the first generates the lethal

radius and tags each bomb with the appropriate WAC identification;

the second sorts the bombs into ascending WAC chart order; and the

third generates the x, y coordinates of targeted points and produces

the input tape for the second major phase.

Phase II of the main program calculates the codes required to

produce circles whose radii correspond to specified overpressures.

These codes, as well as control and labeling codes, make up the plotting tapes which are the main outputs of Phase II. A general flow chart of the entire program is presented in

Figure 1.

3. 2 Inputs

This section briefly discusses the data and control card input re- quirements for the program. Specific details concerning the formats

of all of these cards are presented in Appendix A.

The attack data cards are accepted by Part i of Phase I in a format

which was chosen to make the input compatible with that of the National

Military Command System (NMCS) Rapid Damage Assessment (RDA)

model. Bombs targeted at the same point should be grouped together in

the data deck so that the program can take advantage of the duplicate

point deletion feature which is discussed in the section on Routines.

Two or more cards containing control and parameter items are

placed in front of the data deck. These give the program flexibility in

tape assignment, type of output, number of CEP's to be added to the

lethal radii, number of radii to be calculated for each bomb, PSI
PROGRAM AND

DATA DECK IN LAT.-LONG.SORT

ON SYSTEM

INPUT TAPE

OPTIONAL LISTING OF

BOMB DATA a

APPROPRIATE

MESSAGES

BINARY TAPE

WITH BOMB DATA,

LETHAL RADII,

AND WAC

IDENTIFICATION

PHASE I

PART 2

(SORT)

TABLE OF

CALCULATION

CONSTANTS

FOR COORDINATE

ROUTINES

BINARY TAPE OF

PARTS

OUTPUT SORTED

BY WAC

IDENTIFICATION

BCD TAPE OF

XY COORDINATES

AND LETHAL

RADII FOR SPECIFIED WAC CHARTS!

PLOTTER

TAPE1S)

END

\

PHASEZE

FIGURE I. LETHAL RADIUS PLOT PROGRAM FLOW CHART
values to be considered in calculating the radii, number of altitude

categories to be considered, and coefficients associated with each

altitude calculation. A single control card behind the data deck flags

the end of the deck.

The input to Part 2 of Phase I is the binary output tape from Part 1. The required control cards for Part 2 (the IBM IBSYS Sort routine) are

coded specifically for this sort and are included in the program

package.

There are two input tapes required for Part 3 of the first major

phase. One is the sorted tape from Part 2; the other is a binary tape

(NBS number 1151) of computational constants for each WAC chart.

(These constants are discussed in the following section.)

A single parameter card is placed at the end of the Part 3 program

deck. Besides specifying the number of radii to be plotted around each

point, it allows the programmer to assign specific tape units to the

symbolically named tapes in the program.

Inputs to Phase II consist of the tape produced in Part 3 of Phase I (see section entitled Outputs for format description) and of one control

card which specifies the number of hardness categories with their

associated PSI values. The date of the run and an option for specifying

security classification are also included on the control card.

3„ 3 Routines

Part 1 of Phase I is composed of a main program and two subroutines, all written in FORTRAN. A general flow chart is shown in

Figure 2 and a program listing appears in Appendix B. The main

program performs general control functions, writes out any necessary

diagnostics, deletes duplicate bombs, and calls the following subroutines : CHART -- This subroutine performs the function of supplying the

appropriate WAC identification number for each bomb. The

identification number is twice the true WAC chart number for the

lower half of a chart, or one plus twice the true WAC chart number

for the upper half of a chart.

RL.ETH -- This subroutine contains the mathematics for computing the lethal radii. The algorithm used is one developed by the

RAND Corporation. The basic formula for calculating the lethal radii

was taken from Reference 2. The coefficients used for 5, 000-foot and

ground burst conditions were taken from a listing of the program

discussed in Reference 2. As soon as the lethal radius has been computed, the main program adds the specified number of CEP's to it. This gives the radius which is used in plotting.
READ PARAMETER CARDS ADO THE SPECIFIED NUMBER OF CEP'S

TO THE LETHAL RADIUS

REAO FIRST BOMB DATA CARD

WRITE BINARY TAPE

READ NEXT BOMB DATA CARD

Q

T IS 2nd YIELO LESS THAN 10 KILOTONS jy

ARE THE TWO \ I 'OINTS WITHIN 20 SEC.)— OF EACH OTHER ? J

I YES NO f IS THE 2nd N

I YIELD GREATER ? J

STORE 2nd CARD

VALUES IN FIRST CARD AREA

FOR FIRST BOMB

CONVERT LAT. a LONG.

TO DECIMAL DEGREES CEP TO MILES

YIELD TO MEGATONS

PRINT

SCI RECOROS

WRITE BINARY TAPE AND PRINT

BCI RECORDS

WRITE EOF

AND REWIND TAPES

c

IS BOMB

A GROUND BURST 2>

IS ALTITUDE OF BURST 50 FEET? >

SET ALTITUDE TO 5000 FEET AND SO

INOICATE ON PRINT TAPE

SUBROUTINE CHART

A SERIES OF IF STATEMENTS IS USEO TO DETERMINE ON WHICH CHART THE BOMB IS TAR- GETED. THE WAC

IDENTIFICATION NUMBER

FOR THAT CHART IS SELECTED FOR INCLUSION WITH THE BOMB DATA RECORD / SUBROUTINE \ _ \ RLETH /

CALCULATES THE LETHAL RAO 1 1 BY FORMULAS DISCUSSED

IN REFERENCE I.

FIGURE 2. PHASE I - PART 1 FLOW CHART
The duplicate point deletion feature in Part 1 eliminates redundant

plotting of radii around a multiple weapon target area. As cards are

read, the target coordinates are matched. If the geographic

coordinates are within 20 seconds of arc of each other the larger

yield is maintained with the coordinates of the first target. This

process continues until a bomb is found which is not targeted within 20

seconds of arc of the first one. At this point the coordinates of the

first bomb and the data of the one with the largest yield are made part

of the data for plotting. Then the process continues. Since the plotter

is insensitive to distances of less than about 6 seconds on the WAC

charts, this feature produces virtually no information loss and

provides more readable charts.

Part 2 of Phase I is a sort routine run under the IBM IBSYS

Monitor System. Its purpose is to arrange the binary records on the

Part 1 output tape into ascending order by WAC identification number.

The routine was written by IBM and is found on the IBSYS Monitor

tape. The control cards required to call the routine are included as part of the program package. Detailed information may be found in

Reference 3.

Part 3 of Phase I is a FORTRAN routine which prepares the final

Phase I output tape. This tape is used as input to the plotting routines

of Phase II. A flow chart of Part 3 appears in Figure 3, and the

program listing is given in Appendix B. This routine requires some

detailed mathematical procedures to convert geographic positions to x, y coordinates for the WAC overlays. In order to describe the computational procedure a description of the Lambert Conformal Conic

Projection must be given.

This projection is of the type which preserves angular relationships in mapped areas. The latitudes (parallels), therefore, are

portions of concentric circles and the longitudinal lines (meridians)

will intersect at either the north or south pole depending upon whether

the mapped area is in the northern or southern hemisphere. (If the

central latitude of the projection is the equator the meridians will be

parallel. ) A given chart will normally be based on two standard

parallels. The mathematical relationships among points on the chart

are calculated by considering the two standard parallels as the points

of intersection of a cone with a sphere. Figure 4 will help clarify this

point.

The absence of immediately available values for the angular scale

constant and for the meridian radii to given parallels presents a problem in expanding the use of this program to areas outside CONUS.

It should readily be seen that any change in standard parallels will

change the shape and size of the intersecting cone so that the lengths

R and r (see Figure 5) and the angular scale factor will vary. While

this problem may not be insurmountable, considerable effort would be

required to derive formulas for computing the necessary constants.
(START)

READ

PARAMETER CARD

SET NMAPS=0

READ RECORD FROM DATA TAPE

READ RECORD FROM

CONSTANTS TAPE

J ARE WAC N

IDENTIFICATION ) NUMBERS EQUAL ?J

NMAPS = NMAPS+ I

CONVERT WAC

IDENTIFICATION TO REAL WAC NUMBER

WRITE OUTPUT TAPE

WITH WAC CHART NUMBER AND ITS TOP Y ITY I

CALCULATE X COORDINATES

OF POINT

SCALE LETHAL RADII FROM MILES TO INCHES

WRITE OUTPUT TAPE

WITH X,Y COORDINATES AND LETHAL RADII

READ NEXT

RECORD FROM

DATA TAPE

IS THE WAC

IDENTIFICATION NUMBER THE SAME

AS THE LAST ONE? 4 NO

WRITE OUTPUT TAPE

WITH X = 99.99

/ is the wac "n

(identification No. / V 999 9? /

TY = 99.99

REWIND TAPES -/end)

FIGURE 3. PHASE I~ PART 3 FLOW CHART
TWO STANDARD

PARALLELS

FIGURE 4. STANDARD PARALLELS OF LAMBERT CONFORMAL CONIC PROJECTION

FIGURE 5. DETAIL OF LAMBERT CONFORMAL CONIC PROJECTION

9
The formulas for calculating x, y coordinates were developed by

NBS from information contained in Reference 1. Figure 5 will help

to show how the equations were derived.

To calculate the x, y coordinates of the given geographic point 0,

\, the origin (0, 0) is set at that point with geographic coordinates P,

M. Each chart has an upper and lower parallel with latitudes p and P

respectively and a central meridian with longitude M. Values for r, R, and k (defined below) are available from Reference 1 for the WAC

chart series of the United States with standard parallels of 33° and 45°.

The calculations are as follows:

R-Z _ P-0

R-r P-p

Z = R - (P-0)(R-r) or P-p

Let 8 = M - \

and k = a scale constant for angular correction (required when representing a spherical surface on a plane surface).

Then A = k9

x = Z sin A

y = R - Z cos A

It is now appropriate to specify the contents of the tape of

constants (NBS 1151) which is used as input to Part 3. For each chart

the tape contains the WAC identification number, the central meridian

(M) of the chart in decimal degrees, the maximum value (TY) in

inches on M, the unsealed meridian radius (R) in meters to the lower

parallel, the unsealed difference (R-r) in meters between the meridian

radii to the upper and lower parallels, and the latitude (P) of the lower

parallel. The meridian radii to parallels are given for 30-minute

intervals in Reference 1. The symbolic names used for these

quantities in the program may differ from those used in this description because of FORTRAN requirements and the desire for simplicity

in this presentation.

Eight subroutines and a main program which calls these subroutines make up the Phase II program package. The main program

and the CIRCLE and CONVRT subroutines were written at NBS

specifically for this project. The remaining subroutines are more

general, being part of the Standard CalComp On-line Off-line Plotting

10
(SCOOP) package. See Reference 4. — However, two of these subroutines (PLOT and MSG) have been modified for use in this program

and, therefore, should no longer be considered general purpose plotting routines.

The remainder of this section contains descriptions and flow

charts (when necessary) of the routines used in Phase II. Figures 9,

10, and 11 have been taken directly from the SCOOP manual. Because

of its importance in this problem, the CIRCLE subroutine is described

in much greater detail than the others. Appendix B contains listings

of all routines in the form required by this program.

Phase II Main Program -- The main program, which is written in

FORTRAN, reads the input tape and control card, calls the various

subroutines necessary for producing a plotter tape, and produces a

listing which shows the correspondence between WAC coverage and

location (picture number) on the output tape. See Figure 6. CIRCLE (CY,R, M.NUMB) -- This FORTRAN subroutine

calculates the moves required to produce circles with specific radii.

CY represents the y coordinate of the center of the circle and is

expressed in floating point inches from the origin. R is the radius in

inches, also expressed in floating point. The last two arguments

(M, NUMB) are outputs used to call the internal subroutine CONVRT.

The transfer vector is convert; that is, the subroutine transfers to

CONVRT. See Figure 7.

In order to understand how CIRCLE works, it is necessary to

know the following two facts about the CalComp plotter: (1) the plotter

can move in eight directions; and (2) each move has a 0. 01 -inch projection horizontally or vertically, or both. CIRCLE produces a certain number (NUMB) of integers (M) from to 8. These integers

correspond to a "no move" code (0) and to the eight possible plotter

moves. See Figure 8.

If a circle is divided into eight sectors, a certain combination of

only two plotter moves is required to draw the arc for any given sector

For example, the arc from 0° to 45° may be drawn using only north

(1) and northwest (8) moves. Similarly, the 45° to 90° arc would

require only northwest (8) and west (7) moves, and so on. As long as whole circles are drawn this remains true.

1/

Permission to reproduce material from Reference 4 was given

by California Computer Products, Inc. This material may not

be reproduced except when authorized by that company.

11
1

I TAPE = I

I PICT = I I

CALL PLOTS

(DATA (3000),

3000 ) I

READ NRINGS

ISEC, PSI ( JJ)

I

PRINT

DATE

AND

TITLES

REWIND

A5 8 A6

/call SYMBOL

/l 0.0, 0.0, .07,3,'

\ o.o,-i )

CALL SYMBOL

(-.8, -.8, -.28,

XMAP.0.0,7)

I SEC:

CALL SYMBOL

(1. 2, -.8, .28,

6H SECRET, 0.0,

6)

CALL SYMBOL

(0.0, TY, .07,

3, 0.0, "I

)

> / CALL PLOT

V—M (36.0,0.0,-3)

/CALL PLOT \ | |p|CT^., p|CT +

( ICX, CY, 3)

J | "____

6

FIGURE 6. PHASE 01 MAIN PROGRAM FLOW CHART

12
CALL PLOT

(CX, CY, 2 ) I

I R = I

FRSTX=CX+R (IR)

CALL PLOT

IFRSTX.CY.3)

I

CALL PLDT

(FRSTX.CY.2)

CALL CIRCLE

(CY.RllR), M,

NUMB )

CALL SYMBOL ^ (FRSTX.CY.-.Wy

k PSl(lR),90.0,4)/

I

IR: N RINGS IR-MR + I

FIGURE 6. (continued )

13
1 = ENDSW=0

X = R

Y = RSQ= R**2

XS0 = RSO

YSO = Q

I

I*— I + I B0UND=CY+Y

(

x;0 X "

v< ,

V-** N Q = 1

1 *^ , r*

NQ = 5 <£-f Y : J

NQ=7

>

NQ = 3

>U

NZ= I

NZ=0

DEL=XSO+YSO-RSG

NZO=NZ + NQ

IF NZQ=I, GO

TO 10, IF 2, GO

TO 20, etc.

FIGURE 7. CIRCLE SUBROUTINE FLOW CHART

CALL CIRCLE(CY, R, M, NUMB)

14
muuo

NUMB = 1/2

K = I-I

I = I

J =1 + 1

CALL CONVRT

(NUMB, m(D,

m (J) )

I: k

1 = 1 + 2

END

f ENDSW ; )

12

f DEL: )—V BOUND: 9.5 )JZ_p»

BO UND .'9.5 ] &

m (D = |

m U) = 8

m (i) =7

XS0'*-XS0-.02X + .0001 x-«— x -.oi

YSQ-*—YS0 + .02Y + .000!

Y «*— Y + .01

6

FIGURE 7. I continued

15
("del: o V » @

M (I) = 7 >

del: o

BOUN D : 9.5 j->-

I

M( I) =6

M(I)=7

I

YSQ-*-YSQ-.02Y +.OOOI

Y *- Y -.01

J-\.

XSQ *"XSQ - .0 2X +0001

x-*-x " .01

/ del: o j

bound: -.5

I

f bound: 9.5 V-> M(I)=0

in

M(I) = 5

f del: o \

jCN

>\ r bound: -.j M(I) = 4

*{

M(I)=3

. ^^

XSQ-—XSQ +.02X +.0001

x-^-x + .01

YSQ -*- YSQ +.02Y +.0001

Y«*— Y - .01

6

FIGURE 7. (continued ) 16
del: o

M(I) = 3

M(I) = 2

del: o 1

BOUND : -.5

M (I) =3

51

YSQ -«-YSQ +.02Y+-OOOI

Y-^-Y +-OI

XSQ -*"XSQ +.02X +-000I

X-«—

X

-r\

ENDSW=I

del: o I

BOUND .' -.5

FIGURE 7. I continued)

1 7
(-x)

(-x, -y)

(-y)

(+x, -y)

Figure 8. CalComp Plotter Moves

However, if truncation is necessary to prevent hitting the physical

stops at the top or bottom of the plotter, the number of possible plotter

moves in any given sector may become as high as four. In these

instances substitutions for one or both of the two original moves are

made. For example, if in moving from 0° to 45° either a north (1) or

a northwest (8) move would exceed the physical limits of the plotter, a "no-move" code (0) and a west code (7) would need to be substituted

for the two original moves. This action would produce a straight line

at the top or bottom of a circle and would indicate that the circle had

been truncated.

Phase II has been programmed so that when CIRCLE is called

the codes have already been produced for positioning the plotter pen

at 0° on the circumference of the circle to be drawn. Since this is true

it is possible for programming purposes to consider the center of the

circle as being at a point x = 0, y = 0. The initial point on the circumference then becomes x = r, y = 0. With these new reference points it is relatively simple to determine which sector is being drawn and,

therefore, which moves are possible. To determine the sector, one

needs only to compare the x and y values with zero and the absolute

values of x and y with each other.

To determine which combination of the two possible moves for a given sector will produce the most perfect circle, the formula for a circle with center at (0, 0) is used:

2 2 x + y =

18
To determine whether, for example, a north or northwest move is

preferable, the value x2 + y

2

- r 2 (del) is computed. If del is equal

to zero, the pen is positioned exactly on the circumference of the

circle. If it is less than zero, the pen is inside the circle, and if it is greater, it is outside. The value of del, then, indicates the best

next move in order to stay closest to the perfect circumference. Each

time a move is made the x and/or y value is changed by 0. 01 inch for

the next calculations.

For obvious reasons, tests to determine whether truncation is

necessary cannot be made using the hypothetical center x = 0, y = 0. Instead, the true center y (CY) value of the circle relative to the overlay is used for truncation tests. The true center x value is never

needed, since truncation will occur only at the top and/ or bottom of

an overlay.

When a circle is truncated, the deleted portion of the circle is not

plotted on the adjacent overlay. Although it is relatively simple to

visualize the continuation of a truncated circle, it is currently impossible without examining surrounding overlays to know whether or not

the area under consideration is affected by bombs targeted near the

boundaries of adjacent charts. Further programming would be re- quired to enter parts of circles with centers on adjacent charts. (This

is under consideration in future plans. ) CONVRT (NUMB, M(I), M(J)) -- This internal machine language

(FAP) subroutine converts a certain number of integers (M) produced

in CIRCLE into actual plotter moves. NUMB is the number of computer words (two moves to one word) needed to store these moves.

The subroutine then transfers to PLOT with certain control codes as arguments; these codes permit the incorporation of circle-producing

plotter moves into the main buffer area.

MSG -- This short, internal, FORTRAN subroutine is used for

on-line messages to the computer operator. The original SCOOP

version has been modified slightly to aid in producing the listing

described! under MAIN.

PLOT (X, Y,IPEN) -- The primary purpose of this FAP subroutine

is to move the pen from its current location to a new one. The

secondary purpose is to signal the end of the plot. X and Y are the

coordinates of the point to which the pen is to be moved. The up or down condition of the pen during movement is specified by the magnitude of IPEN, where 1 = no change, 2 = pen down, and 3 = pen up. If the sign of IPEN is positive the entrance is a normal plot entrance; if it is negative the entrance is an end-of-plot entrance and the following

occurs

:

1. The output buffer is written on tape, and

19
2. A new reference point is established by storing zero in the

present pen position.

The subroutine has been modified to permit the insertion of circle

producing codes into the main buffer area. The transfer vector is

TRW. See Figure 9.

PLOTS (BUFFER (N), N) -- This short FAP subroutine sets up the

tape write routine. BUFFER(N) is the first of N consecutive locations

to be used as an output buffer. The transfer vector is TRWS

SYMBOL (X,Y, HEIGHT, BCD, THETA.N) -- This FAP subroutine

draws alphanumeric characters and special symbols on the plot. The

coordinates of the lower left-hand corner of the characters are specified for alphanumeric characters; the coordinates of the center of the

symbol are specified for special symbols. X and Y are the coordinates

of the first character. HEIGHT represents the character height.

BCD is the location of the characters to be printed out or the actual

string of characters in the form nHxxxxxx. THETA is the angle with

the horizontal at which the characters are to be drawn. The absolute

value of N is the number of characters to be drawn. If N is positive,

the pen will be lifted between characters. When plotting symbols, N

should be negative. Transfer vectors are PLOT and the system subroutines SIN and COS. See Figure 10.

TRW (BUFFER) -- This FAP subroutine writes the CalComp

plotter commands on tape from an area called BUFFER. If more than

one output tape is required, a transfer to MSG takes place.

TRWS (L(B)) -- This FAP subroutine initializes the write buffer.

L(B) is an address containing the following:

PZE BLOCK, , m

BLOCK is the first of m consecutive addresses containing the m words

to be written on tape. See Figure 11 for both TRW and TRWS.

3. 4 Outputs

The output from Part 1 of Phase I is normally only a binary tape

containing one record for each bomb. Each record contains a WAC

identification number, latitude and longitude of the targeted point, and

the computed lethal radii to be plotted around that point. The last

record contains a false identification number of 9999 to indicate the

end of the data. One field of the first parameter card allows the user

to call for a BCI printout from Part I. This printout contains detailed information on all bombs to be plotted. Such information includes latitude and longitude of bomb target, altitude category for

height of burst, yield, CEP, CEP multiplier for this run, and the

lethal radius for each PSI value specified. If any heights of burst have

been altered for computational purposes it will be so stated

20
BASIC PLOT SUBROUTINE FLOW CHART

CALL PLOT (X.Y.I C)

ROUND a CONVERT

lOOxXftlOOXY TO

INTEGERS, NX a NY. AX=NX-NPX

AY=NY-NPY NPX=NX NPY=NY

OUTPUT II CHARACTER

TO PLOTTER. NA=NA-NT

OUTPUT IXY CHARACTER

TO PLOTTER

COMPUTE

XY-MOVE CONSTANT,

IXY,FROM

IX AND IY.

note:npx andnpy represent

present pen position and are initially zero.

NR=|AY|

NT=|AX|

II=IX

IX= POSITIVE X-MOVE

CONSTANT.

IX=NEGATIVE X-MOVE

CONSTANT.

IY = NEGATIVE Y-MOVE

CONSTANT.

NR = |AX| NT = |AY|

II=IY

IY= POSITIVE Y-MOVE

CONSTANT.
SYMBOL SUBROUTINE FLOWCHART

CALL SYMBL4 (X,Y,H,BCD.THETA,N

R=THETA*0.007453

SI=SIN(R)

CO = COS(R)

FCT= H/7

XA=FCT*CO

YA = FCT*SI

XT=6xXA

YT=6xYA

1= I

EXAMINE SYMBOL

TABLE FOR DATA

TH

ON I— BCD character: no = no. of offset

PAIRS TH

NX(K)=K —

X- OFFSET TH

NY(K)=K —

Y -OFFSET

S=POSITIONING CONSTANT

YES

SET LINKAGE TO LIFT PEN,

IC-3

SET LINKAGE TO LIFT PEN

IC=3

K=K+I

IC=2

CALL PLOT

(XN.YN.IC)

XN=X+XA*NX(K)

-YA*NY(K)

YN = Y+YA»NX(K)

+XA*NY(K)

X=X-2 (XA-YA) Y=Y-2 (XA+YA)

MOVE PEN, CALL PLOT

(X.Y.IC)

Figure 1

22
SEMI BUFFERED IBM 709-7090

TAPE WRITE ROUTINE (TRW2)

INITIALIZE WRITE BUFER

MOVE NEW DATA

INTO BUFFER START TAPE

WRITING

SET TAPE

DENSITY. WRITE BLOCK ADDRESS 99a

MESSAGE

TO CHANGE

TAPE, HALT

BACKSPACE TAPE EXECUTE TAPE

WRITE TO CLEAN

BAD SPOT TRY

TO WRITE AGAIN

Figure 11

23
immediately before the data for that bomb. There will also be an

appropriate message before each bomb that has been deleted from the

plot tape because it falls outside of U.S. chart limits. Bombs which

are deleted because they are duplicates of other bombs do not appear

on the printout,, Since valuable time is used in forming the print tape

and in printing, there should be a real interest in some part of the

printout before it is requested.

The output from Part 2 (the sort) is a binary tape containing the

same record format as the binary output from Part 1 except that the

records are arranged so that the WAC identification numbers appear

in ascending order.

The output from Part 3 is a BCD tape which is used as input for

the plot routines in Phase II. The tape is arranged so that there are

at least three records for each WAC chart. The first record contains

the WAC chart number and the top y value (TY) which is used as a reference point. The second record contains the x, y coordinates of a point and the lethal radii to be plotted around the point. There are

additional records for as many more points as appear on that chart.

The final record is in the same format but the x value is set to 99. 99 as a flag to indicate the last record for a given chart. To indicate

that the last chart has been considered, a dummy chart number is

specified with a TY of 99. 99.

The primary output from Phase II consists of one or more BCD,

low density (200 b. p. i. ) tapes. These tapes contain all control and

data codes necessary for plotting overlays for targeted WAC chart

areas. Figure 12 illustrates the tape format required by the CalComp

system. A more detailed description of this format may be found in

Reference 4. Another output from Phase II is a computer listing showing the relationship between WAC areas and their location (picture

number) on tape. This listing permits the user to select and plot only

the areas of interest. The final output of the program consists of the

overlays produced on the CalComp 570 system.

3. 5 Operation

Part 1 of Phase I is run under the NBS Bell Monitor System. The

data deck follows the program on the system input tape with the parameter and control cards placed in the manner described in the section

on Inputs. Output from Part 1 should be assigned to channel A for

efficient entry to Part 2.

Part 2 is the sort from the IBSYS Monitor. The sort control

cards are read in on-line from the card reader. The tape to be sorted

is mounted on channel A but not readied until the on-line printer

instructs the operator as to which unit number to dial. The output

will be on channel B with the particular unit being specified on the online printer.

24
PLOT TAPE FORMAT

7/777777777?

PIOTTH COMMANDS

EOR Gap ///

« /////

Computer ID

lord (optional)

PLOTTER COMMANDS

Computet

10 Word W//777////7

Block Address

C B A S 4 2 1

1

1

1

11

1

11

1

1

» 1

1

1 1

1 1 1 1

1 1

1 1 1 1

1 11 1 *»**»

1 AjA,

1 AeA^

1 AjA,

1 n*!S 1 a#A/ ; 1

t 1 1 \

1 1 1 1 1 r 1 1 )

J

1 1 1

' 1 1 1 1 1 )

1 \

1

i 1 I

,

10 r

P.

Seventeen Syne

Characters Ten 4'$ Seven 3's

Block Address

Seven

Sync

Characters

1 c "0

\

]

]1 Uync

1 Characters

1

] J

1 SlailPkrt

1

. Code

1 X X

1 V Y

1 z Z

1 x X

1 \ Y

1 2 Z Dill 1 * X s To Ba

f 1 Plolltd

' Y

1 2 Z

1 ) [ X

1 1 ' Y

/

1 : . Z

1 Vlnlei-Recoid J C0dt> 1 ( )

c ) 1 EOR

Cap

Voplional)

" ' A .

1 1 1 1 1 1

1 X X

1 Y Y

1 Z z

1 X X

1 Y

i

Computet

ID loill (Optional)

Seventeen

Sync

Cneteclara >Ten n

Sevan re

. IntetReconl C0601

(on

I Cap

Figure 12

25
Part 3 is run under the NBS Bell Monitor System, There are

three program tapes which may be assigned to units by the control

card described in the section on Inputs. The output from Part 3 should be on channel A for efficient entry to Phase II. Phase II which also runs under the NBS Bell Monitor System uses

only two tape units in addition to the system units. The input should

be placed on tape unit A5 and the low density output tape will be written

on A6. If more than one output tape is needed, an on-line message

•will instruct the computer operator to save the tape on unit A6 and to

mount a new tape on that unit. All A6 tapes should be labeled and

saved for plotting.

When the user has selected the ¥AC charts which he wants plotted,

he needs only to refer to the listing produced in Phase II to determine

the tape and picture numbers which contain these charts. These

numbers should be transmitted with the appropriate tapes to the CalComp operator. The operator should be instructed to position the

plotter pen 1 inch from the bottom of the plotter paper before beginning

plotting.

When the appropriately labeled overlays have been produced, the

user should position them on the WAC charts in the following manner:

for WAC chart overlay numbers with a U suffixed, the reference

marks ( + 's) on the overlays should be placed over the charts at the

intersections of the upper and middle parallels with the central

meridian; for WAC chart overlay numbers with an L. suffixed, the

reference marks should be placed over the charts at the intersections

of the middle and lower parallels with the central meridian.

4. Future Plans

As time permits, two refinements should be made to the program.

The first is an addition to the circle subroutine to handle the plotting

of truncated portions of circles with centers on adjacent overlays.

This was discussed in the section on Routines. The second refinement

would be mainly for the convenience of the computer operator. Slight

reprogramming would make it possible to run all parts of both phases

under one monitor system.

5. Acknowledgements

The authors want to express their appreciation and thanks to

David C. Friedman of NBS for his guidance and direction in assisting

them to meet their program objectives.

The authors wish to give particular thanks to Peter S. Shoenfeld

of NBS. Mr. Shoenfeld did much of the original work in developing

the RLETH subroutine and in developing the algorithm used in the

CIRCLE subroutine. Many of his suggestions in the past several

months have proved helpful.

26
Thanks are also due to Mr. Eugene Kiley, of the Johns Hopkins

Applied Physics Laboratory, who was very helpful in checking out the

plotter tape control codes.

6. References

1. Oscar S. Adams, Lambert Projection Tables for the United

States, Department of Commerce, U.S. Coast and Geodetic

Survey. Special Publication No. 52, Government Printing

Office, Washington, D.C. 1918, pp 5-35.

2. W. J. Erickson and C. F. Schemmerling, Operational and

Mathematical Specifications for the Blast Vulnerability

Model, System Development Corporation, FN 5746,

August 3, 1961.

3. IBM 7090/7094 Generalized Sorting System, International

Business Machines Corporation, Programming Systems

Publications, Form C 28-6307-1, May 1963, pp 12-19-

4. James E. Newland and Robert Stomel, Reference Manual

SC OOP Programming System for Digital Incremental

Plotters, California Computer Products, Inc. , November

1963.

27
Appendix A - Card Formats

Data Card Format for Part 1 of Phase I (Columns other than those specified are ignored by the program. )

Columns Contents

19-24 Latitude in degrees, minutes, and seconds

26-32 Longitude in degrees, minutes, and seconds

55-57 Height of burst in hundreds of feet

58-60 CEP in hundreds of feet

69-74 Yield in kilotons

Parameter Cards for Part 1 of Phase I.

Columns

1-2

6-9

11

Card 1 (placed in front of the data deck)

Contents

"NTAP" - Numerical designation of the

Part 1 binary output tape. Column 1 designates channel (0 = channel A,

1 = channel B); column 2 designates the

number of the drive on the channel.

"N(DUT" - Code for the type of output

= binary tape only

3 = binary tape and BCI printout

6 = BCI printout only

"XCEP" - Specifies the number of CEP's

to two decimal places to be added to the

calculated radius. This enables the user

to include a probability measure in the

calculated radius around the designated

ground zero (DGZ).

"NRINGS" - The number of hardness categories for peak over-pressures (PSI values)

specified for this run.

28
Appendix A (Continued)

Columns Contents

14-17 M P(I)" - PSI values of overpressures to one

20-23 decimal place. From one to six values may

26-29 be specified beginning with the leftmost field.

32-35 Unused fields should be left blank.

38-41

44-47

Card 2

1 "NH" - Number of altitude categories, each

corresponding to a specific height of burst.

(While the program is written to accept up

to six heights of burst, polynomial coefficients

for calculations are currently available only

for ground bursts and bursts at 5, 000 feet.

If a different altitude is specified on a data

card, the program sets the value to 5, 000

feet for calculation purposes. )

2-9 "H(K, J)" - Polynomial coefficients for altitude

11-18 category K. Four coefficients are required for

20-27 each category; two categories fit on one card.

29-36 Coefficients presently available appear on the

38-45 card in the order H(l, 1), H(l , 2), H(l , 3),

47-54 H(l,4), H(2,l), H(2, 2), H(2, 3), H(2, 4). Since

56-63 the decimal place and sign may vary among co- 65-72 efficients, it is necessary to punch the decimal

point and a sign (a plus sign need not be

punched) into the field with the number.

Additional coefficients for more categories

would continue in the same format on additional cards. (Column 1 would be left blank. )

Last Data Card (placed at the end of the data deck)

69-74 "000000" - These six zeros indicate a bomb

with zero yield and flag the end of Part 1 of

Phase I. Because of the way the test is made,

it is imperative that a data card never contain

a yield of less than 10 kilotons. If it does, the

end of the routine will be falsely indicated.

29
Appendix A (Continued)

Columns

1-2

3-4

5-6

7-1

Control Card for Part 3 of Phase I

(placed at the end of the program deck)

Contents

"NRINGS" - The number of radii to be plotted

around each point in this run. "NTAP" - A two-digit number specifying

channel and unit number for the sorted data

tape, = channel A, 1 - channel B.

"ICC>N" - A two-digit number specifying

channel and unit number for the tape of WAC

constants

.

"K0" - A two-digit number specifying channel

and unit number for the output tape to be used

in Phase II. Phase II. Control Card

(to be placed at the end of the program deck)

Columns

1-2

Contents Example

3-4

5-12

13-16

17-20

21-24

25-28

29-32

33-36

Number of hardness categories. 02

This is equal to the number of

circles (maximum of six) plotted

around each targeted point.

To print SECRET on each over- 01

lay enter 01; to suppress printing

enter 00.

Date of run (used for plotting 05-30-64

tape identification).

PSI values associated with hard- 05.

ness categories. The number of 4- 02. 5

column fields used equals the

number of categories specified

in columns 1 and 2.

30
Appendix B - Program Listings

PHASE I - PART 1 PART 1 OF PHASE I OF THF LFTHAL RADIUS CIRCLE PROGRAM

NOUTaO FOR BINARY TAP^ ONLY

NOUT»3 F OR BINARY TAPF AND PCI PRINTOUT

NOUT=6 FOR BCI PRINTOUT ONLY

DIMENSION H(6»4) ,P(6) »NAMF( ?),P(M

COMMON NRINGS

RFAD 1 , NT AP,NOUT»XCEP, NRINGS* (P( I ) , I = 1,NRINGS)

1 FORMAT (I2»lXfIl»lX»F4.2ilXtIl»6(7X»F4.1))

READ ?» NH» UH(K,J), J=l,4)» K=1,NH)

? FORMAT (1 1,7 (FR.0»1X > ,F8 .0/ ( 8 ( IX ,F8 .0 ) )

)

IFINM

IPAGE=1

17 RFAD 3, ILAO. TLAM, ILAS* ILOD, ILOM, ILO^, KALT, CEP » XW

3 FORMATMRX, 31?, IX, 13. ?I?» ??X, 13, F3.0. 8X» F6.0)

14 RFAD 3, JLAD, JLAM. JLAS. JLOO, JLOM, JLOS, JA.LT, YEP, YW

IF(YW-9.)18»75»75

18 IFIN=0

GO TO 400

75 ZLATI=3600*ILAD + 60*ILAM + ILAS

ZLATJ=3600*JLAD + 60*JLAM + JLAS

IF( APSF(ZLATI-7LATJ)-20. ) 76*400,400

76 ZLONI=3600*ILOD + 60*ILOM + ROS

ZLONJ = "*600*JLOD + 60*JL0^ + JLOS

IF(ARSF(7LONI-7LONJ)-?0. ) 19t400»400

3? TF(XW-YW) ^00,1 4,14

>00 ILAD=JLAD

ILAM=JLAM

ILAS=JLAS

ILOD=JLOD

ILOM=JLOM

ILOS^JLOS

.100 KALT = JALT

CEP=YEP

XW=YW

C-0 TO 14

'400 XLAD=ILAD

XLA^=ILAM

XLAS=ILAS

XLOD=ILOD

XLOM=IL0M

XLOS=ILOS

31
XLAT=XLAD+XLAM/60.+XLAS/3600.

XLON = XLOD+XLOM/60.+XLO';./36no.

CEP=(CFP*100. ) /5280.

W = XW/.1000.

TF(KALT}?.0,55,?0

55 KALT=1

GO TO 60

?n J f { k' alT- c O) ?0, 5n,^n

30 TALT = KAl.T*100

35 PRINT 40, TALT

40 FORMAT (39H0ACTUAL HEIGHT OF BURST FOR NFXT BO^B = 1 6 » 59H FEET. HE

1IGHT SFT AT 5000 FEFT FOR COMPUTATIONAL PURPOSES.)

50 KALT=?

60 CALL CHART (XLAT, XLON, in)

4 no 6 1=1 .NRINGS

CALL RLFTH(W»P ( T ) ,KALT,H.R( I )

fi R( I ) = P( I) + XCFP*CFP

80 TF( IPAr-F)«^,QO,ns

85 PRIMT 86

86 FORMATdHl ) 87 IPAGF=0

90 IF(NOUT) 11 ,11 ,21

?1 IFUD-9999) 7,2?,7

22 PRINT 23

23 F0RMATC108H THE FOLLOWING BOMB IS TARGETEO OUTSIDE THE UNITED STAT

1ES CHART LIMITS AND DOFS NOT APPEAR ON THE PLOT TAPE.)

7 PRINT 8, XLAT, XLON, KALT, W, CEP, XCEP

8 FORMAT(14H0 BOMB DATA , 3X» 4HLAT=F7.2, 3X» 5HLONG=F7.2, 3X»

1 10H4LT. CAT. = T]» 3X, 6HYIFI_D = F5.? , 3X, 4HCFP=F4.2» 3X, 15HCEP MUL

1TIPLIFP=F4.2)

no 9 I=1,MPINGS

o pRfMT 10, P( I ) ,R{ I)

10 F0PMAT(4H FOR,F4.1,20H PSI, LFTHAL PAD I US= ,F6. 2

IF(ID-9999) 11,13,11

11 IF{N0UT-5) 12,12,13

12 WRITE TAPE MTAP, ID, XLAT, XLON, ( R ( I ) , I = 1 ,NR I NGS

13 IF( IFIN)500,5,?r>0

500 PRINT 550

550 F0RMATI41H ERROR FOUND IN IFIN TEST AT STATEMENT 13)

5 IF(N0UT-5) 15 » 15 16

t c j n = 9Qoo

WRITF TAPF MTAP, ID, XLAT, XLON, (R(I), T=1»NRINGS]

FND FTLF MTAP

REWIND MTAP

16 r~ALL SYSTEM

FND

SUPROUTINE CHART

SUBROUTINE CHART (XLAT, XLON, ID)

IF(XLAT-040. )0 010,0010,0020

001.0 IFIXLAT-036. )0030»0040,0040

nn?o y F ( XLAT-^44. )OO50»0050.nO6n

omn TF(XLAT-o^?. )nn7o,00.Rn,o0P^

32
nn^n Ff XLflT-~?R,, ) noon, 0100. 01 00 onso i F(XLA T -047, )on 0, ^1]0. O] 70

0060 , FfXLAT-'MR. )01 30

130, oo65

00^5 ] F(XLAT-^5°, )^]4n. 14 0. 16^0

0070 ; F(XLAT-028., (0150. 0160. 0160

0080 ; Ff XLAT-^34, )0170, 0180. 0180

OOQ^ 1 FfXLON-lO^, lOP^Oi 2 5 1 0760

Oin^ 1 F ( XLGN-1O0

,

)O270, 0770. O780

on 1 F(XLON-]Oi , ) ? q n , 0?on, O-300

01?0 1 F(XL0N-10l

,

)0310, o?io. O^po

0130 1 F(XLAT-046, ) n t on

,

01Q0. o?on

n-j 40 ] F(XL0N-1 14,, ) 0^30< n ^iO, 0^40

°1^° 1 F(XLA T -"?f , , ) 1 f> 5 . ~> 7 , n?on

oi 5* : Ff XLAT-P24,, ) 1 600, 0710. 021

oi^o 1 F( xt.AT- r>^n ( , ]n?w, 0740 074°

017^ 1 Ff XL0M-0Q4,, ) " 3 5 < 0360. 03A0

oiro i F(XL0N-0O4,, )0i7n,.0380. 3R

0190 F(XL0N- ri Q3,, jo^qo. 0400. 0400

O700 ] F( XL0M-0O3,, )0410- 0410- 0420

o?io ] F(XLON-0Q7,, )0430i 0440. 0440

0720 1 Ff XL0N-0Q7,, )04 c>0 .0460 ,066

0730 ' F(Xl.ON-oof , JO 470- 0400 ,04«0

074O ] F(X|. ON-^of, , ) ^400 0500 ,0^00

0?50 1 rt'(XLON~nRft , ) OR i ,0510 ,0520

n?fio 1 F(XL0N-1 14 , ) o=,?o..O ci40 , 1540

0770 ] F ( XLOM-n Pft , ) 5 5 ,05 = .1560

0?R0 1 •FfXLON-1 14 ,) ^70 ,0^80 .0580

0?on Ff XLON- n "

, ) rn^on ,0^00 .0600

0?no r F(XLON-]OQ . )0610 .0670 ,"67^

310 1 "F(XLON-0R5 . I0630 .0630 »0640

0370 ] F(XLON-109 )O650 .0660 ,0660

0330 ; Ff XLON-105 . )O670 ,0670 >0680

0340 1 Ff XLON-1?^ . ) 06°0 ,0700 ,0700

0350 1 F(XL0M-0,Q7 . )O710 • 0710 ,0770

0?f,n FfXLON-lOR , ) 07-30 ,0740 .0740

0^7 n 1rpf XL0N-0R7 ,) 07^0 ,07^0 .0760

O-sft'-i

' F f X[. ON'-l ^R . ) 7 7 »07P0 .0780

n ^ p 1 F(XL0N-O77 , )^7qo ,0700 ,OP00

040° 1 fFfXLON-lOQ . ) 0P"[0 .0870 OR70

0410 1 •Ff XLOM-077 , ) 0R10 >0830 .0840

O4?0 [FJXLON-109 , ) 0R5O ,0860 .0860

04^0 [F(XLON-085 . )04^1 »0435 »] 600

04^1 [F(XL0N-079 . ) 1600 .0415 »04^5

04 3 5 rr>=1050

? FTURN

O44O [FfXLON-103 . lOAA^ ,04£5 ,1600

0445 fD=1044

? FTURN

06^0 rF(XLON-^R^ . J0451 ,04^1 .1600

04=11 rF(XL0N-070 , ) 1 600 , U =i c .045^

04 55 I = 10 M

?FTURN

0460 [FfXtON-10? , )0465 .0465 .1600

0465 [T)=1045

?FTURN

0470 [F(XL0N-09O . )0R65 ,0865 ,OR70

04R0 rF(XL0N-102 • JO&PO 08°o »0R00

04 c>0 [Ff XLON-00O , )"ono ,09^0 ,oq]

O500 rF(XL0N-10? ,

) 0Q7 ,0q^0 ,0oin

nc,\ n [F(XL0M- A 7q . ) 4 ,OPiO , no^n

05?0 ! c f XLON-093 . )0960 ,OQ60 , oq7n

O^o fF(XL0N-107 ,

) OOPO ,0Q80 ,OQO0

0^40 rF(XLON-l ?1 . ) 1 000 1010 .101

0550 IF(XL0N-079 . )10?0 ,1020 ,10^o

056° IF(XLON-Oqt . ) l^ao » 1.04 .1 P^O

35
0^70

0*fi0

0=.90

06on

0610

06?o

0640

0650

0660

0670

6 80

0690

07on

0705

0710

0720

0730

0740

0750

0760

0770

0780

07O0

OP on

0«1

0820

0830

0840

08*0

0860

0865

0870

08P0

OpoO

ngoo

0910

0920

0930

OQ40

0Q45

O050

0960

0970

0Q80

09^0

1000

IFfXLON

IF(XLON

IFfXLON

IFfXLON

10=061

?

PFTUPN

IP (XL ON

IF (XL ON

IFfXLON

10 = 06]"?

RETURN

TFfXLON

IFfXLON

10=0434

RETURN

ID=0432

RFTURN

TFfXLON

T0 = 04"»0

RETURN

TFfXLON

10=0816

RETURN

IFf XLON

IFfXLON

TFfXLON

10=0817

RETURN

IFfXLON

TFfXLON

TFfXLON

TFfXLON

IFfXLON

IFfXLON

IFfXLON

TFfXLON

IFfXLON

IFfXLON

IFfXLON

ID=09?6

RFTURN

I 0=09^8

RETURN

IFfXLON

TFfXLON

ID=09?7

RETURN

ID=09?Q

RETURN

IFfXLON

IFfXLON

I0=07]4

RETURN

10=0716

RFTURN

10=071

8

OFTU"N

TD=07?0

RETURN

10=0722

RETURN

10=0724

PFTURN

TP = 07?6

ccji ipm

107. )1060»1060.1070

121. ) 1080.1090,1090

077 # )1100,llin,H10

00^. ) ] 120,1130,1130

•117. )1 140, 1140,1 1<S0 -077. ) 1160,1170,1 170

-Oq?. ) i 1 80,1190,1 TOO

117. )1200, 1200, 1210

•096. ) 1?20, 1280*1280

-13?. )0705, 07f> ei,l60O

-080. ) 1 ^40,1 250,1 ?50

•101. )1260,1 260,1270

115.11 ^PO, 1290*1290

080. ) 1 300, mo, 1310

101 . 115.

•069.

0P5.

101 . •117.

069.

085.

101.

•117.

•084.

)1320,

) 1 *40,

) 1360,

n^pr>,

) 1 400,

M420*

) 1440,

) 1460,

) 14-80,

) 1 SOO,

) 1S?0,

1820,

1350,

1 -370.

1 390,

1400,

1420,

1^50.

1470,

1480,

1500,

15^0,

1 330

1^70

1 ^n

141

1480

1450

1470

1490

151 "

1 580

•108. ) 1 ^40,1540,1 SSO

-PP4. ) 1 560,1 570.1570

108. ) 1580,1580,1 5°0

072. ) 1600, 094s, 094S

54
RETURN

1020 IF fXLON-077.)l ft 00, 107^,1025

1025 10=0715

RETURN

10^0 10=0717

RETURN

1040 10=0719

RETURN

1050 10=07?!

RETURN

1060 10=072^

RFTURM

1070 10=0725

RETURN

1080 10=0727

RETURN

1090 TF(XLON-128. ) 1005,1005,1600

1095 TD=0729

RETURN

1100 IF(XL0N-O67. JlfiOO*] 105,1105

110"; 10 = 0620

RETURN

1110 T0=061P

RETURN

1120 10=0616

RETURN

1130 10=0614

RETURN

1140 10=0610

RETURN

1150 !E(XLON-12*.m5 i:;,ll':.5,1600

1155 T0=060«

RFTURM

1160 IF(XL0M-067. )! 600*1165 ,1165

1165 10=0671

RETURN

1170 10=0619

RETURN

1180 10=0617

RETURN

1190 10=0615

RETURN

1200 10=0611

RETURN

1710 IF(X!_0N-12^. ) 171 5, 121 5, 1600

1.715 in = 060o

RFTURM

12 2° IF(XL0N-0R7. ) 1 *00, 1 ??5 , 1 77 5 1225 TO = 04"*P

RETURN

12^0 10=0436

RETURN

1240 IF(XL0N-07?. ) 1 6 00, 1 74^ , 1 74^

1745 10=0820

RETURN

1250 10=0818

RETURN

1260 10=0814

RETURN

1270 10=0317

RFTURM

1280 10=0810

PETURN

25
1290 TF(XLON-122. )1295,12<?<5»!6O0

1295 ID=0808

RETURN

13 on IF(XLON-073. ) 1600,1 30^,130 5 1*05 10=0821

RFTURM

1310 T0=081Q

RETURN

1320 10=0815

RETURN

1330 10=0813

RETURN

1340 10=0811

RETURN

1350 IF(XLON-122.)1^5,1355,1600

13*5 10=0809

RETURN

1360 TF(XL0M-061. ) 1 600 , 1 3 6

R 1 ^ft^ 1*65 T0=0^24

RETURN

1370 T0=0526

RETURN

1^80 10=0528

RETURN

13Q0 10=05^0

RETURN

1400 10=05^2

RETURN

1410 I n = 5 -a 4 RETURN

142^ TO = n<^*

RETURN

1430 TF(XLON-125. ) 1^5, 14^5, 1600

]435 10=05^8

RETURN

1440 IFfXLON-061 . ) 1 600 , 1445 . 144 5 1445 10=0525

RFTURM

1450 10=0527

RFTURM

1460 10=0*29

RETURN

1470 10=0^*1

RFTURM

1480 10=05^3

RETURN

1490 10=0535

RETURN

1500 10=0537

RETURN

1510 TF(XL0N-125. )1 51 5 » 1515 t 1600

151* 10=05^9

RETURN

l<5J>n IF(XL0M-07fl. ) 1 600 »1 *2*»1 *2 C 1^2* 10 = 00-52

RFTURM

1530 in = 0<5^4

RETURN

1540 10=0940

RETURN

1550 IF(XL0N-114.)1555. 1555*1600

1555 10=0942

RETURN

1560 TF(XLON-0?8.) 1600 » 1565, 1565

1565 TH = 0o^3

56
RETURN

1=>70 10 = 09^

RFTURN

1 SPO 10=0941

RFTURN

15 90 IF(XL0N-114. ) 1595, 1595, 1600

1595 10=094?

RETURN

1600 in=9990

RFTURN

FMP

SUBROUTINE PLFTH

SUBROUTINE RLFTH (W»P,K,H,R)

OIMFNSION H(6,4)

0=LOGF(P)

Rs,18° ,»03Q4*W**. ,*3'*3'»3^*EXPF(H(K,l )+H(K,2 ) *0+H ( K ,?)*Q**?

+H(K»4)*Q**3

)

1 RFTURN

END

PHASE I - PART 2 CONTROL CAROS FOR IBSYS SORT ($10 CARO IS OPTIONAL)

SATTACH ROA

? AS SYSIN1

•FR^LPASF SYSUT?

SRFLFASF SYSUT3

SRFL^ASF SYSUT4

^ATTACH 97,

H

$AS SYSCK2

SFXFCUTF SOPT

$10 13780, PR, DOLOTT 06/10/64

REM, ASCENDING ORDER SORT OF BINARY RECORDS BY WAC CHART ID NUMBER

FIL,INP/1,M0D/B»BL0/6,PAD/H

CHA»INP/A,MER/ (AR,BR»UTR) OUT /BR

0PT,CAR,TAP

RFC»TYP/F,LFr N/6,FIF/(36B»36R»144B)

S0R»FTL/1 »SF0/S,0RD/?»FTF/2

FIL»0UT, MOD/B,DFN/H,PL0/6

FNO

$ IBSYS

SRFSTORE

$PAUSF

37
PHASE I - PAPT 3 ROUTINE TO CONVERT GFODETIC POSITIONS AND RADII TO PLOTTER INCHES

NMAPS=0

75 READ TAPE NTAP, ID. XLAT, XLON, (R(I), I=1,NRIMGS)

200 READ TAPE ICON, IWAC, CM, PLRU, TY, RL, PL

205 IF( IWAC-ID1200, 210,900

210 NMAPS»NM APS+1

400 IMAP=ID/2

TMA P 2*T M AP*2

TTP'STaID-IMAP2

A^n TE( ITEST)].500»500»550

500 WRITE OUTPUT TAPF KO, 510, TMAP, TY

510 FORMAT (3HWACI3* 1HL, IX, F5.2)

GO TO 250

550 WRITE OUTPUT TAPE KO, >>60, TMAP, TY

560 FORMAT (3HWACI3, 1HU, IX, F5.2)

250 ANG=(CM-XL0N)*0.6^05

SANG* STNF(ANG*0. 01745)

PP=RL-( (XLAT-PL)*PLRU)/2.

CANG=COSF( ANG»0.0174*

)

XCX=RP*SANG

XCY=RL-(R p *CANG)

cx=(xcx*-'Q.37) /loonnoo.

CY=(XCY*3C>.37) /10000O0.

DO 30 I=1,NRINGS

300 R( I )=R( I )*0.063'*6

WRITE OUTPUT TAPF KO, 610, CX, CY,(P(I), I=1»NRTNGS)

610 F0PMAT(F6.2,11F5.2)

100 READ TAPE NTAP, ID, XLAT, XLON,(R(I), I=1,NRINGS)

650 IF( IWAC-ID)700, 250, 1000

700 CX=99.oo

WRITF OUTPUT TAPF KO, f,]0, CX, CY,(P(I), I=1,NRINGS)

750 IF( ID-Qoq<5) ?0n,17O0»«OO

sno dptnt pc^o

R50 F0PMAT(5OH0pR0GRAw STOPPED WHFN IWAC GPEATFR THAN ID AT STATEMENT

1750)

GO TO 1700

QOO PRINT 950

950 FORMAT (59H0PR0GRAM STOPPED WHFN IWAC GREATER THAN ID AT STATEMENT

1205)

GO TO 1700

1500 PRINT 1600

1600 FORMAT(59Hn PPOGRAM STODPFD WHFN ITFST FOUNn NFGATTVF AT STATFMFNT

1450)

GO TO 1700

1000 CX = 9P.9<3

WRIT F OUTPUT TAPF KO, 610, CX, CY,(R(I), I=1,NRINGS)

PRINT 1200

1200 FORMAT(59H0PROGRAM STOPPED WHEN IWAC GREATER THAN ID AT STATEMENT

1650)

1700 TY=99.9Q

IMAP=0

WRITE OUTPUT TAPE KO, 1750, IMAP, TY

1750 FORMAT (3HWACI3» 1HX, IX, F^.2)

WRITF OUTPUT TAPE KO, lflOO, NMAPS

1R0O FORMAT ( 40H TOTAL NUMBER OF OVFPLAYS FOR THIS RUN =1X, 12)

FND FILE KO

PFWIMD KO

REWIND ICON

REWIND NTAP

2000 CALL SYSTEM

FND

3b
PHASE II - MAIN PROGRAM

MAIN PROGRAM

PHASF II OF LFTHAL RADIUS PLOT PROGRAM

PTMFNSTON OAT A (3 000) »R(6) »PSI (6) »XMAP(2) »M(?000)

COMMON ITAPF

1? FORMAT(2I2,A6,A2,6A4)

14 FORMAT(A6,Al »1X,F5.2)

16 FOPMAT(F6.2»7F5.2)

18 F0RMAT(1H1»A6,A2)

20 FORMAT (42H0WAC NUMBER - PICTURE NUMBER - TAPE NUMBER)

22 FORMAT(?H A6 » Al »10X, 13 »13X » 1 1)

ITAPF=1

IPTCT=1

CALL PLOTS(DATA(3000) ,3000)

RFAD 12»NRTNGS,ISFC»DATF(1 ) ,DATF

(

?

)

, ( PST ( J J

)

»JJ=1 ,NRINGS)

P&TNT iq,nATF( 1 ) ,PAT'r {2)

PRINT 20

10 RCfip INPUT TAPP 5,14,XMAP( 1

)

»XMAP(?) »TY

TF(TY-90.00) 11 ,99,99

11 PRINT ?2,XMAP(1) »XMAP(2) ,IPICT,ITAPE

CALL SYMBOL (0.0,0.0, . 07,3, 0.0,-1

)

40 CALL SYMBOL*-. R,-.8»-.28»XMAP(l) ,0.0,7)

IF{ ISFC)50»50,45

45 CALL SYMBOL ( 1 . 2 »-. 8 ,. 28 »6HSFCRFT ,0.0 ,6

)

*0 GALL SYMBOL(0.n,TY,.07»3»0.0»-l)

71 RFAD INPUT TAPF 5 , 16 ,CX ,CY , ( R ( LL ) , LL=1 ,NR INOS

)

IFfCV-QO.OO)?^ ,25,25

7*; CALL PL0T(CX,CY,3)

CALL PL0T(rX,CY,2)

90 DO 23 IR=ltNRTNGS

FRSTX=CX+R( IR)

CALL PL0T(FRSTX,CY,3)

CALL PL0T(FPSTX,CY,2)

CALL CIRCLF(CY,R( TR) ,M,NUMB)

CALL SYMB0L(ERSTX,CY,-.14,PSI ( IR) ,90.0,4)

23 CONTINUE

GO TO 71

25 CALL PL0T(36. 0,0. 0,-3)

TPTCT=TPICT+1

GO TO 10

99 REWIND 5 REWIND 6 CALL SYSTEM

END

SUBROUTINES PLOTS, PLOT, CONVRT

* LABEL

* FAP

*PL0T2

COUNT 340

ENTRY PLOT

FNTRY PLOTS

C NTRY CONVRT

^
RFM FORTRAN LINKAGE

REM CALL PLOT(X,Y,I

)

REM X AND Y ARE COORDINATES OF NEW POINT

REM I IS INDICATOR FOR PEN MOVEMFNT AND

REM END OF PICTURF. 3 IS PEN UP, 2 IS

REM PEN DOWN. -IS END PICTURF.

PPM

RUFFR FOU

PLOTS SYn X4»4

CLA 2*4

STA MANY

CLA 1,4

STA W2

STA W3

STA W4

ADD THRFE

STA WX

STA WY

COM

SVN PAX 7,4

TXI * + 1 ,4,1

SXD P. CON » 4 many LXH #*,^

LINK PXA **,4

APS 1 STA RCON

W5 ADD W2

STA SAVE

COM

PAX 0,4

TXI *+l,4,?

SXD LTMIT,4

SXD LTM,4

TSX STRWS,A

SAVF P7* LINK

LXD X4,4

TRA 3,4

PLOT SXD XI,

1

SAVF INDFX REGISTERS

SXD X2,2

SXD X4,4

CLA 1,4 PICK UP DATA LOCATIONS

STA XXX

CLA 2,4

STA Y FOR Y COORDINATE

THREE TLA ^»»4 STA PPF

FPF CLA ** STO fpind

CLS BLOCK

TMI TOTO

STO BLOCK

CLA N INCREMENT FLOCK ADDRESS

ADD ONE

STO N LXA CLM,4

CLA START

STO APSnX

LDO N CLM PXD 36,0

DVP TEN

STQ ABSDY

TWO LRS 2 ALS 4

LLS 38,4

ORS ARSDX

kO
LDO ARSDY

TTX rLW,4,1?

T^X *TRV,4

D 7 F START, CSVN

TSX «.TP>"',4

P7F rHANnr,o»THRrF

LXA THPFE.4

CLA START+*,4

wx STO PUFFR+^,4

TIX *-?»4,]

ADD ONE

WY STO PUFFP+^,4

LXD PCON.l

SXD ST»1

LXA ONF,?

«^XD FF,?

OTO LXH FPIMD,1

LXA T FN . 4 ON^D TXL X*l»l

CLA PFMZ

TXH PFNUP»] ? PFNDN MOP

CLA DOWN

RFIT LXD ST.l

LXD FF»?

STO PFM7

TXL FL»?»0

C LW BUFFR»1

LF TLA CON

TXT TXI LIM»1»-1

PFNUP TMI X CLA UPM

XI TXI RFTT,0,**

LIM TXH STO,l,«*

CLA END

STO BUFFR,!

T^X $TRW»4

W2 P7F RUFFP,0,RrON

LXD PCONtl

X4 TXI TRAV»0»**

FL STA RUFFR.l

CLA ONFD

STD FF

X2 TXI LF,0,**

STO STO BUFFR,

l

TIX TXI, 4,1

TRAV SXD ST,1

X CLA*

FSR FflQ

TPL MINE

XXX LDO *#

FWP Finn

<^TO XPLTC

SSP

FAD P005

APS 1 ANA MASK

LDO XPLTC

LLS

STO XT

SUB PFNX

LHO XCOM

LPS

«;to XDL TC

SLW AR c nx

PCON=-RUFFR-?

DECREMENT = -Bl)FER-(COUNT + l

ROUND OFF

RESTORE DY SIGN

ap^oijitf nx

41
Y LOO *«• FMP F100

STO YPLTC

SSP

FAD poo?

APS 1 ANA MASK

I. no YPLTC

LLS

STO YT

SUP PFNY

LOO YCON

LPS

STO YPLTC

SSP

STO APSDY

SUP ARSDX

TMI XPASir

ypastt TLA XPLTC

LOO YPLTC

STO YPLTC

STO XPLTC

TLA ARSHY

K PAX 0,4

STO TFST

LDQ APSDX

REFNT ARS 1 TXL FOP, 4,0

STQ RATIO

STO ACCUM

OLA CON

Anr> XPLTC

STO XPLTC

ADD YPLTC

STO YPLTC

TLA XT

STO PFNX

CLA YT

STO PFNY

LXD FF,?

LXD ST»1

PACK CLA RATIO

ADD ACCUM

STO ACCUM

SUP TFSj

TMI SVTP

STO ACCUM

CLA YPLTC

FF TXI SKTP+I ,0,1

MINE lxo FF,2

LXD ST,1

CLA RSIZF

PAX ,4

ADD CONSA

STA PICK1

PICK SLN 1 PICK! OLA **,4

STO PUFFR.l

TPA FL! D +?

XRASTC TLA APSDX

DAX 0,4

STO TFST

I DO APSDY

ST TXI REFNT*P»**

SKIP CLA XPLTC

MULTIPLY Y fY 100

GIVF DY SIGN TO CONSTANT

SFT UP TFST VALUF

42
TXL FLIP»?»0

^TO Rl 'FFP, 1 TXI OP»?,-l

FI.TP APS 1*

STA PUFFP.l

TXI * + l >1.-1

LI^IT TXH up, ] ,**

OLA FND

STO PUFFP,!

SXD SAVE*

TSX STRW»4

w % P7E RHFFR»0»RCON

LXD SAVF,4

LXD BCOM,l

MP LXA QMF»2

OP ^LT 1 TPA OPCC

OPMN TTX P TCK,4,1

T"A * + 2 orcc TIX PACK, 4,1

SXD ST,1

SXD FF.2

FOP CLA FPIND

STO BLOCK

TPL OVFR

^T7 PFMX

STZ PPNY

LXD FF,2

LXD C T,1

CLA FND

TXI *+l.l.-2

TXH *+3,2,0

TXI *+l ,1.-1

TXI *+l»2,l

STO RUFFR-2>1

SXD FF,2

DXA o,i com

SSP

SDR W2

^TA K LXD BCON»l

SXD STil

TSX $ TR W •

W4 PZF PUFFR,0,K

OV^P LXD XI !

LXD X2.2

LXD X4,4

CLA TPL

STO PFMDM

OLA * + 2 STO *-i

TPA 4»4

TPL TPL X POO^ OCT 232400000001

XT PZE

YT PZF

MASK PZF -l»o»o

TEST PZF

CON PCD 1 666666

YCON pen 1010000

STA^T Rf"D 34k444£.A4AA.^^3'3':,

'5 1 ABSOX P? p PCD •3133?"*^3':>4444444444

FNn PCO 1 463400

DFCR = -RIIFFR-rODMT+l

45
CHANGE P<-D 3 33444 444 i-444-44- 4-4 3 3 FR9 DEC 89.0

F100 n^c 100 .0

PFNX PZE

PFNY PZF

ARSDY PZE

XCON PCD 1 i onnoo XPLTC PZF

YDLTC PZF

RATIO P7E

AC CUM PZF

BLOCK MZE

ONE PZF 1 TEN PZE 10

PFMZ PZE

DOWN BCD 1667667

UPM BCD 106^665

BCON PZE 0,0 ,##

M PZE

FDjND PZF

OONVRT <^XA CONS,!

SXA C0N6,

2

SXA C0N4,4

CON CON MOP COM2

CLA* 1.4

ARS 18

ST A BSIZE

STA C0N2

ADD CONSA

STA C0N3

LDO =0002000000000

<?LO CONCOM

CON? AXT **,!

CLA* 2,4

ARS 18

PAC »? CAL LI ST, 2 SLW TEMP

CLA* 3,4

ARS 18

PAC ,4

CAL LI ST, 4

APS 18

OPA TEMP

C0N3 SLW **,!

TTX C0N8,1,1

LHQ =0^76100000000

SLQ CONCON

TSX PLOT,

4

PZE FNIN

PZF FN IN PZE CONPEN

CONP SXA CON? ,

1

COM4 AXT **,4

COM 5 AXT **,1

COM 6 AXT **,2

TPA 4,4

FN IN DFr QO.O

CONP FN P7F ,,?

LIST PCI ,^f. /c

) ri^nf,7^onn77f,'>no7«,Aoor7 c>6nnn6^fn^r'S c 6','noS660r>nS76nor>667^no

CONSA PZE DRUFF

BSIZE PZE

TEMP PZE

npiiFF D SS

FMD

1^00

44
SUBROUTINE CIRCLE

FORTRAN LINKAGE

CALL CTRCLE{CY»P»M,NUMB)

CY=CENTER Y COORDINATE OF ORCIE

R=RADIUS

M AND NUMB ARE OUTPUTS

SUBROUTINE CIRCLE ( CY»R,M, NUMB

DIMENSION M(3n00)

T=0

FNDSW=0

X = P Y=0

RSQ=R*#7

XSO=RSO

YSO»0

1 1=1+1

BOUND=CY+Y

IF(X)2»2,4

2 IF(Y)7,7,3

3 NQ=3

GO TO P

v 4 IF (Y) 5,6,6

5 N0 = 7 GO TO 8 6 NO = l GO TO P 7 NO=5

R IE( ABSF(X)-ABSFfY) )90,90»9

9 NZ = GO TO 91

90 NZ=1

91 DFL=XSQ+YSO-RSO

NZO=N2+N0

GO TO (10, 2% 30, 40, 50, 60, 70, PO) ,N70

10 IF(FNr>SW)09tll ,99

90 M( J

) =0

MUMR=I/2

K=T-1

DO 37 I=1,K,2

J»T + 1 37 CALL CONVRT ( NUMB ,M ( I ) ,M ( J ) ) RETURN

11 TF(DEL 113, 13,1?

12 IF(B0UND-9.5)!4,14»15

14 M(I)rfl

GO TO 16

15 M ( I) = 7 16 X<:.0 = XSO-.O?*X+.0O01

X=X-.01

22 Y c O = Y«;O+.02*Y+.OO01

Y=Y+.01

GO TO 1 13 IF(R0UND-9. 5)17,17, 18

17 M{ I)=l

GO TO 22

18 M( I)=0

GO TO 22

20 I F(DFL 112,12,21

21 M{ I )=7

GO TO 4*

40 IF(DFL)?1»21,41

41 TF(B0UND-R,5 )42,42,43

42 M( I )=6

GO TO 44

43
4 3 M( I )=7

44 Y<;0 = YSQ-.02*Y+.0001

Y=Y-.01

45 x";Q=xso-.n?*x+.ooo]

x=x-.oi

GO TO 1 30 TF(DP"L)A1»41 »31

31 IF(ROUND+.5)33»3%35

35 TFfBOUMn-Q.^ )3?,3?*3 3 32 M{ I) = 5 GO TO 55

33 M( I )=0

GO TO 55

50 IF(DELJ31»31»51

51 IF(BOUND+.5)53»53»52

57 M( I )=4

GO TO 54

53 M( T )=3

^4 x

c;o=x c;o+.o?*x+.rooi

x=x+.oi

55 YSO=YSQ-.02*Y+.0001

Y»Y-.01

GO TO 1 60 IF(DEL)51,51»61

61 M( I)=3

GO TO 85

30 IF(DEL)61»61 .81

PI IF(POUNn+.5)B3,P3»R2

" p? M{ I

) = ? GO TO 84

P3 M{ T )=3

P4 Y«;OsY5:O+.0?*Y+.O0Ol

Y=Y+.01

R5 xpG*XSQ+.0?*X+.0001

x=x+.oi

GO TO 1 70 FNDSW=1

IF{DEL)81»81 »100

100 IF(BOUND+.5)lfl,18.17

FND

SUBROUTINE MSG

* LARFL

* LIST8

CMSG

SUBROUTINE MSG

COMMON ITAPP" ITAPExJTAPE+1

WRITE OUTPUT TAPE 81,2

FORMAT (52H REMOVE TAPE ON A-6 AND MOUNT NEW TAPE. PRESS START ) WRITE OUTPUT TAPE 81'»3

FORMAT (47H RETURN ALL REELS WRITTEN ON A-6 TO PROGRAMMER. ) RETURN

FND

46
SUBROUTINE SYMBOL

* LABEL

« FAP

*SYMBL5

RFM

COUNT 250

ENTRY SYMBOL

REM

REM FORTRAN LINKAGE

REM CALL SYMBOL(X»Y.SIZE, BCD. THETA. N)

REM

REM SOS TSX SYMBOL.

4

REM PZE X REM PZE Y RFM P7F SIZE

REM PZF RCP

REM PZE THETA

REM PZE N REM

REM WHERE X AND Y ARE THE PAGE COORDINATES OF THE

REM LOWER LEFT CORNER OF THE FIRST CHARACTER.

REM SIZE IS THE DESIRED LETTER HEIGHT. BCD IS THE

REM LOCATION OF ALPHA-NUMBER IC INFO. THETA IS THE

REM ANGLE OF LETTERING WITH RESPECT TO X AXIS.

REM N IS THE NUMBER OF CHARACTERS TO BE DRAWN.

RFM X.Y.SIZE.THETA ARF FLOATING POINT NOS. THETA IS DEGREES

REM BCD IS BCD AND N IS FIXED AT A BINARY OF 17.

REM SIZE MAY BE NEGATIVE. THIS INDICATES THE BCD

REM INFO IS STACKED BACKWAPD AND VICE-VERSA.

REM N MAY BE NEGATIVE. THIS MEANS BCD INFO IS A REM FIXED POINT NUMBER AT A BINARY OF 17 AMD

REM IS A SPECIAL SYMROL. FOR SPECIAL SYMBOLS N MAY BE -1 OR -2

REM -2 INDICATES A LINE IS TO BE DRAWN FROM CURRENT LOCATION

REM TO POSITION (X»Y) IN LINKAGE.

REM

SYMROL SXD XI .1 SAVE INDEX RFGISTERS

SXD X2.2

SXD X4.4

REM

CLA COM S

r T UP VARIABLE INSTRUCTION

STO VAR

REM

REM

CLA 1.4 PICK UP LOC. OF X COORD.

STA *+l

CLA ** PICK UP X COORD.

STO XO

RFM

CLA 2.4 PICK DP LOC. nF Y COORD.

STA *+l

CLA ** PICK UP Y COOPD.

STO YO

CLA 3,4 PICK UP LOC. ^F LETTEP HFIHGT

STA *+l

CLA ** P! r " UP LETTER HEIGHT

TMI OUT

LXA FWD.2 SFT INDEX FOR FWD STACK DATA

BACK SXD FF.2

FD p F7 DIVIDE HFTT-HT RY 7 STO FACT

r L A 4,4 p I rK lip Lnr » nF RCn TNFn *

<=TA L nC

4Y
NN

REM

CLA 5*4

STA TH

REM

CLA 6*4

STA NN

CLA ** STO XXK

TMI SPECL

ZFRO PDX 0*1

LXA 36N»?

LRTN CLA L3

RTN STD VL

PFM

TH LDQ *#

FMP CONST

STO INCC

TSX $SIN»4

LRS 35

FMP FACT

STO IMCS

CLA INCC

TSX SC0S*4

LRS 35

FMP FACT

STO INCC

REM

LDQ INCC

FMP F6

STO XT

LDQ IMCS

FMP F6

STO YT

PFM

LXA ZFPn,4

LOC LDO *#«4

LGL 42*2

VAR TXI #+1,0*0

ANA 63P35

COM

SXD IX,

1

RFENT SXD 2X,2

SXD COM,

4

PFM

pwn PAX -1,1

CLA TAPLF-1,1

^TA HLOC

STA OLOC

ARS 6 63P35 PDX 63,1

ARS 1?

ANA 63B35

STO NO

TZE CLAP

CLA XXK

TPL DLOC-1

RFM

CLA INCS

FSR INCC

ACL TWTCP

FAD XO

STO XO

CLS INCC

FSP IMCS

ACL TWICE

PICK UP LOC. OF THETA

PICK UP LOC OF COUNT

PICK UP NUMBER OF CHARS.

SET UP SPECIAL CHARACTER INDICATOR

TRANSFER FOR SPECIAL CHARS.

INDFXlsNUMRFR OF CHARS.

SFT X2 TO PICK UP FIRST PCD CHAR.

LINKAGF SFT UP FOR PEN UP

SFT UP VARIABLE LINKAGE

PICK UP THETA(DFGREES)

SAVE THETA(RADIANS)

COMPUTE SIN THETA

SAVE FACTOR * SIN THETA

COMPUTE CO^ THETA

FACTOR # COS THETA

COMPUTE THE LENGTH BETWEENCHARS.

SIX TIMES FACTOR (HEIGHT/7)

CHANGE IN X

CHANGE IN Y 6CHAR. PICK UP REGISTER

PICK UP 6 CHARACTERS.

SHTFT CHARS.

NOP FOR NORMAL CHAR.

GET SINGLE 6 BIT CHAR.

SKIPED FOR SPECIAL CHAR.

SAVE INDEX REGISTERS

FOR NEXT TIME THRU.

PICK LOC OF OFFSET DATA

PICK UP SHIFT COUNT

SAVE ONLY OFFSET COUNT

TEST FOR SPECIAL CHAR.

TRANSFER ON NORMAL CHAR

MOVF REFERENCE POINT

FOR SPECIAL SYMBOLS

MULTIPLY RY 2 SO THAT ORIGINAL X0*Y0

CORRESPONDS TO CENTER

WOVE REFERENCE POINT

MULTIPLY PY 2

48
FAD YO

STO YO

RFM

LXA ZERO,?

PLor ldq **?

LGL -19.1 ANA 7R3?

PAX 0,4

REM

TXL *+3,4,6

CLA L3

X4 TXI std.o,**

REM

CLA XO

"TO XX

CLA YO

<;to yy

REM

TXL 0LOC,4,0

REM

FN TLA XX

FAD TNCC

STO XX

CLA YY

FAD INCS

STO YY

TJX FN.4,1

OLOC LOO **?

LGL 4?»1

A M A 7 P 3 «j 25N PAX ?4,4

TXL JEN, 4,0

PCM,

NFJ CLA YY

FAD IMCC

STO YY

CLA XX

FSR INCS

c;TO XX

TTX NFJ ,4,1

PFM

JFM TSX $PL0T,4

PZE XX

PZF YY

PZF VL

REM

CLA L2

STD STD VL

PFM

PFM

CLA NO

SUB ONE

T7F CLAP

STO NO

TIX DL0C»1»6

LXA ?6N»1

TXI DL0C»2»-1

PFM

CLAP CLA L3

STD VL

CLA XO

FAD XT

STO XO

ri.A yp

INITIAL SFTTING FOR PICK UP OFFSET

PICK OFFSFT DATA

SHIFT OFFSFT CHAP INTO ACCUM

SAVF ONLY 3 BITS FOP X X4=X OFFSFT COUNT

PICK UP XO FOR USE IN COMPUTING INTFRMFDIATEX

SAME FOR YO.

SKIP X CALCUCATION IF

COS COMPONFNT OF OFFSET

SIN COMPONENT OF OFFSET

PICK UP OFFSFT DATA

SAVF ONLY 3 BITS FOP X SKIP IF NO Y OFFSFT COUNT

ADD COS COMPONENT TO

Y VALUE

ADD SIN COMPONENT TO

X VALUF

CALL PLOT ROUTINE TO

MOVE TO COMPUTED POINT.

RFSFT LINKAGF TO

LOWER PEN

PICK UP OFFS c T COUNT

DFCRFMFNT py c,nf

FXIT WHFN FULFILLED

DECREMENT SHIFT COUNT BY 6 RFSFT SHIFT COUNT TO ?6

MOVE TO NFXT OFFSFT WORD

RESET LINKAGF TO LIFT PEN

CALCULATE X AND Y FOP

N^XT CHARACTFR IN SFRIES

^
FAD YT

STO YO

RFM

LXD IX,

LXD 2X,2

LXD COM,

PPM

TIX *+3»2»6

RFM

LXA 3 6N»2

FF TXI *+l ,4 ,##

TXL FXIT.1 ,1

TXT LOC»l»-l

RFM

EXIT LXD XI,

LXD X2,2

LXD X4,4

7B35 TPA

RFM

7,4

OUT SSP

LXA ONE,

XI TXI RACK ,0 ,**

SPFCL LXA ONF,l

LXA 25N,2

LDO FACT

FMP F7TH

STO FACT

CLA IX STO VAR

LXD XXK,

TXL LRTN,4,1

CLA L2

X? TXT

PFM

RTN,n,**

F7 HFC 7.0

F7TH DFC 1.75

CONST r>FC 0.0174533

FACT PZE

IMCC PZF

INCS PZE

XO PZE

YO PZE

COM TXI VAR + 1 ,0,**

IX TXI MORF,0,**

MORE SXD 1X,1

PAX 0,1

TXL REENT,] ,16

TXI *+l»l»-17

STZ XXK

36N PXA 36.1

LXD IX,

2X TXI

REM

VAR+1, 0,**

VL PZE 0,0, #*

TW T CE OCT ooinonnonono

L3 «->?F 0,0,3

L? PZE 0*0,2

ONF P7F 1 NO PZF

XXK PZE

XX PZE

YY PZE

XT PZE

YT PZE

RFSFT INDFX RFGISTFRS

FOR NFXT CHARACTER

PICK UP.

CHANGE SHTFT COUNT FOR N

C W CHAR.

RFSFT NEW CHARACTFP SHIFT

MDVF TO N^XT PCD WORD

FND OF STRING OP CHAPS.

G*"1 VACK FOR ANOTHER CHAR.

RESTORE INDEX REGISTERS

TO VALUES AT ENTRY TO

ROUTINE.

RETURN

SFT HEIGHT PLUS

SFTX2 FOR BKWn STACK DATA

RFTURN

C0UNT=1

SFT CHIFT COUNT TO PICK UP O^rp.

RECOMPUTE FACTOR

FACT0R=HEIGHT/4

(ADD SPECIAL CHARACTER HANDLING)

PICK UP N VALUE FOR PEN

IF N=-l SET PEN TO LIFT

N=-?SET PEN TO LOWFR.

RFTURN

FACTOR=HFTGHT/7.0

FACT0R=HETGHT/4.0

3.1416/1800.0

LFTTER FACTOR

FACTOR * COS THFTA

FACTOR * SIN THETA

X COORDINATE OF FIRST CHAR.

YCOORDINATE OF FIRST CHAR.

VARIARLE INSTRUCTION NORMAL

VARIABLF INSTRUCTION SPECIAL

PICK UP NUMRER FOR SPECIAL

IF GRFATFR THAN THE TOTAL

NUMBER OF SPECIAL CHARACTERS

THEN REDUCE BY 17 AND

GO INTO H0LLER7TH TABLE

LIFT DECISIO

CONSTANT FOR SPECIAL CHARACTER IND.

30
F6 DEC 6.0

PZE VFCTOR, 0,64*1?+? -171

PZF VFCTOR, 0,64*?4+? -16-

PZF S15»0.64*?4+6 -UK

PZF S4»0, 64*12+4 -14

PZE 513,0,64*24+6 -13

PZE S4»0, 64*30+1^ -1?

PZF S11 ,0,64*30+14 -11

PZE 510,0,64*30+7 -10

PZE 59,0,64*36+8 -9

PZE S8»0, 64*30+6 -8

PZE S7,0,64*36+7 -7

PZE 56,0,64*36+7 -6

P7E 55,0,64*30+7 -5

PZF 54,0,64*30+7 -4

P7F 53,0,64*74+6 -3

P7F S?»0, 64*18 + 1? -?

P7F Sl»0,ft4*?4+R -1

TARLF PZF 0,0,64*?4+Q 00

PZF N1»0, 64*18+5 01

PZE N?,0,64*?4+8 0?

PZE N3, 0,64*24+13 03

PZE N4, 0,64*30+9 04

PZE N5, 0,64*6+9 05

PZE N6,0,64*?4+ll 06

PZE N7,0, 64*36+6 07

PZF N3»0, 64*24+17 10

PZE N9, 0,64*18+1? 11 P7E fOL0M,0,64*?4+ll 1?

PZE MINUS, 0,64*12+5 1^

PZE MlNUS»0,64*l?+8 14

PZF LF,0,64*?4+6 15

PZE N7,0,64*l?+8 16

PZE N?+1»0, 64*12+4 17

PZE PLUS,0,64*l?+5 20

PZE A, 0,64*36 + 10 ?1

PZF 0+1,0,64*30+12 ??

PZF 0,0,64*?4+8 23

PZ C 0,0,64*6+7 ?4

P7E L,0,64*30+7 ?5

PZF L, 0,64*24+6 26

P7F G» 0,64*18+1? 27

PZF H»0, 64*36+6 30

PZE RP,0,64*l?+6 31

PZE N2+] ,0,64*24+4 3?

PZE N7,0,64*l?+5 33

PZE RP, 0,64*30+4 34

PZE AR, 0,64*18+5 35

PZF MINUS, 0,64*30+8 36

P7F AST, 0,64*24+3 37

P7F MINUS, 0,64*30+2 40

PZF U, 0,64*12+5 41

P7E M, 0,64*18+7 4?

P7E L»0, 64*30+3 43

PZE M, 0,64*36 + 5 44

PZE N,0,64*18+4 45

PZE 0,0,64*36+11 46

PZE W, 0,64*18+7 47

PZE 0,0,64*?4+11 50

PZE W, 0,64*18+10 51

PZF PER, 0,64*36+14

PZE N7+1, 0,64*6+11 53

P7E AST,0, 64*12+11 * 4 p7P Nl, 0,64*30+5 55

PZF T, 0,64*1? + ^ e,A

51
FAD YT

STO YO

RFM

LXD IX,

LXD 2X,2

LXD COM,

PPM

TIX *+3»2»6

RFM

LXA 3 6N»2

FF TXI *+l ,4 ,##

TXL FXIT.1 ,1

TXT LOC»l»-l

RFM

EXIT LXD XI,

LXD X2,2

LXD X4,4

7B35 TPA

RFM

7,4

OUT SSP

LXA ONE,

XI TXI RACK ,0 ,**

SPFCL LXA ONF,l

LXA 25N,2

LDO FACT

FMP F7TH

STO FACT

CLA IX STO VAR

LXD XXK,

TXL LRTN,4,1

CLA L2

X? TXT

PFM

RTN,n,**

F7 HFC 7.0

F7TH DFC 1.75

CONST r>FC 0.0174533

FACT PZE

IMCC PZF

INCS PZE

XO PZE

YO PZE

COM TXI VAR + 1 ,0,**

IX TXI MORF,0,**

MORE SXD 1X,1

PAX 0,1

TXL REENT,] ,16

TXI *+l»l»-17

STZ XXK

36N PXA 36.1

LXD IX,

2X TXI

REM

VAR+1, 0,**

VL PZE 0,0, #*

TW T CE OCT ooinonnonono

L3 «->?F 0,0,3

L? PZE 0*0,2

ONF P7F 1 NO PZF

XXK PZE

XX PZE

YY PZE

XT PZE

YT PZE

RFSFT INDFX RFGISTFRS

FOR NFXT CHARACTER

PICK UP.

CHANGE SHTFT COUNT FOR N

C W CHAR.

RFSFT NEW CHARACTFP SHIFT

MDVF TO N^XT PCD WORD

FND OF STRING OP CHAPS.

G*"1 VACK FOR ANOTHER CHAR.

RESTORE INDEX REGISTERS

TO VALUES AT ENTRY TO

ROUTINE.

RETURN

SFT HEIGHT PLUS

SFTX2 FOR BKWn STACK DATA

RFTURN

C0UNT=1

SFT CHIFT COUNT TO PICK UP O^rp.

RECOMPUTE FACTOR

FACT0R=HEIGHT/4

(ADD SPECIAL CHARACTER HANDLING)

PICK UP N VALUE FOR PEN

IF N=-l SET PEN TO LIFT

N=-?SET PEN TO LOWFR.

RFTURN

FACTOR=HFTGHT/7.0

FACT0R=HETGHT/4.0

3.1416/1800.0

LFTTER FACTOR

FACTOR * COS THFTA

FACTOR * SIN THETA

X COORDINATE OF FIRST CHAR.

YCOORDINATE OF FIRST CHAR.

VARIARLE INSTRUCTION NORMAL

VARIABLF INSTRUCTION SPECIAL

PICK UP NUMRER FOR SPECIAL

IF GRFATFR THAN THE TOTAL

NUMBER OF SPECIAL CHARACTERS

THEN REDUCE BY 17 AND

GO INTO H0LLER7TH TABLE

LIFT DECISIO

CONSTANT FOR SPECIAL CHARACTER IND.

30
F6 DEC 6.0

PZE VFCTOR, 0,64*1?+? -171

PZF VFCTOR, 0,64*?4+? -16-

PZF S15»0.64*?4+6 -UK

PZF S4»0, 64*12+4 -14

PZE 513,0,64*24+6 -13

PZE S4»0, 64*30+1^ -1?

PZF S11 ,0,64*30+14 -11

PZE 510,0,64*30+7 -10

PZE 59,0,64*36+8 -9

PZE S8»0, 64*30+6 -8

PZE S7,0,64*36+7 -7

PZE 56,0,64*36+7 -6

P7E 55,0,64*30+7 -5

PZF 54,0,64*30+7 -4

P7F 53,0,64*74+6 -3

P7F S?»0, 64*18 + 1? -?

P7F Sl»0,ft4*?4+R -1

TARLF PZF 0,0,64*?4+Q 00

PZF N1»0, 64*18+5 01

PZE N?,0,64*?4+8 0?

PZE N3, 0,64*24+13 03

PZE N4, 0,64*30+9 04

PZE N5, 0,64*6+9 05

PZE N6,0,64*?4+ll 06

PZE N7,0, 64*36+6 07

PZF N3»0, 64*24+17 10

PZE N9, 0,64*18+1? 11 P7E fOL0M,0,64*?4+ll 1?

PZE MINUS, 0,64*12+5 1^

PZE MlNUS»0,64*l?+8 14

PZF LF,0,64*?4+6 15

PZE N7,0,64*l?+8 16

PZE N?+1»0, 64*12+4 17

PZE PLUS,0,64*l?+5 20

PZE A, 0,64*36 + 10 ?1

PZF 0+1,0,64*30+12 ??

PZF 0,0,64*?4+8 23

PZ C 0,0,64*6+7 ?4

P7E L,0,64*30+7 ?5

PZF L, 0,64*24+6 26

P7F G» 0,64*18+1? 27

PZF H»0, 64*36+6 30

PZE RP,0,64*l?+6 31

PZE N2+] ,0,64*24+4 3?

PZE N7,0,64*l?+5 33

PZE RP, 0,64*30+4 34

PZE AR, 0,64*18+5 35

PZF MINUS, 0,64*30+8 36

P7F AST, 0,64*24+3 37

P7F MINUS, 0,64*30+2 40

PZF U, 0,64*12+5 41

P7E M, 0,64*18+7 4?

P7E L»0, 64*30+3 43

PZE M, 0,64*36 + 5 44

PZE N,0,64*18+4 45

PZE 0,0,64*36+11 46

PZE W, 0,64*18+7 47

PZE 0,0,64*?4+11 50

PZE W, 0,64*18+10 51

PZF PER, 0,64*36+14

PZE N7+1, 0,64*6+11 53

P7E AST,0, 64*12+11 * 4 p7P Nl, 0,64*30+5 55

PZF T, 0,64*1? + ^ e,A

51
X4

END

BSR

TRY

TRVS

10

BUFER

BLOCK

AXT

TRA

OCT

RCHA

OCT

TSX

HTR

REWA

AXT

WTBA

TIX

SDL A OCT

RCHA

CLA

STA TRA

OCT

OCT

OCT

RCHA

TRA

CLA

STA

RFWA

SOLA

TRA

PZE

PZE

PZE

BCD

END

**»4

2»4

076600001206

BLOCK

077200001206

$MSG»4

* + l 6

5»4

6

*-l»4»1

6 0766 nn 00l?06

BLOCK

*-l

TRY

SPIN

076400001206

076600001206

076600001206

10

SPIN

1 .4

10

WRITE SELECT TAPE AREWIND TAPE A-6

WRITE MESSAGE ON-LINE PRINTER

HALT WHILE TAPE IS CHANGFD

SFT DENSITY LOW ON A-6

WRITE SELFCT TAPE A-6

OUTPUT BLOCK ADDRESS

BACK TO WRITING DATA

BACK SPACE TAPE A-6

WRITE SELECT TO GIVE BLANK 3 INC

WRITE SELECT TAPE A-6

NOW TRY TO WRITE CURRENT DATA

THIS PICKS UP LOC OF TAPE WRITE

SET DENSITY LOW FOR TAPE A-6

RETURN FROM TRW I N I TIL IZAT ION

6

2»4

**»0»*#

*«

BLOCK+1»0.7

744444444443333 33 316^65651333 3 3334444444444

54

* U.S. GOVERNMENT PRINTING OFFICE : 1964 0—747-004



fuUHHIIH

InIH H