Documentation Home
> FORTRAN 77 Language Reference
FORTRAN 77 Language Reference
Book Information
Preface
Chapter 1 Elements of FORTRAN
Standards Conformance
Extensions
Basic Terms
Character Set
Symbolic Names
Program Units
Statements
Executable and Nonexecutable Statements
FORTRAN Statements
Source Line Formats
Standard Fixed Format
Tab-Format
Mixing Formats
Continuation Lines
Extended Lines
Padding
Comments and Blank Lines
Directives
General Directives
Syntax
Rules and Restrictions
Parallelization Directives
Chapter 2 Data Types and Data Items
Types
Rules for Data Typing
Array Elements
Functions
Properties of Data Types
BYTE @
CHARACTER
CHARACTER*n
COMPLEX
COMPLEX*8 @
COMPLEX*16 (Double Complex) @
COMPLEX*32 (Quad Complex) @
DOUBLE COMPLEX @
DOUBLE PRECISION
INTEGER
INTEGER*2 @
INTEGER*4 @
INTEGER*8 @
LOGICAL
LOGICAL*1 @
LOGICAL*2 @
LOGICAL*4 @
LOGICAL*8 @
REAL
REAL*4 @
REAL*8 (Double-Precision Real) @
REAL*16 (Quad Real) @
Size and Alignment of Data Types
Constants
Character Constants
Null Characters @
Escape Sequences @
Complex Constants
COMPLEX*16 Constants
COMPLEX*32 (Quad Complex) Constants
Integer Constants
Alternate Octal Notation @
Long Integers @
Short Integers @
Logical Constants
Real Constants
Basic Real Constant
Real Exponent
Real Constant
REAL*8 (Double-Precision Real) Constants
Double-Precision Exponent
REAL*16 (Quad Real) Constants
Typeless Constants (Binary, Octal, Hexadecimal)
Control Characters
Alternate Notation for Typeless Constants
Hollerith Constants @
Fortran 90-Style Constants @
Variables
Arrays
Array Declarators
Adjustable Arrays
Assumed-Size Arrays
Array Names with No Subscripts
Array Subscripts
Form of a Subscript
Subscript Expressions
Array Ordering
Substrings
Structures
Syntax
Field Declaration
Rules and Restrictions for Structures
Rules and Restrictions for Fields
Record Declaration
Record and Field Reference
Substructure Declaration
Record within a Structure
Structure within a Structure
Field Reference in Substructures
Rules and Restrictions for Substructures
Unions and Maps
Syntaxes
Fields in a Map
Pointers
Syntax Rules
Usage of Pointers
Address and Memory
Address by LOC() Function
Memory and Address by MALLOC() Function
Deallocation of Memory by FREE() Subroutine
Special Considerations
Optimization and Pointers
General Guidelines
Some Problematic Code Practices
Chapter 3 Expressions
Expressions, Operators, and Operands
Arithmetic Expressions
Basic Arithmetic Expressions
Mixed Mode
Rules
Resultant Type
Arithmetic Assignment
Character Expressions
Character String Assignment
Rules of Assignment
Logical Expressions
Relational Operator
Constant Expressions
Record Assignment
Evaluation of Expressions
Chapter 4 Statements
ACCEPT
Description
ASSIGN
Description
Restrictions
Examples
Assignment
Description
Arithmetic Assignment
Logical Assignment
Character Assignment
Record Assignment
Examples
AUTOMATIC
Description
Restrictions
Examples
Restrictions
BACKSPACE
Description
Examples
BLOCK DATA
Description
Restrictions
Example
BYTE
Description
Example
CALL
Description
Examples
CHARACTER
Description
Examples
CLOSE
Description
Comments
Examples
COMMON
Description
Restrictions
Examples
COMPLEX
Description
COMPLEX
COMPLEX*8 @
COMPLEX*16 @
COMPLEX*32 @
Comments
Examples
CONTINUE
Description
Example
DATA
Description
Character Constants in the DATA Statement
Implied DO Lists
Variables
Examples
DECODE/ENCODE
Description
Example
DIMENSION
Description
Dimension Declarator
Adjustable Array
Assumed-Size Array
Examples
DO
Description
Labeled DO Loop
Terminal Statement
DO Loop Range
Block DO Loop @
Terminal Statement Processing
Restrictions
Comments
Examples
DO WHILE
Description
Terminal Statement
DO WHILE Loop Range
Terminal Statement Processing
Restrictions
Comments
Examples
DOUBLE COMPLEX
Description
DOUBLE COMPLEX @
COMPLEX*16 @
Comments
DOUBLE PRECISION
Description
DOUBLE PRECISION
REAL*8 @
Example
ELSE
Description
Restrictions
Examples
ELSE IF
Description
Restrictions
Example
ENCODE/DECODE
Description
Example
END
Description
Example
END DO
Description
Examples
END FILE
Description
Restrictions
Examples
END IF
Description
Examples
END MAP
Description
Restrictions
Example
END STRUCTURE
Description
Example
END UNION
Description
Example
ENTRY
Description
Procedure References by Entry Names
Argument Correspondence
Restrictions
Examples
EQUIVALENCE
Description
Restrictions
Example
EXTERNAL
Description
Restrictions
Examples
FORMAT
Description
Repeat Factor
Repeatable Edit Descriptors
Nonrepeatable Edit Descriptors
Item Separator
Variable Format Expressions @
Restrictions
Warnings
Examples
FUNCTION (External)
Description
Type of Function
Value of Function
Formal Arguments
Restrictions
Examples
GO TO (Assigned)
Description
Restrictions
Example
GO TO (Computed)
Description
Restrictions
Example
GO TO (Unconditional)
Description
Restrictions
Example
IF (Arithmetic)
Description
Example
IF (Block)
Description
IF Level
IF Block
Restrictions
Examples
IF (Logical)
Description
Example
IMPLICIT
Description
Implicit Typing
No Implicit Typing
Restrictions
Examples
INCLUDE
Description
Search Path
Preprocessor #include
VMS Logical File Names in the INCLUDE Statement
Examples
INQUIRE
Description
INQUIRE Specifier Keywords
ACCESS=acc
BLANK=blnk
DIRECT=dir
ERR=s
EXIST=ex
FILE=fn
FORM=fm
FORMATTED=fmt
IOSTAT=ios
NAME=fn
NAMED=nmd
NEXTREC=nr
NUMBER=num
OPENED=od
RECL=rcl
SEQUENTIAL=seq
UNFORMATTED=unf
UNIT=u
Examples
INTEGER
Description
INTEGER
INTEGER*2 @
INTEGER*4 @
INTEGER*8 @
Restrictions
Examples
INTRINSIC
Description
Restrictions
LOGICAL
Description
LOGICAL
LOGICAL*1 @
LOGICAL*2 @
LOGICAL*4 @
LOGICAL*8 @
Examples
MAP
Description
Example
NAMELIST
Description
Group Name
Namelist Items
Restrictions
Example
OPEN
Description
OPEN Specifier Keywords
[UNIT=] u
FILE=fin
ACCESS=acc
FORM=fm
RECL=rl
ERR=s
IOSTAT=ios
BLANK=blnk
STATUS=sta
FILEOPT=fopt @
READONLY @
ACTION=act
Examples
OPTIONS
Description
Restrictions
Example
PARAMETER
Description
Restrictions
Examples
PAUSE
Description
POINTER
Description
Examples
PRINT
Description
Format Identifier
Output List
Namelist-Directed PRINT
Restrictions
Examples
PROGRAM
Description
Restrictions
Example
READ
Description
Unit Identifier
Format Identifier
I/O Status Specifier
Record Number
End-of-File Specifier
Error Specifier
Input List
Namelist-Directed READ
Execution
Examples
REAL
Description
REAL
REAL*4 @
REAL*8 @
REAL*16 @
Examples
RECORD
Description
Restrictions
Example
RETURN
Description
Examples
REWIND
Description
Examples
SAVE
Description
Restrictions
Example
Statement Function
Description
Restrictions
Examples
STATIC
Description
Example
STOP
Description
Examples
STRUCTURE
Description
Restrictions
Restrictions for Fields
Examples
SUBROUTINE
Description
Examples
TYPE
Description
Example
The Type Statement
Description
Restrictions
Example
UNION and MAP
Description
Example
VIRTUAL
Description
Example
VOLATILE
Description
Example
WRITE
Description
Unit Identifier
Format Identifier
I/O Status Specifier
Record Number
Error Specifier
Output List
Namelist-Directed WRITE
Execution
Restrictions
Comments
Examples
Chapter 5 Input and Output
Essential FORTRAN I/O Concepts
Logical Units
I/O Errors
General Restriction
Kinds of I/O
Combinations of I/O
Printing Files
Definition
The INQUIRE Statement
Special Uses of OPEN
Scratch Files
Changing I/O Initialization with IOINIT
Direct Access
Unformatted I/O
Formatted I/O
Internal Files
Sequential Formatted I/O
Direct Access I/O
Formatted I/O
Input Actions
Output Actions
Format Specifiers
w, m, d, e Parameters (As In Gw.dEe)
Defaults for w, d, and e
Apostrophe Editing ('aaa')
Blank Editing (B,BN,BZ)
Carriage Control ($, Space,0,1)
Dollar $
Space, 0, 1, and +
Character Editing (A)
Reading Into Hollerith Edit Descriptors
Integer Editing (I)
Logical Editing (L)
Octal and Hexadecimal Editing (O, Z)
Octal and Hex Input
Octal and Hex Output
Positional Editing (T, nT, TRn, TLn, nX)
Tn--Absolute Columns
TLn--Relative Columns
TRn--Relative Columns
nTL--Relative Tab Stop
TL--Relative Tab Stop
nX--Positions
Quotes Editing ("aaa")
Radix Control (R)
Editing REAL Data (D, E, F, G)
D Editing
E Editing
F Editing
G Editing
Commas in Formatted Input
Remaining Characters (Q)
Scale Factor (P)
Scope
Input
Output
Sign Editing (SU, SP, SS, S)
Slash Editing (/)
Sequential Access
Direct Access
Termination Control (:)
Runtime Formats
Variable Format Expressions (<e>)
Unformatted I/O
Sequential Access I/O
Direct Access I/O
List-Directed I/O
Output Format
Unquoted Strings
Internal I/O
NAMELIST I/O
Syntax Rules
Restrictions
Output Actions
Input Actions
Data Syntax
Syntax Rules
Arrays Only
Name Requests
Chapter 6 Intrinsic Functions
Arithmetic and Mathematical Functions
Arithmetic
Type Conversion
Trigonometric Functions
Other Mathematical Functions
Character Functions
Miscellaneous Functions
Bit Manipulation @
Environmental Inquiry Functions @
Memory @
Remarks
Notes on Functions
VMS Intrinsic Functions
VMS Double-Precision Complex
VMS Degree-Based Trigonometric
VMS Bit-Manipulation
VMS Multiple Integer Types
Functions Coerced to a Particular Type
Functions Translated to a Generic Name
Zero Extend
Appendix A ASCII Character Set
Appendix B Sample Statements
Appendix C Data Representations
Real, Double, and Quadruple Precision
Extreme Exponents
Zero (signed)
Subnormal Number
Signed Infinity
Not a Number (NaN)
IEEE Representation of Selected Numbers
Arithmetic Operations on Extreme Values
Bits and Bytes by Architecture
Appendix D VMS Language Extensions
Background
VMS Language Features in Sun Fortran
VMS Features Requiring -xl or -vax=spec
Summary of Features That Require -xl[d]
Details of Features That Require -xl[d]
Unsupported VMS FORTRAN
© 2010, Oracle Corporation and/or its affiliates