• Aucun résultat trouvé

IBM System/3S0 Time Sharing System IBM PORTRIlN IV

N/A
N/A
Protected

Academic year: 2022

Partager "IBM System/3S0 Time Sharing System IBM PORTRIlN IV "

Copied!
116
0
0

Texte intégral

(1)

Systems RefE3rence Library

IBM System/3S0 Time Sharing System IBM PORTRIlN IV

This publication describes and illus- trates the UBe of the IBM FORTRAN IV language for 1the IBM System/360 Time Shar- ing System ref4~rred to hereafter as Time Sharing System/360.. The reader is presumed to have some knowledge of an existing FORTRAN language.

The IBM FOR~rRAN IV language is a symbol- ic programming language~ It parallels the symbolism and format of mothematical nota- tion. In addit.ion., many programming fea- tures and facilities are available for expressing the method of solution of a mathematical problem as a meaningful FORTRAN program..

File No. S360-25

Form C28'-2007-0

TSS

(2)

PREFACE

This publication describes the IBM System/360 Time Sharing System IBM FORTRAN IV language referred to in this manual as FORTRAN IV. A reader should have some knowledge of an existing FORTRAN language before using this publication. The publi- cation FORTRAN General Information., Form F28- 8074" is a useful source for such knowledge.

The material in the FORTRAN IV publica- tion is arranged to provide a quick defini- tion and syntactical reference to the var- ious elements of the language by means of a box format. In addition, sufficient text describing each element" with appropriate examples of possible use. is given.

There are four appendixes which give additional information useful in writing a FORTRAN IV source program,. They are:

A: Table of Source Program Characters B: Other FORTRAN Statements Accepted

by IBM FORTRAN IV

C: FORTRAN Supplied Subprograms D: Sample Programs

First Edition

Significant changes or additions to the specifications contained in this publication will be reported in subsequent revisions or Technical Newsletters.

This publication was prepared for production using an IBM computer to update the text and to control the page and line format. Page impressions for photo-offset printing were obtained from an IBM 1403 Printer using a special print chain.

Requests for copies of IBM publications should be made to your IBM representative or to the IBM branch office servino your locality.

A form is provided at the back of this publication for reader's comments. If the form has been removed, comments may be addressed to the IBM Corporation, Time Sharing System/360 Programming Publications, Department 504,2651 Strang Blvd., Yorktown Heights, N. Y. 10598

(3)

INTRODUCTION • • • 5 The IBM System/360 Time Sharing System

FORTRAN IV. • • .. " .. • • • • • • • Features of the Time Sharing System

FORTRAN IV.. .. • ,. •

ELEMENTS OF THE LANGUAGE ..

5

5 7 Statements • • .. .. • .. .. • 7

Coding FORTRAN Statements _. Card

Input. .. .. ,. ,. .. .. • .. .. .. 7 Coding FORTRAN Statements _.

Keyboard Input • • • " 8 Initial Lines. • • .. 9 continuation Lines .. 9 Constants,. • .. • •

Integer Constants.

10 10 Real Constants. • .. .. • .. .. .. •

Complex constant,. "

• • • 11 Logical Constants '.

Literal Constants .. .. ..

• 12 13 ,. 13 Variables.. • • .. ,. .. .. 13 Variable Names. • .. • • .. 14 Variable Types and Length

Specifications • • • 14

Type Declaration by the Predefined

Specification. • .. .. • " " • • • ,. '. 15 Type Declaration by the IMPLICIT

Specification Statement. • • • 15 Type Declaration by Explicit

Specification Statements 4' •• 16 Arrays .. .. .. .. .. " .. .. ,. .. .. • • .. 16 Declaring the Size of an Array. • • • 18 Arrangement of Arrays in Storage. • • 19 Expressions . . . .

Ari thmetic Expressions,.

Arithmetic Operators • Logical Expressions • •

Relational Operators Logical Operators.. •

ARITHMETIC AND LOGICAL ASSIGN~mNT

• 19 ,. 19 20 23 24 24 STATEMENT • " .. • • • • 27

CONTROL STATEMENTS • .• 29

The GO TO Statements "

Unconditional GO TO Statement.

Computed GO TO Statement ...

The ASSIGN and Assigned GO TO Statements. • .. .. .. • '" • • Addi tional Control Statements ..

Arithmetic IF Statement.. .. • Logical IF Statement

DO Statement • • • .. .. •

• • 29 29 .. 30 31 32

• 32 '. 33

• 34

CONTENTS

CONTINUE Statement • PAUSE Statement.

STOP Statement • END Statement. • • INPUT/OUTPUT STATEMENTS. .

• 37

• 38 '. 38

• 39

" 40 Basic Input/Output Statements. • • • 40 READ Statement. .. • • . • .. • • 41 The Form READ (a,x) . . . 42 The Form READ (a, b) List. • • 44 The Form READ (a) List • 45 Indexing I/O Lists • • • • 46 Reading Format Statements . • . . • 47 WRITE Sta. tement • • '. • • • • • 47 The Form WRITE (a.x) • .. • • . 48 The Form WRITE (a,b) List. . • 49 The Form WRITE (a) List. . 50

FORMAT Statement. • • 50

G Format Code. • • 52 Numeric Format Codes (I~F~E,D) . . . 56

I Format Code. • 57

F Format Code. • • • • . • • • • • 58 D and E Format Codes 58 L Format Code. • • 59 A Format Code. . " 59 Literal Data in a Format

Statement... . • • • H Format Code. •

X Format Code.

T Format Code.

Scale Factor - P • Carriage Control ..

Additional Input/Output Statements •

61 '. 62

· • 63 64

• 64

· • 66 67

• 67 END FILE Statement • .

REWIND Statement • ,. • BACKSPACE Statement. •

• • . • 67 SPECIFICATION STATEMENTS

The Type Statements. • • IMPLICIT Statement Explicit Specification

Statements. '. • • • • Adjustable Dimensions.

Additional Specification Stabements.

DIMENSION Statement. • . COMMON Statement • . • . Blank and Labeled Common . EQUIVALENCE Statement.

SUBPROGRAMS. .. • .. • • Naming Subprograms.

Functions • • • .. •

Function Definition. • Function Reference Statement Functions • • FUNCTION Subprograms.

Type Specification of the FUNCTION Subprogram • • • •

67 68

• .. 68

• • 68

· • 70

· .. 72

• '. 73 73

· • 74 '. 76

• 77 80 80

• .• 80 81 81

