Previous: I/O, Up: Language


8.14 Fortran 90 Features

For convenience this section collects a list (probably incomplete) of the Fortran 90 features supported by the GNU Fortran language, even if they are documented elsewhere. See Characters, Lines, and Execution Sequence, for information on additional fixed source form lexical issues. Further, the free source form is supported through the -ffree-form option. Other Fortran 90 features can be turned on by the -ff90 option; see Fortran 90. For information on the Fortran 90 intrinsics available, see Table of Intrinsic Functions.

Automatic arrays in procedures
Character assignments
In character assignments, the variable being assigned may occur on the right hand side of the assignment.
Character strings
Strings may have zero length and substrings of character constants are permitted. Character constants may be enclosed in double quotes (") as well as single quotes. See Character Type.
Construct names
(Symbolic tags on blocks.) See Construct Names.
CYCLE and EXIT
See The CYCLE and EXIT Statements.
DOUBLE COMPLEX
See DOUBLE COMPLEX Statement.
DO WHILE
See DO WHILE.
END decoration
See Statements.
END DO
See END DO.
KIND
IMPLICIT NONE
INCLUDE statements
See INCLUDE.
List-directed and namelist I/O on internal files
Binary, octal and hexadecimal constants
These are supported more generally than required by Fortran 90. See Integer Type.
`O' and `Z' edit descriptors
NAMELIST
See NAMELIST.
OPEN specifiers
STATUS='REPLACE' is supported. The FILE= specifier may be omitted in an OPEN statement if STATUS='SCRATCH' is supplied.
FORMAT edit descriptors
The Z edit descriptor is supported.
Relational operators
The operators <, <=, ==, /=, > and >= may be used instead of .LT., .LE., .EQ., .NE., .GT. and .GE. respectively.
SELECT CASE
Not fully implemented. See SELECT CASE on CHARACTER Type.
Specification statements
A limited subset of the Fortran 90 syntax and semantics for variable declarations is supported, including KIND. See Kind Notation. (KIND is of limited usefulness in the absence of the KIND-related intrinsics, since these intrinsics permit writing more widely portable code.) An example of supported KIND usage is:
          INTEGER (KIND=1) :: FOO=1, BAR=2
          CHARACTER (LEN=3) FOO
     

PARAMETER and DIMENSION attributes aren't supported.