P. J. Weinberger
ABSTRACT
The Fortran language has just been revised.
The new language, known as Fortran 77,
became an official American National Standard on April 3, 1978.
We report here on a compiler and run-time system for the new extended language.
This is believed to be the first complete Fortran 77 system to be implemented.
This compiler is designed to be portable,
to be correct and complete,
and to generate code compatible with calling sequences produced by C compilers.
In particular, this Fortran is quite usable on
UNIXsystems.
In this paper, we describe the language compiled,
interfaces between procedures,
and file formats assumed by the I/O system.
An appendix describes the Fortran 77 language.
Table of Contents
- 1.1.
Usage
- 1.2.
Documentation Conventions
- 1.3.
Implementation Strategy
- 2.
LANGUAGE EXTENSIONS
- 2.1.
Double Complex Data Type
- 2.2.
Internal Files
- 2.3.
Implicit Undefined statement
- 2.4.
Recursion
- 2.5.
Automatic Storage
- 2.6.
Source Input Format
- 2.7.
Include Statement
- 2.8.
Binary Initialization Constants
- 2.9.
Character Strings
- 2.10.
Hollerith
- 2.11.
Equivalence Statements
- 2.12.
One-Trip DO Loops
- 2.13.
Commas in Formatted Input
- 2.14.
Short Integers
- 2.15.
Additional Intrinsic Functions
- 3.
VIOLATIONS OF THE STANDARD
- 3.1.
Double Precision Alignment
- 3.2.
Dummy Procedure Arguments
- 3.3.
T and TL Formats
- 4.
INTER-PROCEDURE INTERFACE
- 4.1.
Procedure Names
- 4.2.
Data Representations
- 4.3.
Return Values
- 4.4.
Argument Lists
- 5.
FILE FORMATS
- 5.1.
Structure of Fortran Files
- 5.2.
Portability Considerations
- 5.3.
Pre-Connected Files and File Positions
- 7.
Program Form
- 7.1.
Blank Lines
- 7.2.
Program and Block Data Statements
- 7.3.
ENTRY Statement
- 7.4.
DO Loops
- 7.5.
Alternate Returns
- 8.
Declarations
- 8.1.
CHARACTER Data Type
- 8.2.
IMPLICIT Statement
- 8.3.
PARAMETER Statement
- 8.4.
Array Declarations
- 8.5.
SAVE Statement
- 8.6.
INTRINSIC Statement
- 9.
Expressions
- 9.1.
Character Constants
- 9.2.
Concatenation
- 9.3.
Character String Assignment
- 9.4.
Substrings
- 9.5.
Exponentiation
- 9.6.
Relaxation of Restrictions
- 10.
Executable Statements
- 11.
Input/Output
- 11.1.
Format Variables
- 11.2.
END=, ERR=, and IOSTAT= Clauses
- 11.3.
Formatted I/O
- 11.4.
Standard Units
- 11.5.
List-Directed Formatting
- 11.6.
Direct I/O
- 11.7.
Internal Files
- 11.8.
OPEN, CLOSE, and INQUIRE Statements