Differences between revisions 41 and 42
Revision 41 as of 2007-09-04 14:26:29
Size: 3863
Editor: TobiasBurnus
Comment: Add PROCEDURE (w/o pointers) to the list of supported features
Revision 42 as of 2007-09-22 13:25:34
Size: 3863
Editor: TobiasBurnus
Comment: Update link
Deletions are marked like this. Additions are marked like this.
Line 58: Line 58:
 * '''co-arrays:''' Part of Fortran 2008 (draft) ''[ftp://ftp.nag.co.uk/sc22wg5/N1651-N1700/N1677.pdf Co-arrays in the next Fortran Standard]'' [http://gcc.gnu.org/PR18918 PR18918]  * '''co-arrays:''' Part of Fortran 2008 (draft) ''[ftp://ftp.nag.co.uk/sc22wg5/N1651-N1700/N1697.pdf Co-arrays in the next Fortran Standard]'' [http://gcc.gnu.org/PR18918 PR18918]

Fortran 2003 Features in GNU Fortran


See also [:GFortran#news: GFortran news] and in the [:GFortran#manuals: 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)

  • [:Fortran2003Bind_C: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)


Features supported by several other compilers

Without pending patches

Other features

Note: This list is by far incomplete.

  • Optional KIND= specified: MAXLOC, MINLOC, SHAPE ([http://gcc.gnu.org/PR29600 PR29600])

  • More allowed initialization expressions [http://gcc.gnu.org/PR29962 PR29962]

  • Non-initialization expr. as case-selector [http://gcc.gnu.org/PR25104 PR25104]

  • type-spec for array constructor [http://gcc.gnu.org/PR27997 PR27997]

  • Type-bound procedures: PROCEDURE, GENERIC

  • Abstract derived types: ABSTRACT, DEFERRED

  • User Defined Derived Type I/O

  • ALLOCATE specifiers SOURCE= and ERRMSG=


  • Pointer Rank Remapping [http://gcc.gnu.org/PR29785 PR29785]

  • ASSOCIATE construction

  • BOZ with int(), real(), dbl(), cmpl() (incl. kind parameter) [http://gcc.gnu.org/PR29471 PR29471] [http://gcc.gnu.org/PR18026 PR18026]

    • This clashes with the extension to allow integer BOZ everywhere; current gfortran real(z'FFFF') is equivalent to Fortran 2003's real(int(z'FFFF',kind=maxKindNeeded)). Intel's solution is to give a warning (-stand f95) that in Fortran 2003 this would be differently interpreted. [Probably one could also give a warning for -std=f2003]. The next question is how to interprete real(BOZ), probably the same as data /realvariable/ (not supported yet); our result should match the result of other compilers.

Moving GNU Fortran towards the 2008 Standard

None: Fortran2003 (last edited 2017-12-09 13:11:19 by ThomasKoenig)