Fortran Wiki
Compiler Support for Modern Fortran

Compiler Support for modern Fortran standards

The Fortran compilers under active development each support all or very nearly all of Fortran 95. To differentiate amongst compilers in terms of compliance with modern Fortran standards, it is useful to focus on the more recent standards. The common names for the Fortran standards are derived from the years in which the feature set was frozen, which has generally preceded the actual publication of the official standard by up to two years:

Most new features in Fortran 2018 are defined in two Technical Specification (TS) documents:

  • TS 29113 Further Interoperability of Fortran with C
  • TS 18508 Additional Parallel Features in Fortran

To summarize a few milestones as of 1Q2018, the following six compilers are listed very roughly and informally from the most advanced in terms of standards-compliance to the least advanced in that regard. Such a listing is obviously subjective and only semi-qualitative. For each compiler, the statements concern the latest available version of the compiler. For proprietary compilers, the latest available version corresponds to the most recent release. For the one open-source compiler (GNU), that latest available version corresponds to the current development version in the public repository:

Cray Compiler Environment

Intel

GNU Gfortran

IBM

Portland Group (NVIDIA)

Flang

  • increasing Fortran 2008 support including submodule

Numerical Algorithms Group (NAG)

  • Fortran 2003: mostly supported except derived type input/output.

For the results of a much more detailed and comprehensive survey of 11 compilers, please see Fortran 2008 status and Fortran 2003 status and the following article:

Chivers, I. and Sleightholme, J. (August, 2015) “Compiler Support for the Fortran 2003 and 2008 Standards”, ACM Fortran Forum, 34:2.

Caveat: while a survey of compiler support is a tremendously useful and much appreciated service to the Fortran community, please be aware of the challenges associated with gathering voluntary input from many different compiler providers worldwide. Please check for the most up-to-date information with the specific compiler providers of interest.