• 81 83 84

(4)

RETURN and END Statements in a

Function Subprogram • '. • 85 SUBROUTINE Subprograms. • • • • • • • 86 CALL Statement • • • • • • • • • • 87 RETURN Statement in a SUBROUTINE

Subprogram. • • • ~ • • • • • • • 88 Multiple ENTRY into a Subprogram • 89 Additional Rules for Using ENTRY • 91 The EXTERNAL Statement • • • . • • 92 FORTRAN Supplied Subprograms.. • • • 93 BLOCK DATA Subprogram • • • • • • • • 93 APPENDIX A: SOURCE PROGRAM CHARACTERS • 95 APPENDIX B: OTHER FORTRAN FEATURES

ACCEPTED BY FORTRAN IV.. . • • 96 READ Statement • • • ,. • • • • 96 PUNCH Statement. • • • • • 96 PRINT Statement. • • • • • 97 DATA Initialization Statement. '. • 97 DOUBLE PRECISION Statement • • 98

ILLUSTRATIONS

FIGURES

Figure 1.

Figure 2.

Figure 3.

FORTRAN Coding Form . . . . . . 8 Sample Program 1 . . 104 Sample Program 2 . . . 107

Arguments of a FUNCTION or SUBROUTINE Program Enclosed by Slashes • • .. • • • • • • 98 APPENDIX C: FORTRAN SUPPLIED

SUBPROGRAMS • .. 99

Mathematical Function Subprograms. • . • 99 Machine Indicator rests • • • • • • . • . 102 The EXIT, DUMP, and PDUMP Subprograms • • 102 EXIT Subprogram. • • . . . . 102 DUMP Subprogram. • • • • • • • 103

PDUMP Subprogram. • • .103

APPENDIX D: SAMPLE PROGRAMS • ,.104

Sample Program 1 '. .. • .104

Sample Program 2 • • • ,.105

INDEX. • .112

TABLES

Table 1. Insurance Premium Codes. • • • 18 Table 2. Determining the Mode of an

Expression Containing Variables of

Different Types and Lengths • • • • • • 21 Table 3. Valid Combinations With

Respect to the Arithmetic • • • • • • • 22 Table 4. Mathematical Function,

Subprograms • • • • .. • • • • .• • • • .• 99

(5)

INTRODUCTION

THE IBM SYSTEMI'360 TIME SHARING SYSTEM FORTRAN IV

The IBM Ti.me Sharing System/360 FORTRAN IV is comprised of a language" a library of subprograms.. and a compiler.

The FORTRAN language is especially useful in writing programs both in conversational and nonconversational mode for scientific and engineering applications that involve mathematical computations. In fact" the name of the langua.ge FORTRAN - is derived from its primary use: FORmula TRANslating.

Source programs written in the FORTRAN language consist of a set of statements constructed from the elements of the language described in this publication.

The FORTRAN compiler analyzes the source program statements and transforms therrl into an object program that is suitable for execution on the IBM Syste~m/36 O. In addition" when the FORTRAN compiler detects errors in the source program, appropriate error messages are produced.

At the user's option a complete listing of the source program is produced,.

The FORTRA.N compiler operates under control of Time Sharing System/360" which provides the FORTRAN compiler with input/output and other services4 Object programs generated by the FORTRAN compiler also operate under System/360 Operating System control and depend on i t for similar services.

The IBM Time Sharing System/360 FORTRAN IV language is compatible with and encompasses ~the American Standards Association O~"SA) FORTRAN, including its mathema'tical subroutine provisions ..

FEATURES OF THE TIME SHARING SYSTEM FORTRAN IV

The Time Sharing System/360 FORTRAN IV is a further development of previously implemented FORTRAN systems and contains many of the features of these systems. In addition, the £ollowing features facilitate the writing of source programs and reduce the possibility of coding errors:

1. Variable Attribute Control: The attributes of variables and arrays may now be explicitly specified in the source program. This facility is provided by a single explicit specifica"tion statement which allows a programmer to:

a. Specify storage length.

b. Explicitly type a variable as integer" real" complex" or logical ..

c. Specify the dimension of arrays ..

d,. Specify data initialization values for variables,.

In1troduction 5

(6)

2,. Adjustable Array Dimensions: The dimensions of an array in a subprogram may be specified as variables; when the subprogram is called" the absolute array dimensions are substituted.

3. Additional Format Code: An additional format code - G - can be used to specify the format of numeric and logical data. Previously implemented format codes are also permitted.

4. Mixed Mode: Expressions may consist of constants and variables, of the same and/or different types and lengths.

5.. Named I/O List: Formatting of input/output data is facilitated by reading and writing operations" without reference to a FORMAT statement or list.

6. Spacing Format Code: The T format code allows input/output data to be transferred, beginning at any specified position.

7. Literal Format Code: Apostrophes may be used to enclose literal data.

(7)

ELEMENTS o.F THE LANGUAGE

STATEMENTS

Source programs consist of a set of statements from which the compiler generat.es machine instructions" constants, and s1:orage areas.

A given Fo.RTRAN statement effectively performs one of three functions:

