Differences between revisions 68 and 69
Revision 68 as of 2009-03-29 18:42:27
Size: 4735
Editor: JanusWeil
Comment:
Revision 69 as of 2009-04-09 11:23:59
Size: 4799
Editor: JanusWeil
Comment:
Deletions are marked like this. Additions are marked like this.
Line 36: Line 36:
 * '''[[ProcedurePointers|Procedure Pointers]]''', but not as components (since 2008-07-02)  * '''[[ProcedurePointers|Procedure Pointers]]''' (since 2008-07-02), as function results (since 2009-04-09), but not as components
Line 49: Line 49:
 * '''Procedure pointers as component''' including PASS. ([[ProcedurePointers|SoC 2008 project]], planned for 4.5.0)  * '''Procedure pointers as components''' including PASS. ([[http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39630|PR39630]], planned for 4.5.0)

Fortran 2003 Features in GNU Fortran

For Fortran 2008 see below and at

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 (since 2008-04-30; Fortran 2003 conform, but no optional UCS-4 support)

  • Structure constructures (since 2008-05-16)

  • type-spec for array constructor (since 2008-05-16)

  • Procedure Pointers (since 2008-07-02), as function results (since 2009-04-09), but not as components

  • Type extension (since 2008-07-29)

  • Support for UCS-4 (ISO 10646) and I/O with encoding=UTF-8 encoding (since 2008-08-16)

  • Type-bound procedures: PROCEDURE (since 2008-08-28), GENERIC (since 2008-08-31) but not as operators

  • Abstract derived types: ABSTRACT, DEFERRED

Fortran 2008

  • ASINH, ACOSH, ATANH, ERF, ERFC, GAMMA, LOG_GAMMA, BESSEL_*, HYPOT and ERFC_SCALED (missing are three-argument form of BESSEL_*N and the complex versions of A{SIN,COS,TAN}{,H}) since 2008-03-06
  • g0 edit descriptor (since 2008-06-08)

Unimplemented

Features supported by several other compilers

  • Procedure pointers as components including PASS. (PR39630, planned for 4.5.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.

  • Finalization subroutines

  • Optional KIND= specified: MAXLOC, MINLOC, SHAPE (PR29600)

  • More allowed initialization expressions PR29962

  • Non-initialization expr. as case-selector PR25104

  • Type-bound procedures as operators

  • User Defined Derived Type I/O

  • ALLOCATE specifiers SOURCE= and ERRMSG=

  • Pointer Rank Remapping PR29785

  • ASSOCIATE construction

  • Allocatable scalars

  • CLASS, polymorphism

  • SELECT TYPE

Moving GNU Fortran towards the 2008 Standard

None: Fortran2003 (last edited 2017-09-10 11:41:09 by ThomasKoenig)