g77.info: Fortran 90 Features

Go backward to I/O
Go up to Language
Go to the top op g77

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.  *Note Characters, Lines, and Execution
Sequence: Characters Lines 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 *Note Fortran 90::.  For
information on the Fortran 90 intrinsics available, see *Note 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.  *Note Character Type::.
Construct names
     (Symbolic tags on blocks.)  *Note Construct Names::.
`CYCLE' and `EXIT'
     *Note The `CYCLE' and `EXIT' Statements: CYCLE and EXIT.
`DOUBLE COMPLEX'
     *Note `DOUBLE COMPLEX' Statement: DOUBLE COMPLEX.
`DO WHILE'
     *Note DO WHILE::.
`END' decoration
     *Note Statements::.
`END DO'
     *Note END DO::.
`KIND'
`IMPLICIT NONE'
`INCLUDE' statements
     *Note 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.
     *Note Integer Type::.
`O' and `Z' edit descriptors
`NAMELIST'
     *Note 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.  *Note `SELECT CASE' on `CHARACTER' Type:
     SELECT CASE on CHARACTER Type.
Specification statements
     A limited subset of the Fortran 90 syntax and semantics for
     variable declarations is supported, including `KIND'.  *Note 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.