Using and Porting GNU Fortran
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 section `Characters' in and Execution Sequence,
for information on additional fixed source form lexical issues.
Further, the free source form is supported through the
Other Fortran 90 features can be turned on by the `-ff90' option;
see 9.7 Fortran 90.
For information on the Fortran 90 intrinsics available,
see 8.11.9 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 section 8.7.4 Character Type.
- Construct names
- (Symbolic tags on blocks.) See section 8.10.3 Construct Names.
- See section The
- See section
DOUBLE COMPLEX Statement.
- See section 8.10.1 DO WHILE.
- See section 8.6.4 Statements.
- See section 8.10.2 END DO.
- See section 8.6.7 Including Source Text.
- 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 section 8.7.3 Integer Type.
- `O' and `Z' edit descriptors
- See section 8.9.1
STATUS='REPLACE' is supported.
FILE= specifier may be omitted in an
OPEN statement if
STATUS='SCRATCH' is supplied.
FORMAT edit descriptors
Z edit descriptor is supported.
- Relational operators
- The operators
>= may be used instead of
- Not fully implemented.
SELECT CASE on
- Specification statements
- A limited subset of the Fortran 90 syntax and semantics for variable
declarations is supported, including
KIND. See section 220.127.116.11 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
INTEGER (KIND=1) :: FOO=1, BAR=2
CHARACTER (LEN=3) FOO
DIMENSION attributes aren't supported.