Work on the FORTRAN 77 standard (X3J3/90.4, ISO 1539:1980) was initiated by ANSI in 1969 after a number of compiler vendors introduced extensions to the FORTRAN 66 standard. The standard was formally approved in 1978. It added a number of significant features to address many of the shortcomings of FORTRAN 66:
- Block IF and END IF statements, with optional ELSE and ELSE IF clauses, to provide improved language support for structured programming
- DO loop extensions, including parameter expressions, negative increments, and zero trip counts
- OPEN, CLOSE, and INQUIRE statements for improved I/O capability
- Direct-access file I/O
- IMPLICIT statement
- CHARACTER data type, with vastly expanded facilities for character input and output and processing of character-based data
- PARAMETER statement for specifying constants
- SAVE statement for persistent local variables
- Generic names for intrinsic functions
- A set of intrinsics (lge, lgt, lle, llt) for lexical comparison of strings, based upon the ASCII collating sequence.
An important practical extension to FORTRAN 77 was the release of MIL-STD-1753 in 1978. This specification, developed by the U.S. Department of Defense, standardized a number of features implemented by most FORTRAN 77 compilers but not included in the ANSI FORTRAN 77 standard. These features would eventually be incorporated into the Fortran 90 standard.
- DO WHILE and END DO statements
- INCLUDE statement
- IMPLICIT NONE variant of the IMPLICIT statement
- Bit manipulation intrinsic functions, based on similar functions included in Industrial Real-Time Fortran (ANSI/ISA S61.1 (1976))