j

I


i

Vt J

NBS SPECIAL PUBLICATION 399

Volume 1

U.S. DEPARTMENT OF COMMERCE / National Bureau of Standards]

National Bureau of Standards

Library, £-01 Admin. BIdg.

ncT 1 1981

13102^1

NBS FORTRAN Test Prog

Volume 1-Documentation for

Versions 1 and 3
NATIONAL BUREAU OF STANDARDS

The National Bureau of Standards^ was established by an act of Congress March 3, 1901.

The Bureau's overall goal is to strengthen and advance the Nation's science and technology

and facilitate their effective application for public benefit. To this end, the Bureau conducts

research and provides: (1) a basis for the Nation's physical measurement system, (2) scientific and technological services for industry and government, (3) a technical basis for equity in trade,

and (4) technical services to promote public safety. The Bureau consists of the Institute for Basic Standards, the Institute for Materials Research, the Institute for Applied Technology,

the Institute for Computer Sciences and Technology, and the Office for Information Programs.

THE INSTITUTE FOR BASIC STANDARI>S provides the central basis within the United

States of a complete and consistent system of physical measurement; coordinates that system

with measurement systems of other nations; and furnishes essential services leading to accurate and uniform physical measurements throughout the Nation's scientific community, industry,

and commerce. The Institute consists of a Center for Radiation Research, an Office of Measurement Services and the following divisions: Applied Mathematics — Electricity — Mechanics — Heat — Optical Physics — Nuclear

Sciences " — Applied Radiation " — Quantum Electronics " — Electromagnetics ^ — Time

and Frequency — Laboratory Astrophysics — Cryogenics \

THE INSTITUTE FOR MATERIALS RESEARCH conducts materials research leading to improved methods of measurement, standards, and data on the properties of well-characterized

materials needed by industry, commerce, educational institutions, and Government; provides

advisory and research services to other Government agencies; and develops, produces, and

distributes standard reference materials. The Institute consists of the Office of Standard

Reference Materials and the following divisions:

Analytical Chemistry — Polymers — Metallurgy — Inorganic Materials — Reactor

Radiation — Physical Chemistry.

THE INSTITUTE FOR APPLIED TECHNOLOGY provides technical services to promote

the use of available technology and to facilitate technological innovation in industry and

Government; cooperates with public and private organizations leading to the development of

technological standards (including mandatory safety standards), codes and methods of test; and provides technical advice and services to Government agencies upon request. The Institute consists of a Center for Building Technology and the following divisions and offices: Engineering and Product Standards — Weights and Measures — Invention and Innovation — Product Evaluation Technology — Electronic Technology — Technical Analysis — Measurement Engineering — Structures, Materials, and Life Safety* — Building

Environment * — Technical Evaluation and Application ' — Fire Technology.

THE INSTITUTE FOR COMPUTER SCIENCES AND TECHNOLOGY conducts research

and provides technical services designed to aid Government agencies in improving cost effec- tiveness in the conduct of their programs through the selection, acquisition, and effective

utilization of automatic data processing equipment; and serves as the principal focus within

the executive branch for the development of Federal standards for automatic data processing

equipment, techniques, and computer languages. The Institute consists of the following

divisions: Computer Services — Systems and Software — Computer Systems Engineering — Information Technology.

THE OFFICE FOR INFORMATION PROGRAMS promotes optimum dissemination and

accessibility of scientific information generated within NBS and other agencies of the Federal

Government; promotes the development of the National Standard Reference Data System and

a system of information analysis centers dealing with the broader aspects of the National

Measurement System; provides appropriate services to ensure that the NBS staff has optimum

accessibility to the scientific information of the world. The Office consists of the following

organizational units:

Office of Standard Reference Data — Office of Information Activities — Office of Technical

Publications — Library — Office of International Relations.

^Headquarters and Laboratories at Gaithersburg, Maryland, unless otherwise noted; mailing address Washington, D.C. 20234.

^ Part of the Center for Radiation Research.

" Located at Boulder, Colorado 80302.

* Part of the Center for Building Technology.
tional Bureau ot Standards

!0V 1 1974

f^'^ NBS FORTRAN Test Programs

no 3^1 "I Volume 1- Documentation for Versions 1 and 3

V.I

Frances E. Holberton and

Elizabeth G. Parker

Institute for Computer Sciences and Technology ^ National Bureau of Standards

I

' Washington, D.C. 20234

i

U.S. DEPARTMENT OF COMMERCE, Frederick B. Dent, Secretary

NATIONAL BUREAU OF STANDARDS, Richard W. Roberts, Director

Issued October 1974
Library of Congress Cataloging in Publication Data

Holberton, Frances E

NBS FORTRAN test programs. ^

National Bureau of Standards Special Publications 399. CONTENTS: V. 1. Documentation for versions 1 and 3. —V. 2. Listings for version 1. —V. 3. Listings for version 3. Supt. of Docs. No.: C 13.10:399.

1. Computer programs—Testing. 2. FORTRAN (Computer

program language) 1. Parker, Elizabeth G., joint author. IL

United States. National Bureau of Standards. III. Title. IV. Series: United States. National Bureau of Standards. Special Publication

399.

QC100.U57 no. 399 [0A76.6] 389'.08s tOOl.6'425]

74-12314

National Bureau of Standards Special Publication 399

Nat. Bur. Stand. (U.S.), Spec. Publ. 399,171pages (Oct. 1974)

CODEN: XNBSAV

U.S. GOVERNMENT PRINTING OFFICE

WASHINGTON: 1974

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

(Order by SD Catalog No. C13.10:399/V.l). Price $2.35 cents.
FOREWOED

It has now become inperative, because of the imltitude of coiiputers on

the mrket and the corresponding imltitude of FORTRAN compilers, to develop a means of testing the overall quality of these compilers, thereby

making meaningful comparisons possible. The National Bureau of Standards

has sponsored a project to develop methods and tools to assist in the

evaluation process. Before the evaluation process can be undertaken, it

is necessary to develop a primary tool, such as a set of FORTRAN programs

which can validate whether a FORTRAN compiler is in compliance with

the FORTRAN specification as described in the American Standard FORTRAN

document X3. 9-1966.

In 1966 the National Bureau of Standards formulated the design criteria

and specifications for the development of such a set of FORTRAN programs.

The initial implementation of this design was performed, under contract,

by the Advanced Gonputer Teclmiques Corporation in 1967. Since this

time, these programs have been desk checked, computer checked, revised,

extended, many test units replaced, and the system reorganized to

improve the tests and decrease the difficulty of performing the actual

validation process.

Version 2 of these test programs was prepared by NBS, under contract,

for the Joint Technical Support Activity of the Defense Communications

Agency.

The purpose of these FORTRAN programs is to assist in the validation

of FORTRAN compilers. There is no attenpt to measure the performance

of the compiler or the object program efficiency.

Currently, the FORTRAN Standard, ASA X3. 9-1966, is undergoing revision

and the FORTRAN language is being extended by the X3J3 technical committee

of the American National Standards Institute (formerly identified as the

American Standards Association). The revised FORTRAN Standard will be

considered for Federal adoption. This will, if approved, require that

the test programs be revised accordingly.

The National Bureau of Standards wishes to thank the Bell Telephone

Laboratories for the preparation of the camera-ready copy of the program

listings derived from the NBS FORTRAN Test Program Distribution Tape.

These listings appear in Volumes 2 and 3 of this report.
ABSTRACT

NBS FORTRAN TEST PROGRAMS

The NBS FORTRAN test programs, written in Standard FORTR^, are designed to

test whether a FORTRAN coirpiler accepts the forms and interpretations of the

FORTRAN language as described in the American National Standard FORTRAN

document X3. 9-19 66. The test programs, comprised of 116 test units, are

structured into two versions, each containing approximately 14,500 punch

card images. The test units may be used as separate executable FORTRAN

programs, or nay be linked end to end with other test units, with a minimum of user effort, to improve operating efficiency. Version 1 is

structured into 116 executable FORTRAN programs , and Version 3 , containing

the same 116 test units, is structured into 14 executable FORTRAN programs

for use on large FORTRAN processors.

The test program design criteria was to:

- Constrain all test programs to the FORTRAN Standard X3. 9-1966.

- Reduce the effect of those areas in which the FORTRAN Standard does not

prescribe a method or solution, e.g., range, precision, size of computer, etc

- Sijiplify the use of the FORTRAN test programs.

- Test FORTRAN language elements before they are used in support of

other tests.

- Maintain an open ended system so that tests my be changed or added.

The test programs require the use of a card reader, printer and one

intermediate tape unit.

During the development of the test systems ten different computing systems

were used, and the current set of tests were run on five major systems.

The largest test unit required less than 3,000 vrords of memory and when

structured into 14 executable programs the largest program required less

than 6,000 words of memory to execute the compiled programs. The test units,

for the most part, are straight line programs and during the debugging of

the tests, less than 15 minutes was required to compile and execute the

set of 14 structurBd FORTRAN programs, excluding card read and printer time.

The magnetic tape, containing the NBS FORTRAN Test Programs, Version 1 and

Version 3, together with the documentation (3 volumes) is available from:

National Technical Information Service

Department of Canmerce

5285 Port Royal Road

Springfield, Virginia 22151

The magnetic tape is available in 800 cpi recording density in the following j forms:

j 7 track even parity BCD, recorded from the FORTRAN H set punch

card code (see FORTRAN Standarxi, Appendix D X3. 9-1966)

9 track odd parity EBCDIC code

9 track odd parity ASCII code j Key words: Computer programming language ; FORTRAN : FORTRAN

validation; language validation; standards FORTRAN; test program design.

iv
INTRODUCTION

This document. Volume 1 of three volumes, contains the documentation,

including the systems design, operating procedures, expected test results

and distribution tape organization for a set of FORTRAN Test Programs

developed by the Institute for Computer Sciences and Technology, National

Bureau of Standards. These test programs are written in ASA Standard

FORTRAN and test the language elements described in the ASA Standard

FORTRAN document X3. 9-1966.

The NBS FORTRAN Test Programs, Version 1, contain 116 test units, each

structured as an executable FORTRAN program.

The NBS FORTRAN Test Programs, Version 3, containing the same 116 test

units, structured into 14 executable FORTRAN Programs, have been organized for use on large FORTRAN Processors for the purpose of reducing

the number of systems control cards needed to perform the tests.

The NBS FORTRAN Test Programs, recorded on magnetic tape as approximately 14, 5 00 punch card imges for each version, contain the FORTRAN

source language programs and data. Extensive FORTRAN comment lines are

interspersed throughout the programs to enable the user to both run the

programs and determine the nature of the tests without the need for

additional documentation. The test results contain information related

to the expected results.

Volume 1, Section I describes the system design, the programndng techniques and conventions used in the program development and should enable

the user to extend, alter or reorganize the test programs.

Volume 1, Section II defines the organization and operating procedure

for performing the tests and contains a set of representative results

obtained from actual running of the test programs on several FORTRAN

processors.

Volume 1, Section III describes the order and location of each test

unit and data as recorded on magnetic tape for distribution.

Volume 2 contains the program listings for the NBS FORTRAN Test Programs,

Version 1.

Volume 3 contains the program listings for the NBS FORTRAN Test Programs,

Version 3.

V
NBS FORTRAN TEST PROGRAMS

Table of Contents

Foreword

Abstract

Introduction

Section I SYSTEMS MANUAL

A. FORTRAN Test Program Design I-A-1

Al. Objective I-A-1

A2. Design Criteria I-A-1

A3. Design Considerations I-A-1

A4„ Design Implementation I-A-4

A5. FORTRAN Concepts Excluded from the Test Programs I-A-6

A6. Interpretations Made to the FORTRAN Standard I-A-8

B. Description of Each Segment I-B-1

C. Test Unit Segments Indexed to the FORTRAN Standard I-C-1

Document ASA X3.9-1966

D. Program Information I-D-1

Dl. Conventions Used in the Test Programs I-D-1

D2„ Assumed Levels for Non- specified FORTRAN Areas I-D-4

D3c Names and Statement Numbers Used in the Test I-D-6

Programs

Eo Structuring, Restructuring and Extending the Test Programs I-E-1

El. Program Structure I-E-1

E2. Consolidating Test Program Units Using Version 1 I-E-1

E3. Deleting a Section of a Test Unit I-E-4

E4. Deleting an Entire Test Unit I-E-4

E5. Adding to a Test Unit I-E-4

E6. Adding New Test Units I-E-5

Fo Difficulties Encountered During the Test Program Development I-F-1

Flo Interpreting the FORTRAN Standard I-F-1

F2, Precision, Conversion and Maximum Value of I-F-1

Numeric Data

F3o Meaningful Tests and Comprehensible Results I-F-1

F4. FORTRAN Compilers with Language Extensions I-F-3

F5. Performing the Tests I-F-3

vi
G. References

Section II USERS MANUAL

A. Operating Procedures

Al. Organization of Tests and Facilities Requirement

A2<, Input Data Preparation

A3. List of Test Programs for Version 1

A4. List of Test Units by Parts for Version 3

B. Procedures for Isolating Test Unit Failures from Version

Bl. Deleting a Test Unit

B2. Creating a Single Test from a Deleted Unit

C. Sample Test Results

CI. Interpreting the Test Results

C2. Test Results

Section III DISTRIBUTION TAPE ORGANIZATION

A. General Description

Al. FORTRAN Test Programs and Data Version 1 A2. FORTRAN Test Programs and Data Version 3

vii
NBS FORTRAN Test Program Results

Table of Contents

Page

008 - FMTRW Formatted Input/Output II- C- 3

009 - AFRMT A-Conversion II- C- 7

010 - DATA2 DATA Statement Use II- C- 8

Oil - AASGN Real and Integer Arith Assignment. Stmnts. II- C- 9

013 - DASGN Simple D.P. Assignment Statements II- C- 11

015 - CASGN Simple Complex Assignment Statements II- c- 15

016 - LASGN Logical Assignment Statements II- c- 19

017 - INTRL Arithmetic Assignment Statements II- c- 20

020 - UGOTO Unconditional GO TO Statements II- c- 22

021 - AGOTO GO TO Assignment Statements II- c- 22

022 - CGOTO Computed GO TO Statements II- c- 23

030 - ARBAD Basic Addition II- c- 23

031 - ARFAD Double Precision Addition II- c- 24

032 - ARBSB Basic Subtraction II- c- 24

033 - ARFSB Double Precision Subtraction II- c- 24

034 - ARBAS Basic Addition and Subtraction II- c- 24

035 - ARFAS Addition and Subtraction of D.P. Values II- c- 25

036 - ARBMI Multiplication of Integer Values II- c- 25

037 - ARBMR Multiplication of Real Values II- c- 25

038 - ARFMD Multiplication of D.P. Values II- c- 25

039 - ARBDV Division of Integer and Real Values II- c- 26

040 - ARFDV Division of D.P. Values II- c- 26

041 - ARBEX Exponentiation of Integer and Real Values II- c- 26

042 — ARFEX Exponentiation of D.P. Values II- c- 26

043 — ARBHI Hierarchy of Operators and Parentheses II- c- 27

050 - SBB67 Subscripts of Integer, Real Arrays v, k II- c- 27

051 - SBB45 Subscripts of Int., Real Arrays v+k, v-k II- c- 27

052 - SBB13 Subscripts of Int., Real Arrays c*v, c*v+k.

c*v-k II- c- 28

053 — SBF17 Subscripts of D.P. Arrays v, k, c*v, c*v-tk:.

c*v-k, v+k, v-k II- c- 28

054 — SIMIF Arith. IF, Logical IF followed by GO TO II- c- 28

055 IFABS Intrinsic Functions ABS, TABS II- c- 29

056 IFFLT Intrinsic Function FLOAT II- c- 29

057 IFFIX Intrinsic Function IFIX II- c- 29

058 IFSGN Intrinsic Functions SIGN, ISIGN II- c- 29

059 IFDAB Intrinsic Function DABS II- c- 29

060 IFTRN Intrinsic Functions AINT, INT, IDINT II- c- 30

061 IFMOD Intrinsic Functions AMOD, MOD II- c- 30

062 IFMAX Intr. Funct. AMAXO, AMAXl, MAXO, MAXl*, DMAXl II- c- 31

063 IFMIN Intr. Funct. AMINO, AMINl, MINO, MINI, DMINl II- c- 32

064 IFDSG Intrinsic Function DSIGN II- c- 32

viii
NBS FORTRAN Test Program Results

Table of Contents

Page

063 IFDIM Intrinsic Functions DIM, IDIM II--c--33

066 IFSGL Intrinsic Function SNGL II--c--33

067 IFREL Intrinsic Function REAL II--c--34

068 IFIMG Intrinsic Function AIMAG II--c -34

069 IFDBL Intrinsic Function DBLE II--c--35

070 IFCPX Intrinsic Function CMPLX II-• c--35

071 IFCJG Intrinsic Function CONJG II- c 35

r\ "7 0 072 IFBMS Integer and Real Intrinsic Functions II- c--36

07 J IFFrlS int.

,

Real and D.P. Intrinsic Functions II--c--36

OoO EXPON Basic External r unction Eat II- c-•37

A 0 1 Ool DEXPO Basic External function UEAr II- c-38

r\ 0 0 Ooz CEXPO Basic External function leat II-• c-•38

AQ 1 OoJ LUGin Basic External function ALUtr II- c-40

r>D /. TvT)T r\ry Basic External Function DLOG II- C-•40

Uoj Basic External Function CLOG II- C-•41

O06 LOLOG Basic External Function ALOGIO II- c- 42

Oo/ DCLOG Basic External Function DLOGIO II- c- 43

AOO Ooo SINUS , Basic External Function SIN II- c- 43

089 DPSIN Basic External Function DSIN II- C- 44

r\c\r\ 090 CSICO Basic External Functions CSIN, CCOS II- c- 44

091 COSNS Basic External Function COS II- C- 45

f\ r\ r\ 092 DP COS Basic External Function DCOS II- C- 45

r\r\ / 094 TANGH Basic External Function TANH II- C- A / 46

095 SQROT Basic External Function SQRT II- C- 46

096 DSQRO Basic External Function DSQRT II- C- 47

no "7 oy / or* ADA LSl^KU Basic External Function CSQRT II- C- 47

098 ARCTG Basic External Function ATAN II- c- 48

099 DACTG Basic External Function DATAN II- c- 48

100 ACTG2 Basic External Function ATAN2 II- c- 49

101 DATN2 Basic External Function DATAN2 II- c- 49

102 DMODA Basic External Function DMOD II- c- 50

103 CABSA Basic External Function CABS II- c- 50

110 BSFTS Statement Functions - Integer and Real II- c- 51

111 FSFTS Statement Funct. - D.P., Complex, Logical II- c- 51

140 CPXAD Addition and Subtraction of Complex II- c- 52

141 CPXMU Multiplication of Complex Numbers II- c- 52

142 CPXDV Division of Complex Numbers II- c- 53

ix
NBS FORTRAN Test Program Results

Table of Contents

Page

143 - CPXEX Exponentiation of Complex Numbers II-C-53

144 - CPXOP Arithmetic Operations on Complex II-C-54

145 - CREAD Add and Subtract Complex and Real Numbers II-C-54

146 - CREMU Multiply Complex by Real Numbers II-C-54

147 - CREDV Divide Complex by Real and the Reverse II-C-54

148 - CREOP Combined Operations on Complex and Real II-C-55

149 - MISC3 Blanks in, Cont. of Statement to Max Lines II-C-55

150 - MISC4 Special Characters for Continuations II-C-55

160 - BRFCP Real External Functions II-C-55

161 - BIFCP Integer External Functions II-C-56

162 - FRFCP Real External Functions II-C-56

163 - FIFCP Integer External Functions II-C-56

164 - CFCCP Complex External Function II-C-56

165 - DPFCP Double Precision External Functions II-C-57

166 - BFCCP Logical External Functions II-C-57

167 - SBRTN Subroutine Subprogram II-C-57

168 - FSBRT Subroutine Subprogram II- C 58

169 - BLKDT BLOCK DATA Test II-C-58

179 - BLKDA BLOCK DATA Test II-C-59

180 - UNFRW Unformatted WRITE and READ II- C- 59

182 - BACUP BACKSPACE Tape II-C-60

190 - DOTRM DO Loops - Terminal Statements II-C-60

191 - DOLMT DO Loops - Parameters as Variable Names II-C-60

192 - DONSC DO Loops - Completely Nested Nest II-C-60

193 - DONSI DO Loops - Incomplete DO, Exit by GO TO II-C-60

194 - DONSX DO Loops - Extended Range II-C-61

195 - D0N14L DO Loops - Nested Nest II-C-61

196 - DONIO DO Loops - I/O Terminal Statements, II-C-61

197 - MORDO DO Loops - I/O, Statmt. Ft., Intr Ft., CALL II-C-62

200 - SUBRl Subroutine - Operations Done at Sub Level II-C-62

300 - LOGIF Logical IF Statements II-C-62

301 - BARIF Arithmetic IF Statements - Integer, Real II-C-63

302 - FARIF Arithmetic IF Statements - D.P. II-C-63

310 - lOFMT Formatted READ/WRITE - Additional Features II-C-63

312 - RDFMT Formats in Arrays II-C-65

350 - MISC5 Specifications for Program Form II-C-66

351 - FUNMX Basic External Functions - Trig Formulae II-C-67

352 - NAMES Names Resemble FORTRAN Verbs, Functions II-C-67

360 - SPEC2 COMMON, DIMENSION, EQUIVALENCE II-C-67

X
SECTION I SYSTEMS MANUAL

A. FORTRAN TEST PR0GRAJ1 DESIGN

Al. Objective : To develop a set o£ FORTRAN test programs, available to

a wide range of FORTRAN processors with a minimum of user effort

required to perform the tests. These tests shall conform to the ASA

FORTRAN Standard X3. 9-1966. [1]

A2. Design Criteria

a) To constrain all test programs to the FORTRAN language described

in the ASA FORTRAN Standard X3.9-1966.

b) To reduce the effect of those areas in which the FORTRAN standard

does not prescribe a method or solution; the programs must be

adaptable to differing environments such as:

- Size of computer and I/O facilities.

- Power of the FORTRAN compiler as reflected in the size and

complexity of a FORTRAN program.

- Variations in the range and precision of numeric values.

- Differences in form and media for submitting a program and data,

- Differences in procedures for compiling and running a FORTRAN

program.

c) To simplify the use of the FORTRAN test programs.

- The cost of computer time for compiling and running must be

kept to a minimum.

- The cost of human resources for the analysis of test results,

determination of test failures and the comprehension of the test

design must be taken into consideration in the system design.

d) To test FORTRAN language elements before they are used in

support of other tests.

e) To maintain an open ended system so that tests may be changed or

added.

A3. Design Considerations

It is recognized that any set of programs which is designed to test

a complex set of specifications, such as ASA FORTRAN (X3. 9-1966)

can never test every interaction of every FORTRAN statement, with all

permissible forms, in all permissible positions in an executable

program. However, it is desirable to design a system such that those

parts of the language which have been tested are relatively easy

to determine and at the same time permit extensions to the system

without extensive knowledge of the entire system.

The test programs must be designed with the realization that a

FORTRAN processor might not accept various elements of the

language and the action could be identified at one or more of the

following times or conditions:

I-A-1
a) Compile time.

- The compiler might terminate without completion of the

compilation and with insufficient information for the user

to determine the cause.

- The compilation may be completed with diagnostic messages on the

program listing, which as a general rule (although outside of

the FORTRAN standard specification) assist in locating the trouble.

b) Link Edit and Load Time.

- The executable program may fail to meet the loader, etc.,

requirements -which may or may not be identified in the program

listing,

c) Execution Time.

Conditions in the computer or compiler may produce improper

machine code which causes the test program to be aborted

before completion. (Any one or more of these conditions could occur

prior to obtaining the test program results.)

d) Unexpected Test Results.

The running of the test programs could produce printed results which

were different from the expected results. This can occur if:

- Some well defined element of the Standard FORTRAN language was

implemented in the compiler in a variant way.

- Some ill defined part of the language was interpreted by

the compiler writer different from the test program writers.

- An improper interpretation of the standard by the test program

writers.

- An actual bug in the test programs.

- An actual bug in the compiler.

Because many unforseen difficulties can occur during the running

of the test programs, where it will be necessary for the user to

refer to the program listing to determine what elements of the language

are being tested as distinct from those elements which must

be used to support the test, it is imperative that the program

listing be liberally interspersed with FORTRAN comment lines to

assist the reader.

Because the FORTRAN standard document is a semi-technical

specifications document without a rigid definition of the

semantics of the language, the document is subject to interpretation

differently by different individuals.

The ASA FORTRAN Standard is a reference standard and does not

address the medium or its coded characteristics, so that the

form of the FORTRAN program on a medium such as punched cards is

outside the scope of the standard. However, because a common

mediiam is punched cards, and the H-set punch card code was

designed for FORTRAN, the H-set is deemed the most universally

I -A2
accepted card code on which to prepare the FORTRAN test programs

and data for a processor. If a processor does not accept this

card code it is reasoned that a conversion routine probably does

exist which could convert this set to the processor punch card code.

If the programs are to be available to both large and small

FORTRAN processors the I/O facilities must be kept to a minimumo

If the processor has a card reader then most likely a printer

and either one tape unit or a disc would also be available, so

that the test programs could be confined to these I/O devices.

In order to determine what capabilities existed for FORTRAN or

FORTRAN- like compilers in 1966 when this project was initiated, a

survey of the literature was made and specifications for forty

compilers were compared. From this unpublished study, a "FORTRAN

processor" was defined to contain the minimum range and precision

of numeric values and the most limited program size which could

be found among the forty compilers examined. This lead to the

constraints used in the test programs which are described under

Program Information Section I-D.

The assumption was made, because of the nature of FORTRAN, that

all processors probably had something akin to "Compile- Load-and Go"

as a form of operations.

Each test program, if it were to run on a small computer, must be

limited in size. It is theoretically possible to test almost all

characteristics of the language in a single executable program if

a processor were large enough. However, it might be desirable to

test a new compiler on a large computer for the first time with

small test elements, so that any difficulties might be recognized

more rapidly, while any later running of the test programs or

updated versions of the compiler could be performed more economically

if the test elements were combined into larger executable programs.

In order for the test units to be run independently and later

combined into larger executable programs, as well as changed or

expanded it was necessary to consider the following:

- The required positioning of certain FORTRAN statements such

as specification statements and statement functions.

- The choice of symbolic names, such that they did not constrain

the testing of elements of the language, and at the same time

would not require the knowledge by the user of symbolic names

which had been used when changes or expansion of the test were

necessary.

- The allocation of statement labels so that duplication would

not result.

- The handling of those aspects of a FORTRAN program which are

not covered by the standard such as precision, size of program,

number of arguments, depth of DO nesting, the number of subprograms,

etc.

I -A3
A4, Design Implementation

The FORTRAN test programs are not designed for use in debugging of a

FORTRAN compiler . In fact, the assumption has been made that the

compiler, for the most part, is working but may not have all of the

FORTRAN language features available in the system.

Those elements of the language which are used in support of test units

are limited to what can be considered "defacto FORTRAN". That is,

language features which were not universally implemented in 1966

but which appear in the standard are tested but are never used in

support of other tests. Therefore, such features as: extended range

of a DO, the Gw.d format field descriptor, a constant of the form

26E1 containing no decimal point, etc., are not used after their

appearance in a test unit.

The test program units, for the most part, are small main programs with

straight line logic. Each test unit is implemented to be run as a separate

test or linked end to end with another test. All data used within a progra

test unit is defined within that unit, except the tests for the FORMAT

statement which require external input data to be read.

The selected order of the test units is dictated by the need for testing

the basic fundamentals of the language so that these features may be used t

support later tests. Certain elements of formatted READ and WRITE are

tested first, so that test results can be written out.

The initial test of the DATA statement appears as an early test sequence

because a constraint would be placed upon the use of symbolic names in othe

test units prior to the occurrence of the DATA statement test if the test

appeared later in the set. Other appearances of the DATA statement are in

a subprogram and as a format specification. These are for the purpose of

the tests and no further use is made of this statement.

All testing is performed at the main program level except those concepts

and associations which are unique to a subprogram. One test unit which

is performed at the main program level containing a variety of FORTRAN

statements is basically duplicated in a test unit which performs the

same statements at the subprogram level. Other appearances of subprograms

in the test set are basically for the purpose of argument association

testing and for those FORTRAN statements which may occur only in a

subprogram.

The FORTRAN statements used in the test units may appear, at first glance,

to be nonsense operations. To comprehend the true meaning of the

statement in a test unit, it is necessary to read the statement transformin

the variable name or constant used into its attributes and utilization

associated with an operator. Such an example might be: A one dimensional

array element appearing in a common block is raised to the power of an

unsigned integer constant.

To assist the test program implementors as well as the reader of the

test programs, naming conventions described in Program Information,

I-A-4
Section I-D, have been used throughout the programs to convey the

attributes of the name, which appear in specification statements,

directly in the name itself, so that no reference need be made to

the specification statements to comprehend this information. In

addition, comment cards have been used freely in the test units to

convey the nature of the test and the operations being performed.

The design of a computer program system for automatic insertion of

operating system control cards and the linking of test program units

was initiated. Further analysis into the problems has brought to light

the potential difficulties of using the output of such a system and its

doubtful economics. For the following reasons, this system has not

been implemented:

- The lack of common terminology for similar functions among various

operating systems control languages would cause difficulty in

communicating with a wide audience the information required to be

inserted into an automated system for producing the desired effect.

For example, what is called a JOB card in one system is called a RUN

card in another, while what is called a RUN card in another system

may be called an EXECUTE card in the first system. Because similar

terminology for operating system control functions is used for

functions of the system at different levels of control, it would

be necessary to describe levels of functions to a user, who might

not be aware of this logic,

- The FORTRAN standard does not define the order of presentation to

a compiler of program units, so that this becomes an additional

burden to the user to comprehend when this order may not affect the

majority of FORTRAN processors,

- Operating systems control cards may require special control punch

codes which are outside the codes defined for data use. For example,

a control card which contains a code containing the digits 6, 7, 8

and 9 in a single column on the card can be obtained only by a

keypunch device with provisions for over striking in a single column.

- To produce punched cards from an automated system with special codes

outside the normal punch card character set would require the

software-hardware system to permit column binary cards to be punchedo

This facility, although available in the hardware of some systems

is not available to the user because of software constraints. Of

the computer systems surveyed, only one system permitted column

binary cards to be produced and this facility is available only to

the assembly language programming system.

- If cards can be produced by the column binary operations from the

system, the device which interprets and prints on the card would not

necessarily print the appropriate symbols, because codes for certain

FORTRAN characters and the control card codes may have different

graphic associations or no valid association.

I-A-5
- If the test programs with their interpersed operating systems

control cards were placed on tape, there is no assurance that

the receiving installation has provisions for using or even

obtaining punched cards from such a tape. Although the images

on tape would be in coded character representation for the

receiving installation, the operating system may not permit the

reading of control card sensitive information and the passing

of it to an applications program for the purpose of producing

punch cards. If the tape is read as a binary tape, the parity

bit, record size, pulse code and blocking characteristics might

not conform to the receiving computer's requirements

„

Because of these numerous difficulties which may affect the user and the

potential additional costs which may be encountered in preparing the

test program information at the receiving installation, these test programs

have been prepared for use without the inclusion of systems control cards.

To simplify the task of grouping test units together into larger programs

for testing, and thus eliminate the need for an abundance of systems

control cards to operate each test unit as a separate computer run,

those cards which must be revised are identified in the test imits as

comment cards containing the characters "C=" in the first two columns.

The FORTRAN specification statements taken from different test units

require the elimination of duplicate names to conform to the language

definition. To simiplify this task, symbolic names appearing in a

"C=" specification statement will always appear in the same type of

specification statement throughout the entire program test set, so that

elimination of duplicate names is achieved by inspection of a collection M

of a similar type of specification statement. That is, if an array

declarator in one program test unit is contained in an INTEGER

statement, all other occurrences of that symbolic name in a specification

statement will be in an INTEGER statement and not in a DIMENSION

statement. See Structuring, Restructuring and Extending Test Programs,

Section I-E.

A5. FORTRAN Concepts Excluded from the Test Programs .

Because the FORTRAN Clarification Reports [2, 3] do not have the status

of updating the current ASA FORTRAN document X3.9-1966, extreme caution

was exercised in making use of some of the interpretations in the

FORTRAN test programs. The following FORTRAN Statements and concepts

have been excluded from the FORTRAN Test Programs:

a) An I/O unit number specified by an unsigned integer constant.

All I/O statements express the unit numbers as integer variable

naiaes which are assigned values in the first executable statements.

This increases program portability.

b) PAUSE and PAUSE n. These statements are excluded from the test

because many systems do not permit them and, action by an operator

would be required to resume the program test.

I -A6
c) The name of a Basic External Function specified as a user

subprogram name. This action would not permit the inclusion

of a Basic External Function so defined to appear in any test

unit which was combined with other test units.

d) An external procedure written in a language other than FORTRAN.

Unless Basic External Functions can be considered in this class

of procedures no test is made of this facility.

e) As currently structured in Version 3, with test units 169 and 179

in Parts 11 and 12, respectively, a single labeled common block

does not receive initialized data from more than one Block Data

Subprogram. The proposed revised FORTRAN Standard tentatively

places such a restriction upon Block Data Subprograms.

Combining these test units would test the ability to initialize

data from more than a single Block Data Subprogram to a specified

labeled common block. Individual data elements, however, are not

initialized more than once.

f) Formatted and Unformatted records on the same I/O device within

the same test unit. This concept is the subject of a FORTRAN

clarification. Because a unit may be declared by the implementor

not to contain this property, because this concept conflicts with

the Magnetic Tape Label for Information Interchange Standard

(X3. 27-1969) and because this concept does not enhance program

interchange, this feature was excluded from a single test unit.

However, when test units 196 and 19 7 are combined in an executable

program as in Version 3 Part 12 this feature is tested.

g) A Formatted external output field whose width does not contain

enough character positions to include a positive sign and a leading

zero. This concept is the subject of a FORTRAN clarification.

Because these optional character positions are described in the

FORTRAN Standard in the same paragraph which describes the optional

external exponent form (implementor option), it is unclear whether

the optional character positions are an implementor or a user option.

h) A subprogram name passed as an actual argument, and then a

corresponding dummy name appearing in an argument list of a function

reference' or CALL to a lower level subprogram. The rules of the

FORTRAN standard are incomplete. Because a dummy subprogram name

may not appear in an EXTERNAL Statement it is unclear how a

subprogram name may be passed more than one level and maintain a

proper association as a subprogram.

i) A labeled FORMAT statement which is not referenced in an I/O

statement. It is unclear in the FORTRAN Standard whether a

standard conforming FORTRAN program may contain such a statement

which is not referenced.

I -A7
j) Hollerith constants are constrained to the FORTRAN character

set, and therefore the character set is a subset of the characters

capable of representation by the processor. This increases

program portability.

k) The ENDFILE statement appears in a test imit but cannot be tested,

because the action is undefined when an endfile record is encountered

during execution of a READ statement.

Interpretations Made to the FORTRAN Standard

The following interpretations have been made to the FORTRAN Standard:

a) Those items identified in the FORTRAN Clarification Reports as "Correction to Typographical and Transcription Errors" and

"Corrections to Mistakes" in the FORTRAN document X3.9-1966

have been recognized and the interpretation to the standard is

as if these items had actually been corrected in the original

document.

b) A relational operator is not immediately followed by a signed

constant. A left parenthesis appears between the relational

operator and the signed constant. The FORTRAN standard does

not appear to permit two adjacent operators.

c) Hollerith data does not appear "under the guise" of a complex

or double precision type.

d) Tlie word "range" may not be broadened to include "extended range"

and therefore a GO TO or arithmetic IF statement in an "extended

range" may not reenter the DO nest at a common terminal statement.

e) The FORTRAN Standard does not state how a Hollerith constant is

positioned in a storage unit. In order for a Format Specification

to be introduced into an array by way of a DATA Statement, the

following assumption has been made based upon the Aw Format field

descriptor, "Let 'g' be the number of characters represented in a

storage unit", and "w" be the value of n in the nH form of a

Hollerith constant, then:" If the field width is less than g, the

w characters will appear left justified with g-w trailing blanks

in the internal representation [1, page 22L22].

f) There are no separate class rules for Basic External Functions and

therefore referencing of these is handled under Class V, an external

function. By these rules a Basic External Function may be passed

as the actual argument of an external procedure reference provided

the symbolic name appears also in an EXTERNAL statement.

g) The unit of angular measurement for the trigonometric functions

is assumed to be expressed in radians.

I-A-8
h) "The value zero is considered neither positive nor negative",

does not constrain the appearance as a constant to be an unsigned

zero, but may appear with either a plus (+) or minus (-) sign,

i) The FORTRAN Standard does not describe the condition of non-nested

DO loops contained in an outer DO loop, nor is this condition

described in earlier FORTRAN implementation manuals. However,

this concept is fundamental to the DO loop and is considered

defacto.

In the following picture each bracket is considered to be

a DO loop:

[

I-A-9

B. DESCRIPTION OF EACH SEGMENT

The FORTRAN Test Programs are made up from 185 segments containing sequences

of FORTRAN statements. There are 116 main program sequences, whose segment

number and name are each printed with the test program results, 63 subprograms

which are each associated with a single test, and 6 sequences, one of which

(segment 007) is always associated with each executable program. Elements

from the other five sequences (segments 000, 001, 003, 005, 006) are included

when appropriate. The FORTRAN Test Programs Version 1 and 3 are structured to

include the necessary elements from these segments. The following is a brief

description of each segment:

000, , (non- executable) contains a Directory of Test Programs introduced

by comment lines before the first executable program on Version 1.

In Version 3, the Directory appropriate to each of the 14 parts is inserted

before each of the 14 executable programs.

001, SPECS , (non-executable) declares variable types, function types, and

array sizes and types for use in later segments of the test programs.

This segment is not executable since it contains only specification

statements, but statements from this segment are included in other

segments, as required, to furnish the necessary specifications for an

executable program.

003, DATAl , (non-executable) examines the format of the DATA statement,

which causes variables and array elements to be initially , defined. It

is run with segment 010, DATA2.

005, BSFDF , (non-executable) defines arithmetic statement functions of type

integer and real. Segment 005 is run with segment 110 and 197.

006, FSFDF , (non- executable) defines statement functions of type double

precision, logical, and complex.

The expressions contain constants, variables and intrinsic function

references, references to previously defined statement functions and

to external functions. Segment 006 is run with segment 111.

007, lODEF , (included in all executable programs) defines the system input,

system output and a work unit to be used in the testing programs. Three

integer variables are given values in simple assignment statements, to

be associated with those units, which must be included with each program

that requires such definitions. However, the values assigned to these

variables may be changed to satisfy specific computer systems. These

units are referred to by the following variable names:

NUVI - for results, usually a line printer defined as unit 6.

IRVI - for input, usually a card reader defined as unit 5.

INVI - for intermediate input/output data, usually a magnetic

tape defined as unit 9. This unit is used only in Segments

180, 182, 196, 197, and 200.

I-B-1
In Versions 1 and 3, 6 input cards (three of which are prepared

by the user) are associated with this segment but run with

segment 008. In Version 3 also each one of the executable programs

(14 Parts) contains these cards so that the user can identify the

environment of the execution of the tests.

008, FMTRW , (executable) tests the FORMAT and formatted I/O statements.

Under control of the FORMAT statements in the segment, 40 data cards

are read in from the system input unit, and written to the system

output unit. The reading into and writing from a FORMAT specification

as well as the symmetry of the terminal slash in a FORMAT specification

is inserted into segment 007 but executed as part of segment 008.

Also written to the output unit, are lines of data produced by Hollerith

information showing how the data should appear. Additional tests are

performed in Segment 310.

009, AFRMT , (executable) tests FORMAT and formatted I/O statements- as related

to A-conversion. It tests that the Aw descriptor causes w Hollerith characters to be read into or written from a single list item, provided w does

not exceed the number of characters represent able in a single storage unit.

The last line of the test results should print the last letters of the

alphabet equal to the number of Hollerith characters contained in a

storage unit. If the number of characters is less than 4, the first

three test lines will contain missing characters, but the corresponding

Hollerith information should be aligned.

010, DATA2 , (executable) tests the contents of variables and array elements

which were initialized by way of the DATA statement, in segment 003.

Via formatted output, the contents of the initialized variables and array

elements are written out. The values are integer, real, double precision,

complex and Hollerith. The FORMAT statements are varied, and contain

descriptors, repeated by parentheses and constants.

011, AASGN , (executable) tests simple arithmetic assignment statements with

the formation of integer and real constants.

013, DASGN , (executable) tests the formation of double precision constants,

the referencing of double precision array elements and the assignment

of values to this type in arithmetic assignment statements. The

proper application of the unary sign to double precision is also tested.

015, CASGN , (executable) tests the formation of complex constants, the

referencing of complex variables and array elements and the assignment

of values to this type in arithmetic assignment statements. The proper

application of the unary sign to complex types is also tested.

016, LASGN , (executable) tests logical assignment statements. Values are

assigned to integer variables used in relational expressions of

logical assignment statements. Variables and array elements are

declared logical in type statements, then used in mixtures of relational

expressions and logical expressions which are assigned to variables

and array elements. Logical values are either true or false.

I-B-2
017, INTRL , (executable) tests arithmetic assignment statements in which

each side of the equation is of a different type. Integer values

are assigned to real and double precision variables and arrays; real

values are assigned to integer and to double precision variables and

arrays

,

020, UGOTO , (executable) tests the unconditional GOTO statement. Branching

into labeled executable statements, in both a forward direction and a

backward direction and to statements immediately following the GOTO.

Each set of statements causes an integer to be generated. The test

is designed to cause the unconditional transfers to be executed in

such an order as to produce a consecutive set of integer values.

021, AGOTO , (executable) tests the GOTO assignment statement. The integer

variable used in an ASSIGN statement is referenced only in an assigned

GOTO statement, while defined as a statement label. Assigned GOTO

statements branch only to excutable statements; they have a maximum

of nine branches, though the ANSI standard does not specify a maximum.

The value of the integer variable after the execution of the ASSIGN

statement is designed to correspond to a statement label in the list

of the assigned GOTO statement.

022, CGOTO , (executable) tests the computed GOTO statement. Lists in the

statements have nine or fewer statement labels, which are within the

same program unit. The integer variable referenced is always greater

than zero and does not exceed the number of statement labels in the

list.

030, 051, 052, 055 , examine the formation of expressions with the addition

or subtraction operator. Expressions involve variables, array elements

and constants in varying orders, such as:

variable _+ array element _+ constant

variable +_ constant

array element + constant

array element +_ variable.

In each of these segments, numeric values are assigned to the variables

and array elements which are then referenced in simple arithmetic

statements.

050, ARBAD , (executable) forms expressions in which real values or integer

values are added together. Expressions contain two to eight terms. One

expression contains only variables, one contains only array elements and

an other contains only constants.

051, ARFAD , (executable) combines double precision values with the addition

operator. Values are positive or negative variables and array elements.

Two, four or five terms make up each expression.

I-B-5
052, ARBSB , (executable) forms expressions in which real or integer

values are subtracted. Values are positive or negative variables

and array elements. Expressions contain two to four variables,

array elements and constants.

055, ARFSB , (executable) examines expressions involving the subtraction of

double precision values. Values are positive and negative. Elements

are variables, array elements and constants. Statements contain two

to four variables, array elements and constants.

054, AREAS , (executable) combines both addition and subtraction in

expressions containing real or integer values. Variables, array

elements and constants appear in various combinations and orders.

Numeric values which are assigned are positive and negative. Expressions

contain two to six elements.

055, ARFAS , (executable) combines subtraction and addition in expressions

with double precision values. Some expressions contain parenthesized

expressions within parenthesized expressions, others contain variables,

array elements and constants without parentheses.

056, ARBMI , (executable) tests the multiplication of integer values, which

are both positive and negative. One to six multiplication operations

occur within a single expression.

057, ARBMR , (executable) tests the multiplication of real values. Expressions

contain two to seven terms. Values are positive and negative.

058, ARFMD , (executable) tests expressions which involve the multiplication

of double precision values. Variables, array elements and constants

occur in various orders in expressions which contain from two to

seven terms.

059, ARBDV , (executable) tests expressions of type real or integer in

which variables and constants are divided by variables and constants.

Some expressions contain successive division operations, in order

to examine the order of evaluation of the terms.

040, ARFDV , (executable) tests the division of double precision variables,

array elements and constants. Within an expression, values are of

the same type and divisors are never zero. Expressions contain one

to four division operations.

041, ARBEX , (executable) tests expressions in which integer or real values

are raised to integer or real powers. The exponent assumes values

which include zero and a negative one. Successive exponentiation

occurs in some expressions so that the order of evaluation might be

examined.

A**B

(A**B)**C

(A**B)**(C**D)

I-B-4
042, ARFEX, (executable) tests expressions in which double precision values

are raised to real and double precision powers. Exponentiated values

are raised to exponentiated values. Expressions contain variables,

array elements, and constants.

043, ARBHI , (executable) tests the hierarchy of operators and parentheses.

Only integer expressions are used in this segment which also tests that

the laws of association and commutation may be applied. Integer terms

containing division, do not follow these laws. The order of evaluation,

generally, is according to the following hierarchy:

1. exponentiation

2. multiplication/di vision

3. addition/sub tract ion.

The elements of the expressions are then regrouped, using parentheses,

to cause new orders of evaluation.

050, SBB67 , (executable) tests the formation of subscripts for integer and

real arrays, where the form of the subscript is either an integer

variable, v, or an integer constant, k. Arrays are one, two or three

dimensions, and the variables in the subscripts are given values in

simple arithmetic assignment statements.

051, SBB45 , (executable) tests the formation of subscripts for integer and

real arrays, where the form of the subscript is either a variable plus

a constant, v+k, or a variable minus a constant, v-k. Expressions also

contain array elements with constant subscripts. Variables and constants

in subscripts are of integer type.

052, SBB13 , (executable) tests the formation of subscripts for integer and

real arrays where the form of the subscript is a variable multiplied

by a constant, c*v, or a variable multiplied by a constant plus a constant,

c*v+k, or a variable multiplied by a constant minus a constant, c*v-k.

Through simple arithmetic statements, real and integer values are assigned

to variables and array elements. Integer values are assigned to the

variables occuring in subscripts of array elements, which are then

computed; the array elements are then used in the evaluation of the

expression in which they occur.

053, SBF17 , (executable) tests the formation of subscripts for double

precision arrays using the allowable subscript constructs: v, k, v+k,

v-k, c*v, c*v+k, c*v-k, where c and k are integer constants and v is

an integer variable. Arrays are one, two or three dimensional; subscript

expressions are of integer type and the values assigned to array elements

are of double precision type.

054, SIMIF , (executable) tests simple forms of expressions in an arithmetic

IF statement and a logical IF statement followed by a GOTO, so that

these statements may be used in subsequent tests, the logical IF is

further tested in segment 300, and the arithmetic IF in segments 301

and 302.

I-B-5
055, IFABS , (executable) references the intrinsic functions, ABS, and

lABS, which obtain the value of the argument, disregarding the

sign. The arguments are integer, real variable names, and expressions.

056, IFFLT , (executable) references the intrinsic function, FLOAT, which

is to convert an integer to the real form. Arguments are integer

variable names and expressions.

057, IFFIX , (executable) references the intrinsic function, IFIX, which

is to convert a real value to the integer form. Arguments are real

variable names and expressions.

058, IFSGN , (executable) references the intrinsic functions, SIGN and

ISIGN which are to transfer the sign of the second argument to the

first argument. Arguments are integer or real variable names or

expressions.

059, IFDAB , (executable) references the intrinsic function, DABS, which obtains

the value of a double precision argument, disregarding the sign.

Arguments are double precision variable names and expressions.

060, IFTRN , (executable) references the intrinsic functions, AINT, INT, and

IDINT which are to truncate real and double precision values. Arguments

are variable names.

061, IFMOD , (executable) references the intrinsic functions AMOD and MOD,

defined as remaindering. The arguments are real and integer variables,

respectively.

062, IFMAX , (executable) references the intrinsic functions AMAXO, Ar4AXl,

MAXO, MAXl, DMAXl, which are to choose the largest argument of a set of

arguments. Arguments are real, integer, and double precision variables.

There are two to five arguments in each argument list, though the ANSI

standard does not set a limit on the number of arguments.

065, IFMIN , (executable) references the intrinsic functions AMINO, AMINl, MINO,

MINI, DMINl, which are to choose the smallest value of a set of arguments

Arguments are integer, real, or double precision variables. There are

two to five arguments in each list.

064, IFDSG , (executable) references the intrinsic function DSIGN, which is

the transfer of sign from the second argument to the first. The two

arguments are double precision variables.

065, IFDIM , (executable) references the intrinsic functions DIM and IDIM

which are to obtain the positive difference. Arguments are real and

integer variables, resp.

066, IFSGL , (executable) references the intrinsic function SNGL, which is to

obtain the most significant part of a double precision value. Arguments

are variables and expressions. The first and the last result should be

the same value.

I-B-6
067, IFREL , (executable) references the intrinsic function REAL which is

to obtain the real part of a complex quantity. Arguments are variables.

068, IFIMG , (executable) references the intrinsic function AIMAG, which

obtains the imaginary part of a complex value. Arguments are constants

and variables.

069, IFDBI^ (executable) references the intrinsic function DBLE, which expresses

a single precision argument in double precision form. Arguments are

variables and intrinsic function references.

070, IFCPX , (executable) references the intrinsic function CMPLX, which is

to form a complex value from two real arguments. Arguments are constants

and variables.

071, IFCJG , (executable) references the intrinsic function CONJG, which is to

obtain the conjugate of a complex value. Arguments are constants and

variables.

072, IFBMS , (executable) tests the use of arithmetic expressions of several

terms or containing references to intrinsic functions as arguments to

other intrinsic functions.

073, IFFMS , (executable) references many of the intrinsic functions. The

arguments to them consist of all the primaries.

080, EXPON , (executable) references Basic External Function, EXP, the

exponential function of type real. The arguments which are powers of

2, are real variables and expressions containing intrinsic functions.

The expected results printed to a precision greater than the computed

results in the Basic External Function tests, are obtained from Table

values. [4]

081, DEXPO , (executable) references Basic External Function, DEXP, the double

precision exponential function. Arguments are powers of 2, ranging from

-16.0D0 to +16.0D0. Some arguments are expressions containing intrinsic

functions

.

082, CEXPO , (executable) references Basic External Function, CEXP, the complex

exponential function. The testing range extends from 0 to 16 by steps of

PI/3.

083, LOGTM , (executable) references Basic External Function, ALOG, the natural

logarithm function of type real. Arguments are real variables and

expressions containing intrinsic functions.

084, DPLOG , (executable) tests Basic External Function, DLOG, the double

precision natural logarithm function. Argiunents are double precision

variables and expressions containing intrinsic functions.

085, CXLOG , (executable) references Basic External function, CLOG, the complex

logarithm function. The testing range extends from 0 to 5.E7 by steps

of PI/3.

I-B-7
086, CO LOG , (executable) references Basic External Function, ALOGIO, the

common logarithm function of type real. Arguments are real variables

and expressions containing intrinsic functions.

087, DCLOG , (executable) references Basic External Function, DLOGIO, the

double precision logarithm function. Arguments are double precision

variables and expressions containing intrinsic functions.

088, SINUS , (executable) references Basic External Function, SIN, the

trigonometric sine function of type real. The arguments which range

from 0 to 2 PI, are real variables and expressions containing intrinsic

functions.

089, OPSIN , (executable) references Basic External Function, DSIN, the double

precision trigonometric sine function. The arguments which range from

0 to 2 PI are double precision variables and expressions containing

intrinsic functions.

090, CSICO , (executable) references Basic External Functions, CSIN and CCOS,

the complex trigonometric sine and cosine functions. Arguments are

complex variables.

091, COSNS , (executable) references Basic External Function, COS, the

trigonometric cosine function of type real. The arguments range from

0 to 2 PI, and are real variables and expressions.

092, DPCOS , (executable) references Basic External Function, DCOS, the

trigonometric cosine function of type double precision. Arguments are

double precision variables and expressions which range from 0 to 2 PI.

094, TANGH , (executable) references Basic External Function, TANH, the

hyperbolic tangent function of type real. Arguments are real variables

and expressions containing intrinsic functions.

095, SQROT , (executable) references Basic External Function, SQRT, the square

root function of type real. Arguments are real variables and expressions

whose values are prime numbers.

096, DSQRO , (executable) references Basic External Function, DSQRT, the double

precision square root function. Arguments are double precision variables

and expressions whose values are prime numbers.

09 7, CSQRO , (executable) references Basic External Function, CSQRT, the complex

square root function. Arguments are complex expressions.

098, ARCTG , (executable) references Basic External Function, ATAN, the

trigonometric arctangent function of type real. Arguments are real

variables and expressions containing intrinsic functions and whose

values are powers or sums of 2.

099, DACTG , (executable) references Basic External Function, DATAN, the

single argument trigonometric arctangent of type double precision.

Arguments are real variables and simple arithmetic expressions containing

intrinsic functions, whose values are powers or sums of 2.

I-B-8
100, ACTG2 , (executable) references Basic External Fianction, ATAN2, the two

argument trigonometric arctangent function of type real. Arguments are

real variables and expressions containing intrinsic functions, whose

values are powers or sums of 2.

101, DATN2 , (executable) references Basic External Function, DATAN2, the

two argument trigonometric arctangent function of type double precision.

Arguments are double precision variables and expressions containing

intrinsic functions, whose values are powers or sums of 2,

102, DMODA , (executable) references Basic External Function, DMOD, the

remaindering function of type double precision. Arguments are double

precision variables.

105, CABSA , (executable) references Basic External Function, CABS, the modulus

function. Arguments are the elements of an array of type complex,

110, BSFTS , (executable) references statement functions defined in an

earlier segment, 005. The arguments are integer or real constants,

variables and arithmetic expressions. Type statements are used to

reaffirm the type of some intrinsic functions.

111, FSFTS , (executable) references statement functions in which the

arguments are logical, double precision or complex constants, variables,

and logical or arithmetic expressions. The statement functions were

defined in segment 006, Type statements are used to reaffirm the type

of some intrinsic functions,

140, CPXAD , (executable) tests expressions in which complex values are

added or subtracted. Complex variables and constants occur in various

orders and combinations, with two to nine elements in each expression.

141, CPXMU , (executable) tests expressions in which complex values are

multiplied by complex values. Expressions contain from two to ten

terms in various orders and combinations of complex variables and complex constants,

142, CPXDV , (executable) contains expressions in which complex values are

divided by complex values. Variables and constants appear both as dividends and divisors. Some expressions involve only complex variables, some only complex constants, and others a combination of both.

145, CPXEX , (executable) involves the exponentiation of complex values. The

value of the integer power varies from 5 to 100. Expressions contain

variable and constant values raised to variable or constant powers.

Each expression contains a single term.

144, CPXOP , (executable) performs several arithmetic operations within an

expression containing complex values. Each of the arithmetic statements

performs addition, subtraction, multiplication, division, and exponentiation. Only the exponents are of integer type.

I-B-9
145, CREAD , (executable) performs addition and subtraction within an

expression containing complex and real values. Other than in

exponentiation, complex values may only be combined with real values

„

146, CREMU , (executable) performs multiplication of real and complex values

within an expression. The number of terms in an expression varies

from two to four.

147, CREDV , (executable) performs division of complex values by real values

and of real values by complex values. Expressions contain terms in which

values are variables or constants.

148, CREOP , (executable) performs, within an expression, addition, subtraction,

multiplication and division of complex and real values, and exponentiation of complex values. Exponents are integer values, only. The

hierarchy rules determine the order of evaluation.

149, MISC3 , (executable) contains arithmetic assignment statements in which

the statements are continued for several lines and are interspersed with

many blanks. Blanks occur within variable names and throughout the

statements which are one to twenty lines in length. The statements

involve real and integer values only. The digits, the letters and the

special FORTRAN characters make up the list of continuation characters for

the multiple line statements. The digit, zero, and the character, blank,

are not legitimate continuation characters, but are used in the initial

line of a statement.

150, MISC4 , (executable) has interspersed blanks within arithmetic assignment

statements containing complex values. Statements are one to twenty lines

with letters and special characters to indicate the continuation,, Statements occur which have a single character on a line; others have one or

two terms of the expression on a line. Uncounted blanks do not appear

in the midst of Hollerith information. Continuation lines of both a

FORMAT statement and an assignment statement contain non space characters

in columns 2 through 5. The arithmetic assignments used in this segment

are similar to those used in segment 148.

160, BRFCP , (executable) references REAL functions, contained in segments 400,

420, 430, 440, 450, 460. The arguments of the functions are either integer

or real variable names, array names, array element names, and arithmetic

expressions. Arguments are given numerical values in arithmetic assignment

statements, and their names, values, or expressions appear in the argument

list of the function reference. Function references contain one or two

arguments in the argument list with only one list containing many arguments

161, BIFCP , (executable) references INTEGER functions contained in segments

401, 421, 431, 441, 451, 461. Arguments are integer or real variable

names, array names, array element names and arithmetic expressions.

Argument lists contain as few as one argument and as many as twenty

arguments, though no limit is imposed by the ANSI standard. The expression in which the references occur are of the same type as the function

value to be returned.

I-B-10
162, FRFCP , (executable) references REAL functions; the arguments are the

types integer, real, double precision, complex and logical, and are

variable names, array names, array element names, and external procedure

names. The functions referenced are contained in segments 402, 422,

432, 442, 452. Reference is also made to two intrinsic functions, REAL

and AIMAG, which return the real part and the imaginary part of complex

values, resp. to the expressions in which they occur. Common storage

is shared by the referencing program and a function.

163, FIFCP , (executable) references INTEGER functions with arguments of

types integer, real, double precision, complex and logical. Variable

names, array names, array element names and external procedure names

appear in the argument lists. Common storage is shared by the

referencing program and a function. The functions referenced are in

segments 403, 423, 433, 443, 453. One argument list contains twentyone arguments; all others contain one or two arguments.

164, CFCCP , (executable) references COMPLEX functions with arguments of

types integer, real, double precision, complex, and logical. The

argument lists include variable names, array names, array element names

and external procedure names. The functions referenced are contained

in segments 404, 414, 424, 434, 444, 454, 464. Common storage is

shared by the referencing program and a function.

165, DPFCP - (executable) references DOUBLE PRECISION functions with arguments

of types integer, real, double precision, complex and logical. Variable

names, array names, array element names, and external procedure

names appear in the argument lists. Common storage is shared by the referencing program and a function. The functions referenced are in segments

405, 415, 425, 435, 445, 455, 465, 475. These functions return a value

which is of the same type as the expressions in which they occur within

the calling program.

166, BFCCP , (executable) references LOGICAL functions with arguments of types

integer, real, double precision, complex and logical. The argument

lists include variable names, array names, array element names, and external

procedure names. Referenced functions are in segments 406, 416, 426, 436,

446, 456, 466, 476; the value of the function returned from each reference

is of type logical. Common storage is shared by the referencing program

and a function.

167, SBRTN , (executable) calls subroutine subprograms. Arguments are the

types integer and real and include variable names, array names, expressions

and a Basic External Function. A CALL from a subroutine is made to

another subroutine. One subroutine CALL contains no argument list.

Subroutines called are in segments 407, 417, 427, and one of them shares

common storage with the calling program.

168, FSBRT , (executable) calls subroutine subprograms. Arguments are the

types integer, real, double precision, complex and logical and include

variable names, array names, and expressions. A CALL from one subroutine

is made to another subroutine; one subroutine CALL contains no argument

I-B-11
list. Subroutines called are in segments 408, 418, 428, and share ^ common storage with the calling program. Values are returned via

the argument list of the CALLo

169, BLKDT , (executable) uses a block data subprogram. Labeled common

blocks contain variable names and dimensioned arrays. Implicit types

of variables and arrays are overridden by double precision, complex

and logical statements. The block data subprogram used to supply the

initial values of the labeled common blocks is contained in segment

409. Tliis segment writes out the values which are contained in the

labeled common blocks.

179, BLKDA , (executable) uses three block data subprograms, which contain

six labeled common blocks with elements to be initialized. Elements of

any block are initialized through only one of the block data subprograms

contained in segments 419, 429, 439. Implicit typing is sometimes overridden by double precision, complex, and logical statements. This

segment writes out the values which are contained in the labeled common

blocks. They correspond to the labeled common blocks of the block data

subprogram,

180, UNFRW , (executable) tests the unformatted WRITE statement and the

unformatted READ statement with and without a list. Included in the

segment is an ENDFILE statement. This segment uses an intermediate

tape.

182, BACUP , (executable) examines the backspace statement. Data is created

in memory, written to tape, then changed in memory. The tape is then

backspaced, and the data read to memory in a forward direction. The

data block is 10 24 words in length and is written and read by way of

unformatted input/output statements. This segment uses an intermediate

tape o

190, DOTRM , (executable) examines DO statements and DO ranges which terminate

with a CONTINUE, ASSIGN, or logical IF statement. DO statements meet the

requirements that parameters of the DO must be greater than zero, and must

not be redefined during the execution of the range of that DO. In some DO

statements, tlie incrementation parameter appears; in others, it does not

appear and has an implied value of one,

191, DOLMT , (executable) examines a DO statement and its range, in which the

parameters are integer variable names. Numerical values are given for

them in arithmetic assignment statements occurring before the DO

statement. The DO range consists of an arithmetic assignment statement

involving the induction variable and the terminal statement which is a

CONTINUE,

192, DONSC , (executable) examines DO ranges contained within other DO ranges,

the parameters of which are integer constants and variables. Each range

of a DO within the nest has its own terminal statement o Another nest of

DO's has a single terminal statement. Nests contain two to five DO statements and the DO range includes arithmetic IF statements and GO TO

statements

»

I-B-12
195, DONSI , (executable) examines a DO statement and its associated range,

in which an exit is made from the range of a DO before the DO has

been satisfied. The induction variable is used both within and outside

of the range of the DO.

194, DONSX , (executable) examines a DO nest which has an extended range.

Exit from the innermost DO is by way of an unconditional transfer,

reentry is by way of an arithmetic IF statement.

195, DONtlL , (executable) examines the ranges of DO's which are within the

range of another DO, but are not nested. All parameters are integer

constants and the ranges contain arithmetic assignment statements,

196, DONIO , (executable) examines the ranges of DO's which have input or

output statements as the terminal statement. The terminal statements

include a READ, a REWIND and a WRITE statement, each of which is also

the only statement within the range of that DO. This segment uses an

intermediate tape.

19 7, MORDQ , (executable) examines DO ranges which have within, references to

statement functions and intrinsic functions, CALLS to subprograms, and

DO's with extended ranges. Input, output and rewind statements are also

within these DO ranges. This segment uses an intermediate tape.

200, SUBRl , (executable) passes the I/O assignments through common then calls

a subroutine subprogram without an argument list, and returns to an

unlabeled CONTINUE statement. The subroutine called is contained in

segment 410. This segment uses an intermediate tape,

500, LOGIF , (executable) examines the logical IF statement. Variables and

array elements, declared logical, are assigned values of true or false.

These values are then used in the logical IF statement, which includes an

executable statement which is not a DO statement nor an other logical

IF statement. A signed zero constant is tested in a relational

expression.

501, BARIF , (executable) examines the arithmetic IF statement which contains

integer or real values and references to intrinsic functions. The effect

of the sign of zero is tested.

502, FARIF , (executable) examines arithmetic IF statements in which the

expressions contain double precision values and references to intrinsic

functions.

510, lOFMT , (executable) examines the formatted READ and WRITE statements and

FORMAT statements as they relate to fields of input card images. There

are 58 card images read as input to this segment; the formats under which

the variables and array elements are read and written include each of

the descriptors. Formats occur in which there is a one to one

correspondence between elements in the list and descriptors; other

formats occur which do not have the same number of descriptors as there

are elements in the lists. Segment 510 examines additional features not

contained in segment 008.

I-B-15
512, RDFMT , (executable) examines formatted READ and WRITE statements in

which the format specifications are contained within arrays. Reference

is to an array name, in place of the reference to a format statement

label. The format specifications contained in arrays do not have

nil field descriptors. F0RJ4AT specifications are defined in DATA

statements, read in as elements of an array, and passed as an argument

to a subroutine. There are 13 card images read in this segment.

550, MISC5 , (executable) examines the specifications of the program form.

This includes verifying that comments are not executed, that every

statement within the unit, can be reached, that all characters in

a line are accepted, that labels can be one to 5 characters long and

may be placed anywhere in columns one to five. Other features of

program form are also examined.

55 1

,

FUNMX , (executable) further tests some Basic External Functions by

using trigonometric formulas.

552, NAMES , (executable) determines whether the compiler can distinquish predefined function names and data names from FORTRAN verbs. The names of

intrinsic functions and FORTRAN verbs appear as variable names and array

names in a program unit. In other units of the same program, these names

appear as intrinsic function names and as FORTRAN verbs. Subprogram units

are segments 413, 463, 473, 483.

560, SPEC2 , (executable) examines the use of integer variables and arrays and

real variables and arrays, which are either in COMMON, or appear in

EQUIVALENCE statements, or both. All array names are in DIMENSION statements; some have two or three dimensions, which are written as one

dimensional arrays in the EQUIVALENCE statement. The array element

successor function defines a relation by which a multi-dimensional array

can be made equivalent to a one dimensional array. The order of the

specifications is DIMENSION, COMMON, EQUIVALENCE and no dummy arguments

appear in COMMON or EQUIVALENCE statements. Numeric values are assigned

to variables and array elements to which other variables and array elements

have been equivalenced. The associated variables and array elements are

then used in arithmetic assignment statements, DO statements, IF statements

and computed GOTO statements. A special blank common arrangement is used

in this segment and this segment may not be combined with other segments

requiring blank common.

Segments beginning with segment 400 are subprograms.

400, AFS , to be run with main program segment 160, is a real function of one

real argument. The value of the function is the result of multiplying

the dummy argument by a constant.

420, BFS , to be run with main program segment 160, is a real function of two

real arguments which are added together to produce the value of the

function.

I-B-14
430, CFS , to be run with segment 160, is a real function of an integer

argument, which is the power to which a constant is raised, to produce

the value of the function.

440, DFS , is a real function of two integer arguments, one of which is

subtracted from the other producing the power to which a real constant

is raised. The result is the value of the function. This function is

referenced in segment 160.

450, EFS , is a real function of a real array, the size of which is declared

in a DIMENSION statement. The value of the function is the sum of the

elements of the array. This function is referenced in segment 160.

460, EPS , is a real function with twenty arguments of integer and real

variables and integer and real arrays. The expression defining the

function contains addition, subtraction, multiplication and exponentiation

of arguments. This subprogram is referenced in segment 160.

401, lAFI , is an integer function of a single real argument. The value of

the function is the product of a constant and the argument. This

subprogram is referenced in the main program contained in segment 161.

421, IBFI , is an integer function of two real variables. The value of the

function is the sum of the two arguments. This subprogram is referenced

in the main program contained in segment 161.

451, ICFI , is an integer function of an integer variable. The value of the

function is obtained by exponentiating a real constant. This segment

is referenced in the main program contained in segment 161.

441, IDFI , is an integer function of two integer arguments. The value of the

function is obtained by raising a real value to the power which is the

difference between the two arguments. The real variable is defined in a

DATA statement. Segment 441 is referenced in segment 161.

451, lEFI , is an integer function with a single argument consisting of an

integer array. The size of the array is declared in a DIMENSION statement and the elements of the array are added together to produce the

value of the function. Segment 451 is referenced in connection with

segment 161.

461, IFFI , is an integer function with twenty arguments of real variables

and arrays and integer variables and arrays. The dimensionality of

each array is declared within the subprogram. The value of the

function is obtained by evaluating the equation which contains addition,

subtraction, multiplication and exponentiation, of variables and array

elements. This segment is referenced in segment 161.

402, GFS , is a real function of a double precision argument. The argument

is assigned to the function name„ This subprogram name is passed as an

argument in segment 162 to segment 442, JRFS, which references it.

I-B-15
422, HFS , is a real function of two complex variables. The value of the

function is obtained by assigning the imaginary part of the product

of the complex values to the function name. This segment is referenced

in segment 162,

452, IRFS , is an explicitly typed real function of a logical variable. The

function value is defined by one of two logical IF statements, depending

upon the value of the argument. This segment is referenced twice in

segment 162.

442, JRFS , is an explicitly typed real function of an external procedure

(segment 402) and a double precision variable. The value of the

function is the value of the external procedure of which the double

precision value is the argument. This segment is referenced in

segment 162.

452, RFS , is a real function with twenty-one arguments of all the types of

variables and arrays and an external procedure which is not referenced.

Array and variable types are declared in logical, complex and double

precision statements. Adjustable arrays appear in this subprogram.

This segment is referenced in segment 162.

403, IFI , is an integer function of a double precision variable. The

variable is assigned to the function name to produce the value of the

function. This segment is referenced in segment 163 and also passed

as an argument from segment 163 to segment 453 and segment 443,

423, JFI , is an integer function of two complex arguments. The value of the

function is the imaginary part of the product of the two arguments.

This segment is referenced in segment 163.

433, KFI , is an integer function of a logical argument. The value of the

function is determined by one of two logical IF statements, depending

upon the value of the argument. This segment is referenced twice in

segment 163.

443, LFI, is an integer function of the external procedure IFI (segment 403)

and a double precision variable. The value of the function is the value

of the external procedure of which the variable is the argument. This

segment is referenced in segment 163.

453, MFI , is an integer function with twenty-one arguments of all the types

of variables and arrays and an external procedure. An adjustable array

and its adjustable dimensions are dummy arguments of this subprogram.

Tliis segment is referenced in segment 163, and is similar to segment 452

except for function type, and the dummy function is referenced.

404, AFC , is a complex function, explicitly typed, of a real variable. The

sum of the real variable and a complex value is the value of the function.

This segment is referenced in segment 164.

I-B-16
414, BFC , is a complex function of an integer argument. A complex value is

raised to an integer power to produce the function value. This segment

is referenced in segment 164.

424, CFC , is a complex function of a real array. The elements of the array are

subtracted from a complex constant to produce the function value. This

segment is referenced in segment 164.

434, DFC , is a complex function of a double precision variable. The value

of the function is obtained by subtracting a complex constant from the

product of a complex constant and a real variable. This segment is

referenced in segment 164.

444, EFC , is a complex function of a complex variable. The function value

is the complex argument minus a constant. This segment is referenced

in segment 164,

454, FFC , is a complex function of a logical variable. The value of the

function is determined by one of two logical IF statements, depending

upon the value of the argument. This segment is referenced twice in

segment 164,

464, HFC , is a complex function with twenty-one arguments of all the types of

variables and arrays and a complex function which is not referenced.

Variable and array types are declared in type statements in the

subprogram. Adjustable arrays are arguments in this subprogram. A

value is passed through common and is redefined within the subprogram.

This segment is referenced in segment 164 and is similar to segment 452,

405, AFP , is a double precision function of a real argument. The value of the

function is set equal to the argument. This subprogram is referenced

in segment 165 and also passed as an argument from segment 165 to segment 455

415, BFD , is a double precision function of an integer variable, A double

precision constant is raised to the power of the integer variable.

This segment is referenced in segment 165.

425, CFD , is a double precision function of a double precision argument.

The value of the function is the value of the argument. This segment is

referenced in segment 165.

455, DFD , is a double precision function of two complex variables. The value

of the function is the imaginary part of the product of the two complex

variables. This segment is referenced in segment 165.

445, EFD , is a double precision function of a logical variable. The value

of the function is determined by one of two logical IF statements,

depending upon the valuer of the argument. This segment is referenced

twice in segment 165.

455, FFD , is a double precision function of an external procedure (segment

405) and a double precision variable. This segment is referenced in

segment 165.

I-B-17
465, GFD , is a double precision function of a double precision array. The

elements of the array are added together to produce the value of the

function. This segment is referenced in segment 165.

475, HFD , is a double precision function with twenty-one arguments of all the

types of variables and arrays and a double precision function which is

not referenced. Adjustable arrays are arguments in this segment. A

value is passed through common and redefined in the function subprogram.

This segment is similar to segment 452 and is referenced in segment 165.

406, AFB , is a logical function of a real variable. This function is referenced

in segment 166.

416, BFB , is a logical function of an integer argument. This segment is

referenced in segment 166.

426, CFB , is a logical function of a double precision argument. This segment

is referenced in segment 166.

436, DFB , is a logical function of a logical variable. The value of the

function is the value of the argument. This segment is referenced in

segment 166.

446, EFB , is a logical function of a complex variable. This segment is

referenced in segment 166.

456, FFB , is a logical function of a real array. This segment is referenced

in segment 166.

466, GFB , is a logical function of a real variable and a logical external

procedure (segment 406), This segment is referenced in segment 166.

476, HFB , is a logical function with twenty-one arguments of all the types

of variables and array elements and an external function which is

referenced. This segment is referenced in segment 166.

407, AAQ , is a subroutine subprogram with integer and real variable and

array names and a function in the argument list. This subprogram,

called in segment 167, calls another subprograjn (segment 417), whose

argument list Cx^ntams integer and real array names.

417, ABQ , is a subroutine subprogram called from another subroutine subprogram (segment 407) which is called in segment 167.

427, ACQ , is a subroutine subprogram which has no argument list. Variables

and arrays are passed through common; some are redefined within the subprogram. This segment is referenced in segment 167.

408, ADQ, is a subroutine subprogram with twenty-four arguments of type integer,

real, double precision, complex, and logical variables and arrays. This

subprogram, called in segment 168, calls another subprogram (segment 418),

whose arguments are integer and real variables and arrays.

I-B-18
418, AEQ , is a subroutine subprogram called from another subroutine subprogram

(segment 408). The arguments are integer and real variables and arrays.

This subroutine is used with segment 16 8.

428, AFQ, is a subroutine subprogram which has no arguments. Variables

and arrays are passed through common; some are redefined within the

subprogram. This segment is referenced in segment 168.

409, BLOKD , is a block data subprogram, which contains type, EQUIVALENCE,

DATA, DIMENSION, and COMMON statements. These are the allowable statements

in a block data subprogram, in which data statements assign values to

variables and array elements which are in labeled common blocks,

Hollerith data is assigned to each type of array, which are one, two,

and three dimensional. This segment is to be run with segment 169,

410, SUBRQ, is a subroutine subprogram whicli contains no argument list and

returns no values to the calling program. Arguments are passed through

blank common. The subprogram contains FORTRAN statements, including

input/output statements and references to intrinsic functions. This

subroutine is called in segment 200, This segment is similar to main

program segment 197,

Segment 419 BLAKD,

Segment 429 BLBKD,

Segment 439 BLCKD, are three block data subprograms, each of which, through

data statements, assigns values to a different labeled common block.

Each of these subprograms contains all of the statements allowed in a

block data subprogram and each contains arrays of one, two, and three

dimensions. These segments are run with segment 179.

411, SMCQ, is a subroutine subprogram called from a logical IF statement

in the calling program, segment 300.

412, MDQ , is a subroutine subprogram called from within a DO of the calling

program. It is called from segment 197.

462, FMTQ, is a subroutine subprogram called by segment 312. FORMAT

specifications and Hollerith constants are passed as arguments of the

subroutine. An empty FORMAT specification is also tested.

413, MAQQ , is a subroutine subprogram in which an intrinsic function name is

used as a variable name and a second intrinsic function name is referencedo

This subroutine is called from segment 352,

463, MBQQ , is a subroutine subprogram in which an intrinsic function name is

used as a variable name. It is called from segment 352.

473, AMQQ , is a subroutine subprogram in which an intrinsic function name is

used as a variable name. This subroutine is called from segment 352,

483, BMQQ , is a subroutine subprogram in which several intrinsic function

references are nested and one intrinsic function name is used as a

variable name. This subroutine is called from segment 352,

I-B-19

TEST UNIT SEGMENTS INDEXED TO THE FORTRAN STANDARD DOCUMENT ASA X3.9-1966

The following is the table of contents to the FORTRAN document X3, 9-1966

with the corresponding FORTRAN Test Program Segments identified.

ASA X3o9-1966

Section Number and Title

1. Purpose and Scope

2o Basic Terminology

3. Program Form

3.1 The FORTRAN Character Set

3ol.l Digits

3.1o2 Letters

3.1.3 Alphabetic Characters

3.1.4 Special Characters

3o 1.4.1 Blank Character

3.2 Lines

3o2ol Comment Line

3., 2. 2 End Line

302.3 Initial Line

3.2.4 Continuation Line

3.3 Statements

3.4 Statement Label

3.5 Symbolic Names

3.6 Ordering of Characters

FORTRAN Test Program Segment

008,149

008,360

008,009

008,009

008,009

008,009,149,150

150,350

ALL, 350

ALL, 441

ALL

ALL, 149, 150

ALL, 149, 150

ALL, 150,350

ALL, 350,352,463,473,483

(ASSUMED)

4. Data Types

4.1 Data Type Association

4.2 Data Type Properties

4.2.1 Integer Type

4.2.2 Real Type

4.2.3 Double Precision Type

4o2o4 Complex Type

. 4.2.5 Logical Type

4.2.6 Hollerith Type

003, 010, 149, ALL

054,301,302

Oil

Oil

013

015

016

003,010

5, Data and Procedure Identification

5.1 Data and Procedure Names

5.1.1 Constants

5.1.1.1 Integer Constant

5.1.1.2 Real Constant

5.1.1.3 Double Precision

Constant

5.1.1.4 Complex Constant

5.1.1.5 Logical Constant

5.1.1.6 Hollerith Constant

017

003,010,011

003,010,011

003,010,013

003,010,015,067

003,010,016

003,010,312,462
5.1.2 Variable

5.1.3 Array

5.1.3.1 Array Element

5.1.3.2 Subscript

5.1.3.3 Subscript Expressions

5.1.4 Procedures

5o2 Function Reference

5.3 Type Rules for Data and

Procedure Identifiers

5.4 Dummy Arguments

6. Expressions

6.1 Arithmetic Expressions

6.2 Relational Expressions

6.3 Logical Expressions

6.4 Evaluation of Expressions

003,010,312

003,010

003,010

003,010

050,051,052,053

(See Section 8)

(See Section 8)

003,010,110,111, (Tables 3 5 4 See

Section 8)

(See Section 8)

030-043,140-148

016,300

016,300

011,013,015,017,043

7. Statements

7.1 Executable Statements

701.1 Assignment Statements

7.1.1.1 Arithmetic Assignment 011,013,015,017,030-043,140-148

Statement

7.1.1.2 Logical Assignment 016

Statement

7.1.1.3 GO TO Assignment 021

Statement

7.1.2 Control Statement

7.1.2.1 GO TO Statements

7.1.2.1.1 Unconditional GO TO 020

Statement

7.1.2.1.2 Assigned GO TO 021

Statement

7.1.2.1.3 Computed GO TO 022

Statement

7.1.2.2 Arithmetic If Statement 054,301,302

7.1.2.3 Logical If Statement 054,300

7.1.2.4 CALL Statement 167,168,200,312,352,408

7.1.2.5 RETURN Statement 400-483

7.1.2.6 CONTINUE Statement 150,190-197,200

7.1.2.7 Program Control

Statements

70 1.2. 7.1 STOP Statement ALL, 360

7.1.2.7.2 PAUSE Statement (Omitted)

7.1.2.8 DO Statement 190-197

7.1.3 Input/Output Statements

7.1.3.1 (initial record, next 180,182

and preceding record)

7.1.3.2 READ and WRITE Statements

7.1.3.2.1 Input/Output Lists 008,310

7.1.3.2.2 Formatted READ 008,009,196,310,312

7.1.3.2.3 Formatted WRITE 008,009,196,310,312

7.1.3.2.4 Unformatted READ 180,182

7.1.3.2.5 Unformatted WRITE 180,182

I-C-2
7.1.3.3 Auxiliary Input/Output

Statements

7.1.3.3.1 REWIND Statement 180,196

7.1.3.3.2 BACKSPACE Statement 182

7.1.3.3.3 ENDFILE Statement 180

7.1.3.4 Printing of Formatted 008

Records

7.2 Nonexecutable Statements

7.2.1 Specification Statements

7.2.1.1 Array-Declarator ALL

7.2.1.1.1 Array Element 003,008,180,192

Successor Function

and value of a

subscript

7.2.1.1.2 Adjustable Dimension 162-166,452,453,464,475,476

7.2.1.2 DIMENSION Statement 003,008,169,409,360 (all parts)

7.2.1.3 COMMON Statement 162-169,200,360,409

7.2.1.4 EQUIVALENCE Statement 169,409,360

7.2.1.5 EXTERNAL Statement 162-167

7.2.1.6 Type-Statements 003,022,110,111

7.2.2 Data Initialization State- 003,010,312,441

ment

7.2.3 FORMAT Statement 008,009,310,312,410,462

7.2.3.1 Field Descriptors 008,009,312,462

7.2.3.2 Field Separators 008,009

7.2.3.3 Repeat Specifications 008,009

7.2.3.4 Format Control Inter- 008,310

action with Input/Output

List

7.2.3.5 Scale Factor 008,310

7.2.3.5.1 Scale Factor Effects 008,310

7.2.3.6 Numeric Conversions 008,310

7.2.3.6.1 Integer Conversion 008,011

7.2.3.6.2 Real Conversions 008,011

7.2.3.6.3 Double Precision 008,013

Conversions

7.2.3.6.4 Complex Conversion 008,015

7.2.3.7 Logical Conversion 008,016

7.2.3.8 Hollerith Field 009

Descriptor

7.2.3.9 Blank Field Descriptor 008

7.2.3.10 Format Specification in 312,462

Arrays

8. Procedures and Subprograms

8.1 Statement Functions

8.1.1 Defining Statement Functions 005,006,410

8.1.2 Referencing Statement 110,111,197,410

Functions

8.2 Intrinsic Functions and Their 055-073,352

References

I-C-3
8.3 External Fionctions

8.3.1 Defining Function Subprograms

8.3.2 Referencing External

Functions

8.3.3 Basic External Functions

8.4 Subroutine

8.4.1 Defining Subroutine Subprograms

8.4.2 Referencing Subroutines

8.5 Block Data Subprogram

9 . Programs

10, Intra-and Inter- Program Relationships

400, 420, 430, etc.

160-166

080-103,351

408,410,418,427,428,462

167,168,200,312

169,179,409,419,429,439

Rules stated are included under

tests related to Section 3 through

Section 8 of the FORTRAN Standard

I-C-4
Do PROGRAM INFORMATION

The following points describe the organization of FORTRAN test programs:

The programs are divided into a number of small segments.

Most segments, except for specification statements, I/O assignment

statements, statement functions, subprograms and DATA statements,

are completely self-contained.

Most segments are very simply written with the testing devoted to

related features described in the ASA standard. The number of FORTRAN

statement types is minimized in order to make each test less dependent

on other language features.

Eveiy segment begins with a heading of comment lines which gives

the segment name, segment number, pertinent ASA references,

purpose of the segment and restrictions observed in the segment.

The last line in every segment is marked by a comment line with the

message "END OF TEST SEGMENT xxx."

Comments, throughout each segment, give detailed ASA references

and additional explanations of the coding.

Dl. Conventions Used in the Test Programs

Certain conventions have been adopted and are used throughout the document, the program code and the test results. These conventions provide the user with a means to:

identify types of data,

determine the number of dimensions associated with a given

array,

distinguish program elements,

correlate references between the ASA FORTRAN standard document

and the pertinent test segments.

The conventions are described below.

a) Segment Identification

Each segment is identified in the following two ways:

By a 3- to 5- character (A-Z, 0-9) descriptive name (e.g.,

DPLOG, SBRTN).

By a unique 3-digit (0-9) number.

Both the segment name and number appear in the program listing,

the documentation and the generated test results.

I-D-1
b) Line Numbers

Line numbers, columns 73-80, are outside of the standard, but

are usually available in an implementation of the FORTRAN Standard,

when the source statements are introduced to the processor from

punched cards.

The scheme used to identify FORTRAN lines is a compromise between

the ability to associate the proeram listing with this document

and the card handling problem. The FORTRAN test program listing

represents both a statement of the program for the processor and

a document for the user. The program listing also assists in the

consolidation and isolation of test units. Although each line

number is unique, a test program unit may contain FORTRAN lines

with columns 74-76 (segment number) with segment numbers 001-007

inserted within the test units. Columns 73-80 are coded in the

following fashion:

Column 73 contains

Columns 74, 75, 76 contain

Columns 77, 78, 79 contain

Column 80 contains

P for FORTRAN Test Version 1.

H for FORTRAN Test Version 3.

nnn where 'nnn' are 3 unique

digits (0-9) which identify

the program segment, (The

greatest segment number

allowed is 699)

.

mmm where 'mmm' are 3 digits (0-9)

representing a line number

within the program segment.

X where x is either zero or five

and allows for the insertion of

lines at a later time.

In Version 1, the sequence numbers (columns 77-80 for segments 001

and 007 start with 0010 and are incremented by 5, with each new segment

number (columns 74-76) forcing the beginning sequence number to be even.

In Version 3, the sequence numbers (columns 77-80) for segments 000,

001, and 007 are increased by 5 in column 80 and each Part is initiated

by the following sequence number: Part 1, 0010; Part 2, 0400;

Part 3, 0700; Part 4, 1200; Part 5, 1800; Part 6, 2300; Part 7, 2700;

Part 8, 3200; Part 9, 3700; Part 10, 4300; Part 11, 4800; Part 12, 5400;

Part 13, 6000; Part 14, 6400; and the statement function definition

segment 005 imbedded in segment 19 7 begins at 0500,

c) Statement Labels

Each statement label is a string of four digits (0-9) » To avoid

duplicate labels in the test program, the first three digits of the

string contains the number of the segment in which the statement label is found, (See the description of columns 74-76 above).

The fourth digit is used to make the string unique within that

particular segment.

I-D-2
This convention provides ten unique labels per program segment.

When more than ten labels are needed in any segment, digits 1-3 of

the extra labels contain a unique number between 700 and

999 J instead of the program segment number. For this reason, the

greatest program nun4)er allowed is 699. A table of currently used

additional statement numbers is contained in Section I-D3e.

d) Format of Comments

Every comment line contains 'C in column 1, followed by five

asterisks (*) or a "C='' in columns 1 and 2.

Each segment is preceded by a heading of comment cards which

give the segment name, segment number, purpose of the segment,

restrictions observed, ASA references and miscellaneous

comments

.

Additional comment lines, interspersed with the actual coding

describe the specific purpose of the coding which follows and

give pertinent ASA references

.

Comment lines containing "C=" in columns 1 and 2 denote the

required Specification statements, I/O Assignment statements,

STOP statement and END line needed to construct a FORTRAN

program if each main program segment is to be run as a

separate test unit,

e) Format of the Generated Test Results

The generated test results of every segment start on a new page and

are headed by several lines which give the segment name, segment number,

purpose of the segment (very briefly stated) , and ASA references . The

printed area is constrained to an 8 1/2 by 11 inch page, with a

maximum of 57 lines printed per page.

f) Naming Conventions

A unique 3- to 5-character designation is used to identify a variable, array, function or subprogram. The combination of the last

two characters in the name indicates the type and category. The

character preceding the last two flags items which appear in COMMON

or EQUIVALENCE statements. One or two optional characters may begin

each name to make it unique. The conventions are as follows:

If character 5 is

(or last character)

I the type is integer;

s the type is real;

D the type is double precision;

C the type is complex;

B the type is logical;

H the actual argument is Hollerith;

Q the string represents a subroutine.

I-D-3
If character 4 is

(or next to last

character)

V the string represents a variable;

F the string represents a function;

n where 'n' is a digit (1-3), the

string represents an array with n

dimensions

;

a where 'a' is any other letter (A-E,

G-U, W-Z) for cases in which none

of the other codes are applicable.

If character 3 is W the name is a dummy argument;

X the name appears in a COMMON

statement;

Y the name appears in an EQUIVALENCE

statement;

Z the name appears in both COMMON and

EQUIVALENCE statements;

a where 'a' is any other letter (A-V)

,

the name appears neither in COMMON

nor in an EQUIVALENCE statement.

Characters 1 and 2 are aa where 'aa' are any letters (A-Z)

associated with the string. These

two characters are used only to

insure that each name is unique.

Either or both of them may be

omitted, if desired.

Examples of this convention are A3I, BBXVD, CBFS, PAAQ where the

strings represent a 3-dimensional integer array, a double precision

variable (used in a COMMON statement), a real function name and a

subroutine name, respectively.

Assumed Levels for Non-specified FORTRAN Areas

The ASA standard does not impose specifications in many areas that are

clearly subject to limitations in actual FORTRAN compilers. Therefore,

in order to design meaningful tests, some additional specifications

have been established. These limits are described below.

a) Level of Nesting

The DO loop segments of the program contain a maximum of FIVE nested

loops

.

b) Number of Arguments

The test program contains subprograms with up to TWENTY-FIVE

arguments

.

c) Size of Arrays

The size of arrays is generally very small, i.e., usually less than

TWENTY words.

I-D-4
d) FORMAT Standards

FORMAT statements never cause more than FORTY characters on a line to

be generated in the output.

e) Number o£ Parentheses

Expressions in the test program never exceed TEN levels of

parentheses,

f) GO TO Branches

The number of branches in assigned and computed GO TO statements

never exceeds TWELVE branches.

g) Constant Length

Constants are kept small in order not to exceed the storage unit

length capacity of some computers. The limits on constant

length are set as follows:

Integer constants

Real constants

- 5 digits

- 7 digits

Double precision

constants

Complex constants

(each half)

Hollerith constants

- 14 digits

- 7 digits

- 2 characters except in segment 009

which tests A-conversion for 1 to 4

characters and 26 characters for the

truncation test.

I-D-5
D3. Names and Statement Numbers Used in the Test Programs

Only those names which are used as array names, external function

and subroutine names, common block names, and variable names appearing in

a DATA statement appear in the following lists. The list of array

declarators appearing in type statements and COMMON statements is supplied

to assist the user when he wishes to extend or revise the test programs.

a) Subprogram Names Used in the Test Program Set and the Number

of Arguments

Integer Functions Real Functions Logical Functions

lAFI 1 AFS 1 AFB 1

IBFI 2 BFS 2 BFB 1

ICFI 1 CFS 1 CFB 1

IDFI 2 DFS 2 DFB 1

lEFI 1 EFS 1 EFB 1

IFFI 20 FFS 20 FFB 1

IFI 1 GFS 1 GFB 2

JFI 2 HFS 2 HFB 21

KFI 1 IRFS 1 LFI 2 JRFS 2

MFI 21 RFS 21

Double Precision

Functions

Complex Functions

AFD

BFD

CFD

DFD

EFD

FFD

GFD

HFD

1

1

1

2

1

2

1

21

AFC

BFC

CFC

DFC

EFC

FFC

HFC

Subroutines

Block Data Subprograms -No Names Permitted

In FORTRAN Language But Identified by

Comment Cards As

AAQ 9 BLOKD

ABQ 3 BLAKD

ACQ 0 BLBKD

ADQ 24 BLCKD

AEQ 8

AFQ 0

MDQ 2

SMCQ 1 FMTQ 22

SUBRQ 0

MAQQ 2

MBQQ 2

AMQQ 2

BMQQ 2

I-D-6
b) Array Declarators in Type Statements and COMMON Statements

Double Precision Complex

ACID (10)

A1D(4)

A2D(2,2)

A3D(2,2,2)

BC2D(7,4)

CC3D(7,2,2)

DPA1D(5)

DPA2D(2,2)

EP1D(43)

FC2DC5,5)

MCA3D(1,4,2)

RC3D(3,3,3)

A1C(12)

A2C(2,2)

A3C(2,2,1)

B1C(8)

B2C(4,2)

B3CC2,2,2)

LL1C(32J

LM2C(8,4)

LN3C(9,2,2)

EP1CC30)

AXID

AX2D

AX3D

DXID

DX2D

DX3D

Logical

AXlC

AX2C

AX3C

DXIC

DX2C

DZ3C

Integer

A1B(2)

A2B(2,2)

A3B(2,2,2)

GG1B(2)

GH2B(1,2)

GI3B(1,1,2)

MCA1B(7)

LIB(IO)

111(5)

121(2,2)

131(2,2,2)

MCA3I(2,3,3)

IU2I(4,2)

IT3I(4,2,2)

IU3I(2,3,3)

AXIB

AX2B

AX3B

DXIB

DX2B

DX3B

I-D-7
Dimension Common

AC1S(25)

AC2S(5,6)

AC3S(1,1,3)

A1S(5)

A2S(2,2)

A3S(3,3,3)

CMA1S(5)

CMB1SC5)

EP1S(33)

IAC1IC5)

IAC2I(2,7)

MCA1I(5)

LII(IO)

IAB1I(4)

IAB2I(3,3)

IAB3I(2,2,2)

AB1S(4)

AB2S(3,3)

AB3S(2,2,2)

IV1I(1024)

ZU1S(12)

ZU3S(3,2,2)

ZU2S(4,2)

ZT1S(4)

YER1S(7)

J(2)

JJ(1,1)

JJJ(1,1,1)

JJJJ(1,1)

JJJJJ(l)

JJJJJJ(l)

GOTO (2, 2)

IAX1I(4)

IAX2IC3,3)

IAX3IC2,2,2)

AX1SC4)

AX2S(3,3)

AX3S(2,2,2)

AX1D(2)

AX2D(2,2)

AX3D(2,2,2)

AX1CC2)

AX2C(2,2)

AX3C(2,2,2)

AX1B(2)

AX2B(2,2)

AX3B(2,2,2)

/BLK1/JAX1I(2)

JAX2IC3,3)

/BLK2/DX1SC2)

DX2S(2,2)

/BLK3/DX1D(2)

DX2D(2,2)

/BLK4/DX1C(2)

DX2C(2,2)

/BLK5/DX1BC2)

DX2B(2,2)

/BLK6/JAX3I(2,2,2)

DX3S(2,2,2)

DX3DC2,2,2)

DZ3C(2,2,2)

DX3B(2,2,2)

IF(5)

MX1I(3)

TX1S(3)

MMY1IC400)

NNY3IC20,10,2)

MX2I(2,3)

TX2SC2,2)

WAZ2S(3,2)

RVY1S(2)

RVY2S(1,2)

JY2IC2,2)

JY1I(5)

NZ1I(4)

NZ2I(4,2)

WAZ1S(2)

I-D-8
Blank Common Organization and Block Names

There are two separate mappings of COMMON in the Program Set.

Segment 360, the last test in the program set, tests COMMON,

EQUIVALENCE, and DIMENSION using a special organization of blank

COMMON not associated with any other program segment. For this

reason segment 360 may not be combined with any of the segments

listed below which make use of a different arrangement.

The following ordering of blank COMMON is used in Segments 162,

163, 164, 165, 166, 167, 168 and 200.

AXVS

CXVS

IXVl

IAX1I(4)

IAX2I(3,3)

IAX3I(2,2,2)

BXVS

AX1S(4)

AX2S(3,3)

AX3S(2,2,2)

AXVD

AX1D(2)

AX2D(2,2)

AX3D(2,2,2)

AXVC

AX1C(2)

AX2C(2,2)

AX 3C (2,2,2)

AXVB

AX1BC2)

AX2B(2,2)

AX3B(2,2,2)

The six labeled COMMON blocks are identified by the names:

BLKn where n is 1 to 6

The organization of the data in the labeled COMMON blocks is

specified in Segment 179.

I-D-9
Variables and Array Elements Defined in DATA Statements

Symbolic names of variables and array elements with their corresponding

values are defined in DATA statements in segment 003 and tested

in segment 010. When augmenting the test programs the following variable

names and array element names may not appear in subsequent DATA statements

nor be redefined in tests which precede segment 010 (e.g., 008 or 009).

No restriction is placed upon the redefinition of these variables or

array elements in test segments which follow segment 010.

DATA Statement 1

Symbolic Name Form and Value of the Entry

111(1)

MCA3I(1,2,1)

MCA3I(2,2,2)

IAC21(2,5)

IAC2I(2,6)

MCA31(2,1,1)

DATA Statement 2

Symbolic Name

0

2* 10

3* 246

Form and Value of the Entry

EP1S(8)

EPIS(IO)

EP1S(12)

AC2S(5,5)

EPlS(ll)

AC2S(5,3)

AC2S(5,2)

2* 0.0

2*-750.05

.24615E3

2.4615E2

3.54674E+3

DATA Statement 3

Symbolic Name Form and Value of the Entry

BVD +34567890. lD-3

DPA2D(2,1) 345.678901D+2

CVD 112233. 5D-08

DPA2D(1,2) 11.22335D-4

DVD 3.4D12

DPA2D(2,2) 0.34D13

DATA Statement 4

Symbolic Name

AD SVC

LN3C (9,1,2)

LL1C(30)

LN3C(8,2,2)

m2C(8,3)

LN3C(9,1,1)

LL1C(32)

LN3C(8,1,2)

Form and Value of the Entry

2*(11.1, 22.22)

(-3.45E1, -67.8E-1)

(-34.5E0, -6.78E0)

(10. EO, -20. EO)

(l.OEl, -2.0E1)

(-20.0E1, +4.E3)

(-200. EO, +4000. EO)

I-D-10
DATA Statement 5

Symbolic Name

MAVB

MCA1B(6)

MBVB

DATA Statement 6

Symbolic Name

GI3B(1,1,2)

GGlB(l)

EP1S(15)

DATA Statement 7

Symbolic Name

111(2)

IAC2I(1,5)

IAC2I(1,3)

111(5)

IAC2I(2,4)

MCA3I(1,1,2)

AVI (Integer type)

EP1S(13)

AC2S(2,6)

AC2S(1,6)

AC3S(1,1,1)

AC2S(3,6)

AC3S(1,1,2)

AC2S(4,6)

AVD

AlD(l)

DPA2D(1,1)

MCA3D (1,1,1)

A1D(2)

MCA3D(1,1,2)

LL1C(29)

LN3C(8,2,1)

BCVC

LM2C(8,4)

GH2B(1,1)

GI3B(1,1,1)

MCVB

111(3)

111(4)

MCA3I (1,2,2)

AC2S(5,6)

JVS (type REAL)

EPIS(14)

AC3S(1,1,3)

IAC2I(1,4)

CHEVC

Form and Value of the Entry

2* .TRUE.

.FALSE.

Hollerith Data Form

2HN0

2* 2HAD

Form and Value of the Entry

3* 0

4* -750

2* 0.

2* 246.15

354674. E-2

354.674E+1

35467. 4E-01

3* -.295D5

-29.5D+3

3456.78901D+01

0.345678901D+5

2* (l.llEl, +222.2E-1)

(-34.5, -6.78)

(-.345E2, -678. E-2)

2* .TRUE.

.FALSE.

2* 10

+246

-.75005E03

-7.5005E+02

2HBC

2H*=

2H P

2* (10., -20.)

I-D-11
LL1C(31)

DCVC

LM2C(8,2)

A1D(3)

MCA3D( 1,3,1)

A1D(4)

MCA3D(1,4,1)

MCA1BC7)

GH2B(1,2)

C-200., +4000.)

(-2000. E-1, +400. El)

+1122.335D-6

0.00001122335D+2

34.0D11

0.034D14

2* .FALSE.

e) Statement Numbers Used (and Not Used) Between 7000-9999 With

the Segment Numbers Associated

Statement Label Segment # Not Used Statement Label Segment # Not Used

7000-7001 160 8863-8864 410 8865

7002-7003 161 7004-7006 8866-8869 410

7007-7009 163 8870-8873* 015 & 8874-8875

7010-7012 162 7013 410

7014-7022 165 7023-7029 8876-8878 410 8879-8899

7030-7034 166 7035-7079 8900-8909 190 8910-8919

7080-7105 008 7106-7107 8920-8929 192 8930-8939

7108-7112 008 7113-7117 8940 194 8941

7118-7120 008 7121 8942 194 8943

7122-7124 008 7125 8944 194 8945

7126-7135 008 7136-7137 8946-8954 194 8955-9189

7138-7156 008 7157-7169 9190-9198 197 9199-9300

7170-7173 017 7174-7199 9301-9 308 302 9309-9319

7200-7201 020 7202-7209 9320-9349 310 9350-9901

7210-7219 021 9902- 190 9903-9904

7220-7229 022 7230-7359 9905 190 9906-9907

7360-7369 360 7370-7539 9908 190 9909-9919

7540-7546 054 7547-7849 9920-9921 192 9922

7850-7852 085 7853-7879 9923 192 9924-9929

7880 088 7881-7889 9930-9931 312 9932-9938

7890 089 7891-7899 9939-9960 300

7900-7909 190 9961 197 9962

7910 091 7911-7919 9963-9964 197 9965

7920-7929 192 7930-7939 9966-9969 197

7940-7947 194 7948 9970-9975 302 9976-9979

7949 194 9980-9989 301 9990-9993

7950-7956 300 7957-7991 9994-9995 073

7992 092 7993-8094 9996-9997 063

8095-8123 350 8124-8209 9998-9999 062

8210-8216 021 8217-8219 1-14 350

8220-8226 022 8227-8299 22 350

8300-8337 301 8338-8359 333 350

8360-8366 360 8367-8859 22255 350

8860 410 8861-8862

*These statement numbers appear in a main program and a subprogram.

I-D-12
E. STRUCTURING, RESTRUCTURING AND EXTENDING THE TEST PROGRAMS

El. Program Structure

Version 1 has been structured as 116 executable FORTRAN programs with

provisions for linking test units end to end. Version 3 has been

structured into 14 executable FORTRAN programs.

Every main program test unit contains at least two segment numbers,

the first executable statements which assign the I/O unit numbers,

identified as segment 007 in columns 74-76, and the test segment

identified by the 3-digit identification 008 to 360.

An executable program includes some of the following segment numbers:

Specification Statements Segment 001

DATA Statements Segment 003

Statement Function Definitions Segment 005 or 006

I/O Assignment Statements Segment 007

Main program segments Segment 008-360

Subprograms Segment 400-483

Because test units may be linked end to end, the segment numbers 001

to 007 are identified by these numbers within the test unit in which

they are embedded to facilitate the identification and location of

these elements in a FORTRAN program and to aid in the elimination of

di^licate elements when test units are consolidated.

Each test unit, even when consolidated with other test units, can be

viewed from the program listing as an independent test because the

necessary Specification statements, I/O assignment statements, STOP

statements, and END lines are inserted as specially structured comment

lines in their appropriate locations. Lines beginning with the

characters "C=" identify these otherwide FORTRAN statements.

E2 . Con5olidat_ing Test Program Units Using Version 1

Version 1 contains a directory of the test segments as a set of 342

comment lines before the first test segment. These are identified

as segment 000 and may be used to create a directory to head any

consolidation of the test programs. (A directory of only those

test units appearing in a specific part heads each executable program

in Version 3.

)

In both versions, comment lines have been inserted to ease the burden

of coupling test units together or isolating them.

Specification statements and END lines have unique position requirements

in the FORTRAN standard. Specification statements must precede Statement

Function definitions and the first executable statement, and the END

line must be the last line of a program unit. Comment lines may be

anywhere before the END line.

I-E-1
Each main program unit in Version 1 has been created as if it had

been developed from Version 3. That is, the comment .lines inserted

into each test unit which directs the user how to create a single test

program from a consolidated set has actually been performed to create

Version 1, leaving the comment lines in place. This permits the user

who has consolidated the test programs to later isolate individual test

units as needed with directions for the process contained in the program.

For example, in segment 008 test unit, the FORTRAN text contains the

following message:

C***** WHEN EXECUTING ONLY SEGMENT 008, THE SPECIFICATION STATEMENTS

C***** WHICH APPEAR AS COMMENTS MUST HAVE THE C= IN COLUMNS

C***** 1 AND 2 REMOVED

Below this message is a set of comment lines which, except for columns

1 and 2, look like Specification statements with the segment number 001

in columns 74-76, In Version 1, this action has already been performed

leaving the C= comment lines in the program and inserting the actual

Specification statements below these comment lines but with the segment

number changed from 001 to the test segment number, in this case 008,

The four digit sequence number, columns 77-80 is unique for these inserted

lines, and is assigned characters and digits which will facilitate the

location of these lines. Similar messages appear before the I/O assignment

statements and the STOP statement and END line. The following identification

code has been assigned for columns 74-80:

Specification Statements nnnAxl2$]z5

I/O Assigment Statements nnnBdl!5]z5

STOP and END nnnCd]!51z{

Where nnn is the test segment number in which the statements are embedded,

X is 1 to 9 and A to F, and d is 1 or 2. The last two character positions

are blank. Specification statements may contain continuation lines, so

that the sequence number is significant.

In order to link test units end to end into a single executable program,

it is necessary to eliminate duplicate specifications, STOP and END

lines, and I/O assignment statements (if the unit numbers are changed by

the user). These appear only in the main program test units. Elimination

of duplicate symbolic names from the Specification statements is performed

on each of the nine (DIMENSION, COMMON, EQUIVALENCE, EXTERNAL, REAL,

INTEGER, DOUBLE PRECISION, COMPLEX, and LOGICAL) statements independently.

That is, if dimension information is expressed in a type statement instead

of a DIMENSION statement, all test programs which require this specification

information for a particular symbolic name will be consistent.

The appropriate directory and the consolidated specifications, identified

as segment 001, should be placed in front of the first test unit of the

consolidated set, the I/O assignments placed as the first executable

statements (segment 007) within the first test unit, and a single STOP

statement and END line must appear as the last lines of the main program

unit. If Statement Function definitions are a part of a test unit, these

I-E-2
must be placed before the first executable statement. Segments 110,

111, and 197 contain Statement Function definitions. If segments 110

and 197 are combined into the same executable program, one copy of

segment 005 must be removed. Test units should be performed in the

order of the directory, particularly segment 010, Data Statement Use,

must appear in order, because the potential reuse of data names appearing

in a DATA statement in other program test units cannot be guaranteed.

If during the consolidation process, an attempt is made to include more

test units than the FORTRAN processor will accept into a single executable

program, it will be necessary to return the specification statements,

I/O assignment statements and STOP and END lines to the appropriate test

units not included with the finally consolidated set for later use in

another consolidation. The segment number associated with these lines

identified by the letters "A", "B", and "C" in column 77 is contained in

columns 74-76.

When test programs are consolidated into larger executable programs, it is

desirable to have some means of identifying the test results with some

additional information related to the environment of performing the tests,

such as computer name, compiler version, operating system version, date,

and any additional information which would distinguish successive running

of the test programs. This can be achieved by incorporating the FORTRAN

lines, identified as segment 007-which are embedded in segment 008

starting with the comment line "IDENTIFY THE SOURCE OF THE TEST PROGRAMS",

into the first test of each consolidated test set following the I/O

assignment statements. The last continuation line of the FORMAT statement

at Statement Label 0071 should be altered to reflect a unique means of

identifying each executable program. In Version 3, this has been done

by identifying each executable program as a PART, numbered from 1 to 14.

The first six input cards associated with segment 008 will then be

required for running each of the consolidated test setSo Cards 1, 3

and 5 are prepared by the user, replacing the dummy information on the

card images supplied, with the environmental information. See Section II-A2

Input Data Preparation.

The number of test segments which may be linked end to end is a function

of the power of the FORTRAN processor with the following exceptions:

a) Segment 360 may not be linked with any other test segment which

uses blank common.

b) Segments 169 and 179 when consolidated into a single program will

cause different elements of a specific labeled common block to be

initialized from DATA statements in different BLOCK DATA subprograms

«

While the current FORTRAN standard does not exclude this, it is

anticipated that the future revised FORTRAN standard may prohibit the

user from so doing.

I-E-3
E3„ Deleting a Section of a Test Unit

If certain test elements fail to perform on a system because some

elements of the FORTRAN language have not been implemented and the

test unit cannot be executed, it will be necessary to inspect the

test unit to determine what statements together with the corresponding

WRITE statements are affected. When a section of a test unit is

altered it is recommended that those statements which are changed

or deleted have appropriate comment cards inserted to identify the

change. This can be achieved by making the current statements into

comment lines with a character other than blank, *, or = as the

second digit and a comment card containing the number of lines which

follow in the replacement. If a statement which is deleted contains

a statement label, it will be necessary to repunch the card with the

four digit statement label right justified and replace column 1 with

a "C".

If a program test unit is too large for running as a single test unit

it may be separated into smaller units for testing. This may be

necessary for test segment 008, Formatted READ and WRITE, because

of its current size and the number of FORMAT statements included in

this test unit. The sample Result Output should be inspected. The

breaks in the program should conform to locations where a new page

indicator is detected at the beginning of a FORMAT statement. Data

cards are identified in the program listing and the card number is given

at the point of the appropriate READ statement.

E4. Deleting an Entire Test Unit

All test units are identified by segment numbers in columns 74-76.

Test units contain "C=" comment cards for specification statements

and I/O assignment statements with segment numbers 001 and 007,

respectively. STOP and END cards appear at the end of each test

unit as "C=" comment cards with the sequence number the same as the

test unit number. All cards related to a test unit may be removed

by inspection of the program listing. Any subprogram which is

associated with that program test unit will not be assoicated with any

other program test unit and may be removed. Distinctive comment cards

separate test units.

E5. Adding to a Test Unit

Any program test unit may be extended by appending statements after the

last executable statement in a program test unit. See Program conventions

for symbolic name and statement label use Section I-D. Result output

pages have been limited to 8 1/2 by 11 inch pages with a new page indicator

for each page. All variables must have their values initialized in the

test unit. Any new specifications must be introduced into "C=" cards within

the test unit and a check made of the specifications contained at the

beginning of the Part in Version 3. Array declarators used in the test

set are identified in Section I-D- 3.

I-E-4
E6. Adding New Test Units

Be sure that the programming conventions used in this test set are

followed. A segment number which has not been used less than 399

may be used for a main program test. Numbers 400-699 which

have not been used are available for subprograms. In general,

the number chosen should be high enough so that those elements of the

language which must be used in the test have already been tested.

Make sure that each new test is self contained. Initialize all values

within the new segment itself. Use the same comment line structure

to separate the new test unit, and intersperse comments to describe

the test. Update the directory, specification section and the comment

cards at the beginning of the Part in Version 3 to reflect any new

program test units added. The listing of the program is supposed to

contain enough comments to permit the programs to be used if additional

documentation is not available.

I-E-5

F. DIFFICULTIES ENCOUNTERED DURING THE TEST PROGRAM DEVELOPMENT

During the implementation of the program design, a number of difficulties

other than the normal program debugging arose which required resolution.

These difficulties have been classified under the following five categories.

Fl. Interpreting the FORTRAN Standard

In interpreting the FORTRAN Standard document X3. 9-1966, there was a conscious effort to glean from the document only that which was stated,

and not to be influenced by earlier implementations of the FORTRAN language.

This lead to a long list of questions which needed resolution. The ASA

FORTRAN technical committee, X3J3, reconvened to address these and other

questions of interpretation of the Standard. The committee published

two clarification reports [2, 3] concerning the interpretation of the

standard. Those questions which could not be resolved without actually

revising the standard have been deferred and will be handled in the future

revision and extension to the FORTRAN standard. Some of the questions

did not arise until some initial test units were run on different processors

and the different interpretations of the standard could be asserted and

appeared to be justified by the wording in the standard.

F2. Precision, Conversion and Maximum Value of Numeric Data

The choice of the actual values used in arithmetic expressions presented

considerable difficulty. The range of the exponent, which is not covered

by the FORTRAN standard was kept small so that the variation on different

processors would not be reflected in the test results. To overcome some

of the precision problems, small fractional powers of two were used in the

hope that the conversion of these values would be exact. Recognizing

that the FORTRAN standard defines a real constant to be an "approximation

to the digit string interpreted as a decimal numeral" the equation

1.3+1.3=2.6 may not be true if the result were compared to the constant

2.6 because the constant when converted and when doubled may not have

the same internal representation as the constant 2.6. Rather than attempt

to apply an error tolerance to the results, it was decided to subtract

the expression result from the expected result and rely upon the rounding

under the Fw.d format field descriptor on output to compensate for a

small difference in values. Because the Fw.d format field descriptor

cannot be applied to results derived from a double precision operation,

it was necessary to stipulate in the test results a reasonable error

factor to be applied to the value if the result was not zero.

F3. Meaningful Tests and Comprehensible Results

The development of meaningful test programs of the FORTRAN Standard

language cannot be separated from the presentation of the results of the

test. If it can be considered that any test result value printed from a

specific application of the test programs on a FORTRAN processor could be in

error, the means to determine the statements involved in the test result

must be readily discernible. This lead to examining, on a case basis,

how to present the results. Where ever possible the results obtained from

I-F-1
arithmetic operations were subtracted from the expected result and

the expected value of zero printed, so that the user could quickly

scan a page of results and determine any errors. When this was not

possible, Hollerith information is printed directly above the expected

value so that the eye can quickly scan the results for discrepancies,

or some appropriate means such as the test number for the value in

error, so that reference back to the program listing could be made.

Various elements of the FORTRAN language presented some difficulties in

displaying the results.

The effect of the scale factor both on READ and WRITE is such an example.

If the FORTRAN processor does not perform this conversion properly, and

only the expected result is printed with the processor result, it is

tedious to determine from the program listing what actual data and format

field descriptor is associated with a value. Because of this, the

information which a user would need to determine the operation being

performed is presented in a tabular form with the expected result and the

actual result.

The Intrinsic Functions SNGL and DBLE presented the problem of storage

unit size and how can it be determined whether these functions are

actually performed when the maximum real and double precision constant

length established for the programs is 7 and 14 digits respectively.

The FORTRAN Standard does not define these functions to operate under

the same rules as the corresponding assignment statement operation

identified in Table 1 of the FORTRAN Standard. The FORTRAN Standard

does not address the precision of a value, so that it cannot be determined

from the document if a standard conforming program may READ or WRITE

values which express a precision in excess of the processor capability.

Because of these factors, for FORTRAN processors which can express a

REAL value of 14 or more digits in a single storage unit, the printed

results may not display the value to a precision large enough to encompass

the actual function result. Increasing the number of decimal digits expressed

in the format field descriptor should eliminate the difficulty.

The Basic External Functions presented a significant problem for devising

test programs because the units of the arguments are not specified in the

FORTRAN Standard and there was to be no attempt to address the unspecified

range of arguments, precision or accuracy of the function results. This

lead to using the "defacto standard" practice for the units of arguments

and to select arguments which reduced the probability of variation due

to conversion and for which there were also published table values. It

is hoped that the arguments selected with their expected results, although

not necessarily representative of normal usage, would constitute a basis

for the user determining whether the function referenced is, in fact, the

function obtained. Table values were not readily available for the

complex functions so that a different method had to be employed.

I-F-2
F4. FORTRAN Compilers With_Language Extensions

The difficulty of assuring that a FORTRAN program is confined to that

which is defined in the FORTRAN Standard X3.9-1966 is substantial.

Because a program produces the same correct results on many FORTRAN

processors does not in itself substantiate the program to be standard

conforming. Even though the test programs were desk checked, not all

non-standard usage was picked up by this method. Moving from one processor

to another brought to light the differences in the extensions or

relaxations permitted on various FORTRAN processors. Those programming

errors which persisted undetected through many FORTRAN processors where

they were treated as extensions are:

- Missing type declarations for dummy arguments of statement functions

- Missing commas after an nH format field description in FORMAT statements

- Non agreement between format field description and the type of the list

element

- Missing decimal point in a real constant in a real expression

- Lack of agreement of type between actual and dummy arguments of a subprogram where the dummy argument is not referenced.

F5 . PerformiTig the Tes ts

The initial running of the completed test programs on various FORTRAN

processors was performed from punched cards. The punch card code used

was the BCD-H set which is identified in Appendix D of the FORTRAN

Standard X3. 9-1966. It was assumed that any conputer installation would

have a conversion routine for this code to its own, if it were not an

option of the compiler. For the most part the testing was performed on

the consolidated test set which reduced the number of executable programs

from 116 to 14. This was done to minimize the number of control cards

needed to be inserted around the programs . In spite of assistance from

systems personnel at the test site in every initial running on a different

processor one or more programs had to be resubmitted to the computer

because of operating systems control card errors. The kinds of errors

were

:

- Failure to identify the FORTRAN Programs as BCD card code producing

errors in scanning the FORTRAN statements.

- Failure to identify the data as BCD H set causing the execution to

be aborted on improper symbols on input cards.

- Missing or mispunched control cards.

Inproper sequencing of control cards.

At no time was the alloted time on the computer or the maximum number

of pages of printing exceeded. Because many of the test programs may

require the same set of control cards, special care must be taken for those

programs requiring data, an auxiliary tape unit and subprograms.

I-F-3
The differences in capability of operating systems did not present

a difficulty but the lack of standard terminology and definition of

functional capability presented barriers in human communications.

When a compiler had an option to check the programs for conformance

to the FORTRATJ standard and no diagnostic messages resulted, the

test program writers were lulled into the belief that the programs

met the standard, which later running on a different compiler proved

not to be the case. Not all non-standard usage even within a single

FORTRAI^J program unit were detected.

I-F-4
G. REFERENCES

1. American Standard FORTRAN X3. 9-1966 - since the original publication

of the FORTRAt^ Standard, the standardizing organization has changed

its name from American Standards Association to United States of America

Standards Institute and recently to American National Standards Institute.

Therefore, documents identified as ASA X3. 9-1966, USASI X3. 9-1966 and

ANS X3. 9-1966 all refer to the same document.

2. Clarification of FORTRAN Standards - Initial Report. Communications of

the ACM Vol. 12, No. 5, May 1969.

3. Clarification of FORTRAN Standards - Second Report. Communications of

the ACM Vol. 14, No. 10, October 1971.

4. Handbook of Mathematical Functions with Formulas, Graphs, and Mathematical

Tables. NBS. M. Abramowitz and Irene A. Stegun, editors. Applied

Mathematical Series 55, 1966.

I-G-1

SECTION II USERS MANUAL

A. OPERATING PROCEDURES

The NBS FORTRAI^I Test Programs are designed to test the acceptance of the

ASA FORTRAN Standard X3. 9-1966 language definition by a FORTRAN processor.

The Test Programs are comprised of 116 test units and approximately 14,500

card images

o

Al. Organization of Tests and Facilities Requirements

The FORTRAN Test Programs are presented in two forms, one for

execution on small FORTRAN processors identified as Version 1, and

the other for large FORTRAN processors identified as Version 3o

The tests make use of a maximum of 3 I/O units. These I/O units are

identified as integer variable names which are assigned values in the

first executable statements in each executable program and the statements

may be altered by the user. No subprogram directly references these

variable names or values.

The variable names and their current values are:

IRVI - for input, usually a card reader, is defined as unit 5.

NUVI - for test results, usually a line printer is defined as unit 6.

INVI - for intermediate input/output data, usually a magnetic tape,

is defined as unit 9.

The test programs should be run in numeric order. Test sequences contained

in later test units may depend upon the successful execution of earlier

test units.

a) Program Order

The FORTRAN Standard does not define the order of presentation of

a main program, BLOCK DATA subprograms, FUNCTION or SUBROUTINE

subprograms to a FORTRAN processor. This order is prescribed by

the implementor and may vary from system to system. Systems also

vary on the need for systems control cards or special cards

preceding each subprogram. The test programs have been arranged

with no intervening control cards but contain the necessary STOP

and END cards as follows:

Main program

Subprograms (if required)

Data (if required)

Some systems may require a specific order for BLOCK DATA subprograms

distinct from FUNCTION or SUBROUTINE subprograms.

II-A-1
The subprograms appear after the corresponding main program unit

and before the data in the order listed in Section II-A3 for

Version 1 and Section II-A4 for Version 3.

Each program is set up (except for the system control cards) for a

FORTRAN compile- load- and- go execution.

The user is assumed to be familiar with the operating system control

requirements necessary to perform a FORTRAN compilation.

These steps should be followed:

- Choose the appropriate control cards for a FORTRAN compile.

- Check the format and ordering of control cards carefully.

- In particular, check if any control cards are necessary for

FUNCTION, BLOCK DATA, and SUBROUTINE subprograms.

- Check the particular FORTRAN system documentation for any

special requirements for ordering of subprograms which may

differ from the order of the test program.

- Check if the test program requires input data. Version 1 requires data for test segments 008, 009, 310 and 312; Version 3,

for all parts. Cards 1, 3 and 5 of segment 008 for Version 1 and

all parts for Version 3 may be prepared by the user and replace the

sample cards supplied with the programs. Section II-A2.

Sections II-A3 contains the list of test programs for Version 1. The

accompanying table identifies the I/O facilities requirements and

other related information.

Sections II-A4 contains the list of test programs for each of the

14 Parts for Version 3 and identifies the I/O facilities requirements

as well as a summary sheet related to all Parts.

Memory Requirements to Execute the Test Programs

During the development of the test systems ten different computing

systems were used and the current set of tests were run on five

major systems. Although no requirements for memory can be determined

without experimentation, the largest test unit in Version 1 required

less than 3,000 words of memory. When structured into 14 executable

programs as Version 3, the largest program required less than 6,000

words of memory.

Time

The time to compile and execute the test programs varies with the power

of the computer and the compiler. The test units, for the most part

are straight line programs. During the debugging of the test program

set of Version 3 on different large scale systems less than 30 seconds

was required to compile and execute any one of tlie 14 Parts excluding

card read and print time.

II-A-2
A2. Input Data Preparation

All data card images associated with the FORTRAN Test Programs are

included with the program distribution. It is not essential to the

performance of the test programs to prepare any input data, however,

provisions have been made to facilitate the identification of the

test program results for a given FORTRAN processor.

In Version 1, test units 008, 009, 310, and 312 require input data

which is supplied with the programs. The first six (6) cards associated

with test unit 008 cause a heading page to be produced for the program

set.

In Version 3, all test Parts 1 to 14 include six (6) input cards as the

total input data to that part, except Parts 1 and 13 which include

additional input data cards supplied with the test programs.

Tliese six cards permit information to be introduced by the user to

identify: the computer, FORTRAN compiler identification, operating

system level, date, etc., which describe the environment in which

the test is performed. Cards 1, 3 .^nd 5 must be replaced and prepared

to introduce three (3) lines of print which precedes test unit 00 8

in Version 1 or is appended to the initial output page of each test

part in Version 3.

The first 40 characters from each of three cards (cards 1, 3 and 5)

are read and replace the Hollerith information supplied in each of

three FORMAT statements. The first character of each card must be blank

(for print carriage control) and the other 39 characters must be from

the FORTRAN character set. Cards 2, 4, and 6 must remain as prepunched.

These six cards are part of the first test unit (008) in Part 1, testing

the replacement of Hollerith information in a FORMAT statement by a

formatted READ, and the symmetry of interpretation of a terminal slash (/)

in a FORMAT statement used for READ and WRITE, causing cards 1, 3, and 5

to be read and written, and cards 2, 4 and 6 to be skipped on input and

blank lines to be produced on output.

These six cards are not part of the test in parts other than Part 1 but

are included for user output documentation only.

WARNING: The following four characters should be avoided in preparation

of the three cards, because these characters differ in the punch card

code for input preparation devices:

(

)

II-A-3
The following table identifies each of the 116 Test Programs for Version 1 and

A3. List of Test Programs for Version 1

The I/O Unit numbers used in the Test Programs are:

Input (card reader) 5

Output (printer) 6

Intermediate 9

The following table identifies each of the 116 Test Programs for Version 1 am

the associated subprograms.

Codes Used to Describe the Information in the Table

Column Column

1 M Main Program 4 X Intermediate Tape Required

F External Function

S Subroutine 5 C Blank Common Block

B BLOCK DATA / Special Blank Common

2 I Input Required 6 D DATA Statement Defined

3 No, of Pages of Output 7 No. of Cards per Segment

Seg, Name Test Table

000 Directory of Test Programs ------ 342

008 - FMTRW Formatted Input /Output MIS 529

6 Identification Cards and 40 Data Cards ______ 45

009 - AFRMT A-Conversion Mil 115

3 Data Cards ______ 3

010 - DATA2 DATA Statement Use M-3 74

003 - DATAl Test Format of DATA Statement M D 84

011 - AASGN Real and Integer Arith Assignmt. Stmnts. M-3 - - - 268

013 - DASGN Simple D.P. Assignment Statements M - 8 420

015 - CASGN Simple Complex Assignment Statements M - 9 - - - 469

016 - LASGN Logical Assignment Statements M - 1 - - - 106

017 - INTRL Arithmetic Assignment Statements M - 4 - - - 185

020 - UGOTO Unconditional GO TO Statements M - 1 69

/

II-A-4
021 AGOTO GO TO Assignment Statements M 1 - 149

022 - CGOTO Computed GO TO Statements M - 1 - - - 146

030 - ARBAD Basic Addition M - 1 - - - 115

031 - ARFAD Double Precision Addition M - 1 - - - 57

032 - ARBSB Basic Subtraction M - 1 - - - 67

033 - ARFSB Double Precision Subtraction M - 1 - - - 72

034 - ARBAS Basic Addition and Subtraction M - 1 - - - 79

035 - ARFAS Addition and Subtraction of D.P. Values M - 1 - - - 60

036 - ARBMI Multiplication of Integer Values M - 1 - - - 66

037 - ARBMR Multiplication of Real Values M - 1 - - - 64

038 - ARFMD Multiplication of D.P. Values M - 1 - - - 71

039 - ARBDV Division of Integer and Real Values M - 1 - - - 78

040 - ARFDV Division of D.P. Values M - 1 - - - 66

041 - ARBEX Exponentiation of Integer and Real Values M - 1 - - - 90

042 - ARFEX Exponentiation of D.P. Values M - 1 - - - 74

043 - ARBHI Hierarchy of Operators and Parentheses M - 1 - - - 177

050 - SBB6 7 Subscripts of Integer, Real Arrays v, k M - 1 - - - 79

051 - SBB45 Subscripts of Int., Real Arrays v+k, v-k M - 1 - - - 87

UoZ C D D 1 T odd! J Subscripts of Int., Real Arrays c*v, c*v+k,

c*v-k

M i

Subscripts of D.P, Arrays v, k, c*v, c*v+k,

c*v-k, v+k, v-k

M i /y

054 - SIMIF Arith. IF, Logical IF followed by GO TO M - 1 - - - 77

055 - IFABS Intrinsic Functions ABS, lABS M - 1 - - - 64

056 - IFFLT Intrinsic Function FLOAT M - 1 - - - 49

057 - IFFIX Intrinsic Function IFIX M - 1 - - - 59

058 IFSGN Intrinsic Functions SIGN, ISIGN M 1 - 82

059 IFDAB Intrinsic Function DABS M 1 - 65

II-A-5
060 - IFTRN Intrinsic Functions AINT, INT, IDINT M

061 - IFMOD Intrinsic Functions AMOD, MOD M

062 - IFMAX Intr. Funct. AMAXQ, AMAXl, MAXO, MAXl, DMAXl M

063 - IFMIN Intr. Funct. AMINO, AMINl, MINO, MINI, DMINl M

064 - IFDSG Intrinsic Function DSIGN M

065 - IFDIM Intrinsic Functions DIM, IDIM M

066 - IFSGL Intrinsic Function SNGL M

067 - IFREL Intrinsic Function REAL M

068 - IFIMG Intrinsic Function AIMAG M

069 - IFDBL Intrinsic Function DBLE M

070 - IFCPX Intrinsic Function CMPLX M

071 - IFCJG Intrinsic Function CONJG M

072 - IFBMS Integer and Real Intrinsic Functions M

073 - IFFMS Int., Real and D.P. Intrinsic Functions M

080 - EXPON Basic External Function EXP M

081 - DEXPO Basic External Function DEXP M

082 - CEXPO Basic External Function CEXP M

083 - LOGTM Basic External Function ALOG M

084 - DPLOG Basic External Function DLOG M

085 - CXLOG Basic External Function CLOG M

086 - COLOG Basic External Function ALOGIO M

087 - DCLOG Basic External Function DLOGIO M

088 - SINUS Basic External Function SIN M

089 - DPSIN Basic External Function DSIN M

090 - CSICO Basic External Functions CSIN, CCOS M

091 - COSNS Basic External Function COS M

092 - DPCOS Basic External Function DCOS M

1

1

2

2

- 107

- 84

- 248

- 225

- 58

- 69

- 80

- 102

- 129

- 57

- 61

- 66

- 129

- 181

- 60

- 68

- 98

- 57

- 67

- 106

- 56

- 66

- 81

- 82

- 65

- 82

- 81

II-A-6
094 - TANGH Basic External Function TANH M - 1 - - - 57

095 - SQROT Basic External Function SQRT M - 1 - - - 55

096 - DSQRO Basic External Function DSQRT M - 1 - - - 63

097 - CSQRO Basic External Function CSQRT M - 1 - - - 74

098 - ARCTG Basic External Function ATAN M - 1 - - - 58

099 - DACTG Basic External Function DATAN M - 1 - - - 66

100 - ACTG2 Basic External Function ATAN2 M - 1 - - - 56

101 - DATN2 Basic External Function DATAN

2

M - 1 - - - 66

102 - DMODA Basic External Function DM0

D

M - 1 - - - 63

Basic External Function CABS M 1 84

110 -

\J\J o

BSFTS Statement Functions - Integer and Real

Statement Function Definition

M - 1 _ _ - 74

111 - 006FSFTS

- FSFDF

Statement Funct. - D.P., Complex, Logical

Statement Function Definitions

M

M

1 - 108

- 58

140 - CPXAU Addition and Subtraction of Complex M - 1 - - - 76

141 - CPXMU Multiplication of Complex Numbers M - 1 - - - 141

142 - CPXUV Division of Complex Numbers . M - 1 - - - 83

143 - CPXEX Exponentiation of Complex Numbers M - 1 - - - 125

144 - CPXOP Arithmetic Operations on Complex M - 1 - - - 63

145 - CREAD Add and Subtract Complex and Real Numbers M - 1 - - - 67

146 - CREMU Multiply Complex by Real Numbers M - 1 - - - 62

147 - CREDV Divide Complex by Real and the Reverse M - 1 - - - 58

148 - CREOP Combined Operations on Complex and Real M - 1 - - - 66

149 - MISC3 Blanks in, Cont. of Statement to Max Lines M 1 - 97

150 - MISC4 Special Characters for Continuations M 1 - 105

II-A-7
1 An Real External Functions M - 1 - 82

Ann A "PC Real Argument F

- 010

420 BFS Real Arguments F - 10

430 - CFS Integer Argument F - 10

440 TV 1~T1 DFS Integer Arguments F - 11

/,Kr\ Array Name as Argument F - 11

', cc\ Different Types of Arguments F - 15

lD± iiirLr Integer External Functions M - 1 - 87

T A "CT lAr i Real Argument F - 10

421 IBFI Real Arguments F - 10

431 - ICFI Integer Argument F - 10

441 IDFI Integer Arguments F - D 13

ACT 4_>1 lEFI Array Name as Argument F - 11

4oi T "CTP Tiri:' 1 Different Types of Arguments F - 15

162 FRFCP Real External Functions M - 1 - c 132

402 GFS D.P. Argument F - 11

422 - HFS Complex Arguments F - 12

432 IRFS Logical Argument F - 16

A A O JKrb External Procedure T7 11

A 0 Different Types of Arguments r — L zy

163 FIFCP Integer External Functions M - 1 - C TOO 123

403 IFI D.P. Argument F - 11

423 - JFI Complex Arguments F - 12

433 KFI Logical Argument F - 16

443 LFI External Procedure 11

/CO 453 I-IFI Different Types of Arguments TPr - L. zy

164 CFCCP Complex External Functions N — 1 — L

1 TO 1 JZ

404 AFC Real Argument n

r - 1 nlU

414 BFC Integer Argument n lU1 n 424 CFC Array Name as Argument F - 11

434 - DFC D.P. Argument F - 12

444 EFG Complex Argument F - 11

454 FFC Logical Argument F - 15

464 HFC Different Types of Arguments F - c 28

165 DPFCP Double Precision External Functions M - 1 - C 135

405 - AFD Real Argument F 10

415 - BFD Integer Argument F - 10

425 - CFD D.P. Arguments F - 11

435 - DFD Complex Argument F 12

445 - EFD Logical Argument F 16

455 - FFD External Procedure F 11

465 - GFD Array Name as Argument 12

475 - HFD Different Types of Arguments F C - 32

II-A-8
166 - BFCCP Logical External Functions M - 1 - c - 144

406 - AFB Real Argiament F 10

416 - BFB Integer Argximent F 10

426 - CFB D.P. Argument F 11

436 — DFB Logical Argument F - - - - 11

446 - EFB Complex Argument F 12

456 FFB Array Name as Argument r LZ

466 GFB External Procedure F 11

476 - HFB Different Types of Arguments F - - - c - 25

167 - SBRTN Subroutine Subprogram M - 1 - c - 103

Ar\n 4U / integer, Keai variaDieSj Array Elements co Z9 O1

417 ABQ Array Elements s 13

427 - ACQ No Argument List S - - - c - 21

168 - FSBRT Subroutine Subprogram M - 1 - c - 153

Different Types of Arguments co 418 AEQ Array Names and Integer Arguments S 23

428 - AFQ No Argument List S - - - c - 41

169 BLKDT BLOCK DATA Test M _ 1 _ _ 71

409 _ BLOKD BLOCK DATA Subprogram B — — - — D 36

179 - BLKDA BLOCK DATA Test M - 1 - - 70

/I 1 o D T A VT\ dLULR UAIA Subprogram nDnuOA

429 - BLBKD BLOCK DATA Subprogram B - - - - D 17

439 BLlKD BLOCK DAIA Subprogram nD U

180 I TXT T^Tl Tif UNFRW Unformatted WRITE and READ M 1 VA ITT 166

TOO D A ID oALKorALc 1 ape M\/i 1 YA /4

190 UOl KM DO Loops - lerminal Statements M 1 loo

191 DOLMT DO Loops - Parameters as Variable Names M i

1 m UUNbL DO Loops - Completely Nested Nest M 1 loo

193 r\/-\\TC T UUNbl DO Loops - incomplete DO, Exit by bO 10 M i oU

194 ^\^\\^c'v UUNbX DO Loops - Extended Range M i ioU

195 DONrlL DO Loops - Nested Nest M 1 65

196 DON 10 DO Loops - I/O Terminal Statements M — 1 X — — 91

197 MUKUU uu Loops - i/yj, oLarmL, ru,, inrr ri.., laijLi 11 YA 140

005 - BSFDF Statement Functions M 35

412 MDQ Subroutine Subprogram S 13

200 SUBRl Subroutine - Operations Done at Sub Level M 1 X c 52

410 SUBRQ Subroutine Subprogram - No Arg. List S X c 101

II-A-9
300 - LOGIF Logical IF Statements M - 1 275

411 - SMCQ Subroutine Subprogram S - - - - - 12

301 - BARIF Arithmetic IF Statements - Integer, Real M - 1 175

302 - FARIF Arithmetic IF Statements - D.P. M - 1 99

310 - lOFMT Formatted READ/WRITE - Additional Features MIS - 310

38 Data Cards 38

312 - RDFMT Formats in Arrays MI1--D201

462 - FMTQ Subroutine Subprogram S - - - - - 33

13 Data Cards ------ 13

350 - MISC5 Specifications for Program Form M - 1 - - - 156

351 - FUNMX Basic External Functions - Trig Formulae M - 1 - 58

352 - NAMES Names Resemble FORTRAN Verbs, Functions M - 1 - - - 79

413 - MAQQ Subroutine (Intrinsic Function Names s - - - - - 15

463 - MBQQ Subroutine used as Variable Names in s - - - - - 15

473 - AMQQ Subroutine some Subrts. and as S - - - - D 21

483 - BMQQ Subroutine Functions in others) s - - - - - 16

360 - SPEC2 COMMON, DIMENSION, EQUIVALENCE M - 1 - / - 169

Total Cards 14360

II-A-10
A4o List of Test Units by Parts for Version 5

FORTRAI>I TEST PROGRAMS SUMMARY INFORMATION FOR VERSION 3

# of # of INPUT INTERMEDIATE Pgs of

Part # TEST UI^TS SUBPROGRAMS DATA* TAPE REQUIRED OUTPUT # of CARDS 14 X 16 1123

2 2 18 932

3 10 14 1076

4 13 14 1123

5 11 14 1153

.6 9 11 912

7 13 18 997

8 12 13 951

9 11 12 971

10 5 29 6 1031

11 ' 5 23 6 1090

12 12 5 X 13 1433

13 5 2 X 10 1190

14 4 4 5 579

116 63 170 14561

*Input data other than the 6 cards which are appended to each Part for user

output documentation

input unit #5 = card reader

output unit #6 = printer

intermediate unit #9

II-A-11
VERSION 3 PART 1 MAIN PROGRAM

Segment # and Name Test

000

001 SPECS

003 DATAl

1. 007 lODEF

2. 008 FMTRW*

3. 009 AFRMT*

010 DATA2*

011 AASGN*

Special Documentation

Specifications needed for Part 1

Test Format of DATA Statement

I/O Unit Assignment Statements

Formatted Input/Output

A-Conversion

DATA Statement Test

Real and Integer Arithmetic Assignment Statemen

Input 49 cards - prepare 3 cards (cards 1, 3, and 5) Unit #5

Output - Print 16 pages Unit #6

*Produce Output

Note 1 The first 6 input cards (user prepared cards 1, 3, and 5) are associated

with seg. 007 program element, however, performing tests under segment

008. See Data Preparation Section II-A-2. These 6 cards are part of the

test for this part only. Inclusion of these cards in later Part tests

is for user output documentation only.

Note 2 40 input cards - for test of seg. 008

Note 3 03 input cards - for test of seg. 009

II-A-12
VERSION 3 PART 2 MAIN PROGRAM

Segment # and Name Test

000 Special Documentation

001 SPECS Specifications needed for Part 2

007 lODEF I/O Unit Assignment Statements

013 DASGN* Simple Double Precision Assignment Statements

015 CASGN* Simple Complex Assignment Statements

Input 6 cards - prepare 3 cards (1, 3, and 5) Unit #5

Output Print 18 pages Unit #6

*Produce Output

1 Prepare replacement cards for cards 1, 3, and 5 as described in Data

Preparation Section II-A-2, These cards in Part 2 are not part of the

test, but are included for user output documentation only.
VERSION 3 PART 3 MAIN PROGRAM

Segment # and Name Test

000 Special Documentation

001 SPECS Specifications needed for Part 3

007 lODEF I/O Unit Assignment Statements

016 LASGN* Logical Assignment Statements

017 INTRL* Arithmetic Assignment Statements

020 UGOTO* Unconditional GO TO Statements

021 AGOTO* GO TO Assignment Statements

022 CGOTO* Computed GO TO Statements

0 30 ARBAD* Basic Addition-Integer and Real

031 ARFAD* Double Precision Addition

032 ARBSB* Basic Subtraction-Integer and Real

033 ARFSB* Double Precision Subtraction

034 ARBAS* Basic Addition and Subtraction- Integer

and Real

Input 6 cards

Output Print 14 pages

*Produce Output

Unit #5

Unit #6

Note 1 Prepare replacement cards for cards 1, 3, and 5 as described in Data

Preparation Section II-A-2. These cards in Part 3 are not part of the

test, but are included for user output documentation only.

II-A-14
VERSION 3 PART 4 MAIN PROGRAM

Segment* and Name Test

000 Special Documentation

001 SPECS Sue cifi cat ions needed for Part 4

007 lODEF I/O Unit Assipnment Statements

035 AREAS* Addition and Subtraction of Double Precision

Values

036 ARBMI* Multiplication of Integer Values

037 ARBMR* Multiplication of Real Values

038 ARFMD* Multiplication of Double Precision Values

039 ARBDV* Division of Integer and Real Values

040 ARFDV* Division of Double Precision Values

041 ARBEX* Exponentiation of Integer and Real Values

042 ARFEX* Exponentiation of Double Precision Values

043 ARBHI* Hierarchy of Operations and Parentheses

050 SBB67* Subscripts of Integer and Real Arrays v, k

051 SBB45* Subscripts of Integer and Real Arrays v+k, v-k

052 SBB13* Subscripts of Integer and Real Arrays c+v.

c*v+k, c*v-k

053 SBF17* Subscripts of Double Precision Arrays v,k, c*k

c*v+k, c*v-k, v+k, v-k

Input 6 cards Unit #5

Output Print 14 pages Unit #6

*Produce Output

Note 1 Prepare replacement cards for cards 1, 3, and 5 as described in Data

Preparation Section II-A-2. These cards in Part 4 are not part of the

test, but are included for user output documentation only.

II-A-15
VERSION 3 PART 5 MAIN PROGRAM

(Intrinsic Function Tests)

Segment# and Name Test

000 Special Documentation

001 SPECS Specification needed for Part 5

007 lODEF I/O Unit Assignment Statements

054 SIMIF* Arithmetic IF, logical IF followed by GO TO

055 IFABS* ABS, lABS (Absolute Value Functions)

056 IFFLT* FLOAT (Convert from Integer to Real)

057 IFFIX* IFIX (Convert from Real to Integer)

058 IFSGN* SIGN, ISIGN (Transfer of Sign)

059 IFDAB* DABS (Absolute Value)

060 IFTRN* AINT, INT, IDINT (Truncation)

061 IFMOD* AMOD, MOD (Remaindering)

062 IFMAX* AMAXO, AMAXl, MAXO, MAXl, DMAXl (Choose

Largest Value)

063 IFMIN* AMINO, AMINl, MINO, MINI, DMINl (Choose

Smallest Value)

064 IFDSG* DSIGN (Transfer of Sign)

Input 6 cards Unit #5

Output Print 14 pages Unit #6

*Produce Output

'

Note 1 Prepare replacement cards for cards 1, 3, and 5 as described in Data

Preparation Section II-A-2. These cards in Part 5 are not part of the

test, but are included for user output documentation only.

II-A-16

I
VERSION 3 PART 6 MAIN PROGRAM

(Intrinsic Functions)

Segment # and Name

nnn uuu

nn 1 or hLb

007 lODEF

065 IFDIM*

066 IFSGL*

067 IFREL*

068 IFIMG*

069 IFDBL*

070 IFCPX'^

071 IFCJG*

072 IFBMS*

073 IFFMS*

Input 6 cards

Output Print 11 pages

*Produces Output

Test

Special Documentation

Specifications needed for Part 6

I/O Unit Assignment Statements

DIM, IDIM (Positive Differences)

SNGL (Obtain most Significant part)

REAL (Obtain Real Part of Complex Argument)

AIMAG (Obtain Imaginary Part of Complex Numbe

DBLE (Express Real Argument in D.P. Form)

CMPLX (Express Two Real Arg. in Complex Form)

CONJG (Obtain Conjugate of a Complex Number)

All Intrinsic Functions-Real and Integer

All Intrinsic Functions-Real , Integer and D.P

Unit #5

Unit #6

Note 1 Prepare replacement cards for cards 1, 3, and 5 as described in Data

Preparation Section II-A-2. These cards in Part 6 are not part of the

test, but are included for user output documentation only.
VERSION 3 PART 7 MAIN PROGRAM

Segment # and Name Test

000 Special Dociomentation

001 SPECS Specifications needed for Part 7

007 lODEF I/O Unit Assignment Statements

080 EXPON* Basic External Function - EXP

081 DEXPO* Basic External Function - DEXP

082 CEXPO* Basic External Function CEXP

083 LOGTM* Basic External Function ALOG

084 DPLOG* Basic External Function DLOG

085 CXLOG* Basic External Function CLOG

086 COLOG* Basic External Function ALOG 10

087 DCLOG* Basic External Function DLOG 10

088 SINUS* Basic External Function SIN

089 OPSIN* Basic External Function DSIN

090 CSICO* Basic External Function CSIN and CCSIN

091 COSNS* Basic External Function COS

092 DPCOS* Basic External Function DCOS

Input 6 cards Unit #5

Output Print 18 pages Unit #6

*Produces Output

Note 1 Prepare replacement cards for cards 1, 3, and 5 as described in

Data Preparation Section II-A-2. These cards in Part 7 are not part of

the test, but are included for user output documentation only.

II-A-18
VERSION 3 PART 8 MAIN PROGRAM

Segment # and Name Test

1.

000

001 SPECS

005 BSFDF

006 FSFDF

007 lODEF

094 TANGH*

095 SQROT*

096 DSQRO*

09 7 CSQRO*

098 ARCTG*

099 DACTG*

100 ACTG2*

101 DATN2*

102 DMODA*

103 CABSA*

110 BSFTS*

111 FSFTS*

Special Documentation

Specifications needed for Part 8

Statement Function Definitions for Segment 110

Statement Function Definitions for Segment 111

I/O Unit Assignment Statements

Basic External Function - TANH

Basic External Function - SQRT

Basic External Function - DSQRT

Basic External Function - CSQRT

Basic External Function - ATAN

Basic External Function - DATAN

Basic External Function - ATAN2

Basic External Function - DATAN2

Basic External Function - DMOD

Basic External Function - CABS

Statement Functions (Real and Integer)

Statement Functions (D.P., Logical and Complex)

Input 6 cards Unit #5

Output Print 13 pages Unit #6

* Produce Output

Note 1 Prepare replacement cards for cards 1, 3, and 5 as described in Data

Preparation Section II-A-2. These cards in Part 8 are not part of the test,

but are included for user output documentation only.

II-A-19
VERSION 3 PART 9 MAIN PROGRAM

Segment # and Name Test

000 Special Documentation

001 SPECS Specifications needed by Part 9

007 lODEF I/O Unit Assignment Statements

140 CPXAD* Addition and Subtraction of Complex Numbers

141 CPXMU* Multiplication of Complex Numbers

142 CPXDV* Division of Complex Numbers

143 CPXEX* Exponentiation of Complex Numbers

144 CPXOP* Arithmetic Operations on Complex Numbers

145 CREAD* Addition, Subtraction of Complex, Real Numbers

146 CREMU* Multiplication of Complex by Real Numbers

147 CREDV* Division of Real, Complex by Complex, Real

Numbers

148 CREOP* Combined Operations on Complex and Real Numbers

149 MISC3* Blanks in, and Continuation of Statements to

Maximum Lines

150 MISC4* Special Characters for Continuation Lines

Input 6 cards Unit #5

Output Print 12 pages Unit #6

*Produce Output

Note 1 Prepare replacement cards for cards 1, 3, and 5 as described in Data

Preparation Section II-A-2. These cards in Part 9 are not part of the

test, but are included for user output documentation only.

II-A-20
VERSION 3 PART 10 MAIN PROGRAM AND 29 SUBPROGRAMS

Segment # and Name Test

000 Special Documentation

001 SPECS Specifications needed for Part 10

007 lODEF I/O Unit Assignment Statements

160 BRFCP* External Function Test - Real

161 BIFCP* External Function Test - Integer

162 FRFCP* External Function Test - Real - All

Argument Types

163 FIFCP* External Function Test - Integer - All

Argument Types

164 CFCCP* External Function Test - Complex

Subprograms

400 AFS

420 BFS

430 CFS

440 DFS

450 EFS

460 FFS

Subprograms

401 I API

421 IBFI

431 ICFI

441 IDFI

451 lEFI

461 IFFI

Subprograms

402 GFS

422 HFS

432 IRFS

442 JRFS

452 RFS

Subprograms

403 IFI

423 JFI

433 KFI

443 LFI

453 MFI

Subprograms

404 AFC

414 BFC

424 CFC

434 DFC

444 EFC

454 FFC

464 HFC

Used with Segment 160 - Real Function

Real Argument

Real Arguments

Integer Argument

Integer Arguments

Array Name

Integer and Real Arguments

Used with Segment 161 - Integer Function

Real Argument

Real Arguments

Integer Argument

Integer Arguments

Array Name

Integer and Real Arguments

Used with Segment 162 - Real Function

Double Precision Arguments

Complex Arguments

Logical Argument

Argument - External Procedure

Different Types of Arguments

Used with Segment 163 - Integer Function

Double Precision Arguments

Complex Arguments

Logical Arguments

Argument - External Procedure

Different Types of Arguments

Used with Segment 164 - Complex Function

Real Argument

Integer Argument

Array Name

Double Precision Argument

Complex Argument

Logical Arguments

Different Types of Arguments

II-A-21
Input 6 cards Unit #5

Output Print 6 pages Unit #6

*Produces Output

Note 1 Prepare replacement cards for cards 1, 3, and 5 as described in Data

Preparation Section II-A-2, These cards in Part 10 are not part of the

test, but are included for user output documentation only.

II-A-22
Segment # and Name Test

000

001 SPECS

1. 007 lODEF

165 DPFCP*

166 BFCCP*

167 SBRTN*

168 FSBRT*

169 BLKDT*

Subprograms

405 AFD

415 BFD

425 CFD

435 DFD

445 EFD

455 FFD

465 GFD

475 HFD

Subprograms

406 AFB

416 BFB

426 CFB

436 DFB

446 EFB

456 FFB

466 GFB

476 HFB

Subprograms

407 AAQ

417 ABQ

427 ACQ

Subprograms

408 ADQ

418 AEQ

428 AFQ

Subprogram

409 BLOKD

Special Documentation

Specifications needed for Part 11

I/O Unit Assignment Statements

External Function Test - Double Precision

External Function Test - Logical

Subroutine Subprogram Test

Subroutine Subprogram Test

Block Data Subprogram Test

Used with Segment 165 - D.P. Function

Real Argument

Integer Argument

Double Precision Argument

Complex Argument

Logical Argument

Argument - External Procedure

Array Name

Different Types of Arguments

Used with Segment 166 - Logical Function

Real Arguments

Integer Arguments

Double Precision Argument

Logical Argument

Complex Argument

Array Name

Argument .- External Procedure

Different Types of Arguments

Used with Segment 167 - Subroutine Subprogram

Integer and Real variables and Array Elements

Array Elements

No Argument List - Arguments passed thru Common

Used with Segment 168 - Subroutine Subprogram

Different Types of Arguments

Array Names and Integer Arguments

No Argument List - Arguments Passed

through Common

Used with Segment 169 - Block Data Test

Block Data Subprogram

Input 6 cards

Output Print 6 pages

*Produces Output

Unit #5

Unit #6

Note 1 Prepare replacement cards for cards 1, 3, and 5 as described in Data

Preparation II-A-2. These cards in Part 11 are not part of the list,

but are included for user output documentation only.

II -A- 2 3
VERSION 3 PART 12 MAIN PROGRAM AND 5 SUBPROGRAMS

Segment # and Name Test

1.

000

001 SPECS

005 BSFDF

007 lODEF

179 BLKDA*

180 UNFRW*

182 BACUP*

190 DOTRM*

191 DOLMT*

192 DONSC*

193 DONS I*

194 DONSX*

195 DONML*

196 DONIO*

197 MORDO*

200 SUBRl*

Special Documentation

Specifications needed for Part 12

Statement Function Definitions used with

Segment 197

I/O Unit Assignment Statements

Block Data Test

Unformatted Read and Write

Backspace Tape

DoLoops - Terminal Statements

DoLoops - Parameters integer variable names

DoLoops - Completely Nested Nest

DoLoops - Incomplete Looping

DoLoops - Extended Range

DoLoops - Nested Nests

DoLoops - I/O Terminal Statements

DoLoops - I/O, Intrinsic Functions, CALL include

Subroutine Called

Subprogram

410 SUBRQ

Used with Segment 200

Subprogram

412 MDQ

Used with Segment 197

Subroutine Subprogram

Subprograms

419 BLAKD

429 BLBKD

439 BLCKD

Used with Segment 179

Block Data Subprogram

Block Data Subprogram

Block Data Subprogram

- Block Data Test

Input 6 cards

Output Print 13 pages

Intermediate tape

* Produces Output

Unit #5

Unit #6

Unit #9

Note 1 Prepare replacement cards for cards 1, 3, and 5 as described in Data

Preparation Section II-A-2. These cards in Part 12 are not part of the test,

but are included for user documentation only.

II-A-24
VERSION 3 PART 13 MAIN PROGRAM AND 2 SUBPROGRAMS

Segment # and Name Test

000

001 SPECS

1. 007 lODEF

300 LOGIF*

301 BARIF*

302 FARIF*

2. 310 lOFMT*

3. 312 RDFMT*

Special Documentation

Specifications needed for Part 13

I/O Unit Assignment Statements

Logical If Statements

Arithmetic If Statements (Integer and Real

Expressions)

Arithmetic If Statements

Formatted Read and Write, additional properti

of

Formats in Arrays

Subprogram

411 SMCQ

Used with Segment 300

Subroutine

Subprogram

462 FMTQ

Used with Segment 312

Subroutine

Input 57 cards - prepare 3 cards (cards 1, 3, and 5) Unit #5

Output Print 10 pages Unit #6

* Produce Output

Note 1 The first 6 input cards in Part 13 (user prepared cards 1, 3, and 5) are

not part of the test, but are included for output documentation only. See

Data Preparation Section II-A-2,

Note 2 38 input cards - for test of seg. 310

Note 3 13 input cards - for test of seg, 312

II-A-25
VERSION 3 PART 14 MAIN PROGRAM AND 4 SUBPROGRAMS

Segment # and Name

1.

2.

000

001

007

350

351

352

360

SPECS

lODEF

MISC5*

FUNMX*

NAMES*

SPEC2*

Subprogram

413 MAQQ

463 MBQQ

473 AMQQ

483 BMQQ

Test

Special Documentation

Specifications needed for Part 14

I/O Unit Assignment Statements

Specifications for Program Form (Test)

Basic External Functions using Trig Formula

Names resembling FORTRAN Verbs and Function Names

Common, Dimension and Equivalence

Used with Segment 352

Subroutine Called from NAMES

Subroutine Called from NAMES

Subroutine Called from NAMES

Subroutine Called from NAMES

Input 6 cards

Output Print 5 pages

* Produce Output

Unit #5

Unit #6

Note 1 Prepare replacement cards for cards 1, 3, and 5 as described in

Data Preparation Section II-A-2. These cards in Part 14 are not

part of the test, but are included for user output documentation only.

Note 2 This test may cause difficulties in some compilers and may have to

be run independently of other tests.

II-A-26
B. PROCEDURES FOR ISOLATING TEST UNIT FAILURES FROM VERSION 3

The following procedures assume the NBS FORTRAN Test Programs, Version 3,

are being used with the programs on interpreted punch cards rather than

from magnetic tape.

31. Deleting a Test Unit

If any part fails to complete the execution of all the test units

within the part, the printed results will probably contain at least

the heading of the segment which failed and no test unit beyond this

point will have been completed. If the test which failed is not the last

one in a part, remove the cards which define the particular test and

proceed with the test with this test unit deleted. Parts 10-14 contain

subprograms which may have to be removed if a test failure occurs in

these parts,

32. Creating a Single Test from a Deleted Unit

Each test unit may be run independently by either of the following two

methods,

a) Append the FORTRAN specification statements which appear at the

beginning of the appropriate part to the beginning of the test

unit to be retested. Include the one (or two) Input-Output

assignment statements appearing as a segment 00 7 card within

the first test unit of the part. This statement should be

inserted into the test unit to be retested as the first executable

statement, which can be located by the corresponding statement

appearing in the test unit as a comment card with C = in the

first two locations. Supply a STOP statement and an END card

at the end of the test unit main program. Although specifications

not used within this test unit may cause diagnostics to appear as warning messages to non referenced data names, the program test unit

is still a standard conforming FORTRAN program.

b) Isolate the test unit. Check the initial comment lines in the listing

related to the part containing the test unit. If any additional

segments are required to run this test unit, they are identified.

For every card in the isolated test unit containing a "C =" in

columns 1 and 2, duplicate the cards with the "C =" changed to

blanks and omit punching columns 73-80 of the card. Return the

comment cards to their original locations in the deck with the

corresponding FORTRAN created statements immediately below the

comment card. These "C = " comment indicators have been appended

to what otherwise would be FORTRAN specification statements, I/O

assignment, STOP statements and END lines. Omitting the duplication

of columns 73-80 will make it easier to remove these cards when the

test unit is returned to its original state for reinsertion into its

appropriate location in the test part.

Test units numbered 008, 009, 310 and 312 are the only units which

require input data cards to perform the test.

II-3-1

I

C. SAMPLE TEST RESULTS

CI. Interpreting the Test Results

An attempt was made in the design of these tests to produce test results

which were as much as possible self explanatory. Wherever a value of

zero could not be created by the addition or subtraction of a constant

from the calculated result, a Hollerith equivalent precedes the test result

for comparison purposes.

The effects of conversion, precision, and exponent range are minimized by the

use of values which are integer and fractional powers of 2 where the choice

of values affected the test results. Other results are truncated to

minimize the effects of differences in systems precision.

The ASA FORTRAN Standard does not prescribe the external output form for a

Real or Double Precision zero. Systems implementors have used a wide

variety of forms with and without + or - signs. Some implementations

employ a + or - sign with the Fw.d format field descriptor when the

printed value is zero to denote a truncated value whose sign correspondsto the sign of the original value. Expect variations in the form of zero.

The ASA FORTRAN Standard permits the implementor a choice of form for output.

A positive sign is not required.

A leading zero before the decimal point for E and D conversion is not

requi red.

The following exponent forms are equivalent and correct for E conversion:

E+02

. E 02

+002

The following exponent forms are equivalent and correct for D conversion:

D+13

D 13

E+13

E 13

+013

In the test program results where D conversion is used on output and the

expected output value is stipulated to be zero, any value containing a

negative exponent of D-13 or mathematically less is considered to be zero.

The test units containing the Basic External Functions do not attempt

to test either the range or the precision of these functions. A selected

set of arguments to these functions is presented for the purpose of

determining only whether the function name referenced is actually the

function delivered.

II-C-1
The following limits have been set for constants in this test program set:

Integer 5 digits

Real 7 digits

Double Precision 14 digits

Complex 7 digits (each half)

Hollerith 2 characters except in segment 009 which tests A-conversion

for 1 to 4 characters and 26 characters for the

truncation test.

Where the precision of a FORTRAN processor for a REAL datum approaches

the limit established for a Double Precision datum (14 digits) it will

be necessary to increase the number of digits printed out for the

test of the intrinsic function SNGL (test unit 066) to obtain

meaningful test results.

C2. Test Results

The following test results were obtained from actual execution of Version 1

or Version 3 of the NBS FORTRAN Test Program set. These results are a

composite set of output pages derived from five FORTRAN processors showing

various forms for zero and differences in exponent form.

II-C-2
y 0 R T W A N—

T

ES T—

P

W0GRAM8

P K K P A H EO BY N ATIO N AL BU H KAU Of 8TANPA R 08

FOR USE ON FORTRAN H W0C E S8UR8

IN ACCOROANCe WITH ASA FORTRAN X3,V»t966

VERSIO N I

PRtPAHtU BY USbH

F Rfe P AREP BY USE R

PR E P ARED BY USfc R

FORTRAN TEST PROGRAMS

PREPARED BY NATIONAL BUREAU OF STANDARDS

FOR USE ON LARGE FORTRAN PROCESSORS

IN ACCORDANCE WITH ASA FORTRAN X3.9-1966l

VERSION 3 PART I

SAMPLE COMPUTER, FORTRAN COMPILER LEVEL

OPERATING SYSTEM VERSION

DATE, INSTALLATION NAME

FMTRM - (008) FORMATTED I/O

ASA REFS - 7.1.3.2.2 7.1.3.2.3 7.2.3

RESULTS

101010101010 1010 1010 99999999968388888

77777 7766666.655555'ti»4^<»333221

AAA

ODD

GGS

JJJ

MMM

PPP

sss

BB3

EEE

HHH

KKK

NNN

QQd

TTT

ccc

FFF

III

LLL

000

RRR

UUU

VVV WWW <XX

YYY ZZZ

= +-/() , . $

BEGIN VERTICAL SPACING

FORMATd'tH SKIP 1 LINE /)

FORMATdSH SKIP 2 LINES //)

F0RMAT(16H SKIP 3 LINES ///)

IMBEDDED SLASHES - SKIP 1 LINE

SKIP 2 LINES

SKIP 3 LINES

SKIP TO NEXT LINE

SKIP 1 LINE

TEST NO /1H4-,7HADVANCE

SKIP TO NEW PAGE

II-C-3
END Of VERTICAL SPACING TEST

BEGIN I CONVERSION TEST

EACH PAIR OF LINES SHOULD BE IDENTICAL

LINE 1 OF EACH GROJP IS HOLLERITH IMFORNATION

999

999

5555 kkki*

5555 Mkkit

666 777777 8

666 777777 8

3 333 3 3 1 1 1 11 2 2 2 2 2 2 2 2 5 5 5 5 5 if *f * If 3 333 3 3 11 m2 2 222 222 5 5 555 1*'* '<»<'»;

BEGIN F CONVERSION TEST

EACH PAIR OF LINES SHOULD BE IDENTICAL

7.7123'»56.7

7.7123'»56.7

6. 889.9997. 123<t56

8.889.9997.123<»56

5.^<>(»<»6. 5555533. 133. 133. 133. 1 1

5.i»<»i»<»6. 5555 533. 133. 133.133. 1 1

5555.15555.1

5555.15555.1

6&666. 16666&.1 <*<*.22

6666S. 166666.1 <f^.22

2.12. 12.12.12.1666. 3 33<».333(».333<». 333

2.12. 12.12.12.1666.3 33<».333<».333<».333

BEGIN E CONVERSION TEST

EACH PAIR OF LINES SHOULD BE IDENTICAL

-O.lE+01

-.lE+01

e.333E4^02

.333E+02

0 .22E-01

.22E-01

•8.55555E-03

-.55555E-03

0.98765<»3Etl2

.98765<»3E*12

a.666666E^00

.666666E+00

BEGIN COMPLEX CONVERSION TEST

EACH GROUP SHOULD BE IDENTICAL

i.O

1.0

22.0

22.0

5.5

5.5

66.6

66.6

33.123<»

33.123<»

123.00

123.00

55.0789

55, 0789

i»56. 88

k5b» 88

0.123E4^01

.123E4-01

•0.23<»5E4^02

-.23«»5E + 02

0.7E+03

•7E*03

0.9d7E»01

.987E+01

-0.6879E+02

-.6879E+02

9 .<>E*03

.<fE^03

0.98765'*3E-0<»

.98765'»3E-0*t

0. l357913E-0«»

.1357913E-0'*

19.3<»

19.3(»

0.2t»68Ef02

.2t»68E>02

0.7S5E4^02

.765E+02

87.6

87.6

<»3.96 0.5<»07E^02

43.96 .5<»07E^02

<»3.96 .5<f07E^02

<»3.96 .5<»(i7E + 02

BEGIN D CONVERSION TEST

EACH GROUP SHOULD BE IDENTICAL

0.10^06

.10^06

-0.33'»D-0'f

-.33<»D-0*»

-.33'tD-O'*

0.765765<»0>00

.765765<»D*00

II- C4
0.123<t567890iO>10

.123<»5678901D+10

0.98765<»32l098760-ai

,98765'»32109876D-01

.98765*»32109876D-B1

.98765*»32109876D-31

•0.55555554204^03

-.5555555«»2D+03

-.5555555«»2O+03

BEGIN L CONVERSION TEST

LINES BELOH SHOULD 8E IDENTICAL

T F F T T FTF

T F F T T FTF

TEST UNSUBSCRIPTEO ARRAY NAMES

IN I/O LISTS. EACH GROUP OF LINES

SHOULD BE IDENTICAL.

9.91.19.92.2 9.93.39. 9'».'»

9.91.19.92.2 9.93.39. 9'f.'»

9.91. 19.92.2 9.93.39. 9i+.'*

-9.9-9.9-9.9-9.9

-9.9-9.9-9.9-9.9

-0.99D+01-0. 990+01- 0 .99D+0 1-0. 990+01

-.99D+01 -.990+01 -.990+01 -.990+01

-.990+01 -.990+01 -.990+31 -.990+01

9999999999

9999999999

0. 990+01 0. 990+01 0 . 990+01 0.990+01

.990+01 .990+01 .990+01 .990+01

.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9

.9 .9 .9 .9 .9 .9 .9 .9 .9

.9 .9 .9 .9 .9 .9 .9 .9 .9

.9 .9 .9 .9 .9 .9 .9 .9 .9

TF

TF

TrTFTFTF

TFTFTFTF

99999999

99999999

0.99D+0I

.99*00 I .99+001

.99*001

.99+001

.99*001

9.95.59.96.69,97,79.98.8

9.95.59,96.69.97,79,98.8

9,95.59,96.69.97,79,98,8

9.95.59.96.69.97.79.98.8

9999999999999999

9999999999999999

TFFT

TFFT

9.99.99.99.99.9

9.99.99.99.99.9

LEADING BLANK INSERTION TEST

EACH PAIR OF LINES SHOULD BE IDENTICAL

8

8

22

22

22

22

22

22

22

22

7.7

7.7

8,88

8.88

II- C5
9.999

9.999

TEST LOGICAL FIELDS WITH BLANKS

LINES BELOW SHOULD BE IDENTICAL

6.55555

6.55555

7.123»f56

7.123i»56

0.21E+01

•ZlE^Oi

0.331£4-a2

.331E+a2

0. 55551E+04

. 55551E+0'*

D .66&&&1E+05

.6666&1E4^05

0.123't567E+06

.l23't567E*06

O.lD+00

.104-00

0.104-Oa

.104-00

0.104-00

.104-00

0. 104-00

. 104-00

1.0 5.5

1.0 5.5

9.9 5.5

9.9 5.5

9.9 5.5

9.9 5.5

1.0 5.5

1.0 5.5

T

T

F

F

TT

F

F

TEST 0 = 0» W=D4-1 (PAIRS OF LINES

BELOW SHOULD BE IDENTICAL)

.55555

.55555

BEGIN G CONVERSION

EACH PAIR OF LINES SHOULD BE IDENTIC)

.1235E4-05 1235. 123.5

.1235E+05 1235. 123.5

12.35 1.235 .1235

12.35 1.235 .1235

II- C6
SCALE FACTOR ON READ

IN ORDER OF FORMAT OCCURRENCE

CARD 9876. 51* 98. 765i*E2 98 76.^^5 DESC 2PF8.3 -ZPEg.'* F9.<»

TO BE 98.765<t .98*77E+0«» 98765<».00

IS 98.765*» .9877E+0«» 98765<f.()0

CARD 987.65<» 86l»7860-«» 86.'»786E2

DESC 0PG9 .<» 09. (» -2PE9.

TO BE 987. &54 .86<f80-02 .86<f8E«^.0<»

IS 987.&5<» .86'f80-02 .86<»8E'^0<»

CARD 86.(»7d6 8637.8700 9876.5i»

DESC 09. i» 2PG9.<»

TO BE 86<»7.860 .8&5 80^0<» 98.77

IS 8&t»7.860 .86580 + 0(» 98.!77

SCALE FACTOR ON WRITE

IN 0?DER OF FORMAT OCCURRENCE

CARD 9.87655 98. 765'»E2 9876,5<»

DESC 2PF12 .2 -2PE12.i» F12.'*

TO BE 987.65 .0D99E^O6 98.766'»

IS 987.66 .3099E^06 98.765**

CARD 987.65<»

DESC iPG12.2

TO BE' 9.88E+02

IS 9.88E+02

CARD 86.<*786

DESC 2PF12.2

TO BE 86i»7. 86

IS 86<»7.86

86«»786D-3

012. <» 8.6<»79D*02

8.6i»79D+02

8657.8600

1PD12.I»

8.65790+03

8.65790+03

86.'*786E2

-2PE12.

.0086E+06

.0086E+a&

9876. 5<» 2PG1&. <» 9877.

9877.

THE LAST TWO LINES OF EACH

SET SHOULD BE THE SAME

FORMAT RESCAN - THE SECOND GROUP OF

EACH SET SHOULD AGREE WITH THE FIRST

1 22 333

55 666

7 88 999

1 22 333

k 55 666

7 88 999

*FKWT * tO09J A»CONVfcRSIQN

ASA REF m 7 ,2,5,6

EACH PAIR OF LINtS SHOULD BE lUtNTICAL

FOR COMPUTERS STORING FOUR

OR MORE CHAHACTtHS PER WUHD

ABCOEPGHIJKLMNOPQRSTUVMX YZ

ABCUEF'UHIJKLMNUHQRSTUVWX YZ

01234S67894'AB2$(C)

0123«56789+ABZ$TCT

TEST A CONVERSION • ADDING BLANKS

EACH P AIR O F LIN E S SH O ULD B E I D E N T ICAL

AIT

Q

"0"

Z

T

TES T A FIE LD TR UNCA T I O N 2ND LINE SHOULD PARTIALLY MATCH 1ST

ABCDEFGHIJKLMNOPQHSrUVWXYZ

VWXYZ

2 ** k $$ 6 (f

8 St

2 ••^ k %$ 6 CI

8 $S

II- C-7
0AtA4 • (010) DATA STATEMENT USE •750,05

•750,05

ASA RCFS. • 7«iS«2 .750,05

•750,05

•750,05

INFORMATION, TEST IS SUCCESSFUL IF 22.22

e«Ch uHOUt* tUNlAlNO IME SArtt vALUfes 11.1

11.1

22,22

22.22

0

0

11.1

11.1

22,22

22,22

0

0

0 •34,50

•34,50

•6.78

•6,78

10

•34,50

•34,50

•6,78

• 6,78

10

10

•34,50 •6,78

lO

10 10,00 •20,00

10,00

10,00

•20,00

•20,00

Utib

246

10,00

10,00

•20,00

•20,00

£46

246

£Hb •200,00

•200,00

4000,00

4000,00

• 750

•200,00

•200,00

4000,00

4000.00

• 7S0

-750

•(;oo,oo 4000,00

• 750

• 750 •0,2950*05

•0,2 950*0?

•0,2950*05

0,00

0,00

•0,2950*05

•0,2950*05

0,00

0,00

0,00 0,3456789010*05^

0,3456789010*05

246,15

0,3456789010*05

0,3456789010*05

246,15

246,15

0,3456789010*05

246,15

246,15 0. U22335D^02

0,

0,

1122ii50^02

11223350^02

3546,74

3546,74

0,

0,

112233b0^02

11223350^02

3546,74

3546,74

3546,74 _±

II- C8
0, 940413

0,$4D41S

TT

T

TT

F

¥F

FF

AD

AO

AD

NO

NO

BC

BC

*•

P

K

AA56N - (Oil) simple: REAL AND INTEGER

ARITHMETIC ASSIGNMENT STATEMENTS

ASA REE. - 7.1.1

LINE I OF EACH PAIR IS HOLLERITH

INFORMATION

INTEGER RESULTS

1 123*45 0

1 123M5 0

2 -3 -8765

2 -3 -8765

6912 0 -23

6912 0 -23

'432 1 45

H'44'4 *4 32 l 45

2M68 -3123 0

2M69 -3123 0

REAL RESULTS

1.0 358.6724 -2.0

1 .0 358.6724 -2.0

3.0 -2714.250 29.30542

3.0 -2714.250 29.30542

86.27 1034.2 0.0

86.27 1034.2 .0

0.0 345.678 -2.5

.0 345.678 -2.5

-5.66 1 . 1 1 1 I I 1 1.0

-5.66 1.111111 1.0

-2.0 3.0 4.0

-2.0 3.0 4.0

5.0 -6.0 0.0

5.0 -6.0 .0

0.23 -0.716 -0.7

.23 -.716 -.7

0.81 0.9

.81 .9

n-c-9
i

0.105E+03 -0.76E+02 0.332itE+03 0.709E+06 0.818'»2E+05 -0. 9E+06

.105e+03 -.76E+02 . 332'»E + 03 .709E+06 .818it2E+05 9E+06

0.5132E+01 0.53'»E-02 -0. lttl9E + 00 0.627E+05 0 .53E + 05 -0. kE*Q5

.5132E+01 .53tfE-02 -.lifigE + OO .627E+05 .53E + 05 -.'E + 05

-0.99E+03 0 .105210E+05 O.'t56E + 02 0.1'»63E + 02 0.2E-02 -0. 355E+02

-.99E+03 .105210E+05 .'56E + 02 .l*f63E + 02 .2E-02 355E+02

0.6652E+G3 -0.529E+03 0. 7856«tE + 0'» 0.29E+07 0 .'t07 2E*07 -0. 61835E + 0 7

.6652E+03 -.529E+03 .7856t»E+0't .29E+07 .'t072E + 07 -.61835E+07

-0 .3»t567E + 0«t 0.6162E + 0'* 0.23E+00 O.829E + 0it 0.3E+03 -0. lE+Otf

.6162E + 0'* . 23E+00 .829E+0't . 3E+03 lE + O^f

0.9i»333E + 01 0.352«»E-02 -0. 7it32E + 00 0.3'tO'»E + 00 0 .55E-03 -0. 761E+02

.9^^333£ + 01 .352«tE-02 -.7t»32E + 00 .3*tO'«E+00 .55E-03 -.761E+02

O.lE+01 0.123E+05 -O.llE+05

.lE+01 .123E+05 -.llE+05

0.1^*»E+02 -0.12E+00 O.SetfSE+Ol |:

.l*t'»E+02 -.12E+00 . 36it5E + 01

-0.200E+0t» 0.99E + 0«» O.OE+00

-.200E+0't .99E + 0'* 0.

-0.1512E+06 0.21'»E*06 0. SifE+Ol

-.1512E+06 .21'»E+06 .StfE + Ol

-CitE-Ol 0.5321«fE + 01 O.eE+Oif

-.iiE-Ol .5321'»E+01

0.72E+06 -0 .813E + 0't 0.23i»E + 00

.72E+06 -.SISE+Oi* .23i»E*00

-0.3E+02 0 .''E + Ol 0. lE+05 F 0 R T R A N TEST p R 0 G R A M 5

-.3E+02 .'fUE + Ol . lE+05

PREPARED BY NATIONAL BUREAU OF STANDARDS

0.36E-03 0.9E-0*f -0. lOE-02

.36E-03 .9E-0«» lOE-02 FOR USE ON LARGE FORTRAN PROCESSORS

0.777E+01 -0.29E+03 0.«iE+01 In accordance with ASA FORTRAN X3.9-I9A6

.777E+01 -.29E+03 .^tE+Ol

Version 3 PART 2

0.90E+01 0.810E+00 -0.7E+03

.90E+01 .810E+00 -.7E+03

0.62E+03 0.531 OE+01 -0.«tU2E+02 Sample computer, Fortran COMPILER LEVEL

.62E+03 .5310E+01 -.'*»2E + 02

OF'ERATING SYSTEM VERSION

CSE-O^f 0.25E-03 -0.163E-02

.25E-0 3 -.163E-02 _ Date, INSTALLATION NAME

II;-c-io
OASUN • (013) SIMPLE D,P, ARITHMETXC

AS8ISNMENT 8TMNT8,

0,;S569248356924e0*12

0,356924635692460*12

ASA RIIFS, • 7,1,1,1 !i,l,l.i 0,356924835692480*12

0,356924835692460*12

RESULTS 0,356924835692460^12

LINE I OF EACH 6K0UP 18

HOLLERITH INFORMATION

0,6S49e76DiiOJ

0.6549876D>03

0,340*02

0,65498760*03

0,65498760*03

0,340*02

0,340*02

0,65496760*03

0,340*02

0,340*02

0,760*10

0,760*10

0,12345678910110*08

0,760*10

0,760*10

0,l2345b789l01lO+08

0,1234S67891011O*0e

0,760*10

0,12345676910110*08

0,12345678910110*08

0,00*00

0,00*00

0,2987652340»0l

0,00*00

0,00*00

0,29e76S234D»01

0, 2967652340*01

0,00*00

0,2967652340*01

0,2967652340*01

•0,1726354450*11

*0, 1726354450*11

0,345100005550*07

iiO, 1726354450*11

*0, 1726354450*11

0,345100005550*07

0,345100005550*07

*0, 1726354450*11

0,345100005550*07

0,345100005550*07

0,1967620*05

0,1987620*05

0,222324250*06

0,1967620*05

0,1967620*05

0,222324250*06

0,222324250*06

0,1987620*05

0,222324250*08

0,222324250*08 ^

•0,2543966210*03

*0, 2543966210*03

0,2814200*05

•0,2543966210*03

•0,2543966210*03

0,2814200*05

0,2814200*05

•0,2543966210*03

0,2614200*05

0,2614200*05

0,347865299102340*05

0,347865299102340*05

0,44556677680*16

0,347865299102340*05

0,347865299102340*05

0,445b6677880*16

0,44556677680*16

0,347865299102340*05

0,44556677860*16

0,44556677860*16

•0, 4440^06

•0, 4440-08

• 0, 4440-06

•0, 4440^06

1 -0, 4440*08

II-C-11
00*00

OD

+ 00

0D40O

OD

+ 00

123D+20

123D«20

3692a68D»0t

ib92ab8U«01

369206aD«0}

3692466D»01

1479378249670+07

1479378249670+07

14 7 93 7 824 9 6 7 0+0 7

1479378249670+07

1479378249670+07

9277861749850+02

9277861749850+02

927/86l7498b0+02

9277861749650+02

9277861749850+02

5935491*

593549i4223619D+00 S 9 35491422361 9 P+00

593S4914223619D400

5935491 42236 l9L)+THr

9B663271Di>03

98663271D«03

9B663271P-03

986632710*03

^66327ll>«03

lD-15

lO-lS

10»15

10-15

32612946750+22

32612946750*22

32612946 7 50+22

32612946750+22

32612946750+22

wO, 9694929090+ 13"

•0|969492909D+13

•0,9694929090+13

0,9694929090+13

0,9694929090*13

0, 124608SO+01

0,12460850*01

0,12460850+01

0,12460850+01

0,12460850+01

*0, 590*02

•0,590*02

•0,590*02

"^D75W*1J2

0,7982813922530*12

0,7982813922530+12

0,7982813922530+12

0,7982813922530+12

~Tr,T9?2¥I392253D

+ 12

n),«Z9?TD*TI

0,429210*11

0,429210*11

0,429210*11

0,429210*11

0,793685443D+0F

0,7936 854430*05

0,7936854430+05

0,7936854430+05 T ,7936854 43D* 05

"~Xr, 3T3il If 455566TJ*

n

0,333444555660*13 ' U, 333444555660*13

0,333444555660*13

~T,333444555660

+ 13

•^2223334440+1

•0,2223334440+10

•0,2223334440+10

•0,2223334440+10

•0,2223334440+10

0,10+02

0,10+02

0,10+02

"O.TU+U?

II- C- 12
•0,2D«03

«0, 20*03

•0,2D«03

•0,2D403

6,5353333333i333Di^U

0,333333333333330*11

0,3333333iiiii3iU4'll

0,33333333333333D4>11

(),3i3i33iiii333iU*ll

•0,a444a4444D*0S

«0,444444444U'»U5

•0,4444444440*08

.0,4444444440*05

0,340000000000000*02

0,340000000000000*02

0,340000000000000*02

0,340000000000000*02

0,340000000000000*02

0,340000000000000*02

••0,172635445000000*11

«0, 172635445000000*11

•0,172635445000000*11

0,172635445000000*11

•0,172635445000000*11

•0,172635445000000*11

0,000000000000000*00

0,000000000000000*00

0,000000000000000*00

0,000000000000000*00

0,000000000000000*00

0,000000000000000*00

• 0 1 172635445000000*1

1

•0,172635445000000*11

•0,172635445000000*11

•0,172635445000000*11

•0,172635445000000*11

•0,172635445000000*11

0,654VH7600000000»03

0,6549e7600000000^03

0,6549«760000000O«03

0,654987600000000^03

0,654VH7600000000»Oi

0,654967600000000*03

0,000000000000000*00

0,000000000000000*00

0,000000000000000*00

0,00000000000 00 00*00

0,000000000000000*00

0,0000000 0 0 0 OJ 000*00

0,29a76523400000D»01

0,2''0765234000000»0l

0,29e76523400000D«Ol

T729B76525iro^JOO ODiinr

0,296765234000 0 00-01

"072987¥52T5W0 0 OU^T

•0,254396621000000*03

0,254396621000000*03

nr,25«1^662T? 0 OO OD * 0 J

•0,25439662 10 0 00 00*03

•0,254396621000000*^1

•0,254396621000000*03

II-C-13
EACH CROUP~SHtmCO BE TIJOfTHrSL EXCEPT

~ FOK THE SIGNS OF THE FIRST TWO LINES

•0, 444000 oooooooo^^oe

•0,444000000 0 00000*08

0,3fl7865g99l023aD«05

0, 444000000000000^08

qj^444000 000000 O00»08

0, Ja7865299l023ttD«05

•0, 347665299 10234D«05

•0,3478652991 023aD"Ob

«0, 347665299 102340-05

0,44400006600600D»08

0,44400000 0 0 op 0 00^0

8

wO ,3478652991 02340" 05

•0, 147937824967000*07

0,147937824967000+07

0,147937824967000*07

0, 147937824967000*07

0, 147937824967000*07

0,29e765234000000>01

"tTi 2987652340 OOOTJO»T1

•0,298765234000000«01

•0 ,29876523400 00 OO-Ol

• 0, 296765234000000*0

1

•0,298765234000000»0r

•0,147937824967000*07

•0,147937824967000*07

0, 14793782496^000+07

0,147937824967000*07

0,147937824967000*07

0,29e765234000000«0l

0,2987652340 00000*01

•0, 29676523400 OOOO-Ol

•1X,296765234U\Ja0&0»DT

•0, 298765234000000*01

•0,298765234000000*01

0,986632710000000*03

0,986632710000000^03

• 0 ,9666327 to 000 000*03

•0, 966632710000000*03

•0, 9866327 10000000»0

3

•0,986632710000000"03

0,123456769101100*08

0,1234567891011017*08

- •0,123456789101100*08

" 1234567891 0U0O*(r8

•0,123456769101100*08

•0,123456789101100+08

II-C-14
CASGN - (015) COMPLEX ASSIGNMENT

STATEMENTS

ASA REFS. - 5,l,i,k 7.1.1.1

RESULTS

LINE 1 OF EACH GROUP IS

HOLLERITH INFORMATION

VALUES IN A GROUP SHOULD BE THE SAME

0.222E+02

.222E+02

.222E+02

.222E+02

.222E+02

0.3956E+03

.3956E+03

.3956E+03

.3956E+03

.3956E+03

0,123't567E + 05

-.123't567E+05

-.123«t567E + 05

-.123'f567E + 05

-.123't567E + 05

0.89E+01

.89E+01

.89E+01

.89E+01

.89E+01

-0.263512E + 0i* -.263512E + 0'* -.263512E + 0it -.263512E + 0'f -.263512E + 0tf

O.lE+02

.lE+02

.lE+02

0.3E+03

.3E+03

.3E+03

-0.5E+02

-.5E+02

-.5E+02

0.71E+02

.71E+02

.71E+02

0. 3333E + 02

.3333E+02

.3333E+02

. 3333E + 02

.3333E+02

0.'*1067E + 0'» .<»1067E + 0«t .'fl067E + 0tt .'fl067E + 0'» .£tl067E + 0«*

-0. 123<t567E + 0'» -.123«t567EfO'f

-. 123tt567E + 0tt -. 123«+567E + 0't 123«»567E+0'f

-0.91E+01

-.91E4-01

-.91E+01

-.91E+01

-.91Ef01

0.'t621E + 02

.'621E+02

.'621E + 02

.'621Et02

.tf621E+02

0. 2E+02

.2Et02

.2E+02

.'E + 0'* .ttE + O**

-0.6E+03

-.6E+03

-.6E+03

-0.92E+02

-.92E+02

-.92E+02

-0.883E+03

-.883E+03

-.833E+03

O.lE+02

. 1E+ 02

.lE+02

0.200 2E + 0't .20 0 2E + 0tt .2002E + 0'f

0.U61E+03

.'61E + 03

.t»61E+03

•0.21E+02

-.2iE+02

-.21E+02

O.lE-02

.lE-02

.lE-02

0.562E+00

.5S2E+00

.562E+00

-0.3E + 00 -. 3E + 00

-.3E+00

O.itE + 00

.i+E + OG

.itE+GO

•0 .95EtOO

-.95E+00

-.95E+00

0 .16ft239E-01

.16«»239E-G1

. 16if239E-01

0.21E+00

.21E+00

.21E+00

0. 3398E+00

.3398E+00

.3398E+00

-0.6E+00

-.6E+0G

-.6E+G0

G. l'+l'»E + Oit .It^l'^E + O'f

. ItflttE + Oi*

0.562E+03

.562E+03

.562E+03

0. 983E+03

-.983E+03

-.983E+03

-0.165E+03

-.165E+03

-. 165E + 03

0. 122E+03

.122E4-03

.122E+03

0.2E-02

. 2E-02

,2E-02

0.562E+00

.562E+00

.562E+00

-0. 3333333E + 0 0 -. 3333333E+00

-. 3333333E+00

0.'*'»5E+00

-.i^ifSE+OO

-.ififSE+OO

0.95E+00

.95F+00

.95E+00

G.36E+00

. 36E + 0 0 .36F1-00

-0 . 3963E + 00

-,3963E+00

-. 3963E+00

0 . 3398E+00

.3398E+00

. 3398E+00

0.6E+00

.6E+00

.6E+00

II-C-15
O.OE+00

0.

.<+562311E + 07

.t»t»9E + 06

0.22223E+-07

.22223E+07

0.3E+01

.3E+01

.3E+01

cgsres^fSE + OB

.98765t+3E+05

.98765't3E + 05

o.eE-o**

.6E-0'+

0.1't2E + 03

.l't2E + 03

.l'+2E + 03

0.36923E+06

-.36923E+06

-.36923E+06

0.21E*03

.21E+03

.21E+03

•0.5959E + 03

-.595gE+03

-.5959E+03

0 .1E+ 01

.lE+01

.lE+01

•0.2E + 01

-.2E+01

-.2E+01

0.i»92E + 01

.tt92E + 01

,'t92E + 01

O.lE+01

. lE + 01

0. 789'»53E + 06

.789't'53E + 06

0.25E + 0«» .25Ei-0t»

0. 3332E+05

.3332E+05

0.3E+01

. 3E+01

. 3E+01

0. 8765'f 32E + 0't

. 8765'+32E + 0«t

. 3765't32E + 0't

0.55555E-02

,55555E-02

.55555E-02

0.77E+07

.77E+07

. 77E + 0 7

0.2667E+02

.26f)7E+02

.2667E+02

-0.23'tE+03

-.23t»E+03

-. 23itE+03

-0.21E+03

-, 21E + 03

-.21E+03

0.'t967E + 03

,'+967E + 03

.'967E + 03

0. lE+01

. lE+01

.lE+01

-0. 2E+01

-.2E+G1

-.2E+01

-0. 6527E + 0'f -.6527E+0'*

-.6527E + 0't

-0.7371E+Q6

-.7371E+06

-.7371E+06

0.it77it47E + 07

,it77U47E + 07

,i*774'i7E*-C7

-0.82t6200E-02

8tt6200E-C2

-.8i*6200E-02

0 .770 OOOE + 09

. 770 000E + Q9

.770000E+09

r.l33'+00E + C5

.133tfOOE + C5

.133£+00E + 05

0.300000E+06

. 300 OOOE + 06

. 30 0 OOOE + 06

0.299E-G1

.299E-01

.299E-01

0.1itl9E+06

.litigE + 06

.l«fl9E + 06

C.76E-01

.76E-G1

.76E-01

0 . 31E+02

.31E+D2

.31E+02

•0.728E+05

-.728E+05

-.728E+05

0.6E+07

.6E+ 07

.6E+07

-C , 791 '+E + 07

,791i*E + 07

,791'«E + 07

,lE + 02

,lE + 02

,lE + 02

0.998E-01

.998E-01

.998E-01

-0. 9362'*E + 00

-.9362'»E + 00

-. 9362'»E + 0Q

0. 13330E+03

.13330E+03

.i3330E+03

0.81625E+08

. 81625E+03

. 81625E+08

0. 37900E+06

. 37900E+06

.37900E+06

0.30000E+06

.30000E+06

. 30000E+06

0.299E+02

.299E+02

.299E+02

0.1'tl9E + 02

.lt»19E + 02

. 1U19E+02

0.987E<-03

.987E+03

.987E+03

0.'t659E + 05

.'659E + 05

.'+659E+05

-0. 93296E+08

-. 93296E+08

-.93296E+03

-0.6E + 07

-.6E+07

-.6E+07

0.16E+07

. 16E+07

.16E+07

O.lE+02

. lE + 02

.lE+02

U- C-16
0.2E-01

-.2E-01

-.2E-01

0.3E-02

.3E-02

.3E-02

O.«tE+05

-.'tE+05

-.k£*Q5

0.5E+06

.5E+06

.5E+06

•0.6E-05

-.6E-05

-.6E-05

0.39393E+01

.39393E+01

.39393E+01

0.9E + 00

.9E+00

.9e+oo

0.352E+09

.352E+09

.352E+09

0.1'f7626E + 00

.l't7626E + 00

.l'f7626E + 00

C.9E-07

.9E-07

.9E-07

0.13E-0if

.ISE-O**

.13E-0U

0.77E+00

.77E+00

.77E+00

0.878E+01

.873E+01

.878E+01

-0.9797E+02

-.9797E+Q2

-.9797E+02

-0.2E-01

-.2E-01

-.2E-01

-O.SE + O** 3E + 0'* -.3E + 0'*

0.«fE-03

.'fE-03

-0.5E-0't

-.5E-0'*

-.SE-Otf

0.6E+07

.6E+07

.6E+07

0.62E*0tf

. 62E + 0'* .62E + 0«»

0.765765E+03

.765765E+03

. 765765E+03

0.35E+03

. 35Ef 0 3

. 35E+0 3

0.891E-ltf

. 891E-l't

.agiE-ltt

0.9999E+08

.9999E+08

.9999E+08

0.13E-0'+

.13E-0'f

.13E-0'*

0.77E+00

.77E+00

.77E+00

-0.878E+01

-.878E+01

-.878E+01

0.9797E+02

.9797E+02

.9797E+02

-O.lOlOlE+15

-.lOlOlE+15

-.lOlOlE+15

0.68E+12

.68E+12

.68E+12

0.798E-03

.798E-03

.798E-03

0.32'+7E + 20

-.32't7E + 20

-.32'»7E + 20

-0 .'3599E-19

-.'3599E-19

-.if3599E-19

0.6E-09

-.6E-09

-.6E-09

-0.9119E+06

-.9119E+06

-.91igE+06

0.39'»26E + 02

.39't26E + 02

.39'»26E + 02

0.U5E-12

.'5E-12

.'5E-12

O.i*793E+06

.'793E + 06

.i»793E + 06

.t»793E + 06

0.3682E+01

.3682E+01

.3682E+01

.3682E+01

-0.2571E+09

-.2571E+09

-.2571E+09

-.2571E+09

0.1«*60E + 00

.lif60E + 00

.I'+eOE + OO

.l^tSOE + OO

•0. lOlOlE+15

-.lOlOlE+15

-.lOlOlE+15

0.357628E+00

.357628E+00

. 357628E+00

0. 76'*«t«tE + 0 0 .76«ttf'»E + 0 0 .76't'»ttE*0 0

•0.259'tE + 05

-.259'»E + 05

-.259«»E + 05

•0.12E-0i»

-.12E-0'*

-. 12E-0tf

0. 6E+09

-.6E+Q9

-.6E+09

0.9119E-06

.9119E-06

.9119E-06

•0. 39't26E-02

-. 39'»26E-02

-.39it26E-02

0.<f5E + 12

.'+5E+12

.'5E + 12

0.3it79E + 06

. 3«+79E + 06

. 3't79E + 06

.3«f79E + 06

0.8236E+02

. 8236E + 02

. 8236E4-02

. 8236E + 02

0. 1752E+09

. 1752E+09

.1752Et09

.1752E+09

•0.106ttE + 05 -. 106'»E + 05

-.106«»E + 05

lOettE+OS

II-C-17
n.iftnnnnnF+nn EACH GROUP SHOULD BE

.16it2390E-01 . 36000 OOE + 00 FOR THE SIGN OF THE FIRST TWO LINES

•* ^FinnnnnF jDUUUUUCtUu + nn

1 p> L. p "^Q n F— n 1 . 7P>nnnnnF-i-nn OOUUUUUtlt'UU 0 .30UD000Et03

.^P>f!nnnnF + nn •JUUUUUUt+OO

.ip.£i.?iqn p— n 1 • 7P>nnnnnF4-nn ODLIUUUUC'UU • OUU UUUUt + U3

.oUUUUU0c+U3 — n n n n n (1 P * n £i Uwt^^JcOXXC'U f n 7 « Qiiti OF + n .oUUUUUUtTUj — £1 n n n n n n F 4- n £i

•. Ut; HI/OCOXXC'U c,?-?i 1 P4-n7f • 7ftQi»'^'?nF4-nfi .oUUUUuUt+Uo

-7ft9a'5"^nF + nF.

• USfiP^I 1 F + n7 . 7R9(*'5 flF + flft «u • pUU Uuuut + ljt: — n-P>nnnnnnF4-n7

. 7Aci<»s'^nF + nPi .t>UuUUUuc cnnonnncxno + U(i • OU'JUU uuc~uo

.7ftQ{iti7nF + nPi .500 OOOOE + 02

• OUUuU 'JuCt"UO

fi-fifirinnnfi f- n n.fninnnnnF U.VJUUUwiJUU.<U( + ny .50 0 OOOOE+02

-.600 OOOOE-05 .6000000E+07 .5000000E+02 .6000000E+03

-.600 OOOOE-05 .6000000E+07

-.6000000E-05 .6000000E+07 0 .770 OOOOE + 00 0. 7700000E+00

-.6000000E-05 .6000000E+07 .7700000E+00 .7700000E+00

-.60G0000E-Q5 . 60000 OOE + 07 .770 OOOOE + 00 -.77000 OOE + 00

.7700000E+00 -.77000 OOE + 00

0 .9119000E + 06 0.9119000E-06 .770 OOOOE + 00 -.77000 OOE + 00

-.9119000E+06 . 91190 OOE-06 .770 OOQOE + 00 -.77000 OOE + 00

-.9119000E+06 .9119000E-06

-.9119000E+06 .9119000E-06 0 .500 OOOOE + 06 -o.sooooonE-oi*

-.91igOOOE+06 .9119000E-06 .500 0000E+06 -. 50 0 00 0 0E-0'*

-.9119000E+06 .9119000E-06 .500 OOQOE + 06 . 50 0 00 00 E-0'+

-.50aOOOOE + 06 .50 000 0CE-Otf

-.50 0 00 0 0E + 06 .50 0 00 OOE-O^t

-. 50 0 00 00E+06 . 50 000 OOE-Oit

0 . '920000E + 01

.it92 000QE + 01

-.ti92 00 0 0E+01

-.'9200 00E + 01

-.<+92 00 0QE + 01

-.'9 2 00 0 0E+01

-0. 65270 00E + 0'+ -.65270 OOE + OV

. 65270 OOE + Oit .65270 OOE + Oi* .65270 OOE + Oif

. 65270 OOE + Oi*

-0.6000000E-05

-.60 0 OOOOE-05

.6000000E-05

.60 0 OOOOE-05

. 6000000 E- 05

.600 OOOOE-05

0 . 60000 OOE + 07

.6000000E+07

-.6000000E+07

-. 60000 OOE + 07

-. 50000 OOE + 07

-. 60000 OOE + 07

0 .'t«f'*'»QOOE + 0'f ,Utt'tit0 00 E + 0'+ -.£t£t(+£tOOOE + 0't

-,ititit/+OOOE + Oit -.«»tti»'fOOOE+0'*

0.5555500E-02

.5555500E-02

-.5555500E-02

-.5555500E-02

-. 55555 OOE-02

-.5555500E-02

II-C-18
-0 .3692300E + 06

-.3692300EtO&

.3692300E+06

.3692300E+06

. 3692300E+06

.3692300E+06

-0. 23itOO OOE + 03

-.23«f 00 OOE + 03

.23^0000E+03

.23'»OOOOE + 03

. 23<*00 OOE + 03

.23'»O0 00E + 03

''ORTRAN TEST PROGRAMS

PREPARED BY NATIONAL BUREAU OF STANDARDS

For use on large Fortran processors

IN accordance with ASa FORTRAN X3, 9-1966

VERSION 3 PART 3

SAMPLE COMPUTER, FORTRAN COMPILER LEVEL

OPERATING SYSTEM VERSION

DATE, INSTALLATION NAME

LASGN - (016) flSSlSflMENT OF

LOGIGAL VARIABLES

ASA REFS. - 7.1.1.2

RESULTS

ALL ANSWERS BELOW MUST BE TRUE

ALL ANSWERS BELOW MOST BE FALSE

F

F

FF

F

F

F

F

F

F

F

F

F

F

F

n-c-19
INTRL - (017) ASSIGN INTEGER, REAL, AND

DOUBLE PRECISION VALUE'S

ASA REFS. - 7.1.1.1. 5.1.1.2

RESULTS

ASSIGN INTEGER VARIAiBLES

1 - TO REAL VARIABLES

111.0

111.0

-1111.0

-1111.0

-11111.0

-11111.0

1.0

1.0

2 - TO DOUBLE PRECISION VARIABLES

-O.lllllD 05

-.111110+05

0.10 01 * .10+01

3.1110 03

.1110+03

-0.11110 Qk * -.11110+0i»

ASSIGN INTEGER CONSTANTS

1 - TO REAL VARIABLES

-2222.0

•2222.0

222.0

222.0

-22222.0

-22222.0

2.0

2.0

2 - TO DOUBLE PRECISION VARIABLES

0.2D 01 *

. 20+01

-0. 222220 05 * -.222220+05

-0. 2222D O** * -.2222D + B'*

0.222D 03 • .222D+03

ASSIGN BASIC REAL CONSTANTS

1 - TO INTEGER VARIABLES

3

3

3

3

-3

-3

2 - TO DOUBLE PRECISION VARIABLES

0.33333D 01

. 33333D+01

0. 33333330 01 • .33333330+01

-0.3333333D 01 * -.33333330+01

-0. 3333330 01 * -.3333330+01

ASSIGN REAL VARIABLES

1 - TO INTEGER VARIABLES

*

II-C-20
2 - TO OOUBLE PRECISION VARIABLES ASSI&N OOUBLE PRECISION CONSTANTS

-.'''D«-02

'i»t*i*i*i*0 02 *

Q.kkkkkU 02 *

,1*1*1*1*1*0*0 2

a, 1*1*1* I* 02 *

,i*i*i*ki*D*OZ

ASSISN OOUBLE PRECISION VARIABLES

1 - TO INTEGER VARIABLES

5555

5555

5

-5

-5

-5

2 - TO REAL VARIABLES

-0.5555556E 01

-.5555556E+01

-0.5555556E 01

-.555555&E+01

0.5555556E 01

.5555556E+01

0.555555E Qt*

. 555555E + 0<»

1 - TO INTEGER VARIABLES

6 •

6

-6

-6

-6

6666

6666

2 - TO REAL VARIABLES

0.&666667E It* * .6666667E1-14

(I.66666E 01 * .66666E4-01

-0.6666&6&E 01 * >.&66666&E^01

-0.6666667E 01

-.6666667E+01

ALL TEST OUTPUT SHOULD BE CHECKED

AGAINST THE ASTERISKED () FIGURE

HHICH PRECEDES IT

n- C- 21
UGOTO - (020) UNCONDITIONAL GO TO

STATEMENT

ASA REFS. - 7.1.2.1.

1

RESULTS

1

2

3

I*

5

7

8

THIS TEST IS SUCCESSFUL ONLY IF THE

NUMBERS LISTED ABOVE ARE SEQUENTIALLY

IN ORDER FROM 1 TO 8

AGOTO - (021) ASSIGN AND ASSIGNED

60 TO

ASA REFS. - 7.1.1.3 AND 7.1.2.1

RESULTS

1

2

3

I*

5

6

7

8

9

10

11

12

13

ik

15

16

17

18

19

20

THIS TEST IS SUCCESSFUL ONLY IF THE

NUMBERS LISTED ABOVE ARE SEQU ENTI ALUY

IN ORDER FROM 1 TO 20

II-C-22
CGOTO - (022) COMPUreo GO TO

ASA REF. - 7.1.2.1.3

RESULTS

1

2

3

5

6

7

8

9

10

11

12

13

Ik

15

16

17

18

19

20

THIS TEST IS SUCGES.SFUL ONLY IF THE

NUMBERS LISTED ABOVE ARE SEQUENTIALUY

IN ORDER FROM 1 TO 20

ARBAO - (030) BASIC ADDITION

ASA REF. - 6.1

RESULTS

INTE3ER ADDITION

TEST 1 0

TEST 2 0

1 CO 1 3 0

TEST it 0

TEST 5 0

TEST 6 0

REAL ADDITION

TEST 7 3.0

TEST 8 0.0

TEST 9 0.0

TEST 10 0.0

TEST 11 0.0

TEST 12 3.0

ALL ABOVE ANSWERS SHOULD BE 0 FOR

THIS SEGMENT TO BE SUCCESSFUL

II- C- 23
ARFAO - (031) O.P. ADDITION

ASA REF. - 5.1

RESULTS

0.

0.

0.

0.

0.

THE 5 ANSWERS ABOVE SHOULD BE 0 PLUS'

OR MINUS AN ERROR FACTOR OF 0. 10-13

ARBSB - (032) BASIC SUBTRACTION

ASA REFS. - 6.1

RESULTS

TESTl INTEGER SUBTRACTION

0

0

0

0

0

TEST2 REAL SUBTRACTION

0.0

0.0

0.0

0.0

ALL ABOVE ANSWERS SHOULD BE 0 FOR

THIS SEGMENT TO BE SUCCESSFUL

1/

ASA R EF , m 6,1

0,00000000000^00

0,00O0O00O0OU*0O

0,000000000004-00

O,000OO000OOD<»0O

0,0000000000U*00

0,00000000000^00

O.OOOOOOOOOODiOO

0,OOOOOUOOOOD*&0

O.OOOOOOOOOOD^OO

THE ANSWERS ABOVE SHOULD BE 0 PLUS

OR MINUS AN ERROR FACTOR OF 0,ID»13

ARBAS • (03«) BASIC ADDITION AND

SUBTRACTION

ASA REF, • 6,«

RESULTS

-TgymNT t GER ADO AND SUB T

tr

0

g

0

T«T2 REAt. AOU AND SOBTIT^

0,0

-OtO"

0,0

a,o

Attr-ABOVE ATJSWEHS SHOULD BC 0 FOH"

THIS SEGMENT TO BE SUCCESSFUL

n-C-24
fortran test programs

prepared by national bureau of standards

for use on large fortran processors

in accordance with asa fortran x3. 9-1966

version 3 part h

sample computer, fortran compiler level

operating system version

Date, installation name

ARFAS - (035) O.P. AOO AND SUBTR

ASA REF. - 6,1

RESULTS

0.

0.

0.

0.

-.2067951531D-2i»

THE ANSNERS ABOVE SHOULD BE 0 FOR

THIS SEGMENT TO BE SUCCESSFUL.

VALUES WITH EXPONENTS LESS THAN

10»»<-1'») ARE CONSIDERED ZERO

ARBMI - (036) INTEGER MULTIPLICATION

ASA REF . - 6.1

RESULTS

0

0

0

0

0

0

0

ALL ABOVE ANSWERS SHOULD BE 0 FOR

THIS SEGMENT TO BE SUCCESSFUL

ARBMR - (037) REAL MULTIPLICATION

ASA REF. - 6.1

RESULTS

0.0

0.0

0.0

0. 0 0.0

0.0

0.0

ALL ABOVE ANSHERS SHOULD BE 0 FOR

THIS SEGMENT TO BE SUCCESSFUL

ARhMO ^(038) D,P, MULTIPHCATION

ASA KtF, •* 6.1

^TtftTS

COOOOOOOOOOP^OO

0,00000000000^00

O.OOOOOOOOOOD^OO

T.OOOOOOOOOOO+OO

0,00000000000*00

0,00000000000*00

0,00000000000*00

0,00000000000*00

THE ANSNERS ABOVE SHOUlO BE 0 FOR

THIS SEGMENT TO »E SUCCESSFUL

n-C-25
I

ARUPV • {039) INTEGER AND HEAL - • AR8EX - (.atll l #A-S]-C- -£J(a£LN£NJ UI ION.

DIVISION

ASA a£flS,. - 6.1

ASA HEF, m 6.1

RESULTS

RESULTS - INTEGER BY INTEGER

TESTl INTtGER DIVISION

1} 0 0

0 0. — - 0 0

0 — - Q - -- —, _ - 0 — - - - - — „ —

HFAI HV TNT. RPAI RV RTAI

TESTS REAL DIVISION

-- - - —

-

- 0,0

0,0

0,0 0.0

" xf,tr- - - - - -0,^

0,0 0 ,

0

0.0 o.a —

0,0

ALL ABOVE ANSWERS SHOULD BE 0 FOR f THIS SEtJMtNT TO BE SUCCESSFUL J. ALL A^iJvL -ANSWE-RS 4ii0UL0-^^£ 0 FOR- -

- 1 THIS SLGMENT to BE SUCCESSFUL

ARFEX - (0'^2) FXPONEMT I AT I ON

ARFOV - (O^O) O.P. DIVISION

A 5 A f?EF , - A . 1 ASA REF. - 6.1

RESULTS

RESULTS

, oooooooooo

0 . ,0000000000

0 .

. OOOOOOOOOO

0. . 0006000000

0.

0.

.oooooooooo

0.

The answers above should be 0 fop

This segment to be succEsSEUt.

THE ANSWERS A80VE SHOULD BE 0 FOR V;>LUES with EXPONEWTS LESS THAN

THIS SEGMENT TO BE SUCCESSFUL 1 10»»(-1H) ARE CorjSIDERED ZERO

II- C-26
• (043) HIERARCHY^ PARENTHESES

ASA Hbl'S, • t ,1 AND 6.4

RESULTS

TiST I 0

TEST 2 0

TEST S 0

TEST 4 0

TEST 5 0

TEST 6" 0

TEST 7 0

0

0

TE9T 0

V 0

0

0

TEST 10 0

0

0

u 0

0

0

TEST IZ 0

0

0

0

0

0

0

TEST 13 0

THE ANSMERS

0

ABOVE SHOULD BE 0 FOR

TWIS SEGMENT TO BE SUCCESSFUL

SBB67 - (050) SUBSCRIPTS FOR INTEGER

AND REAL ARRAYS, V, K

ASA REF. 5.1.3

RESULTS

0

0.0

0

0

0.0

0.0

THE ANSWERS ABOVE SHOULD BE 0 FOR

THIS SEGMENT TO BE SUCCESSFUL

SBBkS - (051) SUBSCRIPTS FOR INTEGER

AND REAL ARRAYS, V+K, V-K

ASA REF. 5.1.3.3

RESULTS

0

0

0

0.0

0.0

0.0

THE ANSWERS ABOVE SHOULD BE 0 FOR

THIS SEGMENT TO BE SUCCESSFUL

II-C-27
SB613 - (052) SUBSCRIPTS INTEGER AND

REAL, C*V, C*\l-Kt C»V+K

ASA REF. 5.1.3.3

RESULTS

rOKTRAN TEST PROGRAMS

PKEPAREO 6Y NATION.AL BUREAU OF STANDARDS

FOR USE ONf LARGE FORTRAN PROCESSORS

IN ACCORDANCE WITH ASA FORTRAN X3.9-J96i

0

0 VERSION 3 PART 6

0.0

0.0 SAMPLE COMPUTER, FORTRAN COMPILER LEVEL

OPERATING SYSTEM VERSION

0

0

• DATE, INSTALLATION NAME

0.0

Q.O

0

0.0

THE ANSWERS ABOVE SHOULD BE 0 FOR

THIS SEGMENT TO BE SUCCESSFUL

SIMIF - (OBM) SIMPLE AMTH, IF AND LOGICAL IF

ASA REF. - 7. 1 .2.2

7.1.2.3

K t b U L 1 b

SBF17 • 10531 SUBSCRIPTS FDR D-P

ARRAYS, ALU FORMS

MOM r^cr, w jflf^fj

T

RESULTS

0,000000*00

0,000000*00

0,000000*00

0.000000*00

THt ANSWERS ABOVt^ SHOULD BE 0 FOR

THIS StGHENT TCT Bt' SUCCtSSFUU ^

^ The ten ANSlftERS ABOVE MUST BE TRUE

II-C-28
IFABS - I055» INTRINSIC FUNCTIONS—

ABS, lABS (ABSOLUTE VALUE)

ASA REFS. - 8.2

RESULTS

0.0

0.0

0.0

0.0

0

0

0

THE ABOVE ANSWERS SHIOULO ALL BE 0 FOR

THIS TEST SEGMENT TO BE SUCCESSFUL.

IFSGN - (058) INTRINSIC FUNCTIONSSIGN, ISIGN (TRANSFER OF

ARGUMENT SIGN)

ASA REF. - 9.2

RESULTS

0.0

0.0

0.0

0.0

0.0

0

0

0

0

IFFLT - (056) INTRINSIC FUNCTIONFLOAT

ASA REF. - 8.2

RESULTS

THE ABOVE ANSWERS SHiOULO ALL BE 0 FOR

THIS TEST SEGMENT TO BE SUCCESSFUL.

0.0

0.0

0.0

THE ABOVE AhfSWERS SHOULD ALL BE 0 FOR

THIS TEST SEGMENT TO BE SUCCESSFUL.

IFFIX - (057) INTRINSIC FUNCTION--

IF I X

ASA RF.F,

RESULTS

8.2

0

0

0

Q

0

0

THE ABOVE ANSWERS SHOULD ALL BE 0 FOR

THIS TEST SEGMENT TO BE SUCCESSFUL.

iFDAB - (059) Intrinsic function--

OaBS (ABSOLUTE VALUE OF

A 0,P. ARGUMENT)

ASA REF. - 8.2

RESULTS

. 0000000000

. 0000000000

. OOOOOOOOQO

.0000000000

The above ANSWERS SHOULD ALL BE 0 FOR

This test segment to be successful

II-C-29
IPTRN w C060) INTRINSIC FUNCTIONp-

^^'^I' tNTf IpINT (TRUNCATION)

ASA REF, • 8,2

RESULTS

0^

0«0

. 0,0

0,0

ENt? OF ATNT TEST

0

0 "

0

END OF INT TEST

0

0

0

END OF lOINT TEST " ALU ABOVE ANSWERS SHOULD BE 0 FOR THIS

TEST SEGMENT TO BE SUCCESSFUL

IFMOD - (061) INTRINSIC FUNOTION—

AMOD, MOO (REHAIN0ERIN6)'

ASA REF. - 8.2

RESULTS '

o.a

0.0

0.0

0.0

END OF AMOO TEST,

0

9

0

0

END OF MOD TEST.

ALL ABOVE ANSWERS SHIOULO BE 0 FOR THIS

TEST SEGMENT TO BE SUCCESSFUL.

II-C-30
FMAX - (0«2) INTRINSIC FUNCTIONS-- • AMAXO.AMAX 1 ,MAXO, MAXl.OMAXi

SA REF. - 8.2 !

1

j FSULTS j

EST OF AMAXO

.0

.0

.0

.0

.0

.0

.0

.0

.0

• 0

EST OF AMAX1--

.0

.0

.0

END OF 2-ARGUMFnT TFST,

*0

.0

• 0

END OF 3-AR6UMFNT TEST,

»0

.0

END OF »»- OR 5-ARGUMEnT TEST,

i

END OF 2-AR6UMENT TEST.

END OF 3-AR6UMENT TEST,

END OF H- OR 5-ARGUMENT TEST,

Test of MAXO--

0

0

0

0

END OF

0

0

END OF

0

0

END OF

TEST OF MAX1--

0

0

c END OF

0

0

END OF

0

0

END OF

TEST OF 0MAX1--

.0000000000

, 0000000000

•oooooooooo

,0000000000

END OF

, OOOOOOOOOO

.OOOOCDOOOO

, OOOOOOOOOO

END OF

, OOOOOOOOOO

, OOOOOOOOOO

END OF

2- AR6UMENT TEST,

3- ARGUMEnT TEST,

M- OR 5-argument test,

2- argumfnt test.

3- argumEnt test,

M- OR 5-argument Test.

2- AR6UMENT test,

3- argumEnt test.

or 5-ar6ument test,

The above answers should all be o for

This test segment to 6e successful.

II-C-31
IFMIN m t063) INTRINSIC FUNCTIONS*"

AMIN0,AMIN1,MIN0,MINI,DMIN1

TEST OF MINI i 0 i ASA REr, m 8,2 •! — .

0

2.ARGUMENT TEST,

0

RESULTS

TEST OF AMINO

0,0 ^

END OF 3.ARGUMENT TEST.

0 ,

0.0

jr- 0

0

END OF gnARBUMENT TEST,

0.0

"END OF 4 OR 5-ARGUMENT TEST,

0,0

END OP 3-AR6UMENT TEST.

TrST OF DMINJ

0,00000000000*00

0,0

0.0

END OF « OR 5»ARGUMENT TE5T^

rt HAWWWWWWWwft A . U , uUuO0O00 0 0U40O

0 n 0 n n n 0 n n n n n X, n n END OF 2-ARGUMENT TEST,

0,00000000000-t-OO

TEST OF AMINJ

0,0

0,00000000000*00

END OF 3»ARGgMENT TEST,

0,0

0,0

triiO^oootroootrtxo*0o^

0,00000000000*00

0,0

END OF 2»ARGUMENT TEST,

Aft "

0,0

0,0

END OF ^ OR BwARGUMENT TEST,

THE ABOVE ANSWERS SHOULD ALt BE 0 FOR

THIS TEST SEGMENT TO BE SUCCESSFUL,

0,0

END OF 3»AR(iUMENT TEST,

0,0

0,0

EW~aT^a OR 5-HRGUHENT TEST,

TEST U¥ HINO

0

0

0

IFD5G • (06a) INTRINSIC FUNCTION—

DSI6N (TRANSFER OF SIGN)

KSA REFV • "8 , 2

^

n t w WW 1

0,O000O00OO000Q00O0OD*00

0

END OF 2-ARGUMENT TEST,

0

0

END OF 3.ARGUMENT TEST,

0

" 0

END OF a OR 5«»ARGUMENT TEST,

0 , 0 oooouTJMT^CRRro^ooDTuir

0,0000000000000000000*00

0,0000000000000000000*00

" ^XX^^WJVr SN5WERF"SHUXUn3 FT T-FUR TKiy ^ TEST SEGMENT TO BE SUCCESSFUL,

II-C-32
F 0 R T R AN TEST PROGRAMS IFS6L - (066) Intrinsic function sngl

PREPARED BY NATIONAL BUREAU OF STANDARDS

OBTAIM MOST SIGNIFICANT

OF CP. ARGUMENT.

FOR USE ON LARGE FORTRAN PROCESSORS ASA REFS. .' 8.2

IN ACCORDANCE WITH ASA FORTRAN X5. 9-1966 RESULTS

VERSION 3 PART f, Lime A LIME B . '4674R7'49 1 60767 + 0O3

L I njE A -.396fi95Hn23R76'4 + co:^

SAMPLE COMPUTER » FORTRAN COMPILER LEVEL Lime B -.39A89540 10P095I + 003

OPERATING SYSTEM VERSION Line A . 333 3'<9A2';5eH34-t-r)nO

DATE» INSTALLATION NAME

L I ME B , 33333962H 1 ?.^8P + f!00

Lime A . 79379n''n'4775?e*003

Lime R . 7937908020*^ f^-t-OO?

L I ME A , M^t^M^ 1 339567 1 9 + p?0

IFDIM - (065) INTRINSIC FUNCTIONS - DIM

Line B , '4m4«<5 1 3 395*4287 + 000

ASA REF.

AND IDIM (POSITIVE DIFFERENCE)

- 8.2

Lime

L I ME

A

8

-.f66A7lP3798P67+OO0

-.^6 A 67183468 07 + 000

RESULTS l I me A -.39A09539609F.39 + on3

0.00

L I ME B -.39689539337 1 58+003

0.00

LIME

LIME

A

B

. '48 7 '<87i937797 3 + 003

,'487'487M91(!,0767+00^

0.00 L I NE B Should agree with line a

0.00

Onl y TO THE PRECISION OF A R^AL DATUM.

REMAINING DIGITS RESULT FROM OUTPUT

CONVERSION When a real value is

0

0

0

ASSIGNED TO D.P. FOR PRINTING,

0

0

ALL ABOVE ANSWERS SHOULD 8E 0 FOR

THIS TEST SEGMENT TO BE SUCCESSFUL.

II-C-33
IFREL - (067) INTRINSIC FUNCTIONREAL

ASA REF. - 8.2

RESULTS

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0

0 00 0

0 0 0 0 00 0 0 0 0 0 0 00 0 0

0 0 0 0 0.0000

GOOO

0 0 0 0 cooo

.0 0 0 0

0 0 0 0 .0 0 0 0

ALL ABOVE ANSWERS SHOULD BE 0 FOR THIS

TEST SEGMENT TO BE SUCCESSFUL.

IFIMG - (068) INTRINSIC FUNCTION - AIMA6

ASA PEF.

RESULTS

OBTAIN IMAGINARY PT

OF COMPLEX ARGUMENT

- 8.2

0.0000 0 0.00000

0.00000

0.00000

0.00000

0.00000

0.00000

0.00000

0.00000

0.00000

0.00000

0. GOOOO

0.00000

0.00000

0.00000

0.00000

0. OOGOO

0.00000

0. coooo

0. OOOQO

0. C 0 03 0 0.00000

0.00000

0.00000

ALL ABOVE ANSWERS SHOULD 8F 0 FOR THIS

TEST SEGMENT TO BE SUCCESSFUL.

II-C-34
IFDBU • (069) INTRINSIC FUNCTION • DBLE

S,P, ARGUMENT IN 0,P, FORM

ASA Hty,m B,2

RESUUTS

LINt A 0,V7t.«>625E«03

LINE B 0,97656250000000D"03

LINE A -0,1953125E»02

LINE •0,l9b3liJbOOOOOOOU-0^

LINE A 0,!»8b937'>E«0Z

LINE B 0,56593750000000D«02

LINE A •0,lOa8576E*07

LINE B •X).10ff«576000DOOOD + 07

"LINE A T,U«6880t*06

LINE B 0,lia6e600000000D4'06

A COMPARISON OF LINE A AGAINST LINE B

IS NEEDED TO CHECK THE VALIDITY OF TEST

IFCJG - (071)

ASA REFS. - 8

INTRINSIC FUNCTION - CONJG

OBTAIN CONJUGATE OF

A COMPLEX NUMBER

2

RESULTS

0. 0000000 0.0000000

0.0000000 0.0000000

0.0000000 0.0000000

0.0000000 0.0000000

0.0000000 0.00000 0 0 O.OOOGOOO 0.0000000

0.0 000000 0.0000000

0.0000000 O.OOOOOOQ

ALL ABOVE ANSWERS MUST BE 0 FOR THIS

TEST SEGMENT TO BE SUCCESSFUL.

IFCPX - (070)

ASA REF.- 8.2

RESULTS

INTRINSIC FUNCTION - CMPLX

EXPRESS TWO REAL ARGUMENTS

IN COMPLEX FORM

0.0000000

O.QOOOOOO

0. 0 000000

0.0000000

0.0 0000 00

0.0000000

0.0000003

0.0000003

0. OGOOOOO

0, 0030000

0.0000000

3. ODOOOOO

THE ABOVE ANSWERS SHOULD ALL BE 0 FOR

THIS TEST SEGMENT TO BE SUCCESSFUL.

II-C-35
IFBMS - (072) BASIC FORTRAN INTRINSIC

FUNCTIONS ACCEPT EXPRESSIONS

OF TYPE SPECIFIED IN I. F. TABLE

ASA REF.- 8.2

RESULTS

TEST OF ABS IN EXPRESSIONS - 0.0

0.0

0.0

0.0

TEST OF lABS IN EXPRESSIONS -

0

00

0

TEST OF FLOAT IN EXPRESSIONS - 0.0

0.0

0.0

0.0

TEST OF IFIX IN EXPRESSIONS -

0

00

G.

TEST OF SIGN IN EXPRESSIONS - 0.0

0.0

0.0

0.0

TEST OF ISIGN IN EXPRESSIONS -

0

00

0

COMBINATION OF ALL INTRINSIC FUNCTIONS

0.0

0.0

0

00.0

0.0

0

0

ALL ABOVE ANSWERS SHOULD BE 0 FOR

THIS TEST SEGMENT TO BE SUCCESSFUL.

IFFMS - ( 073) FORTRAN INTRINSIC FUNCTION!?

ACCEPT EXPRESSIONS OF TYPEl;

SPECIFIED IN I. F. TABLE

ASA REF.- 8,2/TABLE 3

RESULTS

TEST OF DABS IN EXPRESSIONS

0.

0.

0.

0.

TEST OF AINT IN EXPRESSIONS

0.

0.

0.

0.

TEST OF INT IN EXPRESSIONS

TEST OF IDINT IN EXPRESSIONS

TEST OF AMOD, MOO IN EXPRESSIONS

0.

0.

0

0

TEST OF AMAX0,AMAX1,MAX0,MAX1 AND DMAX

0.

0.

00.

II-C-36
ST OF AMINO, AMIN1,MIN0, MINI AND OMIN

0.

0

00.

ST OF OSIGN AND DBLE IN EXPRESSIONS

0.

0.

0.

0.

ST OF DIM AND lOIM IN EXPRESSIONS

0.

0.

0

0

ST OF SNGL,REAL,AIMAG,CMPLX AND

NJG IN EXPRESSIONS

0.

0.

0.

ST OF SOME COMBINATIONS OF ABOVE

TRINSIC FUNCTIONS

0.

0.

L ABOVE ANSWERS SHOULD BE 0 FOR THIS

GMENT TO BE SUCCESSFUL.

FORTRAN TEST PROGRAMS

PREPARED BY NATIONAL BUREAU OF STANDARDS

FOR USE ON LARGE FORTRAN PROCESSORS

IW ACCORDANCE WITH ASA FORTRAN X3. 9-1966

Ve-RSION 3 PART 7

SAMPLE COMPUTER^ FORTRAN COMPILER LEVEL

OPERATING SYSTEM VERSION

DATE' INSTALLATION NAME :

EXPON - (080)

BASIC EXTERNAL FUNCTION -EXP-

(EXPONENTIAL -TYPE REAL)

ASA REF.- 8.3.3 (TABLE k)

LINE 1 OF EACH PAIR IS

HOLLERITH INFORMATION

RESULTS

X=-16, 0 0 . 1125351 /£ 7192 59 llit5E- 06

.1125352E-06

X= -8.0 0 .335it62527902511 8388E-03

.3351+626E-03

X= -t+.O 0. 1831563888373f»1 8029E-0t

.183156'tE-Ol

X= 0.0 O.lOOOOOOOOOOOOOOOOOOE+01

.lOOOOOOE+01

X= U,0 0 .5£t598 15 00331tf«i?3908E + 02

.5i*59815E + 02

X= 8. 0 0 .29809579870U1728275E + 0i* .2980953E + 0'*

X= 16. 0 0.8886110520507872637E<-07

.8886111E+07

LINE 2 OF EACH PAIR IS THE FUNCTION

CALCULATION PRINTED TO 7 DIGITS

II-C-37
DEXPO - (081)

BASIC EXTERNAL FUNCTION -DEXP-

(EXPONENTIAL -TYPE DOUBLE PRECISION)

ASA REF.- 8.3.3 (TABLE k)

LINE 1 OF EACH PAIR IS

HOLLERITH INFORMATION

RESULTS

X = -16.0 Q.112 53 517t»7192 5911't50-06

.112535171+719260-06

X= -8.0 0 .335i+626279025113388D-03

.335't6262790251D-03

X= -/f.O 0 .1831563888373'+18029D-01

. 1831563883873'»D-01

X= 0.0 O.lOOOOOOOOOOOOOOOOOOO+Ol

.100000000000000+01

X= ^.0 0.5'+5g8 1500331'+'t23908O + 02

.545981500331«t'»0 + G2

X= 8. 0 0 . 29809579870'tl723275D + 0't .2980957g870i+17D + 0'4

X= 16.0 0 .88861 105205078726370+07

.888611052050790+07

LINE 2 OF EACH PAIR IS THE FUNCTION

CALCULATION PRINTED TO DIGITS

CZXPD m C082J

BASIC OTEKNAt, "FU N C T

1

OW -trEXP-

(EXPQNENTIAL •TYPE COMPLEX)

ASA RE.F,« 8,3,3 (TABLE U)

EXPECTED RESULT

FUNCTION RESULT

(-0,1611810E*02,»0,7330383E*01)

Oj5^500 0 000E-07 •O , 866025«E-07

0,500 00 001"' or WT.866025at*^T

(•0, l«50866E*02,»0,7330383E*0n

0,2500000E''06 -0 , ^ 330 1 27E-06

0,2500000E-06 -0 , a330 1 27E-06

{ «r, I3B I55TE4TC, • 0 , 62531 85E* OTT ' "

0, 1000000E*0b O.OOOOOOOE+00

0, lOOOOOOEwOS 0,0000000E+00

("0, 1220607E*02,».0,6283l85E + 0l)

0,5000000E'»05 0 , OOOOOOOE + 00

~ " 0 ,50 005ffOFi.O^ ~ U ,D 00 OOOOt + OD

C«'0,n5l293E + 02,»0,5235988E + 0n

0,5000000E-05 0 ,866025aE«05

0,5000000E-05 0 ,«66025aE«05

t^-O . •^3i»8Br^t , «^r5235^88E*01

)

0,2500000E-0^< 0,a330127E»0a

0,2500000E^O« 0,fl330127E"0a

C"0,92l03aOE+Ol,-0,ai88790E*01)

"0,5QOOOOOE-0« 0,866025aE»0a

wTJ^souoTJiroT-irir

^^ss^zsTfE^u

C«»0,760 0902E + 01,"0.ai88790E*OU

'»0,2bO0O0OE«03 0 , 'JSSO 1 27E-03

-0,2500000E«03 0 , a330 127E-03

T 'fC , 6^7755E^Tri ,^(r ,3TZIT593r» OT)

"0, 1000000E«<'02 0,OOO0O0OE*0O

"0,1000000E«02 0,0000000E*00

(«0,52983l7E+01,"0,3iai593E*01)

«i.0,5000000E«02 0 , 00O0OO0E*0O

.0 ,5oiyo 00 or^or ~ dvoo o o omroor

U-C-38
CEXHU (082) -CtXP-

••O.SOOOOOOEmOZ xCSbbOaSilEMOS

«0.bOOOOOOE''Oi> •0,B6602!>4t«02

C«0,<»9V57i2E*0 1, •0.20943951- +01)

•0,250000QE»01 •0,4330127E»01

•0,2b00000t«>01 -0,aiJ0U7t«01

(••0,2302585E + 0l,"0,l0«7198E + 0n

0,5000000E«01 •0.e660254Ei»01

0,5000000b"01 •0(86602b4t«01

c-u,69ii«/2E+oo,«o,io'in98E+un

0,2500000E*00 '•0,4i30l27E*00

0,2500000E4>00 •0,43301 2TE^*Tnr'

( 0,0UO0O00EiO0f O.00O000OE4-OO]

0, 1000000E4>01 O.OOOOOOOE + OO

O.lOUOOOOe^Ul 0,O000OO0E4'OO

C 0,lb094iBE'^01, O,00OOO0OE4'0OJ

0,5000000E+01

0,5000000E401

OiOOOOOOOE^OO

O.UOOUUOOE'fOO

( 0,23U2>>8bt*01f 0,lU4/lV8E4'Un

0,5000000E401

0,5000000E+Ol

0,8660254E«01

0,e66Q254E4i01

( 0.3912023E»01, 0, 104 7 l96E* 0 n

0,2500000E + 02 0 ,4330 J 27E + 02

0,2500000E<KU2 0,4330127E^02

( 0,460bl70E+0l# 0,2094395E40l)

*0,5000000E»02

• 0,5000000t + 0iJ 0,e660254E«020,Bb602&4E4'02

C y,b2l4b08fc + 01, 0,20943V5E + 0U

•0,2SOOOOO£*03 0,4330127E*03

«0,2b00000£-^0i 0,43i0l27E403

CEXPO - (082) -CEXP'

C 0,6V0//bbt + 0l, 0,il4lb93t*01) ~

«'0, 1000000E-»04 O,00O0000E»00

• O, lOOOOOOE + 04 0,OOOOOOOE4>00

( 0,tJ517193E*01, 0,3141593E + Ol)

wO.SOOOOOOEf 04 OtOOOOOOOE»00

• O.SOOOOOOEf 04 COOOOOOOEtOO

( 0,9210340E+01, 0.4188790E+01)

*0.5000000E-»04 »0 ,866025 4E»04

•0,b0O0O00E*04 -0, 86602541*04

( O,l08l978EfO2, 0,al88796E+01)

»0,2500000E»05 .»0 , 4330 1 27E + 05

••0,250 0 0 OOl +05^

,^OT01 2TE (55

( 0,ll51293E + 02, 0 ,5235988E + 0 1

)

0,5000000E-»05 »0 , 866 0254E + 05

0,5000000t+05 «0,B660254fc+05

T 0,l312236E*027~ir,52J5988t*01)

0,2500000E + 06 -0 , 4330 1 27E4'06

ff7250 0 (5^0W+TS~^, 4 J30 1 27E* 0 6

( 0,1381551E*02, 0 , 62831 85t + 0 1

)

0, 1000000E*07 0,OOOOOOOE*00

T579^9999^?E*TrS 5,O000OO0E+00

X""tr,T5^r2495E>irZ,U762B3I«5Er+0I)

0,5000000E*07 0 , 0000000E*00

0,5000000k + 07 {TTl^WffOOE+OO

f T,Tbn8J0E*02, 0 .73yOT83E*0 1

)

0,5000000E*07 0 ,e660254E+07

0,5000000E-fd7 0,8660254E*07

C 0,1772753E*02, 0,7i30383t*0l)

0,2500000E+08 0,4330l27E+08

OfRTOTf OS (T, 43JO r27E+ 0 8

U-C-39
LOGTM - (083)

BASIC EXTERNAL FUNCTION -ALOG-

(NATURAL LOG -TYPE REAL)

ASA REF.- 8.3.3 fTABLE <*)

LINE 1 OF EACH PAIR IS

HOLLERITH INFORMATION

RESULTS

X=0.125 -2.079i»<tl5'tl6798359

-2.tJ79i»'»2

X=0.25 -1.38629'»3611198906

-1.3862 J4

X=0.5 -0.6931<»7i805599*t53

-.69311*72

x=i.o Q.oaoaaooiiOQaQaooo

O.0Q03Q00

X=1.5 O.W05'*65108ia8l6'»'t

.i»05i»651

X=2.3 0.693i'»71805599'*53

.693l!»72

LINE 2 OF EACH PAIR IS THE FUNCTION

CALCULATION PRINTED TO 7 DIGITS

0PL03 - (08«*)

BASIC EXTERNAL FUNCTION -DLOG-

(NATURAL LOG -TYPE DOUBLE PRECISION)

ASA REF.- 8.3.3 (TABLE >*)

LINE 1 OF EACH PAIR IS

HOLLERITH INFORMATION

RESULTS

X=0.125 -2.079!*'»15'ti67983590 + 00

-2.Q79't'»15<»i6798D*0 0

X=0.25

X=0.3

X=1.0

X=1.5

X = 2.Q

-1.3 862 9 '36111 98 9 3 60+00

-1.38629<»36111990+ai)

-0.6931'* 7180 5599 U530*aO

-.6931(»7180559950+00

o.ooo3 3 0 uti0ojoaca

0.

0.<i0 3it&5iadia816't<tO + C0

.i»G5(t&510810816O+00

0.6 931i*7180 55 99<*53D + iJ0 .6931«»7180559950 + aa

LINE 2 OF EACH PAIR IS THE FUNCTION

CALCULATION PRINTED TO 1^* DIGITS

U-C-40
CXLOG - (085J

BASIC EXTERNAL FUNCTION -CLOG"

(NATUHAL LUG -TYHE COMPLEX)

ASA REF.- 8.3.3 (TA8LE a;

(COMPLEX ARGUMENT)

EXPEC TE D R£St^^

FUNCTION RESULT

( 0.5000UOOE-O7 »-0,H6602btE-0/'

)

1 rt 1 o £— —o. i o ^ri 'aiBE m

'O.lbllaiOE 02 'O.lO'^nibZ 01

( 0. 25000U0E-U6,-U, 43301 2rE-06)

-y^. V4^ 0 Ht> t) t

^

-t^* 10 4 /1 9 d E -0-1 -0.l4bO««>6E u2 -0.104/'lV8E 01

( 0. 1000UUOE-U5» O.OOOOOOOE 00)

« 0 . 1 i rt l5i?l t. Og O . OOOOOOOE 00

-O.lJblbblL 02 O.OOOUOuOE 00

( 0.500000UE-05» O.OOOOOOOE 00)

-^H4i^r^^^^U^Er-<^7> O.OOOOOOOE 00

-0,12?06U7E 02 O.OOOOOOOE 00

( 0.50000O0E-05. 0.8&60254E-05)

-^r-1 l-bl-^3t^"t>^!^ 9-r l0 4 /^lv « E 01

-0.11512V3E 02 O.loanvbE 01

( 0. 2500000E-04 . 0. 4 J301 gi'E-O^ ) »^, VVOJ 4 0ttE 01 0 . 1o4?l'y bC 01

-0,990J408t 01 0.104;'19ttE 01

(-0.5000UOOE-04, 0.B660254E-04)

-0 . V2103H0E 01 0 . 2o9 4i VbE 01

-0.9i:i0340E 01 0.2094395E 01

(0.2500OO0E-03. 0.43301 2/'E-U3)

-0 , 7 6 0 a9u2E 01 0 . 209 4 3V5E 01

-0,?600902t 01 0.2094395E 01

(-0, lOOOOUOE-02, O.OOOOOOOE OO)

gO .6 90/7t» St 01 U . ai tt liaw J E 01

-0.690*'7d3E 01 0.3141593E 01

(-0.5000000E-02. O.OOOOnoOE 00)

U . 529b3 i yr 01 0 . 3iai b v3E 01

-0,529b317'E 01 0.3141593E 01

CXLUt;i - (085) -CLOGCO. b0O0OOuE-02.-O,af)60?b4E -02)

- -0 . H O Ob 1 /-0-4:__a4 =JJ . Z^i 9 h 3 v b 04^

-0,460bl/UE iJl -iJ.2i;9a3ybE 0\

(-0,250000ue-0) ,-0.43301 2? t-Ol

)

-Xi,4?y9b7^-fc—01- -«^).2094J9b€- ai

-0.299b732E 01 -0.2uy439bE 01

( O,bU0()0U0E-O].-().Hh60?b'4E-Ul)

-0.2302bob€ 01 -0.104/'lv8E 01

-o,2302bbb£ 01 -o.lu'^/'lybfc oi

( 0.2b00U00E OU, -U. 43301 UO)

-(j,69Jl4-«4^- UO -»0.1«4^/49H^J- 04- -U,b931'4/'2t 00 -0.1047l9dE 01

( O.IOOUOOOE Ul, O.OOOOOOOt 00)

O.OOOOOOOE OO U,00000(M>£ OO

U.()UOO')UOE 00 O.OoOU'JuOE 00

( O.bOOOUOUE 01, O.OOOOOOOt 00)

0.1o0944aHt 01 0.0000^)OOE 00

0.1tj0943rtE 01 O.OOOOOOOE 00

( O.bOOOOOUE 01, 0.4f)60?b4t Ol)

0,23 02-ba-^- OV - 0 . t04/ 1 ygg -y-i

0.?J02bdbE 01 O.lO'+z'lybE 01

( 0.2500000E 02, 0.'4 3301 2''t o2)

0,3912U23£ 01 0.104/'lvrtE 01

0,39l2023fc 01 0.1047lybfc: 01

("O.bOOOOuOE 0^, 0.b'560:^b'4E 02)

0,46Ut)l/0L 01 -0.2o943vbt 01

0,400bl('OE 01 0.2o943vbE 01

(-0.250OO00E 03, 0.433012/'t 03)

- —0..6^i'4Aia3t -04 0,^-U9-4-d-yb4^- ai

0.62146udL 01 0.2u943sibE 01

U-C-41
CXLUii - (085) -CLOG-

(-0. lOOOOUOE" 04, y.OOOOOOOE 00) „ o . 6 V Q/^/^»f;-o+ 0^ . 3i a iS 'y j t. 0 1 0.6'yO/?':j'>L 01 U.3l4l^>V3E 01

(-O.bOOOOOUE 0<4, O.UOOOOOUL 00)

y . « ^-1- /4 y 3^e—0-1 +H JH -9^1 O.HbUl^ie 01 0.3 14159 3E 01

(-0.;)000000E 04,-0.ri660?baE 0'*) — " U^, 9*? ly^3-HtfE 01- —1> . 2u*4-4y5f

0.9«J10340L 01 -0.2094395E 01

(-0.2500000t. O^.-u.'tiJOl-^/'E 0^)

r 4 V /^Htr^- — 'j E 0 1—

O.lOblV/rtt 02 -u.i'o943vbE 01

( 0.5000000E 0b,-0.H660'>!)4E 05)

U.tHrl-?V3e 0 2 -tr.-l-0'«*H^bt 01 ~ o.lit)12'>Je 02 -0. l04/'lyHE 01

( 0.250000UE 06,-0,<4,130127L 06) — -0 . 1 3 1 ii 2 J i; ? - 'xfYiV 4^7 WH^E T)ir0.131J230E: 0? -0,l04ri9ttE 01

( O.lOOOOOOE 0/, O.OnOOOOOt 00)

r4-:*^ i 0-rt>^^^W)^~«^^ - O.ljblb^lE ')? O.OoOOOoOE 00

( O.OOOOOOOE or, O.OOOOOOOE oo)

0.^><l24?^5E 0? ^.WO OO OOE -t^O—

O.lia^a^^E 02 O.OOOOOoOE 00

( O.bOOOOOOF. O/', 0.66f)0?b4t on

- O.lollHioe 02 <>rl-&47l9de (HO.lolldlOE 02 0.l04/'lv/jE 01

( 0.2'300o0uE o<j» o.a;icjoi2c't 08)

_. . .^)^.i/(f.^/;)3£-^.2 0 ,1 o a ^-t-^fte-Oi0.1/'/'27o3E 02 U.loa^'lvaE 01

COLOS - (086)

BASIC EXTERNAL FUNCTION -ALffGlOICOMMON LOG -TYPE REAL)

ASA REF.- 8.3.3 (TABLE >*)

LINE 1 OF EACH PAIR IS

HOLLERITH INFORMATION

RESULTS

X= 0.5 -0.3010299956639811952137

-.3010300

x= 1.0 0 .ooooQooooooaoooooooooa

0.0000000

X= 2.0 0.3010299956639811952137

.3010300

X= <f.0 0 .602059991327962390'»275

.6020600

X= 8.0 0.9030899869919't35856'»12

.9030900

X = 16.0 1.2G«»11998265592«»7808550

1.20i»1200

LINE 2 OF EACH PAIR IS THE FUNCTION

CALCJLATION PRINTED TO 7 DIGITS

n- C- 42
DClOV • (087)

BABU; tXTERNAL FUNCTION •OUOCIOCCOMMON LOG -TYPE DOUBLE PHEC18I0N)

A8A REF,« 6,3,3 <TABL£ a)

LINfe I OF EACH PAIR 15

HOLLERITH TNFORMATTDN

RESULTS

X« 0,5 •0,30l02999566398U'»52l37D + 00

•0, 301029995663980*00

-

X* 1,0 0,0000000000000000000000

0,000000000000000*00

X* 2.0 0.30102999566396119521170*00

0,30l0 29V9b66jV8D*0 0

XP <»,0 0,60«!05999l327962390a27bD+00

0.602059991327960*00

Xb B.O 0.9030899a699l9<t35656412D*00

0,903069986991940*00

XPl6,0 i,20«U998265592«78065500*00

l,20«U998265590*00

LlNk 2 0^ tACH PAIH IS THE FUNCTION

CALCULATION PRINTED TO la 0I0IT8 ,

SINUS - (088)

BASIC EXTERNAL FUNCriON -SINURIGONOMETRIC SINE -TYPE REAL)

ASA REF.- 8.3.3 (TABLE ki

LINE 1 OF EACH PAIR IS

HOLLERITH INFORMATIO-N

RESULTS

x= 0.0 (i.oooaaooGouDo

0.0000000

X= 1.0 +0.8'tlif7 0 98f*80 8

.8'fli»7lu

X= 2.0 *C.909297<*26826

.909297i»

X= 3.0 *Q.l<fll2Q008a60

x= (PI) (i.oooaaofioooQo

.0003300

X= i». 0 -0.756832495308

-.7569325

X= 5. 0 -0.95892'*27it663

-.95892if3

X= 6. 0 -0.279itl5i»98198

-.2791*155

x=(2Pi} o.Qooaaoccooac

-.0033000

LINE 2 OF EACH PAIR IS THE FUNCTION

CALCULATION PRINTED TO 7 DIGITS

II-C-43
OPSIN - (089)

BASIC EXTERMAL FUNCTION -DSIN-

(TRISONOMETRIC SINE -TYPE D.P.)

ASA REF.- 8.3.3 (TABLE k)

LINE 1 OF EACH PAIR IS

HOLLERITH INFORMATION

RESULTS

x= 0.0 o.oocooaoaooGuOoooaoaoiioo

0.

X= 1.0 +a.8i»l't7098i»8y78965a66525aD+aO

.8'+l'*7098i*«0790O+0a

X= 2.0 0.909297«t26825681695396a2D+afl

.909297i»2b825680+00

X= 3.0 a.l<tll2OO08O598672221£ia7i»D+Oa

.li»112O00 8O5987D + OO

X- (PI) O.OOOOOOOaOOQOOOOOOOOOOOO

.543383291778630-21

X= tf.O -0. 756802't953079282513726'tD+aO

-.756802'+95 30793O*00

X= 5.0 -a.95892'*27i»663138'»6889315D+aO

-. 95892 '27i»663140+aO

X= 6.0 -a.279'»l5't98198925872811560*iJO

-.279'tl5«t98198930+00

x=(2Pi) o.aQooooooooooaoaoooaooao

-.12867 6658355730-20

LINE 2 OF EACH PAIR IS THE FUNCTION

CALCULATION PRINTED TO l^t DIGITS

CSICO - (090) ^

BASIC EXTERNAL FUNCTIONS -CSIN , CCOS-

(TRIG. SINE AND COSINE -TYPE COMPLEX)

ASA REF 8.3.3 (TABLE k)

FUNCTION RESULTS

TABLE VALUE

CSIN(1.,1.)

TABLE VALUE

CCOS(l,.l.)

1.298'»576

1 .298^+576

0 .8337300

.8337300

0 .63tf9639

.63tt9639

-0 .9888977

-.9888977

CSIN(X)»*2

ARGUMENT

(1 , 1/1 )

(2 , 1/2 )

(3 , 1/3 )

Ik , 1/k )

(5 , 1/5 )

(6 , 1/6 )

(7 , 1/7 )

(8 t 1/8 )

(9 , 1/9 )

(10. 1/10)

+ CC0S(X)»»2 = 1.0,0.0

RESULTS SHOULD BE l.OtO.O

1.0000000 .0000000

1.0000000 0 .0000000

1.0000000 .0000000

1.0000000 0 .0000000

1.0000000 .0000000

l.GOOOOOO .0000000

l.OOOOOOD .0000000

1,0000000 .0000000

1.0000000 0 .0000000

1.0000000 .0000000

II-C-44
C08NS • (091) OPCOS • (092)

BASIC tXTERNAl FUNCTION -CUS- BASIC EXTERNAL FUNCTION •DC08«

(TRICONOMETftIC CO$XnE -tVPE ReAL) '(TRItfONOMETRlC COSlNE .TYPE D,P,)

ASA REF,« (TABLE a) ASA REF,- 8,3,3 (TABLE 4)

LINE 1 OF EACH PAIR IS

HOllERXTH INFORMATION

LINE 1 OF EACH PAIR IS

HOLLERITH INFORMATION

RESULTS RESULTS

XB 0(0 *1, 000000000000 XB 0,0 fO. 100000000000000000000000401

1,0000000 0,100000000000000401

Xp 1,0 0,540302305668

0,5403023

XB 1,0 40,54030?TI)5F6«TyrnT4009«D40^

0,540302305868140400

XB 2,0 ••0,416146636547 Xs 2,0 •0.416146836547142386997570400

•0,4161468 •0,416146B36b4714D400

XB 3,0 •0,989992496600

•0,9899925

X= 3,0 .0, 9899924966004454572715713407)

•0,98999249660 045040 0

XB (PI) •1,000000000000 XB (PI) mO. 100000000000000000000000401

•1,0000000 •0,100000000000000401

XB 4,0 •0,6!:i3643620864

•0,6536436

XB 4,0 -0,653643620863611914639170^4^0

•0,65364362066361040 0

XB 3,0 t0,2o36o21B5463 XB 5,0 40,263662165463226264466640400

0,283662165463230400

XB 6,0 40,960170266650

0,9601703

X« 6,0 40,9601702666503660?054565D400

0,960170266650370400

XB(2PI} 41,000000000000 Xs(2PI) 40,1000 0 0 000 0 00 000 0 0000 0000401

1,0000000 0,100000000000000401

LINE 2 OF EACH PAIR IS THE FUNCTION ' LINE 2 OF EACH PAIR IS THE FUNCTION

CALCULATION PRINTED TO 7 DIGITS CALCULATION^ PRINTE:D TO 14 DIGITS

n-C-45
FORTRAN TEST PROGRAMS

PREPARED BY NATIONAL BWREAU Of 5TAM0ARDS

FOR USE ON LARGE FORTRAN PROCESSORS

IN ACCORDANCE WITH ASA FORTRAN X3. 9-1 966

VERSION 3 PART 8

SAMPLE COr^PUTER» FORTRAN! COMPILER LEVEL

J OPERATIMG SYSTEt^ VERSION

DATE' INSTALLATION MAME

XWrP^BQl't C TAN GENT -TV P E RE AH

XTNTTHIF EACH PJTITTS —

HOLLERITH INFORMATION

RESULTS

XgQt O 0,0000000000

0,0000000

Xa2,0 0,9640275601

0,9640276

Xs2,5 0,9866ia29e2

o,^^zry

XS«,0 0,9993292997

0,9993291

Xa6,0 0,9999877117

0799^9^77

XsB.O 0,9999997749

0,9999996

LINE 2 OK tiACH KAIK IS T HE FUNC T ION

CALCULATION PRINTED TO 7 DIGITS

SQROT - (095)

BASIC EXTERNAL FUNCTION -SQRT-

(SQUARE ROOT -TYPE REAL)

ASA REF.- 8.3.3 (TABLE 'f)

LINE 1 OF EACH PAIR IS

HOLLERITH INFORMATION

RESULTS

X= 2.0 l.itlit21356237310

l.if l'f2136

X= 3.0 1.73205030756888

1.7320508

X=17.0 12310562561766

tt. 1231056

X = 31.0 5.56776't36283002

5.56776't«»

X = 89. 0 9. '3398113205660

9.'+339811

LINE 2 OF EACH PAIR IS THE FUNCTION

CALCULATION PRINTED TO 7 DIGITS

IIC

-46
D5QR0 - (096)

BASIC EXTERNJAL FUNCTION -DSaRT-

(5QJARE ROOT -TYPE O.P.)

ASA REF.- R.3.3 (TABLE

LINE 1 OF EACH PAIR IS

HOLLERITH INFORMATION

RESULTS

X= 2.0

X= 3.0

l.mt*213562373095ni+88D+00

1.1142135623731+000

1.732050807568877?q35D+00

1.732050807568'^+000

X=17.0 !+.1231056256176605'l98D+00

(+.1231056256177+000

X=31.0 5.567761+36283002192210+00

5.5677643628300+000

X=89.0 9.4339R1132056603B113D+00

9.4339811320566+000

LINE 2 OF EACH PAIR IS THE FUNCTION

CALCULATION PRINTED TO 14 DIGITS

CSQRO - 10971

BASIC EXTERNAL FUNCMON -CSQRT-

(SQUARE ROOT -TYPE COMPLEX)

ASA REF.- 8.3.3 (TABLE 4)

LINE 1 OF EACH PAIR IS

THE EXPECTED VALUE

RESULT

.9950342E-02 .998,3340E-03

.9950042E-02 .998.3340E-03

.9800666E-01 .1986693E-01

.9800666E-01 .1986693E-01

.9553365E*00 .2955202E+00

.9553365E+00 .2955202E+00

.9210&10E+01 .3894183E+Q1

.9210610E+01 .3894183E+01

.8775826E+02 .4794255E+02

.8775826E+02 . 479'4255E+02

.8253356E-02 . 564 6425E-'02

.8253356E-02 . 564 6425E-i02

.7648422E-01 . 644'2177E-01

.7548422E-01 .6442177E-01

.6967067E+00

.6967067E+00

.5403023E+01

.540 30 23E+01

.71f 3561E+00

.7173561E+00

.8414710E+01

.8414710E+01

.4161468E+02 - . 90 9 2974E+02

.4161468E+02 - . 90 9 2 9 74E+02

LINE 2 OF EACH PAIR IS THE FUNCTION

CALCJLATION

1

i

n-C-47
ARCTb • (098) 0AI.TU •» (099)

BAblC tXIEKNAt FUNCTION AUN« BASIC tXTEKNAU FUNCTION •DATAN»

(AHcTaNGENT -Tyt>£ REAL) (ARCTANGENT •TYPE 0,P,)

XSA KEP," 8, J, 3 tTABUE a) ASA KEF,« 8,3,3 (TABLE 4)

LINE I OF EACH PAI« 18

HOIUERITH INFORMATION

LINE 1 OF EACH PAIR IS

HOLLERITH INFORMATION

RESULTS RESULTS

XB 0,125 0,l2«35a99a5a7 X« 0,125 0,1243549945470+00

0,1243550

X» 0,250 0,2<4a978663l27

0,2<»<I9787

0,1243549945470*00

^7fB"ir;?S0 0,244^8663127D*00

0,2449786631270*00

XP 0,375 0,558770670271 X» 0,375 0,3587706702710*00

0,3567706702710*00

Xs 0,500 0,A636<*7609001

0,4636476

' Xe C~,5inT " ^,4636476^^10*00

0,4636476090010*00

X»»0,750 •0,643501108793 X»-0,750 •0,6435011087930*00

«0,64350U •0,6«ibOll08793D+00

X» 1,000 0,785398163397

0,7853982

X* 1,000 Tr,Tff539BU3T9TD + 00^

0,7853961633970*00

LiNt 2 Oh tAUH PAIK 18 THE FUNCTION

CALCUUATION PRINTED TO 7 DIGITS

LINE 2 OF EACH PAIR IS THE FUNCTION

CALCULATION PRINTED TO 12 DIGITS

II- C- 48
ACTG2 - (100)

BASICI EXTERNAL FUNCriON -ATWN2-

(ARCTANGENT, 2 ARGUMENT -TYPE REAL)

ASA REF.- 8.3.3 (TABLE k)

LINE 1 OF EACH PAIR IS

HOLLERITH INFORMATION

RESULTS

X= 0.125

X= 0.250

X= 0.375

Xs 0.500

0.12«f35499'*5'f7

.12(»3550

0.2<»tf978663127

.2'»«»9787

0.3587170670271

.3587 707

0. <»636.(»7609001

.<f63&'<»76

X=-0.750 -0.6'»3B01108793

-.6«»35011

Xs 1.000 0.785398163397

.7853982

LINE 2 OF EACH PAIR IS THE FUNCTION

CALCULATION PRINTED TO 7 OIG:iTS

DATN2 - (101)

BASIC EXTERMAL FUMCTIOM -OATAN?-

( ARCTANGENJT» 2 ARGUMENT -TYPE D.P.)

ASA REF.- fl.3.3 (TABLE

LINE 1 OF EACH PAIR IS

HOLLERITH INFORMATION

RESULTS

X= 0,125

X= 0.250

X= 0.375

X= 0,500

X=-0,750

X= 1,000

0.12t|35tf99'+5t^7n+00

.12435'+q9«+5t^7+000

0, 21+1+9786631270+00

,244978663127+000

0,3587706702710+00

.358770670271+000

0.'+636<+7609001D + nO

.463647609001+000

-0.6435011087930+00

-.643501108793+000

0.7853981633970+00

,785398163397+000

LINE 2 OF EACH PAIR IS THE FUNCTION

CALCULATION PRINTED TO 12 DIGITS

n-C-49
DMUDA « ClOZJ

BA8IC tXTtHNAU ruNCTiUN -pnou*

^RtMAlNDtRINb TYPE DOUBLt PKECISION)

ASA B,3»3 (TA^Ut 4}

RESULTS

O.OOOOOOOOOOOOOODtOO

OtOOOOOOOOOOOOOODtOO

o,ooooooooooooooutoo

0|OOOQOOOOOOOOOOi;tOO

ENO OF DMOP TEST

ALU ABOVE ANSWERS SHOULD BE 0 FOR THIS

TtSi SfcUMENT TU Bt SUCCE88^UL, . ——

CABSA - (103)

BASIC EXTERNAL FUNCTION -CA8S-

(MODULUS OF A COMPLEX NUMBER)

ASA REF.- 8.3.3 (TABLE «f)

RESULTS

SET 1 SET 2

.lOOOOOE-06 .500000E-06

.lOOOOOE-05 .500000E-05

.lOOOOOE-Ott . 500000E-0if

. 100 OOOE-03 .500000E-03

. 100 ()0 0E-02 .50000aE-02

.lOOOOOE-01 .500000E-01

.lOOOOOE+00 .500000E+Oa

.lOOOOOE+01 .500000E+01

.ioooooe+02 .500000E+02

. 100 OOOE + 03 .500000E+03

.lOOOOOE + Ott .SOOOOOE + Oif

.100000E+05 .500000E+05

. 100 OOOE + 06 .500000E+06

.lOOOOOE+07 .50aOOQE+07

. 100 OOOE + 08 .500000Ef 08

VALUES IN EACH SET SHOULD BE POSITIVE

.1 FOR SET 1 (.5 FOR SET 2), EXPONENT

RANGE FROM -06 TO +08 IN SEQUENCE

'

n-C- 50
BSFTS m (110) STATEMENT FUNCTION TEST

INTEGER AND REAL

ASA REF, • 6,1,

a

RESULTS

0,0000000000

0,0000000000

0

0

0,0000000000

0,0000000000

0

0

0,0000000000

0,0000000000

0

0

0,0000000000

0,0000000000

0

0

ALL ABOVE ANSWERS SHOULD BE 0 FOR

THIS TEST SEUHbNI lU bk SUlCbSSFUL,

F5KTS m (111) STATEMENT FUNCTION TEST

DUUBLt PRECISION, CUHHLtX AND LUUICAL

ASA REF, n S,l,2

RESULTS ~

O.OOOOOOOOOOOOOOOOOOD^OO

0,0000000000000000000f00

0,0000000000000000000^00

0,OOOOOOOOOOOOOOOOOOD»00

0,000000 00000 00000 00040 0

0,000000 000000 0 00 0000*00

0,00000000000000 00000*00

0,000000 00 000 000000004-00

0,0000000

0,0000000

0,0000000 0,0000000

0,0000000 0,0000000

0,0000000

0,0000000

ALL AdUVt ANSWtRS SHOULD Bt 0 FUR IHIS

TEST SEGMENT TO BE SUCCESSFUL, VALUES

WITH tXPONENTS LESS TMATl TO » * X - 1 9T

ARE CONSIDERED ZERO

THE FOmr ABOVr ANSWERS ^SWtrULC BE TRUf

FOR THIS SEGMENT TO BE SUCCESSFUL

II- C- 51
FORT RAh TEST PROGRAMS

PREPARED BY NATIONAL BUREAU OF SlANOAROS

FOR USE ON LAR6E FORTRAN PROCESSORS

IN ACCORDANCE WITH ASA FORTRAN X3,9»1966

VERSION 3 PART 9

SAMPLE COMPUTER! FORTRAN COMPILER LEVEL

OPERATING SYStEM VERSION

DATE, INSTALLATION NAME

CPXAD • (1«»0) COMPLEX ADDITION AND

SUBTRACTION

ASA REF* - 6*1

RESULTS

• 0000 • 0000

«0000 • 0000

.0000 • 0000

.0000 • 0000

.0000 • 0000

«00Q0 • 0000

.0000 .0000

• 0000 .0000

• 0000 • 0000

.0000 • 0000

• 0000 • 0000

Test is POSITIVE IF NUMBERS PRINTED

ABOVE ARE 0.0,0*0

CPXMU - (HI) COMPLEX MULTIPLICATION

" ASA HhP, m 6,1

RESULTS

1,000 0.000

1,000 0,000

1.000 0.000

1,000 0,000

1,000 0,000

1,000 0,000

1,000 0,000

1,000 oO , 000

1,000 0,000

1,000 0,000

1,000 «0,000

•0,000

1,000 0,000

1,000 0,000

1,000 0,000

1,000 0,000

1,000 0,000

T,WO 0,000

1,000 0,000

1,000 0,000

TEST IS FDSrriVE "17

ABOVE ARE l,0rO,0

tHHUK SHOULD NUT EXCttO + UH » ,001

n-C-52
CPXOV - (IM2) DIVISION OF CPXEX - (1*43) COMPLFX EXPONENTIATION

COMPLEX NUMBERS

ASA.REF.6.1

ASA REF.- 6,1

RESULTS BASED ON THE FUNCTION

RESULTS

1.0 = SIN«»2(X) +C0S»»2 ( X

)

1 .0000 1 .0000

1I .w nnno *J *J KJ \J 1 .0000 1 .0000 . 0000

I . 0000 1 n n n n 1 n n r* n r* n ft n • UUUU

1 .0000 1 .0000 1 n n n n 1 • U IJ u u

ft ft ft ft • U iJ u u

1 .0000 1 .0000 11 .• nU nU nU n"J . ft ft ft ft • U L' U U

1 .0000 1 .0000 11 •

. n r* n n u u u u • n ft ft n U U iJ u

1 ,0000 1 .0000 1 t OOQO • 0000

1 .0000 1 . 0000 1 n n ft n 1 • U U U

ft ft ft ft • UUUU

1 .0000 1 .0000 1

1 • nLV nu

ft

Li nU ft ft ft ft • UUUU

1 .0000 1 .0000 t fl ft O ft ^••UUUU ft n ft ft

1 ,0000 1 .0000 I ft ft ft ft

1 • u u u u

_•••UUUU ft ft ft 11

1 ,0000 1 .0000 1 ft ft ft n 1 • U U U U

_• n n ft ft • UUUU

1 ,0000 1 .0000 1 ft ft ft ft 1 • u u u u " ft ft ft ft • UUUU

1 ,0000 1 .0000 1 ft n ft n 1 • u u u u

ft ft ft ft • UUUU

1 ,0000 1 .0000 1 ft ft ft ft

1 • U L' u u o n ft ft • UUUU

I ,0000 1 .0000 1 ft ft ft n 1 • U u U u

ft ft ft ft • UUUU

1 ,0000 1 . 0000 1 n n n n n r\ n • U OOU

1 ,0000 1 . 0000 1 ft ri ft rt ri n n • U UU

1 ,0000 I .0000 1 n n n f\ /-» r\ r> • 0000

1 ,0000 t .0000 1 n n n ft

1 • U 'J U U n n ft n • 00 0 0

1 ft ft ft n 1 • U U u u

n n ft n • U U U U

1 • U u '.J u . n n n n TFST IS POSITIVE IF NUMBERS PRINTFD 1 .0000 .onoo

ABOVE ARE 1.0,1.0 1 .0000 . 0000

1.0000 .0000

1.0000 .0000

ERROR SHOULD NOT EXCEED OR - .0001 1 .0000 .0000

1.0000 .0000

1 .0000 .0000

1 .0000 .0000

1 .0000 .0000

1 .0000 .0000

1 .0000 .0000

1 .0000 .0000

1 .0000 . 0000

1 .0000 .0000

1.0000 .0000

1 .0000 -,0000

1 .0000 -.0000

1 .0000 -.0000

I . 0000 -.0000

TEST IS POSITIVE IF NUMBERS PRINTFD

ABOVE ARE CLOSE TO 1.0,0.0

ERROR SHOULD NOT EXCEED + OR - .0001

II-C-53
CPXOP • COMPLEX OPERATIONS

ASA K^F b,i

RESULTS

1,0000 0,0000

1,0000 «0,0000

1.0000 wO.OOOO

1,0000 ttOfOOOO

TEST IS POSITIVE IF NUMBERS PRINTED

ABOVE ARE 1,0>0,0

ERROR SHOULD NOT EXCEED * On w ,0001

CREMU - {it*S) MULTIPLICATION OF COMPLEX

BY REAL

ASA.REF.6.1

RESULTS

l.OOCO 2.00D0

l.GOCO 2.0000

i.Qooo 2.coao

l.COCO 2.0000

TEST IS POSITIVE IF NUMBERS PRIMTED

ABOVE ARE 1.0,2.0

1.0000 1.0000

1.0000 l.GOGG

i.oocc i.Qcao

l.COCO i.cooe

TEST IS POSITIVE IF NUMBERS PRINTED

ABOVE ARE 1.0,1.0

CREAO (IH5» ADDITION AND SUBTRACTION

OF COMPLEX AND REAL WUMBCRS

ASA REF* 6*1

RESULTS

• 0000 eOOOO

• QOQO » 0000

• OOQO (• 0000

• OOQO • DOOO

• OOQO ,0000

• OOQO • 0000

• 0000 • 0000

• OOQO • 0000

• 0000 • 0000

Test is positive if nuhbers printed

ABOVE ARE O^a.O.Q

ERROR SHOULD NOT EXCEED + OR - .0001

CREDV - (ik7) DIVISION OF COMPLEX

AND REAL NUMBERS

ASA REF 6.1

RESULTS

1.0000 1. 0 000

1.0000 1. 0 000

l.OOCO 1. 0 000

1.0000 1. OOGC

1.0000 1. 0 000

l.OOCO 1. 0 000

l.OOCO 1. ccoo

I.oocc 1. GOOD

TEST IS POSITIVE IF NUMBERS PRINTED

ABOVE ARE 1.0,1.0

ERROR SHOULD NOT EXCEED + OR - .0001

n-C-54
CREOP - (litS) OPERATIONS ON REAL AND

COMPLEX NUMBERS

ASA REF. 6.1

RESULTS

FORTRAN TEST PROGRAMS

Prepared by national bureau of «;TAwn4RD<;

in accordance *ITh ASA FORTRAN X3. 9-1966

2.0000 -l.OCQO VERSION 3 PART 10

TEST IS POSITIVE IF NUMBERS PRINTED

MAnnDU UPV C MKC. APr^n*— t«Ut X«U in

Sample computer, Fortran compiler level

l.OOGO .0000 OPERATING SYSTEM VERSION

TEST lb PObillVt it- NUnotKb rKllH 1 tU

ABOVE ARE 1.0,0.0

DATE, INSTALLATION NAME

ERROR SHOULD NOT EXCEED + OR - .0001

M1SC3 n HH9) EFFECT OF BLANKS WITHIN

STMNT AI^D CONTINUATION

OF STMNT TO 20 LINCS

BRFCP - (160) REAL EXTERNAL FUNCTIONS

ASA REF, - 8,3.1

ASA REFS, • 3.2,^,3,3 3,2. «• RESULTS SHOULD BE POSITIVE

RESULTS

0

Test i is positive

TEST IS POSITIVE IF NUMBERS PRINTED

ABOVE ARE 0 TEST 3 IS POSITIVE

TEST H IS POSITIVE

MISCif - (150) EFFECT OF BLANKS WITHIN

STMNT AND CONTINUATION Test s is positive

ASA REFS. - 3. 2.'*. 3. 3 3,2,k TEST 6 is positive

RESULTS

O.OOGO 0.0000

.0000 .0000

TEST IS POSITIVE IF NUMBERS PRINTED

ABOVE ARE 0.0, CO 1

II-C-55
BIFCP - (161) INTEGER E.XTERN«L FUNCTIONS

WITH INTEGER AND REAt ARGS

ASA REF. - 8.3*1

RESULTS SHOULD BE POSITIVE

Test i is positive

TEST 2 IS POSITIVE

TEST 3 IS POSITIVE

TEST H IS POSITIVE

TEST 5 IS POSITIVE

TEST 6 IS POSITIVE

FRFCP - (162) REAL FUNCTIONS WITH

LOGICAL. O.P.. AND COMPLEX ARGS

ASA REF. 8.3,1

RESULTS SHOULD BE POSITIVE

TEST 1 IS POSITIVE.

TEST 2 IS POSITIVE.

TEST 3 IS POSITIVE.

TEST H IS POSITIVE.

TEST 5 IS POSITIVE,

Test 6 is positive.

Test 7 is positive.

FIFCP - (163) INTEGER FUNCTION IN

FULL FORTRAN

ASA REF. 8.3.1

RESULTS SHOULD BE POSITIVE

TEST 1 IS POSITIVE

TEST 2 IS POSITIVE

TEST 3 IS POSITIVE

TEST H IS POSITIVE

TEST 5 IS POSITIVE

TEST 6 IS POSITIVE

TEST 7 IS POSITIVE

CFCCP - (16**) COMPLEX FUNCTIONS

ASA REFS. 8. 3.1.8 .3. 2

RESULTS

• 0 .0 TEST 1 POSITIVE IF 0,0,0.0

.0 .0 « mm TEST 2 POSITIVE IF 0.0 lO.O

,0 .0 TEST 3 POSITIVE IF 0.0,0.0

.0 .0 TEST H POSITIVE IF 0,0,0.0

.0 .0 m m TEST 5 POSI T I vr IF 0,0,0,0

.0 • 0 TEST 6 POSITIVE IF 0,0.0,0

.0 .0 TEST 7 POSITIVE- IF 0,0(0.0

,0 .0 TEST 8 POSITIVE IF 0.0,0.0

TEST 9 IS POSITIVE

TEST 10 IS POSITIVE

II-C-56
FORTRAN TEST PROGRAMS

PREPARED BY NATIONAL BUREAU OF STANDARDS

FOR USE ON LARGE FORTRAN PROCESSORS

IN ACCORDANCE WITH ASA FORTRAN )(3. 9-1966

VERSION 3 PART 11

SAMPLE COMPUTER, FORTRAN COMPILER LEVEL

OPERATING SYSTEM VERSION

DATE, INSTALLATION NAME

DPFCP - (165) DOUBLE PRECISION

FUNCTIONS

ASA REFS. 8.3.1,8.3.2

RESULTS

TEST 1 IS POSITIVE

TEST 2 IS POSITIVE

TEST 3 IS POSITIVE

TEST k IS POSITIVE

TEST 5 IS POSITIVE

TEST 6 IS POSITIVE

TEST 7 IS POSITIVE

TEST 8 IS POSITIVE

TEST 9 IS POSITIVE

TEST 10 IS POSITIVE

0.0 0.0

TEST 11 IS POSITIVE IF NUMBERS ORINTEO

ABOVE ARE 0.0,0.0

TEST 12 IS POSITIVE

BFCCP - (166) LOGIC

ASA REF 8.3. 1

RESULTS

1 tb 1 41 I S POSITIVE

TCCT 1 to 1 o

c. T C I S rOSITI VE

1 CO 1

•7o

T C DnCTTT\IC

T FC T H

T C* 1 b POSITIVE

TEST 5

T C 1 O POSITIVE

TEST 6 IS POSITIVE

TEST 7 IS POSITIVE

TEST 8 IS POSITIVE

TEST 9 IS POSITIVE

TEST 10 IS POSITIVE

0.0000 0.0000 •

TEST 11 IS POSITIVE

ABOVE ARE 0.0,0.0

END OF (166)

SUKTN <• (167) SUBROUTINE SUBPROGRAM

ASA KtP, m B.a.l

RESULTS

1

1

TTor

I TTO"

1

1.0

T70-

: TEST SUCCESSFUL If ALL RESULTS EQUAL 1

U-C-57
FSBRT - (168) SUBROUTINE SUBPROGRAMS

ASA REF. - a.it.l

RESULTS

TEST IS SUCCESSFUL IF EACH

GROUP CONTAINS SAME VALUES

2.0

2.0

2.0

2.0

2.0

2.0

2.0

2.0

2. 0 2.0

I*, oo+oo

oo+oo

oo+oo

it. oo+oo

00 + 00

OO+O 0

tt, oo+ao

I*, 00 + 00

6.0 6.0

6.0 6.0

6.0 6.0

6.0 6.0

6.0 6.0

6.0 6.0

6.0 6.0

6.0 6.0

A8A KEf, m 8,5

RESUtTS"

GROUP CONTAINS SAME VALUES

T

2

2

2

3,0"

3.0

3,0

fl,0D+00

a, 00+00

4,00+00

4,00+00

4.0

4,0

4,0

4.0

5.0

5.0

5.0

5.0

TT

T

T

AB

II-C-58
FORTRAN TEST PROGRAMS

PREPARED BY NATIONAL BUREAU OF STANDARDS

FOR USE ON LARGE FORTRAN PROCESSORS

IN ACCORDANCE *1TH ASA FORTRAN X3, 9-1966

VERSION 3 PART 12

SAMPLE COMPUTERt FORTRAN COMPILER LEVEL

OPERATING SYSTEM VERSION

DATE, INSTALLATION NAME

BLKOA

ASA Hlf, m 8,b

RISUUW

SEVERAL BtUt

SUBPR06RAMS

TEST IS SUCCESSFUL IF EACH

6R0UP contai^^S Same VauUES

2.0

2.0

4,0D400

a,0D400

9.0

3.0

«.0

«.o

UNFRW - (180) UNFORMATTED READ

AND WRITE STATEMENTS

ASA REFS - 7.1.3.2tH AND 7tl.3.2i5

RESULTS

.0000000000

.0000000000

0

0

.0000000000

.0000000000

.0000000000

.0000000000

.0000000000

.0000000000

.0000000000

.0000000000

.0000000000

.0000000000

.0000000000

.0000000000

.0000000000

.0000000000

Q

0

.0000000000

tOOOOOOOOOO

,0000000000

.0000000000

.0000000000

.0000000000

.0000000000

.0000000000

.0000000000

0

0

ALL ABOVE ANSWERS SHOULD BE ZERO IF

THE READ AND WRITE RECORDS COMPARE.

F

F

T

MP

HP

U-C-59
BACUP - (182) BACKSPACE TAPE DOLMT - (191) DO SET LIMITS

ASA REF» 7» 1 . 3.3.2 ASA Ktr# * 7tl«2tB

RESULTS nD r C 1 1 1 T Q L ^ L 1 3

**TEST SUCCESSFUL**

GROUP 1

1 2 3

S 6

7 8 9

1016 1017 1018

1019 1020 1021

1022 1023 102H

DONSC - (192) NESTED LOOPS

GROUP 2

S 10 J5 ASA REF. - 7.1.2.8

20 25 30

35 MO H5 RESULTS

B080 soes 6090

509S SlOO 5105

5110 51 IS 51 20 2 LEVELS OF NESTING

**TEST SUCCESSFUL**

GROUP 3

I 2 3 3 LEVELS OF NESTING

« 5 if ••TEST SUCCESSFUL**

7 8 9

1016 1017 1018

1019 1020 1021 M LEVELS OF NESTING

1022 1023 102«» ••TEST SUCCESSFUL**

GROUPS 1 AND 3 SHOULD BE THE SAMC 5 LEVELS OF NESTING

AND GROUP 2, 5 TIMES GROUP 1 *«TEST SUCCESSFUL**

OOTRM - (190) DO TERMINAL I CONTROL VARIABLE USED IN SUBSCRIPT

**TEST SUCCESSFUL**

ASA REF - 7.1 .2.8

RESULTS

TE5TI CONTINUE EXPLICII

••TEST! SUCCESSFUL**

TEST2 CONTINUE IMPLIED VONsi ~ iIt3) jNCOnrLElE DO

••TEST2 SUCCESSFUL**

ASA REF. - 7.1,2.8

TEST3 ASSIGN RESULTS

••TEST3 SUCCESSFUL** 1 ••INCOMPLETE LOOP SUCCESSFUL^*

TESTH LOGICAL IF

• •TEST** SUCCESSFUL** '

1 lI-C-60
OONSX • (19a) EXTENDED DO RaNOE: f DONIO • (196) DO LOOPS WITH I/O

TERMINAL STATEMENTS

ASA REF, • 7,lt2.0«2 ASA HEF, . 7.1.2.8

RESULTS

RESULTS

EXTENDED RANGE FROM LEVEL 1

1

I

**TE8T SUCCESSFUL**

i.o

1 .0

O.lD^Ol

O.lD^Ol

EXTENDED RANGE ^ROM LEVEL 2

" 1.0 1,0

1.0 1.0

*»TEST SUCCESSFUL**

*-i

, T

EXTENDED RANGE CONTAINING A 00 STATEMENT

S 1 7

6

1 1.0 —ft i.o

0, 10^01

2

0,lD*Ol

1.0 1,0

I THE ASOVE 8 VALUES SHOULD BE

1,0 1,0

T IN DESCENDING ORDER FROM B TO 1 T

1

1 1.0

1.0

0,1D^01

0,1D*01

OONML <» n95> MULT-LEVEL LOOPS

ASA REF, - 7. 1. 2*8

RESULTS

••TEST SUCCESSFUL**

1,0 1,0

l|0 1,0

T

T

THIS TEST IS SUCCESSFUL IF 3

IDtNTICAL GROUPS OF OUTPUT HAVt BEEN

GENERATED,

II- C- 61
mordo - (197) a more complicated seg.

of 00 statements

asa refs - 7.1.2.8 and 7. s. 2.8.1

Results

THIS segment successfully te<;ted

IF NO ERROR MESSAGES

SUBRl ^ (200) SUBROUTINE SUBPROGRAM

WITHOUT AN ARGUMENT LIST

ASA REF. - 8,H*1

RESULTS

THIS SEGMENT SUCCESSFULLY TESTED

IF NO ERROR MESSAGES.

FORTRAN TEST PROGRAMS

PREPARED BY NATIONAL BUREAU OF STANDARDS

FOR USE ON LARGE FORTRAN PROCESSORS

IN ACCORDANCE WITH ASA FORTRAN X3.9-|966

VERSION 3 PART 13

SAMPLE COMPUTER. FORTRAN COMPILER LEVEL

OPERATING SYSTEM VERSION

DATE, INSTALLATION NAME

LOGIF - C300) LOGICAL IF STATEMENT

ASA REF, - 7.1.2.3

RESULTS

TEST E XPt113i TtY" - WRl T^tt S^6^*tf^

2^0

+ 0 EQUALS -0

+0.0 EQUALS -0.0

+0.0D0 EQUALS -0.300

TEST COMPUT^ATlONAt ^I^tt OF ZE^

+ 0 EQUALS -0

+0.0 EQUALS -0.0

+0.0DO EQUALS -O.OOO

TEST -LOGICAL IF- FOLLOttEtJ "BY - DIFFERENT KINDS OF STATEMENTS

0

0U

0

0

0

0

0

- -

0

THERE SHOULD 3E 10 VALUES A30VE»

IF ONLY 9, TEST 9 HAS FAILED.

00

0

- B-00

0

0

0

ALL VALUES SHOULD BE ZERO.

A VALUE OTHER THAN ZERO WltL BE THE

NUMBER OF THE TEST WHICH FAILED.

II- C- 62
BARIF - (301) BASIC FORTRAN

ARITHMETIC IF STATEMENT

ASA REF. - 7.1.2.2

RESULTS

TEST FOR SIGN OF ZERO - TYPE INTEGER

PATH FORM OF EXPRESSION

OF IF -0 0 +0 *

* NEG. * 0 0 0

, ZERO 11 11 11

* * POS. 0 0 * 0 * *

TEST FOR SIGN OF ZERO - TYPE REAL

PATH • FORM OF EXPRESSION • OF IF -0.0 0.0 +0.0 •

* * * * NEG. * 0 0 0 * ZERO 11 11 11 * * POS. 0 * 0 G *

ALL ENTRIES SHOULD BE 0 EXCEPT

THE ZERO PATH, WHICH SHOULD BE 11

IN EACH COLUMN. OTHER TESTS MAY

FAIL IF THESE RESULTS DIFFER.

TEST EXPRESSIONS IN IF STATEMENTS

TESTS SUCCESSFUL

FARIF - (302) FULL FORTRAN

ARITHMETIC IF STATEMENTS

ASA REF. - 7.1.2.2

RESULTS

SEGMENT 302 TESTED SUCCESSFULLY.

lOFMT • (310) ADDITIONAL FgRMATTED"T70

ASA HtFS • 7,1,3,2,2 7,1,3,2,3 T.~Z7r

RESULTS

TEST ^Ltm INPUT

EACH ANSWER SHOULD BE: ZERO

0

0

0

0,0

0,0

0,OE+OT5

0,0£*00

0,0t4'00

OiOE'fOO

O.OO^OO

O,0{J*00

0,0O«0O

0,0D400

TOT DEC, PT, SPECIFIED ffY INPUT

3 LINES IN EACH GROUP SHOULD MATCH

* LINE IS HOLLERITH DATA ~* lyZJ^^b

1, 23456

1,23456

- *- 907654,0

987654,0

9B7654,0

«r ^,l^3«E*0l

0,1234E<t'01

a,l234r*01

* "0,VB761I)4E + 0«J •0,987654E*02

0,987654E+02

* (Jro«3»T8VI0^nD*06

0, 2345678910110*06

0,c!345678910nD*06

it mOtlQW^hTy^OH

"0, 109876D-04

"0,IU9B76D«04

II-C-63
T E8 T FO H HA T UESCHiP T O H H bPE T XTXUN

AIL LZNE8 IN EACH GROUP SHOULD

BE tOE NTlCAL

*—12345

12345

12345

12345

12345

12345

12345

111

TTT M

111

* 0,339567E+02

0,33 9 86 7E *02

0,339567E+02

0,339567E + 0r

0|339567E^02

* 0«96295134244D«04

0,962951342440+04

0*962951342440404

0,96295134244D4>04

0,962951342440+04

0,962951342440+04

*—5

rVil—0.14E+04—0,^0 + 02

3 1,23 0,l4E+04 0,20+02

I rT21 0. lUE4flti 0.20*02

3 1,23 0,14E+04 0,20+02

"3 17^3 0.14E+04 0,20+02

3 1,23 Q,14E+04 0,20+02

* •0,l3579E+05 —i*0,l3579E + W5

•0,13579E+05

4444

4444

4444

4144

4444

4444

4444

* -333

333

•333

5.555

5. 555

5. 555

0.'*5'»5E-a«»

.'5'»5E-3<*

-6.666

-6. 666

-6. 666

0.9989E+12

. 9989E+12

. 9989E+12

7.77

7.77

7. 77

-G.7<»7E-02

-.7if7E-02

-.7i»7E-02

0.5'*9E + 00

. 5'*9E*00

. 5<t9E4-00

22

22

22

0.662E+00

. 662E-«-00

.662E^aO

O.'*68E-i0

.'»68E-10

.'68E-10

11

11

11

0.595t»20 + 0'*

. 595i»2D*0^

.595<f20«-0^

6666

6666

-ifi».6666

-0.123'»5678900-03

123«»567890D-03

-.123'»567890D-03

U-C-64
* !IU,9327

5«,9327

SCALE FACTOR ON READ

IN ORDER OF FORMAT OCCURRENCE

NO EXPONENT ON INPUT DATA

* • 0,UV*6«t«S34U*00

•0,139S62a534O*00

CARD 987654 8647,86 987,654

0E8C IPE10,3 »IPE10,2 010,3

TO Bt .9e8E*02 ,8648E*05 .96770*04

18 0.988E*02 0.8648E*05 0,98770*04

il 6S43S,t 1 65432,1

ROFMT - (312) FORMATS IN ARRAYS

* 0,64011*03

0,e4BE*03 ASA REFS. - 7.2.3.10

D,8U8E*03

0,8a8e*03 EACH GROUP OF LINES SHOULD MATCH

0,1290*07 4756 -867 224 39 -6

0,1290*07

4756 -867 224 39 -6

4756 -867 224 39 -6

U,1<!VU*U7

0.234 98. -77.27 547.18

* 0,4120*21

0,4120*21

.234 98. -77.27 547.18

.234 98. -77.27 547.18

0,4120*21

-0.76E+D9

* -t»0,987E*00

•0,967E*00

-.76E+09

-.76E+09

*0i9H7e*00

•0,9B7C*00 0.893421E-12

* 0,60*00

.893421E-12

.893421E-12

D,bU*UO

0,60*00

.893421E-12

.893421E-12

0,60*00'

* 0,3680*09

0,3680*05

-0.357901246D+00 0.52D-02

-.3579012460+00 .52D-02

-.3579012460+00 .52D-02

* 0,777E*01

0,777E*01

T T F F

T T F F 0,777K*0l T T F F

* • 333 0,!iV»4c!U*U4

•533 0,595420*04

ABCDE+*=123

ABCDE+»=123

* -333 0,595420*04 +.10E+01

*333 0,^95420*04 .lOE+01

/ HOLLERITH CONSTANTS AS CALL ARGUMENTS

HOLLERITH CONSTANTS AS CALL ARGUMENTS

TEST EMPTY FORMAT STATEMENT _ THE FOLLOWING LINE SHOULD BE BLANK _ END EMPTY FORMAT TEST _ END SEGMENT 312 TEST

II-C-65
FORTRAN TEST PROGRAMS

PREPARED BY NATIONAL BUREAU OF STANDARDS

FOR USE ON LARGE FORTRAN PROCESSORS

IN ACCORDANCE WITH ASA FORTRAN X3.9-196&

VERSION 3 PART !<

SAMPLE COMPUTER, FORTRAN COMPILER LEVEL

OPERATING SYSTEM VERSION

DATE, INSTALLATION NAME

MISC5 - (350) SPECIFICATI0M5 FOR

PROGRAM FORM

ASA REFS. - 3.2 3.2.1 3.t* 3.5

TEST THAT COMMENTS ARE NOT EXECUTED

TEST SUCCESSFUL IF NO ERROR MESSAGE

TEST 72 CHARACTER LINE

123t»56789101112131<+1516171S19

123«f56789101112131t*1516171819

TEST SUCCESSFUL IF 2 LINES ABOVE ARE

DIGITS 1 THROUGH 19

TEST l»2»3»(+»5 CHARACTER STMNT. LABEL

1 CHARACTER LABEL ACCEPTED

2 CHARACTER LABEL ACCEPTED

3 CHARACTER LABEL ACCEPTED

1 CHARACTER LABEL ACCEPTED

5 CHARACTER LABEL ACCEPTED

TEST l»2»3»i+»5»6 CHARACTER VARIABLES

AMD ARRAY NAMES

TEST SUCCESSFUL-ALL NAMES ACCEPTED^^

TEST PLACEMENT OF STATEMENT LABELS

AND LABELS WITH LEADING ZEROS

1

2

3

(f5

6

7

8

9

TEST SUCCESSFUL IF 9 NUMBERS

IN SEQUENTIAL ORDER FROM 1 TO 9

ARE WRITTEN ABOVE

END OF SEGMENT 350

II-C-66
FUNMX - (351)

THIS SEGMENT FURTHER TESTS

SOME BASIC EXTERNAL FUNCTIONS

BY USING TRIGONOMETRIC FORMULAE

ASA REFS. - 8.3.3

RESULTS

0.00000

-.00000

-.00000

.00000

-.00000

-.oaooo

.00000

0.0000 0

.00000

C. 00000

-.00000

ALL ABOVE ANSWERS SHOULD BE 0 PLUS OR

MINUS AN ERROR FACTOR OF NOT MORE THAN

10 » {-k)

NAMES - (352)

TEST OF THE COMPILERS CAPABILIir OF

IDENTIFYING OATA NAMES THAT RESEMBLE

FORTRAN VERBS AND/OR PREDEFINED

FUNCTION NAMES

ASA REFS. - 10.1. 7/'*

SPtC2 • (360) COMMON AND EUUIVAL^NCE

ASA HblkS • 7.2.1,2—7,2.1,3 7,2,1,4

RESULTS

LINE 1 BELOW IS HOLLERITH

2 2,0

2

ANSWERS BELOW SHOULD BE 0 OR 0,0

0

^0

0^

" 0 ,0

0 ~o

0

ARITHMETIC IF SUCCESSFUL

"ANSWER BELOW SHOULD BE 13,0

X3,r

COMPUTER (JO TO SUCCESSF_UL

TEST EQUIVALENCE EXTENDS^ COMMON

TEST SUCCESSFUL

RESULTS

O.GOOOO

O.OOOGO

0.00000

0. 00000

0. 00000

O.OOOGO

0.00000

O.OOOGO

0.00000

O.OOOGO

0.00000

0.00 0 CO

ALL ABOVE ANSWERS SHOULD BE 0 FOR j THIS TEST SEGMENT TO BE SUCCESSFUL

U-C-67

SECTION III DISTRIBUTION TAPE ORGANIZATION

\, GENERAL DESCRIPTION

This section of the document describes the organization of the NBS FORTRAN

Test Programs and data as recorded on magnetic tape for distribution. When

the programs have been retrieved and stored in a form more appropriate to

utilization, this section of the manual is of no significance.

The distribution tape containing both Version 1 (116 executable test units)

and Version 3 (14 executable programs containing the 116 test units) is available

in 800 cpi recording density in the following forms:

7 track, even parity, BCD recorded from FORTRAN H set punch card code

(See Appendix D X3.9-1966)

9 track, odd parity, EBCDIC recorded from the American National Standard

punch card code

9 track, odd parity, ASCII recorded from the American National Standard

punch card code

The distribution tape is an unlabeled, fixed block size recorded tape, terminating

with two tape mark records.

Version 1 Programs and its data precede Version 3 with its data. Each block

contains 720 characters comprised of nine 80-character card image records „ Partial

blocks at the end of both Version 1 and Version 3 are filled with blank card images,

so that Version 1 begins in Block 1 record 1 and Version 3 begins with Block 1597

record 1.

The differences between the punch card code for the FORTRAN H Set and the American

National Standard are reflected in the following four characters:

H-Set Standard

( left parenthesis 0-4-8 12-5-8

) right parenthesis 12-4-8 11-5-8

= equal 3-8 6-8

+ plus 12 12-6-8

The programs and the data are in the same code.

For FORTRAN processors which contain an option on the coded character set for

conversion of the FORTRAN programs, but not for the data, or perform a logical

conversion only, causing the program listing to print a different character

representation for the four characters listed above should perform a character

conversion to the test programs and data before performing the tests, because

the program listing is considered part of the documentation.

The following tables identify each main program unit, subprogram and data in

two different forms

The Block and Record number identifies the block number and the

record within the block of the start of each element of information.

The card image number is the record number for the location of the

start of each element of information.

III-A-1
For Version 3, one table lists the elements in relation to their position

on the tape with Version 1 preceding it, and the other table assumes that

the tape has been forward spaced over Version 1 (1596 blocks).

Each element of information in the tables is identified by the letter:

M = main program unit

F = function subprogram

S = subroutine subprogram

B = Block Data subprogram

WARNING - Version 1 and Version 3 each contain the same subprograms. If Version 1 and Version 3 are to be retained as a single file for use, one copy of the

subprograms (63 functions and subroutines) must be deleted otherwise duplicate

external procedure names will occur.

In Version 1, the Directory (segment 000) recorded as a set of comment lines is

included as part of the first test unit, segment 008, This causes this test unit

to contain 871 card images. The Directory of 342 card images may be removed and

by appending a STOP statement and an END line may be compiled to obtain a program

listing.

III-A-2
Al. VERSION 1 DISTRIBUTION TAPE ORGANIZATION

lock § Record # Segment # Name

Card

Image # Block § Record # Segment # Name

Card

Image #

1 1 000 *

1 652 9 068 IF IMG M 5868

008 FMTRW M 667 3 069 IFDBL M 5997

97 8 46 data cards 872 673 6 070 IFCPX M 6054

102 9 009 AFRMT M 918 680 4 071 IFCJG M 6115

115 7 3 data cards 1033 687 7 072 IFBMS M 6181

116 1 010 DATA2 M 1036 702 1 073 IFFMS M 6310

133 6 Oil AASGN M 1194 722 2 080 EXPON M 6491

163 4 013 DASGN M 1462 728 8 081 DEXPO M 6551

210 1 015 CASGN M 1882 736 4 082 CEXPO M 6619

262 2 016 LASGN M 2351 747 3 083 LOGTM M 6717

273 9 017 INTRL M 2457 753 6 084 DPLOG M 6774

294 5 020 UGOTO M 2642 761 1 085 CXLOG M 6841

302 2 021 AGOTO M 2711 772 8 086 COLOG M 6947

318 7 022 CGOTO M 2860 779 1 087 DC LOG M 7003

334 9 030 ARBAD M 3006 786 4 088 SINUS M 7069

347 7 031 ARFAD M 3121 795 4 089 DPSIN M 7150

354 1 032 ARBSB M 3178 804 5 090 CSICO M 7232

361 5 033 ARFSB M 3245 811 7 091 COSNS M 7297

369 5 034 ARBAS M 3317 820 8 092 DPCOS M 7379

378 3 035 AREAS M 3396 829 8 094 TANGH M 7460

384 9 036 ARBMI M 3456 836 2 095 SQROT M 7517

392 3 037 ARBMR M 3522 842 3 096 DSQRO M 7572

399 4 038 ARFMD M 3586 849 3 097 CSQRO M 7635

407 3 039 ARBDV M 3657 857 5 09 8 ARCTG M 7709

415 9 040 ARFDV M 3735 863 9 099 DACTG M 7767

423 3 041 ARBEX M 3801 871 3 100 ACTG2 M 7833

433 3 042 ARFEX M 3891 877 5 101 DATN2 M 7889

441 5 043 ARBHI M 3965 884 8 102 DMODA M 7955

461 2 050 SBB67 M 4142 891 8 103 CABSA M 8018

469 9 051 SBB45 M 4221 901 2 110 BSFTS M 8102

479 6 052 SBB13 M 4308 913 3 111 FSFTS M 8211

492 1 053 SBF17 M 4420 931 7 140 CPXAD M 8377

500 8 054 SIMIF M 4499 940 2 141 CPXMU M 8453

509 4 055 IFABS M 4576 955 8 142 CPXDV M 8594

516 5 056 IFFLT M 4640 965 1 143 CPXEX M 8677

521 9 057 IFFIX M 4689 978 9 144 CPXOP M 8802

528 5 058 IFSGN M 4748 985 9 145 CREAD M 8865

537 6 059 IFDAB M 4830 993 4 146 CREMU M 8932

544 8 060 IFTRN M 4895 1000 3 147 CREDV M 8994

556 7 061 IFMOD M 5002 1006 7 148 CREOP M 9052

566 1 062 IFMAX M 5086 1014 1 149 M1SC3 M 9118

593 6 063 IFMIN M 5334 1024 8 150 MISC4 M 9215

618 6 064 IFDSG M 5559 1036 5 160 BRFCP M 9320

625 1 065 IFDIM M 5617 1045 6 400 AFS F 9402

632 7 066 IFSGL M 5686 1046 7 420 BFS F 9412

641 6 067 IFREL M 5766 1047 8 430 CFS F 9422

1048 9 440 DFS F 9432

See preceding page • 1050 2 450 EFS F 9443

1051 4 460 FFS F 9454

M = Main Program

F = Function Subprogram

S = Subroutine Subprogram

B = BLOCK DATA Subprogram
VERSION 1 DISTRIBUTION TAPE ORGANIZATION - continuation

DlOCK (j Record ff Segment # iNajue image " RDlOCK 1 /-I cAr PQ

0 r\ r\ "v^ if KeCOrQ It oegment # IN ame

\j<xx\X

Image \

1

1 A

1

Id 1 D T cr'D tSl rL,r M Q 4 ftQ y 4Dy 1 1 Oft 1 ly D

7/1 ft7 io / odK QRDTM1 IN

1 A 7ft7 lU /oz

lUOZ / 4u/I m1 TACT lAr 1 cr Q C Cft y ODD 1 9A B 1 ZU 0

7z 4U / A A n c0

1 A 0^ C iUoDO

iUDO QO

/I4/19 1 TRCT iDr 1 cr 0 i?ftft y oOo 1 9 1 A IZ iU 7/ 41 /

A en c 1 A 0 Q 0 lUooo

Q 4ol TCQ iLr T1 r Q C 7ft yo /D 1919 IZiZ 7z4 97 4Z / Apn b

1 AAA 1 loyui

iUDD 1 AA'\ 441 Tnp T 1 ur 1 Rr QCyo 008ft 11914 Z 14 c0

1 ft Q ID 01 AO 9 9 luy zz lUD /

(T D 4D/I c 11 TPC lEr T1 r Q QQO y oyy 19 71 1 Z ol r0

4 A Q Ann AJJl^ cb

1 1 A 7C iiU /o

iUDo 7 4D 1 Ttrn T Irr i r yo iu 1 9 7C IZoo Q 4 1 Q 4io A nn b

1111/1 11114

iU / u

/I IDZ 1 ft9 rKrLr M Oft 9 c yo/o 1 9 7 Q

i Z 00 /I4 4Zo 4 9 Q ArAPn Cb

111 77 1 iio / ±UOD 11 /in9 4U<i ur 0

r?r 0 7 c 7 y /o / 19/19 iZ4Z 0y

1 ftQ RT VXYV M

1117 0 ill /o

J. u ou 7 /199 4// nro r?r Q 7A Q y /DO 1 9 C A iZoU Q

{> A AQ 4uy RT ni/'n nU

1 1 9 /I 0 iiz4y

1 u o / D /I '?9 4oZ iKr T Dtr c0 r Q 7 on y / ou 1 9C4 Q 1 7Q i /y RT vnA A<M

1 1 9 Q C

1 iZoo

A A/l 44 9 TD C Q J Kr 0 r Q 7Qft y /yo IZDZ 1 9ft9 D 4iy 4 1 Q R T A VW DD

I 1 7CC I I 000

o 40 <L Kr 0 r Q sjn 7 y ou /

1IZDo 9ft T0A4zy9Q RT RkTl DD II 1I 077Q/ y

0o ID o r irL,r M Q Q "^ft y ooD IZD 1 9ft 7/ 7Z

4 70 RT p vn DD1 1 70ft 1 loyD

1 1 n 7 cD 4Uo /I n 7 TC T ir i cr yyby 1 9^A izoy 4

1 OA ioU UJNrKW M

11/11/:

J.Tins -LU O 7 494Z 7o TP T J r 1 r QQ 7n yy i\) lZo4 1 9 Q4 7z

1 Q9 R APT ID M

1 1 c /I 0 i iD4y

1110 1 1 1 u

11

/I ? ? 4 JO VC T Kr 1

r?r OQ Q9 yy oz 1 90 9 izy z

/I 41 QA UU 1 KM M11^97 11DZ3

1111 1111 QO 44AA Xo

T C T Lr 1

r;r yyy 0

1 7A 7 1 OU / 4

1 0

1

UULM 1 M

1 1 7C 0

1 i /DCS

111'? 1 1 1 o 1 4o o Mr i n

r

1 Anno 17 1/1 ioi4 T3 107 lyz nnMCP UUJMIsL M1 1 0 7 A 1 ioZU

111ft 1 1 lO 2 1104ft/1 LrLLr M

1 AA 1 Q 17 7 9

1 OOZ 7

/ iy 3

nnxTC T UUJNbl A/1 M1 1 0 iiyoD

1 1 "^n 1 1 OV Q /I4U4n /I ArL cr

1 A 1 7A iU 1 IK)1 7 7A iooy 41 0 /I iy4 nr^MC V UUMbA M1 7A/1 A 1ZU4D

1

1

1 1 o ^

11

/14141 /I BrL r?r

1 A 1 OA iUioU 1 7 C 7 00 195 DONML M19 1 7A Izl /6

1 1 o o

0 49/1 4<i4 L.rL r?r

1 A 1 OA lU iyu 1 7^; 1 1361 1 196 DON10 X/T M17 7/11 izz4i

4 4 '?4 4o4 UrL r

1 A9A 1 iU/0 i 17 7 1 10/1 7z 197 MORDO M1 7 T T 7 lz33z

1 1 Z'^ 7 444 44 4 crL cr

1 A 9 1 "7 1 Id A io9U 9 412 MDQ cb1 7 r 1 0 lz5 lU

1 X OU QJ 44o4?4 r rL c

r

1 A 9 9 /I 1 7A 9 loyz 4 200 SUBRl 1 7 c 7 T IZDZ 0

1 1 oo D 4ft4 4d4 MrL cr

1 A 9 TO 10/59 1 "ZA 0

i 39 0

7Z 410 SUBRQ cb

1 9 C 7C IZb /D

J.1141 i T- J. 7 1 fti? IDO M 1 A 9^ 7 1 /I AO 14U9 /I 4 300 LOG IF M 1 9ft7ft iZO /D

1 1 '^f, 7 4nR 4U0 A cn Ar U

c

r

1 A /I A 9 1 A TO 1439 9 411 SMCQ cb1 90 C 1 izyb 1

J. J. ^ / Qo 41 c: 41o tSrU c

r

1 A /I 1 9 1/1/11 1441 T3 301 BAR IF M1 90A 7 izy63

J. J. ^ o q 49c; 4ZD pen pr

1 A /I 9 9 lU4ZZ 1460 7 302 FAR IF H/l

IVl 1 7 1 7 0 1313o

1160 X X\J\J 9 4 OO uru r

1 A /I T 7 1/171 14/1 7

7 310 lOFMT M

1 7 9 7 7 13Z3 / 1161 c; 44c; 44o nrU cr

1 A /I /I C i044b 1 C A ^ 1506 7

Z 38 data cards 1 "7 r /I 7 13547

1163 3 455 *-T J r r u r lU1 A4ft1 4D

1

lo1 1 AlU 4 312 RDFMT M 1 TC QC

1 oD oD

1164 5 465 VJ 1 \J p1 1Iv^0479 H / ^ 100^ 1^79 7 462 FMTQ C 11 07786 / ou 1165 8 475 HFD F 10484 1536 4 13 data cards 13819

1169 4 166 BFCCP M 10516 1537 8 350 MISC5 M 13832

1185 4 406 AFB F 10660 1555 2 351 FUNMX M 13988

1186 5 416 BFB F 10670 1561 6 352 NAMES M 14046

1187 6 426 CFB F 10680 1570 4 413 MAQQ S 14125

1188 8 436 DFB F 10691 1572 1 463 MBQQ S 14140

1190 1 446 EFB F 10702 1573 7 473 AMQQ s 14155

1191 4 456 FFB F 10714 1576 1 483 H^QQ s 14176

1192 7 466 GFB F 10726 1577 8 360 SPEC2 M 14192

1193 9 476 HFB F 10737 1596 6 blank card 14361

1596 9 last blank card 14364

in-A-4
A2. VERSION 3 DISTRIBUTION TAPE ORGANIZATION

Card Card

lock § Record # Segment # Name Image # Block § Record # Segment # Name Image

1597 1 008-011 PART 1 M 14365 2738 1 165-169 PART 11 M 24634

1716 4 49 data cards 15439 2812 7 405 AFD F 25306

1721 8 013-015 PART 2 M 15488 2813 8 415 BFD F 25316

1824 7 6 data cards 16414 2814 9 425 CFD F 25326

1825 4 016-034 PART 3 M 16420 2816 2 435 DFD F 25337

1944 3 6 data cards 17490 2817 5 445 EFD F 25349

1944 9 035-053 PART 4 M 17496 2819 3 455 FFD F 25365

2069 1 6 data cards 18613 2820 5 465 GFD F 25376

2069 7 054-064 PART 5 M 18619 2821 8 475 HFD F 25388

2197 2 6 data cards 19766 2825 4 406 AFB F 25420

2197 8 065-073 PART 6 M 19772 2826 5 416 BFB F 25430

2298 5 6 data cards 20678 2827 6 426 CFB F 25440

2299 2 080-092 PART 7 M 20684 2828 8 436 DFB F 25451

2409 3 6 data cards 21675 2830 1 446 EFB F 25462

2409 9

r\n >i 111 094-111 PART 8 M 21681 2831 4 456 FFB F 25474

Z5l4 9 6 data cards 22626 2832 7 466 GFB F 25486

z515 6 140-150 PART 9 M 22632 2833 9 476 HFB F 25497

o0 6 data cards 2359 7 2836 7 407 AAQ S 25522

/oz3 5 160- 164 PART 10 M 23603 2839 3 417 ABQ S 25545

2693 9 400 AFS F 24237 2840 7 427 ACQ S 25558

2695 1 420 BFS F 24247 2843 1 408 ADQ S 25579

zo9d 2 430 CPS F 24257 2847 4 418 AEQ s 25618

2697 3 440 DPS F 24267 2849 9 428 AFQ s 25641

2698 5 450 EPS F 24278 2854 5 409 BLOKD B 25682

O Z O O 2699 7 460 FFS F 24289 2858 5 6 data cards 25718

Z/Ul 4

A f\ 1 401 IAPI F 24304 2859 2 179-200 PART 12 M 25724

Z /UZ 5

/I O 1 421 IBFI F 24314 2998 3 410 SUBRQ S 26976

2703 6

A 1 431 ICFI F 24324 3009 5 412 MDQ S 27077

2704 7 441 IDF I F 24334 3010 9 419 BLAKD B 27090

z70d 2 451 lEFI F 24347 3013 6 429 BLBKD B 27114

z7U7 4 461 IFFI F 24358 3015 5 439 BLCKD B 27131

z /uy 1 402 GFS F 24373 3017 7 6 data cards 27151

2/10 3 /t T 0 4ZZ HPS F 24384 3018 4 300-312 PART 13 M 27157

2711 6 H-OZ IRFS F 24396 3139 3 411 MCQ S 28245

2713 4 44? '-r'-r 6m JRFS F 24412 3140 6 462 FMTQ S 28257

O "7 1 A 2714 6 452 RFS F 24423 3144 3 57 data cards 28290

Z771/ 1 7/ 0 403 T r? T Ir 1 r 24452 3150 6 350-360 PART 14 M 28347

2719 1X 423 TC T J r i cr Z4405 3206 8 413 MAQQ b

O O O f" "7 28853

2720 4 433 If PT r

"7/1/1 Z44 /O 3208 5 463 MBQQ c O O O o 2722 2 443 LP I F 24491 3210 2 473 AMQQ s 28883

2723 4 453 MP I F 24502 3212 5 483 BMQQ s 28904

2726 6 404 AFC F 24531 3214 3 6 data cards 28920

2727 7 414 BFC F 24541 3214 8 last data card 28925

2728 8 424 CFC F 24551 3214 9 (blank filler card) 28926

2730 1 434 DFC F 24562

2731 4 444 EFC F 24574 M = Main Program

2732 6 454 FFC F 24585 F = Function Subprogram

2734 3 464 HFC F 24600 S = Subroutine Subprogram

2737 4 6 data cards 24628 B = BLOCK DATA Subprogram

III-
VERSION 3 DISTRIBUTION TAPE ORGANIZATION

(Listed as if Version I (1596 blocks) had been deleted or forward spaced.)

Block 5 Record # Segment # Name

Card

Image # Block § Record # Segment # Name

Card

Image t

1 1 008-011 PART 1 M 1 1142 1 165-169 PART 11 M 10270

120 4 49 data cards 1075 1216 7 405 AED F 10942

125 8 013-015 PART 2 M 1124 1217 8 415 BED F 10952

228 7 6 data cards 2050 1218 9 425 CED F 10962

229 4 016-034 PART 3 M 2056 1220 2 435 DED F 10973

348 3 6 data cards 3126 1221 5 445 EED F 10985

348 9 035-053 PART 4 M 3132 1223 3 455 FED F 11001

473 1 6 data cards 4249 1224 5 465 GFD F 11012

473 7 054-064 PART 5 M 4255 1225 8 475 HED F 11024

601 2 6 data cards 5402 1229 4 406 AFB F 11056

601 8 065-073 PART 6 M 5408 1230 5 416 BFB E 11066

702 5 6 data cards 6314 1231 6 426 CFB F 11076

703 2 080-092 PART 7 M 6320 1232 8 436 DEB E 11087

813 3 6 data cards 7311 1234 1 446 EFB F 11098

813 9

r\r\ A 111 094-111 PART 8 M 7317 1235 4 456 FEB E 11110

918 9 6 data cards 8262 1236 7 466 GFB E 11122

919 6 140-150 PART 9 M 8268 1237 9 476 HFB F 11133

1026 8 6 data cards 9233 1240 7 407 AAQ S 11158

1027 5 160-164 PART 10 M 9239 1243 3 417 ABQ S 11181

1097 9 400 AFS F 9873 1244 7 427 ACQ S 11194

1099 1 420 BPS E 9883 1247 1 408 ADQ S 11215

1100 2 430 CFS E 9893 1251 4 418 AEQ s 11254

1101 3 440 DPS F 9903 1253 9 428 AFQ s 11277

1102 5 450 EPS F 9914 1258 5 409 BLOKD B 11318

1103 7 460 PES E 9925 1262 5 6 data cards 11354

1105 4 401 IAPI F 9940 1263 2 179-200 PART 12 M 11360

1106 5 421 IBFI F 9950 1402 3 410 SUBRQ s 12612

1107 6 431 ICFI F 9960 1413 5 412 MDQ S 12713

1108 7 441 IDFI E 9970 1414 9 419 BLAKD B 12726

1110 2 451 lEFI E 9983 1417 6 429 BLBKD B 12750

1111 4 461 IFFI F 9994 1419 5 439 BLCKD B 12767

1113 1 4UZ GPS E 10009 1421 7 6 data cards 12787

1114 3

/I 99 HFS F 10020 1422 4 300-312 PART 13 M 12793

1115 6 437 IRFS E 10032 1543 3 411 SMCQ S 13881

1117 4 442 JRFS F 10048 1544 6 462 FMTQ S 13893

1 1 1 o ilio 6 452 RFS F 10059 1548 3 57 data cards 13926

1191 o0 403 IF 1 r

r\ r\ ct C\ 10088 1554 6 350-360 PART 14 M 13983

i. 1 Z O

11 423 Tr" T JF 1 F 10099 1610 8 413 MAQQ S 14489

1124 4 433 Kv i c

r

1 n 1 1

1

1612 5 463 MBQQ co 1126 2 443 LFI F 10127 1614 2 473 AMQQ s 14519

1127 4 453 MP I F 10138 1616 5 483 BMQQ S 14540

1130 6 404 AFC F 10167 1618 3 6 data cards 14556

1131 7 414 RFC F 10177 1618 8 last data card 14561

1132 8 424 CFC F 10187 1618 9 (blank filler card) 14562

1134 1 434 DEC F 10198

1135 4 444 EEC F 10210 M = Main Program

1136 6 454 EEC F 10221 F = Function Subprogram

1138 3 464 HFC F 10236 S = Subroutine Subprogram

1141 4 6 data cards 10264 B = BLOCK DATA Subprogram

III-A-6
NBS-lUA (REV. 7-73)

U.S. DEPT. OP COMM.

BIBLIOGRAPHIC DATA

SHEET

1 t)ITRT 1/" AXIOM OR R P POR T MO

NBS-SP399 Vol. 1

2. Gov*t Accession

No.

3. Recipient's Accession No.

A TITI F AND SIIRTITI F

NBS FORTRAN TEST PROGRAMS

5. Publication Date

October 1974

nW«. r"^^i r f /^rm ino I ir o a r\ t a r t rtn ( 1 CTlLL'l.lillll^ Kyi ^dlll^dl lOll OtI c

7. AUTHOR(S)

Frances E. Holberton Elizabei±L G. Parker

8. Performing Organ. Report No.

07« PRRPORMTMr; rHi\rWi\IViliNO OR AiN A \T iZ^A 1 7 A T1 IL/iN Tr*M MW AA Mr- MP AlN A KTFVL/ AUUK AnnPtTQC Coo

NATIONAL BUREAU OF STANDARDS

DEPARTMENT OF COMMERCE

WASHINGTON, D.C. 20234

10. Project/Task/Work Unit No.

6401123

11. Contract/Grant No.

2a onon^orinp Orp an 1 7 ar i on MjimF" ?inH 1 1 tf^ ArliHr^^ct: ^^tr/^e^t C^ifw Sts^ft^ j^.JT^\

SaiDe as 9

Library of Congress Catalog Card Number: 74-1Z314

13. Type of Report & Period

Covered

Final

14. Sponsoring Agency Code

5. SUPPLEMENTARY NOTES Volumes 1, 2, and 3 contain the documentation, Version 1 program

listing, Version 3 program listing, respectively. The mgnetic tape containing the NBS

FORTRAN Test Piragrams is available in 7-track BCD, 9-track ASCII or EBCDIC recording.

6. ABSTRACT (A 200-word or less factual summary of most significant information. If document includes a significant

bibliography or literature survey, mention it here.)

The NBS FORTRAN test programs, written in Standard FORTRAN, are designed to test whether

a FORTRAN conpiler accepts the forms and interpretations of the FORTRAN language as described in the American National Standard FORTRAN document X3. 9-19 66. The test programs,

conprised of 116 test units, are structured into two versions, each containing approximately 14,500 punch card images. The test units may be used as separate executable

FORTRAN programs, or may be linked end to end with other test units, with a minimum of

user effort, to impreve operating efficiency. Version 1 is structured into 116 executable FORTRAN programs, and Version 3, containing the same 116 test units, is structured

into 14 executable FORTRAN programs for use on large FORTRAN processors.

The test program design criteria was to:

. Constrain all test programs to the FORTRAN Standard X3. 9-196 6.

. Reduce the effect of those areas in which the FORTRAN Standard does not prescribe

a method or solution, e.g., range, precision, size of computer, etc.

. Simplify the use of the FORTRAN test programs.

. Test FORTRAN language elements before they are used in support of other tests,

ffeintain an open ended system so that tests my be changed or added.

The test programs require the use of a card reader, printer and one intermediate tape

unit.

7. KEY WORDS (six to twelve entries; alphabetical order; capitalize only the first letter of the first key word unless a proper name; separated by semicolons

)

Computer programming language; IDRTRA14: FORTRAN validation; language validation;

standard FORTRAN; test program design.

8, AVAILABILITY

^Unlimited 19. SECURITY CLASS

(THIS REPORT)

21. NO. OF PAGES

1

' For Official Distribution. Do Not Release to NTIS

UNCLASSIFIED

171

Ix Order From Sup. of Doc, U.S. Government Printing Office

Washington. D.C. 20402. SD Cat. No. C13. 10;.39^9/V. 1.

20. SECURITY CLASS

(THIS PAGE)

22. Price

1 1 Order From National Technical Information Service (NTIS)

Springfield, Virginia 22151 UNCLASSIFIED

$2.35

USCOMM-DC 29042-P74

NBS TECHNICAL PUBLICATIONS

PERIODICALS JOURNAL OF RESEARCH reports National Bureau

of Standards research and development in physics,

mathematics, and chemistry. Comprehensive scientific papers give complete details of the work, including

laboratory data, experimental procedures, and theoretical and mathematical analyses. Illustrated with photographs, drawings, and charts. Includes listings of other

NBS papers as issued. ,

Published in two sections, available separately:

• Physics and Chemistry (Section A)

Papers of interest primarily to scientists working in these fields. This section covers a broad range of physical and chemical research, with major emphasis on

standards of physical measurement, fundamental constants, and properties of matter. Issued six times a

year. Annual subscription: Domestic, $17.00; Foreign,

$21.25.

• Mathematical Sciences (Section B)

Studies and compilations designed mainly for the mathematician and theoretical physicist. Topics in mathematical statistics, theory of experiment design, numerical analysis, theoretical physics and chemistry, logical

design and programming of computers and computer

systems. Short numerical tables. Issued quarterly. Annual subscription: Domestic, $9.00; Foreign, $11.25.

DIMENSIONS/NBS (formerly Technical News Bulletin) —This monthly magazine is published to inform

scientists, engineers, businessmen, industry, teachers,

students, and consumers of the latest advances in science and technology, with primary emphasis on the work at NBS.

DIMENSIONS/NBS highlights and reviews such

issues as energy research, fire protection, building

technology, metric conversion, pollution abatement,

health and safety, and consumer product performance.

In addition, DIMENSIONS/NBS reports the results of Bureau programs in measurement standards and techniques, properties of matter and materials, engineering

standards and services, instrumentation, and automatic

data processing.

Annual subscription: Domestic, $6.50; Foreign, $8.25.

NONPERIODICALS

Monographs—Mpjor contributions to the technical liter- ature on various subjects related to the Bureau's scientific and technical activities. Handbooks—Recommended codes of engineering and

industrial practice (including safety codes) developed

in cooperation with interested industries, professional

organizations, and regulatory bodies. Special Publications—Include proceedings of high-level

national and international conferences sponsored by

NBS, precision measurement and calibration volumes,

NBS annual reports, and other special publications

appropriate to this grouping such as wall charts and

bibliographies.

Applied Mathematics Series—Mathematical tables,

manuals, and studies of special interest to physicists,

engineers, chemists, biologists, mathematicians, computer programmers, and others engaged in scientific and technical work.

National Standard Reference Data Series—Provides

quantitative data on the physical and chemical properties of materials, compiled from the world's literature and critically evaluated. Developed under a world-wide

program coordinated by NBS. Program under authority

of National Standard Data Act (Public Law 90-396). See also Section 1.2.3.

Building Science Series—Disseminates technical infor- mation developed at the Bureau on building materials,

components, systems, and whole structures. The series presents research results, test methods, and performance criteria related to the structural and environmental functions and the durability and safety characteristics of building elements and systems.

Technical Notes—Studies or reports which are complete

in themselves but restrictive in their treatment of a

subject. Analogous to monographs but not so comprehensive in scope or definitive in treatment of the subject area. Often serve as a vehicle for final reports of work performed at NBS under the sponsorship of other government agencies.

Voluntary Product Standards—Developed under pro- cedures published by the Department of Commerce in Part 10, Title 15, of the Code of Federal Regulations.

The purpose of the standards is to establish nationally

recognized requirements for products, and to provide

all concerned interests with a basis for common understanding of the characteristics of the products. The

National Bureau of Standards administers the Voluntary Product Standards program as a supplement to the activities of the private sector standardizing

organizations.

Federal Information Processing Standards Publications

(FIPS PUBS)—Publications in this series collectively constitute the Federal Information Processing Standards Register. The purpose of the Register is to serve

as the official source of information in the Federal Government regarding standards issued by NBS pursuant

to the Federal Property and Administrative Services

Act of 1949 as amended. Public Law 89-306 (79 Stat. 1127), and as implemented by Executive Order 11717

(38 FR 12315, dated May 11, 1973) and Part 6 of Title 15 CFR (Code of Federal Regulations). FIPS PUBS

will include approved Federal information processing

standards information of general interest, and a complete index of relevant standards publications.

Consumer Information Series—Practical information,

based on NBS research and experience, covering areas

of interest to the consumer. Easily understandable

language and illustrations provide useful background

knowledge for shopping in today's technological

marketplace.

NBS Interagency Reports—A special series of interim

or final reports on work performed by NBS for outside sponsors (both government and non-government). In

general, initial distribution is handled by the sponsor;

public distribution is by the National Technical Infor- mation Service (Springfield, Va. 22151) in paper copy

or microfiche form.

Order NBS publications (except Bibliographic Subscription Services) from: Superintendent of Documents,

Government Printing Oflfice, Washington, D.C. 20402.

BIBLIOGRAPHIC SUBSCRIPTION SERVICES

The following current-awareness and literature-survey

bibliographies are issued periodically by the Bureau:

Cryogenic Data Center Current Awareness Service

(Publications and Reports of Interest in Cryogenics).

A literature survey issued weekly. Annual subscription: Domestic, $20.00; foreign, $25.00.

Liquefied Natural Gas. A literature survey issued quarterly. Annual subscription: $20.00.

Superconducting Devices and Materials. A literature survey issued quarterly. Annual subscription: $20.00.

Send subscription orders and remittances for the preceding bibliographic services to the U.S. Department

of Commerce, National Technical Information Service, Springfield, Va. 22151. Electromagnetic Metrology Current Awareness Service

(Abstracts of Selected Articles on Measurement

Techniques and Standards of Electromagnetic Quantities from D-C to Millimeter-Wave Frequencies).

Issued monthly. Annual subscription: $100.00 (Special rates for multi-subscriptions). Send subscription

order and remittance to the Electromagnetic Metrology Information Center, Electromagnetics Division,

National Bureau of Standards, Boulder, Colo. 80302.
U.S. DEPARTMENT OF COMMERCE

National Bureau of Standards

Washington, D.C. 20234

OFFICIAL BUSINESS

POSTAGE AND FEES PAID

U.S. DEPARTMENT OF COMMERCE

COM-21 5

Penalty for Private Use. $300