Fortran 2003 Features in GNU Fortran
Implemented
See also GFortran news and in the GNU Fortran manuals and note that the following list is incomplete.
Command-line intrinsics
Streaming IO
ENUMERATION support
Allocatable components and dummy arguments (TR 15581) and move_alloc
USE statements with INTRINSIC and NON_INTRINSIC (since 2006-11-17)
ISO_FORTRAN_ENV module (since 2006-11-20)
VOLATILE attribute (since 2006-11-07)
VALUE attribute (since 2006-12-03)
IMPORT statement (since 2006-12-08)
PROTECTED statement (since 2006-12-10)
Intent for pointers (since 2007-01-05)
Renaming operators on the USE statement (since 2007-03-08)
ISO C Bindings (since 2007-07-02)
MIN / MAX with character arguments (since 2007-08-06)
Optional KIND= specifier: ACHAR, COUNT, IACHAR, ICHAR, INDEX, LBOUND, LEN, LEN_TRIM, SCAN, SIZE, UBOUND, VERIFY (since 2007-08-12)
ABSTRACT INTERFACE (since 2007-08-18) and PROCEDURE statement (since 2007-09-04, without procedure pointers)
Fortran 2003 BOZ, i.e. BOZ in INT, REAL, DBLE and CMPLX (since 2007-12-08)
Asynchronous IO, (since 2008-05-2008, standard conform, but implemented as synchronous I/O)
I/O changes: decimal=, sign=, delim=, pad=, blank=, encoding=default [but not UTF-8] (since 2008-04-05)
SELECTED_CHAR_KIND (subce 2008-04-30; Fortran 2003 conform, but no optional UCS-4 support)
Fortran 2008
- ASINH, ACOSH, ATANH, ERF, ERFC, GAMMA, LOG_GAMMA, BESSEL_*, HYPOT and ERFC_SCALED
Unimplemented
Features supported by several other compilers
Procedure pointers (SoC 2008 project, planned for 4.4.0)
Asynchronous IO implement real asynchronous I/O, currently it is synchronous PR25829
Extended Formatted I/O specifiers round= (PR35862), i/o specifiers of non-default-kind, (PR29602)
IEEE Exceptions (TR15580) PR29383
Other features
Note: This list is by far incomplete.
Support for UCS-4 (ISO 10646) encoding (not required by the Fortran 2003 standard)
Extended Formatted I/O specifiers encoding=UTF-8 (not required by the Fortran 2003 standard, unless UCS-4 is supported) PR35863
Optional KIND= specified: MAXLOC, MINLOC, SHAPE (PR29600)
More allowed initialization expressions PR29962
Non-initialization expr. as case-selector PR25104
type-spec for array constructor PR27997 (patch available)
Type-bound procedures: PROCEDURE, GENERIC
Abstract derived types: ABSTRACT, DEFERRED
User Defined Derived Type I/O
ALLOCATE specifiers SOURCE= and ERRMSG=
Pointer Rank Remapping PR29785
ASSOCIATE construction
Moving GNU Fortran towards the 2008 Standard
submodules: Part of Fortran 2008 (draft) and of the technical report ISO/IEC TR 19767:2005 Fortran - Enhanced Module Facilities
co-arrays: Part of Fortran 2008 (draft) Co-arrays in the next Fortran Standard PR18918 Implementation draft for gfortran