1.. Causes certain operations to be performed (e.g .. II add" multiply"

branch> ,.

2. Specifies the nature of the data being handled.

3~ Specifies the characteristics of the source program.

Fo.RTRAN stabements are usually composed of certain FORTRAN key words used in conjunction with the basic elements of the language ,: constants"

variables" and expressions. The five categories of FORTRAN statements are as follows:

L. Arithmetic ,S!,nd Logical Assignment Statements: Upon exeeution of an arithmetic or logical assignment statementl, the result, of calcula- tions performed or conditions tested replaces the curr~~nt value of a dasignated variable or subscripted variable~

2. Control Statements: These statements enable the user to govern the flow and terminate the execution of the object program,.

3. Input/o.utput Statements: These statements" in addition to control- ling input,loutput (I/O.> devices, enable the user to 1transfer data between internal storage and an I/O. medium.

4. Specification Statements,: These statements are used to declare the properties of variables, arrays" and subprograms (such as type and amount of storage reserved> and to describe the format of data on input or output.

5. Subprogram statem~nts: These statements enable the user to name and define functions and subroutines.

The basic elements of the language are discussed in this section.

The actual Fo.RTRAN statements in which these elements are used are discussed in following sections.

Co.DING Fo.RTRAN STATEMENTS - CARD INPUT

The statements of a FORTRAN source program can be written on a standard Fo.RTRAN coding form" Form X28-7327 (Figure 1) • Fo.RTRAN statements are written one to a li.ne from columns 7 through 72,. If a statement is too long for one linell i t may be continued on ,as many as 19 successive lines by placing any character" other than a blank or zerol,

in column six of each continuation line. For the first line of a statement, column six must be blank or zero.

Columns 1 thr'ough 5 of the first line of a statement may contain a statement number' consisting of from 1 through 5 decimal digits.. Leading zeros in a statement number are ignored. The statement numbers may be Elements of the Language 7

(8)

assigned in any order; the value of statement numbers does not affect the order in which the statements are executed in a FORTRAN program.

Columns 13 through 80 are not significant to the FORTRAN compiler and may., therefore" be used for program identification" sequencing, or any other purpose.

Comments to explain the program may be written in columns 2 through 80 of a line~ if the letter C is placed in column one. Comments may appear anywhere within the source program. They are not processed by the FORTRAN compiler~ but are printed on the source program listing.

Blanks may be inserted where desired to improve readability.

IBJtt FORTRAN Codin~ Form p,.,."J '" 1J.~,A.

I PWGRAM

PlJNCI~ING I GRAPHIC I I I I PAGI. 0'

I PROGRAMMER IOAH INSTRUCTIONS

I PUNCH 1 1 I I

ST~~~~:~T

I

FORTRAN STATEMENT IO's~~0~~~ ION

.'

I II k' I 1

eem

~ ,:" , t, ' i I , I i I I I ' :'\-

-

I II i I I i ! :'" I r'" II \

-'-

I

"

! !~4,r b. I , , :

It

i ! I ,~ i I I 1 i I ' , , ; I I I I

I I I I ; I I ' , i

I. 8 I 141 IiI7

" " " "

..

" I 61 8()

"A

Figure 1.. FORTRAN Coding Form

CODING FORTRAN STATEMENTS - KEYBOARD INPUT

It is desirable to free a conversational keyboard operator from strict positional requirements when typing in a FORTRAN source program.

The following conventions for statement numbers" text starting posi-

(9)

tions., and continuation lines are accepted when input is from an on-line keyboard.

Initial Lines

If a line is the initial line of a statement" i t may have a statement number. (The st:atement number" if any. must appear on the first line of the statement .. ) The numeric statement number must be the first nonblank material in the line. It can start in any column" and is terminated after fi ve ad:iacent, columns,' or by the occurrence of a nonblank, nonnumeric character~ whichever happens first.

If a statement has a statement number" the text of the statement begins with the first nonblank character following the statement number"

unless this character is a horizontal tab. If a tab is used to separate the statement number from the text, the text begins w·ith the first nonblank character following the tab.

If a statement does not have a statement number., the text of the statement begins with the first nonblank, nonnumeric character of the line. unless this character is a horizontal tab.

If a tab is used to begin the line. the text starts with the first nonblank character following the tab.

Continuation Lines

A line of input is a continuation line. rather than the initial line of a statement, if the last character (blanks included) of the last preceding nonco~~ent line was a ' - ' (EBCDIC 60).

A continuation line in keyboard input may not ha.ve a statement number.. The text of the line begins with the first charact,er (blank or not) of the line. unless this character is a horizontal tab.. If a tab is used to begin the line, the text starts with the first character

(blank or not) following the tab.

Caution is needed in the use of '_I at the end of a line, and tab (in alphameric constants) or the letter C, at the beginning of a line, to avoid conflict between the FORTRAN text and the continuation, comment, and tab conventions of keyboard input.

Elements of the Language 9

(10)

CONSTANTS

- - - - -

A constant is a fixed. unvarying quantity. There are three classes of constants -- those that deal with numbers (numerical constants)~

those that deal with truth values (logical constants) " and those that deal with literal data (literal constants).

Numerical constants may be integer, real. or complex numbers; logical constants may be • TRUE. or .FALSE.; literal constants may be a string of alphameric and/or special characters enclosed by quotes .•

INTEGER CONSTANTS

r---~---,

I Definition I

.---~

I I

I Integer Constant - a whole number written without a decimal point. I

I It occupies four locations of storage. I

I I

I L ______________________________________________________________________ Ma.ximum Magnitude: 2147483647., i.e., (231.-1). J I

An integer constant may be positive. zero, or negative; if unsigned, i t is assumed to be positive. Its magnitude must not be greater than the maximum and may not contain embedded commas.

Examples:

Valid Integer Constants:

o

91 173

-2147483647 -12

Invalid Integer Constants:

0.0 27.

3145903612 5,396

(contains a decimal point) (contains a decimal point) (exceeds the allowable range) (embedded comma)

(11)

REAL CONSTANTS

r---,

I Definition I

~---i Real Constant: - a number with a decimal point optionally followed by a decimal 4~xponent, or an integer constant followed by a decimal exponent. This exponent may be written as the letter E or D followed by a signed or unsigned, one- or two-digit integer constant,. A real constant may assume one of two forms:

1. From one through seven decimal digits,QJ2tionally followed by an E decimal f=xponent. This form occupies 4 storage locations.

2. Either on4~ through seven decimal digits followed by a D decimal exponent or 8 to 16 decimal digits optionally followed by a D decimal exporient,. This form occupies eight storagE~ locations and is somE~times referred to as a double precision constant.

Magnitude: (either form) 0 or 16-63 through 1663 (i.e.. approxi- mat.ely 1075 ).

A real constant may be positive. zero. or negative (if unsigned, i t is assumed to be positive) and must be of the allowable ma9nitude. It may not contain embedded commas. The decimal exponent E or D permits the expression of a real constant as the product of a real constant times 10 raised to a desired power.

Examples:

vali9, Real Constants (4 storage locations):

+0,.

-999.9999 0,.0

5764.1 7,.OE+0 19761.25E+l

7E3

!

7.E3 7.0E3 7.0E03 7.0E+03 7.0E-03

(i.e., 7.0 x 100

=

7.0)

(i.e., 19761.25 x 101

=

197612.5)

(i.e •• 7.0 x 103 7000.0) (i.e •• 7.0 x 10-3 .007) Valid Real Constants (8 storage locations):

21.98753829457168 1.0000000

7.903

I

7,.9D03 7.9D+03 7.9D+3 7.9D-03 7.900 0.0 7D3

(i.e., 7.9 x 103 7900.0) (i.e., 7.9 x 10-3 = .0079) (i.e •• 7.9 x 100

=

7.9)

