Differences between revisions 114 and 115
Revision 114 as of 2014-06-15 16:53:54
Size: 9783
Editor: FxCoudert
Comment: Remove some fixed PRs
Revision 115 as of 2014-06-28 14:14:18
Size: 9778
Editor: FxCoudert
Comment: Reflect new support for IEEE modules
Deletions are marked like this. Additions are marked like this.
Line 41: Line 41:
||<tablewidth="60%" width="40%" bgcolor="#ffffdd">'''ISO TRs'''||
||15580: IEEE Arithmetic ||<bgcolor="#ffaaaa">No ([[https://gcc.gnu.org/bugzilla/show_bug.cgi?id=29383|PR29383]]) ||
||<tablewidth="60%" width="40%" bgcolor="#bbddbb">'''ISO TRs'''||
||15580: IEEE Arithmetic ||<bgcolor="#bbddbb">'''Yes''' (since 4.10) ||
Line 82: Line 82:
||Controlling IEEE underflow ||<bgcolor="#ffaaaa">No ||
||Another IEEE class value ||<bgcolor="#ffaaaa">No ||
||Controlling IEEE underflow ||<bgcolor="#bbddbb">'''Yes''' (since 4.10) ||
||Another IEEE class value ||<bgcolor="#bbddbb">'''Yes''' (since 4.10) ||

Chart of Fortran 2003 Features supported by GNU Fortran

When the question which Fortran 2003 feature are implemented in which compiler, came up in comp.lang.fortran, the idea was born to create a chart of the features supported by the different compilers; the question was sent to the j3-Fortran list and the result was the series of Fortran Forum articles, listed below.

The listed items follow the sections in the following writeup:

The Fortran Forum articles:

A freely available version of the article can be found at:

Implemented 2003 feature in GNU Fortran compiler

For other compilers see the Fortran Forum paper cited above. (These are not the only new features of Fortran 2003 though.)

See also: Fortran 2003 Features in the GNU Fortran


15580: IEEE Arithmetic

Yes (since 4.10)

15581: Allocatable Enhancements

Yes (since 4.2)

Data enhancements and object orientation

Parameterized derived types

No (being developed for KIND only), PR40196

Procedure pointers

Yes (partial since 4.4, components since 4.5)


Partial (since 4.9, being developed)

Procedures bound by name to a type

Yes (partial since 4.4, 2008-08-31)

The PASS attribute

Yes (since 4.5, 2009-07-25)

Procedures bound to a type as operators

Yes (since 4.5, 2009-08-27)

Type extension

Yes (since 4.4, 2008-07-29)

Overriding a type-bound procedure

Yes (since 4.4, 2008-08-28)


Yes (since 4.1)

ASSOCIATE construct

Partial (since 4.6, 2010-08-17, bugs: PR38936, PR49636, PR52832)

Polymorphic entities

Yes (partial since 4.5, arrays since 4.7, unlimited since 4.8)

SELECT TYPE construct

Yes (since 4.5, 2009-11-30)

Deferred bindings and abstract types

Yes (since 4.4, 2008-09-02; deferred binding since 2009-03-29)

Allocatable scalars

Yes (since 4.5, 2009-09-30)

Allocatable character length

Partial (since 4.6, as components since 4.9, bugs: PR45170)

Miscellaneous enhancements

Structure constructors

Yes (since 4.4, 2008-05-16)

The allocate statement

Yes (since 4.5, 2009-09-30)

Assignment to an allocatable array

Yes (since 4.6, 2011-01-28)

Transferring an allocation

Yes (since 4.2)

More control of access from a module


Renaming operators on the USE statement

Partial (not: operator(+)=>operator(.user.) etc.; PR31298)

Pointer assignment

Yes (since 4.6, 2010-08-19)

Pointer INTENT

Yes (since 4.3)

The VOLATILE attribute

Yes (since 4.3)

The IMPORT statement

Yes (since 4.3)

Intrinsic modules

Yes (since 4.3)

Access to the computing environment

Yes (since 4.3)

Support for international character sets

Yes (since 4.4, 2008-04-30; UTF-8 I/O since 2008-08-16)

Lengths of names and statements


Binary, octal and hex constants

Yes (since 4.3, 2007-12-08)

Array constructor syntax

Yes (since 4.4, 2008-05-16)

Specification and initialization expressions


Complex constants


Changes to intrinsic functions

Partial (missing: e.g. PR29600, PR36313)

Controlling IEEE underflow

Yes (since 4.10)

Another IEEE class value

Yes (since 4.10)

Input/output enhancements

Derived type input/output

No (PR48298, early draft patch)

Asynchronous input/output

Yes (since 4.4, 2008-04-05; implemented as synchronous I/O)

FLUSH statement

Yes (since 4.1)

IOMSG= specifier


Stream access input/output

Yes (since 4.2, 2006-08-15)

ROUND= specifier

Yes (for OUTPUT since 4.5, for INPUT since 4.9)

DECIMAL= specifier

Yes (since 4.4, 2008-04-05)

SIGN= specifier

Yes (since 4.4, 2008-04-05)

Kind type parameters of integer specifiers

Yes (since 4.4)

Recursive input/output


Intrinsic function for newline character

Yes (since 4.2)

Input and output of IEEE exceptional values


Comma after a P edit descriptor


Interoperability with C

Interoperability of intrinsic types

Yes (since 4.3, 2007-07-02)

Interoperability with C pointers

Yes (since 4.3, 2007-07-02)

Interoperability of derived types

Yes (since 4.3, 2007-07-02)

Interoperability of variables

Yes (since 4.3, 2007-07-02)

Interoperability of procedures

Yes (since 4.3, 2007-07-02)

Interoperability of global data

Yes (since 4.3, 2007-07-02)

None: Fortran2003Status (last edited 2014-06-28 14:14:18 by FxCoudert)