COMPUTER MAPPING OF COAL RESERVES
BY SULFUR LEVEL:
GENERAL DOCUMENTATION
PART II
LABORATORY FOR COMPUTER GRAPHICS
AND SPATIAL ANALYSE
Contract No. CPA 70-16 Harvard Graduate School of Design
Air Pollution Control Office Cambridge, Massachusetts
-------
COMPUTER MAPPING OF COAL RESERVES
BY SULFUR LEVEL
' Principal Investigators
John C. Goodrich
Howard T. Fisher*
Study Are?... Investigators
David Sheehan - Phases I and II (Appalachian Coal Region)
Timothy Murray - Phase III (Allegany and Garrett Counties)
Technical Guidance on Geology
Michael Woldenberg
Research Assistants
Whitmore John
Gail Howrigan
' Computer Programming
Nancy Peyton
Se cretarial and Administration
Lois Kramer
Tina McGeary
Report Preparation
Albert Davis
Laurence Yont
-------
PREFACE
The Air Pollution Control Office (APCO) of the
Environmental Protection Agency is interested in ways
cf displaying the quantity of coal available at various
sulfur levels. It was felt that computer mapping of the
coal data might provide a relatively quick and inexpensive
tool.
Data was provided by the Bureau of Mines for
study areas in the Appalachian Coal Region and, in.
particular, in a two county area in Maryland. Values
for sulfur content, bed thickness, and quantity of coal
were manipulated and mapped using several computer
mapping programs available at the Laboratory for Computer
Graphics and Spatial Analysis at the Harvard Graduate
School of Design. Although the work was carried out for
these study areas, the main emphasis of the project was
on providing a tool with general applicability to coal data.
anywhere in the United States.
The problems of obtaining sufficient reliable data
for mapping cannot be emphasized strongly enough. At
first glance it would appear that there is a great deal of
coal data available. However, when the data are broken
down by type, coal seam, and location, there is actually
very little useable information available at the present
time for all the types of data needed for a study such as
this.
It is felt, and has been stressed throughout, that
more meaningful results could have been attained if there
had been a more equal distribution of data points and a
-------
more equal number of analyses taken at these points.
All of us were aware that this might be a problem at
the outset of the project and our fears have been
substantiated. We hope that pointing this out is the kind
of constructive criticism that may prove most helpful in
overcoming deficiencies in data acquisition so thai more
meaningful results may be attained in future work.
Of significant importance, however, is the potential
applicability of each of the types of maps produced and
their usefulness to APCO as adequate data ^.rc made available.
The Study Area Report is divided into three main
sections, entitled:
I BACKGROUND
II STUDY AREA FINDINGS
HI APPENDICES
The first section covers the problem definition, computer
program used, study area selection and data acquisition,
and the graphic techniques used. The cecoi.d section
discusses the study areas and data used, and the computer
maps produced in some detail. The final section contains
the step by step description of the mapping procedures used
for the study areas, the references, a.nd the technical
aspects of program development.
The Study Area Report does not contain any
speculative information as to possible future uses of the
techniques nor does it include all the computer program
manuals and specifications necessary for application of
-------
the technique to other coal data and study areas. These manuals
and related information are contained in this volume, entitled
General Documentation.
Volume Two: General Documentation is divided into two
parts. Part I covers the computer mapping techniques and Part II
comprises the o-mputer program manuals.
Part I contains seven sections: introduction, computer
mapping programs, SYMAP mapping techniques, GRID and SYMVU
techniques, discussion of study area graphics, additional data con-
siderations, and data handling routines. This includes all of the
general material necessary to understand the techniques which were
developed and tested for the study area, and the means for applying
them to other study areas. It should be read in conjunction with the
Study Area Report and Part II.
Part II contains eight sections: introduction to SYMAP,
preparation of packages, map package electives, user subroutine
and advanced uses, programming and systems guide, the SYMVU
program, the GRID program, and program modifications. This
includes all of the technical material necessary to prepare, inter-
pret, and use the three programs, as well as the program modifi-
cations made during the project.
We v/ould like to acknowledge the invaluable support and
advice of Russell Flegal, Project Officer, Office of Program
Development, Air Pollution Control Office, Environmental Protec-
tion Agency, and S. J. Aresco, Coordinator, Energy Data Bank,
Bureau of Mines, U. S. Department of the Interior.
We would also like to thank Jerrold G. Thompson, Branch
-------
of Computer Sciences and Engineering, Bureau of Mines, U. S.
Department of the Interior, Harry Buckley, Director, Maryland
Geological Survey, and William E. Edmunds, Head Coal Geologist,
Pennsylvania Bureau of Topographic and Geologic Survey for their
assistance.
All unpublished data used in the project were supplied
by the Air Pollution Control Office and the Bureau of Mines.
Cambridge, Massachusetts John C. Goodrich
April 1971 Project Director and Editor
-------
VOLUME TWO
GENERAL DOCUMENTATION
PART II
Table of Contents
PREFACE
TABLE OF CONTENTS
LIST OF ILLUSTRATIONS
1. INTRODUCTION
1- 1. Fundamentals of SYMAP for Contour Maps
1. 2. Proximal Map Considerations
1. 3. Conformant Map Considerations
PREPARATION OF PACKAGES
2. 1. Determining Locations on a Source Map
2. 1. 1. Row and Column Measurement
2. 1.2. Equal Unit Measurement
2.1.3- Use of "Legends", "Title",
and "Text"
2. 2. A-Outline
2. 3. A-Conformolines
2.4. B-Data Points
2.5. C-OtoIegends
2.5.1. Characters and Symbols
2. 5. 2. Types of Legends
2.5.2. 1. Point Legend
• 2. 5. 2. 2. Line Legend
2. 5. 2. 3. Area Legend
2. 6. D-Barriers
2.7. E-Values
2.8. El-Values Index
2.9- F-Map
-------
3. MAP PACKAGE ELECTIVES
3. 1. Elective Number 1 - Size of Output Map
(1 card)
3. 2. Elective Number 2 - Extreme Points of
Input Map (1 card)
3. 3. Elective Number 3 Number of Levels
(1 card)
3. 4. Elective Number 4 - Value Range Minimum
{1 card)
3. 5. Elective Number 5 - Value Range Maximum
(1 card)
3. 6. Elective Number 6 - Value Range Intervals
(1 or 2 cards)
3. 7. Elective Number 7 - Symbolism (5 cards)
3. 8. Elective Number 8 - Suppression of Con-
tour Lines (1 card)
3. 9- Elective Number 9 - Suppression of Histo-
gram Bars (1 card)
3.10. Elective Number 10-Text (3 to 32 cards)
3.11. Elective Number 11 - Printing Actual Value
at Each Data Point (1 card)
3- 12. Elective Number 12 - Multiple Elective
Repeat (1 card)
3. 13. Elective Number 13 - Scale (1 card)
3.14. Elective Number 14 - Margin (1 card)
3. 15. Elective Number 15 - Number of Output
Characters per Inch (1 card)
3. 16. Elective Number 16 - Large Size Maps
(1 card)
3. 17. Elective Number 17 - Suppression of
Tabular Output Data for Conformolines
on Data Points (1 card)
3. 18. Elective Number 18 - Invalidation of Minus
Zero and Blank Values. (.1 card)
i 1
3. 19. Invalid Data Range Elcctives
3. 19. 1. Elective Number 19 - Minimum
Value for Invalid-Data Range (1
card)
3. 19- 2. Elective Number 20 - Maximum
Value for Invalid Data Range
(1 card)
3.19-3. Electives 19 and 20 in Com-
bination (2 cards)
-------
3. 20. Elective Number 21 - Store Location Values
for Map on Tape (1 cs.rd)
3. 21. Elective Number 22 - Continuous Contours
(1 card)
3. 22. Elective Number 23 - Suppression of Invalid
Data Point Symbol (1 card)
3. 23. Elective Number 24 - Suppression of
Numeric Interpretation (1 card)
3. 24. Elective Number 25 - Suppression of Data
Point Symbols (1 card)
3. 25. Elective Number 26 - "Overprint Alignment
(1 card)
3- 26. Elective Number 27 - Distinguishing Map
Type (1 card)
3. 27. Elective Number 28 - Dot Conformant Map
(1 card) (available in SYMAP Version 6 only)
3. 28. Extrapolation Range Electives
3.28.1. Elective Number 31 - Relative
Fractional Extrapolation (1 card)
3. 28. 2. Elective Number 32 - Absolute
Extrapolation Minimum (1 card)
3. 28. 3. Elective Number 33 - Absolute
Extrapolation Maximum (1 card)
3. 29 Search Radius Electives
3.29.1. Elective Number 34 - Initial
Search Radius (1 card)
3. 29. 2. Elective Number 35 - Maximum
Search Radius (1 card)
3. 30. Elective Number 36 - Number of Data Points
for Interpolation (1 card)
3.31. Elective Numbsr 37 - Independence (1 card)
3. 32. Proximal Map Electives ( 3 cards )
3. 33. Elective Number 38 - Data Graph (1 card)
(Available in SYMAP Version 6 only)
3. 34. Elective Number 39 - Linear Regression
Plane (1 card) (Available in SYMAP Version
6 only)
-------
4. SYMAP USER SUBROUTINE
4.1. Multiple Map Submission
4. 2. Data Banks and Formats
4.3. Manipulation of Coordinates
5. PROGRAMMING AND SYSTEMS GUIDE
5. 1. General Information
5. J. 1. Minimum Machine Configuration
5. 1.2. Progra.m Storage Requirements
5. 1. 3. Input and Output Units
5.1.4. SYMAP Source Tape
5.2. Programmer Information
5.2.1. Program Times
5. 2. 2. User Subroutine
5.2.3. ' Blank COMMON
5.2.4. Labeled COMMON
5. 2. 5. Entry Statements
5. 2. 6. Checking for missing Data
5.3. System Information
5. 3. 1. Overlay Structure
5. 3. 2. Generation of Overlays
5. 3. 3. Running Efficiency
5.3.4. Program Execution
5. 4. Printer Information
5.4. 1. Spacing of Rows of Output
5. 4. 2, Carriage Control Characters
for Overprinting
5. 4. 3. Printer Carriage Control Tape
-------
6.
THE "SYMVU" PROGRAM
6. 1.
6.2.
6. 3.
Introduction
6. 1. 1. Basic Principles
6. 1.2. Required Input
Elective Card 2
6. 2. 1.
6. 2. 2.
6. 2. 3.
6. 2.4.
6. 2.5.
6.2.6.
6. 2. 7.
6. 2. 8.
6. 2.9-
6. 2. 10.
6. 2. 11.
6. 2. 12.
6. 2. 13.
6. 2. 14.
6. 2. 15.
6. 2. 16.
6. 2. 17.
6. 2. 18.
6. 2. 19.
6. 2. 20.
6. 2. 21.
6. 2. 22.
Elective
6.3. 1.
6. 3. 2.
6. 3. 3.
6. 3.4.
6. 3.5.
6.3.6.
6.3.7.
6.3. 8.
6.3.9.
6. 3. 10.
Elective 2-1: Rows
Elective 2-2: Columns
Elective 2-3: View
Elective 2-4: Line Type
Elective 2-5: Smooth
Elective 2-6: Repeat
Elective 2-7: Lnint
Elective 2-8: Nozero
Elective 2-9: Sqrtt
Elective 2-10: Sameh
Elective 2-J1: Endlin
Elective 2-12: Symap
Elective 2-13: Leg
Elective 2-14: Nscal
. Elective 2-15: Flp
Elective 2-16: Base
Elective 2-17: Pltdot
Elective 2-18: Fdata
Elective 2-19: Namin
Elective 2-20: Narnax
Elective 2-21: Iform
Elective 2-22: Nleg
Card 3
Elective 3-1: Altitude
Elective 3-2: Azimuth
Elective 3-3: Width
Elective 3-4: Height
Elective 3-5: Amin
Elective 3-6: Amax
Elective 3-7: Vdist
Elective 3-8: Step
Elective 3-9: Sepsm
Elective 3-10: Size
6.4.
6.5.
6.6.
6.7.
Optional Data
6.4. 1.
6.4. 2.
6.4.3.
^ards
Data Matrix on cards
Symbol Points
Legends
Subroutine Data
Sample Submissions
Technical Information
6.7.1. SYMVU Source Tape Description
6. 7. 2. Minimum Machine Configuration
6. 7. 3. Units Description
6.7.4. Input
6.7.5. Calcomp Plotter Routines Used
in SYMVU
-------
7. THE "GRID" PROGRAM
7. 1. Introduction
7. 1. 1. Basic Principles
7. 1. 2. Required Input
7. 2. Data Package
7. 2. 1. Data Option A
7. 2. 2. Data Option B
7. 2. 3. Assigning Data to Map Levels
7.2.4. Multiple Data Sets
7. 3. Map Package
7. 3. 1. Standard Format
7.3.2. Elective 1: Grid (1 card)
7.3.3. Elective 2: Data (1 card)
7.3.4. Elective 3: Number of Levels
(1 card)
7.3.5. Elective 4: Value Range Minimum
(1 card)
7. 3. 6. Elective 5: Value Range Maximum
(1 card)
7. 3. 7. Elective 6: Value Range Intervals
(1 to 2 cards)
7. 3. 8. Elective 7: Symbolism (5 cards)
7.3.9. Elective 8: Flag Point (1 card)
7.3.10. Elective 9: Histogram (1 card)
7.3.11. Elective 10: Text (3-32 cards)
7.3.12. Elective 11: Data Record
(1 card)
7.3.13. Elective 12: Dot Map (1 card)
7.3.14. Elective 13: Grid Numbering
(1 to 2 cards)
7. 3. 15.: Elective 14: Prescaled Data
(1 card)
7. 3. 16. Elective 15: Timer (1 card)
7. 3. 17. Elective 16: (only available in a
special version of the program)
Legends (1 card)
i 1
7.4. Irregular Outlines
7.4.1. Filling in the Rectangle
7.4.2. Irregular Outline Package
7. 5. Subroutine Flexin
7. 6. Computer Submissions
8. PROGRAM MODIFICATIONS
8.1. Print Out Statements in SYMAP
8.2. Legends With GRID
8.3. C-LEGENDS Package
-------
List of Illustrations
PART II: COMPUTER PROGRAM MANUALS
Example
1-1 Contour Source Map
1-2 Source Map With Legends
1-3 Input Listing: Contour By Row and Columns
1-4 Output Listing: Contour By Row and Columns
1 -5 Contour Map: Rows and Columns
1 -6 Input Listing: Contour Map
1-7 Output Listing: Contour Map
1-8 Contour Map 1: Standard Electives
1-9 Input Listing: Contour Map Packages
1-10 Contour Map 2: Maximum and Minimum Value
1-11 Contour Map 3: Value Range Intervals
1-12 Contour Map 4: Symbolisr/i
1--1'3 Contour Map 5: Inset Area
1-14 Input Listing: Proximal Map
1-15 Output Listing: Proximal Map
1-16 Proximal Map 1: Standard Electives
1-17 Proximal Map 2: Special Symbolism
1-18 Zone Source Map
1-19 Zone Source Map With Conformant Boundaries
1 -20 Input Listing: Conformant Map
1-21 Output Listing: Conformant Map
1 -22 Conformant Map
Table 2-1
Example
2-1
2-2
2-3
Specifications for Otolegends
Point Legend
Line Legend
Area Legend
-------
Example
3-1
3-2
3-3
3-4
3-5
3-6
Table 3-1
Table 3-2
Example
3-7
3-8
3-9
3-10
Source Map*
Elective 2
Electives 3 through 6
Elective 6-5 levels
Elective 6 4 levels
Elective 6-7 levels
Standard Symbolism for Various Levels
Symbolism for Levels and Special Purposes
Elective 7-6 levels
Elective 7 - contour lines black
Elective 7 - proximal
Elective 12
4-1
4-2
4-3
4-4
4-5
5-1
5-2
5-3
5-4
5-5
5-6
5-7
Subroutine FLEXIN--Dummy
Subroutine FLEXIN--Non-Standard Format
Subroutine FLEXIN--Manipulation and Data
Storage
Subroutine FLEXIN--Dimensioning and Data
Points
Subroutine FLEXIN--Axcs Transformation
Utility Program to Punch Source Card
from SYMAP Tape
Overlay Tree
Control Cards to Link Edit Object Modules
into Load Modules as the Overlay Segments
Compile and Link Edit SYMAP into Overlay
Segment Load Modules
SYMAP submission at the LCG
Job Control Language to Load and Execute
SYMAP
Job Control Language to Override SYMAP
subroutines with edited subroutines
-------
Example:
6-1
Table 6-1
Table 6-2
Examples:
6-2
6-3
6-4
6-5
6-6
6-7
6-8
6-9
6-10
6-11
6-12
7-1
7-2
7-3
7-4
7-5
7-6
7-7
7-8
7-9
Azimuth Orientation System
Symbol Points
Electives Used in Examples
Figure 2:
Figure 3:
Figure 4:
Mantegna Bay
Figure A: Mantegna Bay - Conformant
Figure B: Mantegna Bay - Contour
Figure C: Mantegna Bay - Proximal
Mantegna Bay - Isometric
Projection
Mantegna Bay - Two Point
Perspective
Planometric
Projection
Listing of Electives and Their Uses
Utility Program to Punch Source Cards
from SYMVU Tape
Listing of Job Control Language to Load
Binary Deck of SYMVU onto Disk
Listing of Job Control Language to run
SYMVU sample input
Harvard's Catalogued Procedure for
SYMVU
Equal Value Range Levels
Unequal Value Range Levels/Four Levels
Unequal Value Range Levels/ Seven Levels
Level Symbol Specification
Grid Numbering Subdivided Grid
Irregular Outline Package
Simplest Use of Subroutine Flexin
Multiple Uses of Subroutine Flexin
Sample Submission for Four Maps
8-1
8-2
8-3
8-4
SYMAP Print Out Changes
SYMAP Changes for Legends
GRID Changes for Legends
C-LEGENDS Specifications
-------
II. COMPUTER PROGRAM MANUALS
1. Introduction to SYMAP
2. Preparation of Packages
3. Map Package Electives
4. SYMAP User Subroutine
5, Programming and Systems Guide
6. The SYMVU Program
7. The GRID Program
-------
1. INTRODUCTION TO SYMAP
SYMAP is a computer program for producing
maps which graphically depict spatially arrayed quantita-
tive and qualitative information. It is suited to a broad
range of applications, and has numerous options for
meeting widely varying requirements. Combinations of
standard computer characters are used to display a scale
of tone from black to white which corresponds to the data
value range. Mathematical computations can be performed
on the data, if necessary, before mapping. Options are
provided for the rescaling of raw data and for variations
in symbolism.
By assigning values to the coordinate locations
of data points or data zones, one or more of three basic
types of map may be produced, as specified by the user:
CONTOUR: (based on the use of contour lines, each
of which represents a uniform value throughout its length).
The contour (or isoline) map consists of closed curves
known as contour lines which connect all points having the
same numeric value or height. Contour lines emerge
from a datum plane at selected levels which are determined
from the scale of the map and the range of the data. Between
any two contour lines, a continuous variation is assumed.
The surface is generated by interpolation between values at
given data points. The contour lines are then drawn on this
interpolated surface.
CONFORMANT: (based on conformance to the boun-
daries of a data zone)
The conformant map is best suited for data, either quali-
tative or quantitative, whose areal limits are of significance,
-------
and whose representation as a continuous surface is inappro-
priate. Each data zone is enclosed by a boundary "conformant"
to some predefined spatial unit. The entire spatial unit is
given the same value, and symbolism is assigned according
to its numeric class.
PROXIMAL: (based on proximity to a data point).
The proximal map is very similar in appearance to
the conformant map. However, the spatial units are
defined by nearest neighbor methods from point infor-
mation. Each character location on the output map is
assigned to the value of the data point nearest to it.
Boundaries are assumed along the line where the values
change and conformant mapping is applied.
To produce any of the three types of computer maps,
a deck of punched cards must be prepared as input to the
computer. This deck consists of a number of "packages"
each covering a specific category of information. These
packages, are listed below; they are explained in detail
in the section Preparation of Packages.
The MAP package specifies, below the map, an
appropriate title for the identification of each separate
map that is to be run. It then instructs the computer to
make each map by using certain electives, as required.
The availability of these electives is a major feature of'
the SYMAP program and adds greatly to its flexibility.
Some of the electives are:
(i) Size: used to specify, by inches and decimal frac-
tions thereof, the overall dimensions of the rectangular
map border surrounding the study area.
(ii) Content: enables the computer to change the scale
of the map to be produced or to map a portion of the study
area at the scale originally specified or any other scale
-------
desired.
(iii) Number of Levels: used to specify the number of
levels and/or class intervals (not more than 12) into which
the total range of the data is to be subdivided for mapping
purposes.
(iv) Histogram Bars: used to suppress the normally-
provided bars whose length show the frequency distribution
of the data.
(v) Text: used below the map to provide supplementary
information.
Other electives deal with such subjects as symbols,
maximum and minimum values, borders, and scale. The
MAP package is always required; use of the other packages
is determined by the type of map desired.
The OUTLINE package describes the outline of the
study area boundary by specifying the coordinate locations
of the vertices.
The DATA POINTS package is used to give the
positions of the points for which data are available, by
specifying their coordinate locations. The locations may
be either points or centers of areas ("data zones") for
which data are available.
The OTOLEGENDS package causes supplementary
information to appear on the face of the map by specifying
the coordinate locations and content. Legends include
borders, location names and numberSjand a title block.
-------
The VALUES package assigns numerical data to the
data points, by specifying the values involved. Raw data
given to the computer may be related, manipulated, weighted,
and aggregated in any manner desired by means of a user
subroutine.
1.1. FUNDAMENTALS OF SYMAP FOR CONTOUR MAPS
The following sections are designed as an introduc-
tion to the specifications for preparing the various packages
and map package electives described in the next two
portions of the manuals. The illustrations show nearly
every aspect of the information needed to produce a contour,
conformant, or proximal map.
The first step is to define an area on a source map
using some x-y reference system (see Example 1-1). The
origin should be in the upper left hand corner since the
computer is accustomed to reading down rather than up.
Study area boundaries, legends, and data points or zone
centers should all be coded using this x-y reference system.
Examples of point, text, line, and area legends are shown
in Example 1-2. Two separate outlines (or islands) are
evident in Example 1-1 (a to f, and g to j) and there are six
data point locations.
The A-OUTLINE, B-DATA points, and C-OTOLEGENDS
packages that would be coded from this information, together
with an F-MAP package which is always required, can be used
to produce a base map for testing purposes. The E-VALUES
package--which must have one to one correspondence with
the B-DATA POINTS package so that the correct value is asso-
-------
elated with the right location--is then added to produce a
contour map. A surface is interpolated at all points, based
on the values at the given data points.
Example 1-3 shows the input--measured by rows and
&
columns--which produced the output in Example 1-4 and
contour map in Example 1-5. Example 1-6 shows the input--
measured in inches--which produced the output in Example
1-7 and contour map in Example 1-8. The maps in Example
1-5 and Example 1-8 are the same except for (1) slight varia-
tions in the location of outline and data points, and (2) addi-
tional legends in Example 1-8. The material below the map
is exactly the same and, therefore, not included with Example
1-8. It is recommended that equal unit measurement (such as
inches) be used for most applications.
Example 1-9 shows the various F-MAP packages used
to produce the five contour maps in Examples 1-8, 1-10, 1-11,
1-12, and 1-13. Packages which are not changed from map to
map remain in effect; therefore, as specified in Example 1-9,
the same A-OUTLINE, B-DATA POINTS, C-OTOLEGENDS,
and E-VALUES packages would be used for all five maps. A
new F-MAP package, however, must be specified for each map.
Electives 1 thru 10 and the repeat elective, 12, are all
demonstrated by these examples. These are the most common
electives used and should be examined carefully. The extent
of the source map to be displayed (Elective 2) should be
determined before the size of the output map (Elective 1) is
specified. Note that some of the legends change size with the
scale in Example 1-13.
* These are the rows and columns of computer printout as
found on the output map; there are 8 rows per inch vertically
and 10 columns per inch horizontally. This is discussed
further under Preparation of Packages.
-------
1. 2 PROXIMAL MAP CONSIDERATIONS
The only difference to the user in specifying the input
for a proximal map as opposed to a contour map is the use of
electives 31, 36, and 37 in the F-MAP package. Example 1-14
shows the input for producing the two proximal maps in Exam-
ples 1-16 and 1-17. Example 1-15 shows some of the output
preceding the map in Example 1-16. Example 1-14 illustrates
several new features:
(i) the use of elective 11 to print the actual values on
the map in Example 1-17;
(ii) running more than one map in a single submission
with the deletion of a package (C-OTOLEGENDS) from the first
to the second map; and,
(iii) the use of a 'six nines' card to signal that all packages
have been input.
Notice that the outline, data points, and legends packages are
the same as those shown in Example 1-6.
1.3 CONFORMANT MAP CONSIDERATIONS
Example 1-18 shows the source map used for the con-
formant map, and Example 1-19 adds the zone boundaries as
they would be coded in the A-CONFORMOLINES package. The
input listing in Example 1-20 produced the output in Example
1-21 and conformant map in Example 1-22. Note how the
symbolism completely fills each zone as defined in the con-
formolines package. The A-CONFORMOLINES package takes
the place of both the outline and data points packages used with
contour and proximal maps. There should be a one to one cor-
respondence between the conformant zones and the values
associated with them.
-------
14-
Example 1-1
-------
00
Example 1-2
-------
S-OUTLINE 8. 10.
9.0 16.0
4.0 41.0
21.0 59.0
36.0 52.0
35.0 27.0
30.0 2.0
9.0 16.0
30.0 58.0
23.0 71.0
32.0 78.0
39.0 68.0
30.TJ 58.0
S9999
B-DATA POINTS 8. 10.
24.0 13.0
13.C 34.0
26.0 30.0
20.0 53.0
28.0 48.0
30.0 70.0
99999
C-OTOLEGENDS 8.0 10.
11 P 37.0 2.0
A = AIRPORT
A P 31.0 52.0
99999 *.-.- ."• r.,.,,~~
6-VALUES
12.0
-14.0
43.0
38.0
-4.0
0.0
99999
F-MAP
TEST MAP #1
CONTOUR MAP - % CHANGE IN POPULATION FROM 1960 - 197C
ROW AND COLUMN MEASUREMENT
1 5.0 8.0
2 0.0 0.0 5.0 8.0
99999
Example 1-3
Input Listing: Contour By Row And Columns
-------
A-OUTLINE
DOWN COORDINATE DIVIDED INTERNALLY BY
ACROSS COORDINATE DIVIDED INTERNALLY BY
6.00
10.00
DOWN ACROSS
ISLAND 1
1239.00
9.00
4.00
21.00
36.00
35.00
30.00
16.00
41.00
59.00
52.00
27.00
2.00
CENTER=(
ISLAND
21.63,
VERTEX
1)
2)
3)
4)
5)
6)
AREA=
< 1)
C 2)
( 3)
( 4)
AREA =
B-DATA POINTS
DCWN COORDINATE DIVIDED INTERNALLY BY 8.00
ACROSS COORDINATE DIVIDED INTERNALLY BY 10.00
32.26)
163.
30.00
23.00
32.00
39.00
00
58.00
71.00
78.00
68.00
CENTERM
30.95,
68.51)
POINT
CCWN
ACROSS
1)
2)
3)
4)
5)
6)
24.00
13.00
26.00
20.00
28.00
30.00
13.00
34.00
30.00
53.00
46.00
7C.OO
'C-OTOLEGENOS
DOWN COORDINATE DIVIDED INTERNALLY BY 8.00
ACROSS COORDINATE DIVIDED INTERNALLY BY 10.00
VERTEX DOWN ACROSS +ROWS +COLS
( 1) 'A » AIRPORT* ACROSS FROM
37.00 2.00 0. 0.
( 2) «A' AT POINT
31.00
52.00
0.
0.
Example 1 -4
Output Listing: Contour by Row And Columns
-------
E-VALUES
DATUM
VALUE
1)
2)
3)
4)
5)
6)
12.00
•14.00
43.00
38.00
-4.00
0.0
F-MAP
•W*B «•«•*•• J
TEST MAP #1
CONTOUR MAP - % CHANGE IN POPULATION FROM 1960 - 1970
ROW AND COLUMN MEASUREMENT
ELECTIVE
1 MAP SIZE IS
2 EXTREME POINTS ARE
5.00 INCHES LONG BY
0.0 , 0.0 ) AND (
8.00 INCHES WIDE
5.0O, 8.00)
TIME =
0.0
MAP
TEST MAP Ml
CONTOUR MAP - X CHANGE IN POPULATION FROM 1960 - 1970
ROW AND COLUMN MEASUREMENT
MAP SCALE = 1.0000 INCHES ON OUTPUT MAP/UNITS ON SOURCE MAP
MAP SKCULC E£ PRINTED AT 8.0 ROWS PER INCH AND 10.C COLUMNS PER INCH
ROW = COWN COORDINATE * 8.00CO
COLUMN = ACROSS COORDINATE * 10.0000
DATA POINTS FOR MAP
PCINT ROW COLUMN
DATUM
VALUE
LEVEL
1)
2)
3)
5)
6)
13
26
20
28
20
13
34
30
53
48
70
STANDARD SEARCH RADIUS IS
TIKc = C. 0
1
2
3
A
5
6
12.00
-14.00
43.00
38.CC
-4.00
0.0
3.9271
Example 1-4
(Continued)
-11-
1
5
5
-------
ts>
•T-
I
I
I
I
+
I
1
I
I
I
I
1
I
I
I
I
I
2
I
I
I
I
I
I
I
I
3
I
I
I
I
4
I
I
I
I
^
T
. i + ^ +-. j + ^ + >,« +- - &
+^.
4-+++444444 + ••••••••*•••• 4+4 CCO 666
COCCGCGCG 4444444 4444 0000 €€ B11B
GGOCGGOGGOOOOO +44444444444 0000 6€/€ BBBBB
CCGCCGGCCOCOCCOGOCC 44 CCOOO -6€€, BllEll
CCCGGCGCCCOOOGOOCCOCCGOOCCC COOOCGO €6€L BBB5BBBB
GCCCGCCOGOCOOGG CGGDGCCCCGCO €€€ B1IBBBB
CCCCGCCCOGGOGO 66€6e6€6ee€ COOOOOOOOC €66 B €
GCCGCGCCGCCCCG 66666 6666 OCCGGCCCC 666€€ €6€
CGCGGCG3CGGGCG 666€ BBBBBB 66€6 CCCCGCGGOG ,66666
CGGCCGGCCGGGGG 366€ BBB1BEBBB €€6 0000 000
OGOCCCCGCCGCCC 6666 BBBBI5BBBBB €6 000 444444 COOCO
CCCGGCCGGCCOCCO 6666 BBBBBBB11BB €6 000 44444444 00
CCCCGCCCCCCGCC 6€6€6 BBIlIIlSSffiB €6 00 4444 1 44444
CCCCCCCCCCCCGC €66666 BB1I1BBBBB 666 00 444 *». 44444 44^
GGCGCCCCCCGCCCC €666€6 B1SII11BBB €€€ 00 44 .**.. ,444 4444-
GCGGGGCG €€66666 BBfilBlBBB -6€€ OOG 444 . ... A44 44-
CGCC €€€€666 BBBB1BBB €66€ 000 4444 . 444 4^
666€6€€ BBBBBBB 66666 00 4444444 4444 H
66 BBB1BBB €€666.000 4444444444
BBBB €6666 COOOO 444444444
A = AIRPORT
SYMAP
IKE = 0.0
* ' I
I
I
I
4
I
I
I
J
I
I
4
I
I
J
2
I
I
.L~*. T
T"» X
44444444 I
44444444444 I
h444444444444 I
1^4444444444444 1
J44444442444444 3
fr444444444444444 I
M-44444444444444 I
H44444444444444 I
4444444444444 I
4444444444 4
44444444 I
44444 I
444 I
I
* "7^»^a ^M^m it ^ ^ -rm ^i ^k.
*" TT ; j ?»^^^^ ^™ 'T'
TEST MAP #1
GGNTGUK MAP - 3 CHANGE IN PGPULATICK FRGM 1960 - 1970
ROW ANC CCLUWN MEASUREMENT
Example 1 -5
-------
DATA VALUE EXTREMES ARE -14.00 43.00
ABSOLUTE VALUE RANGE APPLYING TO EACH LEVEL
(•MAXIMUM* INCLUDED IN HIGHEST LEVEL ONLY)
MINIMUM -14.00 -2.60 8.80 20.20 31.60
MAXIMUM -2.60 8.80 20.20 31.60 43.00
PERCENTAGE OF TOTAL ABSOLUTE VALUE RANGE APPLYING TO EACH LEVEL
20.00 20.00 20.00 20.00 20.00
FREQUENCY DISTRIBUTION OF DATA POINT VALUES IN EACH LEVEL
LEVSL - i - 5 - - 3 - 4 &
......... +-M-H-.M..H. OOOOOOOOO 888ee88e€
......... +-M--M-W-M- OQOOOOOOQ 6€8886€6€
SYMBOLS .».*]..... ++++2-M--M- 000030000 ee884fie8€
.*..».... -H-H-+-M-++ OOCOOOOOO 8€888868e
......... -M-++-M-H--I- ooooooooo, eeeeeeee€
FREQ. 21102
1 !*.!.. I I-n-2-n-I I00300I IJM58BI
2 I..1..I IM5MI
TIME = 0.0
Example 1 -5
-------
A-OUTLINE
1.0 1.6
.5 4.1
2.5 5.8
4.3 5.2
4.3 2.6
3Y6 .2
1.0 1.6
3.5 5.8
2.6 7.1
3.8 7.8
4.6 6.8
3.5 5.8
59999
B-OATA POINTS
2.9 1.3
1.5 3.4
3.1 3.0
2.4 5.3
3.4 4.8
3.7 7.0
99999
E-VALUES
12.0
-14.C
43.0
38.0
-4.0
0.0
99999
Example 1-6
Input Listing: Contour Map
-------
C-OTOLEGENDS
3 P
***
5 P
*****
1 P
*
1 P
N
6 P
SCALE
L
I P
1
1 P
1
1 P
1 P
0
1 P
5
2 P
10
11 P
A = AIRPORT
A
A P
+= L
7 P
= CANAL
+= L
99999
F-MAP
TEST MAP = 2
CONTOUR MAP
MEASUREMENT
1
?
QOQ9Q
.6
.6
.6
.6
.6
1.3
1.3
1.3
1.3
1.3
1.3
1.3
1.3
4.6
1.8
2.3
2.8
2.5
1.8
3.8
4.4
4.4
4.4
1.0
2.5
4.4
- ( CHANGE IN
IN INCHES
5.0
0.0
6.8
6.8
6.8
6.8
6.8
6.3
7.3
6.3
7.3
6.8
6.3
6.8
7.3
.2
2.0
2.2
2.0
1.5
2.0
5.2
.2
.4
.6
4.6
3.5
4.5
POPULAT
8.0
0.0
1.0
-1.0
2.0
5*0
-1.0
-1.0
-1.0
ION FROM
5.0
-1.0
-2.0
-2.0
8.0
Example 1-6
(Continued)
-------
A-OUT LINE
VERTEX
i)
21
3)
4)
5)
5)
AREA=
( I)
( 2)
i 3}
( 4)
AREA=
8-DATA
DOWN
ISLAND
1.00
0.50
2.50
4.30
4.30
3.60
15.05
I SLAND
3.50
2.60
3.80
4.60
2.05
POINTS
ACROSS
1
1.60
4.10
5.80
5.20
2.60
0. 20
CENTER=(
2
5.80
7.10
7.80
6. 30
CENTER=(
2.61, 3.171
3.61, 6.85)
POINT
DOWN
ACROSS
£
1)
2)
5)
4)
5)
6)
i-VALUES
2.90
1.50
3.10
2.40
3.40
3.70
1.30
3.40
3.00
5.30
4.80
7.00
DATUM
VALUE
I)
2)
3)
4)
5)
6)
12.00
•14.00
43.00
38.00
-4.00
0.0
Example 1-7
Output Listing: Contour Map
-------
C-CTOLEGENDS
VERTEX DOWN ACROSS +RGWS +COLS
( 1) • ***• ACROSS FROM
0.60 6.80 0» -1.
( 2) •*****• ACROSS PROM
0.60 6.80 1. -20
( 31 •*« AT POINT
0.60 6.80 -1. 0.
< 41 «N« AT POINT
0.60 6. 80 2. C.
< 5) 'SCALE • ACROSS FRCtf
0.60 6.80 5. -2.
( 6) •-• CN LINE
( 1) 1.30 6.30
{ 2) 1.30 7.3C
LENGTH= 1.00
( 7) •|• AT POINT
1.30 6.30 0. 0.
{ 8» •I1 AT POINT
1.30 7.30 0. 0.
( 9) •+• AT POINT
1.30 6.80 0* C.
( 10) «0« AT POINT
1.30 6.30 -1» 0.
{ 111 »5« AT POINT
1.30 6.80 -1. 0.
( 12) «lCf ACROSS FROM
1.30 7«3G -1. 0.
( 13) "A = AIRPORT1 ACROSS FROM
4.60 0.20 0. 0.
Example 1-7
(Continued)
-------
{ 14) • • IN AREA
( 1)
( 2)
( 3)
1 4)
< 5L
LENGTH=
AREA=
CENTER=(
1*80
2.30
2. 80
2»50
1..8Q
2,52
0.35
2.35,
2.00
2.20
2.00
1.50
2*00
1.90)
( 15) 'A* AT POINT
3.80
16) •*• CN LINE
i)
2)
4.40
4.40
0.20
5.20
0.20
0.40
LENGTH=
( 17) *= CANAL* ACROSS FROM
4.40 0.60
( 18) •*• ON LINE
( 1)
< 2)
( 3)
LENGTH=
1.00
2.50
4.40
4.01
4.60
3.50
4.50
0.
0.
Example 1-7
(Continued)
-------
F-MAP
TEST MAP #2
CONTOUR MAP - * CHANGE IN POPULATION FROM i960
MEASUREMENT IN INCHES
ELECTIVE
- 1970
1 MAP SIZE IS 5.00 INCHES LONG BY
2 EXTREME POINTS ARE { C.O , 0.0 ) AND (
TIME =
0,0
6.00 INCHES
5.00, 8.00)
MAP
TEST MAP #2
CONTOUR MAP - * CHANGE IN POPULATION FROM 1960 - 1970
MEASUREMENT IN INCHES
MAP SCALE = l.COOO INCHES ON OUTPUT MAP/UMTS ON SOURCE MAP
MAP SHCULC BE PRINTED AT 8.0 ROWS PER INCH AND 10.0 COLUMNS PER INCH
RCh = DOWN COORDINATE * 8.0000
COLUMN = ACROSS COORDINATE * 1C.OOOC
CATA PCINTS FCR MAP
PCINT RCW COLUMN
DATUM
VALUE
LEVEL
i)
2)
3 )
6)
23
12
25
19
27
30
13
34
30
53
48
70
STANDARD SEARCH RADIUS IS
TIME = C.O
1
2
•3
4
5
12.00
-14.00
43.00
36.00
-4.00
0.0
3.9958
3
1
5
5
1
2
Example 1-7
(Continued)
-------
I I
I I
I * I
•*• ........ *** 4
I ***** I
I 4 N I
I 44 • «••«*..•«•«..«.«..-«.««• 44+ I
I +++ •••••••••••*•••••««•• 4*+4 SCALE: I
1 4+4444 ................... 4+4 Q 1
I ++++4++++ .................. + 44 00 0 5 10 I
I 4444444444 ........1...... *44 COO |- 4——| I
I 4+*4******** ..............+4++ 000 6 I
I 00 4444444444 .......... +444 000 866 I
4 CCCOC 44****** ....... 4+44 000, 666 • 4
i cccccooc 4***+* 4+44 oooo -see IE i
I CCOCOOOO CCO 4++**4**++*+ COCO 666 MM I
I CCGCCCC CCOOCOC * CCCOO €6€ MVM I
I CCCCCCC CCCCGCCCCCGCCC* CGCCCCG free EBB5BBS I
2 CCCCGCC 0 *GCCOOCCOCG -6€6 BM«M 2
I CCCCCCCOCC 0 6666666666-ee *CCOOCCOOG 66€€ 1MB 0 I
I CCCCCCCCCCCCG 66666 €€6* OOCCCOCC 668 .8 0 I
I COCCCCG3COCCCO 8666 BBBBBB 66*6 OCOCCOCCOC 66868 4 44* I
I CGOCCCOCCOCOCO 6666 BBBBBBBB «&6* CCCCC COO 0 444444 I
4 COOCCCCCCCOCCC 6666 BBB8S5BSBB 68* 000 4444 0000 0 4*444444 4
I CCCGC CCCOC CCCCC 8666 BBBBEBEBBBB -66*000 44444444 00 C 44444444-44 I
, I COCGCGCCCCCCOO 66666 BBB1BBBBBH 66 +0 +++4 1 4444 0 44444-44444444 I
N I CCOCCCCGCCCCOOO 86868 BBBEEBBBBB 666 *0 444 .. 44444 44 444444444444444-4 I
o I CCCCCCCCOOCCOO 688868 EllfiSBBBEE 666 0* 444 ... 4444 444444444444444*4 I
1 3 OCCCOCCOO, €6668 BBBBEBEBSB -66€ 000*44 ..... A4 444-44444424444444 3
I CCCO 6668866 BEBBBBBB 6666 000*444 ». 444 4*444444444*4444 I
I 86€ee6€66 BBSBBB. 86666 000 +4444 444 44444444*4444 I
I 8€66 BBBB €€€€€! COCO 4*4444*444 *+**+***** 1
I BUB €€€€666 COCO 4+44444444 44444444 I
* +++ = CANAL * 44444 4
I 44 I
I A = AIRPORT I
I I
1 — —~ — —. _!
SYMAP
TIKE = 0.0
TEST MAP #2
CONTOUR M4P - $ CHANGE IN POPULATION FROM 1960 - 1S70
MEASUREMENT IN INCHES
Example 1-8
-------
F-MAP
TEST MAP #2
CONTOUR MAP - % CHANGE
MEASUREMENT IN INCHES
1
2
99999
F-MAP
TEST MAP #4
CONTOUR MAP -
MEASUREMENT IN
1
2
3
4
5
8
10
ALL AREAS WITH
LOWEST LEVEL
9999
99999
F-MAP
TEST MAP #5
CONTOUR MAP - % CHANGE
MEASUREMENT IN INCHES
ISA ME
2SAME
4SAME
5
6
8SAME
9
99999
F-MAP
TEST MAP #6
CONTOUR MAP - % CHANGE
MEASUREMENT IN INCHES
12
6
100
10
IN POPULATION FROM 1960 - 1970
8.0
0.0
5.0
8.0
IN POPULATION FROM 1960 - 1970
5.0
0.0
: CHANGE
INCHES
5.0
0.0
10.0
0.0
100.0
DECREASED POPULATION IN 1960-1970 ARE SHOWN BY THE
8.0
0.0
5.0
8.0
IN POPULATION FRCF 1960 - 1970
40.0
5.0
5.0
10.0
10.0
10.0
IN POPULATION FROM 1960 - 1970
3
5
6
7
.+XOCO 123456
-XX
A
V
99999
F-MAP
TEST MAP #7
CONTOUR MAP -
,0
,0
,0
10.0
10.0
10.0
10.0
50.0
LLHH
. H
H
% CHANGE IN POPULATION FROM 1960 - 1970
12
2 0.0
99999
4.0
2.5
8.0
Example 1-9
Input Listing: Contour Map Packages
-------
I
1
T
1
I
I
I
I
I
1
I
T
T
7
i
i
i
i
2
I
I
+
I
I
I
I
3
T
1
T
T
1
T
1
I
I
I
I
LLLLLLLL
LLLLLLLLLLLLLLL
LLLLL LLLL LLLLL LLLLLLLL
LL LLLLLLLL LLLLLL LLLLLL LLLLLL..*
* , LLLL LLLLLLLLLLLLLLL LLLLLLL.*.
•.... LLLLLLLLLLLLLLLLLLLLLLL.*. •
i . . , - .^..IIIIIIIIIILIIMIII*. 1 i 1 _
.............. .1 1 11 IM III III*...**
t 1 !______ __— — A 1 1 1 I 1 I 1 i 1
— — — — — — •* .LLLLLLLLL
— —_____! ** ~ 1 1 1 1 1 1 1
— ______—————• » •• »« LLLLLLL
*** = ^AfvAL *
A = AIRPCRT
— — b T / — ———-i r
I
I
I
_•> I
# * * * * I
N I
SCALt: I
1
0 5 1C I
!_..._ L 1 T
1 * 1 1
I
I
I
I
• 2
I
•.. I
................ 1
••*••.•••*•••• .LLLL I
1 1 I 1 I 1 1 1 I T
1 1 I 1 1 1 1 T
. 1 1 1 1 I 1 T
.... LLLLLL I
1 1 1 1 1 T
...LLLLL 1
.LLLL +
LL I
1
I
I
A -*- 1 —_.|——_.#
TcbT i"i4P ^s
CCMCJK M/F - % CHANGE l>\ PCFbLATICN FRCC I960 -
MEASUi^EMcM IN INCHES
Example 1-10
Contour Map 2: Maximum And Minimum Values
ALL ^R£AS UTH CELREAStC PCFULATIGN
-------
VALUc cXUENfcS /JR
43. CC
ABSLLLT: V/-LUE RMGE APPLYING TC £/>CH
INCLUCtC IN HIGHEST LcVEL CNLY)
UNI
EELOh
c.c
0.00
IC.CC
2 C » C 0
20.00
3C.CC
30. GO
40.CC
5C.OC
50.OC
60.CO
00
I
PcRCtNTAGi. Lf- TDT^L ^ESCLLTt V/5LUE RANGE APPLYING TO E/iCh LEV£L
IC.CC iO.CC iC.CC 10.CO 10.Ou
10.CO
r^cQUcKCY CISTRIBUTICN CF C/HA PCINT VALUES IN EACH LEVEL
LcVtL L 1 2 * &
SO. 00
LLLLLLLLL
LL t 1 L I 1 11
SYHdCLS LLLLkLLLL
LLLLLLLLL
LLLLLLLLL
*
•
.1
. _,
t
«
* •
. •
t
i
2
i
t
== = = == = = = = = === ====== = ==== = = ================ JLUU.UU
— =— = — = — + -H"l--t"t"*"t-+ XXXXXXXXX
~ =-===-=_= +++++++++ XXXXXXXXX
' 3 = = = s4==== ++++5+-n-f XXXX6XXXX
+•*•+++•++-§•+ XXXXXXXXX
1 — — — = = = = 3 = = = = 4.4.^.^.4.4.4.4.4. VYYWYW-y
FhEQ
II M
^ I j.
ILLiLLI I..1..I I«'2««I
ILLkLLI
I==4==I I-f+5-n-I
10*00
1C
CCOCGCCOO
OOQOCCOOO 666986666
OCOC7COOC eeeeeeeee aa8B9BBBB =A=mmmAmm
OCGCCQOOO 686866666 888888888 IBBUU1I
COGCOCOOO 666686666 88BBBB88B BBBBBBBBB
0
0
0
0
Example 1-10
-------
I ' I
I I
I I
I * I
+ LLLLLLLL ** ' +
I LLLLLLLLLLLLLLL ***** I
I LLLLLLLLLLLLLLLLLLLLL. N I
1 .LLLLLLLLLLLLLLLLLLLLLLLLLLL..* I
I ,.LLLLLLLLLLLLLLLLLLLLLLLLL.,*+ SCALE: I
L ...*.LLLi-LLLLLLLLLLLLLLLLLLL.*++0 i
i ++......LLLLLLLLLLLLLLLLLLLLL+++QOO 0 5 10 I
I 4+++.,....LLLLLLLLLLkLLLLLLL*.++CGGe I +• I 1
I ++++++++,...LLLLLLLLLLLLLLLL*.++GCGC68 I
I 3++++++++++..«*LLLLLLlLLLLLL*»*+CCCQ€e6d I
+ GGCCCC++ +++++.. .LLLLLLLLLL.*.++GCC€€6eM +
I CGCCG^CG GG++++++... »LLLL , .*.++CGCC€€€11H I
I LCCCCCCC CCGGCQ4-t4 + + «....^+-» + CCCC€€€tllIM I
I CCCCGCG CCCCCCCCCCCCCG*CCGCCCCCC€€€iMI51M I
1 CCCCCCCCCC Cfce€€€€lIlI€€€€*-6COCCCCCCC€€€€€H«IM * I
i ucccGcccGGCGG ^fcteiiiiiiii^^-tccccccccccctttfceee +++ i
+ CGCCCCCCCCGCCC€6€fc€liilHHMhhI»»€-€*CCCG-*4.....-n- + CGC +++-M-.IIII, +
I- CCCCQCCCuOCCCC€€€€etIiiMIIIIll»ee€€CC*+Z!LLLLLLLLlI ++.. CI IZ^!!LLLLL I
3 CCCCCCCGC6fc€€6€eHIIiIIIl»€€-€€CCCC*-»-..LLLLLLA, ......... 1LLLLLLL 3
I GCCefc€ee&6€€IiiIll«I-e€€€€CQGO*+., LLLLLLL. .......LLLLLLLLL I
I €€€6€&e6tBIIIClfl-fr€€€-€CGCC+*...LLLLLL .LLLLLLL I
I e€~lli*OfSr€€€€CCOGC-n-*....LLL. .....LLLLL I
I IliIII€€-t-£€-eCGGQO++*........ ....LLLL I
+ *** = CANAL * ...LL +
I -L I
I A = AiF-FGPT I
I I
I I
-, + -[ + > + 3 + 4 +-•• 5 +--—6 -»• 7 + *
SYMAP
TIM- = C.C
TrST MAP ft?
CCMi-UF i'.i-f- - 4 CMKGc IN PbFbLATUN FFUN 196C - IS7C
MifAi.bKtK--M IN INCHED
Example 1-11
-------
CATA V£LIE EXTREMES ARc -14.GC 42.CC
ABSOLUT- V4LUE R/5NGE APPLYING TO EJCh LEVEL
( • NAXIKLC" INCLL'CEC IN HIGHEST LEVEL ONLY)
ABOVE
MINIMUM EELQW C.G 5»CC iC.CO 2C.CC 30.00 40,00
MAXIMUM O.C 5.0C iC.CO 20.00 30.OC 40.CO
PERCENTAGE CF TOTAL ABSOLUTE VALUE RANGE APPLYING TO EACH LEVEL
J.2.5C 12.50 25.CO 25, GC 25.00
IN)
Ul
1 FREUUEKCY LlSTRIBUTIDN OF DATA FCINT VALUES IN EACH LEVEL
LEVEL L 1 2 3 4 5 H
LLLLLLLLL ......... 44+4+++*+ CCCCCCCCO €66fce€€€€ liBflififil HHhHHHHHH
LLLLLLLLL ......... +++++++++ CCCOCCCCC feetJGCE"&€€ IBJigiBlga HHHHHHHHH
SYM8CLS LLLLLLLLL ....j..... ++++24+++ CCCC3CCCC e6fi€4e6-6€ 111158118 HHHHHHHHH
LLLLLLLLL +++++++++ CCCCCCCCC e€6€€€-643€ IBlSfieil HHHHHHHHH
LLLLLLLLL ......... + ++++++++ CCCGCCCCC ee*366€€€e lEIliaSSl HHHHHHHHH
..O
Example 1-11
-------
I
I
I
I
+
I
I
I
I
i
I
T
I
I
I
I
I
2
I
I
1
I
I
T
f
T
T
I
I
I
I
I
-1- x -»- -._^__ + -j_ _ . — 4_ ^____4_ 2__. +— -
LLLLLLLL
LLLLLLLLLLLLLLL
LLLLLLLLLLLLLLLLLLLLLL
LLLLLL LLLLLLLLLLLLLLLLLLLLLL..*
..LLLLLLLLLLLLLLLLLLLLLLLLLL.*.
.....LLLL LLLL LLLLLLLLLLLLLLL.*. *+
--»-.--_ IlllllllllLlllllll* -1.-1.J.-I. y
LLLLLLLLLLLLLLL*. ..+++ XXX
44444+++ +++++++.. .... ,..*..+++++ XXX€£6€€€
4444444 4++ + +XX+++++4+*+-f+++++++XXXX€eS48e9
, 444444 +xxxxxxxxxxxx*4+++++++++xxxxx€€«€ee6
. .+4444+++ XXXXXXXe6B6XXXX*X+++++++++XXXXXOQGOOQ
, . .+4444+++++ XXXXXe6€€6e€6XX*XX++++++++++-»XXXXXXXX
., . 4+4+2++4+++XXXXe€€e€€€€€€€€X*X4++++++++++++XXXXX
. . 4 +44444+444XXXXX#6€€EKKR€eeeXX*44444. .... .+++++++
44444 •i4444++++XXXXXAP£>4*fiRRRRL1LUIL.....
444 44 -H44+ + 4++ XXXXXXS^/P(:-f(KKfePfiftCCjXXX+*+* . . LLLLLLL ...
4 4+^4 + +++++.».++ )()(XXXX'&&Jr€*5€€C£e€€ XX X++ +*. . .LLLLLLLL..
44444444. v v VY XXX fiflfiPPftf^fiPftflfi XX X+++.*. m LLLLLLL AL
XX XX XXX fl ftRflftfiflRHW XXXXX++ + . .*. . LLLLLLL
xe€e€€eeeeexxxxx+++4...*. LLLLLLL
eeeeeeexxxxx 4+++...*. LLLLLLL
**+ = C^NAL *
O — -r--— , — ». — -,.-
V-
***
*****
N
SCALES
0 5 10
1 + f
i T . i
+ .
. * . •
• •• » • • «
. 1 1 1 1 i 1 1 I 1
• . ...••L.L.kL.l.l.l-L-i.
..•.LLLLLL
. ..LLLLL
.LLLL
LL
— *
I
I
I
+
i
I
I
I
T
I
T
+
I
I
T
I
2
I
I
I
I
+
I
I
I
3
T
T
I
I
+
I
I
I
-*
SYMAP
TI*E = C.O
TEiT MAP 66
CONTOUR M£P - 4 CHANGE IN PCPULATICN FROM 1960 - 1S7C
MEASUREMENT IN INCHES
Example 1-12
-------
i
to
DATA VALIt EXTREMES ARE -14.CO 43.CC
ABSOLUTE VALUE RANGE APPLYING TC EACH LEVEL
(•FAXIMUM' INCLUDED IN HIGHEST LEVEL CNLY)
MINIMUM EELCW 0.0 10,00 20.00 30. CC 40.00 50. OC
MAXIMUM 0.0 iO.OC 20. CC 3C.OO 40.00 50.00 100.00
PERCENTAGE CF TOTAL ABSCLLTE VALUE RANGE APPLYING TO EACH LEVEL
1C.CC 1C.CC 1C.OC 10.00 10.00 50.00
FREQUENCY DISTRIBUTION OF DATA PCINT VALUES IN EACH LEVEL
LEVEL.. .. L ... ._ 1 ______ 2 ______ _______ 3. ____________ *._.. ________ 5. ......... _ ..... ^ _______
= == = = = = = == = === = = == = = = = = = = === ==s=== = e=x= = = =•==•==:== B=:S=-=== a =-====;=sa3=!C3:3s::
LLLLLLLLL ......... ++ +++4+++ XXXXXXXXX 66eeee66e KBJBBBKBBE
LLLLLLLLL ......... -»*+++++++ XXXXXXXXX. 666666666 B8&88KBKK
1
SYMBOLS LLLLLLLLL ....!.... ++++2++++ XXXX3XXXX 668646666 1BBK5BBBK
LLLLLLLLL ......... +*+++++++ XXXXXXXXX 6€6€66666 BCUIB8IIBB
LLLLLLLLL_*........_++4444-f++ XXXXXXXXX _
i 1 1 0~~ 1 1
TTTt
TIKE = 0.0
Example 1-12
-------
+ - + 2 + 3 -I- t + 5 + 6 + J
! I
ILLL * I
1LLLL *** I
ILLLLL ***** I
I LLLLLL N I
ILLLLLLL I
ILLLLLLLL I
+LLLLLLL.. SCALE +
ILLLLLLL.., * I
ILLLLLL....* I
I LLLLLL...*.. I
ILLLLL*. .*...+ I
2LLLLL. »*...+++ 0 5 10 2
I LLLL •«+.. *.++++ I ------- * -------- 1 I
, ILLL »•*•.**+++++-«••»• I
N ILL ».*.... •*++++++ XX I
oo +LL.*.«»..-m-++++XXXX +
1 I L. *..... ^+^+-«-+XXXXXX I
I*+.»..»+++-H"H-XXXXXXXe I
I*. ..... ++++++ XX XXXXXX€€ I
i ...... ++-n-M"».xxxxxxxeeee i
3.....++-»"M»M-xxxxxxx«eeee6 3
i . .. . ++++++++xxxxxxeee«ee6e i
i . +++++++-M- xxxxxxxeeeeeee€e€88
-c ---- + ---- 1 ---- 1^ ---- 2 ---- + --- 3 ---- + ---- 4 ---- +• ---- 5 ---- •«• --- 6 -- + ---- 7
SYMAP
TIHE = 0.0
TEST MAP #7
CONTOUR MAP - 4! CHANGE IN POPULATION FROM I960 - 1970
Example 1-13 i
-------
A-OUTLINP
qqqqq
R-OATA
qqqqq
. —
—
POINTS
-!• o
.5
4.3
4.3
3.6
1.0
3.5
2.6
3.8
4.6
3.5
_2»? ...
1.5
3.1
2.4
3.4
3.7
1.6
4.1
T~~~ 5^2
2.6
.2
1.6
5.8
7.1
7.8
6.8
5.8
1.3
3.4
3.0
5.3
4.8
7.0
—
C-OTOLEGENDS
3
*##
c;
*##*»
_L
*
1
N
ft
-------
A = ATP.POPT
...A 1.8 2.0
2.3 2.2
2^J_ 2tO
2.5 1.5
1.8 2.0,
A P 3.8 5.2
4.4 .4
7 P 4.4 _. __....6.
= r A M A L
_. __ ._•=. _J L..Q .. 4,6
2.5 3.5
4.4 4.5
qqpqq
10.0
20.0
•^o.o
40.0
50.0
60.0
qqqqq
T ___
TMAI. MAP
rt O«;F^T PPOVJMITY TO TOWN HALL
1 " " " 5\ 0 " 8.0
_ ____ ^ _____ o_s_g... o.o_ 5.0 8.0
qqooq
oqooq
r-MAP
T£5T. M,AP =8_
TOWM PRPCIMCTS
1 " 5.0 8.0
____ ? _.0._0 _ 0..0 ,_... 5.0 8.0
X
A
n
qqoqq
qqqqqq
Example 1-14
(Cont inued)
-------
c-VALUES
DATUM
VALUE
i)
2)
3)
6)
10.00
20. CO
30.00
40.00
50.00
60.00
F-MAP
TEST MAP *3
PRCXIfcAL MAP
CLOSEST PROXIMITY TC TCfcN HALL
^LtCTIVE
i MAP SIZE IS 5.00 INCHES LONG BY
± EXTREME POINTS ARE ( 0.0 , 0.0 ) AND (
il FRACTIONAL EXTRAPOLATION IS C.O
5t FRuXIMAL TYPE MAP
37 VALUE CCMPUTED INDEPENDENTLY FOR EVERY CHARACTER
0.0
£.00 INCHES WIDE
5.00, 6.00)
MAP
ThST
P1
-------
*
***
*****
SCALE
I
1
I
I
4 4-H-44 +++
I 4444444+4444444
I 4444444444444444444444
I 444444444444444444444444444444*
I 4444444444444444444^4444 fifaflOQQ
4 «!.!!*.. 444444444444444444*444 96£66666
I ........ * 4444444444444444*4444 €66666666
1 ........ . 4444444444444*4444 6&€€€€€66€6
I ....... * ° . 444444*4444 6€€€€6€68669
L .llllll* I GGCCGGCGCCG* B ee€€€C£CCGCGC€e
I . GGCCCGCGGCCGG*CCOC • 6666666689098
I CCGCCCGGGGCGG+GCG BBBB €GCDQOOOOO
w I .......1........ OCGCQCCCCGCCOOCO BBBBBBB 6668896
r- I ., .,. OGCCCCGCCGGCC'OG*G BBBBBBBSS 6666
1 4 CGGCGCC2CGCGGCOC BIBBBBiBlUK 6
I .................. GGCCGGCGCCCGCGGC*li«ir
I CCGCCCCCCCCCGOCG 1^ ,_
I C^LCCCCCCCCLCCOCC *tiIilRaSIH!SBIE
I GCCCCCGCGCCCGQOOC
3 CGCCGCCCGCCCCGGCC
I CCCCCCCGGCGGCGCC
I GCCGCCGCCGGCCCCG
I GCCCCCCCGCCCGCCCC
I CCGCGCCGCCGGC
4 *** = C£NAL *
1
I A = AIRPCRT
I
I
f ^ —i + 2 4- 3 4 4- 4 5
SYKAP
TIKE = 0.0
• *
I
I
I
I
4
I
I
I
I
I
I
I
4
I
I
I
I
2
I
I
I
I
4
I
I
I
I
3
I
I
I
4
I
I
I
I
*
TEST MAP #3
PROXIMAL PAP
CLOSEST PPUXIMITY TO TCfcN HALL
Example 1-16
-------
CAT 4 VALUt tXTKEMES ARE 1C.CC 60.CO
ABSOLUTE VALUE RANCc APPLYING TC EACH LEVEL
INCLUCEC IN t-lGhcST LEVEL CNLY)
MINIMUM 10.00 20.00 3C.OO 40.00 50.00
MXIKUM 20. CO 3C.OG 4C-CC 50.00 60.00
PERCENTAGE CF TGT^L ABSOLUTE VALUE RAKGt APPLYING TO EACH LEVEL
20.CO 20*00 20.CO 20.00 20.CO
FREQUENCY DISTRIBUTION OF DATA PCINT VALUES IN EACH LEVEL
.... L£V£L_ .... ._ 1 _____ 2 .-_... - - J3 ._ _A_ ___ -5 .
......... +*-f+4-M-n- cccccooco cecocccfei
......... +4+++++-I-+ CCCCCOOCC OCCOCCCCC
SYMBCLS ....1.... 44++2+++4 CCCC3COCO OOCC^GOCC ••••511B1
CCCCCLCCO fee€eefe€6€ mnuu
CCCCCCOCO OODOOOilOC
FREQ, 11112
1 I..1..I I++2-»-H IOQ30QI I6e4€€I III5III
2 III5MI
TIKc = 0.0
Example 1-16
-------
I — —•_____-»_•,_.-_._.—._-».«.•..-.» _-- _-»._v_-»*«_>-»-_*«w-»-».i.. -»._._».-_,._--»..-»..,_•.•-_»._..•»_».._>«•_-** «-*_••»_ -•. _»_».»^»«».»_^^T».»B^^ T
I-._.-_ — —_,_,_» _ _________ ___ __,-_____-________---_._-_,— __—_-___ T
— —»_-_. — *--— —.*.-_.—._*•-- ___ __-,_,.._._»_.«.._. _»*___._,.•.__•__.«_.__*«•._.'-. .*-»_.-. _._.«»_»••-» _»-_,-_,._,__, _ I. .1 «« _•_ ni« ^
I -.«._._» __ — -_,-_,___ _________________________ _________ ________**.».4__.__ T
— ->——-»——-—- — — — — — — -.-.—_-- — -.___*—_ — -.-»_-_-__,_____-_-. ^..-, __-._ — — _-.__-_-___--._ —————-^---_,—..— ^
+ _ •*_ —--m *•-<_>.»<-».__ * •*_<«_ ___,_ ____ ______ _____ ^^ — .•_•• ___ • • • I • •• • F r • nn i i • • _
—»-—* —- —» -»*»^ — ^»B^B>^ ^^^^v i _ «^ 4v aH-^ -^ —» ^ ^ ^ <^ ^ «M^ -^ <^ ^ «v^»^»^M ^»^»^»«••«•• ^» ^•••••^v^v ^a_*_v .v^v^nv>~— ~~^T^ . ^^ " ^^^^ ^^
I— __,__»______ J ^ 1 T
— -—"--— — --»•-- ^^ — •»•-—. — -» -» — — -»».-». ^•4. ^ _.-!»•* __. •»-•. ^«W-»_.•• «.^^_.-»-.M»«*M.,_..«._*iB.i-B -»«*•« MB ^ •»••_• _|
T __,____-»____,_»___,__,_____.__ __^____________.__._--.M.__--._*._^M. T
1 -™'~»"—b1-" —-^---^•«-_.-_,•*«•_•* -_--•_->-•-• ^^***^*^"*^1MH^*V**^^^^^^^^T*M**K^ «---^_-i ^
J -.—-»—.—.— -»«-.—_«__. __-.^,.^,^_ — — — _—_——___.—---.-.-»~-» — --—_——— I
I * "^ — ^ •-•»*•-•• <•-_» — —•—^ M» .•«_, «»^«» ••.^.V-.^^IV** •—->«••••••-••- ^- —-—.--I—* _•-_•••_! _• J_ J
£._.____ ___»__,^__ ___,_____.^_ _• •__ _ —._ _^ _._ ^^••-»^^_L. 1
• •T'*^**'^""T"-"~""*"™—^^^~T^**- TT"T - T^"" . <—~ Ji
T —-» — — — —.—.— —.—»— V • _,-»__-»-._.-._.-,—_-.——..-.—-»-» — —.-.—»_*—.»_.-.-. T
I-^ g 2C.CO • -4-—•-• ______—-.———i
T -• — -»-»«•-»-_--«-.•.«.-. • • •^^—.^•••••a • ^ •_•••_-••••-••» •»»••-» ^.-»-«i-a^ n •_•••»! T
I —*——' ——^———*-— | | ..-.-.-.^— «_.-»-.--— *.».»«-.«.««»• — ^-_—.—— J
+ B B _«_«____. _ . , ^
1 • I r— r --r 1
I «1 « --"-T -——TT— -J
i- • •••••• n — ___—-—-_—._-!
I I M1M • 40.00 ——r—•- r---I
2 1 ••••• • --—---—-—£
I B I II -_——-—__-_ — -j
i-—-- • a in II~~™ —'"H1
i • • •» — --—r --" ~—;—i
I— I • •—— 1
J • • 50.00 —^-1
I— • I . 1
3i:___-_ • * _n~n_ ™r
I ___________ • • __?-
——.—_—_ f g _ _______ ~~i
!^ ^ a f -—I
! ___-III_^._-....._ ^ c ^
T M» >T^^T-_ r -_-•-—•.•...•..• •-. .. .. •TII _ ,_r_ _ •MI_..-»TI-^F-._I_» .- »._._...] u__i_. L_U ' • T
1 - ^«-.««-»-»T_I -•-•••_ v..»^--.«»-V«»«»_.__..»-i-.*«i-i.-_.«»-__iwi •« ..••-_,__>^._.Mi_.H_._»_M_»«»4» •H_»^I-.M»^^<-.*»_»I-I-^««->B H-^I^ ^
A > 1——+— — 2 ^ 3 +-->—4^——••• -5- *r 6^ * 7- *——*
SYMAP
TINE = 0.0
TcST MAP *8
PRCXIM4L J<^P
TC!«N PRECINCTS
Example 1-17
-------
CATA VALUE EXTREMES AH I: 10.CC tC.CC
ABSOLUTE VALUE RANGE APPLYING TC EACH LEVtL
('MAXIMUM' INCLUCEC IK HIGHEST LEVEL CNLY)
MINIMUM 10. GC 20. OC 30.00 40.00 50.00
MAXIMUM 20.00 20.00 4C.CC 50.00 60.00
PERCENTAGE CF TOTAL ABSOLUTE VALUE KAKGE APPLYING TO EACH LEVEL
20. CO 20.00 20. CO 20.00 2C.OC
FREQUENCY DISTRIBUTION OF CATA FLINT VALUES IN EACH LEVEL
i LEVEL l_ 2 3 4 _ §„
i
SYMBCLS
FREQ. I I 1 1 2
II II II II II I
2 I I
TIME » 0.0
Example 1-17
-------
I
(Jj
Example 1-18
-------
OO
^J
I
Example 1-19
-------
A-CONFORMCLINES
1 A
2 A
3 A
4 A
5 A
6 A
?9999
ES
1.0
.8
2.2
3.6
3.7
1.0
.8
.4
1.3
2.8
2.3
.8
2.3
2.9
4.2
4.3
3.6
2.3
1.3
2.5
3.2
2.9
1.3
2.9
3.2
4.3
4.2
2.9
3.7
2.8
3.8
4.7
3.7
1.7
2.5
2.5
2.4
.3
1.7
2.5
4.2
4.8
4.5
2.5
2.5
2.5
4.5
4.3
2.8
2.4
2.5
4.8
6.0
5.7
4.5
4.8
4.5
5.7
5.3
4.3
4.5
6.0
7.2
8.0
6.9
6.0
Example 1-20
Input Lis ting: Conformant Map
-------
C-OTULTTTENDS
3 P
***
5 P
4****
1 P
*
1 P
N
6 P
SCALE:
i P
5
11 P
1 P
0
2 P
10
11 P
A = AIRPORT
A
A P
+= L
7 P
= CANAL
+= L
99999
E-VALUES
99999
F-MAP
TEST MAP #4
CONFORMANT MAP
1
2
99999
.6
.6
.6
.6
.6
.6
.6
.6
.6
4.6
1.8
2.3
2.6
2.5
1.8
3.8
4.4
4.4
4.4
1.0
2.5
4.4
40.0
12.0
100.0
30.0
96.0
73.0
- TAX
5.0
0.0
6.8
6.8 1.0
6.8 -1.0
6.8 2.0
6.8 4.0
6.8 6.0
6.8 7.0
6.8 6.0
6.8 6.0
.2
2.0
2.2
2.0
1.5
2.0
5.2
.2
.4
.6
4.6
3.5
4.5
RATE
8.0
0.0 5.0
-1.0
-2.0
-2.0
-5.0
-5.0
5.0
8.C
Example 1-ZO
(Continued)
-------
A-CONFCRMCLINES
VERTEX
i
OCfcN
ACROSS
( 1)
2)
3)
4)
5)
61
_ENGTH=
^REA=
:ENTER=(
1.00
0.80
2.20
3.60
3.70
1.00
6.77
3.94
2.48,
1.70
2.50
2. 50
2.40
€.30
1.70
1.69)
AREA
{ 1)
( 2)
( 3)
t 4)
( 5)
( 6)
L£NGTH=
AREA=
CEMER=(
3
0.80
G.40
1«30
2.80
2.30
0.80
7.92
4.18
1.53,
2.50
^.20
4.80
4.50
2.50
3.64)
AREA
a,
nt
rt
g
1)
2)
3)
4}
51
6)
LENGTH=
AREA=
CENTER={
i)
2)
3)
4)
5)
LEMGTH=
AREA=
CEMER =
1)
2)
3)
4)
5)
LEKGTH
AREA=
2.30
2.90
4.20
4.30
3.60
2.30
7.02
3.17
3.38,
AREA
1.30
2.SO
3.20
2«90
1.30
5.32
1.61
2.42,
AREA
2.90
3.20
4.30
4.20
2.90
4.73
1.38
3.63,
2.50
4. 50
4.30
2. EC
2.40
2,50
3.38)
4.80
6.00
5.70
4,50
4.80
5.
4.50
5.70
5.30
4. 3C
4.50
4.94)
t
O
AREA
1)
2)
3)
4)
5)
3.70
2.80
3.80
4.70
3.70
5.55
1.91
3 * 75,
6. GO
7. 20
8.00
6. SC
6.00
-------
E-VALUES
DATUM
VALUE
1)
2)
3)
4)
5)
o)
40.00
12.00
100.00
30.00
96.CO
73.00
F-KAP
TEST MAP #4
CONFORMANT MAP - TAX RATE
ELECTIVE
1 MAP SIZE IS 5.00 INCHES LCNG EY 8.00 INCHES hIDE
2 EXTREME POINTS ARE ( O.C , 0.0 ) AND < 5.00, 8.00)
TIME =
0.0
MAP
TEST MAP #4
CCNFCRhAM MAP - TAX RATE
MAP SCALE = 1.0000 INCHES ON OUTPUT MAP/UMTS CN SOURCE MAP
MAP SHOULD BE PRINTED AT 8.C RChS PER INCH AND 10.0 COLUMNS PER INCH
ROW = DCWN COORDINATE * 8.0000
COLUMN = ACROSS COORDINATE * 10.0000
C CNF CRKCL IKES FOR MAP
ZCNt TYPc ROW
COLUMN
DATUM
VALUE
LEVEL
1)
2)
3)
4)
5)
6)
A
A
A
A
A
A
20
12
27
19
2S
30
17
36
34
52
49
70
1
2
3
40.CO
12.00
iCO.OO
30.00
96.00
73.00
2
1
5
2
5
4
Example 1-21
(Continued)
-------
I I
I I
I I
I * I
4 *#* +
i 444 ..in*mmitmn. N i
I 44444444 ...•».»•......»••...+ I
I 444444-44 .............*.....*. SCALE: I
1 4444444-44 ••*••**•••••••*•••+•** 1
I 4444-44444 ..............*.,+.... 0 5 10 I
I 4444444444 ................*..... 4 | —-fr — J I
I 44444444444 .......«.......*..... 4444 I
I 44444444444 ...........«..*...... 4444-4 I
4 4444444 444-4 .»«•.»««...*..*.»•••« 4-4-4444 4
I 4444444 4444 .............*....... +444444 I
I 444444 444 ..«•.....««•+....... 44-44444444 I
I 444444 444 ...........*......., 4444*444444 I
I 444444 444 ......*««....».. 444444444-444 I
2 44444 444 MHJg .+.......... 4444444444444 2
I 444444444 4444 BBBBBBBB8B+ .......44444+++++++++ I
I 444444444444 4444 BBBBBBBBBB+BBB . 444+++++44444 I
I 4++++++++++444+4+ BBBBBBBBBBB*BBBBMII +44444444444 . 66 I
I 444444444-44444444 BBBBXBBIBBBBB+BBBBBfll II 444444 0000 I
4 +++4++++++++++++++ BBBBBiBBBBBlB*BBBBBB •••••• + €OCOOCC +
1 ++4 + +++ + +++ + ++++++ BBBBCBBIBBMM+IUU BBBBBBBIBBBB 000COCOOCC I
I +4+44+++ + ++++++++++ BBBX1IBBIBBBBBB+BBB 59BBBBBBBUB bCGOCeO€fc+36G I
I 4+4444+++++++++++++ BififiEIBSBBBBBBB*BU BBBBBBBBBBB eeOOCCCCOGCCQGC I
Bill
BeBfifilBBBBBIl
I ++++ + 4444444444 BEBBBBSBBBBBBBBB^BB BBBBBBBBBBB e606B8COG€OOOXjiODCQ I
••
••
I BBEBEIBBIBBBUBB* BBBBBBBBBBB
I BiBBIBIBlKBBBBBB^BBBBBBIBKBB eeegeCO€CCC€006 I
I BBIBBBIBBBBBBBBB *BBBBBBBBB 6666666866666 I
I BBBBBBBB * BBBBB 6GOCC00006 I
4 *** - C/NAL * €eC6C6 4-
i eeee i
I A = AIRPORT € I
#—__^ 1 + 2 + 2 4 4——+ 5 +• 6 4 7— * *
SYMAP
II ft = 0.0
TEST MAP *4
CCNFCPMANT M4P - TAX RATt
Example 1-2Z ;
-------
VALUE EXTREMES ARE 12.CO IOC.CO
ABSOLUTE VALUE RAKGE APPLYING TO EACH LEVEL
{•MAXIMUM* INCLUDED IN HIGHEST LEVEL ONLY)
MINIMUM 12.00 29.60 47.20 64.80 82.40
MAXIMUM 29.60 47.20 64*80 82.40 100. CC
PERCENTAGE OF TOTAL ABSOLUTE VALUE RANGE APPLYING TO EACH LEVEL
20. GC 20.00 20.0C 2C.OO 20.00
FREQUENCY DISTRIBUTION OF DATA PCINT VALUES IN EACH LEVEL
LEVEL _ _1 2__ 3 - _ _ 4 __ _ 3 ~-
......... +-M-+-M-+++ coocooooo eeeeeooeo
......... +-«^-i-+-M-f+ ccccoocco eeeeooeec
SYWBLLS ....!.... +4 + -I-2-M-H- CCOC3DCOO 6C0040€C€
CCCCOOCCO CCCCOCCO€ III
+ ++^++++-«- CCCCOOOOO fee66666€€ 111
Slum
SSfii
FRtQ. 1 2 0 1 2
1 I..1..1 I++2++I I€€4€€I
2 I++2-H-I III5MI
TIME = 0.0
Example 1-22
-------
2. PREPARATION OF PACKAGES
To produce computer maps, a deck of punched
cards must be prepared as input to the computer. This
deck will consist of certain introductory cards, a
copy of the SYMAP program on cards (or on tape), and a.
number of "packages, " each composed of additional cards
covering a specific category of information about the
map to be produced. The available packages are:
i) A-OUTLINE--used to describe the
outline of the study area, by specifying the
coordinate locations of the outline vertices.
(Used for contour and proximal maps
only. )
ii) A-CONFORMOLINES--used to give the
position of the zones to which data is to be
related, by specifying the coordinate
locations of vertices on the zonal outlines.
This package is required for a conformant
map.
iii) B-DATA POINTS--used to give the position
of the points to which your data is to be
related, by specifying their coordinate
locations. Data points maybe either the
points for which data is available, or the
centers of areas, called data zones, for
which data is available. This package is
required for contour and proximal maps.
-------
iv) C-OTOLEGENDS--used to cause supplementary
information to appear on the face of the
map by specifying their coordinate
locations and content. The relative
positions of legends are adjusted auto-
matically if the size and/or scale of
the map are altered.
v) D-BARRIERS--used to give the coordinate
location and strength of impediments to inter-
polation at specified vertices.
vi) E-VALUES--used to assign numerical data to
the data points and/or data zones, by specifying
the "values" involved.
vii) El-VALUES INDEX--used to adjust the
reference order of data values in the
E-VALUES package.
viii) F-MAP--used to instruct the computer to
make each map according to certain
"electives, " most of which are optional
and have a standard default. It is also used
to specify below the map an appropriate
title for each map. An F-MAP package is
required for each map desired.
2. 1 DETERMINING LOCATIONS ON A SOURCE MAP
The geographic area to be mapped is referred to
as the "study area. " Normally, a "source map" will be used
-------
with designated top and left map borders from which
required measurements may be taken. This source map may
be identical in size to the maps which are to be produced
or it maybe of any size, with adjustment in size and scale
obtained automatically through the use of certain
specified electives in the 3T-MAP package.
A location on the source map is expressed in terms
of two coordinates, the first measured vertically from
the top map border, the second measured horizontally
from the left map border. There are two different systems
for measuring coordinate distances; row and column
measurement and equal unit measurement.
2.1.1 Row and Column Measurement
Standard computer printers, properly set to
print 8 rows per inch, produce output with characters
located in rows one-eighth inch in height and in columns
one-tenth inch in width. The standard output "grid"
for mapping is thus composed of "character locations" or
cells each measuring one-eighth inch vertically by
one-tenth inch horizontally. Coordinate measurements
may be figured in terms of these cells (or their
centers). A special SYMAP ruler (and plastic grid
sheet), combining both units, is available to facilitate
the measurement of coordinate locations on the source
map in conformance with their position on the maps to
be produced.
The characters (-'s and I's) which form the
rectangular borders on the maps produced by SYMAP
-------
are centered in the rows and columns which they
respectively occupy. The top border centers in what
is considered to be row zero. All other rows follow
vertically down the length of the map. Correspondingly,
the left border centers in what is considered to be
column zero. All other columns follow horizontally
across the width of the map.
The location of a point is specified by the number
of the row (down from the top border), followed by
the number of the column (across from the left border)
in which the point lies. Locations should be adjusted
as required to conform to the grid. If a location falls
precisely between grid cells, shift it to the cell on the
right or to the cell below, as the case may be.
2. 1. 2 Equal Unit Measurement
Although the output map is printed in the rows
and columns of the computer grid, the SYMAP program is
written to accept measurements in any units of equal
size as standard. The same scale of measurement is
used to determine both vertical and horizontal
coordinates. For example, using the inch scale on a
map ten inches square, the location of a point half
way down the map and a quarter of the way across the
map from the left is specified as "5. 0" (vertical coordinate)
followed by "2.5" (horizontal coordinate). The scale
selected must be used consistently in determining all
locations for any one map (or for a series of related maps)
except where the instructions state otherwise.
-------
Since the SYMAP program is written to accept
equal unit measurement as standard, when using row and
column measurement, the number "8. " and the number
"10. " must be punched on the first card of the
A-OUTLME, A-CONFORMOLINES, B-DATA POINTS,
C-OTOLEGENDS, and D-BARRIERS packages, if they
are included. These numbers instruct the computer to
convert the specified row and column measurements
to equal unit measurements.
2.1.3 Use of "Legends," "Title." and "Text"
Wording, numbers, or symbols common to all
maps of a series should ordinarily be treated as
legends on the face of the map--not as title or text.
So treated they will appear automatically on all maps
of a series. (See C-OTOLEGENDS packages.)
The title for each map should be clear and
meaningful--differentiated from all other maps in the
same series. It should provide information basic to
the viewer's general comprehension of what is being
presented. The text should provide significant
supplementary information. (See F-MAP package. )
2.2 A-OUTLINE
This package is optional and is used to specify the
outline of the study area for a contour or a proximal map,
when the study area does not fill the entire space within
the rectangular map border.
-------
On the first card of this package, punch
"A-OUTLINE" in columns 1-9, and the letter "X"
in column 23 if tabular printout of the input data is
not desired. (If coordinate measurements are by
row and column, continue punching the first card
with the number "8. " in columns 31-32 and the number
"10. " in columns 41-43. )
On the last card, punch the number "99999" in
columns 1-5.
On other cards, to be inserted between the first
and last, punch the coordinate locations of the study
area outline vertices (namely, those points at which the
outline changes its direction). Punch each vertex
location on a separate card, starting with the uppermost
vertex and proceeding clockwise back to and including
once again the point of beginning. This repetition tells
the computer that the outline is complete. If there are
two or more vertices equally high, start with the
one furthest to the left. If the outline is curved, approximate
the curve with short straight-line segments meeting at
what will then be vertices. If the outline is overly complex,
it maybe simplified as desired. An approximate outline
will usually prove adequate.
Punch the vertical coordinate (measurement down from
the top border) as a decimal number right justified in
columns 11-20. Punch the horizontal coordinate
(measurement across from the left border) as a decimal
number right justified in columns 21-30.
-------
If the study area is not contained within a single
outline, two or more outlines maybe employed --
presented in any desired sequence. There is no set
limitation on the possible number of outlines, but no
one outline in this package may have fewer than three
nor more than one hundred vertices. If a large or
complex outline would require more than one hundred
vertices, subdivide it into two or more outlines
which meet along a common and nonhorizontal edge.
2.3 A-CONFORMOLINES
The A-CONFORMOLINES package--short for
conformant outlines--is used to specify the outline of
each of the data zones of the study area. Only one
data value may be associated with any one data zone.
In certain instances, however, more than one outline
may be needed to define a data zone, as for the
Hawaiian Islands. In such cases, each of the outlines
which together define the whole data zone is associated
with the same data value.
The outline of a zonal area is determined on the
source map and specified on cards by a procedure
somewhat similar to that employed in the A-OUTLINE
package (not used for conformant mapping).
The outline of each data zone should be designated
on the source map. If the outline is curved,
approximate the curve with straight -line segments. If
the outline is overly complex, it may be simplified
as desired; an approximate outline will usually prove
-------
adequate. The outline of a data zone will most commonly be
designated by at least three points. However, a data zone
may be so relatively small that it must be designated by a
single point, or so narrow that it must be designated by
two or more points a>s a line.
On the first card of this package, punch "A-
CONFORMOLINES" in columns 1-15, and the letter "X" in
column 23 if tabular printout of the input data is not desired.
(If coordinate measurements are by row and column, con-
tinue punching the first card with the number "8." in columns
31-32 and the number "10." in columns 41-43.) Punch "PU"
in columns 26-27 if you want the calculated centers of gravity
of the conformant zones to be punched on cards using the
format of the B-DATA POINTS. Punch "PR" in columns 29-30
if you want these zone centers printed as data points on the
output map. Punch the letter "X" in column 63 if input is
on tape (unit 11). If the A-CONFORMOLINES package is on
tape, the entire package (including the 99999 card) following
the package name card must be on tape. The tape format is
the same as the standard form for this package. The tape
is rewound after the 99999 is read.
On the last card, punch the number "99999" in
columns 1 -5.
On other cards, to be inserted between the first and
last, punch the specifications for each of the zonal outlines,
completing all of the cards for the first outline before going
on to the second, etc.
Extreme care must be taken to ensure that each data
zone is correctly associated with its corresponding data value,
and on the first card for each conformant outline, columns
1-5 are available for punching the reference number.
-------
of the associated data Value. However; these
columns may be left blank if -zonal outlines are
entered in precisely the order in which their
associated data values are listed, and when only one
outline is included for each zone. Sequential
reference to the values as listed in the E-VALUES
package is automatic - -the first outline refers to the
first value, the second to the second, and so on.
On the first card for each conformant outline, punch
(or leave blank) the reference number of the associated
data value as an integer right justified in columns 1-5.
In column 10, punch the letter "A" or "L" or "P" to indicate
whether the zonal outline is to be represented as an area,
a line, or a point. Columns 11-20 and 21-30 are used
to specify the coordinate location of the first vertex or
point of the zonal outline. For an "area" this will be the
location of the first vertex on its circumference; for
a "line, " its starting point; for a "point, " simply the
location of that point. This first card is the only one
required for a "point" representation. Punch the
vertical coordinate (measurement down from the top
map border) as a decimal number right justified in
columns 11-20. Punch the horizontal coordinate (measure-
ment across from the left map border) as a decimal number
right justified in columns 21-30.
On additional cards, the coordinate locations of the
remaining vertices or points are specified in the order
of their position on the outline, one location per card,
punched as on the first card. For an "area" outline, the
location of the first vertex should be repeated to "close"
-------
the outline. Nothing is punched in columns 1-10 on
these cards.
2.4 B -DATA POINTS
This package is used to specify the coordinate
locations of the points at which data is to be provided.
Data points may be located outside the study area, and
even beyond the rectangular map border. In the latter
event, however, their location will not appear. No
special sequence of location is required, but if the
locations or data to be used are already in some
established order , it will usually be convenient to use
that sequence. If a conformant map is produced from this
source map, the reference number of each data point should
be the same as that of the zonal outline in which it
appears for purposes of checking.
On the first card of this package, punch "B-DATA
POINTS" in columns 1-13, and the letter "X" in
column 23 if tabular printout of the input data is not
desired. If coordinate measurements are by row and
column, continue punching the first card with the
number "8. " in columns 31-32 and the number "10. "
in columns 41-43.
On the last card, punch the number "99999" in
columns 1-5.
On other cards, to be inserted between the first
and last, punch the coordinate locations of the data
points, each data point on a separate card. There is a
-------
limit of 1000 data points for any one map. If more data
points are needed, divide the work into two or more
parts with some overlap (or increase the dimensions
in the SYMAP program deck for the appropriate
variables--see Section 4). The sequence of the cards
in this and the corresponding E-¥ALUES package is
very important. Punch the vertical coordinate (measure-
ment down from the top border) as a decimal number
right justified in columns 11-20. Punch the
horizontal coordinate (measurement across from the
left border) as a decimal number right justified in
columns 21-30. The coordinate for a data point falling
on the top (or left) border should be "0. " (zero). Data
points beyond these two borders would be located by
means of negative numbers--preceded by a minus sign.
2.5 C-OTOLEGENDS
This, package is used to specify the relative
position and content of any special wording, numbering
or other symbolism desired on the face of the map or
within the rectangular map border. Any supplementary
information which will apply equally to all the maps
in any one series may be provided, such as: the general
title applicable to the study area, compass directions,
major landmarks, rivers and railroads. As maps may
be run at different scales, it is recommended that the
scale of the map be shown by a graphic scale, without
reference to inches or other fixed dimensional units.
The map background--the area between the
rectangular map border and the outline of the study area-
-------
may be used for legends to an extent deemed suitable
by the user. Within the study area legends may
adversely affect map legibility and comprehension,
especially if placed at data point locations.
There is no set limit on the number of legends.
The C-OTOLEGENDS package enables the user
to specify legends as strings of characters, and
symbols, to be placed on the output map in relation
to the vertical and horizontal coordinates of the source
map. The actual grid locations of these legends on
the output map will depend on the use made of electives
1, 2, 13, 14 and 15 in establishing the size and scale
of the map. Coordinate locations are determined either
by equal unit, row and column measurement. All
coordinate locations are specified by decimal numbers
right justified in the columns to which they are assigned.
On the first card of this package, punch
"C-OTOLEGENDS" in columns 1-12, and the letter
"X" in column 23 if printout of the input data is not
desired. (If coordinate measurements are by row
and column, continue punching the first card with the
number "8. " in columns 31-32 and the number "10. " in
columns 41-43. )
On the last card, punch the number "99999" in
columns 1-5.
On other cards, to be inserted between the first and
last, punch the specifications for the legends desired, as
shown in the accompanying Table 2 -1. The card s
-------
TABLE 2-1
SPECIFICATIONS FOR OTOLEGENDS
(i)
POINT LEGEND, SINGLE SYMBOL--Overprinted,
if desired--! card
(ii)
Columns 6-9
Column 10
Columns 11-20
The print and overprint characters
(any of which may be blank) for the
single symbol desired.
The letter "P".
The vertical coordinate of associated
source map point.
Columns 21-30 The horizontal coordinate of
associated source map point.
Columns 31-40 The vertical displacement desired,
namely, the number of rows up
(precede by "-"), or the number of
rows down for the symbol to be
adjusted, relative to its associated
source map point.
Columns 41-50 The horizontal displacement, namely,
the number of columns to the left
(precede by "-"), or the number of
columns to the right for the symbol to
be adjusted, relative to its associated
source map point.
POINT LEGEND, MULTIPLE CHARACTER (Vertical
or Horizontal)--No overprint--2 cards
First Card:
Column 1
Columns 4-5
Column 10
Columns 11-20
Leave blank for horizontal legend,
punch "-" (minus) for vertical legend.
The number of characters in legend
(not to exceed 50).
The letter "P".
The vertical coordinate of associated
source map point.
-------
Columns 31-40
TABLE 2-1, cont'd.
Columns 21-30 The horizontal coordinate of associated
source map point.
The vertical displacement, namely,
the number of rows down for the
"start" of the legend, relative to
its associated source map point.
The horizontal displacement, namely,
the number of columns to the left
(precede by "-"), or the number of
columns to the right for the "start" of
the legend, relative to its associated
source map point.
Columns 41-50
Second Card:
Columns 1-50
Punch-the desired legend starting in
Column 1 and ending in the column
whose number is punched in Columns
4-5 of the first card.
(iii) LINE LEGEND, SINGLE SYMBOL--Repeated--2 or
more cards
First Card:
Columns 6-9
Column 10
The print and overprint characters
(any of which may be blank) for the
symbol desired.
The letter "L".
Columns 11-20 The vertical coordinate of first
point on line.
Columns 21-30 The horizontal coordinate of first
point on line.
Other Cards:
The coordinate locations of the succeeding vertices
on the line, one location to a card, in columns 11-20
and 21-30 as for the first point. Columns 1-10 are
left blank on these cards.
-------
TABLE 2-1, cont'd.
(iv) AREA LEGEND, SINGLE SYMBOL--Filled outline--
2 or more cards
First Card:
Columns 6-9
Column 10
Columns 11-20
The print and overprint characters
(any of which may be blank).
II A "
The letter "A
The vertical coordinate of the first
vertex (the uppermost point on the
outline, and if more than one, the
left most of these).
Columns 21-30 The horizontal coordinate of the first
vertex.
Other Cards:
The coordinate locations of succeeding vertices
on the outline, one location to a card, in columns 11-20
and 21-30 as for the first vertex.-* On the last card
repeat the coordinate location of the first vertex to
"close" the outline. Columns 1-10 are left blank on
these cards.
-------
required for each legend must, of course, be in correct
sequence, but the OTOLEGENDS maybe specified in
any order regardless of type or location on the map.
2. 5.1 Characters and Symbols
A character is any one of the following key punch
designations: 0123456789ABCDEFGHUKLMNOPQRSTUV
WXYZ+. )-$*/,( = ' and the blank. Additional characters
are available on some newer computer machinery.
A symbol is composed of four characters, printed
one on top of the other in the same location, any or
all of which may be blank. This process is called over-
printing. Examples of such symbols are "0", "BJ", nff'.
The last symbol is composed of the characters "O",
"X", "A", "V", and usually appears as solid black on
most printers.
A string is an ordered set of one or more
characters; e.g. , "NEW YORK" or "*/*/*/».
2. 5. 2 Types of Legends
There are three major types of legends which can
be specified in the C-OTOLEGENDS package. Each type is
associated with a distinct type of figure on the source
map, as follows:
2. 5. 2. 1 Point Legend
This type of legend is associated with a given point
on the source map. and can be either (i) a horizontal row
-------
of characters, (ii) a vertical row of characters--a row of
characters may not include overprints--(iii) or a single
symbol—composed of four characters overprinted, any or
all of which may be blank.
Horizontal and vertical OTOLEGENDS require two
cards for each legend. On the first card, column 1 is
left blank if the character string is to proceed horizontally
across, or contains a minus sign ("-") if the character
string is to proceed vertically down the map. Columns 2
and 3 are blank, and the number of characters in the
string is punched as an integer right justified in
columns 4-5. This number may not exceed 50.
Columns 6-9 are blank, and the letter "P" is punched
in column 10 to indicate that the associated figure is
a point. The location of the point legend on the source map
is specified by punching the vertical coordinate in
columns 11-20, and the horizontal coordinate in
columns 21-30.
If the first character of the string is not to appear
at the row and column location of the associated source
map point, punch as a decimal number right justified
in columns 31-40 the number of rows to be added or
subtracted and/or punch the number of columns to be
added or subtracted in columns 41-50, as shown in
Example 2-rl which follows.
On the second card the character string desired
is punched, beginning in column 1. It may not extend
beyond column 50 and should end in the column whose
number appears in columns 4 and 5 of the preceding
card.
-------
EXAMPLE 2-1
POINT LEGEND
Assume that we wish to indicate the location of Akron,
Ohio on a map with the character string "AKRON", and
that the vertical and horizontal coordinates of Akron
on the source map are 7. 43 and 2. 31. If we leave card
columns 31-50 blank, the letter "A" of "AKRON" will be
printed (on the output map) at the associated location of
the point with coordinates 7. 43 and 2. 31. K we wish to
center the name "AKRON" so that the "R" would fall on the
precis^ location of the city, the legend would be moved two
columns to the left by specifying "-2. 0" in columns 47-50.
The two cards for the latter legend would be punched:
columns 1-5 10 11-20 21-40 31-40 41-50
Card 1: 5 P,, 7.43 2.31 -2.0
Card 2: AKRON
If, in addition, we wished the name "AKRON" to be
centered and to appear on the line below the actual
location of the city, "1. 0" would be punched in
columns 38-40 as the number of rows to be added. (We
might wish to do this if a data point symbol is to appear
on the actual location. ) The two cards for this legend
would be punched:
Card 1: 5 P 7.43 2.31 1.0 -2.0
Card 2: AKRON
-------
A single symbol legend requires only one card
and is specified as follows: Leave the first five
columns blank; punch the print and overprint characters
for the desired symbol in columns 6-9 (any of which
may be left blank), punch the letter "P" for POINT in
column 10; and punch the vertical coordinate of the
point in columns 11-20, and the horizontal coordinate
in columns 21-30.
If the user does not wish to have the symbol appear
exactly on top of the associated point, but rather a
number of rows or columns away from this point, he may
specify this in columns 31-40 and 41-50 as indicated
above.
2. 5. 2. 2 Line Legend
Line legends resemble single symbol point legends-
the symbol appears everywhere along the specified
line rather than at a single point. Line legends require
two or more cards and are specified as follows:
Columns 1-5 are left blank; punch the print and
overprint characters for the desired symbol in
columns 6-9 and the letter "L" for LINE in column 10;
then punch the vertical coordinate of the first point
on the line in columns 11-20 and the horizontal
coordinate in columns 21-30. Nothing is punched in
columns 31-50 since there is no capability for row
or column displacement with LINE and AREA legends.
Additional vertices on the line (points at which the
line changes direction) are punched--one location to
-------
a card—on succeeding cards in columns 11-20 and 21-30 as
for the first point. Columns 1-10 are left blank on these
cards, as shown in Example 2-2.
2. 5. 2. 3 Area Legend
An area legend causes the entire area within an
outline--similar to the A-OUTLINES package--to be filled
with the specified symbol. Area legends require three
or more cards and are specified as follows: Columns 1-5
are left blank; punch the print and overprint characters
for the desired symbol in columns 6-9 and the letter "A"
for AREA in column 10. Then punch the vertical coordinate
of the first vertex on the outline of the area in columns
11-20 and the horizontal coordinate in columns 21-30.
Additional vertices are punched on succeeding
cards in columns 11-20 and 21-30 as for the first vertex,
with one coordinate location per card. Repeat the
coordinate location of the first vertex to "close" the
outline, as shown in Example 2-3.
2.6 D-BARRIERS
This package is used to specify any desired
barrier to interpolation between data points. A barrier
may be used to modify the computer's distance-
oriented interpolation in order to reflect the probable
effect of an obstacle, such as a body of water, a
boundary or government control, or an expressway.
For example, on a population density map of the
Boston-Cambridge area, the value computed at a point
-------
EXAMPLE 2-2
LINE LEGEND
To indicate a railroad running from Buffalo to Albany
and then to New York City, we might use a line legend
filled with the symbol "R"". Three cards would be
punched as follows:
Columns
Card 1:
Card 2:
Card 3:
6-9
R/
10 11-20
L 2.31
2.35
5.81
21-30
4. 08
7. 92
8.01
The location of Buffalo is on the first card, Albany on
the second and New York City on the third. Note that
the "R" and "/" would not be printed side by side, but
on top of one another.
EXAMPLE 2-3
AREA LEGEND
Using a modification of Example 2-2, for illustration:
Card 1: R/ A 2. 31 4. 08
Card 2: 2. 35 7. 92
Card 3: 5. 81 8. 01
Card 4: 2. 31 4. 08
would cause the entire triangle formed by Buffalo, Albany,
and New York City to be filled in with the symbol "&"-
-------
near the Charles River would normally depend on--and
reflect--the data from surrounding tracts on both sides
of the river. But the river probably forms a physical,
psychological, and political barrier to the distribution
of population, the effect of which the user may want
included. He therefore imposes a restriction upon the
interpolation across the river through the use of a
barrier--which may be either permeable or impermeable.
Impermeable barriers allow no interpolation to occur across
the barrier; permeable barriers restrict interpolation
across the barrier but do not stop it.
Because barriers increase the cost and complexity
of maps, they should be provided only where their
omission would result in obviously invalid interpolation.
Barriers are not used for conformant or Proximal maps
since no interpolation takes plac,e.
On the first card of this package, punch
"D-BARRIERS" in columns 1-10, and the letter "X"
in column 23 if tabular printout of the input data is not
desired. (If coordinate measurements are by row and
column, continue punching the first card with the number
"8. " in columns 31-32, and the number "10. " in
columns 41-43. )
On the last card punch the number "99999" in
columns 1-5.
On other cards, to be inserted between the first and
last, punch the coordinate locations of the barrier
vertices--points at which the barrier may begin, change
direction, and end --followed by the strength desired.
-------
If a barrier has one end within the map and the other
at the border, make the first vertex the interior end and
work toward the border. For other types of barriers, begin
with the uppermost terminal vertex. If both terminal
vertices are equally high, start with the one furthest
to the left. Punch vertices in the order in which they occur
along the barrier, one vertex per card; proceed clockwise
if the barrier is closed. Always repeat the last vertex
of a barrier. This repetition tells the computer that the
barrier is complete. Position barriers so that they
would intercept all imaginary lines connecting character
locations and data points between which interpolation is to
be impeded by the barrier.
Punch the vertical coordinate of the vertex as a
decimal number right justified in columns 11-20, and the
horizontal coordinate as a decimal number right justified
in columns 21-30. Punch the strength as a decimal
number right justified in columns 31-40. Permeable
barriers may assume different strengths at succeeding
vertices, but they cannot become impermeable. If the
barrier is impermeable--no interpolation whatever is
to occur across it—punch a strength of "-1. " in columns
38-40.
Two or more barriers may be employed--entered in
any desired sequence. Each barrier acts independently,
and they may cross each other at vertices or elsewhere,
or coincide for any portion of their length. There is no
limitation on the possible number of barriers, provided
that the total number of vertices does not exceed 50--
excluding repetitions of terminal vertices.
-------
2.7 E-VALUES
This package is used to specify the values or
quantitative information applicable to each data point
(for a contour or proximal map) or to each data zone
(for a conformant map).
On the first card of this package, punch
"E-VALUES" in columns 1-8; and the letter "X" in
column 23 if tabular printout is not desired. For
SYMAP Version 6, to have the reference names which
can be punched on the E -VALUES card printed next
to the listing of data point map locations and values, punch
an "X" in column 72 of the E-VALUES package header
card.
On the last card, punch the number "99999" in
columns 1-5.
On other cards, to be inserted between the first
and last, punch the values to be applied at the data
points given in the B -DATA POINTS package or to the zonal
outlines specified in the A-CONFORMOLINES package.
Each value is punched on a separate card and a
card must be provided corresponding to every data
point or to every data zone. Be sure that cards are
kept in proper sequence. Punch each value as a decimal
number right justified in columns 11-20. If a value is
negative, punch a minus sign before it.
If the same E -VALUES package is to be used for
both a contour and a conformant map, the reference
order established for points, zones and their associated
-------
values must be entirely consistent, and only one data
point from each zone may be included in the B -DATA
POINTS package. Otherwise (when and if both types of
maps are desired), separate E-VALUES packages must
be prepared; one to be associated with the
A-CONFORMOLINES package (for the conformant map),
the other to be associated with the B-DATA POINTS
package (for the contour map).
2. 8 El-VALUES INDEX
The El-VALUES INDEX package is used to change
the reference order of data values in the E-VALUES
package. Normally, the conformant outlines as
specified in the A-CONFORMOLINES package and the
data points as specified in the B -DATA POINTS package
are assigned data values from the E-VALUES package in
the order in which they are listed. The El-VALUES INDEX
package is used in rare cases and only to avoid some
considerable difficulty in reordering a non-standard
B-DATA POINTS, A-CONFORMOLINES or E-VALUES
package.
The A-CONFORMOLINES package provides for
specification, by punching or by coded implication, of the
reference order number of the data value with which
each outline is to be associated. This data value reference
number may be altered by using the El-VALUES INDEX
package. The B-DATA POINTS package contains no
provision for indicating reference order other than
the sequence in which the locations of data points are
specified. If the data values are not listed in precisely
the same order as the data points with which they are
-------
to be associated, the Deference order of the data values
must be altered. This may be done by using the El-VALUES
INDEX package.
On the first card of this package, punch El-VALUES
INDEX" in columns 1-15.
On the last card, punch the number "99999" in columns
1-5.
On the other cards, to be inserted between the first and
last, punch the current reference order number of the data value
as an integer right justified in columns 1-5; then punch the
replacement reference order number for that value as an integer
right justified in columns 6-10. If columns 6-10 are left blank,
the number following that assigned to the previous card is
assumed.
To have the reference order number one (referring to
the first value) replaced by the reference order number two
(referring to the second value), only one card is needed (in
addition to the first and last). Punch the number "1" in column
5 and the number "2" in column 10. In this way the first card
in the E-VALUES package will now be associated with the second
data point in the B-DATA points package.
To have reference to the fifth value replaced by
reference to the fourth value, provide four cards with the
reference numbers "1" through "4" successively punched in
column 5, followed by one card with the number "5" punched
in column 5 and the number "4" punched in column 10. If
another card with the number "6" punched in column 5 (and
columns 6-10 left blank) were to follow, reference to the sixth value
-------
would be replaced by reference to the fifth value,
since the preceding card had specified reference to the
fourth value.
If a card is included on which columns 1-5 are
left blank, this referenced value--the reference number
of the previous value plus one--will be treated as
missing data for the map.
2.9 F-MAP
This package instructs the computer to make a
map—based on the information supplied in the prior
packages--and is used to specify the precise form of that
map in terms of certain available optional treatments
known as electives.
On the first card of this package, punch "F-MAP"
in columns 1-5; and the letter "X" in column 23 if printout
of the input data is not desired.
On the last card, punch the number "99999" in
columns 1-5.
On the second, third, and fourth cards, punch the
title you wish to have appear below the map in columns 1-72.
Be sure your title is clearly descriptive to
differentiate the particular map being requested from
all other maps, of a similar nature, which have been
run previously or which may be run in the future. One
or more of these three cards may be left blank if
desired, but all three cards must be provided.
-------
On other cards, to be inserted between the fourth
and last cards, punch any "electives" that may be
desired, as described in Section 3. Whenever a map
elective is not specifically called for, the standard
result described under each elective will automatically
occur.
-------
3. MAP PACKAGE ELECTIVES
The content, scale, tone, and numerous other
features of the output map are specified by the user
through the electives of the F-MAP package. All
electives have a standard default and consequently a map
can be produced without specifying any of the electives.
Electives 1 and 2 control the size and scale and are
used with almost all maps; electives 3 through 7
determine the value range, contour intervals, and
symbolism, and are frequently used. Elective 8
suppresses the white contour lines and elective 10
provides for descriptive text below the map. All other
electives are used less frequently and are more specialized.
3.1 ELECTIVE NUMBER 1
SIZE OF OUTPUT MAP (1 card)
To specify the s ize of the output map, punch the
identifying elective number "1" in column 5. Punch
the vertical dimension of the rectangular map border
(the distance from the middle of the top border to the
middle of the bottom border) in inches as a decimal
number right justified in columns 11-20. Then punch
the horizontal dimension of the rectangular map
border (the distance from the middle of the left border
to the middle of the right border) in inches as a
decimal number right justified in columns 21-30, as
shown in Example 3-1. Dimensions should be carried
to at least one decimal place either whole or fractional.
Whatever vertical dimension is specified will be rounded
to the nearest one-eighth inch; whatever horizontal
dimension is specified will be rounded to the nearest one-
tenth inch.
-------
EXAMPLE 3-1
0,0
5,0
SOURCE
MAP
0,10
5,10
Elective l--size of map--for source map shown and
output map of same size, would be:
Column: 1-5
6-10
11-20
21-30
5.
10.
NOTES:
This elective specifies in inches the dimensions of the
map which will be produced--map content plus rectangular
border. The vertical dimension includes 1 character location
(.125 inches) for the top & bottom borders combined. Therefore,
the map content will be . 125 inches less than the dimension
specified. Likewise, the horizontal dimension includes 1 character
location( .1) for both left and right borders combined and the
SYMAP content will be . 1 inches less than the dimension
specified. For example, the horizontal dimension of 10.0 inches
specified will result in a map content of 9.9 inches, or 99
-------
columns, and a map border of U. 1 inches (1 column); the vertical
dimension of 5. 0 inches will result in a map content of 4. 875
inches, or 39 rows, and a map border of 0. 125 inches (1 row).
It is important to note that the dimensions of the border
specified must conform to the dimensions of the rectangular border
originally drawn on the source map and used to measure the
x and y coordinates for the various packages; otherwise a scale
change will occur between the source map and the output map.
(The SYMAP program calculates the map scale by dividing the
number of inches specified in Elective 1 by the number of source
map units specified in Elective 2 -- The difference between
extreme minimum and extreme maximum points; if either or
both electives are omitted, the calculation is based on the
standard for each elective).
Generally, the portion of the source map that is to form
the content of the output map must be determined and specified
in Elective 2 before the size of the output map can be specified
in Elective 1. The measurements of the minimum and maximum
extreme points that define this content--(0, 0) and (5,10) in this
case--should be in the same units as used for all coordinate
locations, unless row and column measurements are being used:
then, Elective 2 must be specified in inches. Elective 1 is
always specified in inch.es of output map.
To specify changes in the border size without affecting
the scale of the map, use Elective 14 - Margin; to specify a
change in map scale without re-calculating Elective 1, use
Elective 13 - Scale.
Example 3-1
Cont'd
-------
If a horizontal dimension greater than 13 inches is
specified, the map will be printed in two or more
sections or panels, for mounting side by side. There
is no set limit as to the border dimensions which may be
specified. However, to safeguard the user who makes
a gross dimensional error, the program prevents any
dimension of the map from exceeding 72. 0 inches,
unless elective 16 is specified to remove this safeguard.
If elective number 16 is not specified, and if one or
both dimensions exceeds 72. 0 inches, the larger
dimension will be reduced to 13. 0 inches and the other
dimension will be reduced proportionately.
It is possible to leave out either the vertical or
the horizontal dimension. Whichever dimension is
omitted will be calculated by means of the other
electives--either specified or standard.
If elective number 1 is not included, the program
will calculate the relative vertical and horizontal
dimensions on the basis of extreme point locations and
assign 13. 0 inches to the larger dimension.
Standard is 13. 0 inches for the larger dimens ion
of the map, with the smaller dimension proportioned
accordingly.
3.2 ELECTIVE NUMBER 2
EXTREME POINTS OF INPUT MAP (1 card)
This elective is used to specify the coordinate
location of the two extreme points on the source map
which determine the content of the map to be produced.
-------
The content may include all or any portion of the area
shown on the source map.
If the two extreme points are not specified, the
program will establish them by selecting the
minimum and maximum coordinates from a preceding
package--from the A-CONFORMOLINES package for
a conformant map; from the A-OUT LINE package or,
if omitted, from the B-DATA POINTS package for a
contour or proximal map; or, if all these are omitted, from
the C-OTOLEGENDS package.
To establish the two extreme points to be specified,
first designate the area to be mapped by a rectangle
drawn on the source map. The coordinate locations of the
upper left corner and the lower right corner of this
rectangle are, respectively, the minimum and maximum
extreme points which will determine the content of the
map to be produced. Measure these coordinate
locations from the top and left borders originally
established on the source map and specify them in the
scale used for all coordinate locations. Note that
if row and column measurements have been used, the
coordinate locations for this elective must be specified
in inches. Negative coordinates may be specified in order
to include any portion outside the study area. Enter
each coordinate as a decimal number right justified in the
columns assigned.
On one card punch the identifying elective number "2"
in column 5; the minimum vertical coordinate in
columns 11-20; the minimum horizontal coordinate in
-------
columns 21-30; the maximum vertical coordinate in
columns 31-40; the maximum horizontal coordinate in
columns 41-50, as shown in Example 3-2.
Standard is to have the program select the extreme
points which determine the content of the map. Use
of this elective is recommended together with elective
number 1 (size), and also with elective number 13 (scale)
and elective number 14 (shift) if either or both of
these electives are used.
3.3 ELECTIVE NUMBER 3
NUMBER OF LEVELS (1 card)
To specify the number of levels or class intervals
into which the total value range is to be divided for
designation by symbolism, punch the identifying elective
num.ber "3" in column 5, followed by the number of
levels desired--from 2 through 10 --punched as a decimal
number right justified in columns 11-20, as shown in
Example 3-3.
Standard is five levels.
3.4 ELECTIVE NUMBER 4
VALUE RANGE MINIMUM (1 card)
To specify a value to be used as the minimum value
of the total value range, punch the identifying elective
number "4" in column 5, followed by the minimum value
desired punched as a decimal number right justified in
columns 11-20. If values below this minimum are
provided in the E-VALUES package, an area of symbolism
-------
EXAMPLE 3-2
Elective 2--extreme points of input map—for the same
source map shown in Example 3-1 would be:
Column 1-5 6-10 11-20 21-30 31-40 41-50
2 0. 0. 5. 10.
EXAMPLE 3-3
Using 3 levels with values ranging from a minimum of 0 to
a maximum of 30, the first level is to contain values
from 0 to 10, the second level, values from 10 to 20, and
the third level, values from 20 to 30.
Electives 3 through 6 for this example would be:
Column 1-5 6-10 11-20
0.
30.
Elective 6 would not be needed since the standard
is to have each interval assigned an equal range.
-------
consisting of the letter "L" (for LOW) will appear on
the map.
Standard is to use the minimum value of the
data.
3.5 ELECTIVE NUMBER 5
VALUE RANGE MAXIMUM (1 card)
To specify a value to be used as the maximum
value of the total value range, punch the identifying
elective number "5" in column 5, followed by the maximum
value desired punched as a decimal number right
justified in columns 11-20. If values above this maximum
are provided in the E-VALUES package, an area of
symbolism consisting of the letter "H" (for HIGH) will
appear on the map.
Standard is to use the maximum value of the
data.
3. 6 ELECTIVE NUMBER 6
VALUE RANGE INTERVALS (1 or 2 cards)
This elective permits you to specify the range for
each level or interval into which the total value range
of the data (or the total range as modified under electives
4 and 5) is to be divided.
Standard is to have each level or interval assigned
an equal range.
To specify the range for each level so that the data
points will be distributed equally among levels (i. e. , in so
-------
far as possible, to have the same number of data points
appear in each level), punch the identifying elective
number "6" in column 5. It is not advisable to use this
option if greater than 20% of the data points all have
the same value.
To specify any desired range for each level, punch
the identifying elective number "6" in column 5, followed
by numbers proportionate to the size of the desired ranges.
These should be punched as decimal numbers right
justified in columns 11-20 for the first level, 21-30 for
the second level, 31-40 for the third level, etc. , as shown
in Examples 3-4 and 3-5. Only if there are more than
6 levels, continue on a second card, punching the number
for the seventh level in columns 11-20, for the eighth
level in columns 21-30, etc. --for a maximum of ten levels.
Column 5 is left blank on the second card, as shown in
Example 3-6.
3. 7 ELECTIVE NUMBER 7
SYMBOLISM (5 cards)
This elective permits one to specify symbolism other
than standard. If this elective is used, all 5 cards must
be included.
On the first card punch the identifying elective
number "7" in column 5.
On the second card punch in the appropriate columns
the basic characters desired.
-------
EXAMPLE 3-4
If the data, as provided in the E-VALUES package,
is to be divided into five levels (which is standard) from
a low value of 100 to a high value of 500 as follows:
level value range
1 100-200
2 200-300
3 300-350
4 350-400
5 400-500
either the actual value range for each level or the pro-
portion or ratio of the total range which should be
assigned to each level may be specified in elective
number 6:
Column 1-5 11-20 21-30 31-40 41-50 51-60
actual 6 100. 100. 50. 50. 100.
porportion (%) 6 25.0 25.0 12.5 12.5 25.0
ratio (x/8) 6 2. .2. 1. 1. 2.
EXAMPLE 3-5
H the data, as provided in the E-VALUES
package, is to be divided into four groups--the
lowest 10%, the next 25%, the next 35%, and the
remainder--the one card for elective number 6
would be punched as follows:
Column 1-5 11-20 21-30 31-40 41-50
6 10. 25. 35. 30.
-------
EXAMPLE 3-6
To specify these value range intervals --
150. ZOO. 271.5 500. 750.
--punch the two cards for elective number 6 as follows:
Column 1-5 11-20 21-30 31-40 41-50 51-60 61-70
Card 1 6 150. 50. 71.5 228.5 250. 139.
Card 2 111.
A value on the border between two levels will always be
assigned to the higher level. For instance, the value 150. 0
would be in the second level; the highest value in the first
level would be 149. 99, assuming a rounding to two
decimal places. The exception to this rule occurs
in the highest level where the maximum value --
here, 1000. 0- -would be assigned to that level since
no higher level exists. Electives 3, 4, and 5 would
also be needed for this example:
Column 1-5 11-20
1000.
-------
On the third, fourth and fifth cards punch in the
appropriate columns any overprint characters desired.
(If no overprinting is desired, these three cards will
be blank.)
In punching the second, third, fourth, and fifth
cards* columns 1-10 are used to specify the general
symbolism for each level (column 1 for the symbol to
designate the first level, column 2 for the symbol
to designate the second level, etc. --for as many levels
as are to be used). Columns 11-20 are used to
i
specify the respective data point symbols (column 11 for
the symbol to designate data points in the first level,
column 12 for the symbol to designate data points in the
second level, etc.).
Standard general symbolism varies according to
the number of levels specified in elective number 3.
Table 3-1 shows the number of levels to be mapped, the
general symbolism which will appear at each of those
levels, and the corresponding data point symbols.
Additional distinctive symbolism may be specified
in columns 21-29. The standard symbolism which
will occur includes:
Column 21 low, general symbolism--
"L", and three blanks
22 low, data point symbol--
"L", ".", and two blanks
23 high, general symbolism--
"H", and three blanks
24 high, data point symbol --
"H", "H", "H", and "/"
25 background symbolism (beyond
the study area outline)--all
blanks (or white)
-------
TABLE 3-1
STANDARD SYMBOLISM FOR VARIOUS LEVELS
coluinn:
number of
levels desired:
1
2
3
4
5
6
7
8
9
10
general
1234
. JB
. O
. +
. +
+
i
i
i
'.i
*
K
O
O
X
+
+
=
-
m
o
0
X
X
+
=
symbolism
567891
0
m
St.
0
o
X
+
fi
8
0
O
X
98
8 S3
Q 63 SS
O 0 8 SB
data point
1 1 1 1 1 1
1 23456
1
1 2
1 2 3
1234
1234
1234
1234
1234
1234
1234
5
5
5
5
5
5
6
6
6
6
6
symbolism
1112
7890
7
7
7
7
8
8 9
8 9
*
-------
26 contour line or conformant
boundary symbolism--all blanks
(or white)
27 no data (used only for problems
arising from the specification of
barriers) --"N", and three blanks
28 superimposed data points --"S", and
three blanks
29 data points with invalid values,
so-called "missing data"--"M", and
three blanks
Table 3-2 shows, as an example, the characters
that would be punched on the second, third, fourth, and
fifth cards as standard for ten levels and for distinctive
symbolism. Examples 3-7, 3-8, and 3-9 depict three
illustrations of non-standard symbolism for widely different
needs.
3.8 ELECTIVE NUMBER 8
SUPPRESSION OF CONTOUR LINES (1 card)
To suppress white contour, conformant* , or similar
lines between adjacent levels of symbolism, punch the
identifying elective number "8" in column 5.
Standard is to show such lines, insofar as space
between data points may be adequate to show them without
loss of descriptive symbolism.
3. 9 ELECTIVE NUMBER 9
SUPPRESSION OF HISTOGRAM BARS (1 card)
To suppress the histogram bars which show
graphically the frequency distribution of data point values
in each level, punch the identifying elective number "9"
in column 5. Standard is to have histogram bars.
-------
TABLE 3-2
SYMBOLISM FOR LEVELS
AND SPECIAL PURPOSES
Column
Description
Standard Symbolism
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
General symbolism .for level:
Respective data point
symbols for level:
Low --general symbolism
Low --data point symbolism
High- -general symbolism
High—data point symbolism
Background symbolism
Symbolism for contour lines
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
No data (used only with barriers)
Superimposed data points
Data points with invalid values
Card no: 2 345
.
i
-
=
+
X
O
O -
O X
O X A V
1
2
3
4
5
6
7
8
9
*
L
L .
H
H H H /
N
S
M
-------
EXAMPLE 3-7
The following illustration shows the correct punching
of the 5 cards required for elective number 7, if 6 levels are
specified in elective number 3, the reverse order of standard
symbolism is desired, and you wish the general symbolism to
appear at the data point locations.
11111111112222222
Column 123456789012345678901 23456
card 1 7
card 2 OOOX+ OOOX+.
card 3 XX - XX -
card 4 A A
card 5V V
EXAMPLE 3-8
The following illustration shows the correct punching of
the 5 cards required for elective number 7, if you wish to:
suppress all general symbolism, have the contour lines black,
and have a background of dashes--while keeping everything else
standard.
11111111112222222
Column 1 2345678901 2345678901 23456
card 1 7
card 2 12345
card 3
card 4
card 5
-O
X
A
V
-------
EXAMPLE 3-9
The following illustration shows the correct punching
of the 5 cards required for elective number 7, if you are
running a proximal type map and wish to use the symbols A,
B, C, D and E for the data classes.
11111111112222222
Column 1 2345678901 2345678901 23456
card 1 7
card 2 ABCDE ABODE
card 3 I I I I I
card 4
card 5
-------
3.10 ELECTIVE NUMBER 10
TEXT (3 to 32 cards)
This elective permits you to display below the
map supplementary information, in addition to
the legends and the map title.
On the first card punch the identifying elective
number "10" in columns 4-5.
On the last card punch the number "9999" in
columns 1-4. These four nines show the end of the text
and should not be confused with the five nines required
to end packages.
On not more than 30 other cards--to be inserted
between the first and last—punch in columns 1-72 any
supplementary information likely to be helpful for
future reference, such as the source and date of data, or
the name of the person running the map.
Standard is to have no text, but this will seldom
be desirable.
3.11 ELECTIVE NUMBER 11
PRINTING ACTUAL VALUE AT EACH DATA POINT
(1 card)
To have each data value appear at its data point
location, punch the identifying elective number "11" in
columns 4 and 5. The numeric values will appear with
two decimal places, the decimal points being
located at the data points specified in the B-DATA POINTS
-------
package. Up to ten digits may appear to the left of the
decimal point. Standard is to have the data point
symbol appear.
3.12 ELECTIVE NUMBER 12
MULTIPLE ELECTIVE REPEAT (1 card)
This elective is available for the convenience of the
user in preparing the input for more than one map
to be produced by the computer in a single run, as
discussed in Section 4.
Elective number 12 may be used to specify that in
a second or subsequent map of a single submission,
all non-standard electives used in the preceding map are
to be repeated. Non-standard electives may be added,
or modified and reinserted, in sequence, but this
elective may not be used if any non-standard electives
are to be deleted, as shown in Example 3-10.
To repeat all non-standard electives used in the
preceding map, punch the identifying elective number
"12" in columns 4-5.
Standard is to provide the required cards for all
non-standard electives to be used in each map.
3.13 ELECTIVE NUMBER 13
SCALE (1 card)
To specify the scale of the output map, punch the
identifying elective number "13" in columns 4-5,
followed by the scale, i.e. , the number of inches, or
-------
EXAMPLE 3-10
The following illustration shows the correct
punching of the cards needed to run two maps from the
same set of data. In the first map, an equal number
of data points in each level is specified using elective 6.
In the second map, the number of levels is changed,
an equal range is assigned to each level (the standard
for elective 6), and the contour lines are suppressed
using elective 8.
P-MAP
TEST MAPS
EXAMPLE 3-10
MAP ONE
1 10. 10.
2 0. 0. 10. 10.
3 6.
4 0.
5 100.
6
99999
P-MAP
TEST MAPS
EXAMPLE 3-10
MAP TWO
3 4.
6 25. 25. 25. 25
8
12
99999
Note that by using elective 12 to repeat non-standard
electives", reversion to standard can only be accomplished
by re specification, as in elective 6, and not by omission.
Omission results in the use of the same non-standard
specification as the first map--electives 1, 2, 4, and 5.
Electives maybe modified--elective 3--and added--
elective 8.
-------
fraction thereof, desired to represent one source-map
measurement unit, punched as a decimal number
right justified in columns 11-20.
If the scale of the map is specified as "1. 0", each
inch on the output map will represent one source-map
measurement unit. If the source-map measurement unit
is in inches, these two maps will be at the same scale.
To increase the scale of the output map, increase
the specified number; to decrease the scale of the
output map, decrease the specified number--0. 5 in
columns 11-20 will produce an output map one half
the size of the source map, assuming the source map
was measured in inches. Often this elective can be
used in conjunction with elective 2 (extreme points) and
in place of elective 1.
If not specified, the scale will be calculated from
the size of map and from extreme points--as specified
in electives 1 and 2, or from the standards of these
electives. If this cannot be done, a scale of "1. 0" will
be assigned.
Standard is to have the scale established
automatically from other electives.
3.14 ELECTIVE NUMBER 14
MARGIN (1 card)
This elective is used to obtain a margin between
the extreme points of the study area and the corresponding
output map borders. It may also be used to narrow the
content of the output map.
-------
The program normally positions the content of the
map--as determined by the extreme points of the
study area--so as to fit precisely within the map border.
Specifying a positive shift causes the program to
assume a border closer to the center of the map by the
amount specified. A margin results from the
discrepancy between the real border used and this assumed
border. Inversely, a negative specification assumes
that the border should be further from the center than the
real border, and the content of the map will be
truncated along the real border by the amount specified.
The scale of the study area is subject to change
depending on the border shifts specified. If the scale is
specified in elective number 13, this will override any
change in scale which might have resulted from a
border shift.
On one card, punch the identifying elective number
"14" in columns 4-5; punch the desired shift for each
border, specified in inches, as a decimal number right
justified in the columns assigned as follows:
Top border, columns 11-20
Left border, columns 21-30
Bottom border, columns 31-40
Right border, columns 41-50.
To obtain a half-inch margin between the study
area (as determined by the extreme points) and all four
map borders, specify "0. 5" in each column field.
Symbolism will be printed in this margin according to
the specification in column 26 of elective 7, with white,
-------
or blank, being the standard. To have no shift occur,
specify "0. 0". To narrow the content of the map, by
truncating the study area one half-inch along any border,
specify a shift of "-0. 5" in the appropriate column field.
Standard is to have extreme points of the study area
"touch" their corresponding map borders.
3.15 ELECTIVE NUMBER 15
NUMBER OF OUTPUT CHARACTERS PER INCH (1 card)
To specify the number of characters per inch--vertically
and horizontally--at which the map will be printed, punch
the identifying elective number "15" in columns 4-5; punch
the number of lines per inch (vertically) as a decimal
number right justified in columns 11-20; and the number of
columns per inch (horizontally) as a decimal number
right justified in columns 21-30.
This elective is primarily for persons who may
need to use a printer other than one which prints at 8. 0
lines per inch. Output prepared for printing at 8. 0 lines
per inch will appear somewhat overextended when printed
at 6. 0 lines per inch. By specifying 6. 0 lines per inch,
fewer lines of output will result, but the overall size of
the map will be the same. The column field provided for
changing the number of columns per inch need not be,
and rarely would be, used, since almost all computer
printers print at 10. 0 columns per inch.
Normally, printing is at 6. 0 lines per inch on standard
chain-line printers, but paper "carriage tapes" can
-------
generally be prepared to permit printing at 8. 0 lines
per inch and avoid the necessity of using this elective.
Standard is eight lines per inch and ten columns
per inch.
3.16 ELECTIVE NUMBER 16
LARGE SIZE MAPS (1 card)
To obtain a map whose vertical or horizontal
dimension exceeds 72. 0 inches, punch the identifying
elective number "16" in columns 4-5.
This elective is used to nullify a built-in safeguard
which prevents the printing of a map larger than 72. 0
inches in either dimension. The safeguard provides a
measure of protection for the user who may have made
a potentially very costly error in specifying the size of
the map. Elective number 16 should be used with
caution, and with exceeding caution if the user is making
a lengthy run.
K this elective is not specified, and if one or both
dimensions exceeds 72. 0 inches, the larger dimension
will be reduced to 13. 0 inches and the other dimension
(and the scale of the map) will be reduced proportionately.
Standard is a map not exceeding 72. 0 inches in
either dimension; or, a map reduced to 13. 0 inches if a
dimension exceeding 72. 0 inches was erroneously
specified in elective number 1.
-------
3.17 ELECTIVE NUMBER 17
SUPPRESSION OF TABULAR OUTPUT DATA FOR
CONFORMOLINES OR DATA POINTS (1 card)
To suppress the tabular printout of output data
including the location, value, and level assigned to each
conformoline or data point, punch the identifying
elective number "17" in columns 4-5.
This printout should not be confused with the tabular
printout of the input data, for each package, which may
be suppressed by punching an "X'1 in column 23 on the
first card of A-CONFORMOLJNES and B-DATA POINTS
packages.
Standard is to have a tabular printout of the output
data immediately preceding the map.
3.18 ELECTIVE NUMBER 18
INVALIDATION OF MINUS ZERO AND BLANK
VALUES (1 card)
To have minus zero (-0. 0) and blank data values
considered invalid for computation, punch the
identifying elective number "18" in columns 4-5.
At any data point whose associated value is considered
invalid, the alphabetic symbol "M" will appear in place
of the numerical symbol which would normally indicate the
value level assigned to that point. The appearance of
invalid -data point symbols may be eliminated through
the use of elective number 23.
-------
Over any conformoline zone whose associated
data value is considered invalid, the standard (blank)
background symbolism will replace the distinctive
general symbolism which would normally indicate the
value level assigned to that zone.
Invalid -data symbolism other than standard may
be specified in elective number 7. The IBM 360 does not
distinguish between 0. 0 and -0. 0 or blanks; consequently
this elective is inoperable on the IBM 360, and invalid
data cannot be specified by this method.
Standard is to have all data values considered
valid, and used for calculation, including unspecified
(blank) values which will be assigned the value of
"-0. 0".
3.19 INVALID DATA RANGE ELECTIVES
3.19-1 Elective Number 19
Minimum Value for Invalid-Data Range (1 card)
To specify a minimum value for the range of
invalid data so that data values which are equal to or
more than the specified minimum will be considered
invalid and not used for calculation, punch the identifying
elective number "19" in columns 4-5, and punch the
desired minimum as a decimal number right justified
in columns 11-20.
The standard symbolism for invalid data and
possibilities for the modification of such symbolism are
described under elective number 18.
-------
Standard is to have all data values considered
valid and used for calculation.
3.19.2 Elective Number 20
Maximum Value for Invalid -Data Range (1 card)
To specify a maximum value for the range of
invalid data so that data values which are equal to or less
than the specified maximum will be considered invalid
and not used for calculation, punch the identifying
elective number "20" in columns 4-5 and punch the
desired maximum as a decimal number right justified
in columns 11-20. The standard symbolism for invalid
data and possibilities for the modification of such
symbolism are described under elective 18.
Standard is to have all data values considered
valid and used for calculation.
3.19.3 Electives 19 and 20 in Combination (2 cards)
If the same value is specified for the minimum
invalid value and for the maximum invalid value, only
that value will be considered invalid and will not be
used for calculation when encountered.
H the specified minimum invalid value is less than
the specified maximum invalid value, data values
between and equal to the two values will not be used
for calculation. If the specified minimum invalid
value is greater than the specified maximum invalid
value, only data values between the two values will be
used for calculation.
-------
Standard is to have all data values considered
valid and used for calculation.
3.20 ELECTIVE NUMBER 21
STORE LOCATION VALUES FOR MAP ON TAPE
(1 card)
As a map is produced, the program calculates a
value for every print location used in displaying the final
map. This elective stores these values on tape for
later input to other programs. The resulting tape cannot
be used for printing additional copies of the normal
SYMAP.
When this elective is specified, the following steps
occur:
i) Tape unit 8 is rewound if it is the first map.
ii) At the beginning of the map, a 26-word binary
record is written (on tape 8) without format
control. The words contain the following
information: (a) the fixed-point number of rows
for the entire map (which is exactly equal to
the number of rows between, and exclusive of,
the top and bottom borders, plus one); (b) the
fixed-point number of columns for the entire
map (which is exactly equal to the number of
columns between, and exclusive of, the left and
right borders, plus one); (c) the floating-point
coordinate of the top border; (d) the floating-
point coordinate of the bottom border; (e) the
floating-point number of rows per coordinate
unit; (f) the floating-point number of columns
-------
per coordinate; (g) the floating-point value of
the minimum of the level range; (h) the
floating-point value of the maximum of the
level range, and 18 additional words, whose
content is irrelevant to the user.
iii) During the creation of a rectangular shaped
contour or proximal map with no OUTLINE
package (and which is not a "base map" where
all values are identical), a series of
additional binary records are written. Each
word is a floating-point value and corresponds
to the value calculated for a map location.
Each record corresponds to one row of one
strip (printout paper strip) of the map. The
records are produced in the same order as the
map is printed. Each word of the record
corresponds to the respective print location
within the map, excluding border print
locations^.
iv) At the end of the map, an end-of-file is
written on tape 8. For example, if a contour
map is run at the size of 10. 0 x 10. 0 inches,
the number of rows will be 80. (Numbering of
map rows begins with the top border as zero, and
similarly with the left border for columns.
Measurements are always taken from the center
of the top row (border)--similarly for columns.
As a result, each border may be thought of
as 1/2 unit in print character height, or width.
Thus, the 80 rows are comprised of 79 rows
of values plus th*> top att& bottotrt horde? trf ih«
-------
map which are rows 0 and 80, respectively. )
Likewise, the number of columns will be 100.
There will be 79 records of 99 values each
written on the tape in addition to the first
26-word record. These will be followed by
an end-of-file.
To store the map location values on a tape for later
use with other programs--particularly for input to the
SYMVU three-dimensional mapping program--punch the
identifying elective number "21" in columns 4-5.
The following suboptions are available in SYMAP
Version 6 (only the first one is in Version 5):
Column 11-20 blank
the standard suboption is
the writing of the interpolated
values onto a save tape for
SYMVU
Column 11-20 > 0.
interpolated values will be
printed as well as written
on tape
Column 21-30
row and column data point
coordinates will be punched
in format for SYMVU
Column 31-40
values on tape are the maximum
in each level instead of actual
values
Column 41-50 > 0.
point legends will be punched
on cards in format for SYMVU
Column 51-60
contour points will be punched
in format for SYMVU.. Format
is (3110): row, column,
symbol = 11.
-------
Standard is not to print the values or write them
on tape.
3.21 ELECTIVE NUMBER 22
CONTINUOUS CONTOURS (1 card)
This elective is provided for the user whose primary
interest is contour lines. When the space between
data points or zones is inadequate for the display of both
symbolism and contour lines, the contour lines would
otherwise be suppressed to permit the display of
descriptive symbolism. Punch the identifying number "22"
in columns 4-5 to ensure the appearance of contour lines.
Standard is to suppress contour lines when a loss
of descriptive symbolism may result from their inclusion.
3.22 ELECTIVE NUMBER 23
SUPPRESSION OF INVALID DATA POINT SYMBOL
(1 card)
To suppress the symbol--standard or as specified in
elective 7--which appears at any data point whose
associated value is considered invalid, resulting from the
use of elective 18, 19, or 20, punch the identifying
elective number "23" in columns 4-5.
Standard is to have the symbol "M" appear at any
data point having an invalid data value.
-------
3.23 ELECTIVE NUMBER 24
SUPPRESSION OF NUMERIC INTERPRETATION (1 card)
To suppress the printing of the numeric interpretation
following the map, which includes:
"ABSOLUTE VALUE RANGE APPLYING TO
EACH LEVEL"
"PERCENTAGE OF TOTAL ABSOLUTE VALUE
RANGE APPLYING TO EACH LEVEL",
punch the identifying elective number "24" in columns 4-5.
Standard is to have this numeric interpretation appear
after the map, immediately preceding the frequency
distribution chart.
3.24 ELECTIVE NUMBER 25
SUPPRESSION OF DATA POINT SYMBOLS (1 card)
To have data points, as specified in the B-DATA
POINTS package, not appear within the zonal outlines on a
conformant map, punch the identifying elective number "25"
in columns 4-5. When this elective is not used, each
specified data point will be designated by a symbol
corresponding to the value level or class assigned to
the zone in which it is located.
Standard is to have data points appear on a conformant
map.
-------
3.25 ELECTIVE NUMBER 26
OVERPRINT ALIGNMENT (1 card)
To correct the alignment of the overprint lines
to coincide with the line to be overprinted, punch
the identifying elective number "26" in columns 4-5.
With certain computers, the overprint line will
appear one line below the original print line. This
elective should be used only if this incorrect alignment
is known to occur.
Standard is the automatic coincidence of print
and overprint for the IBM 7094 Fortran Language and
the IBM 360 for SYMAP Versions 5 and 6.
3.26 ELECTIVE NUMBER 27
DISTINGUISHING MAP TYPE (1 card)
To enable the program to identify the map desired
as a contour map when data for both contour and conformant
maps are included in the same submission, punch the
identifying elective number "27" in columns 4-5.
Standard is to produce a conformant map if an
A-CONFORMOLINES package has been included in the
submission.
3. 27 ELECTIVE NUMBER 28
DOT CONFORMANT MAP (1 card)
(available in SYMAP Version 6 only)
To produce a dot map when running a conformant
map, punch the identifying elective number "28" in
-------
columns 4-5. The user may specify one of the
following suboptions:
Column 11-20 blank the standard suboption will
dot a percentage of the area
in a zone to a density
corresponding to the level
of that zone.
Column 11-20 ^0. the number of dots in a zone
will represent the value for
that zone as a percentage of
the total value range. No
map levels will be produced.
Column 21-30 ^0. each dot will have an absolute
value equal to the number
punched in these columns.
Standard is not to produce a dot map.
3. 28 EXTRAPOLATION RANGE ELECTIVES
The program has the capability of extrapolating
above the highest given value for a "hill"--or below
the lowest given value for a "valley"--if the surrounding
data indicates such a trend is reasonable. The following
three electives control this range of extrapolation.
3.28.1 Elective Number 31
Relative Fractional Extrapolation (1 card)
To specify the fractional extrapolation, punch the
identifying elective number "31" in columns 4-5,
followed by the fractional extrapolation as a positive
decimal number less than 1 punched right justified in
columns 11-20. The computer will extrapolate above
-------
or below a local extreme at most this fraction of the
total range of data values.
Standard is a fractional extrapolation of "0.1" of
the total range of data values.
3. 28. 2 Elective Number 32
Absolute Extrapolation Minimum (1 card)
To specify the absolute extrapolation minimum,
punch the identifying elective number"32" in columns 4-5,
followed by the extrapolation minimum punched as a
decimal number right justified in columns 11-20. The
computer will extrapolate down and only as far as
this value. Only where all the surrounding data points
suggest a trend to this minimum, may the minimum"
value actually be reached.
This elective is recommended if the user knows
a logical minimum for his data such as "0. 0" for
population density. If the fractional extrapolation and the
data range are such that this minimum could not be exceeded
anyway, this elective need not be used.
Standard is an extrapolation minimum equal to
the minimum value of the data.
3.28.3 Elective Number 33
Absolute Extrapolation Maximum (1 card)
To specify the absolute extrapolation maximum,
punch the identifying elective number "33" in columns 4-5,
followed by the extrapolation maximum punched as a
decimal number right justified in columns 11-20. The
-------
computer will extrapolate upward only as far as this
value. Only where all the surrounding data suggests a
trend to this maximum, may the maximum value
actually be reached.
This elective is recommended if the user knows
that his data values have a logical maximum such as
"100. 0" for most percentage data. If the fractional
extrapolation and data range are such that this maximum
could not be exceeded anyway, this elective need not be
used.
Standard is an extrapolation maximum equal to
the maximum value of the data.
3.29 SEARCH RADIUS ELECTIVES
The following two specialized electives allow the
advanced user precise control over the selection of
data points for interpolation. The search radius is the
maximum distance the computer will search for data points
to use in the interpolation process, in source map units.
3. 29.1 Elective Number 34
Initial Seazrch Radius (1 card)
To specify the initial search radius, punch the
identifying elective number "34" in columns 4-5, followed
by the initial search radius punched as a positive decimal
number in columns 11-20. This elective will normally
be used to preserve the initial search radius from a previous
map after altering the number of data points or the locations
of data points near the edge of the study area.
-------
The standard bases the initial search radius on
the number and spread of the data points, so that, on the
average, seven data points will be found on the initial
search.
3. 29. 2 Elective Number 35
Maximum Search Radius (1 card)
To specify the maximum search radius, punch the
identifying elective number "35" in columns 4-5,
followed by the maximum search radius punched as a
decimal number in columns 11-20. The computer will,
if necessary, search for data points up to this maximum
search radius. The maximum search radius may not
be less than the initial search radius.
The standard has no absolute search radius limit,
but the computer will not search beyond the effective
distance to the furthest data point.
3.30 ELECTIVE NUMBER 36
NUMBER OF DATA POINTS FOR INTERPOLATION
(1 card)
To specify the minimum and the maximum number
of data points on which interpolation is to be based,
punch the identifying elective number "36" in columns 4-5;
punch the desired minimum (0-10) as a decimal number
right justified in columns 11-20, and the desired maximum
(0-10) as a decimal number right justified in columns 21-30.
Standard is to have a minimum of four and a
maximum of ten data points used for interpolation with an
average of seven.
-------
3.31 ELECTIVE NUMBER 37
INDEPENDENCE (1 card)
To have the value at each character location
computed independently, punch the identifying elective
number "37" in columns 4-5.
This elective prevents smoothing across sharp
lines created by barriers or by special uses of
electives 35 and 36. Except for special maps, expenditure
of the additional computer time required for the inde-
pendent calculations specified by this elective is
unnecessary.
Standard is to compute the values independently
for only about one-sixth of the characters, from which
values at intermediate characters are derived.
3. 32 PROXIMAL MAP ELECTIVES (3 cards)
The combination of electives 31, 36, and 37 is used
to specify the proximal type of map. Include one card
for each of the three electives. Punch the identifying
elective numbers "31", "36", and "37" in columns 4-5 on
successive cards. No other specification is required on
these cards.
The proximal type of map is based on the "nearest
neighbor" concept: the value and symbolism for each
character location is determined by the value and symbolism
applicable to the nearest data point. "Point" information
is used for both the proximal and the contour type map--
however, the intervening levels and interpolated surface
-------
which distinguish a contour map do not appear on a
proximal map. The proximal map is especially useful
for the display of qualitative data, particularly when
the precise definition of zonal boundaries is not of
paramount importance. When precise zonal boundaries
are important, the conformant type map is recommended.
Standard--with the use of data by points--is the
contour type of map.
3.33 ELECTIVE NUMBER 38
DATA GRAPH (1 card)
(Available in SYMAP Version 6 only)
To produce a scaled frequency distribution which
will appear below the map, punch the identifying elective
number "38" in columns 4-5.
Standard is not to produce the data graph.
3. 34 ELECTIVE NUMBER 39
LINEAR REGRESSION PLANE (1 card)
(Available in SYMAP Version 6 only)
To produce a linear regression plane of the surface
computed, punch the identifying elective number "39" in
columns 4-5. The user may specify the following
suboption:
Column 11-20 blank the standard suboption is a
default size 1/2 the width of
the map. The maximum
regression plane size is 13".
-------
Column 11-20 0. the number punched in
these columns is the size
factor, given as a fraction
of the map width.
Standard is not to produce a linear regression
plane .
-------
4. SYMAP USER SUBROUTINE
Subroutine FLEXIN is an optional FORTRAN IV
subroutine supplied by the user and used (1) to specify input
data formats which differ from the standard SYMAP for-
mats, and (2) to manipulate the data after it has been read.
The most common use of this subroutine is with the E-
VALUES package; if the data values are already on cards,
tape, or disk, they can be read in according to the present
format. It is not necessary to repunch or reformat the
data to conform to standard E-VALUES package format.
The subroutine may be used with all of the pack-
ages except the F-MAP package. The A-OUTLINE, B-
DATA POINTS, D-BARRIERS, E-VALUES, and El-
VALUES INDEX packages may be read in using formats
specified in subroutine FLEXIN. On the other hand the
A-CONFORMOLINES and C-OTOLEGENDS packages are
always read in as usual using the standard formats even
if subroutine FLEXIN is employed for manipulating the
information. Manipulations can be performed on the in-
formation contained in any of these packages, once it has
been read in.
The uses of subroutine FLEXIN described in the
following sections apply mainly to the packages employed
to produce contour maps. However, the same procedures
also apply to conformant and proximal maps: E-VALUES
packages are used for all three types of maps and the co-
ordinates of the A-CONFORMOLINES packages can be
manipulated in the same way as the C-OTOLEGENDS
packages.
4.1 MULTIPLE MAP SUBMISSION
The multiple submission of maps can be accomp-
lished quite easily with the SYMAP program. In the
-------
simplest case, several maps of the same variable may
be desired, requiring changes only in the electives of
the map packages. An F-MAP package is required for
each map desired. Example 1-9 lists the five F-MAP
packages required to produce the maps in Examples 1-8,
1-10, 1-11, 1-12, and 1-13. AH1 of these maps use the same
outline, data point, legend, and values packages. This
illustrates that data packages are retained for successive
#
maps unless changed or delfeted.
Igmaps are being made for the same study area
and data point locations but for different variables, then
only the E-VALUES and F-MAP packages need to be
varied from map to map. If a single map is required for
each of two variables, then the following order for the
packages would be used:
A - OUTLINE
B - DATA POINTS
C - OTOLEGENDS
E - VALUES 1
F - MAP 1
E - VALUES 2
F - MAP 2 .
When one or more maps are to be produced, addi-
tional cards must preceed the data packages. Even if no
data or program manipulations are desired, subroutine
FLEXIN must be provided in a "dummy" form since it
is an integral part of the SYMAP deck. The dummy
FLEXIN consists of the following three cards: (1) SUB-
ROUTINE FLEXIN (IFORM, T, FIRST) (2) RETURN
(3) END. These cards tell the computer that there are
no special manipulations to take place, and, therefore,
that all packages are in the standard formats read by
* A packgge can be deleted by specifying only the first
and last cards; this is shown in Example 1-14 for the
C-OTOLEGENDS package.
-------
the SYMAP program. Job control cards both preceed
and follow the dummy subroutine; the data packages
follow the second set of job control cards. These cards
vary with the computing system and facilities used. *
Example 4-1 shows the dummy subroutine FLEXES!
and the seven packages required to produce the single
maps for each of two variables. Note that all the pack-
ages are on cards and in the standard format.
If the data for the E - VALUES packages were on
tape or disk and the electives did not change from one
F - MAP package to the next, then very few cards would
actually be required after the first F - MAP package --
a minimum of 3 for the E - VALUES and 6 for the F -
MAP package. When maps for a study area are to be
run continuously over a long period of time, it would be
advisable to store the outline and legends on a tape or
disk file, store the data banks containing the data points
and values on another file, and submit card decks for
each run composed of only the map package, user sub-
routine and job control language.
If both contour and conformant maps are to be
produced in the same run, there are several special
considerations. When an A-CONFORMOLINES package
is introduced, the program assumes that a conformant
map is desired for that and all succeeding maps in the
same series, and it will ignore A-OUTLEME and B-DATA
POINTS packages. If a B-DATA POINTS package is to
be used for the printing of data point symbols, elective
number "25" must be specified in the F-MAP package
of each map. On the other hand, unless or until an
* See Section 5 for a discussion of job control cards.
-------
job control cards
SUBROUTINE FLEX IN
RETURN
* dummy
subroutine
END
A-OUTLINE
" job control cards
" package
on cards
99999
B-DATA POINTS
" package
on cards
99999
C-OTOLEGENDS
' package
on cards
S9999
E-VALUES
99999
F-MAP
99999
E-VALUES
99999
F-MAP
' package
' package
' package
" package
on cards
on cards
on cards
on cards
<39999
Example 4-1
Subroutine FLEX IN--Dummy
-------
A-CONFORMOLINES package is encountered in a sub-
mission, the program assumes that a contour map is
desired and all packages are used. Following the intro-
duction of an A-CONFORMOLINES package, elective
number "27" must be specified in the F-MAP package of
each contour or proximal map desired. As a general
safeguard when unrelated maps are to be run in a single
submission, a card with the word "CLEAR" punched in
columns 1-5 should be inserted before the first data pack-
age of any map which is unrelated to the preceding map.
This will prevent any carry-over of data from a previous
map.
In preparing the F-MAP package for any map,
it is important to remember that non-standard electives
are not automatically carried over from the preceding
map. The standard form of each elective is employed
for each map unless another specification is made in
the F-MAP package. To repeat one or more non-standard
electives used in the preceding map, include a separate
card for each elective to be repeated. Punch the identi-
fying elective number as an integer right justified in
columns 1-5, and the word "SAME" in columns 6-9.
To repeat all non-standard electives used in the pre-
ceding map, punch the identifying elective number "12"
in columns 4-5. Non-standard electives may be added,
or modified and reinserted in sequence, but elective
number 12 may not be used if any non-standard electives
are to be deleted by reversion to the standard.
4.2. DATA BANKS AND FORMATS
The most common use of subroutine FLEXIN is
to extract a particular variable from a data bank for
mapping. In this way it is not necessary to prepare a
-------
separate E-VALUES package in the standard format for
each map to be produced.
Example 4-2 shows the simplest use of the sub-
routine. In this case only one package -- the first
E-VALUES package --is read in by the subroutine; all
other packages are punched in the standard format and
read in as usual by the program. In addition, the sub-
routine is used here only to read in the variable accord-
ing to a non-standard format; no manipulations are per-
formed.
In example 4-2 the subroutine instructs the pro-
gram to read the variable T from cards (the unit 5_ speci-
fied in the read statement is the card reader) according
to the format found in statement number 100. This format
says that the value will be found in columns 6-10 on each
card. Each time that the Subroutine is called -- once for
each data point --a new value for the variable T will be
read and returned to the main program as the value to
be mapped for that data point.
The "READ" statement is used to identify, by
means of a variable name (or acronym), each category
of data to be read from a given data bank. The "FORMAT"
statement is used to specify the exact location in the data
bank of each data category specified in the READ state-
ment. A "T" statement is often used to specify to the
computer the data values to be mapped . This statement
may simply direct the computer to map the values as
read or to perform an arithmetic operation (manipulation)
involving one or more categories of data and to map the
values resulting from this computation. In Example 4-2
the variable name used is "T"; no manipulations are
required, and therefore no separate "T" statement is
necessary. If the variable name had been "VALUE",
-------
' job control cards
SUBROUTINE FLEX IN
-------
for instance, then a "T" statement would have followed
the "FORMAT" statement:
T = VALUE.
The user should refer to a basic FORTRAN IV
manual for the acceptable variable names, format pro-
cedures, and other specifications that may be important
to the writing of a Subroutine FLEXIN. These include:
-- columns used: The punching of the fortran statement
begins in column 7; columns 1-5 are reserved for the
statement number and column 6 for a code indicating
that the statement occupies more than one card;
-- variable names: the variables are generally "float-
ing point numbers" -- containing an actual or implied
decimal point. The variable names may be acronyms
which consist of any combination of letters and numerals
such that the initial character is a letter other than I, J,
K, L, M, or N, the total number of characters is six or
less, and the resulting combination does not have some
regularly established meaning; acronyms to be avoided
include END, FORMAT, GOTO, IF, READ, RETURN,
REWIND, and WRITE. The FORMAT statement is used
to specify where on each data card in the E-VALUES pack-
age the named variable will be found. In the statement
the "5X" directs the computer to skip 5 columns and to
read the value which follows. "F5. 0" informs the com-
puter that each of the values specified in this location is
a "floating point number", that this number occupies a
"field" of five columns,and that no digits follow the
decimal point.
-- arithmetic expressions: when the variable (or variables)
require manipulation prior to mapping, the following
characters should be used for arithmetic operations:
-------
+ for addition
for subtraction
* for multiplication
/ for division
** for exponentiation.
Arithmetic operations will be carried out at three levels
and in this sequence: first, exponentiation; second, mul-
tiplication and/ or division; third, addition and/or sub-
traction. Within each level, operations are carried out
from left to right for a given arithmetic statement. Use
balanced parentheses to alter this sequence of operations
between levels or to establish the sequence of operations
between multiplication and division, or addition and sub-
traction, when necessary.
In Example 4-2 all but the first E-VAIAJES pack-
age are read in using the standard format. It is necessary
to inform the program that this E-VALUES package is
to be treated differently.
On the first card of this package, "E-VALUES"
j,s_ punched in columns 1-8 and the letter "X" in column
*
18 ; this tells the computer that a continuation card
follows with additional instructions.
On the second card -- the continuation card --
the subroutine FLEXIN identifying number (an integer
from 1 to 25) is punched right justified in columns 1-5.
This number is read by the subroutine and becomes the
value for the variable "IFORM". If IFORM =0, the sub-
routine will not be called. In Example 4-2, this variable
* This can be any non-blank character^in columns 16^
by convention an "x" in column 18 is generally used.
-------
is used only to "call the subroutine" when the first
E-VALUES package is read in by the program. The data
bank on cards immediately follows this second card, one
card --or group of cards -- for each data point value.
The total number of data points is punched as an integer
number right justified in columns 6-10. In Example 4-2
IFORM = 1 and the number of data points is 10. This
means that 10 values for the variable "T" will be read
in one by one from the data bank following the second card.
On the last card the number "99999" is punched
in columns 1-5 to signal the end of the package.
When Subroutine FLEXIN is called, three varia-
bles -- IFORM, T, and FIRST -- are transferred between
the subroutine and the main program. The variables
IFORM and FIRST are carried into the subroutine as
control variables. The data value to be mapped is car-
ried back to the main program as T. Subroutine FLEXIN
is called once for every value to be mapped and a value
for T is returned each time.
FIRST is a logical variable; it must be declared
"type logical" by the statement, LOGICAL FIRST. It is
"true" the first time subroutine FLEXIN is called for a
given package and "false" on all other entries from the
main program. This is set outside the subroutine. It
is useful for initializing a counter and particularly for
rewinding a tape or disk file so that the first entry will
be read the first time the subroutine is called for a
given package.*
*The use of the variable name, FIRST, is coincidental
with the fact that the variable is set "true" the first
time the subroutine is called.
-------
In Example 4-2 the subroutine was used to read
in or manipulate only one package -- the first E-VALUES
package. In Example 4-3 the identical two maps are to
be produced using the same outline, data point, legends,
and map packages. However, the E-VALUES packages
are different:
(i) the variables for both maps are contained in
the same data bank.
(ii) the variable for the first map is derived in
the subroutine by reading in two variables and
dividing one by the other: T = A/B.
(iii) because the variables are in one data bank,
provided on cards with the first E-VALUES
package, the second E-VALUES package does
not contain any data.
Subroutine FLEXIN is used to read and manipu-
late both of the E-VALUES packages. The variable
IF ORM is used to distinguish between packages which
are to be read and manipulated if there is more than one.
In Example 4-3 the value of IFORM on the second card
of the first E-VALUES package is "1"; IFORM = 2 for the
second E-VALUES package. Notice that the first E-
VALUES package is the same as in Example 4-2: the
number of data points to be read in, 10, is punched right
justified in columns 6-10 and the 10 data cards follow
this second card.
The second E-VALUES package is different:
no_ cards follow the second card since the data values
are to be read in from a tape or disk file as specified
by the instructions in the subroutine. The "x" in column
13 of the second card causes the tape or disk file to be
-------
job control cards
SUBROUTINE FLEX IN(IFORM,T,FIRST)
LOGICAL FIRST
subroutine
GO T0(1,2),IFQRM
1 CONTINUE
with fi-rst
IF(FIRST) REWIND 12
READC5.IOI A.B.C
package
10 FORMAT(3F10.0)
_ JRU_EI12)C
T=A/B
RETURN
2 CONTINUE
IF(F IRST)REWINO 12
REAO(12)C
RETURN
END
" used with second values
package
* joh rnntrnl
99999
2 10 X
1999.9 __
F-MAP
" outline, data point, and
E-VALUES X
1 10
99999
F-MAP
legend
-r..lr,C.
read by
" package
packages on caras.
nn r^ft]fi'
FLEXIN
on cards
" package on tape or
(unit 12) read by FLEXIN
package on cards
Example 4-3
Subroutine FLEXIN—Manipulation and Data
Storage
-------
rewound after the data for the package has been read in. *
It is necessary for the subroutine to know which
package it is to manipulate and what set of statements
should be used for the manipulations. The variable
IFORM is used for this purpose. An "assigned go to"
statement of the form
GO TO (1,2), IFORM
is used in Example 4-3 to tell the computer what instruc-
tions in the subroutine should be used for a particular
package. ** If IFORM = 1, then the computer will jump
to the first statement number contained in the paren-
e,
thesis (statement number 1); if IFORM = 2, it will go
to the second number in parentheses (statement number
2). The set of instructions to be used when IFORM = 1
is contained between the "1 CONTINUE" statement and
the "RETURN" statement associated with it. In other
words, when IFORM = 1, the following instructions will
be performed:
1 CONTINUE
IF (FIRST) REWIND 12
READ (5,10) A,B, C
10 FORMAT (3F10. 0)
WRITE (12) C
T = A/B
RETURN
* Any non-blank character in columns 11-15 will cause
unit 12 to be rewound after the package is read in -- "x"
in column 13 is used by convention. The SYMAP program
generally expects the data set to be written and read on
logical unit 12; if another unit is used, this rewind command
has no useful purpose.
** A maximum of twenty-five sets of instructions may be
used in any one submission. Not every set of instructions
need be referred to in a particular run, but every package
to be manipulated must have a set of instructions associated
with it, generally by means of the "assigned go to" state-
ment. IFORM is generally used to pass the identifying
number from the package to_the subroutine, but it may also
be used to return the number 99999 from the subroutine to
notify the program that the package has been entirely read in.
-------
These have the following meaning or function:
--- IF(FIRST) REWIND 12: if this is the first time the
subroutine is called by the E-VALUES package, then
the tape or disk file mounted on logical unit 12 is rewound
to the beginning; in this way the first value in the data
set will be read the first time the subroutine is called.
The statement is ignored the remaining nine times the
subroutine is called by the E-VAL.UES package.
--- READ(5,10) A, B, C: for each of the ten times the
subroutine is called, the values for the three variables
A, B, and C are read in by the card reader (unit 5) accord-
ing to the format specified in statement number 10.
--- 10 FORMAT (3F10. 0): the variables A,B, and C
are floating point numbers; each has 10 columns reserved
for it, with no digits after the decimal.
WRITE (12) C: the value for the variable C is writ-
ten out -- without a format -- onto the tape or disk file
on unit 12 each time the subroutine is called. A formatted
write statement of the form
WRITE (12,200) C
200 FORMAT (F10.0)
could have been used, although the unformatted one is
generally easier to specify and more efficient for the
computer. By this procedure the 10 values of C are
read in from the data bank and stored on a temporary
data set for subsequent use with the second map.
T = A/B: the values to be mapped are returned
by the variable T; each value is determined within the
subroutine by dividing the value for A by the correspon-
ding value for B. This ability to create new variables
within the subroutine greatly adds to the flexibility for
the user.
-------
The set of instructions to be used when IFORM = 2
is contained between the "2 CONTINUE" and correspond-
ing "RETURN" statements. The first time the subroutine
is called, when the second E-VALUES package is encoun-
tered by the program, the tape or disk file on unit 12
will be rewound to the beginning. Then the ten values
for the variable C are read, one each time the subroutine
is called. The variable T is assigned each value of C so
as to transfer the appropriate values for the second map
back to the main program.
It is essential that the B-DATA POINTS and
E-VALUES packages have a 1:1 correspondence so that
the correct value will be associated with each data point.
In many cases this can be facilitated by the use of a
data bank which contains the x and y coordinates and
the associated values on one "record".* Example 4-4
shows the subroutine and packages that could be used
to produce the same two maps as in Examples 4-1, 4-2,
and 4-3 if the data points and both sets of values are
contained in the same data bank.
For IFORM = 1, the data bank is read in, the set
of instructions starting with "1 CONTINUE" is used, the
x and y coordinates are returned to the main program for
mapping, and the two sets of values are written out onto
a tape or disk storage file. For IFORM = 2, the values
for the first map are read in from the storage file accord-
ing to the instructions starting with the statement "2
CONTINUE", and the values are returned to the program
* As used here a "record" would be the card or cards
read in for each point; in Example 4-3 each set of values
for the variables A, B, and C is a record. Likewise, the
variable C is written out onto tape or disk as one record.
-------
'job control cards
SUBROUTINE FLFXINII FORM.T.FIRST)
DIMENSION T(2)
LOGICAL FIRST
GO TO (1,2,3^, IfjORM
1 CONTINUE
_lfj F IRSTJREWIND 12
READ(5,1CO) TU),T(2),V1,V2
>0 FCRMAT(2F10.1,2F10.0)
WRITEC12) VI,V2
RETURN
subroutine"
used with data points
2 CONTINUE
_l_F( FIRST) REWIND 12
READ(12I Till
RETURN
* used with first values
—package
CONTINUE
IFIFIRST1
REWIND 12
"used with second values
—package
READ (12)
RETURN
VI, TC1)
END
' job control cards
A-QUTklNt.
' package on cards
99999
B-QATA POINTS
1 10
99999_
C-OTOLEGENDS
' package on cardsj
read by FLEXIN
59999
E-VALUES
-—2 _.
99999
F-MA_P_
99999
Er. VALUES.
3 10
.S9.29.9.
F-MAP
' package on cards
package on tape ojr disk
(unit 12) read by FLEXIN
'package on cards
* package on tape or disk
. (unit 12) read by FLEX£L
'package on cards
99999
Example 4-4
Subroutine FLEXIN--Dimensioning and Data
Points
-------
for mapping through the variable T. The same type of
procedure is used for the second set of values when
IFORM = 3.
The variable T is used to return all data to the
main program concerning the packages to be used for
mapping. In the previous examples, T was used only
to return values, but in Example 4-4, it is also used to
return the data point locations. Because data points
require two variables -- one each to describe the x and
y coordinates - - T is "dimensioned" to create two new
variables, T(l) and T(2). * For the outline, data points,
legends, or barriers packages T(l) is always used for
the down or y coordinate and T(2) for the across or x
coordinate. Since the variable T has been dimensioned,
it should be used throughout as a dimensioned variable.
Consequently, when IFORM = 2 or 3, the values should
be returned through the variable T(l), rather than T, as
in Example 4-3.
When IFORM = 3, both variables are read in;
the first value is read in with the variable name "VI"
and the second with the name "T(l)". Therefore, the
second value is returned to the program to be mapped.
When IFORM = 2, only the first variable is read in
and it is returned to the main program to be mapped.
It is not necessary to read variables on a record past
* It is necessary to include a DIMENSION statement so
that the program will know how many "T " variables to
expect; in this case there are only two, T(l) and T(2).
This statement must preceed the first use of the dimen-
sioned variable; the LOGICAL FIRST statement also
must preceed the first use of that variable.
-------
the one to be used; the program will automatically start
reading a new record each time the subroutine is called.
The following statements would all have the same result
for IFORM = 2:
READ (12) T(l)
READ (12) T(l), V2
READ (12) VI, V2 and T(l) = VI
READ (12) T(l), VALTWO.
4.3. MANIPULATION OF COORDINATES
In addition to the functions of reading in data for
various packages and performing manipulations to pro-
duce new variables to be mapped, the subroutine can
be used to manipulate or transform the x and y coordin-
ates prior to mapping. For many cases the coordinates
will have been provided or measured from a source
map, with an upward increasing y axis, whereas SYMAP
requires a downward increasing y axis for mapping
purposes. In other cases the user may merely wish
to change the scale or origin of the coordinate system.
Example 4-5 shows the subroutine and packages
required to produce the same two maps as in previous
examples when all except the map packages are to be
manipulated by the subroutine as follows:
--IFORM = 1: starting with statement number 10, the
outline coordinates are read in from cards according
to the format in statement 100. The axes are trans-
formed and the origin changed as follows:
y = 100 - y
x = x + 10
The x and y coordinate values are then returned to the
main program as T(2) and T(l), respectively.
-------
^iJfiKOU T IflLEJFJJEX IN ( LFQR MjJTtF IRS T J
DIMENSION T(3)
..LQfiJLCAk.ejRST
GO T0(10,20,15,30,40),IFORM
'job control cards
subroutine
READ(5,100) TU),T{2)
IflQ E..QR MALUfl X, 2 E10 . 0)
15 CONTINUE
_ T(l) = 100.-T(rL
T(2) = T(2)*10.0
RETURN
20 CONTINUE
IFCFIRST)
-_. jii£edjwj.th_outline package
12.
____ READ(5 .20 01 X , Y , Z
WRITE( 12,210)Z
200 FORMAT(3F10.0>
210 FORMAT(FIO.O)
T(1)=100.-Y
used with legends package
used with data points
~package
T(2)=X+10.0
RETURN
30 CONTINUE
IF(FIRST)REWINO 12
REAO( 12,210)
RETURN
* used with first values
package
CONTINUE
READ(5,400) (T(I),I=1,3)
'used with second values
package
400 FORMAT(10X,F10.0,20X,2A4)
RETURN
END
A-OUTLINE
"job control cafds
59999
'package on cards:
read by FLEXIN
B-DATA POINTS
2 10
99999
.C-OTOLEGENDS
99999
E-VALUES
.— 4
99999
10 X
• package on
read by FLEXIN
•package on cards;
- read by FLEXIN-
' package on tape or disk;
read by FLEXIN
99999
E-VALUES.
5 10
99999
F-MAP
1 package on cards
* package on cards
feacTby "F LEXIN
"package on cards
Example 4—5
-------
--IFORM = 2: starting with statement number 20, the
data bank of x and y coordinates for the data points and
associated 10 values for the first map are read in from
cards according to the format in statement number 200.
The 10 values are written out onto unit 12, one by one,
using the format in statement number 210. Finally, the
x and y coordinates are manipulated by the same formulae
as were used with the outline coordinates before return-
ing the values to be mapped.
--IFORM = 3: the cards for the C-OTOLEGENDS pack-
age are read in automatically by the main program
according to the standard format specified in section 2,
Preparation of Packages. Then, starting with statement
number 15, the x and y coordinates are manipulated by
the same statements used for the outline coordinates and
returned. Notice that the same RETURN statement is
used to end the set of instructions starting with "10
CONTINUE" and the set starting with "15 CONTINUE".
--IFORM = 4: starting with statement number 30, the
first set of values is read from the data set on unit
12, using the format in statement number 210, and re-
turned for mapping.
--IFORM = 5: starting with statement number 40, the
second set of values is read in from 10 cards, one
value per card, according to the format in statement
number 400. Notice that there are three variables on
each card: T(l), T(2), and T(3). T(l) is the value to
be mapped; T(2) and T(3) are used to read in "alpha-
numeric" identifiers or codes which are then printed
out on the output for the appropriate package, preceding
the map. For instance, if we are mapping data for 10
towns the identifiers might well be the town names.
-------
Up to eight letters may be used; the format required
for T(2) and T(3) is generally 2A4, meaning that the
first four letters or numbers are read in or written
out by T(2) and the last four by T(3).
In the packages themselves, the second card
gives the value for IFORM, the number of times the
package is to be called, and the tape or disk file rewind
command for the first values package. For the data
points and values packages, the number of times the
package is to be called equals the number of data points,
10; for the outline package it is the number of islands, 1;
and for the legends package the variable is not used.
-------
5. PROGRAMMING AND SYSTEMS GUIDE
This programming and systems guide is intended to provide
technical information to people interested in the SYMAP program
or who may wish to implement the program at their local com-
puting installation. A knowledge of FORTRAN as well as
familiarity with the systems procedures at the local computing
installation is assumed.
This guide is for use with SYMAP Version 5 as written
for use on the IBM 360 Computer.
5.1. GENERAL INFORMATION
5. 1. 1. Minimum Machine Configuration
The SYMAP program in its present form requires an
IBM 360 computer under Operating System 360 with at least
128K units of storage, a G-level Fortran IV compiler, sufficient
auxiliary storage to allocate temporary work areas for the four
required execution data sets, and standard input-output facilities
including a line printer. In regard to the Fortran Compiler, it
is assumed that PGM=G invokes the FORTRAN G compiler.
Check with the installation at which you intend to run to verify
this.
The required work data sets are FT01F001 through
FT04F001, which are used during the processing of any map.
Units 5,6, and 7 are needed for card input, the printer and
card output. Two other data sets, FT08F001 and FT12F001,
may be needed if certain user-specified conditions are true.
FT08F001 identifies the unit which receives the data set contain-
ing the map location values written when elective Zl of F-MAP
-------
package is specified. The SYMAP program is written to accom-
modate a logical unit 12 when the user Subroutine Flexin is being
O
used with a data bank. The DCB parameters for FT12F001 are
therefore user-specified.
The SYMAP program is run at Harvard on an IBM System
360/65, with 256K bytes of internal storage and an additional
million bytes of storage provided by an LCS unit, under Operating
System release 18, MVT. The unit assignments made in the
examples reflect the availability of work space on direct access
storage units. This eliminates the need for some of the tape
handling that would be necessary if all of the work files were
on tape.
5.1.2. Program Storage Requirements
Version 5 of the SYMAP program requires approximately
15OK units of storage if implemented with the overlay structure
as specified. The program can be run in a 210K partition with-
out overlays.
The storage requirements of the program may be decreased
somewhat by reducing the size of the blank COMMON area which
is currently specified in the MAIN as having a 10,000 word
capacity. The blank COMMON area is used for storage of the
B-DATA POINTS , E-VALUES and El-VALUES INDEX packages
and additional information required by specific F-MAP packages.
It is also used as the work area for computation of the maximum -
sized segment of the map. The program performs its calculations
sequentially on individual segments of the map. Decreasing the
size of the blank COMMON area imposes stricter limitations on
maximum map sizes. It increases the running time because the
-------
map is processed in smaller and therefore more numerous
segments. Conversely, increasing the size of blank COMMON
allows larger maps to be produced; it has the effect of decreasing
execution times because the map is processed in larger segments.
In fact the effect of enlarging blank COMMON by a factor of one-
half or more is so pronounced that, if there is a choice between
running the program without overlays or increasing the size of
blank COMMON by a factor of 50 percent or more, it is re-
commended that the size of blank COMMON be increased.
Changes to the size of the blank COMMON area may be
effected by changing card E0004550 which reads 'COMMON
COMMON! 10000)1 and card E0010400 which communicates the
size of the COMMON area to the program. This is discussed
in the section on blank COMMON.
5.1.3. Input and Output Units
The SYMAP program has statements which reference the
following FORTRAN TV logical tape/disk data sets: numbers
1, 2, 3, 4, 5, 6, 7, 8 and 12. These units are referenced in
four kinds of statements: READ/WRITE (1) X,Y,Z, for binary
reads and writes; READ/WRITE (6,1040) for EBCDIC reads and
writes; REWIND 2; and END FILE 3. The units are used as
follows:
-- Unit 5 is the system input unit and is only in EBCDIC form;
-- Unit 6 is the system output unit and is only written in
EBCDIC form. The maximum record length with carriage
control character is 132 characters;
-- Unit 7 is the system output card punch and is written in
EBCDIC form.
-------
Units 1-4 are used only for intermediate storage, and are
written, end filed, rewound, and read:
-- Unit 1 is used to store the A-OUTLINE package;
-- Unit 2 is used for the A-CONFORMOLINES package;
-- Unit 3 is used for the C-OTOLEGENDS package; and,
-- Unit 4 is used for the C-LEGENDS package.
If any of these four packages are omitted from the program in-
put, the corresponding unit will not be used.
-- Unit 8 is used for binary output only when elective 21 is
specified by the input and is not normally used.
-- Unit 12 is used for user-specified input in non-standard form,
such as a data bank read in through Subroutine FLEXIN. Unit
12 is rewound by the SYMAP program after the input of a pack-
age if the user specifies in the package that this is to be done.
The user may reference other units in the FLEXIN subroutine,
although he would normally reference only Unit 12 for EBCDIC
reads if any units were needed.
5.1.4. SYMAP Source Tape
The source program for SYMAP version 5 is available
on tape. This tape is a 360 copy of a tape and includes the
source deck and sample data for contour, proximal and confor-
mant maps. These 360 tapes are written at 800 DPI, odd parity,
EBCDIC mode with 80 character records blocked in 8000
character blocks--one hundred records to a block.
To implement the program at another computer center,
it is necessary to convert the tape to a card deck. The proper
fields may be punched for each record by using the IBM utility
-------
program IEBPTPCH with the control commands shown in
Example 5-1. For more information on IBM-supplied utilities,
one should see FORM C28-6586 OS/360 UTILITIES.
5.2. PROGRAMMER INFORMATION
5.2.1. Program Times
To have the program times printed out by the program,
j it is necessary to change the statement on card E0011600,
TTEMP=0. 0. This statement should be changed so that the CPU
time (not the elapsed time) in minutes is stored in TTEMP.
This is generally done by calling some system subroutine but
it can be done only in computers that have clocks.
5.2.2. User Subroutine
It should be noted that Subroutine FLEXIN occurs on
cards E0016900-E0017200. This subroutine is generally replaced
by a user-written subroutine. When this is the case the user-
written subroutine should be put in the deck in place of the
"dummy subroutine" on these cards.
5.2.3. Blank COMMON
All but one of the statements referring to blank COMMON
are exactly as follows: COMMON COMMON(l). This statement
allows any location in blank COMMON to be referenced by means
of the subscripted variable, COMMON. The variable COMMON
is used only in CALL statements as an argument and always
with a variable as its subscript. The called SUBROUTINE
statement has a corresponding subscripted dummy argument.
-------
Example 5-1
Utility Program
To Punch Source Card from SYMAP Tape
11111111112222222222233333333334444444445
12345678901234567890123456789012345678901234567^90
//PUNCH EXEC PGM=IEBPTPCH
//SYSPRIMT DD SYSOUT=A
//SYSUT1 00 DSN=X,UNIT=TAPE9T,VOL=SER=
// DISP=(GLO,KEEP),LABEL=(,BLP).
// CCB=(KECFM=FB»L*ECL=8:>,BLK$IZE =
//SYSUT2 DD SYSOUT=B
//SYSIM &D *
PUNCH MAXFLDS=1
RECURO FIELD=(80)
£ /
NOTE: The tapes on which the program is distributed are
unlabeled and the user may specify any six character
-------
In this way, SYMAP is able to use blank COMMON for several
arrays of variable size and to achieve a sort of dynamic storage
allocation. It is desirable to use as large a part of storage as
possible for the map grid (IMATRIX) because the map is not
created all at once. It is created in as many sections as are
necessary, depending on the size of the section (determined by
the amount of core) and the size of the map.
The size of blank COMMON is set by card E0004550 and
in the distributed version is 10000 words. This size is com-
municated to the program by setting the variable NSTOR in the
data statement on card E0010400. Thus by changing the number
'10000' on these two cards, it is possible to change the amount
of blank COMMON used by the program. This may be desirable
if core is exceeded or if there is a considerable portion of
core remaining unused.
The desirability of increasing the size of blank COMMON
is twofold. In the first place, the B-DATA POINTS and E-VALUES
packages are stored there. (The El-VALUES INDEX package is
stored there but this package is rarely used. ) These require
two locations for each point and one for each value. (Plus one
for each index if the El-VALUES INDEX package is used.) In
addition, for contour and proximal maps, there is another location
used for a locater-index for each point, and an additional two
locations used for the slopes at every point for contour maps.
Thus, for a contour map there are 6 words used for every point,
including its value; if there are 1000 points, this uses up 6000
words of blank COMMON. On the other hand, a. conformant
map would only require one word for each conformant figure
(or, 3 words if data points are included). This would allow the
use of many more conformant zones with a conformant map
-------
than data points with a contour map, for the same amount of
blank COMMON. With the 4000 words left on blank COMMON
for a 1000 data point contour map, the map grid would be set
up. Assuming a map 10. 1 inches wide, this grid would have
100 columns (the width of the map at 10 columns per inch with
1 column used for the border) and only 40 rows. This means
that for every 40 rows of the map (5.0 inches), a new section
would be needed. A reduction in the number of sections required
to make a map is desirable since units 1, 2, and 3 must be
rewound at the beginning of each section. Unit 4 is rewound at
the end of each map strip.
5.2.4. Labeled COMMON
Labeled COMMON statements are generally contained only
in routines which reference them. For a given labeled COMMON,
one will often find different variable names assigned to the same
location in different routines; this inconsistency may be removed
from the program at a later date. The sizes of all the references
to a given labeled COMMON are all the same.
5.2.5. Entry Statements
There are a number of ENTRY statements in the program
which are used primarily for the transfer of parameters. It is
not too difficult to take these statements out of the program, if
some care is exercised in doing so.
5. 2. 6. Checking for Missing Data
In the past Elective 18 of the F-MAP package was used
to check for missing values in the data, coded as minus zero's.
The following condition was used to test the value of VALUE to
-------
see whether it was a '-0. O1. IF (VALUE .EQ. 0.0 .AND.
SIGN( 1.0, VALUE). LT. 0.0) This test worked on the
IBM 7094 but it is very possible that it will not work on other
computers including the IBM 360. With the FORTRAN language,
the result of the SIGN function is undefined, when the second
argument is equal to 0. 0. (It should be noted that -0. 0 is
equal to 0. 0, although a different result is obtained from the
SIGN function on the IBM 7094)
There are other difficulties encountered in using Elective
18 to eliminate missing data. It is first necessary to have the
data itself assigned the value of -0. 0, rather than 0. 0. At the
Harvard Computing Center the systems routines on the IBM 360
are such that when a blank field is read with an F format, the
resulting value is 0. 0 rather than -0. 0 which was the case with
the IBM 7094. To get around this limitation it may be better
to use Electives 19 and 20 in many cases, rather than 18; these
are standard FORTRAN routines and will function successfully
at any installation. As a final note, 360 users should not be
confused by the 360's inability to store a -0; this is quite a
different thing from a -0. 0 which it can store.
5.3. SYSTEM INFORMATION
5. 3. 1. Overlay Structure
The program is overlayed to conserve core storage. In
some machines it may be possible to run the entire program
without overlaying, although this extra space can probably be
used more efficiently in other ways. It is extremely dangerous
to overlay the program further than the present version, parti-
cularly with regard to those routines which have more than one
entry (by means of the ENTRY statement).
-------
The uses of the overlay links are as follows:
-- Link 0 (the main link and not really an overlay) is the main
program, together with a number of subroutines used by different
overlays and a large portion of the labeled COMMONS;
-- Link 1 is the input link and its main routine is INPUT. This
link should contain subroutine FLEXIN. Note that FLEXIN will
not preserve any variables created during input of the previous
map. This routine is overlayed after it reads in an F-MAP
package whenever a map is made;
-- Link 2 is the map initialization link and its main routine is
INIT. Its parent link is 0, and it replaces link 1 at the beginning
of a map in order to perform various functions;
-- Link 3 has parent link 0 and overlays link 2 in order to
create the actual content of the map. Its main routine is MAP.
It is an ancestor of all the secondary and tertiary links;
-- Link 4 is used solely for producing conformant maps and its
main routine is FLAT. Parent link is 3 and it has no daughters;
-- Link 5 is a set of subroutines used by links 6 and 7 for
making contour and proximal maps. It is called in over link
4 if a contour or proximal map is to be made. Its daughters
are the tertiary links 6 and 7;
-- Link 6 is used for initialization of contour and proximal
maps. Its main routine is SLOPER and its parent link is 5;
-- Link 7 is used for the actual creation of the contour map.
Its main routine is CONTOR and its parent link is 5; and,
-- Link 8 replaces link 3 and its daughters and produces the
information at the bottom of the map and the histogram. Its
main routine is FINAL and its parent link is 0.
The overlay structure is shown in Example 5-2.
-------
Example 5-2
OVERLAY TREE
ORGSYM
ORGB
ORGB2
ORGB 3
I
ORGC
ORGB4
ORGC2
ORGD
ORGD1
ORGD 2
-------
5.3.2. Generation of Overlays
For ease of use and economy in running time, it is
desirable to keep load modules for each program segment stored
on disk. This makes it easier to incorporate program changes
and to use certain sections of the program for special testing.
Programmers may wish to change various routines without alter-
ing the original program modules.
For example, when the FLEXIN subroutine is being used
to read input, the subroutine alone can be compiled and link-
edited into the program.
Subroutine FLEXIN--otherwise known as subroutine 15--
may be used to specify data formats which differ from those
used by the packages as standard. It may also be used to
perform various arithmetic operations on the data to be mapped.
This subroutine is one of the most important features of the
program. It provides the user with complete flexibility of data
inputs and data manipulation. However, since the subroutine
is usually changed for each submission of the program, it is
necessary to compile this subroutine each time the program is
run.
This procedure requires the generation of a library data
set which has each of the program segments stored as a separate
load module. The user will have to refer this problem to the
systems programmers at his installation in order to obtain
permanent residence space. Auxiliary control statements may
be necessary for the successful completion of this and succeeding
steps. To do this requires use of the editing facilities of the
OS Linkage Editor (refer to FORM C-28-6538 IBM SYSTEM/360
-------
Operating System Linkage Editor for a full description of the
linkage editor facilities). The linkage editor generates a
separate load module for each name segment which it encounters.
Proper placement of name statements and specification of the
'NCAL1 option to the linkage editor will create a data set which
contains each segment as a member in load module form.
Example 5-3 shows the control cards necessary to set
up the main data set when the input to the linkage editor is to
be in the form of binary decks. The controls to execute the
linkage editor program have been completely written out in this
job since it is not standard to have a catalogued procedure for
FORTRAN which only does a link edit. The user should note
that the data set name and the volume identification (volid)
must be specified in the SYSLMOD DD statement before this
program can be run. Note also that the NAME statements
in the linkage editor input refer to the object decks which
appear before them; in other words, when the linkage editor
encounters a. NAME statement, it forms a load module of the
object decks which it had encountered up to that point and starts
another load module for the object decks which follow.
Example 5-4 shows the control card structure required to
compile the nine segments of SYMAP from the source tape and
then to link edit each segment into a load module.
5. 3. 3. Running Efficiency
It is foolish to run the source decks of the SYMAP program
more than once. Binary decks should be obtained immediately
and each source deck replaced with the corresponding binary
deck (object deck). Subroutine FLEXIN will generally be sub-
mitted as a source deck, however.
-------
Example 5 -3
Control Cards to Link Edit
Object Modules Into Load Modules
as the Overlay Segments
111111111122222222223333333333444444444455555555556666666666777
123456789012345678901234567890123456789012345678901234567890123456789012
7/LKE^ EXEC PGM=JE^7P^^rXRifT^i^LET»NCAL),TIME=(7,6), ^^^T
// REGION=150K
//SYSPRINT DD SYSOUT=A
//SYSLIB 00 DSNAME=SYS1.FORTLIB,DISP=SHR
//SYSLIN 00 DDNAME=SYSIN
//SYSLMOO DO OSN=A432701.SYM.BtUNIT=SYSLIBt
// VOL={PRIVATE,SER=LCGSA1I,DISP=,
// SPACE=(TRK,(30, ,2) I
//SYSUT1 00 UNIT=SYSQUEtSPACE=(TRK,C30,,2)),SEP=(SYSLIN,SYSLMODJ,
// DSNAME=£GDISKA
//SYSIN DD *
Insert object decks for SYMAPV5 (main deck) and the following
subroutines: TIMER, BLOCK DATA, VALID, LEVEL.
NAME ORGSYM
Insert object decks for: FLEXIN, INPUT, INVALS, INPTS, ININD,
INLINS, INFLAT, INCOVS, INLEGS, NUMCHAR, INBARS, INMAP.
NAME ORGB1
Insert object decks for: INIT, SHEPIN, DIMSET, INDXER, SORT,
LEVSET, LIMIT, PROGIF, STAND, PRDPTS.
NAME ORGB2
Insert object decks for: MAP, BORDER, SECTIN, LINE, OUT, LEGD,
ALINE, INSECT, GON, COVER, DATSYM.
NAME ORGB3
Insert object decks for: FLAT, BANDR.
NAME ORGC1
Insert object decks for: ICLOSE, BARIN.
NAME ORGC2
Insert object deck for: SLOPER.
NAME QRGD1
Insert object decks for: CONTOR, INFLSM, ININTP, BLANK.
NAME ORGD2
Insert object decks for: FINAL, HGRAM.
NAME ORGB4
* OS END OF FILE CARD
-------
illlllllll22222222223333333333444444444455555555556666666666777
123456789012345678901234567890123456789012345678901234567890123456789012
//ALLOC EXbC PliM=lLFbK14
//SYSPRINT DD SYSOUT=A
//UD1 DO DSN=A4-327G1.SYM
// VOL=700lt
MEMBER NAME=(ORGB1)
RECORD IDENT=(8 , «E3184000'»
MEMBER KA(^E=(ORG82>
RECURD IDENT=(8,'E02578COS
MEMBER NAME=(CRGB3)
RECURD IDENT=(8, •E0317100S
MEMBER NAME=(GRGC1)
RECORD IDeNT=(8,'E0328900'»
MEMBER NAME=(DRGC2)
RECORD IDENT=(8,'E0388000I,
MEMBER NAME=(CRGD1)
RtCORD IDENT={8,«E3395000t,
MEMBER NAME=(ORGD2)
RECORD IDENT=(8,«E0439400'f
MEMBER NAME=(ORGB4)
RECORD IDENT=(8,'EO^o5bOOl,
.a,CISP=(NEW,KEEP),UNIT=SYSLIBr
c=(TRK,(30,,2) )
MOC,REGION=150K
EP) ,VOL=SER=HU1292,UNIT=TAPE9T,
= 8CCC ,DEN=2) ,LABEL = ( ,M)
,DISP=(NEW,PASS),
=80tBLKSIZE=3200)t
11 ,MAXFLDS=11
73 ) ,FIELO=(80,1,,1)
73) ,FIELD=(80,1,,1)
73) ,FIELD=C80,1, ,1)
73) ,FIELD=(80tlf,1)
73 ) ,FIELD=(80,1,,1)
73) tFIELD=(80tL(,1)
73) ,FIELD=(80,lt f1)
73) ,FIELD=(8C,lf tl)
73 ) fFIELD=(8C,1,tl )
X
-------
//Cl tXtC FCRTHC f PAKM. FukT= • !\A>1E=SYM AP ,LIST ,DECK • ,LOADSET=C1
//FiJk f.SYSIN OO US N = C LL I iJ ( URGS YM ) , UN IT=SYSQUE ,DISP=(CLD,PASS)
/*
//C2 EXcC FuRTHCf PAR.«!.FJ1U=«LISTf DtCK' ,LOAOSET=C3
//FORT.SYS IN 00 DSN=CLLIB(QRGH2)rUNIT=SYSQUE,DISF=(OLD,PASS)
/*
//C4 EXEC FORTHC,PARM.FaRT='LIST,L)ECK« »LOAOSET=C4
//FORT.SYSIiM DO DSN=CLL I d ( GRGB3) , UN I T=S YSQUEt DI SP= ( GLD, PASS)
/*
//C5 EXEC FGRTHCfP4RM.FORT=«LIST,UECK•,LCADSET=C5
//FQRT.SYSIN DD DSN=CLLIB(ORGC1),UN IT=SYSQUEfDISP=(OLD,PASS)
/*
//C6 EXEC FORTHC,PARM.FURT= 'LIST .DECK1-, LOAD SET=C6, REG I CN. FORT= 3 50K
//FURT.SYSIiM DD DSN = CLL 16 (ORGC2 ) t UN IT = S YSOUE, D I SP= ( GLD, PASS)
/*
//C7 EXEC FQRTHC,PARM.FORT=lLISTtDECK1 ,LOADSET=C7
//FORT.SYSIN DD DSN=CLLI8(GRGD1),UNIT=SYSQUE,DISP=(OLD,PASS)
/*
—. ..-, .-.-..^^_..,... .. - .... . ... .... .... ._
//C8 EXEC FORTHCt PARM . FORT= • L I ST, DECK1 ,LOADSET = C8, REGI CN. FORT= 350K
//FORT.SYSIN DO OSN=CLLIB(ORGD2),UN IT=SYSQUE,DISP=(OLD,PASS)
/*
//C9 EXEC FORTHC,PARM.FOxT=•LIST,DECK1,LOADSET=C9,REGICN.FORT=350K
//FORT.SYSIN DO DSN=CLLIB(URGB4),UNIT=SYSQUE,DISP=(OLD,PASS)
/*
//LINK EXEC LKEO,PARM.LKED=(XKEF,LET,LIST,NCAL)
//LKEO.SYSLMGD DD DS.^ = A^3270 1 . SYM . B , DI SP=(OLD,KEEP ) ,UN I T=SYSL IB ,
// VOL=(PRIV4T£,SER=LCGSA1),SPACE=(1024,(400,200,2) )
//DD1 DU DSN=CltUNIT=SYSUUEfUISP=OLO
//DD2 DD DSN=C2,LHIT=SYSQUE,D1SP=CLO
//DD3 DD JSN=C3,UulT=SYi>JUE,DlSP = CLD
//D04 LD DSN=C4,UNIT=SYSQUE,CISP=CLC
//DD5 DU DSN=C5,U^ IT='5YSQLE,D1SP = CLD
//DUo UO DSN=C6,UNIT=SYSOUE,DISP=CLD
//DD7 DD DSpJ=C7,L)i-JlT=3YSQUE,DISP =
//DU3 DD DSN=C8,U!-nT=3YSOUt,CISP =
//DD9 CD DSN=C9,L!NIT = SYSQUE,DISP = CLD
//LKED.SYSIN UD *
Example 5-4
-------
Example 5-4
(Continued)
INCLUDE 001
NAME UHGSYM
INCLUDE D02
NAME ORGB1
INCLUDE DD3
NAME ORGB2
INCLUDE DD4
NAME ORG83
INCLUDE DD5
NAME OHGC1
i INCLUDE DD6
NAME QRGC2
INCLUDE DDV
NAMt ORGD1
INCLUDE DD8
, NAME ORGD2
£ INCLUDE DD9
"f NAME ORG64-
/* ' US END OF FILE CARS
NOTE: LOADSET refers to the dsname of SYSLIN in the compile steps. These
-------
The loading time (the time the linkage editor uses to
load systems programs and the SYMAP program) is approxi-
mately four seconds at the LCG. There is a significant efficiency
achieved by running several maps at once. Example 5-5 shows
a SYMAP submission as made at the LCG. This listing includes
the job control language that is brought in with the catalogued
procedures SYMCLG and SYMLINK1.
Since the OS job control language is tedious, it may be
time saving to set up the control statements necessary to
execute the program, with and without changes to the user sub-
routine, as catalogued procedures. This is particularly useful
when a large number of maps will be produced. Updates to the
various routines may be made by compiling the appropriate control
sections and link-editing them into the load module which contains
the proper segment. Basically the same method as is used for
the conversion of the user subroutine can be employed here.
It is recommended that the user familiarize himself with the
IBM Operating System Linkage Editor publication before attempt-
ing this operation.
5.3.4. Program Execution
To execute the program, the separate load modules which
contain the program segments must be rerlink-edited and the
overlay structure called in. The basic control cards used at
Harvard to load and execute the program with the correct over-
lay structure are shown in Example 5-6. In order to change
SUBROUTINE FLEXIN--or any other subroutine the user desires --
one compile step is needed for each program segment containing
routines to be changed. Each of the compilation steps is given
a step name and a load set name. The SYSLIN data set must
-------
11111111112222222222333333333344444444445555555555666666666677777777778
12345678901234567890123456789012345678901234567890123456789012345678901234567890
// EXJC SYMCLG, L:VCL=B
XX PRQC LEVEL=A,L = NL,PKiNT = fc, CARR = 9C01, TAP£. = SCRTCH,BPI = 2 , PLHC K = 15724,
XX REG=150
XXFORT cX'JC PGM = G,RFGICN=150K
XX SYS PRINT DO SYSCUT = A,r>CB= (LPr_CL = 120 ,C--CCFN'=PBA,BLKS IZE = 72CO)
XXSYSPUNCH DD S YSCUT = B , 5P AC E = { "B C, ( 200 , 50) , RISE ) *950 CARD ^AX*
XXSYSLIN HD DSNAM5=pLcX,UMT=SYSQUE,SPACe=(80r(2CO,50) , RLSC) ,
XX DISP=( , PASS) ,?CB=(LKCL=80,RECFM=FB,BLKSIZE = 3£00)
OOCCCOOO
00000010
00000020
..QPOOQ.030_
00000040
X00000050
00000060
//FORT.SYSIN CC *
0001
CCC2
0003
XXLK5C £X^-(
XXSYSPRINT
XXSYSLI3
XXSYMLI3
XXSYSLMOT
XX
XXSYSLT1
XX
XXSYSLIN
XXD01
XXCATIN DD
JEWCCOO
lE^OCCO
lEVyCOOO
IEWCCOO
IE1«CCOO
I EiWCCCO
IEWOCOO
1EWCOOO
ICWOCCC
SUBFQUTIN5- FLtXIN
rn
DD
no
CD
ro
CD
fREGIQN=£R£G,TIM
= A,DCB=(LRrCL = 121,RECF^=FBV,BLKS IZE=3
DSNAME=SYS' .FCRTLIB,0 ISP=SHR
E={0,15!
50C)
BT(MAIN),UNIT=SYSOUE,CISP=(,PAS
SPACtX i024, (200,20,?. ) ,
CSNAM:=Q&I ISKA,UMT=SYSQUE,
SEP=$YSLMPO
CCNAME=CATIN
; = FLv.X,UMT=SYStUF , 0 I SP = ( OLD , Ol'LtTT )
S),
(200,10)),
CRGB
INCLUDE CC1
INCLUTt SYMLIB(QRGP1)
iIV'' r-"- L £Y C DG 3
Ii-iCLUr-" SY^LI 'M GDGf?2 )
.'JVERL-Y LPOB
IUC LUC. - c. Y M L I tf ( U K G R 3 )
IV." R LAY C-'oC
C0000070
00000080
00000090
OOOC0100
X.00000110
00000120
X00000130
00000140
OOOC0150
00000160
00000170
E00018C.O
E00019CO
FOOQ2000'
EOC02100'
EC002200i
fc0002 3 CO;
50002'i-OQ,
E0002500
-------
i •?- ;* c coo
I EVvOCOO
I xUCCCO
I cvvccoo
IEWCCOC
IrWCCOO
IF-WCCOC
IE4CCOO
irjf. LUr- S YML I J ( QRGC1 )
1V L: i L A Y CROC
ir.'CLUCE SY^L I H ( ORGCZ )
UVrRLAY CPGTJ
INC LUC F- SYMLIH(CF.G01 )
JVC* LAY C PGO
IIMCLUCi. SYMLI6( ORGH2 )
jVTRLAY CFGS
INCLUC?; SYMLIdiOPGB*)
"-JNTRY i
XXGO EXEC PGM=
XXFTC1F001 DD
XX DISP=<,DrLcTd
XXFT02F001 DD
XX DISP=(,T
XXFTC3FOOi DD
XX
XXFTC4F001 ;-'D CSNAMf =;
XX
XXFTC5FC01 n CCNAME=SYSIN
XXFTC6F001 Hj SYSCUT=( &f P. INT, ,&C^PP) ,DCB= ( KECFM= FBA , LR ^ CL = i32 ,
XX BLKS!ZE = 72oC ,BUFNC = 1)
XXFTC7F001 "0 SYSCUT=B,SPACt=(30,(39,1}7),RLSE,CONTIG),DCB=(RFCFM=F3,
XX L*_CL=8Q,3LKSIZE = 3?:00)
= SYSQUEf SPAC6=(TP.K, (2Ct 10)
^fDUFMu
(20,!0)
) , DCB=*.FT01F001
3»UMT = SYSQUEt SPACE=(TRK, (20,10) )
) ,DCB = *.FT01F001
A ,UM T = SYSCUL f SPACE= (TP K , ( 20t 1 0) )
,DISP=( ,PA'SS-)
XX VCL = l ,RiI-TA!N
XX
XXFTC8FOOZ OD C
XXFTC-5F003 DD C SNAMF.= F003 ,
XXFTC8FCO- OJ CSNAME=FOO^,
) ,DISP = ( , PASS) ,
HC B = ^ . FT08 F001
XX
XXFTC8FC05 OD
XX
XXFTC3F006 ^D
XX
XXFTC-3FC.n JO
XX
XXFTC8Fi.03 TO
XX
XXFTCbF009 ,,D
XX
PH
= * .FTC 6FOC3
,OISP=( , PASS) ,
B=>* . FTO& F001
00000180
XOOOCDl^O
oOfOppzob-
XO 0000210
""OOOOTQ220
X00000230
00000240
XOOOC0250
00000260
OOOC0270
X00000280
000002=0
OOOC0300
00000310
XOOOC0320
OOOC0330
- 0-QDC03AO
JXCOOC0350
'•'000003^0
X00000370
'''•'. 00000380
-i'XvOOOCC390
- " OOOOOAOO
,DISP=( ,PASS) ,
"00000^2-0
XCOOOOA30
= FC )7,L/&bZL = (7,&L),OI5P=( ,P4SS) ,
t = K_F=-' .FTGcFOO-3,DCB=*.FT08F001
VJLUM -: = -'^.F = v .FTCtFCC7,CCB = *
C S-JAMF=CC 'Jr , LABU L= ( G ,&L ) , J I S F= ( , PASS ) t
' MY
XCOOQ0450
00000^60
XG0000^70
oooco^eo
XOOCCC490
000005,00,
000 CO 5 20
EOOO27CO
-OO02BCO
t00029OO
F 0 0 0 3 0 CO
E0003100
P00032CO
E0003300
E0003500
-------
Example 5-6
Job Control Language to Load and Execute SYMAP
11111111112222222222333333333344444444445555555555666666666677
12345678901234567890123456789012345678901234567890123456789012345673901
//LKED EXEC PGK=IEWL, PARM=< LET, LI ST ,OVLY) ,REGIDM=150K,TIME=( 0 , 1 51
//SYSPRINT 3D SYSOUT=A,DCB= (LRECL=1 21, RECFM=FBM,BLKSIZE=3509)
//SYSLIB DO DSNAME=SYS1.FORTLIB,DISP=SHR
//SYMLIB DO DSN=A432701.SYM.B,DISP=SHR
//SYSLMOD DO DSNAME=£SGOSET(MAIN) , UNIT=SYSQUE, 01 SP=< , PASS > t
// SPACE=(102
-------
SYA1AJP subroutines with, edited subroutines
11111111112222222222333333333344444444445555555555666666666677
12345678901234567890123456789012345678901234567890123456789012345678901'
//SI EXEC FORTGC,LOADSET=SltFARM.FORT=«DECK,LIST*
//FORT.SYSIN DO *
Altered Source Deck of FLEXIN, INPUT, INVALS
/*
//S2 EXEC FORTGC,LOADSET=S2tPARM.FORT=tDECK,LlST)
//FORT.SYSIN DD *
Altered Source Decks of LEGD and DATSYM
/*
// EXEC SYMCLG,LEVEL=B,FARM.LKED=(LET.OVLY.XREF,LIST,MAP),REG=150K
//FORT.SYSIN DD *
SUBROUTINE FLEXIN
RETURN
END
/* OS END OF FILE CARD
//LKED.SYSLIN DD DCNAME=SYSIN
//SI DD DSNAME=S1,DISP=(OLD,DELETE)
//S2 DD DSNAME=S2tDISP=(OLD,DELETE)
/*
//LKED.SYSIN DD *
INCLUDE SYMLIB(ORGSYM)
OVERLAY ORGB
INCLUDE SI
INCLUDE DD1
-------
Example 5 -7
Job Control Language to Override
SYMAP subroutines with edited subroutines
11111111112222222222333333333344444444445555555555666666666677
12345678901234567890123456789012345678901234567890123456789012345678901-
//SI EXEC FORTGC,LOADSET=SltPARM.FORT=«DECK,LIST»
//FORT.SYSIN DO *
Altered Source Deck of FLEXIN, INPUT, INVALS
/*
//S2 EXEC FORTGCtLOADSET=S2tPARM.FORT=(DECK,LIST)
//FORT.SYSIN DO *
Altered Source Decks of LEGD and DATSYM
/*
, // EXEC SYMCLGtLEVEL=B,PARM.LKED=(LET,OVLY,XREF,LIST,MAP)tREG=150K
SJ //FORT.SYSIN DO *
•f SUBROUTINE FLEXIN
RETURN
END
/* OS END OF FILE CARD
//LKED.SYSLIN DO DCNAME=SYSIN
//SI DD DSNAME=S1,DISP=(OLD,DELETE)
//S2 OD DSNAME=S2,DISP=(OLD,DELETE)
/*
//LKED.SYSIN DD *
INCLUDE SYMLIB(ORGSYM)
OVERLAY ORGB
INCLUDE SI
INCLUDE DD1
-------
OVERLAY ORGB
INCLUDE SYMLIB (ORGB 2)
OVERLAY GRGB
INCLUDE S2
INCLUDE SYMLIB(ORGB3)
OVERLAY ORGC
INCLUDE SYMLIB(ORGCl)
OVERLAY ORGC
INCLUDE SYHLIB(ORGC2)
OVERLAY OR GO
INCLUDE ? SYMLIB (ORGDl)
OVERLAY ORGD
INCLUDE SYMLIB(ORGD2)
INCLUDE SYMLIB(ORGBA)
ENTRY SYMAP
/*
//GO.SYSIN DO *,DC8=BUFNO=1
/* OS END OF FILE CARD
This example shows a program running with changes to FLEXIN, INPUT, INVALS of
segment two and LEGD and DATSYM of segment four.
It assumes that SYMLIB defines the data set which contains the previously link-edited
program segments of SYMAP, with the naming conventions established in the previous
examples.
LOADSET refers to the dsname of SYSLIN in the compile steps. These loadset names
-------
have either a keep or pass status. Then the changes may be
specified to the linkage editor by including the data sets output
by the compiler. This output should be link-edited into the
appropriate overlays before the inclusion of the data set which
specifies the load module. (See Example 5-7)
5.4. PRINTER INFORMATION
5.4.1. Spacing of Rows of Output
Most line printers print at six lines per inch. A number
of computer facilities do not have the ability to print 8. 0 lines
per inch, the standard used for SYMAP. There is an elective
in the program to change the line spacing, but if the standard
is to be other than b. 0, it is desirable to change the standard
in the program. This can be done by changing the 8. 0 on card
E0209100 to 6. 0 or whatever number is desired.
5.4.2. Carriage Control Characters for Overprinting
To be able to use overprinted symbols on the map the
computer which does the printing must have a,n instruction for
overprinting. There is an elective to change the method oi
overprinting if it is done differently than on the IBM 360. On
the 360 a blank control character is interpreted as "space and
then write", and control character '+' indicates "do not space
before writing". The first line has a blank control character
and the following three a '+' control character. Elective 26
of the F-MAP package can be used to specify a non-standard
method of overprinting: three lines with control character ' + ',
indicating "write and do not space", followed by one line with
a blank control character, indicating "write and space".
-------
The other carriage control characters employed are a 'I1
for "skip to a new page", and 'O1 for "skip a line".
5.4.3. Printer Carriage Control Tape
A special carriage control tape must generally be used
for printing SYMAP output, particularly in the case of maps
which are greater than one page in length. With a standard
carriage tape, the printer will leave a gap at the bottom of
every page--this will leave gaps in the map. Printers which
have the option of running at 6. 0 or 8. 0 lines per inch will
fail to skip to the top of a page if a standard 6-line-per-inch
carriage tape is used for printing 8-line-per-inch output.
At Harvard a "special SYMAP carriage tape" is requested as
part of the job control language -- the number of the carriage
control tape is 9901. This carriage tape is set up so that
ejection places the paper at the top of a new page (88 lines for
the entire tape) when printing at 8 lines per inch; the paper is not
ejected at the bottom of a page (no punch in the 9-channel on
most machines). A different tape would have to be used for
printing at other than 8 lines per inch.
-------
6. THE "SYMVU" PROGRAM
6.1. INTRODUCTION
SYMVU is a computer graphics program written for
the purpose of generating three dimensional line-drawing
displays of data. The SYMVU program is usable by persons
with very little programming experience. Only three control
cards are necessary for the generation of the graphic displays.
Thirty-two electives or options are built into the program
allowing for considerable flexibility in generating the displays
of data. However, only seven of these options are absolutely
necessary for the production of a single display.
SYMVU is most commonly used for quantitative geo-
graphic mapping purposes. Unlike contour mapping, SYMVU
illustrates the absolute values of spatially continuous data.
Contour maps (or isoline maps) use rounded intervals for
mapping displays of quantitative information. In the case of
SYMVU absolute values of a continuous surface are illustrated.
The SYMVU program also has the capabilities of conformant
and proximal mapping using data generated by the SYMAP
program.
One of the distinct features of this program is that
it accomplishes the task of deciding which parts of the object
being viewed are seen and which are hidden from view.
The program is written in FORTRAN-IV and is currently
being operated on the IBM 360-65 using 220K memory. The
output device that draws the illustrations is a Cal-Comp
plotter. Runs have been successfully completed on both an
11 inch and 30 inch plotter, although, because of a number
-------
of size constraints within the program, a 30 inch plotter
presently has little advantage.
b. 1. 1. Basic Principles
The program utilizes data which is in the form of a
grid matrix. This matrix information can be generated in
either of two ways.
The first and most common alternative is to utilize
data generated by the SYMAP program as a two dimensional
graphic display. SYMAP interpolates data from point or area
locations so as to produce spatially continuous surfaces
organized in the form of a grid matrix. This data can then
be utilized by the SYMVU program for producing three-
dimensional graphic displays.
The second alternative involves providing data directly
in a matrix form, either on cards or tape.
b. 1.2. Required Input
To obtain a graphic display the user must provide
three primary control cards and has the option of providing
three other sets of control cards and a user subroutine. The
required control cards are:
(i) Title Card 1 Card 1 is the title card. One has the
flexibility of writing up to 72 characters describing the title
of the particular plot that he is generating. It is important
that this title be clearly descriptive to differentiate the par-
ticular map being requested from all other maps of a similar
nature which have been run previously or which may be run
in the future;
-------
(ii) Elective Card 2 This card has the primary variables
that specify the number of rows and columns of the
matrix and the type of view. It also has a number of other
variables concerning the input of data, symbols, scales, and
the area outside the study area.
Elective s 2-1, 2-2, and 2-4 must be specified for the program
to run; and,
(iii) Elective Card 3 This card has the primary variables
that control the size and viewing angles of a plot. It also
has a number of other variables concerning the minimum and
maximum value constraints, viewing distances for non -orthogonal
views, step sizes, symbol sizes, and block sizes. Electives
3-1, 3-2, 3-3, and 3-4 must be specified for the program to
run.
Each card has a different format specification. The
first card is completely flexible using the "A" format. The
second card requires an "I" format (no decimal point). The
third card requires an "F" format (decimal point required)
on all electives specified. The content and specifications for
each elective are described in the following pages. Examples
'• ' , ,'..':.'
provided to illustrate some of the options within the
e optional contr.ol, caddis are used if the data matrix
is. oijr satjds .-iP'r. if symbols" or legends, are desired on the plot.
Subfcouifin^ IData^ is used to, rpanipulate the valuesvto.be plotted
or t& &ea$ 2ft a data matrix 'on1 cards..
211 pf th» SYWAB program has been used
to gepe3!a!f§ '& tape: Containing Sie, required ', data' matrix, then
elfectfogg Zv&&:and 2 r 18 must "be. Specified for the program to
run,
-------
6.2. ELECTIVE CARD 2
Card 2 has 22 electives. All variables on this
card are specified with an "I" format (no decimal point
should be used) and should be punched right-justified.
Electives 2-1, 2-2, and 2-4 must be specified
for the program to run.
6.2.1. Elective i2-l: Rows (Cols 1-4)
This elective is used to specify the number of
rows (excluding border) in the data matrix to be plotted.
The maximum number of rows at present is 130. Specify
the number of rows in columns 1 through 4 right-adjusted.
This elective must be specified or the program will not
function correctly.
6.2.2. Elective 2-2: Columns (Cols 5-8)
This elective is used to specify the number of
columns (excluding the border) in the data matrix to be
plotted. The maximum number of columns at present is
130. Specify the number of columns in columns 5 through
8 right-ad justed. This elective must be specified or the
program will not function correctly.
If an incorrect number of rows and/or columns
have been entered, one of the following will occur:
(i) If the number punched is less than the correct
number on file, only the part of the map specified will be
plotted.
-------
(ii) If the number punched is greater than the correct
number on file, the program will terminate.
6.2.3. Elective 2-3: View (Col. 12)
This elective is used to specify the type of
projection that is desired. The SYMVU program is
capable of drawing isometric projections, two-point per-
spectives, and planometric projections.
The isometric projection is generally the most
useful for geographic data. The two-point perspective allows
for dramatic visualization, particularly for topographic
surfaces on landscape. The planometric view preserves
right angles, and therefore the true shape of the map.
To specify isometric projection, punch a one in
column 12. If a two-point perspective is desired, punch a
two in column 12. If a planometric projection is desired,
punch a 3 in column 12. If no specification is made the
program assumes that an isometric projection is desired.
6.2.4. Elective 2-4: Line Type (Col. 16)
This elective is used to specify the direction of the
lines to be drawn. The program has the capability of
plotting the lines along three different axes: along the
columns, along the rows, or on either diagonal of the
matrix.
Generally, the option of diagonals is specified be-
cause this enables the maximum number of lines to be
plotted on the drawing. However; for certain azimuth
-------
angles, the view looks far better if the lines are drawn along
the rows or the columns. Normally any angle chosen between
330 and 30 degrees or 150 and 210 degrees should be drawn
along rows Whereas, when the viewing angle is between 60
and 120 degrees or between 240 and 300 degrees the lines
should be drawn along the columns. All other angles should
utilize the diagonal option. Example 6-1 illustrates these
optimum azimuth angles for viewing.
If lines are desired along columns (required if the
azimuth number is equal to 90 or 270 degrees) specify one
in column 16. If lines are desired along rows (required if
azimuth is 0 or 180 degrees) specify two in column 16. If
lines are desired along diagonals specify four or five in
column 16. This elective must be specified or the program
will not function correctly,
6.2.5. Elective 2-5; Smooth (Cols 17-20)
This elective is used to specify the number of bin-
omial smoothings of the data desired. This option is rarely
used; it is of some significance for graphically portraying a
topographic surface based on discreet point observations which
often exhibit great local variance. Specify the number of
smoothings desired in columns 17 through 20. Any number of
smoothings can be specified, but eventually the surface will
look like a flat plane.
6.2.6. Elective 2-6: Repeat (Col. 24)
This elective is used to specify whether the data from
the previous plot is to be retained, or a new data set read in.
The program can use the same data for a number of plots with
-------
Diagonals
210 231.3*
Example 6-1
Azimuth Orientation System
-------
Example 6-1
(Continued)
* A view chosen from any of these angles will produce
plotted lines which are perpendicular to the lines of sight
and are therefore parallel to the bottom edge of the paper.
The appropriate line type must be specified:
Angle Line Type
0, 180 rows 2
90,270 columns 1
51.3,231.3 diagonals 5
128. 7,308. 7 diagonals 4
Note also that the diagonal type to be used for
angles between 30 to 60 and 210 to 240 is "5", whereas the
type between 120 to 150 and 300 to 330 is "4 ". When angles
such as 51.3 and 128.7 are specified in Elective 3-2: Azimuth,
the angle as printed on the output will be rounded off to the
nearest whole number: 51 and 129.
-------
different angles and elevations. To read in a new data set,
specify a zero in column 24; to use a previously read data
set, specify a one in column 24. If no specification is made
the program assumes that the plot is to be drawn utilizing a
new data set..
6.2.7. Elective 2-7: Lnint (Gols 25-28)
This elective is used to specify which of the lines are
to be plotted. Specify two for every second line, three for
every third, etc. as an integer right-justified in columns 25-28.
3f no specification is made the program assumes every line
should be plotted.
6.2.8. Elective 2-8; Nozero (Col. 32)
This elective is used to specify the symbolism outside
of an irregular outline study area. When the SYMAP program
is used for generating SYMVU data, an irregular outline
often occurs instead of a rectangular grid of matrix values.
This elective allows for flexibility in determining what
should be done with the areas outside of the outline. One
may choose to plot the non-study area with lines; in this case
the area appears as a flat surface. A second option is to
delineate the non-study area with both flat lines and a shading
of symbolism such as "x's" ; this usually gives the
appearance of a very solid or heavy base. A third alternative
is to delete the non-study area; this is visually the weakest
in that the illustration appears to be a suspended surface. (Note
that when the non-study area is plotted with lines, the program
assigns zero values to the part of the matrix outside the study
-------
area. This results in the "up lifted" surface appearance
on study areas having irregular outlines.)
To plot the non-study area as 'zero lines', specify
zero in column 32. To delete the non-study area, specify
1 in column 32. To darken the non-study area with light
symbolism so as to look white specify 2 in column 32; to
darken the non-study area with dark symbolism, specify 3
in column 32. If no specification is made the program
assumes that a non-study area should be plotted as zero lines.
6.2.9. Elective 2-9: Sqrtt (Col. 36)
This elective is used to specify that the square roots
of all values in the data matrix should be calculated and used
as the values to be plotted. This has the effect of reducing
the relative importance of extreme values. This particular
elective is useful for a large range of data where smoothing is
possible not only for the higher values but also for the lower
values. (For example, if one is studying the population
density in a region surrounding New York City, the peaks
of population on Manhattan Island would have the effect of
blocking out any detail occurring in the areas surrounding the
city. By taking the square root of the data the surrounding
surface variations would appear more distinguishable. )
To take the square root of all values, specify a 1 in column
36.
6.2.10. Elective 2-10: Sameh (Col. 40)
This elective is used to specify the same vertical
scale factor as the preceding plot. It is often employed when
a number of plots are being made in a time series of data
-------
and it is desirable to have maps comparable in vertical scale.
To specify that the same "Z" scale factor should be used
as was used on the preceding plot, place a 1 in column 40.
6.2.11. Elective 2-11: Endlin (Col. 44)
This elective is used to specify that the endlines
circumscribing the plot be deleted. To delete the endlines,
specify 1 in column 44.
6.2.12. Elective 2-12: Symap (Cols. 45-48)
This elective is used to specify the number of vertical
lines per inch contained in the input matrix.
•
If the data matrix was produced by the SYMAP
program, the output is normally in an 8 by 10 grid module;
there are eight vertical lines per inch. The module of the
SYMAP program is based on the two dimensions of the
character symbols common in most line printer devices.
SYMVU has the capability of reading in data which has a ver-
tical dimension of 6 lines, 8 lines, or 10 lines per inch.
This flexibility allows for types of input other than the SYMAP
program. If the GRID program is used, an equal-sized cell
is the module of the matrix. In this case equal scales for
the horizontal and vertical dimensions of the matrix should
be specified for SYMVU.
To specify the number of lines per inch, punch either
a 6, 8, or 10 right-adjusted in columns 45 through 48. Jf_
no specification is made the program assumes equal scales
for the horizontal and vertical dimensions of jgput.
-------
6.2.13. Elective 2-13: Leg (Col. 50)
This elective is used to specify the deletion of the
control information normally written out on a SYMVU plot.
This information includes the elevation angle, the azimuth
angle, and the scaling information. To delete this infor-
mation from the plot, specify a 1 in column 50.
6.2.14. Elective 2-14: Nscal (Col. 52)
This elective is used to specify that a height scale
legend should appear to the right of the plot. This scale has
measurements in inches written on the left side and the
corresponding "Z" value on the right side. At the top of
the scale the greatest height and the corresponding "Z" value
are shown. To call for this height scale legend, specify a
1 in column 52.
6.2.15. Elective 2-15: Flp (Col. 56)
This elective is used to specify that a floating plane
is desired as part of the plot. To include a floating plane,
specify a 1 in column 56.
6.2.16. Elective 2-16: Base (Col. 60)
This elective is used to specify whether a base on which a
topographic surface can rest should be deleted or constructed.
When the data for this type of surface is in a rectangular
grid matrix (no irregular outlines) the bottom line of the base
is determined by the lowest value plotted in the surface.
When an outline is used within the matrix (zero values are
being plotted),, the program determines the appropriate ver-
-------
tical dimension of the base. This has e can help in identify-
ing the geographic relationships of the study area.
To delete the base from the plot, specify a 1 in
column 60. To include a complete base underneath an
irregular outline, specify a 2 in column 60. To place the
surface on a block, specify a 3 in column 60. Use Elective
3-10: Size to specify the height of this block. If no specifi-
cation is made the program assumes an irregular base under
an irregulay outline; when a full rectangular matrix of values
is being plotted, the program will normally construct a base
on which the total surface can rest. In this case the base
is determined by the lowest value being plotted.
6.2.17. Elective 2-17: Pltdot (Cols. 61-64)
This elective is used to specify the number of symbols
that will be located on the plot. The SYMVU program has the
capability of plotting certain symbols geographically on the
surface; normally the program is limited in vocabulary to
five types of symbols. (The program can be altered slightly
to change or manipulate the size and type of symbol as discussed
in Elective 3-9).
Symbols are often used for locating certain phenomena
such as political boundaries, population concentrations or
other geographic features. They have also been used for
drawing legends such as north arrows. This elective
specifies the number of symbols or plot dots that the pro-
gram is to read in. The exact coordinate or geographic
locations by row and column, as well as the actual symbol
type for each symbol, are specified on a series of data input
-------
cards following the three main control cards. These are
discussed in the section on optional data cards. The symbol
types are shown in Table 6-1.
Specify the number of symbol points to be used, right-
adjusted in columns 61 through 64.
If no specification is made the program assumes that there
are no symbol points to be plotted.
6.2.18. Elective 2-18: Fdata (Cols 65-68)
This elective is used to specify the data input type
and file number. The SYMVU program uses data from SYMAP
output unaltered and other data through a user-written sub-
routine.
Normally a tape is created by Elective 21 of the
SYMAP program which contains the data matrix to be plotted.
A number of data matrices are often created on the same
tape with each matrix specified on a separate file. Elective
2-18 of the SYMVU program is used to specify the file on
the tape that is to be plotted.
If the data matrix is to be supplied through a user-
written subroutine, specify a zero right-adjusted in columns
65 through 68. If the data matrix is on a SYMAP output
unit, specify the file number right-adjusted in columns 65
through 68. If no specification is made the program assumes
that the data matrix will be read in by a user subroutine.
-------
6.2.19. Elective 2-19: Namin (Col. 72)
This elective is used to specify that the values falling
below a predetermined minimum should be set equal to that
minimum value. Elective 3-5 is used to set the minimum
value to be used by the program.
Specify a 1 in column 72 to set the values below
a predetermined minimum value to that minimum. Elective
3-5 will be ignored if it is used without this elective. If no
specification is made the program assumes the actual values
should be plotted.
6.2.20. Elective 2-20: Namax (Col. 76)
This elective is used to specify that the values falling
above a predetermined maximum should be set equal to that
maximum value. Elective 3-6 is used to set the maximum
value to be used by the program.
Specify a 1 in column 76 to set the values above a
predetermined maximum value to that value. Specify a 2 in
column 76 if the values above the maximum specification are
not to be changed but the maximum value specified in Elective
3-6 is to be used in conjunction with the height in Elective
3-4. Elective 3-6 will be ignored if it is used without this
elective. If no specification is made the program assumes
the actual values should be plotted.
When the value extremes are so great as to minimize
the variation in the rest of the data values both electives 2-19
and 2-20 should be used.
-------
6.2.21. Elective 2-21: Korm (Cols. 77-78)
This elective is used to specify a value which may
be used in SUBROUTINE DATA to identify the appropriate
data set to be manipulated. Specify an integer number (from
1 to 99) in columns 77-78. If no specification is made the
program assumes that no more than one data set is to be
manipulated in SUBROUTINE DATA.
6.2.22. Elective 2-22: Nleg (Cols. 79-80)
This elective is used to specify the number of text
legends to be plotted in each SYMVU. The maximum number
is 50. The text legends are discussed in the section on
optional data cards.
Specify the number of text legends to be plotted right -
adjusted in columns 79-80. If no specification is made the
program assumes that there are no text legends to be plotted.
-------
6.3. ELECTIVE CARD 3
Card 3 has 10 electives. All variables on this card
are specified with an "F" type format (they require a decimal
point in all field specifications). They should be punched
right-justified; this is not mandatory as it is with the "I"
format on card 2.
Electives 3-1, 3-2, 3-3, and 3-4 must be specified
for the program to run.
6.3.1. Elective 3-1: Altitude (Cols. 1-5)
This elective is used to specify the elevation of the
viewing position above the horizontal plane. Specify the view-
ing position in angle degrees in columns 1 through 5. This
elective must be specified or the program will not function
correctly.
For general purposes, a good height to begin experi-
mentation with is 45 degrees. For most cases, this gives an
optimum view of the surface as well as a good relationship
between the lines and the white space which separate them.
A zero to five degree view of a landscape topographic surface
normally is quite close to eye level viewing whereas, those
views nearer to 45 degrees appear to the observer as birds-
eye views.
For most purposes visual variation in the topographic
surface is primarily a function of the white space between the
delineated lines. Because the only variation in line direction
occurs in the vertical dimension the maximum variation in a
line occurs at the altitude of zero degrees; generally, this
angle hides much of the study area because of the hidden line
factor in the program.
-------
6.3.2. Elective 3-2: Azimuth (Cols. 6-10)
This elective is used to specify the desired horizontal
angle of direction for viewing. Specify the azimuth viewing
angle in degrees right-adjusted in columns 6 through 10.
This elective must be specified or the program will not
function correctly.
The SYMVU program can rotate any data matrix
360 degrees when using an azimuth orientation system. When
one specifies a zero azimuth, he is looking perpendicular to
the bottom of the study area. As he rotates his viewing
position towards the left, he is increasing toward 360 degrees.
At 90 degrees, he is looking perpendicular to the left hand
side of the matrix. At 270 degrees, he is looking at the
right hand side of the matrix, etc. Example 6-1 shows the
azimuth orientation system used for SYMVU.
6.3.3. Elective 3-3: Width (Cols. 11-15)
This elective is used to specify the width, in inches,
that the input matrix will have on the plot. There are two
scaling variables in the SYMVU program: the width and height.
The width refers to the distance along the bottom side of
the matrix (the columns of the input matrix). Under normal
situations, the width dimension and the height dimension when
combined, should not exceed 11 inches.
Specify the width in inches right-adjusted in columns
11 through 15. This elective must be specified or the program
will not function correctly.
-------
6.3.4. Elective 3-4: Height (Cols. 16-25)
This elective is used to specify the height, in inches,
that the input matrix will have on the plot. Specify the
height in inches right-ad justed in columns 16 through 25. If
you specify 0. 0, the height will be set to 3. 0 inches. Any
practical height greater than 0. 0 may be specified, but the
combination of width and height should not exceed 11 inches.
This elective must be specified or the program will not
function correctly.
6.3.5. Elective 3-5: Amin (Cols. 26-35)
This elective is used to specify the minimum value
that the program should use for plotting. The user normally
specifies this elective when an extreme minimum value point
occurs within the data matrix. Specify the minimum value
desired right ^adjusted in columns 26 through 35. If no
specification is made the program assumes that the actual
minimum value should be used for plotting. This elective is
ignored unless Elective 2-19 is also used.
6.3.6. Elective 3-6: Amax (Cols. 36-45)
This elective is used to specify the maximum value
that the program should use for plotting. When extremely
high values occur within the data matrix, this elective is
used for controlling or truncating those values. Specify
the maximum value desired, right-ad justed in columns 36
through 45. If no specification is made the program assumes
that the actual maximum value should be used for plotting.
This elective is ignored unless Elective 2-20 is also used.
-------
In connection with Elective 2-20 and Elective 3-4, this
elective may be used to set the height equal to some specified
value (the maximum value) but allow the actual maximum
value to be used for plotting. This is particularly useful for
a set of plots where a uniform value scale is desired.
6.3.7. Elective 3-7: Vdist (Cols. 46-50)
This elective is used to specify the viewing distance
for perspective drawings. The option controls the distance
from which one observes a given perspective. As one moves
back from the illustration (in other words, increases his
viewing distance) the ends or the corners of the drawing are
usually spread out farther relative to the center line. With
a shorter viewing distance the focus is primarily on the
center of the data matrix. This variation is most readily
seen when the altitude angle is very low, such as when the
altitude is near eye level on a natural landscape drawing.
When the altitude is very high, such as 45 or 50 degrees,
variation caused by the viewing distance is relatively small.
Specify the viewing distance in inches in columns
46 through 50 right-ad justed. If no specification is made the
program assumes a viewing distance of 10. 0 inches; this
option is used only with perspective views.
6.3.8. Elective 3-8: Step (Cols. 51-55)
This elective is used to specify non-standard plotter
step size. This elective is rarely used but can be employed
to reduce calculating time with a commensurate loss in
detail and smoothness of line segments. Specify the step
-------
size in inches in columns 51 through 55 right-ad justed. If
no specification is made the program assumes a standard
step size of 0. 005 inches.
6.3.9. Elective 3-9: Sepsm (Cols. 56-60)
Elective 3-9 This elective is used to specify non-
standard sizes of the symbols (plot dots or legends) used on
the drawing. Specify the actual size in inches right-adjusted
in columns 56 through 60. For normal purposes, the standard
scale factor is adequate. With the exception of symbol
number 14 which is larger, (see Table 6-1) the standard
symbol size is 0. 25 inches. Occasionally for specialized
purposes, the user may find it advantageous to vary the size
of the symbol he is working with. If no specification is
made the program assumes a standard symbol size.
6.3.10. Elective 3-10: Size (Cols. 76-80)
This elective is used to specify the height of a
block placed under the study area. This elective is used
along with elective 2-16 (BASE) when BASE = 3. Specify right-
justified in columns 76-80 the height you want the block in
inches up to a maximum height of 0.75 inches. If no
specification is made the program assumes a standard height
of 0.5 inches when BASE = 3 in Elective 2-16.
-------
6.4. OPTIONAL DATA CARDS
There are a number of optional data cards that can
be specified for the SYMVU program:
(i) If the data matrix is to be read in from cards instead
of tape, for each row of the matrix one or more cards are
needed containing the values for the columns in the row;
(ii) For each symbol to be plotted a card is needed con-
taining the location and symbol type; and,
(iii) For each legend to be plotted a card is needed con-
taining the location and legend text.
These cards follow directly after Elective Card 3 and must
be in the above order.
fa.4.1. Data Matrix on Cards
If the data matrix is to be submitted to the computer
from cards instead of tape, the card deck for the entire
matrix follows immediately after the third control card.
Normally, the program uses tape inputs.
The cards are read in under a format specified in
Subroutine Data. There will be one record--on one or more
cards--for each row sequentially from the top to the bottom
of the matrix; each record will contain a value for each
column sequentially from the left to the right of the matrix.
b.4.2. Symbol Points
For each symbol to be plotted, the row measurement,
the column measurement and the symbol 'type1 must be
-------
specified on one card. Coordinate measurements must be in
terms of the input grid to SYMVU. If SYMAP is used to
create the input tape to SYMVU, these measurements in rows
and columns should be copied from the table immediately
preceding the map produced by SYMAP, to plot data points.
Specify the row measurement right-adjusted in columns
1 through 10 using an "I" format (no decimal point) and the
column measurement in columns 11 through 20, also right-
adjusted using an "I" format. The symbol type should be
specified in columns 29 through 30, right-ad justed using an
"I" format. Table 6-1 shows the symbols that may be used.
If columns 29 through 30 are left blank, the default symbol
is 14.
The total number of plot dots must be specified in
Elective 2-17.
6.4.3. Legends
For each legend to be plotted, the row measurement,
the column measurement, and the actual legend text must be
specified on one card. Coordinate measurements must be
in terms of the input grid to SYMVU. If SYMAP is used
to create the input tape to SYMVU, these measurements in
rows and columns should be taken directly from the map
produced by SYMAP.
S
Decify the row measurement right-adjusted in columns
10 using an "I" format (no decimal point) and the
1 through
column measurement in columns 11 through 20, also right-
adjusted using an "l" format. Columns 30 through 54 are
-------
Table 6-1
SYMBOL POINTS
If you want
this symbol Specify in Columns 29-36
A
02
03
11
14
21
If columns 29-30 are left blank the default symbol is 14.
-------
used for the desired text legend; however, this should be
left-justified so that the first legend character will be in the
column specified in columns 11 through 20.
The total number of legends must be specified in
Elective 2-22.
6.5. SUBROUTINE DATA
This Fortran Subroutine can be used to manipulate
the Z-values and return the data to the program in the form
that SYMVU will accept. Subroutine Data is also used to
read in data from a data matrix on cards.
Columns 1111111111222222222233333333334
1234567890123456789012345678901234567890
SUBROUTINE DATA(X,IR,1C,IFORM)
DIMENSION X(130)
READ(5,1000) (X(I),1=1,130)
1000 FORMAT(40F2.0/40F2.0/40F2.0/10F2.0)
DO 101=1,130
10 X(I)=X(I)*2-1.
RETURN
END
For the example shown:
-- X(130) returns the values for one row of the matrix at a
time to the program;
--IR is the number of the row to be read in and returned;
--1C is the number of columns (or Z-values) per row, read
in by Elective 2-2; and,
-------
--IFORM is the user supplied value which identifies the data
set to be manipulated by a particular set of statements in
Subroutine Data. (In this case, only one data set is mani-
pulated and IFORM is not used) IFORM is read in by
Elective 2-21.
The values for each row (X(I), 1=1, 130) are read in
from a data matrix on cards (read from unit 5, the card
reader) according to the format in statement 1000 (four cards
per row). The values of x are manipulated (X(I)=X(I)#2-1. )
before being returned to the program.
6. 6. SAMPLE SUBMISSIONS
Examples 6-2 through 6-7 show six sample SYMVUs.
Table 6-2 summarizes the electives used for these SYMVUs.
The first three show three-dimensional views for the types
of maps that can be produced by SYMAP: conformant, con-
tour, and proximal. The last three show the types of views
possible with SYMVU: isometric, perspective, and piano-
metric.
These SYMVUs are not intended to demonstrate the
best choices or combinations of electives in the program. It
is the intention, however, to show as many different electives
as possible so that the user will be provided with a good
basis upon which the wisest judgements can be made. Many
of the SYMVU electives have been kept constant in order that
the non-required and lesser-used electives may be best dis-
played. Finally, Example 6-8 summarizes all the program
electives and their uses. This listing is included with the
program.
-------
There are a few things to keep in mind when producing
more than one SYMVU in a single submission:
(i) Any view of the same surface after the first view
can be requested merely by including the three control cards
immediately after the control cards (and after any optional
data cards) for the previous view;
(ii) When requesting a view of a new surf ace--whether it
be the first, second, etc. , surface in the submission--all
optional control cards must be re-specified with the exception
of the data matrix. In other words, symbol point and legends
are not carried forward from one surface to the next, although
they are carried forward from one view of a surface to the next
view of the same surface;
(iii) In addition to the required electives, two other electives
generally change from view to view and surface to surface and
should be reviewed carefully: Elective 2-6: Repeat and Elective
2-18: Fdata. Elective 2-12: SYMAP and Elective 2-21: IFORM
specify whether the input is on cards, tape, or disk—usually
on a file produced by SYMAP. Finally Elective 2-17 (Pltdot)
and Elective 2-22 (Nleg) are used when symbol points and
legends are involved;
(iv) These principles are summarized for a hypothetical
submission where;
-- the first surface is on disk, two views are desired, and
there are no symbol points or legends,
-- the second surface is on cards (Subroutine Data would be
used to read the data in), two views are desired, and there
are legends but no symbol points;
-------
-- the third surface is also on disk (it must be on a file that
occurs after the file containing the first surface--rewinding
in the middle of a run is not possible here), three views are
desired, the same legends are to be used and symbol points
are added.
Control Cards
Subroutine Data
Control Cards
Data
Data input for first su.r •
face on tape or disk
No symbols or legends
Data input for second
surface on cards
No symbol points
Legend cards
Data input for third
surface on tape or disk
Symbol point cards
Legend cards
(same as second
surface)
TITLE CARD 1
ELECTIVE CARD 2
ELECTIVE CARD 3
TITLE CARD 1
ELECTIVE CARD 2
ELECTIVE CARD 3
TITLE CARD 1
ELECTIVE CARD 2
ELECTIVE CARD 3
TITLE CARD 1
ELECTIVE CARD 2
ELECTIVE CARD 3
TITLE CARD 1
ELECTIVE CARD 2
ELECTIVE CARD 3
TITLE CARD 1
ELECTIVE CARD 2
ELECTIVE CARD 3
TITLE CARD 1
ELECTIVE CARD 2
ELECTIVE CARD 3
first surface, first view
first surface, second
view
second surface, first
view
second surface, second
view
third surface, first
view
third surface, second
view
third surface, third
view
-------
TABLE 6-2
ELECTIVES USED IN EXAMPLES
ELECTIVE
2-1
2-2
2-3
2-4
2-5
2-6
2-7
2-8
2-9
2-10
2-11
2-12
2-13
2-14
2-15
2-16
2-17
2-18
2-19
2-20
2-21
2-22
3-1
3-2
3-3
3-4
3-5
3-6
3-7
3-8
3-9
3-10
-EXAMPLE-
(name) 6-2 6-3 6-4 6-5 6-6
ROWS 63 63 63 63 63
COLUMNS 124 124 124 124 124
VIEW 0* 0* 0* 1 2
TYPE 44422
SMOOTH
REPEAT
LNINT
NOZERO 2221
SQRTT
SAMEH
END LIN
SYMAP 88888
LEG
NSCAL 11111
FLP 1
BASE 333 3
PLTDOT 31 46 46 31
FDATA 12322
NAMIN 1
NAMAX 2
IFORM
NLEG 3
ALTITUDE 45. 45. 45. 45. 45.
AZIMUTH 231.3 231.3 231.3 108. 340.
WIDTH 6. 6. 6. 6. 6.
HEIGHT 2. 2. 2. 2. 2.
AMIN 10-
AMAX 75-
VDIST 12>
STEP
SEPSM .04 .04 -04 .04 .05
SIZE
6-7
63
124
3
2
2
1
. 8
1
15
2
45.
0.0
6,
2.
.05
Note: If elective is blank for an example, this
elective is not used.
* This elective could have been left blank.
-------
00
-0
I
i.ui
1.00
o.so
0.00
,. 96.HI
. 69.59
. 31.79
0.00
FIGURE fl:
Example 6-2
MflNTEGNfl BflY - CONFQRMflNT
flZIMUTH = 231
xWlOTH = 6.00
flLTJTUDE = 45
"HEIGHT = 2.00
-------
00
00
I
1.11
1.00
O.SO
0.00
, 98.HI
. 69.59
314.79
0.00
FIGURE B:
Example b-3
MRNTEGNR BflY - CONTOUR
RZ1MUTH = 231
"WIDTH - 6.00
flLTJTUOE = 45
"HEIGHT = 2.00
-------
oo
•^>
i
1.00
o.so
„ 98.41
69.59
3U.79
o.oo 1
0.00
Example b -4
FIGURE C: MPNTEGNfl BflY - PRGXIMflL
flZIMUTH = 231
"WIDTH = 6.00
flLTITUDE = 45
"HEIGHT = 2.00
-------
o
I
I.HI
1.00
T 75.00
.. 55.96
0.00
0.50 . 32.98
10.00
FIGURE 2:
Example 6 -b
MflNTEGNfl BflT - ISOMETRIC PROJECTION
flZIMUTH = 180
"WIDTH = 6.00
flLTITUDE = H5
"HEIGHT = 2.00
-------
NO
H-J
I
1.41
1.00
O.SO
0.00
, 98.HI
. 69.59
34.79
0.00
Example 6-6
FIGURE 3: MflNTEGNfl BflY - TWO POINT PERSPECTIVE
RZIMUTH = 31JO
"WIDTH = 6.00
fllTITUOE = 145
"HEIGHT = 2.00
-------
ro
l.Ul , 98.
1.00 . 69.59
O.SO . 34.79
0.00
0.00
FIGURE 14:
Example 6-7
MflNTEGNfl BflY - PLflNOMETRIC PROJECTION
flZIMUTH = 0
WIDTH = 6.00
flLTITUDE = U5
xHEIGHT = 2.00
-------
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
Elective: c
2-1 c
c
2-2 C
C
2-3 • c
C
c
2-4 C
C
C
c
c
c
c
c
c
c
c
c
&
&
^=
*
o-
*»••
*
*
*
*
*
•Jf
"I"
•,>,
1"
x^
*
***
*t»
*
*
*
.1*
1*
*
*
*
*
*
#
•Jv
1"
*
Of
*
'I*
T-
*
*
*
*l*
¥
o*
~r^
*
X* =£ =,••: s,-s =^ *= =^ ij= »;= s*s sj= =;* =Js =;c 3,-c :,•= =£: afc :;e a;e s;e 3;= ;;; „;; 3;= ^ j;; >:, ,;e ,x ,x 3;.; ^ a;- a;c -^ -^ ^ ;;c ^c & ^ ^ -e ^ --f iy ~f -^ ,;e „;= ,;. ,,t ,;i ^t ,;t ^. ^ 5;, j;e -y. ^ ^ ^ s;c :
'-. YM VI J
WRITTEN HY FRANK J. P(£Nb
LABORATORY KOU COMPUTEK GKAHMlC'5 AND SHATIAL ANALYSIS
HARVARD UN I V(-Hb I T Y ,CAMHR IDGE » MASSACHUSETTS
VFRS ION 1.0
NOVEMHEK* 1970
REQUIRED DATA CARDS
CARD 1 - TITLE IN COLUMNS 1-72
CARD 2 - CONTROL CARD ( 1 OF 2 ) - INTEGER
VARIABLE COLUMNS TYPE DESCRIPTION
ROWS 1-4 I NUMBER OF ROWS IN DATA MATKI
MAXIMUM OF 130
COLS 5-8 I NUMBER OF COLUMNS IN DATA
MATRIX, MAXIMUM OF 130
VIEW 12 I 0 OR 1 = ISOMETRIC
2 = TWO POINT PERSPECTIVE
3 = PLANOMETRIC
TYPE 16 I 1 = LINES ALONG COLUMNS
REQUIRED IF AZ=yO OR 270
2 = LINES ALONG ROWS
REUUIRED IF AZ=() OR 1«0
3 = HISTOGRAMS
(NOT AVAILAHLE )
4 = DIAGONALS VIEWED
FROM ( 0 . t 0. )
5 = DIAGONALS VIEWFD FROM
(XMAX,0.) OR (O..YMAX)
DEPENDING ON V A L U F OF
AZ MOD '-JO.
^ w
T=
=;=
=:=
-f
*
#
*
v
*
*
•J*
*
-*?
1s
•Jr
.',
"I*
*
*
^o
*(*
X*
*
*
-£
*
*
*
*
*
*
'i-
;i-
*i*
V
*
*
*
=;=
'1*
oooo o 10 o
OOOOOl 1O
OOOOOPOO
OOOO0300
OOOO04OO
ooooosoo
00000600
00000700
00000750
00000755
00000800
00000900
00001000
00001 100
00001 200
00001300
00001400
00001500
00001600
00001700
00001800
00001900
00002000
00002100
00002200 ,
|
00002300
00002400 (
00002500
00002600
00002700
00002800
00002900
00003000
000031 00
0 0 0 0 3 ? 0 0
GO 00 33 00
00003400
00003500
00003600
Example 6-8
Listing of Electives
Their Uses
-------
Elective:
Z-5
2-6
2-7
2-8
2-9
2-10
2-11
2-12
C ^
c *
c *
c *
c *
c *
c *
c *
c *
c *
c *
c *
c *
c *
c
c *
c *
c *
c
*
*
SMOOTH
REPEAT
LN INT
MOZERO
i 7-:
24
25-28
32
C *
SQRTT
SAMEH
ENDLIN
SYMAP
36
40
44
45-4«
I
I
I
I
NUMrfEH rjK B I Nf) vi I Al_ S lj\ I 11 I T H I Isj <.-, «=; *
O = READ NEW DATA S I- T *
1 = USE PREVIOUSLY RKAn nATA *
AND SYMtnOL POINTS *
AND LEGENDS *
PLOT EVERY 'LMIMT' LlNh (0=1)*
0 TO PLOT NON STUOY ARI--A *
AS ZERO LINES *
1 TO DELETE NGN STUOY AREA *
2 TO DARKEN NON STUDY AREA *
SYMBOL 14 (NORTH ARROW) v
WILL BE BLANK *
3 TO DARKEN MONSTUDY AREA *
SYMBOL 14 (NORTH ARROW) *
WILL BE DARK *
1 TO TAKE THE SQUARE ROOT OF *
ALL VALUES *
1 TO USE SAME Z SCALE FACTOR *
AS THE PRECEEDING PLOT *
1 TO DELETE ENDLlNES *
SYMAP TAPE INPUT(6,b,10 L/'1)*
ooooaroo
OOOO3HOO
00003^00
0 0 0 0 4 O 0 0
00004100
00004POO
00004300
00004400
00004500
00004600
00004700
00004800
00004SJOO
00005000
00005100
00005200J
00005300;
00005400
00005500
00005600
00005700
2-13
2-14
2-15
2-lb
2-17
2-18
C *
C *
c *
c *
c *
c *
c *
c *
c *
c *
c *
c *
c *
c *
c *
c *
c *
c *
LEG
NSCAL
FLP
BASE
50
52
56
60
PLTDOT
FDATA
6 1 -
o 5 — t
OR THE NUMBER OF LINES/INCH I* 00005800
DIFFERENT FROM THE HORIZONTAL* 00005900
SCALE. 0 TO INDICATE EUUAL * 00006000
SCALES * 00006100
1 TO DELETE CONTROL * 00006200
INFORMATION FROM PLOT * 00006300
1 TO INCLUDE SCALE LEGEND * 00006400
i TO INCLUDE A FLOATING HLANF* 00006500
0 TO INCLUDE A BASE * 00006600
1 TO DELETE TMF HASt * 00006700
2 TO INCLUDE HIDDEN PAKT OF * 00006HOO
BASE * 00006SMK)
3 TO PLACE ON BLOCK * 00007000
NUMBER OF SYMBOL POINTS -f 00007100
(SEE BELOW) * 00007200
O DATA IS TO BF REAP BY USER * 00007300
WRITTEN SUBROUTINE * O0 0 0 7 4 0 0
M DATA IS ON -ll_P N OF TAPF * OO007500
-------
Elective:
2-19
2-
-------
C f
C ~
C *
C *
C *
C *
C *
C *
c *
c *
c *
c *
c *
c *
c *
c *
c *
c *
c *
c *
c *
c *
c *
c *
c *
c *
c *
c *
c *
C "^
c *
c *
c *
c -:-
c *
c *
c *
c *
c *
c *
c *
c #
c *
c *
THFY SHOULD M F IMSKHTK
SYMBOL POINTS ONE CARO
CARDS = «PLOTDOT«
ROW 1-10
COL 1 1-20
SYMBOL 21-30
1 "> H F" l-i f= m
V
*
#
FOR EACH POINT PLOTTED, TOTAL NUMBER OF *
*
•t*
I *
I 2,3,11,14, OW 21 (14 WILL RE *
TWICE AS LARGE AS OTHERS- *
USE FOR DATA POINTS - *
14 WILL BE BLANK WHEN *
NOZERO =2 *
14 WILL BE DARK WHEN *
NOZERO=3 *
iS
LEGENDS ONE CARD FOR EACH LEGEND TO BE PLOTTED, TOTAL NUMBER OF*
CARDS = MMLEG"
ROW 1-10
COL 1 1-20
TEXT 30-54
USER INPUT SUBROUTINE
SUBROUTINE DATA (X
DIMENSION X ( 1 30 )
CALLING LIST ARGUMENTS
X ( 130)
IR
1C
IFORM
NOTE - IR,IC,AND IFORM
*
*
I *
I *
A (LEFT JUSTIFIED) *
•t*
DESCRIPTION... *
, IR, 1C, IFORM ) *
*
*
*
RETURNS ONE ROW OF DATA MATRIX *
NUMBER OF ROW TO BE RETURNED *
NUMBER OF COLUMNS/ROW *
USER SUPPLIED VALUE TO IDENTIFY DATA SET*
*
SHOULD NOT BE ALTERED. THEY ARE *
INCLUDED ONLY AS INFORMATION TO BE USED IN THE SUBROUTINE. *
*
TH^ SUBROUTINE IS CALLED • ROWS • T IMF S ( C ARD2 , COL 1 -4 ) . ONE ^OW *
OF THE INPUT MATRIX IS
^ -'- '•- -r- -t- -i- '. .- -r- ^ *•' -•* -f V -.- -I1 •>• -i- -.- V
RETURNED EACH TIME. *
=:--
.,. ^ _,» -^ ^C ,,. -,C *i. ,,- ,,1 -|c ,- 3.. j; ,,c ,f -,- ..c -,> V -r -i< ',- *r -f 'f i* -f "• -,- -<• 'f- f 'c '.- -.-
OOO1?OOC
O O O 1 ? 1 0 0
OO01 ??OO
0001 2300
00012400
0001 2500
00012600
0001P700
0001 2800
0001 2900
00013000
00013100
000 1 3200
00013300
000 1 3400
0001 3500
0001 3600
0001 3700
0001 3800
0001 3900
000 1 4000
0001 41 00
0001 4200
0001 4300
0001 4400
000 1 4500
000 1 4600
00014700
000 1 4«00
000 1 4900
00015000
00015100
00015200
00015300
00015400
00015500
00015600
00015700
00015MOO
0 O 0 1 5 y 0 0
0 0 0 1 b 0 0 0
0 0 0 1 b 1 0 n
O O 0 1 b 2 0 O
-------
6. 7. TECHNICAL INFORMATION
This section is intended to provide technical infor-
mation to individuals who wish to implement SYMVU-I pro-
grams at their local computer installation. As such, this
section assumes a working knowledge of your local computer
center's systems procedures.
The examples of the job control language were tested
on an IBM 360/65 OS MVT release 18 system. SYMVU wii
compile successfully in FORTRAN IV G and H.
6.7.1. SYMVU Source Tape Description
The SYMVU tape is a nine-track tape written at
800BPI with odd parity.
The first file is written in EBCDIC mode with 80
character records blocked 8000 characters per block--i. e. , 100
records to a block, and contains approximately 16 blocks.
Records 0000100 through 1)0130300 comprise the SYMVU For-
tran IV source program. The records following the source
program are sample data which can be used to produce a p.ot
identical to Example 6-3. These records, 0013990 through
00144500, should be punched onto cards and read in as input
data to SYMVU at execute time. Example 6-9 shows the job
control language (JCL) for punching these source cards from
the SYMVU tape. If you are not using the values on the second
file that were generated by SYMAP, you wiK need to use Sub-
Routine DATA to read in your matrix of values from cards;
these cards should be placed after Elective card 3.
The second file of the tape is a binary set of values
which is output from SYMAP. The record form is variable
spanned block, with a record length of 5Z4 and a block size
of 15724. This file is to be used with the sample data on the
first file.
-------
Example 6-9
Utility Program
To Punch Source Cards From SYMVU Tape
111111111122222222223333333333444444444455555555556
123456789012345678901234567890123456789012345678901234567890
//PUNCH EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=A
//SYSIN DD DUMMY
//SYSUT1 DD DSN=X,UNIT=TAPE9T,DISP=OLD,VOL=SER=SYMVU1,
// DCB=(RECFM=FB,LRECL=80,BLXSIZE=8000,DEN=2),LABEL=(1,NL)
//SYSUT2 DD SYSOUT=B
/*
-------
//LKED EXEC PGM = IEWL. ,MAPM=(XREF,LIST,LET,N!CAL),REGION = 15f
//SYSPRINT DD SYSf)UT = A
//SYSLIB DD DSNAME = SYS1 .FORTL IS,D ISP = SHR
//SYSLIM DO DDNAME=SYSIN
//SYSLMOD DD DSN = A484405 . SYMVU.D,UN IT = SYSLIB,DISP=OLD,
// VOLUME=(PRIVATE,SER=SWHITE)
//SYSUT1 DD UNIT=SYSQUE,SPACE=(TRK, (30 )) ,SEP=(SYSLIN,SYSLMQC
// DSNAME = &&.O I SKA
//SYSIN DD *,DCB=BUFNn=l
SYMVU object deck
NAME SYMVU
Example 6-10
Listing of Job Control Language to
-------
Example 6-10 shows the JCL for loading the binary
deck of SYMVU onto disk.
6. 7. 2. Minimum Machine Configuration
The machine requirements for SYMVU are:
-- an IBM 360 computer, full operating system;
-- 220K bytes of core storage (unoverlaid SYMVU with a
G-level Fortran IV compiler), or, 200K bytes (unover-
laid with an H-level compiler);
-- one disk drive, or three tape drives;
-- a seven-track tape drive for the CalComp plotter; and
--an eleven-inch CalComp drum plotter.
6. 7. 3 Units Description
The SYMVU program has statements which reference
the FORTRAN IV logical units 1, 2, 3, 5, 6, and 8. These
units are referenced in four kinds of FORTRAN statements:
-- READ/WRITE (*) X, Y, Z for binary reads and writes;
-- READ/WRITE (*, 1040) for EBCDIC reads and writes;
-- REWIND *; and,
-- ENDFILE *.
(the astrisk, *, refers to the unit number).
The units are used as follows:
(i) Units 1, 2 and 3 are used only for intermediate
storage, and are written, end filed, rewound, and read; unit
1 is used to store the input data (the Z-values), unit 2, the
symbol points, and unit 3, the legends.
-------
(ii) Unit 5 is used for the card input;
(iii) Unit 6 is used for the printed output describing the
plots; and,
(iv) Unit 8 is used for the binary input tape generated by
SYMAP; this is the tape of the Z-values which is produced
when elective 21 is used.
The CalComp routines will reference another seven-
track tape, PLOTTAPE. The program is set up for the 11
inch plotter. By inserting CALL FACTOR (FACT ) as
statement number 00029250, one can increase the size of the
plot output by a specified factor.
6. 7. 4. Input
The binary tape created by SYMAP contains a description
of the grid as its first record. This first record consists of
the integer number of rows in the grid, the integer number
of columns, the real number of rows per coordinate unit, the
real number of columns per coordinate unit, the real minimum
value, and the real maximum value. The rest of the tape
contains 1 row of data per record. For example, if the grid
is 130x118, there will be 130 records of 118 four-byte-reals
per record.
The user must use SUBROUTINE DATA if his data
is not in this form. A dummy SUBROUTINE DATA is included
on the source tape, but the user is expected to provide his
own if the format of his data is not comparable to the SYMAP
output tape.
-------
Example 6-11 shows ihe input required to produce
the SYMVU in Example 6-3. Example 6-12 shows the
catalogued procedure used for SYMVU at the Harvard Com-
puting Center.
6.7.5. Calcomp Plotter Routines Used in SYMVU
PLOTS (BUFFER, 1024)
BUFFER is a work buffer for the plot routines.
1024 is the length of BUFFER in words.
the pen origin is set at the real bottom edge
of the paper.
check with your own installation to determine if
this is necessary.
LIMIT (3000, & 260)
3000 is set as the number of plotter tape records
not to be exceeded.
260 is the Fortran Statement number to branch to
if the plot routine attempts to write more than
3000 records.
the user may change 3000 or delete the call to
this routine altogether depending on his own needs
(this routine acts as a protection in case the
program attempts to plot a bad point).
PLOT (X, Y, + IPEN)
(x, y) are the coordinates, in inches, of the
position to which the pen is to be moved from
the current reference point.
-------
IPEN-2 to have the pen down during movement;
IPEN=3 for pen up during movement; for
n?EN=-2 or -3, a new origin is defined at the
terminal position after the movement is completed
--otherwise, it is as if IPEN were positive
---if DPEN=999, the effects are the same as if
IPEN=3 except that a search record with search
address 999 is written and the output device is
closed
SYMBOL (X, Y, HEIGHT, IBCD, ANGLE,+NCHAR)
(x, y) are the coordinates in inches, of the lower
left corner of the first character to be produced;
HEIGHT, in inches, of the character to be plotted;
IBCD is the text; ANGLE is the angle in degrees
measured from the X-Axis; NCHAR is the number
of characters to be plotted from IBCD.
NUMBER (X, Y, HEIGHT, FPN, ANGLE, + NDEC)
X, Y, HEIGHT, and ANGLE are the same as they
are for SYMBOL.
FPN is the floating point number that is to be
converted and plotted; if NDEC = 0, the number's
integer portion and decimal point are plotted,
after rounding; if NDEC=-1, only the integer
portion is plotted after rounding, if NDEC<-1,
JNDECJ -1 digits are truncated from the
integer position, after rounding.
-------
OFFSET (XOFF, XFAC, YOFF, YFAC)
--- Enters factors to be used by the PLOT routine
when DPEN is 2 or 3. See the discussion of
FACTOR under the units description.
(For a more complete understanding of the Calcomp routines used in
SYMVU, see the Calcomp manual, Programming Calcomp Pen Plotters,
California Computer Products, Inc., 305 Muller Avenue, Anaheim,
California 92803.
-------
.//FORT FXEC PGM = G , REGION=150K,PARM =•DECK•
J//SYSPRINT DD SYSOUT=A
;//SYSPUNCH DD SYSOUT=B
;//SYSLIN DD DSN=&LOADSET,DISP=(MOD,PASS),UNIT=SYSUUE,
'// SPACE=(TRK,(1,3)),DCB=(LRECL=80,RECFM=FB,BLKSIZE=3200)
//FORT.SYSIN DD *
SYMVU Fortran deck that was punched from ta
cards 00000100 through 00130300
/#
//LKED EXEC PGM=IEWL,PARM=»XREF,LIST,LET', REGION=150K,COND=(4,L
//SYSPRINT DD SYSOUT=A
//SYSLIB DD DSN=SYS1,FORTLIB,DISP=SHR
// DD DSN=SYS2.FORTLIB,DISP=SHR
//SYSLIN DD DSN = &LOADSET ,DISP=(OLD.DELETE)
// DD DDNAME=SYSIN
//SYSLMOD DD DSN=&&GOSFT(MAIN) ,UNIT = SYSQUE,SPACE=( 1024 , (50,20, 1
// DISP=(MOD,PASS)
//SYSUT1 DD UNIT=SYSQUE,SEP=(SYSLIN,SYSLMOD) ,SPACE = ( 1024, (50,20
// DSN=&DISKA
/*
//GO EXEC PGM=*.LKED.SYSLMOD,COND=(4,LT),REGION=250K
X/GO.FT01F001 DD DSN = &SYMV1 ,SPACE=(TRK,(02,1 ) ) , DISP=( , DELETE ) ,
// UNIT=SYSOUE,DCB=(RECFM=VSB,LRECL=524,BLKSI2E=15724,8UFNO=1)
//GO.FT02F001 DD DSN = &5YMV2,SPACE=(TRK, (02, 1 ) ) ,D I SP=( ,DELETE ) ,
// UNIT=SYSQUE,DCB=(RECFM=VSB,LRECL=1204,BLKSIZE=1208,BUFNO=1)
//GO.FT03F001 DD DSN = &SYMV3 , SPACE=(TRK, (02, 1 ) ) ,DISP=( , DELETE ) ,
// UNIT=SYSOUE,DCB=(RECFM=VSB,LRECL=1604,BLKSIZE=160B,8UFNO=1)
//GO.FT05F001 DD DDNAME=SYSIN
//GO.FT06F001 DD SYSOUT=A,DCB=(RECFM=FBA,LRECL=132,BLKSIZE=7260)
//GO.FT07F001 DD SYSOUT = d , SPACE = ( 80, (39, 1 17) ,RLSE,CONTIG)
Example 6-11
Listing of Job Control Language to run
-------
//PLOTTAP6 DO DSN= HLU Tl , JNI T= T APcTT , VOL =SER=C AL CT P , O I S P= ( N EW , K(
// LAUEL= ( tBLP) ,DCB=OEN=1
//GG.FTC8FGQ1 DO OSN=F001,JNIT=<24C0,,DEFER),DISP=(,PASS),
// VOL= (.RETAIN ,SER-=LCGVU1 ) ,LABEL=( 2 ,NL ) ,DCB= ( RECFM = VSB, LRECL = '
// BLKS IZt = 1572
-------
6
7
7
7
7
7
.8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
1 1 1
108
109
1 10
1 1 1
1 12
107
108
109
1 10
1 1 1
1 12
1 13
106
107
108
109
1 10
1 1 1
1 12
1 1 3
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
-------
O
00
I
9
1 0
10
10
1 1
1 1
1 1
1 1
16
18
20
21
25
30
31
31
36
41
43
44
48
48
1 14
109
1 10
1 1 1
109
1 10
1 1 1
50
76
26
51
103
41
69
15
92
36
52
82
66
29
102
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
/* OS END OF FILE CARD
-------
// EXEC SYMVU, LEVEL =D t TAPE = HU'i«CS t REGION .GO = 2CCK
XX PROC LFVEL=A,L=NL,TAPE=SCRTCH^BLQCK=15724,BPI=2
XXFQRT EXEC PGM=G,PEGION=150K ' '
XXSYSPRINT DO SYSOUT= A, DCB = (LRECL=120,R£CFM=FBA,BLKSIZE=720C)
XXSYSPUNCH DO SYSOUT = B,SPACE = (8^,(2CO »50) , RLSF),DCB=(LRECL=80»
XX RECFM=F6,BLKSIZE=3200)
XXSYSLIN DO DSN=£OATA,UNIT=SYSQUE»SPACE=(30»(200,50),RLSE),
XX DISP=( ,PASS) ,DCB=(LRECL=80,RECFM=FB,BLKSIZE =
ooooocoo
ooonooio
COOOCC20
XOOOC003O
OOOOOOA.C
00000050
0000006C
//FORT.SYSIN DO *
IN)
O
0001
.0002
C003
SUBROUTINE
RETURN
END
DATA
XXGO EXEC PGM=LQAOER,PAKM='LFT,EP=MAIN',REGION=250K
XXSYSLIB DD DSN=SYS1.FORTLIB,DISP=SHR
XXSYSLOUT DD SYSOUT=A,DCB= AC-F. =-( TRK , ( 02 ,1 ) ) ,DlSP-( , DELETE) ,
XX UNIT=SYSQUE,DCB=
XXFT02FOC1 DD DSNAME=SSYMV2,SPACE=(TRK,(02,1)),DISP=(,DELETE),
XX UNIT=SYSQUE,DCB=(RECFM=VSB,LRECL = 1204, BLKS I ZE=1208 , BUFNO=1 )-
XXFTC3FOC1 DD DSNAME = £SYMV3,SPACE = (TRK,(C2,1)),DISP={ , DELETE) ,
XX UNI T=SYSQUE,DCB=(PECFM=VSB»LDECL = 16C4-, 5LK S I ZE = 1 608 , BUFNO=1 >
XXFT05FOG1 DD DDNAME=SYSIN
XXFT06FOQ1 DD SYSQUT=A
QQOOOC7C1!
000000801
00000090;
00000100
00000110
00000120
00000130
XOOOOOHO
00000150
X00000160:
00000170
X00000180
OOOC0190
OOC0020C
0000021C.'
Example 6-12
-------
o
i
XXFT07FC01 DO SYSQUT= 8 , SPAC E = ( ,90 , ( 19 , 1 17 > , RLSE , CONTI G )
XX PLOT TAPE DO DSN = PLOT1 . UN I T = TAP E7T , VGL = S EP=C ALCTP, DI SP= ( NEW, KEEP ) ,
XX LABEL=( ,BLP) ,DCB=DEN=1
XXFT03FC01 HO DSN=FOC1,UNIT=(2400, , DEFFR > , DI S P=( ,PASS) ,
XX VOL = ( , RETAlN,SER=flTAPE),LABEL={l , &L ) ,DC B= ( RECFM=VSB ,LR
XX 8LKSIZE=&BLOCK,EROPT=ACC , DEM=&RPI ,BUFNO=1 )
XXFT08FOC2 DD DSN=FOC2t LA8£L=(2 » &L) ,D1 SP= (OLD, PASS ),
XX VOLUME=REF=*.FT08F001 , DC B=*. FT 08 FOCI
DD OSN=F003fLABEL=(3,£L) ,D I SP= (OLD , PASS ) ,
VOLUME=RFF=*.FT08FOn2,DCB=*.FTC8FOGl
DD DSN=FGC^,LABEL=(A,,£LL),DISP3UOLD,PASS) ,
VOLUME=REF=*.FT08F003tDCB=*.FT08FOCl
DD DSN=F005,LABEL=(5 ,£L»,DISP= (QLD.PASS) ,
VOLUME=REF=*.FTC8FOC4,DCB=*.FT08F001
DD DSN=F006tLABEL = (6,LLUDI
VOLUME=RFF=*.FT08FC05,DCB=^
DD DSN = F&C7,UBEL=^7,.&1)JD1
VQLUME=REF=*.FTC8FQC&,DCB=*.FT08F001
DD DSN=F008.t LABEL-(8,£L) ,DI SP= ( CLO, PASS ) ,
VOLUME =REF=*. FTOSFOH 7 , DC8=*. FT 08F001
DD DSN=FC09,LABEL = {9,{1L),DISP=(OLD,PASS) t
VOLUME=REF=#. FT08 FOOB » DCB=*. FT08FOC 1
DD . SYSQUT=A.
*
XXFT08FC03
XX
XXFTCSFOO^
XX
XX FT08 FO05
XX
XXFTC8FC06
XX
XXFTC3FC07
XX
XXFTC8FC08
XX
XXFTC8FC09
XX
//GO.SYSUDUMP
//GO.SYSIN DD
P= (OLD, PASS) ,
FTC8F001
P=(QLD, PASSJ ,
OOOC022C
X00000230!
00000240]
X0000025C
00000260
00000270
X00000280
00000290,
XOC000300
00000310
XOOOC0320
00000330
X00000340!
0000035ci
XOCOOC360:
00000370:
XOCO.J0038C
00000390
X00000400;
OOOOC4!Oi
XOOOOC420J
I
-------
7. THE "GRID" PROGRAM
7. 1. INTRODUCTION
GRID is a computer program which has been
created to provide a highly efficient means for graphic
display of information collected on the basis of a
rectangular coordinate grid. The "GRID" Program is
designed for use by persons with very little program-
ming experience. However, it is usually necessary
for the user to specify his own data formats in Sub-
routine FL/EXIN and this requires an elementary know-
ledge of FORTRAN IV.
The program is written in FORTRAN IV and is
currently being operated on an I. B.M. 360/65 computer
at Harvard using 15OK bytes. With small programming
changes it can be operated on the I. B.M. 7094 with 32K
memory. It is possible to operate this program on a
smaller machine --with a memory of at least 12K words.
7. 1. 1. Basic Principles
Each data value is assumed to be associated with
a cell on a grid. It is essential that the values should
be processed in the correct order, since the program
accepts the data in the order in which it prints the map.
By the standardized printing process, the program starts
at the top of the map and processes the data horizontally
row by row and from left to right in each row. Thus
the numbers below represent the order in which thrity
data values on a 6x5 grid will be processed and
printed.
-------
123456
7 8 9 10 11 12
13 14 15 16 17 18
19 20 21 22 23 24
25 26 27 28 29 30
The size and shape of the user's grid must be specified
using Elective 1.
In the mapping process, the actual data values
are generalized into groups, each group having a
unique graphic symbol associated with it. The groups
into which data are to be placed and the associated
symbols may be specified by the user, using Electives
3 through 6. Two types of symbolism are available:
a grey scale of symbolism from light-dark which must
be specified by the user, or a dot map in half inch
square cells. The coordinates of each grid cell
location may also be printed. Most of the SYMAP
electives for scale generalization are available on
GRID.
7. 1. 2. Required Input
To obtain a graphic display (or map), the user
must provide three sets of instructions and has the
option of providing a fourth set. The instructions are
prepared in the following packages: Data Package
(usually a separate tape), Map Package, Irregular Out-
lines Package (Optional), and Subroutine Flexin.
(i) The Data Package contains the data or num-
ermical information which generates the graphic display.
The program is written for a maximum of 10, 000 grid
cells, but the Multiple Data Set Option permits the user
to handle unlimited numbers of data cells.
-------
(ii) The Map Package permits the user to specify
the precise form of the map output in terms of various
electives.
(iii) The Irregular Outline Option allows the user
to specify the boundaries of the study area, if he is
dealing with a grid which is not rectangularly bounded.
(iv) Subroutine Flexin is a fortran subroutine which
allows the user to specify the format of the DATA.
(In a special case described under Data Input Section,
it is not necessary to provide this subroutine).
In the following sections, first the content and
then the format of each set of inputs is described. At
the end there is a description of the organization of a
complete submission for the computer.
7.2. DATA PACKAGE
The GRID program provides two separate and
distinct input procedures for the data. These are
designed to optimize the efficient use of the program
under two different types of operation.
7.2.1. Data Option A
Option A uses GRID as an independent program,
in which Subroutine FLEXIN is used (i) to read the data
from any file format a,nd, (ii) to perform relatively
simple statistical calculations on the data so as to
generate the value to be mapped. In this case the data
is processed one cell at a time. This option permits
-------
a wide range of flexibility in the organization of the
data.
It is recommended that people who have limited
experience with the computer use this option initially.
The section on Subroutine FLEXIN describes the details
of the procedures in detail. A data file often contains
many different variables referring to each grid cell.
As there is not enough memory space available to store
each variable, it is necessary to read the basic data
file each time a map is made. Since it is inefficient
with large sets of data to submit a card file for each
separate map, it is recommended that such files be
prestored on a disc or tape. This permits the user to
rewind the files between maps.
The GRID program will automatically rewind a
file being read on Fortran Logical I/O unit 12 between
each map.
This option is activated by specifying a number
greater than zero in field 1 of Elective 2 (see Map
Package). The user is cautioned to note the further
optional use of this number as described under Elective
2 and Subroutine FLEXIN.
7. 2. 2. Data Option B
Option B uses GRID as the final 'job step' in
a series of 'job steps' made up of complex statistical
manipulation routines. In this case the data used to
create the graphic display is transferred to the GRID
program as a series of Binary arrays with one array
-------
(or logical record) for each row of the map. The
program will expect one real value in the array for
each cell in a row (Note that if an irregular outline
is used, there will be variable length records).
The data will only be accepted in this mode under
this option. This option is used automatically if
Elective 2 is not specified; it is also used if zero is
specified in field 1 of Elective 2.
When using this option the data is transferred
to GRID using Fortran Logical I/O unit number 20.
7. 2. 3. Assigning Data to Map Levels
The GRID program internally assigns the value
for each grid cell to a level or group. The maximum
number of levels is 10, numbered 0-9. If the data is
already prescaled such that it has integer values from
0 thru 9, this section of the program may be bypassed
by using Elective 14. When large numbers of grid cells
are involved, there may be significant time savings.
When the dot map option is used the maximum
number of levels is 20, numbered 0-19.
7.2.4. Multiple Data Sets
In its standard form this program is limited to
10,000 data cells. On the IBM 7094 there is, in fact,
memory space for about 15, 000 data cells. On smaller
machines there may be space for less than 10,000 cells.
An experienced programmer may adjust this limit by
changing the size of "COMMON P (10,000)".
-------
This program was written to handle nearly
unlimited amounts of data. An internal loop has been
built into the program which permits the user to map
as many data cells as necessary on one map. In
order to do this, larger data files should be divided
into "sets" which have less than 10,000 cells each.
The data sets should each refer to a basic grid which
is the same size and shape.
When multiple data sets are used, each set is
processed separately. Therefore, it is essential that
the maximum and minimum of the data ranges (electives
4 and 5) be specified, as there is no guarantee that all
data sets will have the same value range. When using
multiple data sets, specify the number of sets to be
mapped in field 3 of elective 2.
If no irregular outline is used, then data sets
may be above, below, or beside each other; the order
and spatial relationships are not important. However,
when an irregular outline is used, the complete outline
must be stored prior to the processing of all the data
sets. It is suggested that data sets with an irregular
outline be organized such that the first set is the top
section of the map and the last set the bottom section
of the map, with each set being the full width of the
map.
Experienced programmers may want to differen-
tiate between each data set during the processing of
Subroutine Flexin. A fourth calling "argument" for
Flexin is transfered in the "CALL" statement, follow-
ing the value of FIRST. This argument gives the
number of the data set being mapped.
-------
7.3. MAP PACKAGE
This package instructs the computer to make
a map bas ed on the data supplied. It is used to
specify the precise form of the map in terms of certain
available map electives.
It is most important to remember that:
(i) Once an elective has been specified, it will be
carried on to successive maps unless it is changed,
and,
(ii) Electives 1 and 7 must be included with the first
map of a submission as no standard condition is created
by the program for these electives.
On the first card of this package, punch "MAP" in
columns 1-3. On the last card, punch the number
"99999" in columns 1-5.
On the second, third and fourth cards, punch the title
you wish to have appear below the map.
Be sure your title is clearly descriptive so as
to differentiate the particular map from all other maps
of a similar nature which may be run. One or more
of these three cards may be left blank if desired, but
all three cards must be included.
On the other cards--to be inserted between the
fourth and last card--punch any "electives" desired.
Whenever a map elective is not specifically called for,
the standard result described under each elective will
automatically occur. Therefore, use an elective if you
wish to procure a result different from the standard.
-------
7.3.1. Standard Format
A standard format is used for the electives with
the exception of electives 7, 10, and 13. It is:
(i) the elective number is,punched as an integer
in columns 4 and 5 (right justified).
(ii) columns 6-10 are left blank
(iii) six fields of ten columns are defined as follows:
Field 1 Columns 11-20
2 21-30
3 31-40
4 41-50
5 51-60
6 61-70
NOTE:
--A "field" is a set of columns. (These are
shown on the computer cards to be punched. )
The computer expects to read one variable from
each field.
--Integer numbers may not contain decimal points.
When punching integer numbers in a field, the
lowest end of the number (e.g.: if the number is
339, the nine) must be in the right hand column
of the field. The number is then.right justified.
--The six fields specified for the elective cards
are real numbers and should contain a decimal
point. They may be located anywhere within the
defined columns. The decimal point may be
omitted if the number is right justified.
-------
7.3.2 Elective 1:
Grid (1 card)
This elective specifies the parameters for the
rectangular grid that is to be mapped. In field 1
specify the number of rows of grid cells down the map
and in field 2 specify the number of columns of grid
cells across the map. In fields 3 and 4 specify the
size of each printed grid cell, in terms of the number
of characters down (field 3) and across (field 4).
(Remember that each character to be printed measures
1/8" down and 1/10" across.) If fields 3 and 4 are
left blank the printed cell size will be 4x5 or 1/2"
square.
Enter the numbers in all four fields as decimal
numbers. The elective number should be entered as
an integer, in column 5.
7. 3. 3. Elective 2:
Data (i card)
This elective controls the input options for the
data. To activate Data Option A (See section on the
Data package), specify a number greater than zero in
field 1. To return to Option B, specify zero in field
1. Field 2 is not used. If the multiple data set
option is to be used, specify in field 3 the number of
data sets to be mapped. Standard is one data set and
data input option B. The number specified in field 1
(for Data Option A) is transferred to Subroutine Flexin
as the value for IFORM. The use of IFORM is discussed
in the section on Subroutine Flexin.
-------
7.3.4. Elective 3:
Number of Levels (1 card)
To specify the number of levels or class inter-
vals into which the total value range is to be divided
(from 2 to 10), punch the decimal number desired in
field 1. Standard is ten levels.
7. 3. 5. Elective 4:
Value Range Minimum (1 card)
To specify a number to be used as the minimum
value of the total value range, punch the decimal
number desired in field 1. Standard is to use the min-
imum value of the data. To return to standard,
specify 1. 0 in field 2.
7. 3. 6. Elective 5:
Value Range Maximum (1 card)
To specify a number to be used as the maximum
value of the total value range, punch the decimal
number desired in field 1. Standard is to use the
maximum value of the data. To return to this standard,
specify 1.0 in field 2.
7. 3. 7. Elective 6:
Value Range Intervals (1 to 2 cards)
This elective controls the value range for each
level or interval. The total value range of the data
(as modified by the minimum and maximum of Electives
4 and 5) will be divided up into the number of levels
specified in Elective 3. Standard is to have each level
or interval assigned an equal range. (See Example 7-1)
-------
To specify the desired range for each level,
values proportionate to the size of the desired ranges
are used. These should be punched as decimal numbers:
in field 1 for the level, etc. (See Example 7-2) Only
if there are more than 6 levels, continue on a second
card, punching the number for the seventh level in
field 1, for the eighth level in field 2, etc. (See
Example 7-3) There is a maximum of ten levels for
grey scale symbolism and twenty levels for a DOT
symbolism.
To return to the standard, specify 0. 0 in
field 1.
7. 3. 8. Elective 7:
Symbolism (5 cards)
This elective specifies the grey scale symbolism
that will be printed on the map. Because no standard
symbolism is stored in the program, this elective must
be included on the first map of any submission. All
five cards must be included each time it is used.
On the first card punch the identifying elective number
"7" in column 5.
On the second card punch in the columns listed below
the basic characters desired. Any printer characters
may be used.
On the third, fourth and fifth cards punch in the columns
listed below any overprint characters desired. If no
over-printing is desired, these three cards will be
blank.
-------
Example 7-1
Equal Value Range Levels
Using 3 levels with values ranging from a minimum
of 0 to a maximum of 30,
--the first level will contain values from 0 thru 10,
--the second level will contain values from 10 thru 20,
and
--the third level will contain values from 20 thru 30.
If a data value is exactly equal to a level limit (10,
20, or 30 in this case) it will be assigned to the
lower level} e. g. 20 would be assigned to the 10
thru 20 level.
Example 7-2
Unequal Value Range Levels
Four Levels
If the data is to be divided into four groups--the
lowest 10%, the next 25%, the next 35%, and the remain-
der--the one card for elective 6 would be punched as
follows:
Column 5 11-20 21-30 31"40 41-50
IT. inn 2in sin30.
-------
Example 7-3
Unequal Value Range Levels
Seven Levels
To specify these value range intervals --
Level 1 0-150
Level 2 150-200
Level 3 200-271
Level 4 271-500
Level 5 500-750
t!j Level 6 750-889
N Level 7 889-1000
--punch the two cards for elective 6 as follows:
Column 5 U-20 21-30 31-40 41-50 51-60 61-70
5 r§T:so":7T. TIT. 2551 T3T7
-------
Columns 1-10 are used to specify the general
symbolism for each level (column 1 for the
symbol to designate the first level, etc. --for
as many levels as are to be used.)
Columns 11-20 are used to specify the special
symbolism for the respective flag points
(column 11 for the symbol to designate flag
points in the first level, etc.). The flag point
is the central character of a grid cell.
Column 21 is used to specify the symbolism for
a value less than the minimum specified in
Elective 4.
Column 22 is used to specify the flag point
symbolism for a low value.
Column 23 is used to specify the symbolism for
a value greater than the maximum specified in
Elective 5.
Column 24 is used to specify the flag point
symbolism for a high value.
Column 25 is used to specify background symbol-
ism--the symbolism to appear outside the outline
of the study area.
Example 7-4 shows a grey scale for ten levels of symbol-
ism.
7.3.9. Elective 8:
Flag Point (1 card)
The flag point is the central character of a grid
cell. The special symbolism specified in elective 7 is
printed at this flag point. To suppress the printing of
-------
Example 7-4
Level Symbol Specification
This example shows:
--a grey scale for ten levels of symbolism
(columns 1-10)
-- flag point symbolism for the ten levels
(columns 11-20),
-- blank low value symbolism and flag point
(columns 21 and 22),
-- blank high value symbolism and flag point
(columns 23 and 24), and
-- blank background symbolism (column 25).
Column
card 1
card 2
card 3
card 4
card 5
123456789
7
. , , + X 0 0 0 0
. - X O 0 O O
- + X
1111
0123
0012
A
X
V
111111222222
456789012345
3456789
To create a grey scale for less than ten levels
it is suggested that the level symbols should be eliminated
in the following order:
for: 9 levels eliminate: 2
8 levels 2,9
7 levels 2,9,8
6 levels 2,9,8,3
5 levels 2,9,8,3,6
The flag point symbolism should be adjusted accordingly.
-------
special symbolism at the flag point specify 1. 0 in
field 1. If it is desired to reinstate the flag point
in subsequent maps, specify 0.0 in field 1.
When a map is made with a 1 x 1 character
grid, the flag point is automatically suppressed and
it must be reinstated-for subsequent maps. Standard
is the special symbolism at the flag point.
7. 3. 10 Elective 9:
Histogram (1 card)
This Elective controls the printing at the bottom
of the map. Specify 1. 0 in field 1 to generate a histo-
gram bar chart at the bottom of the map. This bar
chart shows the frequency of grid cells in each level.
Specify 1. 0 in field 2 to suppress the numeric infor-
mation which is printed With levels. Standard is no
Bar chart and inclusion of numeric information. To
return to the standard, specify 0. 0 in the relevant
field.
7. 3. 11. Elective 10:
Text (3 -32 cards)
If additional explanatory information is desired--
beyond that contained in the map title--this elective may
be used to print up to 30 lines of text below the map.
On the first card punch the identifying elective number
"10" in columns 4-5.
On not more than 30 other cards, to be inserted between
the first and last, punch in columns 1-72 any supple-
mentary information likely to be helpful for future
-------
reference, such as source and date of data or the name
of the person running the map.
On the last card, punch "ENDTEXT" in columns 1-7.
Standard is to have no text, but, generally, some
explanatory text is desirable.
7. 3. 12 Elective 11:
Data Record (1 card)
If a printout of the data values--before scaling--
is desired, punch 1.0 in field 1. If a punched deck of
the data values is desired, punch 1.0 in field 2. If a
punched deck of the level numbers to which the data has
been assigned is desired, punch 1. 0 in field 3. The
Standard is no print or punch. To return to the standard,
specify 0. 0 in the relevant field.
7.3. 13. Elective 12:
Dot Map (1 card)
As an alternative to the normal symbolism, a
dot map can be produced using 4x5 grid cells, and
the symbol 0 . The data range may be divided into
twenty levels (19 if a maximum value is specified in
elective 5). The number of characters printed in the
cell is equal to the number of the level: if the value
falls in level 1, only one of the 20 characters is printed,
but if it falls in the 20th level, all 20 characters are
printed.
This elective supercedes the specifications of
grid cell size in elective 1 and the number of levels
in elective 3.
-------
To specify DOT symbolism, punch 1. 0 in
field 1. To reinstate the grey scale symbolism
(specified in elective 7) punch 0.0 in field 1. The
grey scale symbolism is standard.
7. 3. 14 Elective 13.:
Grid Numbering (1 to 2 cards)
This elective generates row and column numbers
on all four sides of the grid to assist the user in locating
individual cells on the map.
The top left hand cell of the grid is called the
Reference Grid Cell (RGC). It provides the coordinates
from which all the rows and columns are numbered.
If the coordinates of the RGC are not specified, the pro-
gram assumes them to be:
Column = 1
Row = N
where N is the number of rows
specified in elective 1.
In field 1 specify 1.0 for grid numbering. In
field 2 specify the column number of the RGC and in
field 3 specify the row number. The standard is no
numbering. To return to the standard on subsequent
maps, specify 0. 0 in field 1.
For some specialized uses the basic grid may
be subdivided into parts, such as halves or thirds, and
a non-continuous numbering system used. For example,
a grid may be numbered in the following manner:
-------
3807
3804
3801
3797
3794
3791
3787
3333333
4444444
0001112
1471471
«...
.......
The basic grid has a R. G.C. of 340,380. There are
three subdivisions numbered 1, 4, and 7; this number
of subdivisions is specified in field 1. When field 1
contains a number greater than one, the program will
read an extra card to find out how to number the sub-
divisions. Example 7-5 shows how to specify the two
cards for this grid.
7. 3. 15. Elective 14:
Prescaled Data (1 card)
This elective bypasses the routine which assigns
the data values to levels, as described in the section on
the data package. To activate this option, specify 1. 0
in field 1. This option will automatically suppress
numeric information below the map. The standard is
to have the program scale the data.
On subsequent maps, the normal processing is
reinstated by specifying 0.0 in field 1; the numeric in-
formation should also be reinstated using elective 9.
-------
Example 7-5
.Grid Numbering
Subdivided Grid
For a basic grid with an R. G. C. of 340, 380 and
subdivisions numbered 1, 4, and 7, Elective 13
should be specified as follows:
1111111111222222222233333333334 ~ 8
Column Number 1234567890123456789012345678901234567890 0
Card 1 13 3.0 340.0 380.0
Card 2 147
The first card is in the standard format:
-- elective number 13 in columns 4 and 5.
-- number of subdivisions in field 1
-- R. G.C. column and row numbers in fields 2 and 3.
The second card contains the numbers (0-9) for the
subdivisions, the first subdivision in column 1, second
in column 2, etc.
-------
7.3.16 Elective 15:
Timer (1 card)
This elective causes the executive times for
various stages of the program to be printed with the
map package information. To activate this option,
specify 1. 0 in field 1. The standard is not to have
the times printed.
(at installations other than Harvard the calls to the
clock routine may require modifications).
7. 3. 17. Elective 16: (only available in a special version of the
Legends (T card) program)
This elective causes a legend tape--created by
the SYMAP Program--to be read and the legends to be
printed on the GRID map.
The standard is not to have legends; normally, when
legends are desired, special edited decks of the SYMAP
and GRID programs are used to create and read in the
legends and elective 16 is not used.
The last card of the map package should have
"99999" punched in columns 1-5.
7.4. IRREGULAR OUTLINES
Although the data has been collected on the
basis of a regular grid, the outline of the study area
may not be rectangular. There are two methods for
handling this problem in "GRID":
-------
7-4.1. Filling in the Rectangle.
The program expects to read a data value for
each cell. When an irregular outline exists, the user
may complete the rectangle with data records (generally,
one grid cell data record per card) which indicate
that the cell should be printed in the background
symbolism. As the data values are read in Sub-
routine Flexin, the occurrence of the blank or back-
ground cells must be checked. When a background
cell occurs, it should be assigned a data value of
-999999. 0. This value activates the background symbol-
ism routine and causes the cell to be printed as back-
ground.
The easiest background indicator to code is a
zero, or blank, unless zero is a valid value. For
simplicity the data value of - 999999. 0 can be coded
directly.
7.4.2. Irregular Outline Package
To simplify the handling of irregular outlines
a small routine has been built into the program so that
the user can specify the shape of the outline without
filling up the rectangle with data records. The irregular
outline is specified in terms of the number of cells from
the vertical edges of the grid--left and right borders --
that are to be left blank in each row. Background
symbolism will automatically be assigned to these cells.
The information is given to the computer in a
separate package called the Irregular Outline Package.
-------
It is specified as follows:
On the first card IRREGULAR OUTLINE is punched in
columns 1-17.
On the last card 99999 is punched in columns 1-5.
Between the first and last card a series of cards is
punched with the following format:
In columns 1-5 the number of successive
rows for which the particular format is
repeated;
In columns 6-10 the number of blank cells at
the beginning of the row; and,
In columns 11-15 the number of blank cells at
the end of the row.
These numbers are integer numbers; they must be right
justified and contain no decimal points. Since the
program processes these cards in order, the first card
refers to the top row (or rows, as specified in columns
1-5), the second card refers to the second row (or,
first format change)
Example 7-6 shows how such an irregular outline
package would be used.
This package must precede the first Map Package
to which it refers. Once it has been entered, it will
be used on all successive maps until it is replaced by
a new package or deleted by a blank package. A blank
package contains only the first and last cards; it
restores the rectangular grid as the outline.
This routine is limited in that it can only handle
irregularities which are contiguous to a vertical edge of
the grid. In some cases--such as indentations at the
-------
Example 7-6
Irregular Outline Package
Assume that we wish to produce a map as in the diagram below.
The numbers show the order in which the data values would be
read in, if we use an irregular outline package.
(Row)
1
2
3
4
5
6
7
8
9
*
*
it
*
11
16
21
*
*
*
*
*
8
12
17
22
27
32
*
*
6
9
13
18
23
28
33
1
4
7
10
14
19
24
29
34
2
5
*
*
15
20
25
30
35
3
*
*
*
*
*
26
31
36
(Number of Background
Cells per row)
3
4
4
3
1
1
0
1
1
The astricks represent the blank cells. Their location would be
specified in the irregular outline package as follows:
(Row)
Column
11111111 (Number of Background
12345678901234567 Cells per row)
IRREGULAR OUTLINE
1
2
3
4
5 and 6
7
8 and 9
1
1
1
1
2
1
2
99999
3
3
2
1
0
0
1
0
1
2
2
1
0
0
3
4
4
3
1
0
1
The information for the nine rows on the map is supplied on only
seven cards, since the same formate is used successively in two
cases. The numbers in columns 1-5 must add up to the total number
of rows, or the program will stop. Every row must be accounted
for in this package, even if it has no blank cells.
-------
If the first method of specifying an irregular outline
is used--filling in the rectangle, the data values would be read
in in the order s hown below:
(Number of Background
(Row) Cells per row)
1 (1) (2) (3) 4 5 6 3
2 (7) (8) (9) 10 11 (12) 4
3 (13)(14) 15 16 (17) (18) 4
4 (19) 20 21 22 (23) (24) 3
5 25 26 27 28 29 (30) 1
6 31 32 33 34 35 (36) 1
7 37 38 39 40 41 42 0
8 (43) 44 45 46 47 48 1
9 (49) 50 51 52 53 54 1
The numbers in brackets would have values which indicate that
the cell should be printed in the background symbolism.
-------
top or bottom of the grid or blank areas in the middle
of the map--it is necessary to fill in these areas, with
background cells as specified in A, the first method
for handling irregular outlines.
7.5. SUBROUTINE FLEXHST
FLEXIN is a FORTRAN IV subroutine which is
used to specify instructions about the data value to be
mapped for each grid cell. These instructions may
specify:
(i) where the value to be mapped is located on
a data card or in a data file on tape or disk;
or,
(ii) what statistical analysis is to be performed on
a variable, or variables, to derive the value to
be mapped.
This subroutine is called by the main program
once for each data cell that is to be mapped. Each
time it is called, it reads the data card or file which
refers to the data cell. Example 7-7 shows the simp^st
use of subroutine Flexin: specifying where the value
to be mapped is located on a data card. Example 7-8
shows more complicated uses of the Subroutine--where
statistical analysis is performed on variables and
where data for more than one map must be read in.
These examples of the use of Subroutine Flexin
are only intended to demonstrate the utilization of the
arguments of the Subroutine (IFORM, T, FIRST). The
user who is familar with FORTRAN IV should be able
-------
Example 7-7
Simplest Use of Subroutine Flexin
1111111111222222222233333333334 8
Columns 1234567890123456789012345678901234567890...0
SUBROUTINE FLEXIN (IFORM,T,FIRST)
READ (5,100) T
100 FORMAT (5X,F5.2)
RETURN
END
This routine instructs the program to read the variable T
from cards (the unit 5_ specified in the read statement is
the card reader) according to the format found in statement
number 100. This format says that the value will be found in
columns 6-10 on each card. Each time that the Subroutine is
called--once for each data cell--a new value for the variable T
will be read and returned to the main program as the value to
be mapped for that data cell.
-------
Example 7-8
Multiple Uses of Subroutine Flexin
1111111111222222222233333333334 Explanatory
Columns 1234567890123456789012345678901234567890 Notes;
SUBROUTINE FLEXIN (IFORM,T,FIRST) j_
DIMENSION CONST(10) 2
LOGICAL FIRST 3
GOTO (1, 2, 3, 4, 5), IFORM 4
1 CONTINUE 5
READ(5,100)AREA,POP
100 FORMAT (2F5.0)
T=POP/AREA
RETURN
2 CONTINUE 6
IF(.NOT.FIRST)GOTO 21
READ(5,200) (CONST(I),1-1,10) 7
200 FORMAT(10F5.2)
REWIND 12
21 READ( 12)I,PICNIC,CAMPER 8
T=PICNIC+CAMPER*CONST(I)
RETURN
3 CONTINUE
RETURN
4 CONTINUE
RETURN
5 CONTINUE
RETURN
END
-------
Example 7-8
Multiple Uses of Subroutine Flexin
(Continued)
NOTES:
(1) The variables IFORM and FIRST are carried into the
subroutine as control variables. The data value to be mapped
is carried back to the main program as T. (Remember that
subroutine Flexin is called once for every value to be mapped. )
(2) Storage space is created for ten values of the array
CONST.
(3) The variable FIRST is declared to be a logical variable.
It is "true" on the first entry to Flexin and "false" on all
other entries from the main program. This is set outside the
Subroutine.
(4) As more than one map is to be made and as each
requires a different routine to read in the data, the rest of
Flexin is broken down into segments named 1,2,3,4,5. The
variable IFORM is given its value for each map in Elective
2, field 1. After reading this statement the program jumps
to the statement N CONTINUE where N is the value of IFORM.
In the example above there are only two routines, but there
is space for three more if needed. By extending the "GOTO"
statement, as many routines as needed may be used. Each
routine is sandwiched between a CONTINUE statement (which
indicates the beginning of each routine) and a RETURN state-
ment (which sends the value T back to the main program).
(5) The first segment is an extension of Example 7-7.
In this case two data values are read, AREA and POP(ulation),
and from them the population density is calculated and returned
to the main program as the value to be mapped.
-------
Example 7-8
(Continued)
(6) The second segment is intended to create a value show-
ing the amount of use a park receives each day. The variable
PICNIC is the average number of picnics per day; the variable
CAMPER is the average number of campers entering the park
each day. Campers tend to stay for different lengths of time
in different types of parks, so the number of campers entering
daily is weighted for each of ten types of parks.
(7) The ten different weights are read from one data card at
the beginning of the data deck on the first entry to Subroutine
Flexin. In all successive entries the logical variable FIRST
will be "False", and this section will be by-passed: the program
will jump from statement number 2 to statement number 21.
The logical unit 12 is also rewound on this first call to Flexin.
By rewinding the file we ensure that the first record read in
statement number 21 is the first data record desired.
(8) In each entry to Flexin the program reads the variable
I (the type of park), PICNIC (Number of picnickers) and CAMPER
(number of campers). This data is on a disk file mounted on
logical Unit 12, rather than on cards. The park type (I)
specifies which pre-stored value of CONST is to be used to
calculate the value to be mapped.
-------
to devise more sophisticated analysis and statistical
routines to be applied to his data.
7. 6. COMPUTER SUBMISSIONS
After the packages have been prepared, they
must be placed in the correct order together with the
control cards needed for submission to the computer.
The normal order of a deck of cards for submission to
an IBM 360 computer is:
Control Cards
Fortran Program (including Subroutine FLEXIN)
More Control Cards
Data on which the program is to operate
As procedures vary at each installation, the user is
advised to consult with a programmer who knows how
his own installation handles the control cards and its
exact procedures.
The data on which the program operates consists
of IRREGULAR OUTLINES PACKAGE, the MAP PACKAGE,
and the DATA INPUT. These packages must be in the
correct position with respect to each other in the card
input deck:
(i) The IRREGULAR OUTLINES package must precede
the MAP package to which it refers. Once an
IRREGULAR OUTLINE has been specified it will
be used for every MAP package until it is
supressed.
(ii) Each time the program reads a MAP package
it will attempt to make a map. There is no
limit to the number of MAP packages in any one
submission.
-------
(iii) If the DATA INPUT is being read from cards, it
must immediately follow the MAP package to which
it refers.
The end of the data input is signaled by a card with "END"
punched in columns 1-3 immediately following the last MAP
PACKAGE--or the last data card, if the data is on cards.
Example 7-9 shows a typical submission where four maps
are required, the data input is on cards for one map and
tape or disk for the other three, and an irregular outline
is specified for two maps but not for the other two.
In each case when the computer encounters a MAP
PACKAGE, it will make a map based on the information which
preceeds the package plus any DATA INPUT on cards
immediately following the package. The information proceeding
the package is generally an IRREGULAR OUTLINES PACKAGE;
the package will be retained for successive maps until it is
changed or removed.
-------
Example 7-9
Sample Submission for Four Maps
Control Cards
Fortran Programs
Control Cards
Data
IRREGULAR OUTLINES
irregular out-
lines for first
map
99999
MAP
first map
package
Data input for first map
on tape or disk
99999
MAP
irregular out-
line retained
for second map.
second map
package
Data input for second
map on tape or disk
99999
IRREGULAR OUTLINE
99999
MAP
Outline removed
for third map
with blank package
third map
package
Data input for third
map on cards
99999
9.0
10.0
7.1
MAP
17.2
18.1
20.3
fourth map
package
Data input for fourth
map on tape or disk
99999
END
indicates end
of data.
-------
8' PROGRAM MODIFICATIONS
A number of significant changes in the SYMAP and
GRID programs were made during the project to facilitate
the mapping of the coal data, particularly data having to do
with quantities of coal. In the SYMAP program changes
were made in the printout of the textual information below
the map. The major changes to the GRID program involved
the rewriting of the legends routine that had been included
in previous versions of the program run on the IBM 7094.
This enables the same kind of legends used with the SYMAP
program to be displayed on a map produced by GRID. For-
merly it was not possible to include legends with the GRID
program. The use of legends also required the rewriting
of a subroutine in SYMAP.
The changes made to both the SYMAP and GRID
programs were not incorporated into the existing standard
versions of the programs. Instead, the specific changes to
the standard programs necessary to duplicate the work of
this project are documented in the following sections. The
final section provides the necessary user-specifications for
the C-LEGENDS package. Since this package is rarely used
--it has been replaced by the C-OTOLEGENDS package--the
specifications were not covered under the section entitled
Preparation of Packages.
8. 1 PRINTOUT STATEMENTS IN SYMAP
Two changes were made in the way that textual infor-
mation following the maps is printed out by the SYMAP pro-
gram. Since the clock subroutine is presently inoperable
-------
for runs on the IBM 360-65 at the Harvard Computing Center,
all statements specifying TIME= were deleted from the print-
out. Secondly, the way in which the ranges of data values
assigned to each of the data value levels has been specified
in the past has been unclear to many users of the program.
Therefore, the lines stating "absolute value range applying
to each level (maximum included in highest levels only)",
were deleted from the printout.
The explanation of the value ranges specified which
follows this statement was changed as follows:
Value range changed from
level 1 2
Minimum 1. 00 2. 00
Maximum 2.00 3. 00 etc.
to
level 1 2
Minimum 1. 00 2. 00
Maximum 1.99 2. 99 etc.
In the normal version of the program, it was not clear
which level the value 2. 00 would be assigned to.; in the new
printout of the level ranges, this confusion has been eliminated.
Changes to the SYMAP program were necessary in MAIN and
Subroutine FINAL. These are shown in Example 8-1. No
other changes need be made to the SYMAP source deck and no
changes are required in the way the user specifies his input.
-------
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
PROGRAM TITLE
VERS ION
DATF
OR IGINATOR
PROGRAMMERS
PRODUCER
^. l'> FOR SYSTEM 3OO
JULY '^.1970
HOWARD T. FISHER
NORTHWESTERN UNIVERSITY
8FTTY BENSON, W. G. VALANCE* DONALD
SHEPARD, ROBERT RUSSELL, MARION MANOS
LABORATORY FOR COMPUTER GRAPHICS AND
SPATIAL ANALYSIS
HARVARD CENTER FOR ENVIRONMENTAL DESIGN
STUDIES
GRADUATE SCHOOL OF DESIGN
HARVARD UNIVERSITY
CAMBRIDGE, MASSACHUSETTS 02138
UNITED STATES OF AMERICA
COMMON /FREQX NFREQ( 1 3) ,NLOC( 12) ,KTI ME,KTM
COMMON/LEV INF/NLEV,AMM(2),SIZLEV( 10),ZMN,ZMX
COMMON /C2/ DPMM(2,2 ) ,OLMM(2 ,2) ,FIGMM(2,2 ) ,COVMM(2,2)
COMMON/SYMBLS/JUMBLE(4,42),LCHAR(4,100),NLCHAR
COMMON /TITLES/ TITLE(54) , NT X,TEXT(540 )
COMMON /C8AR/ XYA(51 ,3) ,L I STP(20) ,NPT*STR1
COMMON /INVS/ ZINMIN,ZINMAX
COMMON /Dl/ J2(4),AJ2(4)
COMMON /CIO/ RF,RG1 ,RG,RP,RGS,ERR,FC,DELTAX,DFLTAY,TOL,0 A,DI *G
COMMON /BUG/ N8UG,RDUMP(5)
COMMON /DISTM/ ETPDis,TOPDis
COMMON /VALM/ 7EMIN,FZEM I N,ZEMA X,EZEMAX
COMMON /NUMBER/NPTS,NVALS,NIND,NBOUN,NFIG,NLEG»NCOV,NFHAW5,NINnL,
1 NSLDPS
COMMON /LOCATN/ I NFXT , IPTF, I VALF , IMDF, I NDLF, ISLOPF
COMMON /MAPDIM/ CHSPAN(2 ),XYE XT(2,2 ) ,SHI FT(2,? ) ,SCALF,RCPCH(? )
COMMON /C3/ NXY(2 ) ,RXY(2)
E0000100
E0000500
E0000600
E0000700
E0000800
E0000900
F0001000
EOOO1100
E0001200
E0001300
EOOO1400
F0001500
E0001600
E0001700
E0001750
E0001800
E0001850
E0001900
F0002000
E0002100
E0002200
E0002300
F0002400
E0002500
FOOOP600
E0002700
F0002800
F0002900
F0003000
E0003100
F0003200
E00033OO
E0003400
E0003500
E0003600
E0003700
F0003800
E0003900
F0004000
F0004100
Example 8-1
-------
c
c
c
c
c
c
c
c
c
c
c
c
c
c
COMMON /INDS/ IND2(lb,10)
COMMON /DIMFNS/ NRC(2 ) , TLBCD(2 ) ,RCPXY(2 )
COMMON /CONCD/ PR I NT,OPT,FACT(3 ) ,DI V(3 ),TOPT,SONS
COMMON //PRINT/ UPRINT
COMMON COMMON (10000 )
LOGICAL PRINT,OPT,SONS
WRITE PROGRAM HFADING
WRITE (6,1000)
WRITE INITIAL TIME
REWIND INTERMEDIATE TAPES
REWIND 1
REWIND 2
REWIND 3
REWIND 4
REPEAT FOLLOWING LOOP ONCE FOR EACH MAP
10 CONTINUE
CALL INPUT ROUTINE
CALL INPUT
CALL INITIALIZATION ROUTINE
CALL INIT (SONS)
CALL MAPPING ROUTINE
CALL MAP
CALL FINALIZATION ROUTINE
CALL FINAL
GO ON TO NEXT MAP
GO TO 10
1000 FORMAT (17H1SYMAP, VERSION 5/54HOLABORATORY FOR COMPUTER GRAPHIC
1AND SPATIAL ANALYSIS/48H HARVARD CENTER FOR ENVIRONMENTAL DFSIGN
2TUDIES/26H GRADUATE SCHOOL OF DFSIGN/19H HARVARD UNIVERSITY/
3 31H CAMBRIDGE, MASSACHUSETTS 02138/25H UNITED STATES OF AMERICA
END
EOOOA200
E0004300
F0004400
E0004SOO
E00045SO
E0004600
E0004610
F0004700
E0004800
E0004900
E0005000
E0005200
E0005300
E0005400
E0005500
E0005600
EO005700
E0006100
E0006200
E0006300
E0006400
E0006500
EOOO6600
E0007000"
E0007100
E0007200
E0007600 '
E0007700
E0008100
E0008200
E0008300
E0008700 "
E0008800
E0008900
F0009000
S F0009100
SF0009200
E0009300
) E0009400
E0009600
. 3 deletes
a deletion
3 deletes
,3 deletes
3 deletes
-------
c
c
c
c
c
c
IS)
oo
i
BLOCK DATA
INITIALIZES MAP NUMhJl-K, TIME, AND AMOUNT I if- STORAGE
COMMON /KEEP/ MAPNUM,TI ME,NSTOR, ITHCNT
DATA ITPCNT/0/
ITPCNT COUNTS THE NUMBER OF MAPS WRITTEN ON TAPI; b UNDER OPTION 21
DATA MAPNUM/0/,TIME/0.0/,NSTOR/100OO/
END
LOGICAL FUNCTION VALID(Z)
RETURNS TRUE IE Z IS OKAY
COMMON /INVS/ ZINM IN,ZINMAX
COMMON. /OPTION/ I OPT ( 40 ) , IT APE P , PCHD
LOGICAL IOPT,PCHD
ZPT=Z
VALID=.NOT. IOPT(18) .OR. ZPT .NE. 0.0 .OR. S I GN( 1.0»ZPT ) .GT.
IF (.NOT. VALID) RETURN
IF (IOPT(19)) GO TO 10
IF (IOPT(20)) VALID = Z.PT .GT. ZINMAX
RETURN
IF (IOPT(20)) GO TO 20
VALID=ZPT .LT. ZINMIN
RETURN
IF (ZINMAX .GE. ZINMIN) GO TO 30
C
C
10
20
30
VALID=ZPT .GT. ZINMAX .AND. ZPT .LT. ZINMIN
RETURN
VALID=ZPT »GT. ZINMAX .OR. ZPT .LT. ZINMIN
RETURN
END
FUNCTION LEVEL(T)
RETURNS THE LEVEL IN WHICH VALUE T LIES
COMMON /LIMITS/ NLEVEL,ZMAX,ZMIN(10)
-1 IS RETURNED IF VALUE T IS HIGH, 0
IF (T.LE.ZMAX) GO TO 10
LEVEL=-1
RFTURN
IF LOW
E0009800
E 0 0 0 9 9 0 0
E0010000
E0010200
E0010250
E0010255
E0010300
E0010400
E0010500
E0010600
E001300O-
E0013100
E0013200
E0013300
E0013400
E0013500
E0013600
E0013700
,OE0013800
E0013900
E0014000
E0014100
E0014200
E0014300
E0014400
E0014500
E0014600
E0014700
E0014800
E0014900
E0015000
E0015100
E0015300
E0015400
E0015500
E0015600
E 0 0 1 5 7 0 0
E 0 0 1 5 b 0 0
EOO15900
E0016000
Subroutine
-------
10 DO 20 J=1,NU-VKL F0016100
IF(T.LT./MIN(J)) GO TO 30 F0016200
20 CONTINUE E0016250
LEVEL=NLEVFL E0016300
RETURN E0016400
30 LEVFL=J-1 E0016500
RETURN E0016600
END E0016700
-------
c
c
I
tv
<£>
I
C
c
c
c
SUBROUTINE FINAL
DO HISTOGRAM HFADINC-,
COMMON /KEEP/ MAP-MUM ,T IME ,NSTOk , I TPCNT
COMMON /OPTION/ I OPT (40 ) , ITAPEP
DIMFNSION UTAPEC131)
COMMON /TITLES/ T I TLE(54 ) ,NT X , TEXT(540 )
COMMON/SYMBLS/ JUMBLE(4,30) ,LCHAK(4,100 ) ,NLCHAR
COMMON /FREO/ NFREQ( 13 ) ,NLOCS( 12) ,KT I ME,KTM
COMMON /LIMITS/ NLEVEL , ZMAX , ZMIN( 10)
COMMON /NUM8ER/NPTS,NVALS,NIND»NBOUN,NFIG,NLEG,NCDV,NBARS»MINDL»
1NSLOPS
COMMON /LEVINF/ NLEV,AMM(2 ) ,S I ZLEV( 10 ) , ZMN,ZMX
DIMENSION IFREQ(12),SYM(30,4),ASYM(30t4),SYMBOL(30,4)
DIMENSION VAL(12),PVAL(11)
DIMENSION A(120),KY(10),ABOVE(5)
INTEGER SYM,ASYM,SYMBOL
LOGICAL IOPT,FIRST
DATA EQSIGN/1H=/
DATA KY/2H 1,2H 2,2H 3»2H 4,2H 5,2H 6,2H 7,2H 8,2H 9,2H10x
DATA LOW/2H L/,HIGH/2H H/
DATA ABOVE/1 HA,1HB,1 HO, 1HV,1 HE/,BLANK/1H /
DATA A/120*1H /
IF (NPTS . NE.
NFREQ(11)=0
NFREQ(12)=0
!MFREQ< 13 )=0
IF (IOPT(21))
0
OR. NFIG .NE. 0) GO TO 5
END FILE 8
MINIMUM VALUES
5 IF ( NFPEQ( 1 1 ) .EO.
0) GO TO 30
DO 10 1
J = J+ 1
10 VAL< J ) =
J=NLEVEL+1
=1 ,NLEVEL
PFRCENTS FOR EACH LEVEL
VAL (J+l) =ZMAX
IF ( ( 7FAA X-ZMIN( 1 ) ) .EG. 0.0) RANGE=100.00
E043S* ^00
E0439800
E0439900
E0439910
E0440000
E0440001
E0440100
E0440200
E0440300
E0440400
E0440500
E0440600
F0440700
E0440800
E0440900
E0441000
E0441 100
E0441 200
PO44 1 300
E 044- 1 400
FQ44 1 500
E 0441 600
t
E0441 700
E0441 71 0
E0441 7?0
E0441730
F0441740
F0441750
E0441800
E044 1900
E044?000
P0442100
E0442200
E0442300
F.044?500
E044P700
E044?800
E 044 ?900
E04430OO
insert
-------
c
c
c
c
20
30
40
50
60
70
IF ( ( ZMAX-ZM I N( 1 ) )
DO 20 1-2, J
PVAL( I ) = ( VAL ( 1 + 1 )-VAL ( I ) )#RANGE
GO TO 60
DO 40 1=1 ,NLEVFL
VAL( I ) = ZMIN( I )
J=NLEVEL
VAL( J+l )=ZMAX
IF ( ( ZMAX-ZMIN( 1 ) ) .EQ. 0.0)
IF ( < ZMAX-ZMIN( 1 ) ) ,NE. 0.0)
DO 50 1=1 , J
PVAL( I )=( VAL( 1 + 1 )-VAL( I ) ) GRANGE
IF (NLEVEL .EQ. 1) PVAL (1) = 100.0
DO 70 1 = 1 ,4
DO 70 IJ=1 ,30
SYMBOL* IJ , I ) = JUMBLE ( I ,IJ)
TFXT OPTION
IF (.NOT. IOPT(10)) NTX=0
WRITE (6,1030) TITLE
IF (NTX .NE. 0) WRITE (6,1040)
.NF. 0.0) RANGE=100.OO/ ( ZMAX-/M IN( 1 ))
80
90
1 00
1 1 0
120
RANGED 100.00
RANGE=100.00/(ZMAX-ZMIN(1
( TEXT ( I ) , I = 1 , NT X )
LOW VALUES NOW BECOME THE
IF (NFREQ(11) .EQ. 0) GO
J=l
DO 90 L=l,4
ASYM( J ,L) = SYM8OL(22,L)
SYM (J,L) = SYMBOL (21,L)
IFREQ (J) = NFREQ (11)
DO 110 I =1 ,NLEVEL
J = J+l
DO 100 L=l,4
ASYM(J,L)=SYM8OL( I + 10,L )
SYM( J,L) = SYMBOL( I ,L)
IFRFQ (J)= NFREO(I)
GO TO 150
DO 140 I = 1 , J
FIRST LEVEL
TO 120
F0443050
E0443100
F0443200
E0443300
F0443400
E0443500
E0443600
E0443700
E0443800
E0443850
E0443900
E0444000
E0444100
E0444200
E0444300
E0444400
E0444500
E0444600
E0444700
E0444800
E0444900
E0445000
E0445100
E0445200
E0445300
E0445400
E0445500
E0445600
E0445700
E0445800
E0445900
E0446000
FQ446100
E0446200
F0446300 .
E0446400
E0446500
-------
I
N
Ui
N
I
c
c
130
140
150
160
0 O 130 L = 1 , 4
ASYM( I ,L) = SYMBOL( 1 + 10,L )
SYM (I,L) = SYMBOL (I.L)
IF ( MOTS . EQ. 0 .ANH. NF 1 G
IFPFQ ( I ) = NFREO ( I )
o )
NFRFU( I )=0
HIGH VALUES EOUAL LAST
IF (NFREO (12) .FO. 0)
J = J + 1
00 1 60 L=l ,4
ASYM ( J,L)=SYMBOL(24,L)
SYM( J , L )=SYMBOL( 23, L )
IFRFO( J )=NFREQ( 1 2 )
LFVFL
GO TO
170
170 IF (IOPT(24)) GO TO 240
WRITE (6,1000) ZMM,ZMX
1000 FORMAT (///25H DATA VALUE
EXTREMES ARE ,2F12.2//)
C
C
C
C
TOTAL AMOUNT OF INVALID VALUES
IF (NFREO (13) .NE. 0 ) WRITE (6,1050) NFREO (13)
IF (KTIME.GT.O) WR I TE( 6,1055 ) KTIME,KTM
1055 FORMAT (1X,33HTOTAL SUPERIMPOSED DATA POINTS IS,I8,18H.
1UR IN ,I3,11H LOCATIONS.//)
WRITE OUT MINIMUM MAXIMUM AND PERCENTS
KWORK=J+1
IF (NFREO(12) .EO. 0) GO TO 210
KJK= ( KWORK* 1 0 )-5
DO 180 I I = 1 ,NX
JD= I I
IF (JD .EO. L) GO TO 190
180 A( I I ) =HLANK
190 N N = M K + 4
J N N = 0
OO 200 JJ=NK,MN
JNN=JNN+1
200 A( JJ ) = ABOVE( JNN )
GO TO 220
21 0
THESF
E0446600
F0446700
F 0446800
F0446810
F0446900
F0447000
F 0447100
F 0 4 4 7 2 0 0
F0447300
F0447400
F0447500
F0447600
F0447700
F0447800
F0447900
E0448000
E0448100
E044820 0
E0448300
E0448400
E0448410
OCCE0448420
E0448430
F0448500
E0448600
F0448700
E0448800
F0449000
ED449100
E0449200
E o 4 4 9:-; o o
F0449400
F 04 £.9500
E0449600
E0449700
F 0 4 4 9 H 0 0
K 0449900
F 045 0000
F0450300
i- O45 0400
a deletion
a substitution
-------
IK (NFRFO(II) .FO. n .AND. Nr-' HF O ( 1 2 ) .E,J) F0451300
Mi"KMl=NWORK-l , E0451310 "
on ?25 i=2,NWKMi E0451320
IF (NWORK.FO.2) GO TO 225 EO45133O
\/AL( I )=VAL( I )-.01 E0451340
2?S CONTINUE E0451350
'MRITE (6,1100) ( VAL( I ) , 1=2 ,NWDRK ) E0451400
IF (MFREn(12).EO.O) GO TO 230 E0451410
IF (MN.GT.120) NN=120 E0451420
"IPITE (6,1105) ( A( JJ ) , JJ=1 ,NN) E0451430
1105 FORMAT ( 1H+,9X , 120A 1 ) E0451440
r-^0 WRITE (6,1110) F0451500
IP (yFREQ(ll) .FO. 0) WPITF (6,1120) (MVAL(I),I=1,J) E04516OO
IF (MFREO(ll) .NF. 0) WRITE (6,1130) (PVAL( I ) , I=2,J ) E0451700
C E0451800
C ACTl AL VALUES E0451900
?40 IF (NFREQ(12) .NF. 0) J=J+1
ro WRI TF ( 6, 1 020 )
£ IF(MFRC0(11) .EG. 0 .AND. MFREO(12) .FQ. 0) WFITF (6,1140)(KN,KN=1F045??OO
1 1 , J )
IP (MFREQ(ll) .NF. 0) L=J-1
IF (MFREO(12) .NF. 0) L=J-1 FO45P500
IF (NFREO(ll) .NF. 0 .AND. NFREQ(12) .NE. 0) L=J-2 FQ452600
IF (NFRFO(ll) .NF. 0 .AMD. MFREQ(12) .NE. 0)WRITF(6,1150)LOW,(«Y(MF045P700
1 ) ,'-1=l ,L) ,Hir,H F045P800
IF (NFREO(ll) .EO. 0 .AND. MFREQ(12) .NE. 0 ) Wfi I TE ( t> » 1 1 ^ 0 ) { K Y ( M ) ,'/I =FO 45 ?9OO
l l ,L),MIGH F045^ooo
IF (NF^FO(ll) .NF. 0 .AND. NFREO(12) .EO. 0 ) WH I TF ( 6 , 1 1 5 0 )I,H W , ( K Y ( MF O4S 3 1 00
1 ) , M = 1 , !_ ) F O 4 5 3 3 o o
FIRST = .TDDF. F0453300
MWHPK= ( 1 0-,: J ) + 1 F0453400
WOITF ( 6,1160) (EOSIGN , I=1,NWORK) FOA535OO
IF (.I-'OT. FIRST) Gil TO 340 FO/,^3(,nO
IF (IOPT(26)) GO TO 300 FO45'-57on
OD^7UN=1.P F O ^ S ? H O O
-------
I
t\3
(Jl
*>
I
WRITE (6,1180) ( ( S YM ( L , 1 ) , M = 1 , 9 ) , L = 1 , J )
DO 260 K =1 ,3
KWOPK=5-K
260 WRITE (6,1170) ( ( SYM(L,KWORK ) ,M=1 ,9) ,L=1 , J )
270 CONTINUE
IF (.NOT. FIRST) GO TO 250
WRITE (6,1190) ( (SYM(L, 1 ) ,M=1 ,4 ) ,ASYM(L, 1 ) , (SYM(L ,
DO 280 K=l,3
KWORK=5-K
280 WRITE (6, 1 170 ) ( ( SYM(L,KWORK ) ,M=1 ,4 ) ,ASYM(L,KWORK ) ,
1 1 ,4 ) ,L=1 ,J )
290 FIRST=.FALSE.
GO TO 255
300 DO 320 N=l ,2
DO 310 K = 1 , 3
KWORK = 5-K
310 WRITE (6,1170) ( (SYM(L,KWORK ) ,M=1 ,9 ) ,L=1 ,J )
320 WRITE (6,1180) ( (SYM(L,1 ) ,M = 1 ,9) ,L= 1 , J )
IF (.NOT. FIRST) GO TO 250
DO 330 K =1 ,3
KWORK=5-K
330 WRITE (6,1170) ((SYM(L,KWORK),M=1 ,4 ),ASYM(L,KWORK )
1=1,4) ,L=1 ,J)
WRITE (6,1190) ( (SYM(L, 1 ) ,M=l ,4) ,ASYM (L, 1 ) , (SYM(L
U )
FIRST =.FALSE.
GO TO 300
340 NLFVEL=J
WRITE (6,1200) (IFREO(I),I=1,J)
IF (.NOT. IOPT(9) .AND. NVALS .NE. 0 .AND. NLEVEL
1 CALL HGRAM ( NILE VEL , NF RE Q , I F RE O , S YM , A S YM )
IF (.NOT.IOPT (21)) GO TO 400
ppjMj TAPE VALUES
ITPCNT=ITPCNT+1
IF ( ITAPEP.LT. 1 ) GO TO 390
R F "i T M D 8
K=l
IF ( ITPCNT.FO. 1 ) GO TO 359
345 C n M T I N U E
FO^s3900
F0454000
F0454100
F0454POO
F045 * 300
F 045 4.400
1 ) , M = 1 , 4 ) , L = 1 , J ) E 0 45 45 0 0
E0454600
F0454700
(SYM(L,KWORK ) ,M=E0454800
F0454900
F0455 100
E0455150
E0455200
FE0455300
E0455400
E0455500
F0455600
E0455700
E0455800
E0455900
, (SYM(L»KWORK ) ,ME0456000
F0456100
,1),M=1,4),L=1, F0456200
E0456300
E0456400
F04565OO
E0456600
F0456700
.NE. 1) E0456800
F0456900
E045690 1
F0456902
E0456903
F0456904
F0456905
F0456907
F0456908
F 0456909
-------
ui
i
on 350 1=1,10000
350 READ (8,END=355) SINK
355 K = K+1
IF (K.EQ.ITPCNT) GO TO 359
GO TH 345
359 WRITE (6,360)
360 FORMAT (1H1,57HLISTING OF VALUES WRITTEN ON TAPE UNIT
ION 21.//1X,9HROW COLS.)
READ (8) NR,NC
NTIMES=1
IF (NC.LE.130) GO TO 362
NTIMES=NC/130
IF (MOD(NC, 130 ) .NE.O ) NT I MES = NTIMES+1
362 DO 385 K=1,NTIMES
NCC=NC
IF (NC.LE.130) GO TO 363
NCC=130
363 OP 380 1=1,NR
NC=NC-130
READ(8) (UTAPE(J),J=l,NCC)
IFIR5T=1
LAST=10
WRITE (6,397) I , I F I RST, (UTAPE( J) ,J=IFIRST,LAST )
397 FORMAT ( 1 HO, I 3,2X, I 3, 10(F10.4, 1X) )
GO TO 371
369 WRITE (6,370) IFIRST, (UTAPE(J ) ,J= I F I RST,LAST )
370 FORMAT ( 6X, I 3, 10(F 1 0 . 4 , 1X ) )
371 IF (LAST.GE.NCC) GO TO 380
IF IRST=IFIRST + 10
LAST=LAST+10
IF (LAST.GT.NCC ) LAST = NCC
GO TO 369
380 CONTINUE
IF (NT IMES.EQ.1 ) GO TO 385
WRITE (6,381)
381 FORMAT (////1X,24HNFXT STRIP OF MAP VALUES)
385 CONTINUE
390 END FILE 8
F045691 1
E045691?
F0456913
F0456914
E 0 4 5 6 9 1 5
F0456916
8 UNDER OPTIE0456917
E0456918
E0456919
E0456922
E0456923
E0456924
E0456925
E0456926
E0456927
E0456928
E0456929
E0456931
E0456930
E0456932
E0456933
E0456934
E0456935
E0456936
E0456937
E0456938
E0456939
E0456940
E0456941
E045694?
E045694-3
E0456944
E0456945
E0456946
E0456947
E0456948
E0456949
E0456950
-------
400
1020
1030
1040
1050
1080
1090
1 100
1110
1 120
1130
1 140
1 150
1 160
1 170
1 180
1 190
1200
to
(J\
l^\
i
RETURN
FORMAT (
1 LEVEL)
FORMAT (
FORMAT (
FORMAT (
FORMAT (
FORMAT (
FORMAT (
FORMAT (
10 EACH L
FORMAT
FORMAT (
FORMAT (
FORMAT (
FORMAT (
FORMAT (
FORMAT
FORMAT (
FORMAT (
END
///5RH FREQUENCY DISTRIBUTION OF
///(1X,18A4/1X ) )
/( 60X , 18A4 ) )
///30H TOTAL MISSING DATA
3 X , 7 HM I N I M U M , 1 2 F 1 0 . 2 )
3X,7HMINI MUM,5X,5HBELOW, 1 IF 10
3 X,7HM A X I MUM,12F10.2 )
///64H PERCENTAGE OF TOTAL
LEVEL )
(//10X,12F10.2)
/ / 2 0 X , 1 1 F 1 0 . 2 )
3X,5HLEVEL,3X,12(16,4X)/)
3X,5HLEVEL,7X,11(A2,8X),A2
1 1X, 121 Al )
1H+, 1 OX , 12( 1 X,9A1 ) )
( 1 1X, 12( 1X,9A1 ) )
3X,7HSYMBOLS,1X,12( 1X , 9A1 ) )
3X,5HFREO.,3X,12(I6,4X))
POINTS I
,2 )
E0456951
DATA MilNT VALUES IN FACHF0457000
E04571 00
E0457200
E0457300
IH//) E0457400
E0457900
E0458000
E0458100
ABSOLUTE VALUE RANGE APPLYING TE0458200
E0458300
E0458400
E0458500
F0458600
/) E0458700
E0458800
E045R900
F0459000
E0459100
E0459200
E0459400
4 deletes1
0398 CARDS
-------
8.2 LEGENDS WITH GRID
Earlier versions of the GRID program--run on the
IBM 7094 at the Harvard Computing Center--had provided
for a legend package on cards and tape which would allow
the inclusion of legends similar to those used with SYMAP.
Considerable programming was necessary to make these
changes compatible with the current versions of SYMAP and
GRID run on the IBM 360-65.
The final solution involved the following changes to
the current versions of the programs:
(i) changes in one subroutine of SYMAP so that all
legends appearing on the output map are written out
by row and column onto a file stored on disk; and,
(ii) changes in one subroutine in GRID so that these legends
can be read in by rows and columns and shown on the
map output by GRID in the same way they were shown
by SYMAP. The maps must be for the same area and
at the same size.
For the user the only considerations are specifying
the versions of SYMAP and GRID edited to perform this task.
First of all, the special version of SYMAP is used with only
the legends and map packages. In the F-MAP package elec-
tives 1 and 2 should be specified as usual, elective 3 as one
level, and elective 7 with some symbol not used in the legends
for both the level and background symbolism. The legends
package should be specified as usual. This separate run of
SYMAP will create the necessary legends file on disk.
-------
The edited version of the GRID program is used,
for mapping; no other changes are necessary from a normal
run with the GRID program.
The changes in SYMAP occur only in Subroutine OUT,
shown in Example 8-2. These changes cause the legends to
be transferred onto the specified disk file.
For each cell which has no symbol for level or back-
ground--and therefore does have a legend--one record will
be written on a disk data set containing all the information
needed for the GRID program. The format for these records
is (215, 4A1). The first integer is the row of the legend, and
the second integer is the column of the legend; the four char-
acters are the characters for one cell, one character per
overprint possible.
Changes must be made in Subroutine FLATON of the
GRID program, shown in Example 8-3. In this way the legends
may be read directly from disk data set unit 8.
8. 3 C-LEGEND5 PACKAGE
The C-LEGENDS package has been made obsolete by
the C-OTOLEGENDS package and consequently is not included
in the present computer program manuals. However, this
package was used for the study area mapping to show legends
that did not change in scale.
The C-LEGENDS package can be used to show any of
the legends prepared with the C-OTOLEGENDS package; how-
ever, the legends will be incorrect if scale changes occur and
-------
C
C
C
C
C
L
t
C
C
L
i
C
C
SUBROUTINE OUT (IROW)
wRrrrs out ON~e ~LTNE~OF MAP STRIP, INCLUDING OVERPRINTS IF ANY
SECOND PART WRITES LEGEND ON TAPE
COMMON /NUMBER/ NPTS.NVALS, NI ND, NBOUN,NF I G, NLEG,NCOV,NBARS,NINDL,
1 NSLOPS
COMMON /OUTPUT/ IOUT, IADD.MAPALLC A, 131)
COMMON /OPTION/ IOPTUO)
LOGICAL IOPT
usnn BLANK? nr /.IPLUS/IH+/
If 1 IROW. EQ. 1) REWIND 12
I-1LL IN LEGENDS
IF (NLEG .NE. 0) CALL LEGO (IROW)
WRITE LINE
IP ( iNOT. IGPT(26I) WRITE (6,1000) IBLANK, (MAP ALL ( 1, J) ,J=1 , IOUT )
WRITE OVERPRINT LINES
DO 30 1=2,4
DO 10 J=1,IOUT
IF (MAPALL(I,J) .NE. IBLANK) GO TO 20
10 CONTINUE
GO TO 30
20 WRIIfc (6,1000) 1PLUS, (MAPALL ( I ,J ) ,J=1, 10UT )
30 CONTINUE
WRITE LINE
E0279400
E0279500
ES2T96QO
E0279700
E02T9WO
E0279900
£0280000
E0280100
E0280200
E0280300
E0280400
E0280500
E0280600
E0280700
E0280800
E0280900
E0281000
E0281100
E0281300
E0281400
E0281500
E0281600
E0281700
E0281800
E0281900
Example 8-2
-------
TF~ (IOPT126) ) WRITE (6,1000) IBLANK, IMAPALL { 1 , J) , J=l , TOUT } EQ2S2000
DEFINE POL AS INTEGER AND ASSIGN TO IT $ __ _
iNTtGER TFOL "
DATA DOL/1HS/
C HUH ALL COLUMNS OF THE ROW CHECK IF THERE T3 A LEGEND
C ASSIGNED TO THE CELL. IF NOT TRANSFER TO 45
IF I lKU»rET3.a.lDT?7TKDWVh(J.6*T RFTURN ------------
_ DO 45 J=2,124
l\- IMAPALLd.JJ .tU.UULl GU IU 4b - ~ - —
WRITE (12,1001) IROW, J,(MAPALL( I, J),I=1,4)
nnri HUKMAI ( 2 1 b -,^»moxi ---------------------------
40 CONTINUE
45 CuN l iNUt
50 CONTINUE
Kt| UHN —— - ^02 S2100
1000 FORMAT (132A1) E0282200
---- END ---- ----------------------------------------------------------- E028230O
-------
SUBROUTINE FLATCN(ISH,NO)
COMMON PJ20COO)
COMMQN/B/ NLEVEL,IFORM,NOD,IHIST,NTX,OPT( 25)
COMMON/A/ NCD,NCA,NGD,NGA,NSHEET,NCS,NCF,NCL,NUMCH,NCST,NRST
COMMON /SYMBLS/ SYMBOL(25,4),NS(10).TITLE(60),TEXTC800)
COMMON /OUTPUT/ MAPALL(129,4)
INTEGER*2 X(8 ,129),INUMi129,4)
INTEGER BLANK,SYMBOL,SYM
LOGICAL OPT,FIN
DIMENSION NUM<10),STCEL(4,5),IR(4)
DATA BLANK/1H /,PLUS/1H+/,SYMI/1HI/,SYM/1HO/
DATA NUM/1HO,1H1,1H2,1H3,1H4,1H5, 1H6,1H7,1H8,1H9/
DATA STCEL/16.0,6.0,15.0,8.0,IS.0,9.0,14.0,11.0,4.0,17.0,1.0,12.0,
12.0,5.0,10.0,19.0,20.0,7.0,13.0,3.O/
DIMENSION LEGENDC4I
C
C
C SETS THE PARAMETERS FOR EACH SHEET OF THE MAP
OPTU6) = .TRUE.
FIN=.FALSE.
IEXT=0
C
' IF (QPTU6H REWIND 8
o^ IF (OPTU6)) READ (8,1001) LHCRRO,LA,LEGEND
f 1001 FORMAT (215,4A1)
IF (ND.GT.l) LHCRRO=LHORRO-NCC*(ND-1)
LHORRO=LHORRO-H
, N=NCA
MNCP=0
IF
-------
NCH=3
IF
-------
DO 130 K=1,N
ID = ID «• 1
IF(P(ID).EQ.25.0) GO TO 130
C INSERTS SYMBOLISM KEY FOR A GRID CELL
DO 132 1=1,NGD
DO 132 JY=1,NGA
J=JB*JY
IFCOPTC12J) GO TO 131
X(I,J) = P(ID)
IF(OPT<8)) GO TO 132
IF
-------
00 223 J=l,2
DO 224 1=1,NCH
I 1= IR ( I ) * 1
MAPALL1
C
GO TO 103
333 LHORRO=0
105 CONTINUE
WRITE (9,1000) BLANK,BORDER,(MAPALLU,KK) ,J = 1,129),BORDER
IF(OPT(12J) GO TO 124
C WRITES OVERPRINT LINES
DO 123 1=2,4
DO 120 J=l,129
IF (MAPALLU.I) .NE. BLANK) GO TO 121
120 CONTINUE
GO TO 123
121 WRITE(9,1000) PLUS .BLANK ,(MAPALL(J,I),J=l,129),BLANK
123 CONTINUE
124 CONTINUE
IF (GPTU6)J RETURN
GO TO 100
1000 FORMAT U32A1)
-------
the coding requirements are not as flexible. For instance,
all print characters must be specified separately: line and
area legends, therefore, require as many cards as there are
print locations for the legend on the map* This section covers
the necessary information for preparing a C-LEGENDS package
as used for the study area.
The package is used to specify the location and content
of any special wording, numbering, or other symbolism
desired on the face of the map, on or within the rectangular
map border. Each row of any legend is considered a separate
legend, to be treated independently. Two or more legends in
the same row must also be treated independently, unless they
are to appear continuously, in which case they can be combined
if desired.
No single legend (or combined legends) can be longer
than 50 characters. If a legend longer than that is desired,
it should be divided into two or more legends, each not over
50 characters in length.
On the first card of this package, punch "C-LEGENDS"
in column 1-9.
On the last card punch the number "99999" in columns
1-5.
On other cards, to be inserted between the first and
last, working in any convenient sequence, punch the required
coordinate locations for each separate legend, using integer
numbers^ followed by the legend characters or symbolism.
Punch the number of the row (down from the top border) in
which the legend is to appear, right justified in columns 1-5.
* The exception is a horizontal line, or row legend. Over-
printing at selected locations can be specified for a row legend;
this is not possible with the point (text) or line legends of the
OTOLEGENDS package.
-------
Punch the number of the column (across from the left border)
in which the legend is to start, right justified in columns 6-10.
Punch the character or characters to be used in the legend
starting in column 21 (and ending, at the most, in column 70).
Leave a blank space wherever a blank is desired in the legend;
if a legend is to end with a blank, punch the number of the
column in which it ends, right justified in columns 11-15.
Special combination symbols may be produced by over-
printing with up to three additional standard characters. To
achieve such overprinting, include one, two, or three additional
legend cards immediately following the original legend card
containing the basic (first stroke) characters. On the second
card, repeat the punching shown in columns 1-15 of the first
card. Then punch the integer number "2" in column 20 (to
designate that this card will cause the second stroke), and the
desired second stroke characters in columns 21-70. Proceed in
the same manner with a third card if needed, except punch the
integer number "3" in column 20--and similarly with a possible
fourth card.
After the cards for this package (other than the first and
last) have been punched and checked, arrange them in row
sequence, starting at the top of the map and working down. This
may be done on a sorting machine or by hand. Where two or
more legends occur in the same row, their sequence is immate-
rial.
An example of a C-LEGENDS package used for the
study area is shown in Example 8-4.
-------
C-LEGENDS
215
216
217
218
219
220
221
222
223
224
224
225
225
226
227
227
228
228
229
229
237
240
240
O /i '3
CL'± ei
242
O A O
24-2
242
99999
198
198 | i |
198 I L E\ G E N D |
198 | |
198 | ? |
198 | |
198 | 0 OOOO COUNTY OUTLINE |
198 | 0 |
198 | ' |
198 | 0 OOOO STATE OUTLINE |
198 2 -
198 | 0 |
198 2
198 | |
198 I O OOOO PITTSBURGH BED |
198 2 O OOOO
198 | O OUTLINE |
198 2O
198 | |
1 98 2
204 SCALE: IN MILES
187 0 5
225 " 10
1R~7 lw«__l _l_ J 1 t
1 87 2
fLfL^ — — |
225 2
Example 8-4
------- |