(i.e., 0.0 x 100 = 0.0) (i.e •• 7 x 103 = 7000)

Elements of the Language 11

(12)

Invalid Real Constants:

o

3,471.1 1.E 7.90 1..2E+113 21.3090 23.5E+97

(missing a decimal point) (embedded comma)

(missing a one- or two-digit constant following the E.

interpreted as 1.0 x 100 )

(missing a one- or two-digit cons·tant following the 0)

(E is followed by a 3 digit integer constant)

(value exceeds the magnitude that is, 21.3 x 1090>1663 )

(value exceeds the magnitude that is, 23.5 x 1097>1663 )

integer

Note that i t is not integer

permitted;

permitted;

COMPLEX CONSTANT

r---,

I Definition I

~---i Complex Constant - an ordered pair of signed or unsigned real constants separated by a comma and enclosed in parentheses. A complex constant may assume one of two forms:

1. From one through seven decimal digits optionally followed by an E decimal exponent. In this form, each number in the pair occupies four storage locations.

2. Either one through seven decimal digits followed by a 0 decimal exponent or 8 through 16 decimal digits optionally followed by a o decimal exponent. In this form each number in the pair occupies eight storage locations.

Magnitude: (either form) 0 or 16-63 through 1663 (i.e •. , approxi- mately 1075 ) for each real constant in the pair.

L _____________________________________ . ________________________________ _

The real constants in a complex constant may be positive, zero, or negative (if unsigned .. they are assumed to be positive), but they must be 1n the given range. The first real constant in a complex constant represents the real part of the complex number; the second represents the imaginary part of the complex number.

Examples:

Valid Complex Constants:

(3.2,- 1.86)

(-5.0E+03,.16E+02) (4.0E+03,.16E+02) (2.1,0.0)

(4.70+2,1.9736148)

(has the value 3.2-1.86i) (has the value -5000.+16.0i) (has the value 4000.+16.0i) (has the value 2.1+0.0i)

(has the value 470.+1.9736148i) Where i

=£1

(13)

Invalid Complex Constants:

(292704;,1.697) (1. 2E113, 279 ... 3)

LOGICAL CONSTANTS

(the real part does not contain a decimal point)

(the real part contains an invalid decimal exponent)

r---.---~---,

I Definition I

~---.---~

I I

I Logical Constant - There are two logical values: I

I I

I • TRUE. I

I I

I • FALSE. I

L ______________________________________________________________________ J

A logical constant logical constants ~TRUE~

logical variable they associated with is true

"Logical Expressions.")

LITERAL CONSTANTS

must be preceded and followed by a period. The and • FALSE. specify that the value of the replace or the term of the expression they are or false. respectively. (See the section

r---,

I Definition I

~---~---.---~

I I

I Literal Constant - a string of alphameric and/or special characters I

I enclosed in apostrophes. I

L _____________________________________ ~ _____________________ . ___________ J

The number of characters in the string, including blanks, may not be greater than 255. Since apostrophes delimit literal daita, a single apostrophe within such data is represented by double apostrophes.

Examples:

'DATA'

'INPUT/OUTPUT AREA NO.2'

'X-COORDINATE Y-COORDINATE Z-COORDINATE' '3.14'

'DON'T'

VARIABLES

A FORTRAN variable is a symbolic representation of a quantity that may assume different values. The value of a variable may change either for different executions of a program or at different stag-es within the program.

Elements of the Lamguage 13

(14)

For example. in the statement:

A

=

5.0+B

both A and B are variables.. The value of B is determined by some previous statement and may change from time to time. The value of A varies whenever this computation is performed with a new value for B.

VARIABLE NAMES

r---,

I Definition I

~---~

I Variable Name - from 1 through 6 alphameric (i. e. " numeric., 0 - 9, I I or alphabetic, A - Z and $) characters, the first of which must be I I L ______________________________________________________________________ J alphabetic. I

A variable name may not contain special characters (see Appendix A).

Variable names are symbols used to distinguish one variable from another. A name may be used in a source program in one (and only one) way (e.g., the name of a variable and that of a subprogram may not be identical in the same source program).

The use of meaningful variable names can serve documenting a program. That is, someone other than the look at the program and understand its function.

compute the distance a car traveled in a certain amount given rate of speed, the following statement could have

x

Y

*

Z

as an aid in programmer may For example, to of time at a been written:

where

*

designates multiplication. However, i t would be more meaningful to someone reading this statement if the programmer had written:

DIST

=

RATE

*

TIME Examples:

Valid Variable Names:

JOHN B292 VAN RATE L17NOY SQ704

Invalid Variable Names:

B292704 4 ARRAY SI.X

<contains more than six characters) (first character is not alphabetic) (contains a special character)

VARIABLE TYPES AND LENGTH SPECIFICATIONS

The type of a variable corresponds to the type of data the variable represents. Thus. an integer variable represents integer data, a real variable represents real data, etc.

(15)

For every t)rpe of variable, there is a corresponding standard and optional length Bpecification which determines the number of storage locations reserved for each variable.. The following list shows each variable type wi1:h its associated standard and optional lengrth:

Variable Type Integer

Real Complex Logical

standard - 4 - - - - 4

8 4

Optional

2 8 16 1

The three ways a programmer may declare the type of a variable are by use of the:

i.. Predefined specification contained in the FORTRAN language.

2. IMPLICIT spE~cification statement ..

3,. Explicit spE~cification statement~.

The optional length specification of a variable may be declared only by the IMPLICI~~ or Explicit specification statements. If, in these statements, no lE~ngth specification is stated, the standard length is assumed (see the section "The Type Statements").

TYPE DECLARATION BY THE PREDEFINED SPECIFICATION

The predefinE~d specification is a convention used to s.pecify vari- ables as integer or real., as follows:

1. If the first character of the variable name is I, J, K, L. M, or N, the variable is integer of standard length .•

2,. If the first: character of the variable name is any other letter, the variable is real of standard length.

This convention is the traditional FORTRAN method of implicitly specifying the type of a variable as being either integer or real. In all examples that follow in this publication i t is presumed that this specification holds, unless otherwise noted.

TYPE DECLARATION BY THE IMPLICIT SPECIFICATION STATEMENT

This statement: allows a pr0grammer to specify the type of variables in much the saLme way as was specified by the predefined. convention.

That is" in both, the type is determined by the first character of the variable name. However" the programmer" using the IMPLICIT statement, has the option of specifying which initial letters designate a particu- lar variable tYPE!,. Further, the IMPLICIT statement is applicable to all types of variablE!S -- integer I real" complex" and logical ..

