NBSIR 73-250

NBS FORTRAN Test Programs

Version 1 and Version 3

Frances E. Holberton

Elizabeth G. Parker

Institute for Computer Technology

National Bureau of Standards Washington, D. C. 20234

June 1973

Final Report

U. S. DEPARTMENT OF COMMERCE

NATIONAL BUREAU OF STANDARDS

NBSIR 73-250

NBS FORTRAN TEST PROGRAMS

Version 1 and Version 3

Frances E. Holberton

Elizabeth G. Parker

Institute for Computer Technology

National Bureau of Standards

Washington, D. C. 20234

June 1973

Final Report

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

NATIONAL BUREAU OF STANDARDS, Richard W. Roberts. Director

FOREWORD

It has now become imperative, because of the multitude of computers on the market and the corresponding multitude 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 Computer Techniques 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 attempt to measure the performance of

the compiler or the object program efficiencyo

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

and the FORTRAI>I 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.
c
ABSTRACT

NBS FORTRAN TEST PROGRAMS

Tlie NBS FORTRAN test programs, written in Standard FORTRAN, are designed to

test whetlier a FORTRAN compiler accepts the forms and interpretations of the

FORTRAN language as described in the American National Standard FORTRAN document

X3. 9-1966. The test programs are recorded on magnetic tape in approximately

14,500 punch card images, and comprise 116 test units. 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 improve operating efficiency.

An additional copy of these 116 test units structured into 14 executable programs

and tlie documentation supporting the test programs are included in the distribution.

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.

- Simplify 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 may be changed or added.

Tlie 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 requires less than 3,000 words 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 structured FORTRAN programs, excluding card read

and printer time.

Tlie program 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

iii
INTRODUCTION

This document contains supporting information for a set of FORTRAN Test Programs

developed by the Institute for Computer Sciences and Technology, National Bureau

of Standards.

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

as an executable FOF^TRAN program.

Version 3, containing the same 116 test units, structured into 14 executable

FORTRAN programs, identified as Part 1 to Part 14, has 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 test programs are written in

ASA Standard FORTRAN and test the language elements described in the ASA Standard

FORTRAN document X3.9-1966.

The F'ORTRAN Test programs, initially recorded on approximately 14,500 punch cards

for each version contain the FORTRAN source language programs and data. Extensive

I'ORTRAN comment lines are interspersed throughout the programs to enable the user

to both run tlie programs and determine the nature of the tests without the need

for additional documentation. The test results contain information related to

the expected results.

Section I of this document describes the system design, the programming techniques

and conventions used in the program development and should enable the user to

extend, alter or reorganize the test programs.

Section II of tliis document 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.

Se.ction III of this document describes the order and location of each test unit

and data as recorded on magnetic tape for distribution.

iv
NBS FORTRAN TEST PROGRAMS

Version 1 and Version 3

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 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

D3o 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

F., Difficulties Encountered During the Test Program Development I-F-1

Fl„ 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

v
G. References I-G-1

Section II USERS MANUAL

A. Operating Procedures

Section III DISTRIBUTION TAPE ORGANIZATION

A.- General Description

II-A-1

, Al. Organization of Tests and Facilities Requirements II-A-1

A2. Input Data Preparation II-A-3

A3. List of Test Programs for Version 1 II-A-4

. A4. List of Test Units by Parts for Version 3 II-A-11

B. Procedures for Isolating Test Unit Failures from Version 3 II-B-1

Bl. Deleting a Test Unit II-B-1

B2. Creating a Single Test from a Deleted Unit II-B-1

C. Sample Test Results

CI. Interpreting the Test Results II-C-1

: C2. Test Results II-C-2

I II-A-1

Al. FORTRAN Test Programs and Data Version 1 III-A-3

A2. FORTRAN Test Programs and Data Version 3 III-A-5

VI
SECTION I SYSTEMS MANUAL

FORTRAN TEST PROGRAM DESIGN

Al. Objective : To develop a set of 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.

Tlie 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:
a) Compile time.

- 'llie 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 Hdit and Load Time,

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

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

listing.

c) Hxecution 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 tlie 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 medium is punched cards, and the H-set punch card code was designed for FORTRAN, the H-set is deemed the most universally

I-A-2
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 minimum.

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 "Compi le- Load- and Go"

as a form of operations.

Hach 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-A-3 i
A4. Design Implementation

The 1-ORTRAN 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 (jw.d format field descriptor, a constant of the form

26Iil 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 program

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 to

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 other

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

appeared later in the set. Other appearances of tlie 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 FORTIUVN 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 transforming

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

tlie 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,

Tlie 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.

- Tlie 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 punclied 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 punched.

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, tlie 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 tlie 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

o

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 cardso

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 units 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

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

names 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 argioment, 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-A-7
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 unit but cannot be tested,

because the action is undefined when an endfile record is encountered

during execution of a READ statement.

A6. 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. Tlie 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) ll\e 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) Tlie unit of angular measurement for the trigonometric functions

is assumed to be expressed in radians.

I-A-8
"Tlie 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.

llie 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:

[

[
cQ
». DliSCRIFTION OF liAClI SHGMHNT

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, SPFCS , (non-executable) declares variable types, function types, and

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

Tliis 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.

Tlie 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, lODHF , (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

tliat 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
[ii 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 1/0 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 representable 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, I) ATA

2

, (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, 031, 032, 033 , 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.

j 030, 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

l-B-3
032, 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,

035, 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.

034, ARBAS , (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.

035, ARI-AS , (executable) combines subtractioii 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.

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

are both positive and negative. One to six multiplication operations

occur within a single expression.

037, ARIjMR , (executable) tests the multiplication of real values. Expressions

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

038, 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.

0 39, AR1M)V , (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, Al^FDV , (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

whicli 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, ARFIiX, (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, ARBllI , (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/division

3. addition/subtraction.

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

to cause new orders of evaluation.

050, SBB6 7 , (executable) tests the fonnation 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, SB1U5 , (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.

Tlirough 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, cwo 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.

05 7, IFF IX , (executable) references the intrinsic function, IFIX, which

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

variable names and expressions.

05 8, 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 ANIOD and MOD,

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

respectively.

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

,

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.

063, 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 ai\d

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.

0 71, 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, DP LOG , (executable) tests Basic External Function, DLOG, the double

precision natural logarithm function. Arguments 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, COLOG , (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, CQSNS , (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, DPCQS , (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, USQRO , (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.

09 8, 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 Function, 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, [)ATN2 , (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.

103, 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, CPXAU , (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 expressiono

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 com- plex constants.

142, CPXUV , (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.

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

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

variable and constant values raised to variable or constant powers.

Each expression contains a single term.

144, CPXQP , (executable) performs several arithmetic operations within an expression containing complex values. Each of the arithmetic statements

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

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

exjjression containing complex and real values. Other than in

exponentiation, complex values may only be combined with real values.

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

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

from two to four.

147, CRI:DV , (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

hierarcliy 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

witli 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, BRF(]P , (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. Tlie functions referenced are in

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

164, (^FCCP , (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 I5asic 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 CALL.

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. Tlie block data subprogram used to supply the

initial values of tlie labeled common blocks is contained in segment

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

labeled common blocks.

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

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

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

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

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

, blocks. Hiey correspond to the labeled common blocks of the block data

subprogram.

180, UNFRW , (executable) tests tlie 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, I^ACUP , (executable) examines the backspace statement. Data is created

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

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

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

unformatted input/output statements. This segment uses an intermediate

tapOc

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

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

requirements tliat 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, the 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 aritlimetic assignment statements occurring before the DO

statement. The DO range consists of an arithmetic assignment statement

involving tlie 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 statements 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
19 3, DONS

, (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. Tlie induction variable is used both within and outside

of t)ie range of the DO.

11)4, DONSX, (executable) examines a DO nest which has an extended range,

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

reentry is by way of an arithmetic IF statement.

19 5, DONfIL , (executable) examines the ranges of DO's which are within the

range of anotlier 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.

197, MORDO, (executable) examines DO ranges which have witliin, references to

statement functions and intrinsic functions, CALLS to subprograms, and

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

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

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

a subroutine subprogram without an argument list, and returns to an unlabeled CONTINUE statement. Tlie subroutine called is contained in

segment 410. This segment uses an intermediate tape.

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

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

Tliese 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,

301, I^ARIF , (executable) examines the arithmetic IF statement which contains

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

of the sign of zero is tested.

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

expressions contain double precision values and references to intrinsic

functions

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

FOiy^lAT statements as they relate to fields of input card images. There

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

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

tlie descriptors. Formats occur in which tliere 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 310 examines additional features not

contained in segment 008.

I-B-13
312, iU)FMT , (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. Tlie format specifications contained in arrays do not have

nil field descriptors. FORf-IAT 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.

350, 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 readied, 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.

35 1

,

l-'UNMX , (executable) further tests some Basic External Functions by

using trigonometric formulas. .

352, NAVIES , (executable) determines whether the compiler can distinquish predefined function names and data names from FORTRAN verbs. Tlie 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.

360, SPEC

2

, (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

an(i 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, l?FS , 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, ClvS , 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, HFS , 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, FFS , 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, Il^FI , 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, ICFl , 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, IHFI , 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 tlie 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, GF'S , 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, HPS , is a real function of tv^^o 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, \U-S , 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, IF I , 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.

'Hiis 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.

'Hiis 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.

l-B-16
414, 13FC, 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, [)FC , is a complex function of a double precision variable. The value

of tlie 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, liFC , 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.

435, DFD , is a double precision function of two complex variables. The value

of tlie function is the imaginary part of the product of the two complex

variables. This segment is referenced in segment 165.

445, FFD , 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 value 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, (il'L) , 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, HFl) , 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, BF-'B , 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, Ur-'B , 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, tiFB , 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, IIFB , 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.

40 7, AA(^ , 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 subprogram (segment 417), whose

argument list contains integer and real array names.

417, AB(| , is a subroutine subprogram called from another subroutine subprogram (segment 407) which is called in segment 167.

427, A(](^ , 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, Al)(j , 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, AliQ , 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 168.

428, AF(|, 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. Tliis segment is to be run with segment 169.

410, SlJjjRQ , is a subroutine subprogram which 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 tlie calling

program. It is called from segment 19 7.

462, FMTQ , is a subroutine subprogram called by segment 312, FORMAT

specifications and Uolleritli 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 referenced.

This subroutine is called from segment 352.

46 3

MBQQ , is a subroutine subprogram in which an intrinsic function name is

used as a variable name. It is called from segment 352,

473, AM(y| , is a subroutine subprogram in which an intrinsic function name is

used as a variable name. This subroutine is called from segment 352.

483, I^MQQ , 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
i (
C. TRST 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 X3. 9-1966

Section Number and Title

1. Purpose and Scope

2„ Basic Terminology

3. Program Form

3.1 The FORTRAN Character Set

3.1.1 Digits

3.1.2 Letters

3.1.3 Alphabetic Characters

3.1.4 Special Characters

3.1.4.1 Blank Character

3.2 Lines

3.2.1 Comment Line

3.2.2 End Line

3.2.3 Initial Line

3.2.4 Continuation Line

3.3 Statements

3.4 Statement Label

3.5 Symbolic Names

3.6 Ordering of Characters

4. Data Types

4.1 Data Type Association

4.2 Data Type Properties

4.2ol Integer Type

4,2.2 Real Type

4c 2. 3 Double Precision Type

4.2.4 Complex Type

4.2.5 Logical Type

4.2.6 Hollerith Type

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

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)

003, 010, 149, ALL

054,301,302

Oil

Oil

013

015

016

003,010

017

003,010,011

003,010,011

003,010,013

003,010,015,067

003,010,016

003,010,312,462

I-C-1
S.1.2 Variable

5 . 1 . .'S Array

5.1.3.1 Array Hlement

5.1.3.2 Subscript

5.1.3.3 Subscript Expressions

5.1.4 Procedures - 5.2 I'unction I^eference

. 5.3 Type Rules for Data and

Procedure Identifiers

5.4 Dummy Arguments

6. lixpressions

6.1 Arithmetic Expressions

6.2 Relational Expressions

6.3 Logical Expressions

6„4 livaluation of Expressions

7. Statements .

' 7.1 Executable Statements

7.1.1 Assignment Statements

Arithmetic Assignment

Statement

Logical Assignment

Statement

GO TO Assignment

Statement

Control Statement

7.1.1.1

7.1.1.2

7.1,1.3

7.1.2

7.1.2.1

7.1.2,

GO

1.1

7.1

7,L

2.1.2

2.1.3

TO Statements

Unconditional GO TO

Statement

Assigned GO TO"

Statement

Computed GO TO

Statement

Arithmetic If Statement

Logical If Statement

CALL Statement

RETURN Statement

CONTINUE Statement

Program Control

Statements

7.1 STOP Statement

7,1.2.7.2 PAUSE Statement

7.1,2.8 DO Statement

7.1,3 Input /Output Statements

7.1.3.1 (initial record, next

and preceding record)

7.1.3.2 READ and WRITE Statements

7.1.3.2.1 Input/Output Lists

7.1.3.2.2 Formatted READ

7.1.3.2.3 Formatted WRITE

7.1.3.2.4 Unformatted READ

7.1.3.2.5 Unformatted WRITE

7,1.2.2

7.1.2.3

7.1.2.4

7.1.2.5

7.1.2,6

7.1.2.7

7ol,2.

003,010,312

003,010

003,010

003,010

050,051,052,053

(See Section 8)

(See Section 8)

003,010,110,111,

Section 8)

(See Section 8)

(Tables 3 § 4 See

030-043,140-148

016,300

016,300

011,013,015,017,043

011,013,015,017,030-043,140-148

016

021

020

021

022

054,301,302

054,300

167,168,200,312,352,408

400-483

150,190-197,200

ALL, 360

(Omitted)

190-197

180,182

008,310

008,009,196,310,312

008,009,196,310,312

180,182

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 ENUFILE 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 lixtemal Functions

8.,3.1 Defining Function Subprograms

8.3.2 Referencing External

Functions

8.3.3 liasic lixtemal Functions

8.4 Subroutine

8.4.1 Defining Subroutine Subprograms

8.4.2 Referencing Subroutines

8.5 Block Data Subprogram

400, 420, 430, etc,

160-166

0 80-103,351

408,410,418,427,428,462

167,168,200,312

169,179,409,419,429,439

9. Programs

10. Intra-and Inter-Program Relationships / • ,. , ,

Rules stated are included under

tests related to Section 3 through

Section 8 of the FORTRAN Standard
"PROGRAM INFORMATION

'riie following points describe the organization of PORTRAY tes'; programs:

'."he programs are divided into a number of small segments,

Fost r.egments, 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 eacli test less dependent

on other language features.

livery segment begins with a heading of comment lines vv!^ich gives

the segment name, segment number, pertinent ASA referer.ces,

purpose of tlie segment and restrictions observed in the segment.

The last line in eveiy segment is marked by a comment line with the

message "FND OF TEST SEGMENT xxx."

Comments, throughout each segment, give derailed ASA references

and additional explanations of the coding.

Dl . Conventions Jsed in the Test Programs

Certain conventions have been adopted and ai s used thr^^ghout the document, the program code and the test results. These cor.ventions provide the user with a means to:

identify types of data,

determine the number of dimensions associated with a given

array,

distinguish jrogram elements,

correlate references between the ASA FORTRAN standard document

and the pertinent test segments.

The conventions are described below.

a) Segment Identification

liach segment is identified in the following two ways:

By a 3- to S- 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
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 program listing with this document

and tlie 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 P

H

for FORTRAN Test Version 1.

for FORTRAN Test Version 3.

Columns 74, 75, 76 contain nnn

Columns 77, 78, 79 contain mmm

Column 80 contains x

where 'nnn' are 3 unique

digits (0-9) which identify

the program segment. (The

greatest segment number

allowed is 699)

.

where 'mmm' are 3 digits (0-9)

representing a line number

witliin the program segment.

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.

Statement Labels

Hach 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 tlie 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
Tliis convention provides ten unique labels per program segment.

IVhen more than ten labels are needed in any segment, digits 1-3 of

the extra labels contain a unique number between 700 and

999, instead of the program segment number. For this reason, the

greatest program number 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,

restriction 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 CONIMON or EQUIVALENCE statements. One or two optional characters may begin

each name to make it unique. Tlie conventions are as follows:

If character 5 is I the type is integer;

(or last cliaracter) S til a t>'pe 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)

If character 3 is

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.

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.

D2. 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.

Level of Nesting

The DO loop segments of the program contain a maximum of FIVE nested

loops.

Number of Arguments

The test program contains subprograms with up to TWENTY-FIVE

arguments . ..

•

c) Size of Arrays

Tlie 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 of 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

Double precision

constants

Complex constants

(each half)

Hollerith constants

5 digits

7 digits

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 Prugrams

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 IDF I 2 DFS 2 DFB 1 IliFI 1 EFS 1 EFB 1 IFF I 20 FFS 20 FFB 1 IF I 1 GFS 1 GFB 2 JFI 2 IIFS 2 HFB 21

KFI 1 IRFS 1 LFI 2 : / ^ ': JRFS 2 MFI 21 RFS 21

Double Precision . . = Complex Functions

I'unctions

AIT) " I : .

'

•

' AFC 1 BFD , 1 ;

' BFC 1 CFD 1 : CFC 1 DFD 2 DFC 1 liFD 1 EFC 1 FFL) 2 FFC 1 GFD 1

' HFC 21

IIFD 21

Block Data Subprograms -No Names Permitted

In FORTRAN Language But Identified by

Subroutines Comment Cards As:

AAQ 9

'

. BLOKD

AI5Q 7> BLAKD

ACQ 0 BLBKD

ADQ 24 . • BLCKD

AHQ 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(IO)

A1D(4)

A2D(2,2)

A3D(2,2,2)

BC2D(7,4)

CC3D(7,2,2)

DPA1D(5)

DPA2D(2,2)

LP ID (43)

FC2D(5,5)

MCA3n(l,4,2)

RC3D(3,3,3)

A1C(12)

A2C(2,2)

A3C(2,2,1)

B1C(8)

B2C(4,2)

B3Cr2,2,2)

LL1C(32 J LM2C(8,4)

LN3C (9,2,2)

EP1C(30)

AX ID

AX2D

AX 3D

DXID

DX2D

DX3D

AXlC

AX2C

AX3C

DXIC

DX2C

DZ3C

Logi cal Integer

A1B(2)

A2B(2,2)

A3B(2,2,2)

GG1B(2)

G1I2B(1,2)

GI3B(1,1,2)

MCA1B(7)

LIB(IO)

111(5)

121(2,2)

131(2,2,2)

MCA3I(2,3,3)

IIJ2I(4,2)

IT3I(4,2,2)

IU3I (2,3,3)

AXIB

AX2B

AX3B

DXIB

DX2B

DX3B

I-D-7
Dimension Common

AC1S(2S) ; IAX1I(4)

AC2S(5,6) • IAX2I(3,3)

AC3S(1,1,3) IAX3I(2,2,2)

A1S(5) . ;. ^ AXIS (4)

A2S(2,2) , " AX2S(3,3)

A3S(3,3,3) AX3S(2,2,2)

CMA1S(5) AX1D(2)

CMB1S(5) AX2D(2,2)

liPlS(33) AX3D(2,2,2)

lACii(S) AX1C(2)

IAC2IC2,7) AX2C(2,2)

AX3C(2,2,2)

M(JA1I(5) AX1B(2)

LI I (10) AX2B(2,2)

IAB1I(4) AX3B(2,2,2)

1AB21(3,3) /BLK1/JAX1I(2)

IAB3I(2,2,2) JAX2I(3,3)

AB1S(4) , '

. ; /BLK2/DX1S(2)

AB2S(3,3) DX2S(2,2)

AB3S(2,2,2) . , /BLK3/DX1D(2)

1 VI I (1024) DX2D(2,2)

ZU1S(12) ' /BLK4/DX1C(2)

ZU3S(3,2,2) DX2C(2,2)

ZU2S(4,2) /BLK5/DX1B(2)

ZT1S(4) DX2B(2,2)

/BLK6/JAX3I(2,2,2)

YHR1S(7) - DX3S(2,2,2)

J (2) DX3D(2,2,2)

JJ f 1 , 1

)

DZ3C(2,2,2)

JJJ (1,1,1) DX3B(2,2,2)

JJJJ(1,1)

JJJJJ(l)

JJJJJJ(l)

GOTO (2, 2)

IF (5)

MX1I(3)

TX1S(3)

MMY1I(400)

NNY3I(20,10,2)

MX2I(2,3)

TX2S(2,2)

WAZ2S(3,2)

RVY1S(2)

RVY2S(1,2)

JY2I(2,2)

JYll(S)

NZ11(4)

NZ2I(4,2)

WAZ1S(2)

I-D-8
lilank Connnon 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.

Tlie following ordering of blank COMMON is used in Segments 162,

163, 164, 165, 166, 167, 168 and 200.

AXVS

CXVS

IXVI

IAX1I(4)

IAX2I(3,3)

IAX3I(2,2,2)

BXVS

AX1S(4)

AX2S(3,3)

AX3S(2,2,2)

AXVD

AXll)(2)

AX2DC2,2)

AX3D(2,2,2)

AXVC

AX1C(2)

AX2C(2,2)

AX3C(2,2,2)

AXVB

AX1B(2)

AX2B(2,2)

AX3B(2,2,2)

Tlie 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

0

2* 10

3* 246

DATA Statement 2 Form and Value of the Entry

Symbolic Name

2* 0.0

2*-750.05

.24615E3

2.4615E2

3.54674E+3

DATA Statement 3

Symbolic Name Form and Value of the Entry

BVD

1)PA2D(2,1)

CVD

DPA2D(1,2)

DVD

DPA2D(2,2) :':'/

DATA Statement 4

Symbolic Name

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)

111(1)

MCA3I( 1,2,1)

M(:A3I(2,2,2)

IAC21(2,5)

IAC2I(2,6)

MCA31(2,1,1)

EP1S(8)

EPIS(IO)

HP1S(12)

AC2S(S,5)

EPlS(ll)

AC2S(5,3)

AC2S(5,2)

+34567890. lD-3

345.678901D+2

112233. 5D-08

11.22335D-4

3.4D12

0.34D13

Form and Value of the Entry

/\DSVC

LN3C (9,1,2)

LL1C(30)

LN3C(8,2,2)

IJ^12C(8,3)

LN3C (9,1,1)

LL1C(32)

LN3C(8,1,2)

I-D-10
DATA Statement 5 Symbolic Name

MAVB

MCA1B(6)

MBVB

DATA Statement 6

Symbolic Name

(;i3B(l,l,2)

GGlB(l)

liPlS(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

AlU(l)

1)PA2D(1,1)

MCA3D (1,1,1)

A1D(2)

MCA3D(1,1,2)

LL1C(29)

LN3C(8,2,1)

BCVC

LM2C(8,4)

GH2 B(l,l)

0136 (1,1,1)

MCVB

111(3)

111(4)

MCA3I (1,2,2)

AC2S(5,6)

JVS (type REAL)

HPIS(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 (-200., +4000.)

LM2C(8,2) (-2000. E-1, +400. El)

All)(3) +1122.335D-6

MCA3I)(1,3,1) 0.00001122335D+2

A1I)(4) 34.0D11

MCA3[)(1,4,1) 0.034D14

MCA1B(7) 2* .FALSE.

GH2B(1,2) '

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 o^UW — Oz>\Jj 1 QD 8Q 1 D- 8Q1 Q

7080-710S 008 7106-7107 RQ7n- SQ 7Q 1Q7

7108-7112 008 7113-7117 xy t oy H

1

71 1 8-71 70 008 71i X 4^71X 1lyQ/l4 oy 4 D

71 77-71 74 008 7175 QQ A A 1 Q/1 ly 4 oy 4o

71 76-71 3=1 008 \t\J \j 7 1 "^6 - 7 1 7 ^Q A iy 4

53QC C Q 1 QQ oybo-y isy

71 38-71 56 008 7157-716Q QIQn y iy u-yQ1QQ ly o

1 Q 7 iy / Q 1 QQ Q X(\C\ y iyy -y ouu 7170-7173 017 7174-7199 9301-9308 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 99 39-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 99 80-99 89 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

licse 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 tlie 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 00 8-360

Subprograms Segment 400-485

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

tliey are embedded to facilitate the identification and location of

these elements in a FORTRAN program and to aid in the elimination of

duplicate 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. Consolidating 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 FORTRAr>l 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
liach 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 eacli 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.

'Hie 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 nnnAx]^^

I/O Assigment Statements nnnBdM]z5

STOP and END • nnnCd>5]!J

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 tlae 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 FORTRAI^I 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.

Vflien test programs are consolidated into larger executable programs, it is

desirable to liave 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 Versp.on 3, this has been done

by identifying each executable program as a PART, numbered from 1 to 14.

Tlie first six input cards associated with segment 008 will then be

required for running each of the consolidated test sets„ 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 Preparaticin.

! Tlie number of test segments which may be linked end to end is a function

of the power of the FORTRAJnI 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,

Wliile 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
113 o 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.

H4. 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
Ii6 . 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

liave 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
•1
F. DIFFICULTIES ENCOUNTERED DURING THE TEST PROGRAM DEVELOPMENT

During the implementation of the program design, a number of difficulties

other tlian the normal program debugging arose which required resolution.

These difficulties have been classified under the following five categories.

F 1 . 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.

Tliis lead to a long list of questions which needed resolution. The ASA

FORTI^N 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 tl\at the conversion of these values would be exact. Recognizing

tliat 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

tlie same internal representation as the constant 2.6. Rather than attempt

to apply an error tolerance to the results, it was decided to substract

tlie 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

Tlie 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. IVhere 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. IVhen 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.

'I'he effect of the scale factor both on READ and WRITE is such an example.

If the PORTION 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.

Tlie 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

tlie 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

tlie actual function result. Increasing the number of decimal digits expressed

in the format field descriptor should eliminate the difficulty.

Tlie liasic 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

Tlie difficulty of assuring tliat 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 FORI^IAT 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. Performing the Tests

Tlie initial running of the completed test programs on various FORTRAN

processors was performed from punched cards. The punch card code used

was the BCD-ll set which is identified in Appendix D of the FORTRAN

Standard X3. 9-1966. It was assumed that any computer installation would

liave 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 tc 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 subprogram.

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.

IVlien a compiler liad an option to check the programs for conformance

to tlie FORTRAI>I standard and no diagnostic messages resulted, the

test program writers were lulled into the belief that the programs

mot the standard, which later running on a different compiler proved

not to be the case. Not all non-standard usage even within a single

I'Oiri'RAN program unit were detected.
G. f^hfi;ri;n(:hs

1. American Standard FORTRAN X3. 9-1966 - since the original publication

of the FOr^Tl^N 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 19 71.

4. Handbook of Mathematical Functions with Formulas, Graphs, and Mathematical

Tables. NBS. M. Abramowitz and Irene A. Stegun editors. Applied

Mathematical Series 55, 1966.

1

I-G-1
(5
SECTION II USERS MANUAL

A. OPERATING PROCEDURES

The NBS FORTRAInI 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

Al. Organization of Tests and Facilities Requirements

The FORTRAN-] Test Programs are presented in two forms, one for

execution on small FORTRAJ^I 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.

liach program is set up (except for the system control cards) for a

I'ORTIUVM compile- load- and- go execution.

Tlie user is assumed to be familiar with the operating system control

rcc[uirements necessary to perform a FORTIIAN compilation.

Tliose steps should be followed:

- (Choose the appropriate control cards for a FORTRA^J compile. , - C^lieck tlie format and ordering of control cards carefully. ' - In j)articular, check if any control cards are necessary for

, FUNCTION, BLOCK DATA, and SUBROUTINE subprograms.

- (]heck 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 tlie 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

otlier 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 Fxecute 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 the 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 prograin 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

wliich 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.

These 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 u^nd 5 must be replaced and prepared

to introduce three (3) lines of print which precedes test unit 008

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

tlie 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 RhAD, and the symmetr>' of interpretation of a terminal slash (/)

in a FOR^IAT 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.

Tliese 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
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

Tlie following table identifies each of the 116 Test Programs for Version 1 and

the associated subprograms.

Codes Used to Describe the Information in the Table

Column - Column

1 M

1- S

'l B

Main Program 4 X Intermediate Tape Required

lixternal Function

Subroutine 5 C Blank Common Block

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

Scg. Name Test - '

'

' ' Table

000 Directory of Test Programs 342

008 - I'MTRW Formatted Input/Output

6 Identification Cards and 40 Data Cards

M I 8 529

46

009 - A-Conversion

3 Data Cards

Mil 115

3

010 - 003

1)ATA2 DATA Statement Use

- DATAl Test Format of DATA Statement

M - 3

M - - - - D

74

84

Oil - AAS(5N 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

01(1 - LASGN Logical Assignment Statements M - 1 106

017 - INTRL Arithmetic Assignment Statements M - 4 185

020 - U(i01'() 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 - ARFUV 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

05Subscripts of Int., Real Arrays v+k, v-k M 1

O 1

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

c*v-k

M - 1 - _ - 112

053 b 15 F i 7 Subscripts of D.P. Arrays v, k, c*v, c*v+k,

c*v-k, v+k, v-k

M 1 /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 IFF IX Intrinsic Function IFIX M 1 mm — - 59

058 IFSGN Intrinsic Functions SIGN, ISIGN M 1 - 82

059 IFUAB Intrinsic Function DABS M 1 - 65

II-A-5
ObU - IFTRN Intrinsic Functions AINT, INT, lUINT M - 1 - - - 107

001 - IFMOU Intrinsic Functions mOD, MOD M - 1 - - - 84

052 - Il-MAX Intr. Funct. AMAXO, AMAXl, MAXO , MAXl, DMAXl M - 2 248

063 - IFMIN Intr. Funct. AT^INO, AMINl, MINO, MINI, DMINl M - 2 - - - 225

064 - IFDSG Intrinsic Function USIGN M - 1 - - - 58

065 - IFDIM Intrinsic Functions DIM, IDIM M - 1 - - - 69

066 - IFSGL Intrinsic Function SNGL M - 1 - - - 80

067 - IFRFL Intrinsic Function REAL M - 1 - - - 102

068 - IFIMG Intrinsic Function AIMAG M - 1 - - - 129

069 - IFDBL Intrinsic Function DBLE M - 1 - - - 57

070 - IFCPX Intrinsic Function CMPLX M - 1 - - - 61

071 - IFCJG Intrinsic Function CONJG M - 1 - - - 66

0 72 - IF'BMS Integer and Real Intrinsic Functions M - 1 - - - 129

073 - IFFMS Int., Real and D.P. Intrinsic Functions M - 2 - - - 181

080 - LXPON Basic External Function EXP M - 1 - - - 60

081 - DEXPO Basic External Function DEXP . M - 1 68

082 - CEXPO Basic External Function CEXP M - 3 98

083 - LOGTM Basic External Function ALOG M-1-- - 57

084 - DPLOG Basic External Function DLOG M-1 67

085 - CXLOG Basic External Function CLOG M - 3 106

086 - COLOG Basic External Function ALOGIO M-1 - - - 56

087 - DCLOG Basic External Function DLOGIO M-1 66

088 - SINUS Basic External Function SIN M-1 81

089 - OPSIN Basic External Function DSIN M-1 - - - 82

090 - CSICO Basic External Functions CSIN, CCOS M-1 - - - 65

091 - COSNS Basic External Function COS M-1 82

092 - DPCOS Basic External Function DCOS M-1 - - - 81

II-A-6
094 - TANGII Basic lixtemal Function TANll M 1 - 57

095 - SQROT Basic lixternal Function SQRT M - 1 - _ - 55

096 - DSQRO Basic lixtemal Function DSQRT M _ 1

«. — - 63

09 7

- CSQRO Basic External Function CSQRT M 1

mm — - 74

09 8 - ARCTG Basic lixtemal Function ATAI>I M _ 1 - 58

099 - DACTG Basic Extemal Function DATAN M 1 - 66

100 - ACT(^2 Basic Extemal Function ATAJ^2 M _ 1 _ _ - 56

101 - 1)ATN2 Basic Extemal Function DATANM _ 1 _ _ - 66

IVJ Uf\ Basic Extemal Function DMOD M 1X

103 - CABSA Basic Extemal Function CABS M - 1 - - - 84

110 - BSFTS Statement Functions - Integer and Real M - 1 - - - 74

005 - BSFDF Statement Function Definition M 35

111 - FSFTS Statement Funct . - D.P., Complex, Logical M 1 - 108

006 - FSFDF Statement Function Definitions M - 58

140 - CPXAU Addition and Subtraction of Complex M — 1 — — - 76

141 - CPXMU flultiplication of Complex Numbers M 1 _ _ - 141

142 - CPXUV Division of Complex Numbers M 1 - 83

143 - CPXHX Exponentiation of Complex Numbers M _ 1 - 125

144 - CPXOP Aritlimetic Operations on Complex M 1

mm — - 63

145 - CRliAD Add and Subtract Complex and Real Numbers M _ 1 _ - 67

146 - CRliMU Multiply Complex by Real Numbers M 1

mm _ - 62

147 - CRl-;i)U Divide Complex by Real and the Reverse M _ 1 _ ^ - 58

148 - CRliOP 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

il-A-7
1()0 BRI-CP Iteal Fxtemal Functions

400 - AFS Real Argument

420 BFS Real Arguments

Integer Argument

A A l\ MFC Integer Arguments

4o(J Array Name as Argument

460 Different Types of Arguments

161 BIFCP Integer External Functions

401 - lAFI Real Argument

421 IBFI Real Arguments

T r* C T ILr 1 Integer Argument

AAA r \\X2 T iUr 1 Integer Arguments

4o i

T I- m Array Name as Argument

40

1

IFF I Different Types of Arguments

102 - 1-RFCP Real External Functions

402 CjFS D.P. Argument

/IT') 4Z Z line Complex Arguments

/I 7 0 4oZ rone 1 Kr o Logical Argument

/I /I T 7 I) CC Fxtemal Procedure

452 RFS Different Types of Arguments

163 - I-IFCP Integer Fxtemal Functions

403 IFI D.P. Argument

/I O 7 4/i Jri Complex Arguments

433 f P T Kr i Logical Argument

A A '7 443 I P T LF

1

Fxtemal Procedure

A C 1 4b3 MF 1 Different Types of Arguments

A i A 164 LFCxP Complex hxtemal Function

404 _ AFC Real Argument

414 - BFC Integer Argument

424 CFC Array Name as Argument

A 1 A ufl D.P. Argument

AAA 444 FFC Complex Argument

A V A 434 r hL Logical Argument

A C A 464 HFC Different Types of Arguments

165 DPFCP Double Precision External Functions

/IMC" 405 AFD Real Argument

/lie 4 io Mru unn Integer Argument

425 CFD D.P. Arguments

435 DFD Complex Argument

445 FFD Logical Argument

455 FFU Extemal Procedure

465 GFU Array Name as Argument

475 HFU Different Types of Arguments

II-A-8
100 — BFCCF Logical Fxternal Functions M - 1 - c -

1 A A 144

400 — AFB Real Argument F 10

410 — Bl'B Integer Argument F 10

426 - CFB D.P. Argument F 11

436 — DFB Logical Argument F 11

446 FFB Complex Argument F 12

456 - FFB Array Name as Argument F 12

466 - GFB External Procedure F 11

476 - IIFB Different Types of Arguments F - - - c - 25

167 SBIITN Subroutine Subprogram M 1 c 103

40 7

- AAQ Integer, Real Variables, Array Elements S 23

417 - AI5Q Array Elements S 13

427 - ACQ No Argument List s - - - c - 21

168 FSBR'l' Subroutine Subprogram M 1 c 153

408 - AUQ Different Types of Arguments s 39

418 A1:Q Array Names and Integer Arguments s 23

428 AFQ No Argument List s c 41

169 - BLKDT BLOCK DATA Test M - 1 - - - 71

409 - BLOKU BLOCK DATA Subprograir. B - - - - D 36

179 BLKDA BLOCK DATA Test M 1 70

419 - BLAKL) BLOCK DATA Subprogram B - - - D 24

429 BL15KU BLOCK DATA Subprogram B D 17

439 - BLCKU BLOCK DATA Subprogram B - - - - D 20

180 - UNFRW Unformatted WRITE and READ M - 1 X - - 133

182 - BACLIP BACKSPACE Tape M - 1 X - -• 74

190 -- UOTI-IM DO Loops - Terminal Statements M - 1 - - - 135

191 - DOLMl DO Loops - Parameters as Variable Names M - 1 - - - 62

192 - DONSC DO Loops - Completely Nested Nest M - 1 - - - 166

19 3 - DONS I DO Loops - Incomplete DO, Exit by GO TO M - 1 - - - 60

194 - UONSX DO Loops - Extended Range M - 1 - - - 130

195 - DONML DO Loops - Nested Nest M - 1 - - - 65

196 DON 10 DO Loops - I/O Terminal Statements M — 1 X 91

19 7 - MORDO DO Loops - I/O, Statmt. Ft., Intr Ft., CALL M - 1 X - - 143

005 BSFUF Statement Functions M 35

412 MDQ Subroutine Subprogram S 13

200 SUBRl Subroutine - Operations Done at Sub Level M 1 X c 52

410 SIJBRQ Subroutine Subprogram - No Arg, List S X c 101

II-A-9
300 - LOGIF Logical IF Statements M - 1 - - - 275

411 - SMCQ Subroutine Subprogran S - - - - - 12

301 - BARIF Arithmetic IF Statements - Integer, Real M - 1 175

302 - I-ARIF Aritlimetic IF Statements - D.P. M - 1 - - - 99

310 - lOFMT Formatted READ/WRITE - Additional -Features MIS 310

38 Data Cards ------ 58

312 - RDFMT Formats in Arrays M I 1 - - D 201

4b2 - F'MTQ Subroutine Subprogram S - - - - - 33

13 Data Cards ______ 13

350 - f1ISC5 Specifications for Program Form M - 1 - - - 156

351 - FIJNMX Basic External Functions - Trig Formulae M - 1 - - - 58

352 - NAMES Names Resemble FORTRAN Verbs, Functions M - 1 79

413 - MA(|Q Subroutine (Intrinsic Function Names S - - - - - 15

403 - MBQQ Subroutine used as Variable Names in s - - - - - 15

473 - AM(^Q Subroutine some Subrts. and as S - - - - D 21

483 - BM(^Q Subroutine Functions in others) s - - - - - 16

360 - SPEC2 CO^'IMON, DIMENSION, EQUIVALENCE M - 1 - / - 169

Total Cards 14360 L

lI-A-10
List of Test Units by Parts for Version 5

FORTRAJvl TEST PROGRAMS SUMMARY INFORMATION FOR VERSION 3

Part #

# of

TEST UNITS

# of INPUT

SUBPROGRAMS DATA*

INTERMEDIATE

TAPE REQUIRED

Pgs of

OUTPUT # of CARDS

1 4 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 whicli are appended to each Part for user output documentation

input unit #5 = card reader

output unit #6 = printer

intermediate unit #9

II-A-11
VLRSION 3 PART 1 MAIN tROGRAM

Segment H and Name Test

1.2.

3.

000

001 SPliCS

003 DATAl

00 7 lODliF

00 8 FMTRW*

009 Ai-iy^IT*

010 UATA2*

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 Statements

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

I
VERSION 3 PART 2 MAIN PROGRAM

Segment tt and Name Test

1.

000

001

00 7 013

015

SPECS

lODHF

DASGN*

CASGN*

Special Documentation

Specifications needed for Part 2 I/O Unit Assignment Statements

Simple Double Precision Assignment Statements

Simple Complex Assignment Statements

Input 6 cards - prepare 3 cards (1, 3, and 5) Unit #5

Output Print 18 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 2 are not part of the

test, but are included for user output documentation only.

II-A-13
VliRSlON 3 PART 3 MAIN PROGRAM

Segment /' and Name Test

000 Special Documentation

001 SPHCS .:\ Specifications needed for Part 3

007 lODHF '

. . I/O Unit Assignment Statements

016 LASGN* / ^ . 3 i Logical Assignment Statements

017 INTRL* V. :

• Arithmetic Assignment Statements

0 20 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

0 34 ARBAS* . .; ;V i-. Basic Addition and Subtraction-Integer

and Real

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 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

nnn

UU 1 ope CX rX CdL J. Ollb IlccClcU lUX rdlL H UU / luurit i/u uniL AssigTimenL otaLcmenT-b

ARP AC* AUU.XLXUI1 dllCl O UU L I dC L X UI 1 U-L L/UUUiC r i c ii X Uil

V dX Ucb

U JO A R HM T *Flu X L Xp X X C d.L X UJ 1 UX XIlLcycJ Vd.XUCS>

U .5 / A R RMR * nuixipii canon or Keax vaxues 038 ARFMU* Mil 1 1 1 r) 1 i rat i nn n'f Double Precision Values

039 ARBDV* Division of Integer and Real Values

040 ARFUV* Division of Double Precision Values

041 ARBliX* Exponentiation of Integer and Real Values

042 ARFliX* Exponentiation of Double Precision Values

043 ARBHI* Hierarchy of Operations and Parentheses

050 SBB6 7* 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 DouDle 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 PROGRAJ-1

(Intrinsic Function Tests)

Segment # and Name Test

000 Special Documentation

001 spncs Specification needed for Part 5 007 IOI)]:F ! .

'

. I/O Unit Assignment Statements

054 SIMIF* - . Arithmetic IF, logical IF followed by GO

055 IFABS* ABS, lABS (Absolute Value Functions)

056 IFFLT* J.' FLOAT (Convert from Integer to Real)

057 IFF IX* I 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 IFMOU* ;• '. / AMOD, MOD (Remaindering)

062 iFMAx* • \ ; ;.. : AMAXO, AMAXl, MAXO, MAXl, DMAXl (Choose

Largest Value)

063 iFMiN* f V . r /AMINO, AMINl, MINO, MINI, DMINl (Choose

Smallest Value)

064 IFUSG* 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
VKRSION 3 PART 6 MAIN PROGRAM

(Intrinsic Functions)

Segment # and Name Test

1.

000

001 SPliCS

007 lODHF

065 IFDIM*

006 IFSGL*

067 IFRIiL*

068 IF IMG*

069 IFDBL*

070 IFCPX*

071 IFCJG*

072 IFBMS*

073 IFFMS*

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 Number)

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 U.P

Input 6 cards

Output Print 11 pages

*Produces Output

Unit #5

Unit #6

Note 1 Prepare replacement cards for cards 1, 3, and 5 as described in Data

Preparation Section I I -A- 2. These cards in Part 6 are not part of the

test, but are included for user output documentation only.

II-A-17
VHRSION 3 PART 7 MAIN PROGRAM

Segment If and Name Test

000 , Special Documentation

001 SPliCS : ^ Specifications needed for Part 7 00 7 lODliF

' I/O Unit Assignment Statements

080 HXPON* Basic External Function - EXP

081 DHXPO* : .

=: Basic External Function - DEXP

082 CliXPO* - Basic External Function - CEXP

083 LOGTM* Basic External Function - ALOG

084 DP LOG* . ;

' :

• : Basic External Function - DLOG

085 CXLOG* . : Basic External Function - CLOG

086 COLOG* ;

• " . Basic External Function - ALOG 10

087 DC LOG* • ; Basic External Function - DLOG 10

088 SINUS* : r j . ;r; Basic External Function - SIN

089 OPSIN* :

, - v; Basic External Function - DSIN

090 CSICO* Basic External Function - CSIN and CCSIN

091 COSNS* Basic External Function - COS

092 DI'COS* Basic External Function - DCOS

Input 6 cards ' Unit #S

Output I'rint 18 pages - Unit #6

*Produces Output . .

'

,

Note 1 Prepare replacement cards for cards 1, 3, and S 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

www

onW W J.1 i_> 1 1j Vj o oQ-nor^-i JJC/ V-.X "Ft i X r*\..-ci "t" L. J.t otiq wi vtiicrcwc-w. c\ r\ "FoT x,\Ji. Pj^T'f' r cLx l. Rw

\jyj u O L d U CillC' 1 i L r U.X l^LXUii L/CXX11XL.X V^l lO X W JL Spompnl" 1 10

OLcLUCiUdiL ^1" 3 1" o vTif^ n 't' PirUllV-UX m f^i" i on 0^=* "Ft nil"! on q "Fot* \Jl I L/CXXilXUX \JllJ X W J. SpcrmpTit' 111

007 WW / X/W T / O IUllXU In T 1" A Q Q "1 fin m^^n + ^1'p't'f^Tnf^n1~Q r\o oX^lliUdlL OLdCCllldlCo

0Q4 \J iJ '-T L>Rqqt cto X^ pY*f*^^T*nal i-jALCxlldX Pimf^t*"! r LU I L X onL/i I — HTANH 1 r\iN i 1 00 s SOROT* Basic External Function - SQRT

096 DSQRO* Basic External Function - DSQRT

09W »7 7/ Basic External Function - CSQRT

09 8 ARCTG* Basic External Function - ATAN

099 UACTG* Basic External Function - DATAN

100 ACTG2* Basic External Function - ATAN2

101 UATN2* Basic External Function - DATAN2

102 DMOUA* Basic External Function - DMOD

103 CABSA* Basic External Function - CABS

110 BSFTS* Statement Functions (Real and Integer)

111 FSFTS* 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 SPliCS Specifications needed by Part 9

007 lODHI- I/O Unit Assignment Statements

140 Cl'XAD* : v ... Addition and Subtraction of Complex Numbers

141 CPXMIJ* • Multiplication of Complex Numbers

142 CPXDV* .: ; V. : Division of Complex Numbers

143 CPXl-X* ; ,L • V Exponentiation of Complex Numbers

144 CPXOP* , : : . Arithmetic Operations on Complex Numbers

145 CRIiAD* :• •

• Addition, Subtraction of Complex, Real Numbers

146 CRBMU* . .. . • Multiplication of Complex by Real Numbers

147 CRODV* • . Division of Real, Complex by Complex, Real

Numbers

148 CRiiOP* : .:; . / Combined Operations on Complex and Real Numbers

149 MISC3* ... r :

. 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
VliRSION 3 PART 10 MAIN PROGRAM AND 29 SUBPROGRA^IS

Segment /' and Name Test

1.

ouo

001 SPtiCS

00 7 lOUfiF

160 BRFCP*

161 BIFCP*

162 FRFCP*

16 3 FIFCP*

164 CFCCP*

Special Documentation

Specifications needed for Part 10

I/O Unit Assignment Statements

Subprograms

400 AFS

420 BFS

430 CFS

440 DFS

450 I-FS 460 FFS

Subprograms

401 lAFI

421 IBFI

431 ICFI

441 IDFI

451 IHFI

461 IFFI

Subprograms

402 GFS

422 IIFS 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 HFC

454 FFC

464 HFC

External Function Test

External Function Test

External Function Test

Argument Types

External Function Test

Argument Types

External Function Test

Real

Integer

Real - All

Integer - All

Complex

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 Segm.ent 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.

Il-A-22
Vl-RSION 3 PART 11 MAIN PROGRAM AND 23 SUBPROGRAMS

Segment # and Name Test

1.

000

001

00 7 165

166

16 7 168

169

SPECS

lODEF

DPFCP*

BFCCP*

SBRTN*

FSBRT*

BLKUT*

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

Subprograms

405 AFD

415 BFD

425 CFD

435 DFD

445 EFD

455 FFD

465 GFD

475 IIFD

Subprograms

406 AFB

416 BFB

426 CFB

436 DFB

446 EFB

456 FFB

466 GFB

476 IIFB

Subprograms

407 AAQ

417 ABQ

427 ACQ

Subprograms

408 ADQ

418 AEQ

428 AFQ

Subprogram

409 BLOKD

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 16 8 - Subroutine Subprogram

Different Types of Arguments

Array Names and Integer Arguments

No Argument List - Arguments Passed

through Common

Used with Segment 169

Block Data Subprogram

Block Data Test

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-23
VERSION 3 PART 12 MAIN PROGRAM AND 5 SUBPROGRAMS

Segment # and Name Test

1.

000

001 SPECS

005 BSFUF

00 7 lOUIiF

179 BLKDA*

180 UNFRW*

182 BACUP*

190 DOTiy^*

191 DOLMT*

192 UONSC*

193 DONS I*

194 UONSX*

195 DONML*

19b DONIO*

197 MORDO*

200 SUBRl*

Special Documentation

Specifications needed for Part 12

Statement Function Definitions used with

Segment 19 7 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 included

Subroutine Called

Subprogram

410 SUBRQ

Used with Segment 200

Subprogram

412 MDQ

Used with Segment 197

Subroutine Subprogram

Subprograms

419 BLAKU

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

1.

2.

3.

000

001 SPECS

00 7 lODHF

300 LOGIF*

301 BARIF*

302 FARIF*

310 lOFm*

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 j 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
VliRSION 3 PART 14 MAIN PROGRAM AND 4 SUBPROGRAMS

Segment /' and Name Test

000 Special Documentation

001 SPIiCS Specifications needed for Part 14

1. 007 lOOHF I/O Unit Assignment Statements

350 MISC5* Specifications for Program Form (Test)

351 FLJNMX* Basic External Functions using Trig Formula

2. 352 NAMHS* Names resembling FORTRAN Verbs and Function

360 SPl:iC2* Common, Dimension and Equivalence

Subprogram Used with Segment 352

413 MAQQ Subroutine Called from NA^iES

463 MBQQ Subroutine Called from NAMES

473 AMQQ - ;. , Subroutine Called from NAMES

483 BMQcj Subroutine Called from NAMES

Input 6 cards

Output Print 5 pages

*Produce Output

Note 1 I'repare 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.

Unit #5

Unit #6

II- A- 26
B. PROCIiUURliS 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.

Bl. 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.

B2. 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-B-1

C. SAMPLH TEST Rl-SULTS

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.

T]\e 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 corresponds

to 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:

U+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 zerOo

The test units containing the Basic External Fionctions 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
'ITie 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.

Wliere the precision of a FORTRAN processor for a REAL datum approaches

tlic 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.

2. Test Results ^ -S' :" \

•

'

Tlie 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.
PUKTKAN TtSl FKOIJRAMS

PKfcPAWeO BY NATIONAL BUHfeAU OP STANDARDS

POK USE ON FOHTRAN KHOCESSORS

IN ACCORDANCE WITH ASA ^ORTKAN Xi,V»lV66

VERSION t

HKERAKED BY USER

KKfcPAREU BY USER

PRERAREU BY USER

II-C-
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

II-C-4
FMTRM - (0C8) FORWarTED I/O

ASA REPS - 7.1.3.2.2 7.1.3.2.3 7.2.3

RESULTS

10101 0 10 lOiaiClU 10 15 999999999 8888 8888

77777 77bSbSSb55S55ki*ki*3332Zl

SSS TTT UUU

VVV WWW XXX

YYY ZZZ

= -*/(),.$

BEGIN VERTICAL SPACING

FORMATditH SKIP 1 LINE /)

F0RMAT(15H SKIP 2 LINES //)

F0RMftT(16H SKIP 3 LINES ///)

IMBEDDED SLASHES - 5KIP 1 LINE

SKIP 2 LINES

SKIP 3 LINES

SKIP TO NEXT LINE

SKIP 1 LINE

TEST NO /IHf , 7HftO\/a>iC£

SKIP TO NEW PAGE

AAA

ODD

GGG

JJJ

M MM

PPP

BD3

EEE

HHH

KKK

NNN

QQQ

CCD

FFF

III

LLL

000

RRR

II-C-5
END OF VERTICAL SPa:iNG TEST

BEGI^ I CON\/ERSION TEST

EACH PAIR OF LINES SHOULD BE IDENTICAL

LINE 1 OF EACH GROJF> IS HOLLERITH INFORMATION

999

999 ..'.'t-;'".^

666 7717 77 d

666 777777 8

3 3 3 3 3 3 1 1 1 1 1 2 2 2 2 2 2 2 2 5 5 5 5 5 if « 4

BEGI>< F CONVERSION TEST ' ^

^ EACH PAIR OF LINES SHOULD BE IDENTICAL

7.7123<*56.7

7.712 3't56.7

8.889.9997.t23i»56

8.889,9997.123'456

5.itit«»46. 5 555 5 33. 133. 133. 13 3. 1

S,khkkb, 5555 5 33. 133. 133. 13 3. 1 t+^fif. 1

5555. 15555.1 66666. 166666 . 1 'i*.22

5555. 15555.1 66666. 166666.1 ^+^.22

2.12. 12.12.12.1666. 3 3 3<f. 33 3<». 333<f. 333

2.12. 12. 12.12.1666. 3 3 3i*. 33 3'* . 333'* . 333

BEGIN E CONVERSION TEST

EACH PAIR OF LINES SHOULD BE IDENTICAL

-O.IE+Ul 0 .22E-01

-.lE + 01 . 22 E-Ul :

' ! 0.333E + 02 O.'»'»'fV£ + 03

.333E-»-lJ2 .'''tfE+03

-0.55555E-a3 B.656666E+aO

-.55555E-U3 .666666E*aO

0.98765<»3E+12

.98 765t»3E<-12
BEGIN COMPLEX CONVERSION TEST

EACH GROUP SHOULD BE IDENTICAL

1.0 5.5

1.0 5.5

22.0 66.6

22.0 66.6

ZZ.lZZk 55.0789

ZZ.iZZt* 55. 0789

123.00 <»56.d8

123.00 (^56. 88

0.123E+01 (i.987E*-0i

.123E + 01 .987E*-01

-0.23^5£4-02 -(i. 6879E + 02

-.23i»5E + 02 -.6879E + 02

0.7E+U3 3.<fE + 03

.7E+03 .<*E+03

0.98765'*3E-0^ 0. 1 357913E-0

• 98765t»3E-0'* . I 3579i3E

19. 3«* a.2%68Ef02

19.3'» .2«*68E*02

0.7D5E+a2 87.5

.765E+02 87.6

<»3.96 0. 5i*vi7E+02

^3.95 .5'*07£+02

'3.96 .5'tL7E + 02

«f3.95 .5'»b7E + 02

BEGIM 0 CONVERSION TEST

EACH GROUP SHOULD 3E IDENTICAL

0. 10+06

.10*06

-0.33itO-0i»

-.33<»D-0'»

-.33i*D-0^»

0.765765i*D*00

.765765'*0<-00
0.123^»56789 jiD*-13

.l23'»5678901O4-10

0.98765i*321098760-3 1

.98765^321098760-0

1

.98765^*32109876O-ai

.98765<»321098760-31

•0.5555555'»2D+03

-.5555555i»2D-»-03

-.5555555i»20+03

BEGIN L CONVERSION TEST

LINES BELOW SHOULD 3E IDENTICAL

T T

T T FTF

FTF

TEST UNSUBSCRIPTED ARRAY NAMES

IN IfO LISTS. EACH GROUP OF LINES

SHOULD BE IDENTICAL.

9.91. 19.92.29.93.39. 9'*. it - v 9.91. 19. 92.2 9.93.39. 9^*. it 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.99O + 0 1-0. 9 90+01-0 . 990 + 3 1-0 . 99D +01

-.990+31 -.990+01 -.990+01 -.990+01

-.990+01 -.990+01 -.990+31 -.990+01

9999999999

9999999999

0.99D+01 0. 990+01 3.99D+01 0. 990+01

.990+01 .990+01 .990+31 .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

11^-8

i
TF

TF

TFTFFFTF

TFTFTFTF

99999999

99999999

0.9904-Ji

.990+01

.990+31

.990+31

.990+31

.990+31

9.95. 59.96.6 9.97.79. 9 8.3

9.95. 59.96.6 9.97.79. 9 8.3

9.95. 59. 96.5 9.97.79. 98.8

9.95. 59.96.6 9.97.79. 9 8.8

9999999999999999

9999999999999999

TFFT

TFFT

9.99. 99.99.99.9

9.99. 99. 99.99.9

LEADING 3LANK INSERTION TEST

EACH PAIR OF LINES SHOULD BE IDENTICAL

8

6

1

1

1

1

1

1

L1

7.7

7.7

8.88

8.88

II-C-9
9.999

9.999

5. kkkk

5. i^kkh

b. 55555

6.55555

7.12i«t5 6

0.21E+01

.21E+01

0.331E4-3 2

.331E*iJ2

O.W'»'»lE + iJ3 .£»i»^lE + 03

0. 555 5 IE* O**

• 55551E+0'*

0 ,6666&iE+05

.6666biE+05

0.l23t+567E*J6

.I23't567£+a6

o.iD«-oa

.10*00

0.13+oa

.10+00

0.10+JQ

.10+00

0.10+ao

.10+00
TEST LOGICAL FIELDS WITH BLANKS

LINES BELOW SHOULD 3E IDENTICAL

F

F

TEST D = 0, W=D*1 (PAIRS OF LINES

BELOW SHOULD BE IDENTICAL)

.55555

.55555

BEGIN G CONVERSION

EACH PAIR OF LINES SHOULD BE IDENTICAL

.1235E+05

.1235E*05

1235.

1235.

123.5

123.5

12.35

12.35

1. 235

1. 235

.1235

.1235

II-C-11
SCALE FACTOR ON READ

IN ORDER OF FORMAT OCCURRENCE

CARD 9876. 5k 98. 7654E2 9876.54

OESC 2PF8 .3 -2PE9.4 F9.4

TO B- 98 . 7S 5U . 9 8-7 7 E -1-0 4 987654. Q Q

IS 98.765^ .9877E+3'f 987654.00

CARD 987.65^ 86i»786D-4 86.4786E2

OESC aPG9 D9.4 -2PE9.

4

TO B- 9 87. o 54 m \J \i9 ^ \J \J v& . 8648E+04

IS 987.65tt .86480-02 .8648E+04

CARD 86.t»786 865 7.87D0 98 76.54

OESC F9.4 09.4 2PG9.4

TO BE 86t»7.860 .36580+04 98.77

IS 86t*7.86& .86580+04 98.77

SCALE FACTOR ON WRITE

IN ORDER OF FORMAT DCCURRENCE

CARD 9. 87655 98. 7654E2 9876.54

OESC 2PF12 .2 -2PE12 .4 F12.4

TO BE 987. 65 .0099E+06 98 . 76'54

IS 987. 66 .3399E+06 98.7654

CARD 987.65't 8647860-3 86.4786E2

OESC 1PG12.2 012.4 -2PE12.4

TO BE 9. 88E +02 8.6479D+02 .0086E+36

IS 9. 88E«-02 8. 64790+32 .0086E+06

CARD 86.i»786 8657. 860C 9876.54

OESC 2PF12 .2 1PD12.4 2PG1&.

4

TO BE 86'*7. 86 8.65 790 + 03 9877.

IS 8647. 86 8.6579D+03 9877.

THE LAST TWO LINES DF EACH

SET SHOULD 3E THE S^VME

FORMAT RESCAN - THE SECOND GROUP OF

EACH SET SHOULD AG^EE WITH THE FIRST

1 22 333

M 55 666

1 88 999

1 22 333

if 55 656

7 88 999

2 4 %l

8 S$

2 4

8 %%

II-C-12
AFKMT - (009) Ai-CONVtRSION

ASA REF - 7,2,4,8

EACH PAIR OF LINtS SHOUID BE IDENTICAL

FOK COMPUTERS STORING FOUR

OR MORE CHARACTERS PER WORD

ABCDEFGHlJKLMNOPURSlUVrtX YZ

ABCDLFGHIJKUMNOPQRSTUVWX YZ

0l23ab6789+AB2$(C)

TEST A CONVERSION - ADDING BLANKS

EACH PAIR OF LINES SHOULD BE IDENTICAL

A

A

*

Tk

Q

Q

1

I

ZZ

TEST A FIELD TRUNCATION

2ND LINE SHOULD PARTIALLY MATCH 1ST

ABCDEFGHIJKLMNOPQRSTUVWXYZ

VWXYZ

II-C-13
DATA2 - (010) DATA STATEMENT USE

ASA REFS, - 7,2,2

RESULTS

LINE I OE EACH GROUP IS HOLLERITH

INf-ORMATION, TEST IS SUCCESSFUL IP

EACH GROUP CONTAINS THE SAME VALUES

0

0

0

" V "0

0

10

10

10

10

10

2^b

246

246

246

-750

«750

-7b0

-TSO

-750

0,00

0,00

0,00

0,00

0,00

246, 15

246,15

246, 15

246,15

246,15

3546,74

3546,74

3546,74

3546,74

3546,74

II-C-14
-750, OS

-750,0b

^750,05

-750,05

-750,05

11,1 ?.d,22

11.1 22,22

11,1 22,22

11,1 22,22

11,1 22,2?

-3^,50 -(>,78

-3^,50 -6,78

-3«,50 -6,78

-34,50 •6,78

-34,50 -6,78

10,00 -?0,00

10,00 -20,00

10,00 -20,00

10,00 -20,00

10,00 -20,00

200,00

200,00

200,00

200,00

200,00

4000,00

4000,00

4000,00

4000,00

4000,00

-0,2950+05

-0,295D*05

-0, 2950*05

-0, 2950+05

-0,2950+05

0,3456789010+05

0,3456769010+05

0,3456789010+05

0,3456769010+05

0,3456789010+05

0, 11223350-02

0, 1 1223350-0?

0, 1 1223350-02

0, 1 1223 450-0?

0,11223350-02
0,340*15

0, J4D*13

0,3aD*15

F

F

F

F

AD

AD

AD

NO

NO

BC

BC

*8

*S

P

P

II-C-16
ASSIGN - (Oil) SIMPLE Rft^L AND INTEGER

APTTHMETIC ASSIGNMENT STfiTEMENTS

ASA REF. - 7.1.1

LINE 1 OF EACH PAIR IS HOLLERITH

INFOPMATTON

INTEGER RESULTS

1 123i*5 0 1 i?.3k5 H

2 -98765

2 -3 -98765

36912 n -23

36912 0 -23

5t+321 k5

2t+6B -^+3123 0 2i*f>8 -«+3123 0 REAL RESULTS

1 . 0 358. 672^4 -2.0

1.0 358.672U -2.0

3.0 -27l<+.?50 29.305t*2

3.0 -271«t,250 29.3Q5'+2

86. 27 103'+. 2 1.0

86. 27 103ft. 2 0.0

r.O 3^+5.678 -2.5

0.0 3if5.678 -2.5

-5.66 1.111111 1.0

-5.66 1.111111 1.0

-2.0 3.P ff.O

-2.0 3.0 ^ .

5.0 -6.0 O.G

5.0 -6.0 0.0

0.23 -0.716 -T.7

.2? -.716 -.7

0.81 0.9

.81 ' .9

II-C-17
0.105F+33

.105F+13

-3.76E+02 0.332^E+03

-.76F+n2 .332UE+03

0.'^132E+C1

.5132E+C1

G.99E+03

-.99F + 0 ^ 0.6652F+ 03

.6652F+C3

c .suserE + ot* 3^567E

0.9'+333E + 01

.9it333E + Cl

O.lF+01

•IF+Cl

n.i^ttfE+o?

.I'+tiE+O ?

0 .20GE + 0 i+ -.200F + 0i4

0. l'^12E + C6

1512F+06

o.^*E-ni

-.UF-Cl

0.7PE+06

.7?E+n6

0.3E+02

-.3E+C2

0. 36E-0 3

.36E-n3

0.777E+0

1

.777F+n

1

0.90E+01

.90E+01

0.62E+03

.62E + 0 3

0,3E-0i+

P.'^3i*E-0 2

.53t»E-02

G .10^210E + f35

, 1C5210F+05

-C.529E+03

-.529F+03

0.6162E + 0f»

. 6162E + Dtf

0. 352tfE-02

. 352t»E-0?

0.123E4-05

.123F+05

-0 . 12E + 0 0 -.12E+0n

0 .ggF + oit .99E + Qit

0.21^fE + C6

. ^lifE+oe

0.5 32l«+E + .n

. 5321ttE + 01

-0 . 813E + Gf* 813E+0U

C .^i+E + Ql

.i+ifE + Ol

C,9E-Cit -

. .9E-0tf

- :

. '9E + C 3

-.2 9E+0 3

O.SIOE+OO

. 81CE+ 00

0.5 31 GE +01

.531 OE+31

0.2 5E-3 3

. 25E-0 3

-0. lttl9E + 00

l*tl9E + Q0

' C.<t56E+e2

; .'56E + 02

0. 7856ttE + 0'*

. 7856t*E + 0't

0. 23E+00

. 23E+0C

-P. 7£f32E + 00

7*+32E + 00

-0. llE+05

-. llE+05

0.36t*5E + 01

. 36if5E+')l

0. 0F+OO

a.

1. 3«fE + 01

. 3*tF + 01

0. 6E+ni*

. 6F + 0i*

0. 23«tE + 00

. 23i»E + 00

0. lE+135

. lE+05

-0. lOE-02

lOE-02

D.i»E+n

. tfE + Gl

-0. 7F+03

7F+0 3

-0. <*tf2E + 02

-.'<*2E + 02

-0. 163E-02

163E-02

II-C-18
0.70gE+06

.709E+06

0.627E+05

.627E+05

0.1«t63E + 02

.l/t63E + 02

0.29E+07

.29E+Q7

0. 829E + 0if

.829E+n'+

0.3tt0i4E + 00

.3ffO'«E+00

0.818't2E + 05

.818i»2E+05

n . 5 3r + 0 5

•53E+05

0 . 2 E- 0 2

. 2E-02

0 .if072E + 07

.i»072E + 07

0.3E+03

. 3E+03

0 .55E-03

.55E-03

-0. 9E+06

9E+06

-0. 'E+05

t»E + 05

-0. 355E<-02

355E+02

-0. 61835E+07

61835E+07

-0. lE+04

lE + Otf

-0. 761E+02

761E-I-02

II-C-19
FORTRAN TEST PROGRAMS

FfotPAKK. [1 hV urTl'TAL ['OF, [A I' OK STAfiHA'^'OS

in AC CCRf / riCE t.ITr A^A FcfvTK»h A3.V-l96fe

Version 3 part 2

Sample: conPUTER, f oft ran compiler lfvkl

OF'FKATlNr, 'JYSTFi' VEKSICr'

I)! TE: , i I ST ALL / T ICf. f;Ai-F

II-C-20
DASGN - (013) SIMPLE D,P. ARITHMETIC

ASSIGNMENT STMNTS,

ASA HEFS, - 7,1,1,1 5,1,1,3

RESULTS

LINE 1 OF EACH GROUP IS

HOLLERITH INFORMATION

3aD+02

3a0+02

123^56789101 lOf 08

123a56789l01 lO + Oe

123^56/89101 lD+08

123«56789101 ID*08

123a56789l01 ID + Ofl 2987652340-01

2987652340-01

2987652540-01

2987652540-01

2987652340-01

345100005550+07

345100005550+07

345100005550+07

345100005550+07

345100005550+0/

222324250+08

222324250+08

222324250+08

222324250+08

222324250+08

2814200+05

2814200+05

2814200+05

2814200+05

2814200+05

44556677880+16

44556677880+16

44556677880+16

44556677880+16

44556677880+16

II-C
0 ,iSb9^^^t^ibb9^^Bo*i?

0,35692a83b6V2a»Q+l2

0,,556924835692480+1?

0|,35692a835692a80+l2

0,,35692a8356<)2a«0 + l2

6549876D»03

0

,

,65498760-03

0,,6549876D»»03

0,,65498760*03

0,,6549876D»03

0 1,780*10

0,,780*10

Oi,780*10

0|,780*10

0.,780*10

Of,00*00

0

,

,00*00

0 ,00*00

0,,00*00

0,,00*00

0 <,1726354450+11

0,, 1 726354450+1

1

0 ,1726354450*11

0,,1726354«5D+11

0,, 1726354450+1

1

0 <,1967620+05

0(,1987620+05

0 , 1987620*05

0 ,1987620*05

0,,1987620*05

0,,2543966210*03

0 ,2543966210*03

0 ,2543966210*03

0 ,2543966210*03

0 ,2543966210*03

0),3478652991 0234D-^ 05

0 , Sa7865299l02i4D- 05

0 ,3478652991023«D'» 05

0 ,347865299102340- 05

0 ,347865299102340- 05

0 ,4440-08

0 ,4440-08

0 ,4440-08

0 ,4440-08

0 ,4440-08
0

, Ot) + 00

0,,0D*00

Oi,00*00

0,,00*00

0

, 00*00

0 (, 12iD*?0

0,, 12i0*?0

0 ^,123D*?0

0 ,,1230*20

0, 1 230*20

0

, 3692a6Bi:)-*0 1 0, 369^a88F).0 1 0,, 3692^680-01

0, 3692a68D-0

0 , 3692a68D-0

0, ia793782a967D*07

0,, ia7937R2a967D + 07

0 ., ia7937«2^967D + 07

0, 14793762496 7D*07

0 1,1479378249670*07

Oi,92778617498^0*02

0,,92778617498«)D*02

0 1,9277861749850*02

0,,9277861749650*02

0,,9277861749850*02

0.,593549142236190*00

0,,593549142236190+00

0 ,5935491 42236190*00

0 ,593549142236190*00

0 ,593549142236190*00

0 ,986632710-0 3 0 ,986632710^03

0 ,986632710-03

0 1,986632710-03

0 ,986632710-03

0,,10-15

0 ,10-15

0 ,10-15

0 ilD-15

0 ,10-15

0 ,32612946750*22

0 ,32612946750*22

0 ,32612946750*22

0 ,32612946750*22

0 ,32612946750+22
••0, 969«92909Dtl3

-0, 969a9a909D*l3

969a9a909D+l3

f.0, 969a92909D+l3

0| 12a608b0*01

>«» 0, I24608b0t0l

0, l2a6085D+0l

0, 124608^0+01

*o, 59D+02

MM- -0,,590*02

c a t*) ^ A 3

,b9D*02

-.0,,b9D4.02

0.,79628139225SD+12

Oi,7982ei392253D+l?

,7962813922S3D+12

0,,798281392253D*12

0<,429210+11

,429210+11

A

, MCT^ 1 1 1 0,,429210+11

»-• 0,,429210+11

0,,7936854430+05

0(,7936854430+05

Au

0,,7936854430+05

0 ,7936854430+05

0 ,333444555660+13

0 ,333444555660+13

riu

0 ,333444555660+13

<!Wr 0 ,333444555660+13

-0 ,2223334440+10

-0 ,2223334440+10

tm n

, c r c J J J * *+ w I u • 0 ,2223334440+10

• 0 ,2223334440+10

0 ,10+02

0 ,10+02

0 ,10+02

0 ,10+02

0 ,10+02

II-C-24
20*03

20*03

353333333335330*11

333333333333330*11

333333333333330*11

333333333335330*11

333333333333330*1

aaaaaaaaao+os

aaaaaa4aao*ns

aaaaaaaaao*05

a4aaaaaa4D*05

340000000000000*02

340000000000000*02

340000000000000*02

340000000000000*02

340000000000000*02

340000000000000*02

17263S44500000D*!

172635445000000*1 1 172635445000000*1

172635445000000*1

172635445000000*1

172635445000000*1

000000000000000*00

000000000000000*00

000000000000000*00

000000000000000*00

000000000000000*00

000000000000000*00

172635445000000*1

172635445000000*1

172635445000000*1

172635445000000*1

172635445000000*1

172635445000000*11

65498760000000D»03

654987600000000-03

65498760000000D-03

654987600000000-03

654987600000000-03

654987600000000-03
0,000O000OOOOOOOD+OO

0,000000000000000*00

0,000000000000000*00

0,000000000000000*00

0,000000000000000*00

0,000000000000000*00

0,29876b23a000000-01

0,29876523^000000,01

0,29876523aO000OO«.Ol

0,29876523a00000D*01

0,298765234000000-01

0, 298765234000000-01

0,254396621000000*03

0,254396621000000*03

0,254396621000000*03

0,254396621000000*03

0,254396621000000*03

0,254396621000000*03
EACH GROUP SHOULD BE IDfcNTlCAL EXCEPT

FOH THE SIGNS OF THE FIRST TWO LINES

ia786b2«»91 023aD-05

3a7fl652991023aD'^05

3a78bS2991023aD-»05

3a78652991023a0f05

3a7865299l023aU«»05

3a78652991023aD-05

147937824967000+07

ia793782a96700D+07

l4793782a96700Df07

1479378249670004-07

1479378249fe700D+07

147937824967000*07

29876523400000D"'01

298765234000000-01

29876523400000D-01

298765234000000-01

29876523400000D-01

29876523400000D«01

1479378249670004-07

1479378249670004-07

147937824967000+07

147937824967000*07

1479378249670004-07

147937824967000+07

298765234000000-01

298765234000000-01

298765234000000-01

298765234000000-01

298765234000000-01

298765234000000-01

98663271000000D-03

986632710000000-03

986632710000000-03

986632710000000-03

986632710000000-03

986632710000000-03

123456/89101 100+08

123456789101100+08

123456789101100+08

123456789101100+08

123456789101100+08

123456789101 100+08

II-C-27
-o.aaaoooooooooooOwoe

-o,aaaoooooooooooo*»o8

0,a4400000000000D«08

o,aa«oooooooooooD»o8

o,aa4oooooooooooo»oe

o,a4aoooooooooouo»oe

(

11

II-C-28
CASGN - (015) COMPLEX ASSIGNMENT

STATEMENTS

ASA REFS. - 5.1,l.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

3.^33E + 02

3333F+02

3333E+02

3333E+02

3333E+02

0.3956E+03

.395f)E + 03

.3956E+03

.3956E+03

.3956E+03

itlOSZE + O't <»1067E + 0«* ^1067E + 0tf ^1067E + 0'» ttl067E + 0't -0.123i»567E + 05

-.123t»567E + 05

-.123i4567E + 05

-.123U567E+05

-.123'*567E + 05

•0. 12 3i*5 67E + 0^» 123U567F4-0't

123U567E + aif

123i*567E + 0«t 123tf567E + 0U

.89E+01

.89E+01

.89E+01

.89E+01

.89E4-01

•0.91E+01

-.giEfOl

91E+01

-.91E+01

-.91E>01

•0 .263512F + 0i+ -.263512E + 0^» -.263512e + 0i* -.263512E + 0tf -.263512E+0U

.^621E+02

.tf621Ef02

.if621E + 02

.'621E+02

.^621E + 02

O.lE+02

.1E+C2

.IE +02

0.2E+02

.2Ef 02

.2E+02

0.3E+03

.3E+03

.3E+03

O.UEfO**

.ttE + O^* .^E + 0*»

•0.5E+02

-.5E+02

-.5E+02

•0.6E + 03

-.6E+03

-.6F+03

0.71E+02

•71E+02

.71E+02

•0.92E+02

-.92E+02

92E+0 2

II-C-29
0.88^F-»-0 3 -. 88 3F+0;?

- . 8 8 3 F + 0 3

0 . 1F +

. lF + 02

C . 20 0 2E + CU

.2002E+0U

. 20 0 PF + Qtt

0 . i461F + 0 3 .«+61F + 03

.i+61F + 03

0 . 21E +02

-.21E+02

-.21E +02

0 . IE- 02

.IE- 02

•lE-02

D. ?62E+aO

.5S2E+QQ

.562F4-00

C.3E+00

-.3E+C0

3E + 00

0.'>E + 00

.^E+00

. '+E + 00

0.95E+0 0 -.9SE+00

-.95E+G0

0 .164231F-0 1

. 16«t239E-01

, 16i+239E-01

0.21E+0C

.21E+00

.21E+0 0

0 . 3398F4 0 0 .339^E+00

.339 8E+0 0

0 .BE + 00

-.6E+00

-.6E+00

0. liflUE + 0'+

. I'+lUE +0'*

0 . 562E + 0 3

. 56 2E + 03

.562E+03

-0. q33E+03

9«3E+ 03

- . 9 8 3 E + Q 3

-0 . lo=^E+ 03

-. 165E+Q3

165E+03

0. 122E+03

. 122E+ 03

.122E+03

0,?E-02

.2E-02

. 2E-12

0.562F+00

.S62E+0 0

' .562E+00

-0. 33333 33E + 0 0 3333333E+00

-. 3373333E+00

-0 . 'U5E+ 00

i+a5E+ 00

-.iti+5F+0Q

0.95F+0Q

. .95F+00

. 95r.>0 0

0 . 36E + 0 0 .36F+00 '

. 36Ff 0 0

-0. 3963F+C0

-.3963E+00

-. 39(^, 3r + C0

C . 3398^+00

. 3398E+0 0

. 3 39 8E+00

0.6E+00

. 6E+0C

.SE+00

II-C-30
0,0E+00

0.

0 . ttSeZSllEf 07

0.22223E+07

.22223E+07

0.3E+01

.3E+01

.3E+C1

0.93765<+3E + 05

.98765t+3E + 05

• 987651+3E + 05

0,i+ft£t/*E + 0'+

0.6E-0U

.eE-ou

•6E-0U

0, l«*2E + 03

.l«t2E + 03

.lif2E + 03

C . 36923E+06

-.36923E+06

-.36923E+06

0,21E<-03

.21E+03

• 21E +03

0.5959E+03

-.5959E+03

-.5959E+03

O.IE+Ql

.lE+01

•lE+01

0.2E+01

-.2E+01

-.2E+01

0. '492E + 01

.tt92E + 01

.tt92E + 01

O.lE+01

. lE+01

0. 789i*53E*06

.789'*S3E + 06

CZ^E+Qt*

0, 3332E+05

,3332E+05

0. 3E+01

. 3E+01

.3E+01

0. 8765tf 32E + 0'*

. 8765'+32E + 0tt

. 8765i*32E + 0^

0.55555E-02

.55555E-02

. 55555E-02

0. 77E + 0 7

.77E+07

. 77E + 0 7

0, 2667E+02

. 26f)7E + 02

.2667E+02

-0.23i*E+03

-.23«*E+03

-. 23tfE+03

-0,21E+03

-.21F+03

21E+0 3

0.U967E+03

.^967E + 03

.tf967E + 03

0. lE+01

.lE+01

•lE+01

-0. 2E+01

-.2E+Q1

2E+01

-0.6527E + 0'* -.6527E + 0tt -.6527E + 0i+

II-C-31
0. 7371 E +06

- . 73 7 ir +06

- . 73 71F>0 6

C ,k77 Uk7C*07

,U77Uh7F+07

,k77 k^7E*-£7

0 . 8^*^20 OE-02

- . 8i»6?00E-02

P . 770 OOOE+09

.773 D00E + U9

.773000E+0 9

r . 1 3 3 i+ 0 0 E + C 5 .133i400E + r5

.133UnO-" + C5

0 . 30 J COOE+r^S

.3 00CnOE+R6

. 30 0 0 C0E + G6

0.299E-01 . .29qF-01

. ?99e-0

I

. 9F + 0 6

C. 76E-0 1 .76E-C1

'.76E-C1

C.31E+C2

.31E+C2

. 31E +02

0 . 728F 05

-.728F+05

- .728E+05

0.6E+07

.6E+n7

.6E+07

C . 791 'tE + n 7

-.791t4E + 07

-.79li4F f 07

C.lE+02

.lE+02

.1E+G2

0. 99RE-01

.q98E-01

. 99RE-G 1

-0.3362i*F + 00

-. ^362t4E + 0 0 -. 9362'+E + 00

0.13370E+03

. 13330E + 0 3 .13 3 30E+03

0.816 25E+08

. 81625E+08

. 81625E + 0 8

0 . 37gOOF+06

.37900^+06

' . 3 7 9 0 0 E + 0 6

0. 30C00E+06

. 30 r r + 06

. .300D0E+06

0.299E+02

.299E+02

• .29QE+02

0 . l^+igE +02

. 1U19E + 02

.l'tnE+02

0.987r+03

. 987E+0 3 .987E+03

G.f+6'^9E + 05

. US59E+r^

. ^+659E +05

-0 . 93 29(SE + 0 8 93296E+08

-.9329nE+03

-0.6E+07

-.6E+07

-.6E+07

0 . i6E +0 7

. 16F+G7

, 16E+G 7

Q. lE+02

. lE+02

. 1 E + 0 2
-0.2E-01

-.2E-01

0.3E-02

.3E-C2

. 7E- 0?

- P .

I4 E -»• 0 -.^E4-05

-.'+E+ 05

C . 5E+ 06

. ^ E + P 6

.5E + Qf^

-0 .6E-05

-.6E-05

0. 39397Ef 01

.39393E+01

, 39393E+01

0 . 9K f 0 C .9E ^ 00

.9E + on

C . 352E+09

. 352Ef 09

.3'^2E + 0 9

n . I'+zepsE + 00

.l<+76?6E + 00

. 1^+7626^ + 00

C .9E- 07

.9E-C7

.9E-07

C . 13E-0i+

. l3E-n£+

. 13E-Gf4

C . 77E + 0 0

. 77E +0 0 .77E+C0

C .878E+01

. a 7 3 F + 0 1

. 8 7 8 F + 0 1 -C.O797E+02

-.9797E+02

- .9797E+02

-C. 2E-01

-. 2E-01

2E-0i

-0 . 3E + 0'+ ^E + 0'4 3E + 0'4

0 .

. 'E-03

.^+£-03

-0 . 5E-0i*

-. 5E-GU

0 . 6E+07

. 6E+07

.5^+07

0.62F+GU

. 62E + C ^

. 62F + 0

f+

0. 765765E+03

. 765765F+03

. 765765E+03

0. ^5F + 0 3

. 35'^ + 0 3

. 35F+0 3

0 . sgiE- li+

. B91E- 1^+

. 891F-li4

0. 9999E+0 3

. 99 9 9E + 0 8

. 9999F +C8

0 . l^F-0'4

. 13'^-Q -4

. 13r-0i+

0 . ^zr+o 0

. ^7F + 0 1

. 77F +0 0

-0 . =578E+ 01

8 7 8F+01

~. 878'^+ 0 1

0 . 97Q7E + 02

. 9707^+02

. 97 0 7r f 02

II-C-33
O.lClDie+15

- . 10 1 GlE+15

0 .08F+12

.68E +1?

C . 798E-03

. 798 E- 0 3

P . 32^+7F +2G

-.3^^7E-^20

-, 32tt7^ + 20

C .U3599E-in

-.^359gE-19

-.i+3S99E-19

0.6E-09 •. -.6E-09

-.6E-0 9

0.9119E+06

-.911PE+06

-.9119E+0 6

0 . 39it?6E4-02

. 39£+?6E+02

. 39tt?6E + 02

.if5£-12

.'5E-12

0 . '+79 3E+G6

.'+793E + 06

. '793E + 36

.'793E + 06

0 . 36ft2E*-31

. 3fb8 2E + 0 1

. 3682E + 0 1

. 3682E + C 1

0 .2571E+09

-.25 7 IE + 09

-.2571E+99

-.2571F+09

0.1'*50E + 0C

.1^60E+00

.It+bOE + OO

-0. l^lGlE+15

-.1013tE+15

-.lOlOlE+15

0. 357S28E+00

.3S7628F+00

.3S7(S2 3^ + 0 0

, /(S'+'+t+E + 0 0

-0.2S9'+E + C5

-.^59i+E + 05

?^92+E + 05

12E-1 i4 i?r-Q/+

-0. 6r+09

-.fSE + 09

-.sE + a9

0.9119E-06

.9119E-06

. 9119E-06 .

-0. 3qt+?6E-02

39«426E-02

39i*?e^-3?

0. <+^F +12

.'5r+i2

.U5E+1?

: 0. 3i+79E + QS

. 3?+79E + 06

.3«*79E+0S

.3«t79E+Gf3

0. 82 36E+D2

. 823SE + 02

. ^^36E+02

. 823 6E +02

0 . 17E2E + 09 .

. 1752E +09

. .1752^+09

. 1752E + 09

-0.1Q6i»E + C5

l0 6i»E+f)5

1 OeUE+G5

106ttF + 05
C . 16'+2390F-01

.16'4?390E-01

. lS'+2390E-0 1

. 16 '42390 E- 01

. 1 6 ? 3 q 0 E - 0 1 .16'+2390 E-01

0.'*5S?311E + 0 7

.i+5S2311E + 07

.'562311E + 0 7

. '456231 lE + 0 7 .t*562311E + 07

.i+5 6?311E+0 7

0 .60 ) CO 3 JE-05

-.60 0 DGOOE-OS

-.600 OOOOF-05

- .60 D OOOOE-05

- . 6 0 0 0 0 0 0 E - 0 5

-.600C00CE-05

0 . 91 1 90 00E + 06

- .91 190 00^ + 06

-.gilQOOOE+06

- .91 igOOOE + 06

-.91 190 0 CF + 06

-. 91 190 01JE + 06

0. 36CC0G0E+00

. 36C00 OOE + OO

. ?6C 00 OOE + 0 0

. 360 00 OOEf 00

.36COGOOE+0 0

. 3600000 E +00

3. 789'*5 30E + 06

. 789'+5 3GE + Q6

. 789*4 '^30E + 06

.789^5 30E + 06

. 789«45 30E + 06

.78q'45 30E + 06

0.60GC00CE+07

.63000 DOE + 07

.6000000E+07

.60oanooE+o7

. 60 C 00 OOE + 07

.60 0 000CE+07

0. 911900 OE-06

.9119nonE-06

.9119aa0E-06

.9119000E-06

. 91 190 OCE-06

. 911 90 OOE-06

II-C-35
FACH GROUP SHOULD BE IDENTICAL EXCEPT

FOP THE SIGN OF THE FIRST TWO LINES

0 , 30 0 0 0 0 0E + 03

.3000000F+03

-.3000000E+03

-.300nOOOE^03

3oa noooE + 0 3 30nQ 0 0 0 E + 0 3 -C.500000aE+0?

-.50 0 OOOCE + 0 2

. 50 0 OOOOEf 02

.500PC00F+0?

.500 OOOOE + 02

.50onoonE+02

G. 770000 OF+OO

.77 0 0000 f+OG

-.77 0 OOOOE+00

770 OOOOE + OO

-. 770 OCOOE + 00

-.7700000F+00

0.50 0 0000 F+ 08

.5000000E+0 6

-.500C000E^06

-.500GOOOF+06

-,5aOO00OE+06

-. 5000000 F+06

O.'+9 2OQO0E + 01

.'q2COOOF + 01

-.U92000nE+01

-.<*9 20CDOE + 01

-.t+3 2 0 003E + 01

-.«+q2CC0 0E+01

-O.6O0C0O0E-05

-.60 0 OOOOE-05

.6000000E-n-

.600 OnOOF-05

.60 00C00E-05

.600 OC OOE-05

0 UO 0 0 F + Of+ .^4i+^+t4C0uE + 0'+ -.i+(*«+t40 0 0E + 0U

-.i4£+/+itOOOE + 0'+ - ,kkki*QQ{iF + Ok

0 . 0 C 0 0 0 0 E + 0

. '4 0000 OOE + OW

- . 0 0 0 0 0 0 E + 0 £

- . ^4 0 0 0 0 0 0 E 0 - . 0 0 G 0 0 0 E + 0 «t -. (40 0 00 OOE + 0^4

-G. 5 0 0 00 OOE*- 03

-.60000 OOE + 03

.6 00000CE+Q3

, .6n00000E+03

: .6000000E+03

: .6G0OGOnE+0 3

0.770COOOE+00

.77000Q0E+00

-. 77G00 OOE + 0 0 -. 77C 03 OOE + 00

-. 770 00 OOE + Q 0 770 00 OOE + 00

- 0 . 5 0 C 0 n 0 P E - 0 ^4 -.50C00C0E-0i4

, .50O0C0GE-0i4

.=;noooorE-oi4

. 5 0 0 0 0 0 0 E - 0 ^4

. 5 0 0 n 0 0 0 E - 0 ^4 -O.S527000E + ai4 -. 65?7'0 OOE + 0'4

. 65270 3OE^0'4

. 652 70 0 0E + 0^4

. 6 5 ? 7 G 0 0 E + 0 ^4 ,6527000^ + 0^4

0 . 6 0 0 00 OOE + 07

.60C000 0E+07

-. 60 0 0C OOE + 07

-. 60 0 00 OOE + 07

-. 60 0 00 OOE + 07

-.60COO00E+O7

0 . 55555 OOE-02

. 55555 OOE-0 2 -. 55555 OnE-Q2

-. 55555 C0E-02

-. 55555 OOE-02

-. 55555 OOE-02

II-C-36
369?3GCF+06

3fS 12300Ef06

3692300r+06

3e>9 23 0 0E + 0(S

3692300E+06

3692300E + Gr)

-0. 23uon oa': + o3

2 3(410 OOE + 03

. ? 3 i4 C 0 0 0 E + 0 3

.? 3^+00 DOE + 03

.23<40aOOE + 03

, 23*4 0 0 OOE + 03

ir-C-37
rORTRAN TEST PROGRAMS

ri^tPAF-El [^Y r ^lIC'liAL bi. f^l .'U OF STf, jDaROS

FfFv Lit ur L£FC-f FtillhMr P 0 C F S 5 C S

A C C C' A : C F- i 1 H A b M K ( T 9 A r

i A 3 . I* - 1 9 6

VfRS10N3 PART3

! PLE ( C I I, f-' , POf^. TKH'i (Of-.PILER i . i-: V F. L (PfPATlr( SYSTFt-, VFHSlOi^

\ (Alt, 1 f-ST ALLAT I Oi>J 'i^r-t:

II-C-38
LASGN - (016) ASSIGMMENT OF

LOGIGAL VARIABLES

ASA REFS. - 7.1.1.2

RESULTS

ALL ANSWERS BELOW 1UST BE TRUE

T

TT

T

T

T

T

T

T

T

TT

T

T

T

T

T

T

T

T

T

ALL ANSWERS BELOW MUST BE FALSE
INTRL - (017) ASSIGN INTEGER, REAL, AND

DOUBlE precision VALUES

ASA REFS. - 7.1.1.1. 5.1.1.2

RESULTS

ASSIGN INTEGER VARIABLES

1 - TO REAL VARIABLES

111.3

111.3

-1111.3

-1111.0

-1111111.3

-1111111.3

. 1.3 '-y-.

:: 1.0 '^'-'-] -'

-

2 - TO DOUBLE PRECISION VARIABLES

-0. lllllllD U7 * -. 11111110+07

O.ID Ql

.10+01

3.1110 03

.1110+03

-ti. 11110 itk * -. llllO+j:^

ASSISN INTEGER CONSTANTS

1 - TO REAL VARIABLES

-222 2.U

-2222.0

22 2.ii

222.13

-222 222 2.0

-2222222.0

2.0

2.j

II-C-40
2 - TO OOUBuE PRECISION VARIABLES

U. ^D Gl

. 2D+G1

-B .22222220 07 • -.2222222D + ;<7 -0.22220

-.2222D + Ji»

3.2220 &3 » .2220+03

ASSISN 3ASIC REAL CONSTANTS

1 - TO INTEGER VARIABLES

3

3

3

3

-3 * -3

2 - TO 0OL)3LE PRECISION VARIABLES

0.33333D Dl

.333330+01

3.33333330 fll * .3333333D + C»1 -8.33333330 Ql

-.33333330+31

-0.3333330 01

-.333333D+Q1

ASSIGN REAL VARIABLES

1 - TO INTEGER VARIABLES

II-C-
2 - TO DOUBLE PRECISION VARIABLES

-•Ut*«#<»0<-0 2

0, kht^kkO 02 »

Q.ki^ki^i^D 0 2

, ifi*<*i»<+Df 0 2

ASSI5N DOUBLE PRECISION VARIABLES

i - TO INTEGER VARIABLES

55 555 "'v^- ^ -r S;. . 55555

5

-5

-5

2 - TO REAL VARIABLES

-0.5555556E 01 * -•555555bE+01

-Q. 555555b£ Ql

5555556E+01

0.5555556E 01 * .5555556E+01

0.555555E 05

. 555555E+05

II-C
ASSI&N OOUBLt PRECISION CONSTANTS

1 - TO INTEGER VAf^IABLES

6

6

-6

-5

-6

65666

66666

2 - TO REAL VARIABLES

0.5666667E Ik

.6666667E>1'*

3.66666E 01

.66666E+01

-0.D666666E Ul * -.6666666E+U1

-0.6666667E 01

-.6666667E+C1

ALL TEST OUTPUT SHOULD BE CHECKED

AGAINST THE ASTERISKED (*) FIGURE

WHICH PRECEDES IT

II-C-43
UGOTD - (023) UNCONDITIONAL GO TO

STATEMENT

ASA REFS, - 7.1.2.1. 1

RESULTS

^ - .

2 I

**

6- 7

THIS TEST 15 SUCCESSFUL ONLY IF THE

NUMBERS LISTED ABO\/E ARE SEQUENTIALLY

IN ORDER FROM 1 TO 3

II-C-44
AG0T3 - (a2l) ASSISN AND ASSIGNED

GO T3

ASA REFS. - 7.1.1.3 AND 7.1.2.1

RESULTS

1

2

3

5

6

7

8

9

10

11

12

13

15

16

17

18

19

20

THIS TEST IS SUCCESSFUL ONLY IF THE

NUMBERS LISTED A80\/E ARE SEQUENTIALLY

IN ORDER FROM 1 TO 2j

II-C-45
CGOTO - (022) COMPUTED GO TO

ASA REF. - 7.1.2.1.3

RESULTS

• .1- -

2, .

, 3 .

S - . .

. .

,

s

7

9

10

11

12

1.3

m

is

16

17 -

18

19

20

THIS TEST IS SUCCESSFUL ONLY IF THE

NUMBERS LISTED ABO\/E ARE SEQUENTIALLY

IN ORDER FROM 1 TO 20

II-C-46
ARBAO - (03ii) BASIC ADDITION

ASA REF. - 6.1

RESJLTS

INTE3ER ADDITION

0

0

0

0

a

0

REAL ADDITION

TEST 7 3.t

TEST 8 0.0

TEST 9 0.0

TEST 10 0.0

TEST 11 0.0

TEST 12 J.O

ALL ABOy/E ANSWERS SHOULD BE 0 FOR

THIS SEGMENT TO BE SUCCESSFUL

TEST 1

TEST 2

TEST 3

TEST k

TEST 5

TEST 6

II-C-47
ARFAO - (031J D.P. ADDITION

ASA REF. - 6.1

RESULTS

0.

Of

0 •

0.

D.

THE 5 ANSWERS ABOVE SHOULD 3E C PLUS

OR MINUS AN ERROR FACTOR OF 0. 10-13

II-C-48
ARBS3 - (032) BASIC SUBTRACTION

ASA REFS. - 6.1

RESJLTS

TESTl INTEGER SUBTRACTION

TEST2 REAL SUBTRACTION

Q« 0

0.0

0*0

0.0

ALL ABOVE ANSWERS SHOULD BE 0 FOR

THIS SEGMENT TO BE SUCCESSFUL

II-C-49
ARKSB - (033) D.P, SUHTRACTIUN

ASA KtF, "6,1

RESULTS

0,O000OOO00OD+OO

0,00000000000+00

0,00000000000*00

0,00000000000+00

0,00000000000+00

0,00000000000+00

0,00000000000+00

0,00000000000+00

0,00000000000+00

THE ANSWfcRS ABOVt SHOULD Bt 0 PLUS

OR MINUS AN tRROR FACTOR OF 0,10-13

II-C-50
ARBAb - (034) BASIC ADDITION AND

SUBTRACTION

ASA KEF, • b,a

RESUI.TS

TESTl INTEGER ADD AND SUBT

0

0

0

0

TE8T2 REAL ADD AND SUBTR

0,0

0,0

0,0

0,0

ALL ABOVE ANSWERS SHOULD BE 0 EOR

THIS SEGMENT TO BE SUCCESSFUL
FORTRAN TEST PROGRAMS

P t P A t? £ u D Y . A T 1 0 \ A L 8 t t J r^f S T A n 0 A 0 S

F ) « USE O N L A G c; F C R T K A i ^ R C C c S S 0 R i

I J A C C 0 R J A N C F_ WITH A j A F 0 T K ^ >, A 3 , V - 1 9 6 S

Vers I o^i 3 part m

Sample computl^^ , fof^twa.n cj^i^iLt^ level

OPERATING SYbfEM V E b 1 0 N

D \T£ , INSTALLATION ^' A « c

II-C-52
ARFAS - (335) O.P. ADD AND SUBTR

ASA REF, - 6,1

"^RESULTS

0 . 0.

0 . 0 . -.2067951531D-2if

THE ANSWERS ABOVE SHOULD BE 0 FDR

THIS SEGMENT TO BE SUCCESSFUL.

VALUES WITH EXPONENTS LESS THAN

10*»(-1'*) ARE CONSIOEREO ZERO
ARBM 1 - (036) INTEGER MULTIPLICATION

ASA RE F . - 6.1

RESULTS

i,

0

0

0

0

0

0

All above amswers shoult f^e o eor

this segment to be successful

II-C-54
AR;^MR - (037) REAL MULTIPLICATION

ASA REF. - 6.1

RESULTS

0.0

0.0

0. 0

0. 0

0.0

0.0

0.0

ALL ABOVE ANSWERS SHOULO 3E 0 FOR

THIS SEGMENT TO BE SUCCESSFUL

II-C
ARFMD - (038) O.Pi MULTIPLICATION

ASA REF, - 6,1 1

0,00000000000*00

0,00000000000*00

0,00000000000*00

0,00000000000*00

0,00000000000*00

0,00000000000*00

o,ooooooonooD*oo

0,00000000000*00

WfcSULTS

THE ANSWERS ABOVE SHOULD BE 0 FOR

THIS SEGMENT TO BE SUCCESSFUL
AR^MR - (037) REAL MULTIPLICATION

ASA REF. - 6.1

RESULTS

0.0

0.0

0. 0

0. 0

0.0

0.0

0.0

ALL ABOVE ANSWERS SHOULO 3F 0 FOR

THIS SEGMENT TO BE SUCCESSFUL

II-C-55
ARFMD - (038) D,P, MULTIPLICATION

ASA REF, - 6,1

RESULTS

0,00000000000+00

0,00000000000+00

0,00000000000+00

0,00000000000+00

0,00000000000+00

0,00000000000+00

o.ooooooonooo+oo

O,O0OOOO0000Dt0O

THE ANSWERS ABOVE SHOULD BE 0 FOR

THIS SEGMENT TO BE SUCCESSFUL
ARttOV - (039) INTEGEH AND «EAL

DIVISION

ASA HEK, ^ 6,1

RESULTS

TE8TJ INTEGER DIVISION

0

0

0

0

0

TESr«i REAL DIVISION

0,0

0,0

0,0

0,0

0,0

ALL ABOVE ANSWERS SHOULD HE 0 THIS SEGMENT TO BE SUCCESSFUL
ARFOV - (O'tO) D.P. DIVISION

ASA REF. - 6.1

'^^RESULTS

0.

0.

0. t 0.

0.

0.

THE ANSWERS A80VE SHOULD BE G THIS SEGMENT TO BE SUCCESSFUL
ARBtX - (0«1) riASlC txPuNE-iNT i AT lU.-^J

ASA KLFS. - 6.1

RESULTS

INTLGEK HY INTEGF.fi

0

0

0

0

0

HEAL dY iNT/ HEAL Y H£AL

0.0

0,0

0.0

0 , 0

0.0

0 . 0

0.0

ALL ABUvE ANSWERS SHOULD HE 0 FGk

THIS SEGMENT TO BE SUCCESSFUL

II-C-S9
/jpf-EX - roM2) FxPO^!^^^TIATIo^.

ASA TF . - A . 1 RESULTS

Tmf answers .Af^ovp '5^"^itLn» ir n fo

TpTS SFGNfNT TO RF S ' J C C F" S S F Ut .

10, •(.IM) APE CorjSIOPRFD ?FPo
ARBHI « (0M3) HIERAKCHY, PARkNTHfcSES

ASA REPS, • 6,1 AND 6,

RtSULTS

TP S T 1 nVi

TF S T c

TEST 3 0

TFST /I»t nV

T C <i T fty TEST 6 0

TFST ft0

0

TFST A 0

TEST 9 0

0

0

TEST 10 0

0

0

TEST U 0

0

0

TEST 1? 0

0

0

0

0

0

0

0

TEST 13 0

0

THE ANSWERS ABOVE. SHOULD 8t 0 FOR

THiS StGMENT TO BE SUCCESSFUL

II-C-61
SmS7 - ( 050) SUBSCRIPTS FOR INTEGER

AND REAL ARRAYS, V, K

ASA REF. 5.1.3

RESULTS

0

0.0

- -t)0 _ •

0.0

0. 0

THE ANSWERS ABOVE SHOULD 0 FOR

THIS SEGMENT TO BE SUCCESSFUL

II-C-62

i
SBBU5 - (051) SUBSCRIPTS FOR INTEGFR

AND REAL ARRAYS, V+K, M-K

ASA REF, 5.1.3.3

RESULTS

0

0

0

0.0

0. 0

0.0

THF ANSWERS ABOVE SHOULD BE 0 FOR

THIS SEGMENT TO BE SUCCESSFUL

II-C-63
S8813 - (052) SUBSCRIPTS INTEGER AND

REAL» C»V, C»V-K, C»V+K

ASA RMF. 5.1.3.3

RESULTS

0

0.0 . ^ ., CO

n

0.0 -^'\'- '

0

0.0

THE ANSWERS ABOVE SHOULD BE 0 FOR

THIS SEGMENT TO BE SUCCESSFUL

II-C-64
S8F17 - (053J SUHSCHIPTS FOR 0,P,

AKKAYS, ALL FOHMS

ASA RtF, - 5,1,3,3

RESULTS

0,000000+00

0,000000+00

0,000000+00

0,000000+00

TMt ANSWtRS ABOVt SHOULD HE 0 FOR

THIS SEGMENT TO BE SUCCESSFUL
FOKTRAN TEST PROGRAMS

PREPARED BY ^JATIC^. AL B^iKtAU OF STA,\!DAKDb

FCjR US£ OfM LARGL FORTRAN PRCCFS50KS

IN ACCGl-<DA^, Ct WITH ASA FO'^TR'^N X3,V-19^6

VERSION 3 PART 5

SAMPLE C 0 M r- I ' T E y , FORTRAN C 0 ! P 1 L F. R l E V F L

OPERATlA/G SYSTEM VERSION

DATE, INSTALLATTCN NAME

II-C-66
SIMIF - (OSM) SIMPLE aMTH. IF

A N 0 L ^ C- I C A L IF

ASA REF. - 7.1.2»2

7.1.^.3

K fc S U L 1 S

T

1

T

T

T

T

1

1

1

THE TEN A \ S /- 1: S ABOVE K L S T BE T W U E

II-C-67
IFABS - 1055) INTRINSIC FUNCTIONS —

ABS, lABS (ABSOLUTE VALUE)

ASA REFS. - 8.2

RESULTS

0 .C

0.0

0

THE ABOVE ANSWERS SHOULD ALL BE 0 FOR

THIS TEST SEGMENT TO BE SUCCESSFUL.

II-C-68
IFFLT - <056) INTRINSIC FUNCTION

FLOAT

ASA REF. - 8.2

RESULTS

0 .0

0 .0

0.0

THE ABOVE ANSWERS SH^OULD ALL BE 0 FOR

THIS TEST SEGMENT TO BE SUCCESSFUL.

II-C-69
IFFIX - (057) INTRINSIC FUNCTIOn--

I F I X

ASA KFF . - F ,

2

RESULTS

6

,

0 ^

: .

" .,

0 .. ,

"0

\ .

THE ABOVE ANSWERS SHOULD AIL f. E 0 F THIS TEST S E G M F N T TO ^'. E S L C C E S S F Li L .

II-C-
IFSGN - ( 058 ) INTRINSIC FUNCTIONSSIGN, ISIGN (TRANSFER OF

ARGUMENT SIGN)

ASA REF. - 8.2

RESULTS

0 .C

0.0

0 .C

0.(J

CO

0

0

0

0

0

THE ABOVE ANSWERS SHOULD ALL BE C FOR

THIS TEST SEGMENT TO BE SUCCESSFUL.

II-C-71
IFDAB - (0591 lNTf'MM5,ir ^UNCTTO^J--

DAB5 (ABSOLUTE VAlUC OF

A 0 , P , ARGUMENT ) ASA RTF. - ^ ,2

RF ^ULTS

, 0 0 n r '1 0 " 0 r, ., '

• ODf.rMirnPO"

. OOnnon-ionp ' ^

''

; i

The APOVF answers should all be 0 FOR

THT«i TFST SFGMFMT TO BE S 'J C C EIS S F 1

1

1

II-C-72
IFTRN K (060) INTRINSIC f-U^^CTION--

AINT, INT, lUINT (TRUNCATION)

ASA Htr , -

RESULTS

0,0

0,0

0,0

0,0

END OF AINT TtST

0

0

0

0

END OP INT TfcST

0

0

0

0

END OF IDINT TEST

ALL ABOVE ANSWERS SHOULD BE 0 FOR THIS

TEST SEGMENT TO BF SUCCESSFUL

II-C-73
IFMOD - (061) INTRINSIC FUNCTION--

AMOD, MOO (REMAINOERING)

ASA REF. - 8.2

RESULTS

. 0.3

0.0 '

;

.

0.3

0.0

ENO OF AMOO TEST. ' ' ^

0

'a .

. 0

END OF HOD TEST.

ALL ABOVE ANSWERS SHIOULO BE 0 FOR THIS

TEST SEGMENT TO BE SUCCESSFUL.

II-C-74
IFMAX - (0A2) INTRINSIC ^UNCTTOnS--

AMAXO .AMAX 1 ,MAXO , MAXI.O^IAXI

ASA REF" . - a . 2

RF5ULT5

TfST OF AMAXO--

. 0

. c

. 0

• 0

.0

. 0

E_

^l n f F q - ^ - a p r, i • m f m t t s T , tfst of Ar-.'xi--

. 0

• 0

. c

FUC OF 2-APM.imFM TF^T,

F" r.' D r F 3 _ A P G U M F r>, T TEST.

E ^J n r> F 4 - or 5 - a f,

m F m t t f S t .

II-C-75
ifS'^ n F ^• A )( n > - 0

... C

0

0

c

i. n

0

0

Tr'-, T or M/vi--

p

c,0

c

F^r rr a t>f-,tiMF r y tfct,

F'lO CF 3-APr-(.'"F»;T TEST.

rrP r\f- pp f^.^iPCiM-lF'^T TFST.

rr 7-A'?^|'^<F^;T TF'^T,

pr.n rr ^-apci'me fjT tT^t,

pur OF q- OD r;,»tpr, HMF^'T TpST

If <;T OF OKA y 1 - -

, OCrt onnr HQ ^ -'\ -

. 0 n r f T' r n n o

, 0 0 r r"^ f n n o o

F^'f• f'F 7-APr,»'MCMT TFST,

. C C r

• r r n n n n p

. GCnr f r r C'Cn ^

.

« 0 C n r. r r r f > n r

Fr r f^F >. -A'-'C-UMFfiT TFt:T,

, 0 r r r

-

' r

. n C 0 r r r ^ r prriT '•'F M- c^/ipr. i.'i-'F''T TpsT.

T H F A R 0 V F /. «; t'', r p t: 5 if oijin fl|L -sr r f^r

Tm?'^ TF5T SFr,f'l'^lT TO up S tJ C C r c ? j: 1 1 1 ,

II-C-76
IFMIN m (065) INTRINSIC FUNCTIONS-^

AMIN0#AMIN1,MIN0,MINI,DMIN1

ASA R£F, m 8,2

RESULTS

TEST OF AMINO

0,0

0,0

0,0

0,0

0,0

0,0

0,0

TEST OF AMINI

0,0

0,0

0,0

0,0

0,0

0,0

0.0

0,0

0,0

TEST OF MINO

0

0

0

0

0

0

0

0

END UF H-ARGUMENT TEST,

END Of- 3^ARGUMENT TEST,

END Uf- a OR S-ARGUMENT TEST

f-NQ UF 2-ARGUf^ENT TEST,

END UF S'-ARbUMENT TEST,

END OF H OR 5-ARGUMENT TEST

END OF 2-ARGUMENT TEST,

END OF i^ARGUMENT TEST,

END OF a OR S-AWGUMENT TfrST

II-C-77
TEST OF MIM

0

ENO Of- i?*ARGUMENT TEST,

,0 ^ ' ^,. tND uf- 3-ARGUMENT TEST.

JEND Of- U OR 5-AKGUMENT TEST,

TEST OP DMINl

O.OOOOOOOOOOD+OO

0,OOOO0O0OOOD+OO

0,00000000000*00

END OP

0 ,00000000000+00

0,0000000000 0*00

END Oh

0,00000000000+00

0,00000000000+00

ENO OfTHE ABOVE ANSWERS SHOULD ALL BE 0 FOR

THiS TEST SEGMPNT TO BE SUCCESSFUL,

2-ARGUMENT TEST,

i-ARGUMENT TEST,

U OR b-ARGUMENT TEST,

II-C-78
IFDSU • (06a) INTRINSIC FUNCTION-^

DSIRN (TRANSf-EH OF SIGN)

ASA HEF\ - B.?

RESULTS

O.OOOOOOOOOOOOOOOOOODtOO

0,0000 000000000000000+00

0,0000000000000000000+00

0,0000000000000000000+00

ALL ABOVE ANSWERS SHOULO BE 0 FOR THIS

TEST SEGMENT TO BE SUCCESSFUL,

II-C-79
FORTRAN TFST PROGRAMS

pq^Pl\or^ \jATiQ^!/\|_ n|)r;j£AU OF STAMHA^OS

FOP USE ON LARGE -O^TPr-j ^^^nc-^SORS

IN Ar^O^;?or fjCE WIT I '^S'^ F0^T7^^l v;^, 9-1 955

v't^5T;,i] :^ PA^' 6

SAMPLE CO^^niTEP* FORTRAN ro*iDT!_rf^ l^VP'L

O'^ERMTNJG ^.YSTFVf \/'^^STO^J

DATE* INSTALLATION MAME

II-C-80
IFDIM - (065) INTRINSIC f^lJNCTIONS - DIM

ANO iniM (POSITIVE OIFFERENCE)

ASfl REF, - 8.2

RESULTS

0.00

0.00

0.00

0.00

G

0

0

0

0

ALL ABOVE ANSWERS SHOULD °.E 0 FOR

THIS TEST SEGMENT TO BE SUCCESSFUL.

II-C-81
I FSGl. - ( C ^•'^ ' T f,i T 1 C r T I 0 B T A I

hT S I r M 1 F T 0 F D , P . A P Q 1.1 f

•

A A F F S . - p . ?

K\V. A ,'^P7^4fil7'4 9377P7l'-^. 3 M F P ,

'4 fi 7 M « 7 'I 9 1 6 C 7 6 7 + n n 3

foF A -.39AP9S4n23P76'4 4r)0'^

F A . 3 3 3 -3 9 A ? 5 P H 3 ') + r r ME a , 3 333 3 9A?qi'^A9P-»''-nr

mF a ,79379n'5'^'4 77 r'?r*'-'n3

mF R ,7*'37"='0!3n2r'ri9ci + rr, 3

mF a .'^M^y^. I3 395(^7l94r'^0

NiF R ,'-lMqt|C,i3395ti2A7 + ''nr

ME A -,f6AA71P 3 79eP67+'ir.r

mF 8 -.fA/, A71R3MPP/:'!7 + OnP

NF A -.39Af'9S3 9609S39 + pn3

r:F B -.39An''^39 3 37l'i'8 + OC3

hiE A .qP7'^«7'i<' 3 77r'73*0 0 3

f.'F ^ ,M87'IP7q9lAr7^7+'503

LP'F R Sh-'ni'l. n AGRF-F 'A I T H L I f- E A Om|. Y TO THE P''FCl'5!OM OF A RpM T'^Tt'^' PF^-'AIMirjr, "^Ir. ITS PF"=liLT Fi^nf^ oLitPi'T

C OLIVERS I OK' WMFM A F A L V'Al. UF TS

AS«=:I6MFt) TO O.P. FOP PPIMTIMG,

II-C-82
IFREL - (067) INTRINSIC FUNCTION--

f?F.AL

ASA PEP. - B.?

RESULTS

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

'0.0000

0.0000

0.0000

0.0000

0.0000

0 . 0 0 C 0

O.GOOQ

0 . G 0 0 0

0 . C 0 0 0

0 . cooo

0.0000

0.0000

ALL ABOVE ANSWERS SHOULD ^E 0 FOR THIS

TEST SEGMENT TO BE SUCTESSFUL.

11-^:^83
IFIMG - (Q6B) INTPINSIC FUNCTION - AI-^IAG

OBTAIN IMAGINARY PT

OF COMPLEX Ai^GUMENT

ASA PEF.- 8.2

RESULTS

O.OQOdO

0.30000

0 . GO 00 0 1 0 . 0 0 C 0 0

0 . 3 0 0 0 C

0 . 0 0 0 0 0 0 . 0 0 0 0 0 0. OOOQO

0. OOOOC

0. QOCOO

0.00000

0 . C C 0 0

'3

0. QGOO 0 0.00 00 0 0.30030

0.00030

0 . 0 0 G a 0 C. 00 0 3 0 0. ccooo

0.00030

3. ccooo

0. QOOOO

0.00300

0.00030

ALL ABOVE ANSWERS SMOULO TE C FOR THIS

TEST SEGMENT TO 3E SUCCESSFUL.

II-C-84
IFl^BU - (069) INTRINSIC FUNCTION - OBLt

S,P, ARGUMENT IN 0,P, (-OHM

ASA REf-,* H,£?

RESULTS

LINE A 0,97fc56?bE-03

LINE B 0,976562*>OOOOaOUO-03

LINE A -0, lVb3UbE»02

LINE 8 -O, 19b3l2b00000000-02

LINE A 0,585937'>t«0?

llf^t B O,SB5937bO00O0O0O«'O2

LINE A -0, lOab576L+07

LINE B f. 0. 10a857feO000OO0D-f07

LINE A 0, 1 ia6880fc+06

LINE 8 0 , I ia68800000000D+06

A COMPARISON Of- LINE A AGAINST LINE B

IS NEEDED TO CHECK THE VALIDITY OF TEST
IFCPX - (C70)

ASA PFF.- 8.2

^

RESULTS

INTRINSIC FUNCTION - C^PLX

EXOPESS TWO PEAL A9r,UMENTS

IN COMPLEX FOR-^^

0 0 0 0 rj 0 0 OQOO 00

0 0 0 0 0 0 0 0 0 0 3 0 0 G 0 0 D 0 ] 3 0 0. 1 00 0 0 QO

n , Q G G G 0 0 3 3 . 0 C il 0 J 0 3

3 . 3 C 0 0 0 0 3 n . 0 C 0 G Q 0 3 0 . OCGG D03

3. OCnOGPO

THE ABOVE ANSWERS SHOULD ALL ^E 0 EOR

THIS TEST SEGMENT TO r^E SUCCESS^^UL.

II-C-86
IFCjr, - (071) INTRINSIC F^UNCTION - CONJG

OBTAIN CONJUGATE OF

A COMPLEX NUMBER

A3A PEFS. - 8.2

RESULTS

0. 0000000 0.0000000

O.aOOOOOO 0.000003 0

0.0000000 0.0000030

O.COOOCOO 0.00000 3 0

0.0000000 0.0000030

o.ooocooo o.oocooon

0.0000000 0.0000000

0. OOCOOOO 0.0000000

ALL ABOVE ANSWERS MUST RE 0 FOR THIS

TEST SEGMENT TO BE SUCCESSFUL.

II-C-87
IFBMS - i072) BASIC FORTRAN INTRINSIC

FU^s!CTIONS ACCEPT FVPPESSIONS

• OF TYPE SPECIFIEO IN I.F.TA3LE

ASA PEF.- S.?

RESULTS

TEST OF AOS IN EXPRESSIONS -

I] . 0

G . 0

0 . D 0.0

TEST OF lABS IN EXPR^^SSIONS -

0

.. 0

.

. • , G TEST OF FLOAT IN EXPRESSIONS -

3 . G 0.0

0.0

3 . 0

'• ' ' ^

TEST OF lEIX IN EXPRESSIONS -

0

0:

3';

TEST OF SICM IN EXPPESSIONS - 0.0

0.0

0.0

0 . G TEST OF ISir,N IN EXPRESSIONS -

0 — 0 -

" 0 COMBINATION OF ALL INTRINSIC FUNCTIONS

0 .G

0.0

: Q

o.n

0.0

0

^

. 0

ALL ABOVE ANSWERS SHOULO 3F G FOR

THIS TEST SEGMENT TO GE SUCCESSFUL.

II-C-88
IFFMf: - ( 073) FORTRAN INTRINSIC FUNCTIONS

ACCEPT EXPRESSIONS OF TYPE

SPECIFIED IN I.F.TA3LE

ASA REF.- fi.2/TA3LE 3

RESULTS

TEST OF OARS IN EXPRESSIONS

0.

0.

0.

0.

TEST OF AINT IN EXPRESSIONS

0 . 0.

0.

0.

TEST OF INT IN EXPRESSIONS

0

0

0

0

TEST OF lOINT IN EXPRESSIONS

0

0

0

0 TEST OF AMOO, MOO IN EXPRESSIONS

0.

0.

0

0 TEST OF A MAXO ,AMAX1 ,MAXO ,MAX1 AND DMAX

0.

0.

00.

n-C-89
TEST OF AMINO ,AMIN1 , MINO » MINI AND HMIN

00

test of nsign ano t 51 f in fxp^fssions

q .

0 . 3.

TEST OF DIM AND lOIM IN ^XPRFSSIONS

0. ^

'

• .

. . ;

, ^0

TEST OF SNr.L,PEAL»AIMAr,,CMPLX AND

CONJG IN EXPRESSIONS

0 . 0.

0. • -

TEST OF SOME COMBINATIONS OF '\nOVE

INTRINSIC FUNCTIONS

0 . 0 .

ALL A ROVE ANSWERS SHOULO ^^E 0 F^R THIS

SEGMENT TO BE SUCCESSFUL.

II-C-90
FORT K AM TEST PROGRAMS

PREPARED BY NATIONAL 3UREAU OF ST/iMDARDS

FQ"^ USt ON LARGr FORTRAN PROCESSORS

I'M ACCOROAMCt WITH ASA FORTRAN! X3. 9-1966

V^R5T0-i 3 PART 7

SAMPLE COr/^PUT-ERr FORTRAM CON'PILFR LEVEL

OPFRATiriG SYSTEt^ VERSION

DATE' JNSTALLATTOW ^5AME

II-C-91
EXPON - (080)

BASIC E<TFf?NAL FUNCTION -EXP-

(EXPONf^NT lAL -TYPE REAL)

ASA PEF.- 8,3.3 (TABLE k)

LINE 1 OF EACH PAIR IS

HOLLERITH INFORMATION

RESULTS

X = -ie.O 0.11253517it7l9?5911i+5E-0&

.1125352E-06

X= -8 . 0 0 . 335i+626279Q?'^ll '^388E-0 3

. 335'+6?&E-T 3 .

X= -t+.C 0 . 1 331563 88')873£»l *^029E-Q1

. 183156i+E-ai

X= 0.0 D.IOQOOOOOOOIOCOOOOOOE+Ol

.lOOOOOOE+01

X= U.O 0 .5t+598 15 C0331Ui»2 3903E + 02

.5i+59815E + 32

X= 8 . 0 0 . 29S09579870U1728275E*-0i+

. 2 9 8 0 9 5 3 E + 0

X= 16.0 0.88861105205n7872637E*07

.8886111E+37

LINE 2 0»^ EACH PATP IS THE ^UNCTION

CALCULATION PRINTED TO 7 HIGITS

II-C-92
OEXPO - (081)

BASIC EXTERNAL FUNCTION -DFXP-

(EXPONENTIAL -TYPE DOUBLE PRECISION)

ASA PEE.- 8.3.3 (TABLE «+

LINE 1 OF EACH PAIR IS

HOLLERITH INFORMATION

RESULTS

X = -16. 0 0 . 11 253 51 7't71 92 59 lli+SO-Oe

.11253517if71926O-06

X= -8. 0 0 . 335i+62627902511S388D-03

. 335it6262790251D-03

X= -U.O 0 . 1831563888B73«+18029D-01

.1831563388873i»D-01

X= 0.0 O.lOOOOOOOOOOOGOOOOOOD+01

.lOOOOOOOOOOOOODf 01

X= 0 . 5^+598 1500331t*U2 39030 + 02

.5i+5g8 1500331tt«+0 + 02

X= 8. 0 0 . 2980957g870'*17?3275D + 0'+ .29809579870i*17n + 0'+

X= 16.0 0.88861105205078726370+07

.8 386110 52 0537 90+07

LINE 2 OF EACH PAJ*^ IS THF FUNCTION

CALCULATION PPINTFQ TO 1 DT^^TS

II-C-93
CEXPO - (062)

BASIC EXTERNAL FUNCTION -CtXPw

(EXPONENTIAL pTYPE COMPLEX)

ASA KEF,- 8,3,3 (TAbLE a)

(COMPLEX ARGUMENT)

EXPECTED RESULT

FUNCTION RESULT

(-0, 161 181 OE +02, -0,7330 383E +01

)

0,5000000E-07 •0, 866025«E-07

0,5000000E»07 -0. 866025aE*07

(wO, ia50866E*02,»0,7330383E*0n

0,2b0O00OE-06 -0 , a 350 1 27E»06

0,2500000Ei.06 -0 , ^330 1 27E*06

(«0,l38l551E+02,p0,6283i85E*01)

0, 1000000E«Ob O.OOOOOOOEtOO

0, lOOOOOOE-iOS 0,00O0000E*00

(-0, 1220607E + 02, -0,6283 185E + 01)

0,5000000E-05 0 , O00OO0OE*0O

0,5000000E-05 0 , OOOOOOOE^OO

(-0, 1 15l293E+02,-0,^235988E+0l)

0,*>000000E-05 0,866025aE-05

0,5000000E-05 0 , 866025aE«05

(-0,V903a8BE+01,-0,5235988E+01)

0,2500000E-0a 0,a330127E-0a

0,2500000E-0« 0,a330127E-oa

(•0,92l03a0E + 0W-0,ai88790E4'01)

•»0,5000000E-0« O,866O25«E«0a

-0,5000000E-0a 0,866025aEi.0a

(*0,760 0902E+0l ,»0,ai88790fc*01

)

'•O,2b00O0OE»03 0,a3 50 127E-03

•"0,2S00000E-03 0,a330127E-03

(•0,6907755E + 01,«"0,iiqi593E + Ql

)

-O, lOOOOOOEt-02 0,O0OO0OOE*00

"O, lOOOOOOE-02 O,0O0OO0OE*OO

(-0,5298317E*01 ,-0,3iai593E*01)

*0,5000000Ep»02 0,OOOOOOOE + 00

• 0,5000000E-02 0 , 00O00O0E*O0
CEXPO - 1082) -CfcXP"

(i.O,a605170E + 01 ,-0,209a39St + On

*-0,5000000E-02 -0 , «fehO?5at-0?

-0,5000000E-02 -0 , 866025aE^Oa

(«0,29957 52E*0l ,-0,209a395fc+01

-0,2500000E*01 ^0,a330127E»01

*0,2bOOOOOE-01 -0,a330127E-01

(-0,23025Rbe>01 ,-0, 10a7198E-»-01

0,5000000E-01 -0,866025ab-01

0,bOOOOOOE-01 -0,866025aE«»01

(-0,693 1 a72E+0 0, -0, 10«7198E+01

0,2bOOOOOE*00 -'0,a330l27fc + 00

0,2500000E*00 -0 ,4330 127E + 00

( 0,0000000E+00, 0,0000000E+00)

0 , 1 000000E4-0 1 0, 0000000t + 00

0, iooooaofc*oi 0 ,oooooooE+oo

( 0. l609a38E+01 , O,O0O0O0OE>OO)

0,5000000E+01 0,0000000t*00

0,5000000E+Ol 0,00O000OE+O0

( 0,2302b85E+Ol, 0 , 1 047 1 98E+0 1)

0,b000000E + 0l 0,866025aE't-0l

0,5000000E+0l n,H660254E+0l

( 0,i91202iE+01, 0, 10a7198E+01)

0,2500000E+02 0 , 4330 1 27E+02

0,?500000E+02 0,4330127E+02

( 0,4fe05170E*01, 0,209a395fc+01

-0,500()000E + 02 0,8b60?54t + 02

-O.SOOOOOOE+02 0,86602S4E+02

( 0,fe?14608E + 01 , 0,2094395E + 0t ) -0,2bOOOOOEt03 0 , 4 3 5 0 1 «J 7E 0 3

-0,2bOOOOOE+03 0 ,4330 127E+03

II-C-95
CEXPO - (082) wCEXP"*

( 0,6907755E*01, 0 , 3 1^ 1593E + 0

U

"0, lOOOOOOE + Oa 0.0000000fc*00

• 0, IOOOOOOE*04 OtOOOOOOOE + 00

( 0,85in93Et01, 0,3iai593E + 0l)

wO,5000000E+oa O.OOOOOOOEtOO

•o.sooooooE+oa 0,0000000E+00

( 0,92lo3aOE+01, 0,^188790E*01)

•O.SOOOOOOE+Oa -0,866025a£+0a

-0,bOOOOOOE + Oa «*0,866025aE*0a

( 0,108l978E + 02, 09ai887<>6E*01)

«0,2500000t + 05 «0,a330127E-f 05

"O.aSoooOOE+OS •0,a330l27E*05

( 0,n5l293E + 02, 0 »^23S988fc + 0 1)

0,5000000E*05 -0 , 866025aE*05

0,5000000E+05 *0,8b6025aE+05

( 0,l3l2236E+02, 0 , 523S988E*0 1

)

0,2b00000E*0fe •0,a330l27£*0fe

0,2500000E*06 *0 , ^ 330 1 27E + 06

( 0,1381551£+02, 0 , 6283 1 85E+0 1

)

0, lOOOOOOE+07 O,0000000fc*00

0,9999999E*0<b 0 . 0 0 0 0 0 0 OE 1 0 0

( 0, l5a2a95E4>02, 0,6283185t401

)

0,5000000E*07 0 , OOOOOOOE + 00

0,5000000E-i-07 0 , OOOOOOOE-J-OO

( 0, 161 18lOE+02» 0,7330383t*01)

0,5000000E*07 0 , 866025aE4'07

0,5000000E+07 0 ,866025«Ef07

( 0,l772753E+02, 0 , 7330383E*0 1)

0,2500000E+08 0,«330127E*08

0,2500000E*08 0 , a330 1 27E4.08

II-C-96
LOGTi - (083)

BASIC EXTER.MAL FUNCTION -ALOG-

(NATURAL LOG -TYPE REAL)

ASA REF. - 8.3.3 (TA3LE

LINE 1 OF EACH PAIR IS

HOLLERITH INFORMATION

RESUL TS

X=&.125 -2.L79'*'tl5*+16798359

X = 0. 2 5 -1.38629<*3611l9d906

-1.38623^

X = 0.5 -t'.593ii»7i3J5599**53

-.693li»72

L.UOOJQOu

X = 1.5 u .tfQ5't651Q81i38l6'+^

X=2.IJ u.6931<»7i8G5599it53

.b93t!*72

LINE 2 OF EACH =>AIR IS THE FUNCTION

CALCJLATION PRINTED TO 7 DIGITS

II-C-97
0PL03 - IQSk)

BASi: EXTERNAL FUNCTION -DLOG-

(NATURAL LOG -TYPE DOUBLE PRECISION)

ASA REF.- 8.3.3 (TftBLE h)

LINE 1 OF EACH PAIR IS

HOLLERITH INFORMATION

RESULTS

X = 0.125 -2.iJ792*'*15m6798359D*aC

-2. ij79i*^ 15^*167980 +0 0

X=0.25 -1.38629'f36111989360-»-DO

-1.38629<*3611199D+0a

X=0.5 -li.6931«*71805599U530 + aO

-.o931«t7l8055995D + 00

X-l.Q O.Q003aOuuaOJOuG3

0

.

X=1.5 0.tt05«f&5ii]810816^t^»O*-0(i

.t*G5'+o510810816D-»-aO

X = 2.0 0.6931<*71805599<f53O + Q0

.&931it718055995D + aa

LINE 2 OF EACH PAIR IS THE FUNCTION

CALCULATION PRINTED TO 1^ DIGITS

ii-c-as
CXLOG - tOB5;

BASIC E:Xlt-"(viAL l-ulJCIJ'tW -LLiib-

(NAIOKAL LiJb -lYKF. COMHLhO

ASA t< F. F . - . J . t H M L t u )

( 0 . J 0 0 0 >J U 0 F - (' ^ » - u . b 0 ;> :> a L - u )

-O.U>ll.UO£ L)V -0. U'^^lVhF: 'n

( u , ^ "> 0 0 U 0 0 F - U b » - 0 . a -J 3 U 1 ^ t - 1/ 1> ) -U . 1 HSO'^^'^h " > • 1 U*+ ^ 1 •5'<*F 01

-(/ . 1 ab(>(-^ti(-, -0 . 1 u'* i "^bt 0 1

( 0 , i()0(;ut;uF -u:> » u a 0')n(Hiut't; ou)

-(> , 1 .in 1 S:^ 1 L O . OuC'UUuCF uU

( 0 . l-)i)(((UJi-liF"<''"> U . ()lH)l)(M)nK (lO)

-('. 1 k'^'U^O/F (., ()v;O0Uv/0F

-1/ , 1 i'U'^u/F 0? O.OoUOUOGF

( u . ":)000 0oUF-(i V . 0 , fihb() <'t3"F"0') )

-0 , 1 rj 1 ^' y ir. O/* i) . I 0*4 1 'Vt^F >-'l

- 1' , V V u J ii o n t 0 1 0 , 1 1.1 ^4 1 F 0 1

-u.y^U»J'*Of ()1 0,2o^A.lVt>F 01

- 0 . 1 u 3 u b M 0 . 0 V 4 J v s F ' ' 1

-U, /'oUtWOe'F 01 0. i'»»y4^-^'7t. 01

-O./'oooVo^F ^'1 0,?oV4Jv5f 01

( "0 . 1 OOOOOOF -0^ » O.OOOOOOOL OO)

-1) . 6yo/ /'li^F 0 1 !t. M4l'5^3F 0 1

( -0. l3 000uOoF_ -0*^ » 0.0 (0)0 "Out ((O)

-0.t)^V(.n/F ol 0,3iai^'yif 01

-o.S^VMai/'F 01 tj.Bl'iri^^jF *»i
CXLiJU - t"f)S) -CLOi--

( - (' .

-^j 0 0 0 (• 0 u r - 0 ^

» - ') , h »s 0 ^-jn h -02)

-u . <iou:i I vJt It I -u • 2uyuJ vht 01

-o,^ y'/''j/'JX»-_ ill -0 , ^ova-isibF 1)1

"{J ,? J{)^.'}(-i^r ») -1) . I 0*4 1 vaE 01

-U , JOtl'^o'it 'i\ -l),lu4/'lVdt 01

( 0.^S000«>ur ou ,

, 'J 1 1 ^ t in)

)

( I) , I 00iM)O0l- ol. J . 0 0 0 1)'. I Jut OO)

O.OUOOOoOl- oo o , OuOOOoot. 00

0,0000 )OUK uO O.OoOU'JuOt; uo

( 0,^>00(tOUOK Oi, 0 . 0.')(;00uUK UO) •

O.loOVaj^lF: ul u.0OU0.yOOL 00

( 0 , '>()(>() 0 0 01, 0 . -»0^0;>'J'4L Ol)

0 , JO^^^O'jt. 0 1 0 . I 04/ i V^jf Ol

O.PjU/^SObK iM 0,l04('lyHK ()1

( 0

.

.^'Soocjook (u-. o.anow/f. u^)

i),Af'i/o^.it )] o.lo4/lyrtL oi

0 , J y 1 jt 'il o.lo4^lyoK 0 1 (-O.bOOOOouF o<^, 0 , ^ 0 -) 4 K

r 0 . 4t)i;') 1 /Ol 0 1 iU^oV4J^St 0 1 0 , 'I ^)U'> 1 / Oh ol . /'oy 4 iVS^^ 0 1

( -U '500000 1 OJ, 0.4j<0 1^/fc. oi)

O,6^:l*4h0Jt ()1 0 . i:'0V4 JV'^t 01

o.^^ill'^oj-if. 01 o.i^u"y4iySF 0 1

II-C-100
(-U.iUOOOwoF on, a.'MijO'HjOh 0'))

(-U.bOOOOOUF ^M, O.U(^')«» M'JL 'JO)

U.'^blM^^h 0 1 o.^l4l:>VJ»- 0 1 U.H^jl /'I "1 M. M^l'^'V.lt, Oi

( -U . t>0OO000K U4 . '»f-.t.O?^'»L

( -U . ^'^()00 00^ U') » "u . 4 i 30 i. ^

j.iobiv/it '('^ -.i.Xu94J^bF 01

( 0 . ^0')')OUat- ,j .) » -0 . >^)4L 0^))

vj. 1 lOi^y J 1 04/^1 'V'l!, (>1

( 0 . <^^:bao^)uu^ t.o , -u . 4 .-iii i l '>^>

( U . i OOOOi'OK (>/ ) . vJ'tOO '>U'..'t: O U )

(>. 1 .inif>^>l t tHM>OoO<>0€ 0(»

0.l3^W>rjlL 0^ o.0aj000oO£ 00

( 0 , tJOOOOoOl- ^> » u . 'K)wO!;u<n. UU)

J

,! -w; ^4 't;^ o.oouoouot-: '>o u . 1 J.t.-i4 -y t»/^ .1 , UOUOOiHJt. 00

lo 1 loi'J:. .i.lO'^n^'it 01

( o.<^':)')OuOoK -.4 ^ //t Ob)

0.1 / Z-^/:* it «>• 1 04/ W^h 01

II-C-101
COLOG - (086)

BASIC EXTERNAL FUNCTION -ALOGIO-

(COMMON LOG -TYPE REAL)

ASA REF.- 8. 3.3 (TABLE t^)

LINE 1 OF EACH PAIR IS

HOLLERITH INFORMATION

RESULTS

X= 0.5 -0.3010299956639811952137

-.3010300

x= 1.0 0 .ooooioooaooaoooooooooj

G. 00 0000 0

X= 2.0 0.3010299956639811952137

.3010330

X= W.O U .602059991327962390^275

.602060 0

X= 8,0 0 .9030899869919^35856^+12

.9030900

X = 16.0 1.2C'»11998265592«»7808550

1.20t»1200

LINE 2 OF EACH PAIR IS THE FUNCTION

CALCJLATION PRINTED TO 7 DIGITS

II-C-102
DCLOG " (067)

HASIL EXTERNAL FUnCIION -DLOGIO-

(CO^IMON LOG -TYPt DUUHLf" PKtCISION)

ASA KEf-,- 8,3,3 (TAbLE U)

LINE 1 OF KACH PAIR IS

HOLLERITH INEORmATJUN

RESULTS

X= 0,b -0,3010£?V995663V81 1 95^eU70 + 00

•0,i010^999S6639Ru*0 0

X= 1,0 0,0 0000 0 00000000000000 0 0

0 , OOOOOOOOOOOOUOD + OO

X= 2, 0 0,301029995663981 1 V5<?li70 + 00

0,30102999S66398D+00

XS a,0 0,602059991527962590^2750+00

0,602059991327960+00

X= 8,0 0,90308998699l9-H35a56ai2D + UO

0, 903089986991 9^0 + 00

X = 16,0 1 ,204 U 998265592a 76085500 + 0 0

1 ,20^1 1998265590 + 00

LINE 2 OK EACH PAIR IS ThF EUNCTION

CALCULATION PRINTED TO la DIGITS

II-C-103
SINUS - (083)

BASIC EXTERMAL FUNCTION -SIN-

<TRISONOMETRIC SINE -TYPE REAL)

ASA REF.- 8. 3.3 (T^\3L£ ^)

LINE 1 OF EACH PAIR IS

HOLLERITH INFORMATION

RESULTS

X=i}.0 . t..QOcijQuuaOJJO

X= i.g +(j.8Hl!t7Q98i»808

.8^+1^7io

X= 2.0 -••C.9u9297i+26d26

.9J9£97^

X= 3.0 +0.14+112 G0u8'j6C

.1^112 J J X= (PI) ii.O JOj 3 Q«u JOu j

X= i*. a -U.756832it95308

-.7569J25

X= 5.0 -C. 95892 '27it663

-. 95392 <t3 X= 6. 0 -0. 279'*15it98198

-.279itL55

X=(2PI) u.CyCO J ulCOOJO

LINE 2 OF EACH PAIR IS THE FUNCTION

CALCULATION PRINTED TO 7 DIGITS

II-C-104
OPSIM - (089)

BASI3 EKTERMAL ^UNCTION -DSIN-

(TRI50N0M£T=?IC SINE -TYPE D.P.)

ASA REF. - d. 3 .3 (TA3LE

LINE 1 OF EACH =>AIR IS

HOLLERITH IMFORMATION

RESULTS

J.

. 8 ^4147 3981* flu 79uO + J L

X= 2.j 909297'*25825b8i695396j2D + jU

.909297^2b82568D+J0

X= 3.tJ +J.l'*ll20038o59867222iy J7^0*JO

.i'+112i)aj8J 5987D + aG

X> (^I) O.QOu'jOUQjOjjOOjOuuUjQj^G

.5^3383291 778630-21

X= k,Q -J. 7568D2i*95 3j 792825i3726^D + J J 7568b2'+9p 307930+3 0

X= 5.0 -J.95892i+27tt663138'*b8393i50 + J J -. 9 5 892 i+27'* b631'40 + J C

X=: 6.0 -u. 2 79t+l5i+98198925872811560 + w J -.279^+15'*98 198930+o J

x = c2Pi} j.3::;uOQv)uj^Uo!jJuJtuQJCt^uiJ

-.128676653355730-20

LINE 2 OF EACH PAIR IS THE FUNCTION

CALCULATION PRINTED TO 1^ DIGITS

1 1 -C -105
C5ICC-(C9 0)

BASIC EXTFRNAL FUMCTICNS -f^STN , CCOS

(TPir. SIMF AND cnSINJt^ -TYPF COMPLEX)

ASA PEF '^.^.^ (TABLE k)

FUNCT ION RESULTS

TABLE VALUE

CSIN (1 . , 1 .

)

FABLE VALUE

CCOS ( 1. , i . )

1 . 298^4^7?)

0 . 8 3 7 3 3 G .8337333

Q . 3 i+ q 6 3 9

.63^+9639

G.'^3H8 977

- . 98 83977

CSIN(X)'^'^2 + CC0S(X)*-*2 = 1.0,0.0

ARGUMENT

(1 , 1/1 >

(2 , 1/2 )

(3 , 1/3 )

y 1/k )

(5 , 1/5 )

(6 , 1/6 )

(7 , 1/7 )

(8 , 1/8 )

(9 , 1/9 )

(10, 1/10)

RESULTS SHO'JLP BE 1.0,0.

1 . 0 0 0 G 0 3 0 -.OOP 3 0 0 0

1 . 0 0 0 C 0 0 3 1.03:3033

1.0000030

1.0030030

1.0000033

1 . G 0 0 0 0 Q 3 1.0030030

1 . 0 0 0 C 3 3 3 1,0000300

3.00 30 000

.0330000

0.0030000

-.3030000

-.0030000

.03 33000

-.0003000

0 . 0 0 0 0 0 0 Q -.0000003

II-C-106
CObNS - C09U

HAbIC feXTEKNAL FUNCTION -CUS-

(THIGONOMFTRIC CUSInE -TYPE KtAL)

ASA KEF,- 8,3,i (TABLE «)

LlNt 1 Of- EACH PAIW IS

HOLLEHITH iNf-OKMATlUN

RESULTS

X= 0,0 .000000000000

1,0000000

X= 1.0 -fO .5aoiOt?50SHfc8

o,saoio2^

X= 2,0 -0,«16ia68365a7

-0,/4l6ia68

X= i,0 -0,98999c^a<)6b00

-0,9899925

Xs (PI) -1,00000 0 00000 0

-1.0 000000

Xs a,0 -0,6b56436i?086a

-0,6b5b456

X= 5,0 +0,28 5662185465

0,2836622

X= 6,0 +0,960170266650

0,9601703

X=(2PI) +1,000000000000

1,0000000

LINE 2 Of- EACH PAIR IS THE FUNCTION

CALCULATION PKINTED TO 7 DIGITS

II-C-
DPCOS - (092J

BASIC tXTERNAL f-UNCTlON *DCOS-

(TRItiONOMETRlC COSiNt -TYPt U,P,)

ASA Kfef-,- e,i,i (TAHLE a) .

LlNfe 1 OF EACH PAIR IS

houlerith information

RESULTS

X= 0,0 to, 1 00000000000000000000000*01

0, 100000000000000*01

X« 1,0 +0,Sao3o230b8681397l 7a009aOf00

0,5a030^30b868iaD*00

X= 2,0 -0,«16ia68i6ba7ia2.$fl699757U + 00

-0,aibl468 36lj 471^0 + 00

X= 3,0 -0,989992«9fe600aa5a57?71b7D+00

-0,98999<'a966 00abD + 00

X= (PI) -0,100000000000000000000000+01

-0 , 1 00000000000000 + 0 1

X= ^,0 -0,6536«362086361 l9iab3917D+00

-0,^^364362086 3610+00

X= 5,0 +0,28366218^463226264466640+00

0,285662l8b46323D+00

X« 6,0 +0,960l70286650366020S456bD+00

0,960170286650370+00

X=12PI) +0,100000000000000000000000+01

0, lOOOOOOOOOOOOOD + Ol

LINE 2 OF EACH PAIK IS THE FUNCTION

CALCULATION PRINTED TO 14 DIGITS

II-C-108
F 0 :^ T R ^. r j 1^5"^ ^ P C P * S

^OR USE 0\' lA'^GE roPT'^ANj Pf^OCtSSORS

n ACCORDA^iCr 'r I TM ASA FORTRAN' X3.9-1<^66

VtRSICr; 3 PART R

SA ''C-LE CON'P'JT~R, roRTRAM CO'^PIl?,^ LTVE'.

0P:-:RATIN'G 5^51^^-' vfRSIOK

OATF* 1 NJSTALL AT T0!1 N'/^miT

I1-C-1Q9-
TANGH m

BASIC EXTERNAL FUNCHUN -TANH-*

(HYPtKBOLIC TANGtNT -TYPfc wfAL)

ASA RtF,^ ».i,3 (TABLE a)

LINE 1 OF EACH PAIR IS

HOLLERITH INf-OHMATlON

RESULTS

X=0,0 0,0000000000

0,000 0000

X = £,0 Q ,9biiOi7btiO{

0 ,9640276

X = <i,b 0,9H66ia2V82

0,*^e66ia3

X=y,0 0,9q9329?997

0,9993293

X = 6,0 0,9999H771 I 7 0 ,99996 7 7 X=B,0 0,999999/749

0,999999B

LINE 2 OF EACH PAIR IS THE FUNCTION

CALCULATION PRINTED TO 7 DIGITS

II-C-110
SQ(?OT - ('19S)

HASIC EXT^oNAL FU^^I^TI^N -30RT-

(SQUAR*" RTOT -TYPF RtTAL)

ASA f?r:F.- 6.7,' (TA'^LT

LINE 1 OF ^ACH PAT? IS

HOLLERITH INFORMAriON

RFSULTS

x= 2.0 1. i+i^^i-^^.e^^z^io

l.^l'+Pl^B

X= 3.0 1.73?0S0ST7 56 883

1 .73^0508

X = 17.0 t?310'^b2';'=.l 7'S8

. 1 ? 3 1 0 5

X = 31.0 '".6775/+3628'00?

^^.S677f>'+U

X = R9.0 q. '+33f^811 3? 0'^6oC

9. ^+339811

LINE ? OP TAGH PAT^ IS THP FUNCTION

CALCULATION "S^^INTFO TO 7 OIGIT^

II-C-Ill
sown - (HQf,)

liASIC f^Xrr^MAL FU^'CTIOM -)c,T?T«

C^Q'JA^F ROOT -jyp^ n.D,) ,

ASA RFT.- P. .3.3 (TflRL^ 4)

LINE 1 OF FA CM PATP

HmLLFxITH I'^)F0RMATT0M

Ki;SJLTS

1 .7320Sn'}07563^ + nnn

X = l 7.n '4 . l?3ins625617^6ns'+9^3 + nn l?31iiS62S6177 + non

X = 31 .n s.S6 77^'a^&'5R3onPi^'3?l D4-no

S.b6776436''33f)n + nnn

XrB9.fl 9. '+339^^1 13^n56^n3"1 1 3D + nn 9.t|339Hl 13^^056^ + Orn

line; 2 OF EACH PAIR THF F IniCTIOVj

CALCULATION PRINTp:o TO 14 ^I^TTS

II-C-112
CSQRO - (097)

BASIC EXTERNAL FUNCTION -CSQRTCSQUARE ROOT -TYPE COMPLEX)

ASA REF.- 8. 3.3 (TABLE

LINE 1 OF EACH PAIR IS

THE EXPECTED VALUE

RESULT

.99503t*2E-02

.99500^2E-02

.9800666E-01

.9800666E-ai

.99833'*0E-Q3

.99333'+3E-03

.1986693E-01

.1986693E-01

.9553365E*0C . 295 5 2 02E+ 03

.9553365E+0Q .2955202E+Qa

.9210610E+01

.9210610E+ai

.8775826E+02

.8775826E+02

.8253356E-02

.8253356E-a2

.389i*183E*Cl

.389**183E+01

.'79i*255E+02

.i+79'+255E+C2

. 56t»6^t25E-Q2

.56J*6'*25E-G2

.76i+8it22E-01

.6967067E^-00

.6967367E+ 30

.6«*«*2177E-C1

.6'+i»2177E-Cl

.7173561E+eO

.717.3561E+C0

.5^t03323E + 01 . 8'f 1 '710 E+Cl

.5i*03023E+01 .8'+li*7lOE+ai

.'161'*68E+02 -.909297i*£+02

.i+161i*68E + 02 -.90929 7£tE*02

LINE 2 OF EACH PAIR IS THE FUNCTION

CALCULATION

II-C-113
AHCTb - (098)

BASIC tXTERNAL PUNCTION -ATAN-

(AHcTANGtNT "TYPF, KfcAl)

ASA HEP 8,3, i (TAHLt a) . LINE 1 OF EACH PAIR IS : HOLLtKlTH INI-ORMATIUN

RESULTS

x= 0,125 0, i^aibavpasa/

X= 0,2bO 0,2aa9786feil27

0,2^^9787

X= 0,375 0,5567/0670271

0,358/707

X= 0,500 0,463647609001

0 ,4636476

X=-0,750 -0,643501108795

-0,643501

1

X= 1,000 0,785598165397

0,7855982

LINE 2 OP EACH PAIR IS THE FUNCTION

CALCULATION PRINTED TO 7 DIGITS

II-C-114
OACTli - {099)

BASIC tXTFRNAL FUNCTION -DATAN-

(AKCTANGtNT -TYPfc D,P,)

ASA Rf-.F,- e,i,3 CTABLfc U)

LINE 1 Of- feACH PAIR IS

HOLLERITH IN^-ORmaTIUN

RtbULTS

X= O.^ibO 0,aaa976663ia7D + 00

0,2aa978663U70 + 00

X= 0,375 0,3b8^70fe7027lD+00

0,3S877067027lD*on

X= 0,500 0 ,a636ii760900 10*00

0,^636^76090010+00

Xs-0,7b0 -0,faa3b0l 1087930+00

•0,6^35011087930+00

X= 1,000 0,7eb398l63397D+00

0,7853961633970+00

LINE ? OF EACH PAIR IS THE FUNCTION

CALCULATION PRINTED TO ii OIGITS

II-C-llS
ACTG2 - (100 )

BASI" EXTERNAL FUNCTION -ATAN2-

tARCTANGENT, 2 ARGUMENT -TYPE REAL)

ASA REF.- 8, 3.3 (TABLE k)

L INE 1 OF EACH PAIR IS

HOLLERITH INFORMATION

RESULTS '

X= 0. 125 0. 12«+3 5^*99'+5«*7

.12'+3 5 50

X= 0. 250 0. 2'+i*978663127

X= 0.375 0. 35877u67Q271

.3587707

X= 0. 500 u. '636A7609QC1

X=-0. 750 -0. 6it3501108793

-.6«+35 0il

X= 1.003 0.785398163397

.7853 9 82

LINE 2 OF EACH PAIR IS THE FUNCTION

CALCULATION PRINTED TO 7 DIGITS

II-C-116
(101)

tlASIC EXT'^f^'iAL FU^CTI'^'I ~n^T!'^'?~

(ARCTAMG£NT» ? AR^-ll^EMT -TY^^ n.P.)

ASA R^F.- (TA^L" 4)

LIME ] Ot-' F1CH PAir? iq

H )LLE^^I TH r iFORViA I TOM

0 . I '^H3S'i'J9'lS'i 7 )4-00

. 1 ^S'l")^'} 7 »

,

;;>'i ua7"r-,f, 51 ^> / 'inn

n . 7 7n<s 70 '>71 •' + !)0

. ?^Sn7 7nf,70 ' 71 (10 0

n •

'4 ')5f^ 'J '7^)0^)00 1 MOM

, 4h'^^(+7fV0'^''fi 1 + noo

n.h'i'^soi 1 on -"W^fon

-.b'-t 'isoi 1 0'^ 7 M + ono

0 . y^'^?-'^ 1 6.^ 7'"i» 00

. 7 ''S?^'^'" 1 63 ^'jy »-noo

LFME ^ OF s^^C^' Pa\'R jq THE p i"CTI^m

C '\LC JLATI'^'J P^INTf-.'^ T"^ 1 r> iI - ITS

II-C-117

R'"S'JLTS

X- f).i;>b

X- ').:75

X~ 0,J)0

X--0. 7S0

X 1 .

fi 0 0
DMODA - (102)

BASIC EXTtRNAL FUNCTION -DMOD-

(RtMAlNDtHlNG -TYHE DOUBLt PRECISION)

ASA REF,- 8,i,3 (TAbLE a)

RESULTS

-1 "

.

OiOOOOOOOOOOOOOOU+OO

_ o,oooonooooooooo'J)+oo

. o,oooooooooooooou+oo

0 , OOOOOOOOOOOOOOD+00

ENU OF DMOD TEST

ALL ABOVE ANSWERS SHUULt) BE U hOR THIS

TEST SEGMENT TO BE SUCCESSFUL,

II-C-118
CABSA - (10''5>

OASIC EXTF'^MAL (^UMOTION -CIS^S-

(M0DULU3 A '^OMPL-IX MJM^rP)

ASA RF.F.- 3. 5. ^ (T V'<L-: RESULTS

S''T 1 SlT 2

.1GOJO']E-16 .SG DC OOF-OS

.lOOTlOF-0 5 .SCOOP.IE- 05

.10010QE-ni+ . 500000 E-O^t

.l}nnn^--i^ , 50000 OE-03

.lOnilOGF-n? . 50 OOmE-0 2

.lOOlOOE-01 .5nooo3E-ni

.1001 00" + no , 5 0 0 0 0 3F + 0 3 .moooo'^ + n .5cnoooE+oi

.lOmnOEfn? .50CnonE-»-02

.no.iao-+n3 .5COGoaE + n3

. 1 3 0 0 0 0 - + ^4 . 5 0 a 0 0 0 E + n '4

. 1 0 0 ] 0 0 E + "! 5 . 5 0 3 C Q 0 E + 0 5

.IGOO'^O^ + ne . 50000 OE + 06

.in3 0 0 0~+^7 . 503000 E+ 07

. 1 0 0 0 0:3, : + 08 . 50 0 0 0 0EfOS

VALUES TM EACH SET SHOULO RE POSITIVE

.1 FOR SET 1 (.5 FOR SET ) , EXOON^NT

RANGE FROM -OS TO f 0 S II SEOUENCE

II-C-119
B8PTS - CllO) STATtMtNT FUNCTION TtST

iNTEGtH AND KEAL

ASA NhF , - ft, 1 ,^

RhSULTS

' 0,0000000000

0,0 0 00000000

0

0,0000000000

0,0000000000

0

0

0 ,0000000000

0,0000000000

• 0

0,0000000000

0,0000000000

. .,o- 0

ALL ABOVt ANSwtKS SHOULD Bh 0 KOR

THIS rtST SEGMENT TO Bfc SUCCESSFUL,

riff

II-C-120
F-SPTS - (111) STATEMtNT f-UNCTIQNi TEST

DOUHLE PRtCISIUM, COMPLEX ANU LOGICAL

ASA KEF, - H.l,?

RESULTS

0, 0000000000 OOOOUOOOD+00

o,ooooooooooooooooooo+uo

0,00000000 0 00000 0 0000+00

0 , 00000000 oooooouooou+oo

0 , 000000000O0noooO00!) + O0

Q.OOOOOOOOOOOOOOOOOOD+OO

0,0000000000000000000+00

0,0 000000000000000000+00

0 , 0000000

0,0000000

0,0000000

0,0000000

0,0000000

0,0000000

0,0000000

0,0000000

ALL ABOVE ANSWERS SHOULD BE 0 FOR THIS

TEST SKfJMf-NT TO BE SUCCESShUL, VALUES

WITH EXPONENTS LESS THAN lO**(-ia)

ARE CONSIOEREO ZERO

THE POUR ABOVE ANSWERS SHOULD BE TRUE

FOR THIS SEGMENT TO bfc SUCCESSFUL

n-C-121
FORTRAN TEST PROGRAMS

PREPARED BY NATIONAL BUREAU STANDARDS

FOR USE ON LARGE FORTRAN PROrESSORS

IN ACCORDANCE ftlTH ASA FORTRAN X3.V-196&

VERSION 3 PART 9

SAMPLE COMPUTER! FORTRAN COMPTLER LEVEL

OPERATING SYSTEM VERSION

DATE, INSTALLATION NAME

II-C-122
CPXAD - (IHOI COMPLEX ADDITION AND

SUBTRACT ION

ASA REF. - 6.1

RESULTS

•0000 •0000

•0000 •0000

•0000 •OOOO

•0000 .0000

•0000 .0000

•0000 .0000

•0000 .OOOO

•0000 •OOOO

•0000 ,0000

•OOOO .0000

•OOOO .0000

Test is positive if numbers printed

above are 0^0,0»0

II-C-123
CPXMU - (lai) CONPLtX MULTIPLICATION

ASA HEF, ^ 6,1

RfcSULTS

1,000 0 ,000

1,000 0,000

1,000 0,000

1,000 0,000

1 ,000 o,noo

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 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 0,000

TEST IS POSITIVf: Ih NUMBfRS PRlNTtl)

AfiOVfc ARh 1,0,0,0

tRROR SHOULD NOT EXCtEO + UR - ,001

II-C-124
CPXOX - (I'+Z) DIVISION OF

COMPLEX NUMBERS

ASA REF.- 6.1

RESULTS

1.00 0 0 l.COGO

l.OQOG 1.00 GO

l.OOCO 1.00 GO

1.00 CO i.oo:c

l.OOCO i.Goro

l.OOPO 1.0 000

1.0000 1.00?0

i.noco 1.0000

i.ooro l.OOCO

l.GCOO l.:!03C

l.OOCO l.OOCO

l.COCO l.OOOC

l.OOCO LOO-^'O

1.0 J 00 1.0 one

1 . 0 CI 0 1 . Ci C

^' 0 l.COCO 1.0 000

l.OOCO 1.00 0 0 i.oaco i.oo'-c

l.OOCO l.OO^G

l.OOCO 1.03"0

TEST IS POSITIVE IF NUMBERS PRTNTEO

ABOVE ARE 1.0,1.0

ERROR SHOULD NOT EXCEED + OR - .0001

II-C-125
CPXfr'X - (ia3) COMPLfeX EXPONENTIATION

ASA,REF,6,1

RESULTS BASED ON THE EUNCTION

1,0 = SIN**2(X)+C0S**2(X)

1 ,0000 0. 0000

* 1 , 0000 0,,0000

1 ,000 0 0 ,,0000

1,0000 0,,0000

1,0 00 0 0 ,,0000

1 ,0000 0<,0000

1 , 0000 0,,0000

1 ,0000 0,,0000

1,0000 0 ,0000

1,0000 0,,0000

1,0000 0,,0000

1 ,0000 0,,0000

1 ,0000 -0,,0000

1 , 0000 -0,,0000

1,0000 -0 ,,0000

1 ,0000 "0 ,,0000

1 ,0000 0,,0000

1,0000 0,,0000

1 ,0000 0,,0000

1 ,0000 0

,

,0000

1,0000 0,,0000

1 , 0000 0,,0000

1 , 0000 0,,0000

1 , 0000 0 ,,0000

1 , 0000 0 ,,0000

1 , 000 0 0,,0000

1 , 0000 0 ,,0000

1,0000 Oi,0000

" 1,0000 0,,0000

1 , 0000 0

,

,0000

1 , 0000 0 ,,0000

1,0000 0,,0000

1 , 0000 0,,0000

1,0000 0,,0000

1 , 0 00 0 0,,0000

1 ,00 00 0,,0000

1,0000 -0,,0000

1 ,0000 "0 ,,0000

1,0000 "0,,0000

1 , 0000 -0,,0000

TEST IS POSITIVE IE NUMBERS PRINTED

ABOVE ARE CLOSE TO 1,0,0,0

ERROR SHOULD NOT EXCEED + OR - ,0001

II-C-126
CPXOP - (l^*a) COMPLEX OPfeRATIONS

ASA REF 6,1

RESULTS

1,0000 0,0000

1,0000 -0,0000

1,0000 •OjOOOO

1,0000 "O.OOOO

TEST IS POSITIVE IF NUMBERS PRINTED

AHUVE ARE 1.0»0,0

ERROR SHOULD NOT EXCEED OR ,000 1

II-C-127
CREAO - (MS) ADDITION AND Si»BTHACtION

OF COMPLEX AND REAL ^UMBERS

ASA REF, 6*1

RESULTS

.0000

.0000

.0000

.0000

.0000

• OOQO

.0000

• OOOQ

.0000

. 0000

.0000

. 0000

. 0000

.0000

.0000

. 0000

• 0000

.0000

Test is positive if numbers printed

above are 0.0,0.0

II-C-128
CREMU - (1^+6) MULTIPLICATION OF COMPLEX

BY REAL

ASA.REF. 6.

RESULTS

1 . G 0 C C ? . 0 0 G

r 1,0 0 CO 2. 0 030

1 . 0 0 C C 2 . C 0 0 0 1 . C 0 C 0 2 . G 0 : c

TEST IS POSITIVE IF NUMBERS PRINTED

ABOVE ARE l.'^,2.3

1 . G 0 <? C 1 , ? G J 0 1 . 0 e c 0 1 . c 0 c G 1 . 0 c r. c 1 . n c 'J 0 1 . c 0 c 0 1 . 0 D c

TEST IS POSITIVE IF NUMBERS PRINTED

ABOVE ARE 1.0,1.C

ERROR SHOULD NOT EXCEED + OR - .0031

II-C-129
CREDV - (m?) '^ivTSioM OF ::oMPLZx

ASA PEF 6.1

RESULTS

1 . G t] c 1 .

1 . 0 0 u 1 . ) 1 . - : L 0 1

1 . 0 c : c 1 . ^ c 'T

1 . 0 T : c 1.3^:::

1 . c . ' ^ 1 . c . c L 1 . C 0

' C 1 . c -

*) n <" n

TEST IS PO^ITTV" IF NUMBERS PRIMTFD

ABOVE APE

ERROR SHO'JLO NOT -XCEEO + OR - .CCTl

n-c-130
CREOP - (l^t8) OPERATIONS ON RFAL AND

COMPLEX NUMBERS

ASA REF. 6.1

RESULTS

TEST IS POSITIVE I^ NUMBERS PRI^^TED

ABOVE ARE 2.0,-1.]

1.00^0 .^OjC

TEST IS POSITIVE IF NUM3ERS PRI^JTEO

ABOVE ARE 1. G 0

ERROR SHOULl NOT EXCEED + OR - .CCU

1 1 -C- 131
MISC3 - (IM9) EFFECT OF BLANt^S *1THIN

STMNT AND CONTTNUATION

OF STMNT TO 20 LI NfiS

ASA REFS* - 3.1.<4.l 3f2.M*3.3 3«2«M

RESULTS

" ' i

0

.0

Test is positive if numbers printed

above are 0

II-C-132
MISC^ - (151) EFFECT OF 3LANKS WITHIN

STMNT AND CONTINUATION

OF STMNT TO 20 LINES

ASA REFS. - 3.1.'+.l 3. 2. '.3.3 3.2,1*

RESULTS

0.01 GO 0.0010

•0000 .0000

TEST IS POSITIVE IF NUM8ERS PRINTED

ABOVE ARE 0.0, '7.3

H-C^133
FORTRAN TEST PROGRAMS

PREPARED BY rgATIONAL BUREAU bTAt>iDARDS

FOR USE ON LARGE FORTRAN PROrESSORS

IN ACCORDANCE MTh ASA FORTRAN X3. 9-1966

VERS I ON 3 PART 1

0

SAMPLE COMPUTER, FORTRAN COMPILER LEVEL

OPERATING SYSTEM VERSION

DATE, IfJSTALLATION NAME

II-C-134
BRFCP - (1<^0) RtAL tXTERrjAL ruNCTIONS

ASA REF , - 8^3.1

RESULTS SHOULD BE POSITIVE

POSITIVE

POSITIVE

POSITIVE

POS 1 T I VE

POS I T 1 VF

PCS I T I VE

II-C-135

TtST 1 IS

TEST 2 IS

TEST 3 IS

TEST H IS

Test s is

TEST 6 IS
8 I FCP - (16 1) INTEGER LXTERN'^L

A I T H I N T L G t « AMD

f- U N C T I 0 N S

KLAL ARGS

ASA HL^. - 8.3.1

RESULTS SHOULD BE POSITIVE

TEST 1 IS POSITIVE

TEST 2 IS POSITIVE "

TEST 3 IS

TEST M IS

TEST S IS

TEST 6 IS

P05 I T I VE

POSITIVE

POSITIVE

P05 I T I VE

II-C-136
FRFCP - (162) REAL FUNCTIONS AlTH

LOGICAL! O.Pti A^JD CpmPLEX ARGS

ASA KEF . 8.3,1

RESULTS SHOULD BE POSITIVE

TEST J IS POS 1 T I VF .

TEST 2 15

Test 3 is

Test h is

TEST b is

Test 6 is

TEST 7 IS

PCS I T I VE

POS I T I VE

POSITIVE.

POS I T I VE .

POSITIVE.

POSITIVE.

II-C-137
FIFCP - (IA3) INTEGER fUrJCTIOhJ IN

FULL FORTRAN

ASA KEF. B.3,

1

RESULTS SHOULD t3E POSITIVE

Test i i s pos i t i ve

TEST 2 I S P 0 S I T I V E

Test 3 is positive

test m is positive

Test b i s pos i t i ve

Test 6 is pos i t i ve

Test 7ispositive

II-C-138
CFCCP - (164) COMPLtX FUnCTI^MS

ASA REFS , 8.3,1 ,8.3.2

RESULTS

.0 .0 -- TEST 1 PUSITIV IF f.,0,O.U

.0 .U TEST 2 PJSlTIVr [f c. 0,0.0

.0 .0 TEST 3 PUSITlVr if 0.0,0.0

.0 .0 TEST M POSITIVr If rj, 0,0.0

.0 .U --TEST S POSITIVE- IF 0.0,0.0

.0 .0 -- TEST 6 POSITIVr If 0.0,0.0

.0 .0 -- TFST 7 PQSlTIVr fp C. 0,0.0

.0 .0 -- TEST 8 POSlTIVr ip G. 0,0.0

TFST 9 IS POS I I VE

TEST 10 IS POS I T I VE

II-C-139
FORTPAM TEST pROGR '\MS

PREPARED 3Y NATIONAL '^UR^Ali OF 3TAN0AR0S

FOR USE ON LARGE FORTRAN DR0CES30PS

IN ACCORDANCE 'ilTH ASA FORTRAN <3. 1-1965

VERSION 3 PART 11

SAMPLE COMPUTEf?, FORTRAN GOMPIL"? L-VtL

OPERATING SYSTE^* VERSION

DATE, INSTALLATION NAME

II -C- 140
OPFCP - (1^5) ?0U1LE P=^E':i'^TON

FUNCTIONASfi REfS, 3. ^.1,8.3.2

RESULTS

TEST 1 13 ^OSTTIVr

TEST 2 IS °OSITIV-:

TEST 3 IS DOSITIV"

TEST U IS ^OSITIV-I

TEST 5 IS POSITIVE

TEST f IS ='OSITIV"

TEST 7 IS ^OSITIV"

TEST ft IS DQSITIVTEST 9 IS POSITIVE

TEST 1- IS POSITIV0 . : . n

TEST 11 IS POSITIVE 1^ MUMBfPS ^RINTEI

ABOVE ARE

TEST 12 IS POSITIVE

II-C-141
BFCCP - {l^<^) LOGir:AL ^UNCTIONS

ASA REF 8.^.1

RESULTS

TEST 1 IS POSITIVTEST 2 IS ^OSITIV-*: - "

TEST 3 IS POSITIVE

TEST IS PnsiTI

TEST IS POSUIV •

TEST P IS -"TSTTr'

TEST 7 IS ^nSTTIV- '

'

TEST 8 IS PHSITI V~

TEST 9 IS POSITIVE

TEST ir IS POSTTIV: •

c . 0 0 0 J c . K

TEST 11 IS ^OSTTIV

ABOVE ARE j.O,-.^

If^ NUMBEPS ^PINTED

END OF (166)

II-C-I42
SBRTN - (167) SUBROUTINE SUBPROGRAM

ASA REF, ~

RESULTS

1

1. 0 1

1

1

1

1. 0 1, 0 1. G 1. Q 1 1. 0 1

1

1. c 1. 0

TEST SUCCESSFUL IF ALL RESULTS EQUAL

ri-C-143
FSBRT - (168) SUBROUTINE SUBPROSRAMS

ASA REF. - 8.i*.l

RESULTS

TEST IS SUCCESSFUL IF EACH

GROUP CONTAINS SAME VALUES

1

V • 1

. ; .11 -

'

^

• 1'

^' 1,

/ 1

2.0

2. 0 2.0

2. 0

2.0

2.0

2. 0

2.0

2. 0

OD + OQ

a. OD+J 0

^f. 0 0+ 0 0

^.ro+oo

^f.COfOO

OO + O 0

t*, OD+Q 0 oo + oo

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

T

T

t

T

T

T

T

T

II-C-144
BLKOT • (169) BLOCK DATA SUBPHUGRAM

ASA HEF, - 8,5

RESULTS

TEST IS SUCCESSFUL U EACH

GROUP CONTAINS SAMfc VALUES

?

I

2

?

3,0

3.0

3,0

a,OD+00

a, 00+00

a.oDfOO

a, 00+00

^^•0 5,0

«,0 5,0

^•0 5,0

a.o 5,0

TT

T

T

AB

AB

AB

II-C-145
FORTRAN TEST PROGRAMS

PREPARED RY NATIONAL BUREAU OF STANDARDS

FOR USE OiM LARGE FORTRAN PROCESSORS

IN ACCORDANCE AITH ASA F0RTR«N X3. 9-1966

vers i on 3 part 1 2

Sample computer. Fortran compiler level

operating system version v. date, installation name

II-C-146
BLKOA - (179) SEVERAL BLOCK DATA

SUBPROCiHAMS

ASA REF, • «,5

RESULTS

TEST IS SUCCESSFUL IF EACH

GROUP CONTAINS SAME VALUES

1

1

1

I

2,0

2,0

2.0

2,0

a,oD+oo

a, 00+00

a, 00+00

a,oD+oo

3,0 a,o

5,0 a , 0

i,o a,o

3,0 4,0

FF

FF

HP

HP

HP

II-C-147
UnFRW - (180) UNFORMATTED RtAD

ANO WRITE STATEMENTS

ASA REFS - 7.1«3.2.M Ar^lD 7tl,3.2fB

RESULTS

.0000000000

.0000000000

CI0

.0000000000

.0000000000

. 0000000000

.0000000000

.0000000000

. 0000000000

.0000000000

.0000000000

. 0000000000

. 0000000000

.0000000000

.oooouooouo

. 0000000000

.0000000000

0

0

.0000000000

.0000000000

.0000000000

.0000000000

.0000000000

.0000000000

.0000000000

.0000000000

.0000000000

0

0

ALL ABOVE ANSWERS SHOULD BE ZERO IF

THE READ AND WRITE RECORDS COMPARE,

II-C-148
BACUP - (182) BACKSPACt TAPE

ASA REF. 7.1,3.3.2

KtSULTS

GROUP I

1 2 3

M 5 6

7 8 9

1016 1017 1018

1019 1020 1021

1022 1023 I02M

GROUP 2 5 10 15

20 2B 30

35 MO MS

5080 bOfiS 5090

5095 5100 5105

5110 5115 5120

GROUP 3

I 2 3

M 5 6

7 8 9

1016 1017 1018

10 19 1020 102 1 1022 1023 102M

GROUPS 1 Arjp 3 SHOULD BE THE SAME

AND GROUP 2, S TIMES GROUP 1

II-C-149
DOTRM - (190) DU TERMINAL

ASA REF - 7 . 1 . 2 • «

RESULTS

testi continue explicit

•TESTl successful**

TEST2 CONT I NUE I MPL 1 ED

• •TEST 2 SUCCESSFUL**

TEST3 ASS 1 GN

••TEST3 SUCCESSFUL**

TtSTM LOG I CAL IF

*»TESTM SUCCESSFUL**
DOLMT - (191) 00 SET LIMITS

ASA REF . - 7 . 1 2 . 8

RESULTS

••TEST SUCCESSFUL**

II-C-lSl
OONSC - (192) htSTED LOOPS

ASA REF. -7.1.2.8

RESULTS

2 LEVELS OF NESTING

•TEST SUCCESSFUL**

3 LEVELS OF NESTING

••TEST SUCCESS FUL**

M LEVELS OF rJESTING

••TEST SUCCESSFUL**

S LEVELS OF rjESlING

••TEST SUCCESSFUL**

CONTROL VARlABLt USED IN SUB5CRIPT

•*TEST SUCCESSFUL**

II-C-152

I
D0N5I - (193) INCOMPLETE DO

ASA REF . - 7.1.2.8

RESULTS

••INCOMPLETE LOUP SUCCESSFUL**

I I -C- 153
DONSX - (19a) EXTfeNOtO DO KANGh

ASA REF, - 7,1,2,8,^

RESULTS

EXTENDED f?ANGE FROM LEVEL I **TEST SUCCESSFUL**

EXTENDED RANGE FROM LEVEL ^ **TEST SUCCESSFUL**

EXTENDED RANGE CONTAINING A DO STATEMENT

. 8

7

5

ai

2

1 - THf: ABOVE 8 VALUES SHOULD HE

IN DESCENDING ORDER FROM 8 TO 1

II-C-1S4
OONML - (195) MULT-LEVtL LOOPS

ASA REF . - 7 • I . 2 8

RESULTS

•TEST SUCCESSFUL**

1 1 -C- 155
DONIU • (196) DO LOOPS WITH I/O

TtKMINAL STATtMhNTS

ASA KEK, - 7,1,2,8

RESULTS

-

, :^ 1-

i 1.0

1.0

0,1D+01

0,1D+01

1,0 1,0

1,0 1,0

TT

1 1.0

1.0

0,1D+01

0, ID + Ol

1,0 1,0

1.0 1.0

T

T

1

I 1.0

1.0

0,1IH01

0, lD+01

1,0 1,0

1,0 1,0

T

T

THIS TEST IS SUCCESSf=UL IF 3

IDENTICAL GROUPS OF OUTPUT HAVE BEEN

GENERATED,

II-C-156
MOKDO - (197) A MOKE CUMPLIC«TEU StG,

OF 00 STATEMENTS

ASA REFS - 7.1.2.8 AND 7.1.2.8.1

KE5ULT5

THIS SEGMENT SUCCESSFULLY TE«:TED

IF NO tRROR MESSAGES

II-C-157
SUBRl - (200) SUBROUTINE S'lFi PROGRAM

JVITHOUT AN ARGUMENT LIST

A5ARtF.-8.M»l

RESULTS

THIS SEGMENT SUCCESSFULLY TESTED

IF NO ERROR MESSAGES.

1 1 -C- 158
PREPARED -^v NATIONAL BuREA'J OF STANDARDS

FOR USE ON LARGE FORTRAN PROCESSORS

I^, ACCOr?DANCr A'lTH ASA FORTRAN X3.9-l94)6

VERSION 3 PART 13

SA-^PLE CO^PI'TfR, FORTRAN CC^PILER lEVFL

OPERATING SvSTEf^ VERSION

DATE, INSTALLATION NAKE

II-C-159
LOGIF - (.^00) LOGICAL TF STflT^MFNT

fl^A PFF, - 7.1.2.^

(RESULTS

TFST EXDLTGITLY W=?ITTEN SIGMEH ZF^O

+C EQUALS -0

+ 0.0 EQUALS -CO

+ 0 . QDQ EQUALS -0 . ]no '

TFST COMPUTATIONAL SIGN OF ZERO

+0 EQUALS -0

+ :j .0 EQUALS -0.0 ,

•

f 0.0 DO EQUALS -O.QOO

T'^ST -LOGICAL IF- FOLLOWEO RY

niFFEPENT KINnS 0^ STATEMENT^

000

^ , 0

TMFPi^ SHOULD ^E !^ VALUES A30VF,

IF ONLY TFST ^ HAS FAIL^^O.

00

0

• Q

• o-'

- 0

^

ALL VALUES SHOULO TE ZERC.

A VALUE OTHER THAN ZERO WILL '^F THE

NUMBER OF THE TEST WHICH FAILED.

II-C-160
BAR IF - Ifi^IC FOPT^AN

A^TTHMFTIC STATtM

ASA REF. - 7.1.2.?

RESULTS

TEST FOR SIGN nf ZFRO - TYPP IMTEG

PATH FOR"! OF EX'^^FSSTON

OF IF * -J * * +1 *

NEG. J

ZERO * 11

POS. * ]

»

» r * 0 »

V * »

* 11 * 11

* »

»

TEST FOR SIGN OF ZERO - TY^E P£AL

PATH * FORM OF EXD°ESSION

OF IF » -c

.

' *

* NEG. ) ' ? * G »

» » ZERO 11 * 11 11 »

» POS. "! * G * } *

»

ALL ENTRIES SHOUn TE j -XCE^T

THE ZERO DATH, .-iHICH SHOULD 3E 11

IN EACH COLUMN. OTHER TESTS MAY

FAIL IF THESE '^^SULTS DIFFER.

TEST EXPRESSIONS IN IF STATEMENT

TESTS StJCC-:SSFUL

II-C-1^1
FARIF - (312) FULL FORTRAN

ARITHMETIC IF STATEMENTS

ASA REF. - 7.1,2.2

RESULTS

SEGMENT 302 TESTED SUCCESSFULLY

II-C-162
lOPMT - (310J ADDITIONAL KURMATThO I/O

ASA KEPS - 7,1,5.2,? 7.1,3,2,3 7,2,5

RFSULTS

TEST BLANK JNPuT

EACH ANSWER SHOULD yL ZERO

0

0

0

0

0,0

0,0

0,0

0,0

0 , Ob +00

0,0b+00

0,0t+00

o,ot+oo

0,0D+00

0,00+00

0,00+00

0,00+00

TEST DEC, PT, SPECIFIED QV INPUT

3 LINES IN EACH GROUP SHOULD MATCH

* LINE IS HOLLERITH DATA

* l,23aS6

l,2ia56

l,23a56

* 9876^4,0

9876Sa,0

9876Sa,0

* 0,l2^aE+01

0,l2saE+ni

0, 1234E + 01

* -0 ,987b5aE+02

-0,98765aE+02

•0,967fe5aE+02

* 0,23ab678910UO + Ob

0,23456789101 10+06

0,23456789101 10+06

* -0, 1 09876D«0a

•0 , I 09876D-0a

-0, 109876D'*0a

II-C-163
TfcST FOHMAT DESCRIPIOR RtPtTITION

AIL LINFS IN EACH GHUUP SHOULf)

BE IDtNTlCAL

12345 t 12345

* 1 ,

1

l.l - 1.1

1,1

1,1

1,1

* 0,339567Ef02

0,339567^*02

0,339567E*02

Oe339567E+02

* 0,9629513424^0+04

0,962951342440+04

0,962951342440+04

0,9629513424aQ+04

0,962951342440+04

0,9fe295i342aa0+04

* 3 1«23 0,l4t+0a 0,20+02

3 U23 0, 14E + 04 0,20 + 02

3 1,23 0,14E+04 0,20+02

3 1,23 U,14E+04 0,20+02

* •'0, 13579E + 05

«0, 13579E + 05

••0, 13579fc + 05

* a4 4 4

4444

aaa4

a44a /

4444 . 4444

4444

* »333

»333

: w333 .
* b,5Sb

* o,aba5f--oa

0 , ababt -oa

0 , ababK-oa

-6,66fc

-6,666

0 ,99H9F>12

* 7.77

7,77

/.77

* -0,7a7b-02

-0, 7a7t-02

-0,747^-02

* 0,b^9t+00

0,ba9t+00

0 ,5a9E*00

* 22

22

22

* 0,662E+00

0,662E+00

0 ,662E + 00

* 0,a68E-10

0 ,a68E.-l 0

* 1 I U

11

* 0 »b95a2D-»-oa

0 ,b95a2D+oa

0.b95a2D*oa

* -«a,6666

-aa ,6666

-aa,6666

* -0, 123ab67b90D"03

-0 , 12345678900-03

-0, 125a567890D'-03

II-C-.165
54,9327

5a,V327

.0,l39bfe2ab3aLU00

0, Ii9b624b3a0+00

'0, liVbba^SSaD+OO

6ba3?,l

6^432,1

6b43?,l

0,8aflE. + 03

0,6a«fc+03

o,fla»tf03

0,8a8E+03

0,U9D + 07

0,129D*07

0.129D+07

0,1290+07

0,ai2D+2l

0,4120*21

0,4120+21

-0,987t+00

-0 ,9B7t+00

•09987t+00

-0,9b7fc+00

0,60+0 0

0,60+00

0,60+00

0 ,60 + 00

0,3680^05

0,3660*05

0,3600*05

0,777fc+01

0,7^7fe+01

0,777fc+0l

-333 0,^95420+04

-533 0,595420+04

«333 0,595420+04

-353 0,S9542O+O4
SCAtE FACTOR ON RtAO

IN ORDER OF FORMAT UCCURRENCt

NO EXPONENT ON INPUT DATA

CARD 98765a 86^7,86 987, 6ba

DEbC iPElO.i «1PE10,2 D10,3

TO BE .98flE+02 ,8fea8E*0S ,9877Df0a

IS 0.988E+02 0.86a8E+05 0.9877D*0a

II'C-167
ROFMT - (312) FORMATS IN ARRAYS

ASA REPS. - 7.2.3.11

EACH GROUP OF LINES SHOULD MATCH

8'*756 -867 2?i4 39 -6

Sk75b -867 22^+ 39 -6

8^»756 -867 22^+ 39 -6

0,23it 98 . -77 . 27 5U7,1'<

.23^ 98. -'^7» 27 5^+7.18

.23'* 98. '77,27 5^7.18

-0, 76E+0g

-.76E+09

-. 76E+09

0 ,893't21E-12

.893'+21E-l2

,893i+21E-12

8893i+21E-12

.893if21E-12

-0.35790 12'+6D + :C 'J.520-32

-. 35790i2'+6Q+: J .52Q-u2

-.3579012't6O + j0 . 520-32

TIFF

T T F F

T T F F ABCDE+*=123

ABCDE+»=123

••.lOE + 01

• lOE+ai

HOLLERITH CONSTANTS AS CALL AR".UMENTS

HOLLERITH CONSTANTS AS CALL ARGJMENTS

TEST EMPTY FORMAT STATEMENT

THE FOLLOWING LINE SHOULD 3F BLANK

END EMPTY FORMAT TEST

END SEGMENT 312 TEST

II-C-168
FORTRAN TEST PROGRAMS

PREPARED BY NATIONAL BUREAU OF STANDARDS

FOR USE ON LARGE FORTRAN PROCESSORS

IN ACCORDANCE WITH ASA FORTRAN )(3.9-196S

VERSION 3 PART ik

SAMPLE COMDUTER, FORTRAN COMPILER LEVEL

OPERATING SYSTEM VERSION

DATE, INSTALLATION NAME

ir^-16P
Miscs - (3sn) spe':tpicationjs i^OR

PROGRAM FOR^

A3A R^FS, -3.2 "^.2.1 3.'i "'.B

TEST THAT COMVFMT'^ ARF NO"r EV^CUTFO

TEST SUCCESSFUL NO FRROR M^^SAGf^

TEST 7? CHARACTER LI^JF

l?3t+5'S73910U12131(+15t6171 «19 ^ . , ir3£l5678910111?131U 1516171 819

TEST SUCCp:SSFUL I" 2 LINES AROVF art

DIGITS 1 THROUGH . _

TEST lr2r3»'i»S CH/^RACTFR STMMT. LAREL

1 CHARACTER LA^EL ACC^PTEO

2 CHARACTER LABEL ACCEPTE'^

3 CHARACTER LABEL ACCEPTED

4 CHARACTER LA^EL ACCEPTED

5 CHARACTER LABEL ACCEPTED

T^ST lf2»3»f|»5»6 CHftRACTE^ VARTABL'^'S

And ARRAY NAMES

**TEST SUCCESSFUL-ALL NAMES ACCEP^^^D*

TEST PLACEMENT OF STATEMENT LAPEL*^

A JD LABELS WITH LEADING ZEROS

1

Z

- 5

6

.7

• 8

•' ^ 9

TEST SUCCESSFUL IP o njumBERS

IN SEQUENTIAL ORDER FROM 1 TO 9

ARE WRITTEN ABOVE

END OF SEGMENT 350

II -C -170
FUNMX - (351)

THIS SFGMENT FURTHER TESTS

SOME BfiSIC EXTERNAL FUNCTIONS

BY USING TRIGONOMETRIC FORMULAE

ASA REFS. - 6.3.3

RESULTS

G . C 3 C 3 C -.3 300 0 - . G Q ? 3 0

. C 0 0 0 C

a JC 3 3

. D 3 0 0 0

0 . C 3 0 C G

. C 3 0 0

C . 0 3 0 3 0 -.00030

ALL ABOVE ANSWERS SHOULD BE 0 ^LUS OR

MINUS AN "^RROR FACTOR OF NOT MORE THAN

10 (-«*)

II-C-171
NAMES - (^5^)

TEST OF THf COMPILERS CAPABILinr OF

IDENTIFYING OATA NAMES THAT RESEMOL

FORTRAN VERBS AND/QR PREDEFINEO

FUNCTION NAMES

ASA REFS . - 10.1. 1

RESULTS

0 . 0 0 0 D 0 O.OCGlO

0.00000

0. ooocn

0. 0 0 0 GG

0.0 0 oca

o.ooooc

0 . 0 0 0 C 0 c.oocoo

0 . 0 0 0 I c

0Q

O.OOCjG

o.oooc c

ALL ABOVE ANSWERS SHOULO GE ^' FQ R

THIS TEST SEGMENT TO BE SUCCESSFUL

11-^-172
SPtCa - ilbO) COMMON AND F.UUI VALtNCE

A3A REFS 7,2, 1,2 7,2, 1,3 7,2, 1,^

RESULTS

UINt" 1 BELOW IS HOLLERITH

2 2,0

2 2,0

ANSWERS BELOW SHOULD BE 0 OR 0,0

0

0

0

0,0

0

0

0

0,0

ARITHMETIC IF SUCCESSFUL

ANSWER BELOW SHOULD BE 13,0

13,0

COMPUTED GO TO SUCCESSFUL

TEST EQUIVALENCE EXTENDS COMMON

TEST SUCCESSFUL

II-C-173
cI
SKCTION III DISTRIBUTION TAPH ORGANIZATION

GliNl'RAL DESCRIPTION

TTiis 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 o 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,

ITie 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 ])rograms and the data are in the same code.

For F'ORTRAN 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 tlie 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

T\\c following tables identify each main program unit, subprogram and data in

two different forms:

Tlie 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
'. I'or Version 3, one table lists the elements in relation to their position

on the tape witli Version 1 preceding it, and the other table assumes that

the tape has been forward spaced over Version 1 (1596 blocks).

liacii element of information in the tables is identified by the letter:

M = main program unit

!• = function subprogram

S = subroutine subprogram

I? = lUock 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.

II I -A2
Al, VERSION 1 DISTRIBUTION TAPH ORGANIZATION

Block S Record # Segment # Name

Card

Image t Block 5 Record # Segment # Name

Card

Image #

1 1 000 *

1 652 9 068 IF IMG M 5868

00 8 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 10 36 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 75 3 6 084 DPLOG M 6774

294 5 020 UGOTO M 2642 761 I 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 DCLOG M 7003

334 9 030 ARBAD M 3006 786 4 088 SINUS M 7069

347 7 031 ARFAD M 3121 795 4 089 OPSIN 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 ARFAS 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 09 7 CSQRO M 7635

407 3 039 ARBDV M 365 7 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 SBFI7 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 n 5002 1006 7 148 CREOP M 9052

566 1 062 IFMAX M 5086 1014 1 149 MISC3 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 56 86 1046 7 420 BFS F 9412

641 6 067 I FREE M 5 766 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
VliRSION 1 DISTRIBUTION TAPH ORGANIZATION - continuation

Block 5 Record # Segment # Name

Card

Image # Block Record # Segment # Name

Card

Image tl

1053 1 161 BIFCP • M 9469 1196 7 167 SBRTN M 10762

1062 7 401 lAFI F 9556 1208 2 407 AAQ S 10865

1063 8 421 IBFI F 9566 1210 7 417 ABQ S 10888

1064 9 431 ICFI F 9576 1212 2 427 ACQ s 10901

1066 1 441 IDFI F 9586 1214 5 168 FSBRT M 10922

1067 5 451 IFF I F 9599 1231 5 408 ADQ s 11075

1068 7 461 IFFI F 9610 12 35 8 418 AEQ s 11114

1070 4 162 FRFCP M 96 25 1238 4 428 AFQ s 11137

1085 1 402 GFS F 9 757 1242 9 169 BLKDT M 11178

1086 3 422 IIFS F 9768 1250 8 409 BLOKD D 11249

1087 6 432 IRFS F 9 780 1254 8 179 BLKDA M 11285

1089 4

' 442 JRFS F 9 796 1262 6 419 BLAKD B 11355

1090 6 452 RFS F 9807 1265 3 429 BLBKD B 11379

1093 8 163 FIFCP M 9836 1267 2 439 BLCKD B 11396

1107 5 403 IFI F 9959 1269 4 180 UNFRW M 11416

1108 7 423 JFI F 99 70 1284 2 182 BACUP M 11549

1110 1 433 KFI F 9982 1292 4 190 DOTRM M 11623

nil 8 443 LFI F 9998 1307 4 191 DOLMT M 11758

1113 1 453 MFI F 10009 1314 3 192 DONSC M 11820

1116 3 164 CFCCP M 10038 1332 7 193 DONS I M 11986

1130 9 404 AFC F 10170 1339 4 194 DONSX M 12046

1132 1 414 BFC F 10180 1353 8 195 DONML M 12176

1133 2 424 CFC F 10190 1361 1 196 DON 10 M 12241

1134 4 . ' " 434 DFC F 10201 1371 2 197 MORDO M 12332

1135 7 444 EFC F 10213 1390 9 412 MDQ s 12510

1136 9 .. 454 FFC F 10224 1392 4 200 SUBRl M 12523

1138 6 464 HFC F 10239 1398 2 410 SUBRQ s 12575

1141 7 165 DPFCP M 10267 1409 4 300 LOG IF M 12676

1156 7 405 AFD F 10402 1439 9 411 SMCQ s 12951

1157 8 415 BFD F 10412 1441 3 301 BAR IF M 12963

1158 9 425 CFD F 10422 1460 7 302 FAR IF M 13138

1160 2 435 DFD F 10433 1471 7 310 lOFMT M 13237

1161 5 445 EFD F 10445 1506 -) 38 data cards 13547

1163 3 455 FFD F 10461 1510 4 312 RDFMT M 13585

1164 5 465 GFD F 10472 1532 7 462 FMTQ s 13786

1165 8 475 MFD 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 35 2 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 15 73 7 473 AMQQ S 14155

1191 4 456 FFB F 10714 1576 1 483 BMQQ S 14176

1192 7 466 GFB F 10726 1577 8 360 SPEC 2 M 14192

1193 9 476 HFB F 10 737 1596 6 blank card 14361

1596 9 last blank card 14364

III -A-4
A2.1 VERSION 3 DISTRIBUTION TAPE ORGANIZATION

Card Card

Block £r Record # Segment # Name Image # Block fi Record # Segment # Name Image

159 7 1 008-011 PART 1 M 14365 2738 1 165-169 PART 1

M 24634

1716 4 49 data cards 15439 2812 7 405 AFD F 25306

1721 o0

n 1 "7 n 1 r U 13-0 lb PART 2 M 15488 2813 8 415 BFD F 25316

1824 7

AD data cards 16414 2814 9 425 CFD F 25326

1825 4 U io-U 54 PART 3 M 16420 2816 2 435 DFD F 25337

1944 3

AD data cards 17490 2817 5 445 EFD F 25349

y

A 7 r n C 7 UoD-Ub J PAR 1 4 M 1 7496 2819 3 455 FFD F 25365

1 AO data cards 1 O A 1 7 18613 2820 5 465 GFD F 25376

zuoy 7 UO4-U04 PAKl b M 18619 2821 8 475 HFD F 25388

9 1 Q 7 9Z AD data cards 1 n 7 A A ly /66 2825 4 406 AFB F 25420

7 1 Q 7 S5o

fi A c; n 7 7 D A DT A ^ 1 M

1 n 7 7 T 19 772 2826 5 416 BFB F 25430

99QR z z y o

co A0 data cards 9 n A 7 o ZUd /o 2827 6 426 CFB F 25440

zzyy 99QQ 9Z 0u 80ou- 00uy 7z

D A DT 7 r AK 1 / M

o n A o /I 206 84 2828 8 • 436 DFB F 25451

9z/I4uyDQ •7 o A data cards 21675 2830 1 446 EFB F 25462

9z^uy ADQ Qy OQ/1 uy 111 't- ill D A n T o rAK 1 5 M 21681 2831 4 456 FFB F 25474

*i. O X H- q A0 data cards O O A 7 A 22626 2832 7 466 GFB F 25486

9c;i c; o 1i4U- /] O loU ICO DrAKl A DT* ny M

7 7 A 7 7 22632 2833 9 476 HFB F 25497

^ u ^ z

Qo

A^ data cards 2359 7 2836 7 407 AAQ S 25522

c 1 AO 1 A /I i D U - i 0 4

D A DT" in rAK 1 id M 23603 2839 3 417 ABQ S 25545

Qy /lOO 4UU A C C Ar b r 24237 2840 7 427 ACQ S 25558

9AQ z oy D

11 4ZU /I 90 D c Brb F 24247 2843 1 408 ADQ S 25579

9AQ A 9 /I 7n 4oU Cr b F 24257 2847 4 418 AEQ s 25618

zoy / zo 44U DFS F 24267 2849 9 428 AFQ S 25641

c: 4bU tr b

c

r 24278 2854 5 409 BLOKD B 25682

9AQQ z oy y 7 /I A n 40 U hr b F 24289 2858 5 6 data cards 25718

9 7n 1 /I /I 0 1 4!J i lAFI F 24304 2859 2 179-200 PART 12 M 25724

9 70 9 O/I 7 1 4Z i IBFI F 24314 2998 3 410 SUBRQ S 26976

97n Z / U o D

/I 7 1 431 ICFI F 24324 3009 5 412 MDQ S 27077

9704 7 441 lUr 1 F 24334 3010 9 419 BLAKD B 27090

z9 451 T n tr T Ihh 1 F 24347 3013 6 429 BLBKD B 27114

9 7n 7 /I /I A 1 40 1 IFFI F 24358 3015 5 439 BLCKD B 27131

z9700 / uy 1i 402 GFS F 24373 3017 7 6 data cards 27151

9Z 710 / iU 7 422 HFS F 24384 3018 4 300-312 PART 13 M 27157

9 711 Z / 1 i 6 432 IRFS F 24396 3139 3 411 MCQ S 28245

2713 442 T D C C

J Kr o

c

r 24412 3140 6 462 FMTQ S 28257

2714 6 452 i\r o r Z44Z 94/19 Xo 3144 3 57 data cards 28290

2717 8 403 IFI F 24452 3150 6 350-360 PART 14 M 28347

2719 1 425 JFI F 24463 3206 8 413 MAQQ s 28853

2720 4 433 KFI F 24475 3208 5 46 3 MBQQ S 28868

2722 2 443 LFl F 24491 3210 2 473 AMQQ S 28883

2723 4 453 MFI 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 cardl 289 26 2730 1 434 DFC F 24562

2731 4 444 EFC F 24574 M = Main Program

2732

2734

2737

6 454 FFC F 24585 F = Function Subprogram

34 464

6 HFC

data cards

F 24600

24628

S = Subroutine

B = BLOCK DATA

Subprogram

Subprogram

III-A-5
A2,2 VHRSION 3 DISTRIBUTION TAP!! ORGANIZATION

[Listed as if Version 1 (1596 blocks) liad been deleted or forward spaced.)

Card

^ 1 OCK 4 KeLOlu DU ^lUt. 1 1 L

T m o f T iTi i Mldt; tr

1 i nn Q nil 1 AK 1 i1

i JU 4 4:) d.'ita Ccirds 1 n 7 c; IOC Qo lAKl ^ M 1 1

"> /I

t ^ Q _ „ O

7/ 6 dilt a. cards on Qr\

T TO 4 U 1 o — U 04 r/VK I J M

0*4 O

7J o UtlLd. L-dlUS J 1 zo

O H- O Q U or* ~\JD.y p A DT zl M1 1

11A,o data cai'ds AO 475 7 PART ^ M 4 Z D D 60

1

1 Au tlctLcl L-ditl.^ 60

1

8o P4RT h M D 4-1' o 702 5 u Lid L ci CdlLlo D O i 4 705 0k ' sO 0W _— nV.' Q t_ PART 7 M O J) .., U 815 H ^1 "t" ?i c ^ ttI q 7s1 1 / J J. 1 815 9 094- 1 1

1

PART 8 ^I 7"^! /ox/7 918 9 5 U-d L d CdlLtZ) o z u _ 9 19 PART r Mix 1 QJ O O 1026 Qo U.dLd CdiU-b Q 7 7 Z J* Z J> J) c 11 f^n D U — 11 HAD 4 PA RT 1

n

r AK 1 1

U

ri 0 9 70

^ no 7 Q J.00 4V ' I; ArA P o^ pr Q Q 7 r o / o

1 DQQ 1X 4 ZU70 D r o

cr Q 8 Q N linn 7 4 '^0 rPQ Lr o

cr

1 1 n 1 5 440 44U HP1 'r oQ cr OQ n Z U o

110"' c 4t;o 4JU n r D

cr QQy y 1 /I

J. 4

1 1 n 1 7 440UAO PP c: cr QQ 9 Q y y z r>

i.1 LVD 1 n 1 4 44U011 TACT I Ar i nr QQ /I n y y 41

)

1111 DAU D

co

/I 7 1 4Z iT u C T r:r OQ c n yy hu

110 7 D

T P C T

1 no n yyou

1 1 0 Q 7I 441 T nc T T7r yy /() 1110 1 i i u

") 44oQ 1i

T c n T r:r QQ O 7 yy o J) 11111 i i 1 4

/I A 1 4o iT n C T

i r r i r n n n I y y y 4

iIlls i 1 0 1 /! O 7 4U Z

r:r

1 M n n o

1 1 1 Zl 7 44ZZT 7 1 ICC n

r

1 1 1

1^ X X L J D 4 7 T D C C 1 Kr o

cr itUJ J)Z 1117 il 44 T TP P cr lu i;4 o 1118 AVJ 41^ 7 40 Z R P Q c

r 1121 8 403 IFI F 10088

1125 1 423 JFI F 10099

1124 4 453 KFI [ 10111

1126 T 443 LFI F 10127

1127 4 453 MFI F 10158

1150 6 404 AFC F 1016 7 1151 7 414 BFC F 10177

1152 8 424 CFC F 10187

1154 1 434 DFC F 10198

1155 4 444 EFC F 10210

1156 6 454 FFC F 10221

1158 5 464 HFC F 10256

1141 4 6 data cartls 10264

Card

Iv (' m"* 1 // l\ c V_ VJ 1 " '-x rr mP> n U IN CXJllC T m Q oi^ a

1 1 Zl ^

i 1 4 ^ 11 ±ur> — 1io.' AQ PART 1

1

r Hl\ 1 XX f 1 11 1xu0 ^ 7/ 0u

7 40 APn c1 1 00 4 T X U ^'

1

1 ^ 1

i. 7/ Qo 4 1

c; H XZ> or unI xu^ 1 OQ 0

c; z9

i ^ J. o q H z r> p X1 0Q67 V7 1/ VJ Z.

1 ^

u

-) 4 sc; DFD p 109 7'^ X\J ^7 / J

X _ i_ ±

c. 445 IIFD p 109 85 1223 3 455 FFD p 11001

12 24 465 GFD p 11012

1225 8 475 IIFI) p 1 1024

1229 4 406 AFB p 11056

1 2 30 5 416 BFB p- 1 1066

1

"> X ^ Os X1 AVJ 476 CFB p X1 1X 076 u / u 1232 8 456 DF B p 1 10 87

12 34 1 446 EFB F 11098

1255 4 456 FFB p 11110

12 36 7 466 GFB p 11122

1237 9 476 HFB p 11133

1240 7 407 AAQ s 11158

174"^ J 4~r X1 7^ ABQ 11181 X X X 0 X

1 ''Ad 7 H- „ / Am c X1 X1 X1 Q4^ -+

X1 ''A7 H / 1 4ns -+ u 0 Ann c 1 1 1 c; X X ^ X o

1 Tc; 1 X ^ D X 4 41 R AFD c0 1 1 7=^4 X X Z 0 M1 7 1; 7 1 ^ J o 9 - H 0

c

X

1 1X ^777/ / c 40Q H U ^' Ri nk'n RD 1X X

1 0N 11 S

0

1 7A o AU 1 1 ^c;4 X X 00 ^

1 ^A s 2 1 70- ^00 PART 1 M X1 X1 ouu ^fiO

1 407 41 0 0 1X ^^6VJ X1 z.. 7 141"^ 1 4 1 O

c 4 1 C X1 T 7 1 ^ *_ / X 0 1414 14 0 4 1X Q RI A k'n RD 1 "> 7 7A X „ / Z D 1414 171/ A0 429 RI Rk'D RD 1 Tvqo

14 19 5 459 BLCKD B 12767

1421 7 6 data cards 12787

1422 4 500-512 PART 13 M 12795

1543 3 411 SMCQ S 15881

1544 6 462 FMTQ S 1389 5 1548 3 57 data cards 15926

1554 6 550-560 PART 14 M 15985

1610 8 415 MAQQ S 14489

16 12 5 46 3 MBQQ S 14504

1614 475 mqq S 14519

1616 5 483 BMQQ S 14540

1618 3 6 data cards 14556

1618 8 last data card 14561

1618 9 (blank filler card) 14562

M = Main Program

F = Function Subprogram

S = Subroutine Subprogram

B = BLOCK DATA Subprogram

III-A-6
FORM NBS-n4A (1-71) U.S. DL-pr. OP COMM. 1. PUULICATKJN OK Kiil'OK'l NO. 2. Gov't Ac<.c.'..siou BIBLIOGRAPHIC DATA mdctd no ocn

SHEIZT NbblK /J-i^bU

3. Recipient's Aci cs.iion No.

4. TiTi.ii; AN!) suivm i.i-: NBS FORTRAN TEST PROGRAMS

Version 1 and Version 3

5. Publication Date June 1973

6. Performing Organization Code

7. AUTHOR(S)

Frances E. Holberton Elizabeth G. Parker

8. Performing Orgnnization

NBSIR 73-250

9. PERFORMING ORGANIZATION NAME AND ADDRESS

NATIONAL BUREAU OF STANDARDS

Ur.HARIMbNl Or COMMbRCh

WASHINGTON, D.C. 20234

10. Project/Task/Work Unit No. 6401123

11. Contract/Grant No.

12. Sponsoring Organization Name and Address

Same as No. 9

13. Type of Report & Period

Covered

Final

14. Sponsoring Agency Code

FORTRAN test program accompanying this document is available as 7 track even parity

BCD, 9 track ASCII or EBCDIC recording.

'6. ABSTRACT (A 200-word or less factual summary of most significnnt 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

p FORTRAN compiler accepts the forms and interpretations of the FORTRAN language as described in the American National Standard FORTRAN document x3. 9-1966. The test programs are recorded on magnetic tape in approximately 14,500 punch card images, and

comprise 116 test units. Th.e 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 improve operating efficiency. An additional copy of these 116 test units

structured into 14 executable programs and the documentation supporting the test

programs are included in the distribution.

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., ranae, 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.

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

The test programs require the use of a cad reader, printer and one intermediate tape

unit.

17. KEY WORDS (Alphabetical order, separat;- 1 semicolons) j Computer programming language; FORTRAN; langua'je validation; standard FORTRAN; test j program design.

18. AVAILABILITY STATEMENT

[]X] UNLIMITED.

rj FOR OFFICIAL DISTRIBUTION. DO NOT RELEASE

TO NTIS,

19. SECURITY CLASS

(THIS REPORT)

UNCLASSIFIED

21. NO. OF PAGES

272

20, SECURITY CLaSS

(THIS PAGE)

UMCLASSIFIFD

22. Price

USCOMM-DC 66244.P7t
fi

/