Intel® Fortran Compiler - Support for Fortran language standards

By Devorah Hayman,

Published:04/05/2012   Last Updated:01/24/2019

Fortran 2003 (and Earlier) Support

As of compiler version 16.0 (Intel® Parallel Studio XE 2016), the Intel® [Visual] Fortran compiler is fully compliant with the ISO/IEC 1539-1:2004 Fortran language standard (Fortran 2003 Language). Intel Fortran also fully supports programs that conform to the earlier standards Fortran 95, Fortran 90, FORTRAN 77 and FORTRAN IV (FORTRAN 66.) In some cases, compiler options may need to be specified to enable support of behavior that was different in earlier versions of the Fortran standard.

Fortran 2008 Support

The Intel [Visual] Fortran Compiler now supports all features from the Fortran 2008 standard

Fortran 2018 Support

Draft Fortran 2018 features supported include:

  • All features described in ISO/IEC TS29113:2012, Further Interoperability with C (16.0)
    • Assumed type (TYPE(*))
    • Assumed rank (DIMENSION(..))
    • ISO_Fortran_binding.h
    • C descriptors and procedures for manipulating them
    • RANK intrinsic
    • Relaxed restrictions on interoperable dummy arguments
    • Relaxed restrictions on procedures in intrinsic module ISO_C_BINDING
  • Coarray events
  • Intrinsic function coshape
  • Default accessibility for entities accessed from a module
  • Import Enhancements
  • All standard proceduress in ISO_C_BINDING other than C_F_POINTER are now PURE

Additional Information

The Intel Fortran compiler also supports a number of extensions to the Fortran standards, as well as command-line options that allow you to override the default actions of the compiler.

In some cases, the default behavior of the Intel Fortran Compiler does not conform to Fortran 2003 semantics.  The following table lists the compiler options which are not enabled by default and which must be specified to obtain full Fortran 2003 semantics. Note that, in some cases, enabling these options may lower run-time performance.

The single option /standard-semantics (Windows*) or -standard-semantics (Linux* and macOS*) can be used to set all options required to obtain full Fortran 2003 semantics. If using the IEEE_ARITHMETIC, IEEE_EXCEPTIONS or IEEE_FEATURES intrinsic modules, /fp:strict (Windows) or -fp-model strict (Linux and macOS) must also be specified.

Non-Default Compiler Options for Fortran 2003 Semantics
Windows* Linux* and macOS*
/assume:byterecl -assume byterecl
/assume:fpe_summary -assume fpe_summary
/assume:ieee_fp_flags (if /fp:strict or precise also set) -assume ieee_fp_flags (if -fp-model strict or precise also set)
/assume:minus0 -assume minus0
/assume:noold_ldout_format -assume noold_ldout_format
/assume:noold_maxminloc -assume noold_maxminloc
/assume:noold_unit_star -assume noold_unit_star
/assume:noold_xor -assume noold_xor
/assume:protect_parens -assume protect_parens
/assume:std_mod_proc_name -assume std_mod_proc_name
/fpscomp:logicals -fpscomp logicals

NOTE: Compiler version 17.0 changed the default behavior to be that of /assume:realloc_lhs (-assume realloc_lhs). To disable that behavior in version 17.0 or later, use /assume:norealloc_lhs (-assume norealloc_lhs) or /nostandard-realloc-lhs (-nostandard-realloc-lhs)

For more information, please refer to the "Compiler Options" section of the Intel Fortran Compiler documentation.

Product and Performance Information


Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804