The IMPLICIT statement overrides the variable type as determined by the predefined convention. For example" if the IMPLICIT statement specifies that variables beginning with the letters A through M are real variables. and variables beginning with the letters N through Yare integer variables, then the variable ITEM (which would be treated as an integer variable under the 'predefined convention) is now treated as a real variable. Note that variables beginning with the letters Z and $ are (by the predefined convention) treated as real variables. The IMPLICIT statement is presented in greater detail in the section "Type Statements."

Elements of the Language 15

(16)

TYPE DECLARATION BY EXPLICIT SPECIFICATION STATEMENTS

Explicit specification statements (INTEGER" REAL" COMPLEX, and LOGICAL) differ from the first two ways of specifying the type of a variable, in that an explicit specification statement declares the type of a particular variable by i ts ~" rather than as a group of variables beginning with a particular character.

For example" assume:

1. That an IMPLICIT specification statement overrode the predefined convention for variables beginning with the letter I by declaring them to be real.

2. That a subsequent Explicit specification statement declared 'that the variable named ITEM is complex.

Then, the variable ITEM is complex and all other variables beginning with the character I are real. Note that variables beginning with the letters J through N are specifie8 as integer by the predefined convention.

The Explicit specification statements are discussed in greater detail in the section "Type Statements."

ARRAYS

A FORTRAN array is a set of variables identified by a single variable name. A particular variable in the array may be referred to by its position in the array (e. g., first variable, third variable" seventh variable, etc.). Consider the array named NEXT~ which consists of five variables, each currently representing the following values:

273" 41, 8976" 59" and 2

NEXT(1) is the representation of 273 NEXT (2) is the representation of 41 NEXT (3) is the representation of 8976 NEXT(4) is the representation of 59 NEXT (5) is the representation of 2

Each variable in this array consists of the name of the array (i. e. "

NEXT) followed by' a number enclosed in parentheses" called a subscript.

The variables which comprise the array are called subscripted variables.

Therefore, the subscripted variable NEXT(1) has the value 273: the subscripted variable NEXT(2) HAS THE value 41, etc.

The subscripted variable NEXT(I) refers to the tilth" subscripted variable in the array, where I is an integer variable that can assume a value of 1, 2, 3, 4, or 5.

To refer to the first element of an array, the array name must be subscripted. The array name does not represent the first element. The number of subscripts must correspond to the declared dimensionality except in the EQUIVALENCE statement,.

(17)

r---,

I General Form I

~---i Subscripts - may be one of seven forms:

v c' v+c' v-c' c*v c*v+c' c*v-c'

Where: v represents an unsigned# nonsubscripted# integer variable.

c and c' represent unsigned integer constants.

______________________________________________________________________ J

Whatever subscript form is used_ its evaluated result must always be greater than zero. For example# when reference is made to the subscripted variable V(I-2), the value of I should be greatE!r than 2.

Examples:

ARRAY (IHOLD)I NEXT(19) MATRIX(I-5) A{S*L) W{4*M+3)

An array may consist of up to seven subscript parameters, separated by commas. Thus, the following are valid subscripted 'Vrariables for their corresponding arrays:

Array Name A

TABLE B MATRIX

sUBscript~d Variable A(5# 100# J. K+2)

TABLE (1, 1# 1_ 1. 1_ 1, 1) B{I, J. K. L. M# N)

MATRIX (I + 2,,6 *JOB- 3" KFRAN)

Consider the following array named LIST consisting of two subscript parameters, the first ranging from 1 through 5, the second from 1 through 3:

Columnl Solumn2 Column3

Rowl 82 4 7

Row2 12 13 14

Row3 91 1 31

Row4 24 16 10

Row5 2 8 2

Suppose i t is desired to refer to the number in row 2, column 3; this would be:

LIST (2,,3)

Thus, LIST (2.3) has the value 14 and LIST (4.1) has the value 24.

Ordinary mathE~matical notations might use LIST i, j to re'present any element. of the array LIST. In FORTRAN" this is written a.s LIST(I,J) "

where I equals 1,2,3#4, or 5, and J equals 1#2# or 3.

Elements of the I,anguage 1 7

(18)

As a further example, consider the array named COST" consisting of four subscript parameters. This array might be used to store all the premiums for a life insurance applicant , given (1) age, (2) sexr, (3) health. and (4) size of life insurance coverage desired. A code number could be developed for each statistic., where IAGE represents age, ISEX represents sex~ IHLTH represents health, and ISIZE represents policy size desired (see Table 1).

Table 1. Insurance Premium Codes

r---T---,

I AGE I SEX I

.---+---~

I I I

I Age in years Code I Sex Code I

I I I

I 1-5 IAGE=l I Male ISEX=l I

I 6-10 IAGE=2 I Female ISEX=2 I

I ~---~

I I POLICY SIZE I

I

.---i

I 96-100 IAGE=20 I I

.---~ Dollars Code

I

I HEALTH I I

.---i

I 1~000 ISIZE=l I

Health Code I 3,000 ISIZE=3 I

I I 5_000 ISIZE=4 I

I Poor IHLTH=l I 10.,000 ISIZE=5 I

I Fair IHLTH=2 I 25,000 ISIZE=6 I

I Good IHLTH=3 I 50,000 ISIZE=7 I

I Excellent IHLTH=4 I 100,000 ISIZE=8 I

L __________________________________ ~ ___________________________________ J

Suppose an applicant is 14 years old., male, in good health" and desires a policy of $25,000. From Table 1, these statistics can be represented by the codes:

IAGE=3 ISEX=l IHLTH=3 ISIZE=6

(11 - 15 years old) (male)

(good health) ($25,000 policy)

Thus~ COST (3, 1, 3_ 6) represents the premium for a policy, given the statistics above. Note that "IAGE" can vary from 1 to 20, "ISEX"

from 1 to 2, "IHLTH" from 1 to 4, and "ISIZE" from 1 to 8. The number of subscripted variables in the array COST is the number of combinations that can be formed for different ages, sex, health_ and policy size available - a total of 20x2x4x8 or 1280. Therefore, there may be up to 1280 different premimums stored in the array named COST.

DECLARING THE SIZE OF AN ARRAY

The size of an array is determined by the number of subscript parameters of the array and the maximum value of each subscript. This information must be given for all arrays before using them in a FORTRAN program, so that an appropriate amount of storage may be reserved.

Declaration of this information is made by a DIMENSION statement., a COMMON statement, or by one of the Explicit specification statements

(INTEGER, REAL, COMPLEX, and LOGICAL); each is discussed in further detail in the section "Specification Statements."

(19)

ARRANGEMENT OF ARRAYS IN STORAGE

Arrays are stored in ascending storage locations" with the value of the first of their subscripts increasing most rapidly. and the value of the last increasing least rapidly.

ExamplE~s :

The array namted A, consisting of one subscript parameter which varies from 1 to S~ appears in storage as follows:

A(l) A(2) A(3) A(4) A(S)

The array named B" consisting of two subscript paramE~ters, whose first subscript vifties over the range from 1 to 5, and second varies from 1 to 3, appears in ascending storage locations in the following order:

B(l"l) B (2.1) B (3,1) B(4,1) B(S.,l) ]

Lt:

BCL,2) B(2,,2) B(3~2) B(4~2) B(S,,2)-,

~L,,3)

B(2,3) B(3,3) B (4,,3) B(S,3)

Note that B(l,2) and B(l,3) follow in storage B(S,l) and B(S,2), respectively ..

The following list is the order of an array named C, consisting of three subscript parameters" whose first subscript varies from 1 to 3, second varies from 1 to 2, and third varies from 1 to 3:

C(L,l,l) C(2,,1,l) C(3,1.,l) C (1,2,,1) C(2,2,1) C(3,2,,1)-,

~l,l,2)

C(2,1,,2) C(3,,1,,2) C (1, 2,,2) C(2,2,2) C (3~ 2, 2)--,

~1,1!,3)

C (2,,1,,3) C(3,,1,,3) C(1,,2,3) C(2,2,,3) C(3,2,3)

Note that C(1,l,2) and C(1~l,3) follow in storage C(3,2,l) and C(3,2,2), respectively .•

EXPRESSIONS

Expressions in their simplest form consist of a single constant or variable. They may also designate a computation or show a relationship between two or more constants and/or variables. Expressions may appear in arithmetic and logical assignment statements and in ce,["tain control statements.

FORTRAN provides two kinds of expressions: arithmetic and logical.

The value of an arithmetic expression is always a number 'whose type is integer, real" or complex,. However, the evaluation of a logical expression always yields a truth value: • TRUE. or .FALSE ••

ARITHMETIC EXPRESSIONS

The simplest arithmetic expression consists of a single constant, variable" or subscripted variable of the type integer, real, or complex.

If the constant" variable, or subscripted variable is of the type Elements of the Language 19

(20)

integer. the expression is in the integer mode. If i t is of the type

real~ the expression is in the real mode# etc.

Examples:

Expression 3

Type of Quantity Integer Constant Integer Variable Real Constant Real Variable Real Constant

Mode of Expression Integer

I Integer

3,.0 Real

A Real

3.1403 Real with eight loca-

tions of storage re- served

B(2*I) Real Variable <Specified as such in a Type

statement)

Real with four loca- tions of storage re- served ..

(2.0,5.7)

c Complex Constant

Complex Variable

(Specified as such in a Type statement)

Complex Complex

In the expression B(2*I), the subscript (2*1), which must always represent an integer" does not affect the mode of the expression. That is, the mode of the expression is determined solely by the type of constant. variable. or subscripted variable appearing in that expres- sion.

More complicated arithmetic expressions containing two or more constants and/or variables may be formed by using arithmetic operators that express the computation(s) to be performed.

Arithmetic Operators

The arithmetic operators are as follows:

Arithmetic Operator Definition Exponentiation Multiplication Division

Addition subtraction

**

*

/ +

RULES FOR CONSTRUCTING ARITHMETIC EXPRESSIONS: The following are the rules for constructing arithmetic expressions that contain arithmetic operators:

L. All desired computations must be specified explicitly. That is, if more than one constant, variable, subscripted variable, or subpro- gram name (see the section "SUBPROGRAMS") appears in an arithmetic expression, they must be separated from one another by an arithme- tic operator. For example, the two variables A and B will not be multiplied if written:

AxB or AB or A-B

If mUltiplication is desired, then the expression must be written:

A*B or B*A

2. No two arithmetic operators may appear in sequence in the same expression. For example, the following expressions are invalid:

A*/B and A*-B

(21)

However" in the expression, A*-B" if the - is meant t~o be a minus sign rather than the arit.hmetic operator designating subtractionrr

then the expression could be written:

A* (-B)

In effect. -B will be evaluated first" and then A will be multiplied ~Nith it,. (For further uses of parentheses" see Rule 6.) 3. The mode of an arithmetic expression is determined by t:he type and length specification of the variables in the expression. Table 2 indicates hl:)w the mode of variables of different types and lengths may be determined using the operators: +

I, -,

*

I, /.

Table 2. Dletermining the Mode of an Expression Containing Variables of Different Types and Lengths

~---T---T---T---T---T---T---,

I I INTEGER I INTEGER 1 REAL 1 REAL 1 COMPLEX 1 COMPLEX I 1+ -

*

/1 (2) I (4) I (4) I (8) 1 (8) 1 (16) 1

.---+---+---+---+---+---+---i

I INTEGER I Integer I Integer 1 Real I Real I Complex I Complex I

1 (2) 1 (2) I (4) 1 (4) I (8) I (8) I (16) I

.---+---+---+---+---+---+---~

I INTEGER I Integer 1 Integer 1 Real I Real I Complex I Complex I

1 (4) I (4) I (4) I (4) I ( 8) I ( 8) I (16) I

.---+---+---+---+---+---+---i

1 REAL I Real I Real 1 Real I Real I Complex I Complex I

I (4) 1 (4) 1 (4) I (4) I (8) 1 (8) I (16) I

~---+---+---+---+---+---+---i I REAL I Real 1 Real 1 Real I Real I Complex IComplexl

I (8) I (8) I (8) I (8) I (8) I (16) I (16) I

.---+---+----~----+---+---+---+---i 1 COMPLEX I Complex I Complex I Complex I Complex I Complex I complex I

I (8) I (8) I (8) I (8) I (16) I (8) I (16) I

.---+---+---+---+---+---+---i

I COMPLEX I Complex I Complex I Complex I Complex I Complex I Complex I

I L _______ L _________ L----_____ L _________ (16) I (16) I (16) I (16) ~ I _________ (16) ~ I _____ ____ (16) L _______ I (16) J I

From Table 2 i t can be seen that there is a hierarchy of type and length specification (see the section "The Type statements") that determines the mode of an expression. For example" complex data that has a length specification of 16 when combined with any other types of constants and variables results in complex data of length

16,.

Assume that the type of the following variables has been specified as follows:

Variable Names ROOT, E

A" I., F C.D

~ Real variable Integer variables Complex variable

Length Specification 4,,8

4,,2,,2

16,,8

Then the following examples illustrate how constants and variables of differing types may be combined using the arithmetic operators:

+" -" /. *:

Expression ROOT*5 A+3 C+2.9D10 E/F+19

Mode of Real of Integer Complex Real of

EXQression length 4 of length 4 of length 16

length 8

Elements of the Language 21

(22)

C-18.7E05

A/I-i)

Complex of length 16 Complex of length 8

4. The arithmetic operator denoting exponentiation (i. e. " **) may only be used to combine the types of constants" variables

" and sub- scripted variables shown in Table 3.

Table 3. Valid Combinations With Respect to the Arithmetic Operator **

r---,

I Base Exponent I

f---~

IInteger or Real (either length)** Integer or Real (either length)

I

I I

IComplex (either length) ** Integer (either length)

I

L _________________________________________________________________ J

Assume that the type of the following variables has been specified as follows~ and that their length specification is standard:

Variable Names

ROOT~E

A, I, F C

~ Real variable Integer variables Complex variable

Then the following examples illustrate how constants and variables of differing types may be combined using the arithmetic operator"

**,.

Examples:

Expression ROOT**(A+2) C**A

ROOT**I I**F

7,. 98E21**ROOT ROOT**2.1E5 A**E

~ (Real**Integer) (Complex**Integer) (Real**Integer) (Integer**Integer) (Real**Real)

(Real**Real) (Integer**Real)

Result (Real) (Complex) (Real) (Integer) (Real) (Real) (Real)

5. Order of Computation: Where parentheses are omitted" or where the entire arithmetic expression is enclosed within a single pair of parentheses. effectively the order in which the operations are performed is as follows:

Operation

Evaluation of Functions (see the section "Subprograms")

Exponentiation (**)

Multiplication and Division (* and /) Addition and Subtraction (+ and -)

Hiera!:chy 1st (highest) 2nd

3rd 4th

In addition. if two operators of the same hierarchy (with the exception of exponentiation) are used consecutively, the two operations are performed from left to right. Thus, the arithmetic expression A/B*C is evaluated as if the result of the division of A

by B was multiplied by C.

(23)

For example" the e:xpression:

(A*B/C**I+D)

is effectively evaluated in the order:

a. C**I h. A*B c. Y/X d.. Z+D

Call the result X Call the result Y Call the result Z Final operation

(exponentiation) (multiplication) (division)

(addition)

For exponent:ia tion the evaluation is from right to left.. Thus" the expression:

A**B**C

is evaluated as follows:

a. B**C b. A**Z

Call the result Z Final operation

6. Use of Pa]~entheS!es: Parentheses may be used in arithmetic expres- sions" as in algebra, to specify the order in which thE~ arithmetic operations are to be computed.. Where parentheses are used" the expression ~~ithin the parentheses is evaluated before t~he result is used.

For example,., the expression:

(B+«A+B)*C)+A**2)

is effectively evaluated in the order:

a ... (A+B) Call the result X

b~ (x*C) Call the result y c., A**2 Call the result Z dOl B+Y+Z Fina.l operations

LOGICAJ.J EXPRESSIONS

The simplest form of logical expression consists of a single logical constant., logical variable. or logical subscripted variable., the value of which is always a truth value (i.e~" either ,.TRUE .• or .]~ALSE.).

More complica·ted logical expressions may be formed by using logical and relational operators. These expressions may be in one of the three following forms:

1. Relational operators combined with arithmetic expreBsions whose mode is integer or real.

2. Logical operators combined with logical constants (.TRUE. and

• :fALSE.), logical variables" or subscripted variables,.

3. Logical operators combined with either or both forms of the logical expressions described in items 1 and 2.

Item 1 is discussed in the following section, "Relational Operators";

items 2 and 3 are discussed in the section "Logical Operato:rs."

Elements of the :Language 23

(24)

Relational Operators

The six relational operators, each of which must be preceded and followed by a period" are as follows:

Relational Operator .GT.

.GE.

• LT.

• LE.

.EQ ..

4ONE.

Definition Greater than

Greater than or equal to (~)

Less than ( <)

Less than or equal to (5) Equal to (=)

Not equal to (*)

The relational operators express an arithmetic condition which can be either true or false. Only arithmetic expressions whose mode is integer or real may be combined by relational operators. For example, assume that the type of the following variables has been specified as follows:

variable Names

ROOT, E ~ Real variables A, I, F Integer variables

Logical variable Complex variable L

C

Then the following examples illustrate valid and invalid logical expressions using the relational operators.

Examples:

valig Logical Expressions Using Relational Operators:

(ROOT*A).GT.E A.LT.I

E**2.7.EQ.(5*ROOT+4) 57.9.LE.(4.7+F) .5.GE •• 9*ROOT E.EQ4027.3D+05

Invalid Logical Expressions Using Relational Operators:

C40 LT. ROOT

C .• GE. (2. 7 , 5.9 E3 ) L. EQ. (A+F)

E**2.EQ97.1E9 .GT.9

Logical operators

(Complex quantities may never appear in logical expressions)

(Complex quantities may never appear in logical expressions)

(Logical quantities may never be joined by relational operators)

(Missing period immediately after the relational operator)

(Missing arithmetic expression before the rela- tional operator)

The three logical operators., each of which must be preceded and followed by a period, are as follows. (A and B represent logical constants or variables, or expressions containing relational operators.)

(25)

Logical Operator Definition

.. NOT,. ,.NOT.A if A is • TRUE. , then .NOT.A has the value

• FALSE. ; if A is ,.FALSE., then .NOT.A has the value

• TRUE.

.AND. A.AND.B- if A and B are both .TRUE.., then A.AND.B has the value .TRUE.; if either A or B or both are

• FALSE. ;, then A.AND.B has the value ,.FALSE.

.OR. A.OR.B if either A or B or both are .TRUE., then A.OR.B has the value .TRUE.~ if both A and B a r e

.FALSE.~ then A.OR.B has the value .FAU;E.

Two logical operators may appear in sequence only if the second one is the logical operator .NOT ••

Only those expressions which" when evaluated, have the ,ralue • TRUE.

or ,. FALSE. may be combined with the logical operators to form logical expressions. For example., assume that the type of the following variables has be.~n specified as follows:

Variable Names

ROOT" E ~

Real variables A" I, F Integer variables

Logical variables Complex variable L, W

C

Then the following examples illustrate valid and invalid logical expressions usin~J both logical and relational operators.

Examples:

Valid Logical Expressions:

(ROOT*A.GT.A).AND.W L .. AND ... NOT .. (J[.GT.F)

(E+5.9D2.GT.2*E).OR.L .NOT.W.AND •• NOT.L L,. AND, ... NOT .• W,., OR. I. GT. F

(A**F .. GT.R001~) ,.AND. '. NOT. (I,.EQ.E) Invalid Logical Expressions:

A .. AND.L

• OR. W

NOT. (A,. GT. F) (C. EQ • I) '. AND. L L.AND •• OR. W .AND.L

(A is not a logical expression)

(.OR. must be preceded by a ~ogical

expression)

(missing period before the logical operator

• NOT.)

(a complex variable may never appear in a logical expression)

(the logical operators .AND. and .OR. must always be separated by a logical expression)

(.AND. must be preceded by a logical expression)

Order of COllEut;ations in Logical Expressions: Where parentheses are omitted, or where! the entire logical expression is enclosed wi thin a single pair of parentheses~ the order in which the operations are performed is as follows:

Elements of the Language 25

(26)

Operation

Evaluation of Functions Exponentiation (**)

Hierarchy 1st (highest) 2nd

Multiplication and division (* and /) Addition and subtraction (+ and -)

3rd 4th

• LT. , • LE •. , .. EQ .... NE •. , .. GT. , • GE. 5th

.NOT. 6th

• AND .. 7th

• OR. 8th

For example" the expression:

(A. GT. D**B. AND. '. NOT .. L. OR. N)

is effectively evaluated in the following order:

1. D**B Call the result W (exponentiation) 2. A .• GT .. W Call the result X (relational operator) 3. .NOT.L Call the result Y (highest logical operator)

4 .. X.AND.Y Call the result Z (second highest logical operator) 5. Z.OR.N Final operation

Use of Parentheses in Logical Expressions: Parentheses may be .used in logical expressions to specify the order in which the operations are to be performed.. Where parentheses are used, the expression contained wi thin the most deeply nested parentheses (that is" the innermost pair of parentheses) is effectively evaluated first. For example~ the logical expression:

«I.GT. (B+C».AND.L)

is effectively evaluated in the following order:

1.. B+C 2. I.GT.X 3,. Y .• AND .• L

Call the result X Call the result Y Final operation

The logical expression to which the logical operator .. NOT. applies must be enclosed in parentheses if i t contains two or more quantities.

For example, assume that the values of the logical variables A and Bare ,. FALSE.. and .. TRUE,. " respectively. Then the following two expressions are not equivalent:

.. NOT .. (A,. OR. B) .NOT.A.OR.B

In the first expression, A. OR. B., is evaluated first. The result is

• TRUE.; but • NOT .• (. TRUE,.) implies. FALSE.. Therefore., the value of the first expression is .FALSE ••

In the second expression" • NOT. A is evaluated first.

.TRUE.; but .TRUE •• OR.B implies .TRUE ... Therefore, the second expression is .TRUE ••

The result is value of the

(27)

ARITHMETIC AND LOGICAL ASSIGNMENT STATEMENT

r---,

I General Form I

.---i

I I

I

~ =

12 I

I I

I Where: ~ is any subscripted or nonsubscripted variable. I

I I

I Q is any arithmetic or logical expression. I

I I

I Note:: ~ must be a logical variable. if" and only if., !2 is a I

I logical expression. I

L ______________________________________________________________________ J

The FORTRAN ~!\rithmetic and Logical Assignment statement closely resembles a conventional algebraic equation; however" the E~qual sign of the FORTRAN Ari~thmetic statement specifies replacement rather than equivalence,. That is,. the expression to the right of the E~qual sign is evaluated" and the resulting value replaces the current va.lue of the variable to the left of the equal sign.

Assume that the type of the following variables has been specified as:

variable Names !Y~ Length SEecification

I, J., W Integer variables 4,4,,2 AI, B, C. D Real variables 4,,4.8.8

E Complex variable 8

G, H Logical variables 4,,4

Then the following examples illustrate valid using constants., variables" and subscripted types:

arithmetic statements variables of different statements

A = B W B A = I I = I + 1 E = I**J+D

A

=

C*D

G

= .

TRUE.

H .NOT .. G

DescriEtion

The value of A is replaced by the current: value of B..

The value of B is truncated to an integer value" and the least significant part replaces the value of W.

The value of I is converted to a real value., and this result replaces the value of A.

The value of I is replaced by the value of I + 1.

I is raised to the power J and the result is converted to a real value to which the va.lue of 0 is added. This result replaces the real part of the complex variable E. The imaginary part of the complex variable is set to zero.

The most significant part of the product of C and D replaces the value of A.

The value of G is replaced by the logical constant

• TRUE. '.

If G is .TRUE., the value of H is replaced by the logical constant .FALSE •• If G is .FALSE., the value of H is replaced by the logical constant .TRUE ••

Arithmetic and Logical Assignment Statement 27

Références

Documents relatifs

Sl3Ction 2: Systea Bacro Instruction Descriptions 121.. This facility makes i t possible to close data control blocks and their associated data sets in

The purpose of the DDEF command is to allow the user to specify those data sets that are to be created or proc- essed during the execution of his program or the com- mands

Precise results are obtained from all fixed-point modules except complex civision and complex ABS, where small truncation errors inevitably occnr, and the ADD

System Action: Null statement inserted. SOURCE PROGRAM CONTAINS TOO MANY BLOCKS. §Lstem Action: compilation is terminated. User Response: Re~rite program with fewer

The user can also create a data-set superstructure, called a generation data group (GDG), to exercise catalog control over future structural elements

Terminal SVC Processor (CEAR4) I/O call subroutine (CEMO) Pageout Service subroutine (CEAAl) RJE line control (CEABC) Page posting (CEAMP) Segment Block Remover

EXITS: When its processing is ended (on error or on exhaustion of the source list), the Command Analyzer returns to its calling routine via the RETURN macro

string for each parameter, the parameter count is incremented and the address of the Polish string is inserted in the phrase list. When all parameters have