Intel® oneAPI Fortran Compiler Release Notes

This document provides a summary of new and changed product features and includes notes about features and problems not described in the product documentation. 

The Intel® Fortran Compiler IFORT (BETA) in the Intel® oneAPI HPC Toolkit beta release includes a full implementation of the Fortran 2018 standard, except for the REDUCE intrinsic. However, these features are not available when using the -qnextgen compiler option to IFORT or when using the IFX compiler driver.

The IFORT (BETA) compiler in the Intel® oneAPI HPC Toolkit is the next major release of our Fortran compiler ifort front-end.  We are not running a formal beta-test program for ifort in 2020 like we have in past years. This beta08 release is an update to our first reveal that was in beta07.  So we invite you to test this new ifort in the Intel® oneAPI HPC Toolkit, try the new features, and give us feedback to help improve our Intel® Fortran Compiler.

This software is shipped under a pre-release license and cannot be used for building production software.  Please consult the EULA included in the distribution as well as the Disclaimer and Legal Information section of these release notes for details. 

Where to Find the Release

Please follow the steps to download the Intel® oneAPI HPC Toolkit and follow the installation instructions. Install the Intel® oneAPI Base Toolkit first for full functionality. 

Change History

This section highlights important changes from the previous product version and changes in product updates.

Changes in beta08 (Intel® Fortran Compiler 2021.1.1 beta)

  • Corrections to reported issues

Changes since Intel® Fortran Compiler 19.1 (New in Intel® Fortran Compiler 2021.1 beta)

Back to top

System Requirements

Please see Intel® Fortran Compiler System Requirements.

Back to top

How to install the Intel® Fortran Compiler

Installation instructions are shipped with all Intel® Software Development Products as part of the documentation. Installation guide for the latest Intel® oneAPI HPC toolkit version is also available online. Please check Intel® oneAPI page for installation guides.

How to use the Intel® Fortran Compiler

Please refer to 

for details on how to use the Intel® Fortran Compiler.

Back to top


Product documentation is available online

Back to top

Japanese Language Support

Japanese language support is not provided with this release of the product.

Back to top

Technical Support

Access the Intel® Fortran Compiler forum when you need assistance.

Back to top

New and Changed Compiler Features

New features from Fortran 2018

These features are not available when using the [-/]qnextgen compiler option to IFORT or when using the IFX compiler driver.

  • Coarray teams have been implemented.
    • The derived type TEAM_TYPE has been added to the ISO_FORTRAN_ENV intrinsic module.
    • The CHANGE TEAM and END TEAM statements have been implemented.
    • The FORM TEAM statement has been implemented.
    • The SYNC TEAM statement has been implemented.
    • The TEAM_NUMBER intrinsic function has been implemented.
    • The GET_TEAM intrinsic function has been implemented.
    • The optional TEAM argument has been added to the intrinsic functions STOPPED_IMAGES, NUM_IMAGES, and IMAGE_STATUS.
    • New forms of the IMAGE_INDEX and NUM_IMAGES allow optional TEAM and TEAM_NUMBER arguments have been implemented.
    • A new form of THIS_IMAGE with a TEAM argument has been implemented.
    • An optional TEAM or TEAM_NUMBER specifier is not permitted in image selectors.
  • Implicit allocation of an unallocated coarray in a variable definition context is now prohibited.
  • Nonpolymorphic pointer arguments to the EXTENDS_TYPE_OF and SAME_TYPE_AS intrinsics no longer need to have defined allocation status.
  • Deallocation during finalization has been clarified and now occurs using the semantics defined in Fortran 2018.
  • Output from the STOP and ERROR_STOP statement may now be conditionally suppressed.
  • STOP and ERROR STOP codes can now be non-constant expressions.
  • Named constants of type LOCK_TYPE are no longer allowed. 
  • The DIM argument to the intrinsic functions ALL, ANY, IALL, IANY, IPARITY, MAXLOC, MAXVAL, MINLOC, MINVAL, NORM2, PARITY, PRODUCT, SUM, and THIS_IMAGE may now be a present OPTIONAL dummy argument.
  • VALUE dummy arguments to PURE procedures may appear in variable definition contexts.
  • The optional ERRMSG argument has been added to the intrinsic procedures GET_COMMAND_ARGUMENT, GET_ENVIRONMENT_VARIABLE, and GET_COMMAND.
  • The OUT_OF_RANGE intrinsic function has been implemented.
  • The RANDOM_INIT intrinsic subroutine has been implemented. 
  • Dummy arguments to defined assignment and operator procedures need not have the INTENT(IN) attribute if they have the VALUE attribute.
  • A dummy argument of PURE procedure may appear in a variable definition context if it has the VALUE attribute.
  • Constant properties of an object can be used in the objects initialization. 
  • Polymorphic structure constructor components no longer need to have the same dynamic type as their corresponding structure component. 
  • The RANDOM_INIT intrinsic subroutine has been implemented. 
  • Several new Fortran 2018 terms have been added to the Glossary in the Developer Guide; for example: current team, ancestor team, parent team, and established coarrays.
  • Non-pointer variables with the PROTECTED attribute may no longer appear as a data-target or as a initial-data-target.
  • VOLATILE variables are now prohibited in PURE procedures and statement functions. 
  • The type and kind of an implied DO loop variable TYPE can now be specified in an implied-do loop of array constructors and data statements.
  • Floating point comparisons perform IEEE comareSignaling<relation> operations when -assume ieee_compares or -standard-semantics compiler options are specified.
  • Procedures are not compiled for recursion by default; users wanting this behavior should use the -standard-semantics compiler option or the -assume recursion option.    
  • The REDUCE function has not yet been implemented.

New and Changed Compiler Options

These features are not available when using the [-/]qnextgen compiler option to IFORT or when using the IFX compiler driver.

Please refer to the compiler documentation for details. The following new compiler options are added:

Linux / macOS Windows
-assume [no]failed-images /assume:[no]failed-images
-assume [no]ieee_compares /assume:[no]ieee_compares
-check [no]teams /check:[no]teams






-assume [no]failed-images

Tells the runtime system to check for failed images on a team of images when executing an image control statement without a STAT= specifier or a call to MOVE_ALLOC or an atomic or collective subroutine without a STAT argument.  Default nofailed_images. 

-assume [no]ieee_compares

Tells the compiler to generate IEEE compareSignaling<relation> operations for floating point comparisons, as required by the Fortran 2018 standard.  Default noieee_compares.

-check [no]teams

Tells the runtime system to detect non-standard usage of coarray team features.  Examples are the use of a TEAM variable in the NUM_IMAGES intrinsic that does not describe the current team or an ancestor of the current team, or the use of TEAM_NUMBER=-1 in an image selector to indicate the initial team.  Default noteams.

For a complete list of deprecated compiler options, see the Compiler Options section of the documentation. Newly deprecated compiler options are listed below

Back to top

Support Deprecated

  • Directive SIMD (!dir$ SIMD) is deprecated and may be removed in a future release. In the source code users should replace the directive with the OpenMP SIMD directive "!$omp simd" and associated clauses. Remember to add compiler option -qopenmp-simd  or -qopenmp. When compiling with -O2, -qopenmp-simd is implied. 
  • The compiler option -stand f15 (Linux), /stand:f15 (Windows) is deprecated and may be removed in a future release.  Use -stand f18 (Linux), /stand:f18 (Windows).
  • Use of the -qnextgen (Linux), /qnextgen (Windows) compiler option is deprecated and will be removed in a future beta release. Use "ifx", instead of "ifort -qnextgen" or "ifort /qnextgen".


Support Removed

  • 32-bit coarray support has been removed.

Back to top

Known Issues

i915 GPU Driver Hanging Issue

The i915 GPU driver is configured to hang (by default) after a certain amount of time is spent on GPU. To make the GPU run longer than the time limit, we must disable hangcheck of the driver:

sudo echo –n 0 > /sys/module/i915/parameters/enable_hangcheck

This forum thread provides more detailed information regarding the i915 GPU driver configuration hanging issue.

Fortran Coarray Application Hang After Executing FAIL IMAGE

If you use a FAIL IMAGE statement to make an image fail, you should use a STAT= specifier or a STAT argument in all coarray operations that might encounter that failed image if the statement or operation permits, or you should specify either the assume failed_images or standard-semantics compiler option. If you do not use a STAT= specifier, a STAT argument, or specify one of the compiler options, those operations will not check for failed images. They may then try to coordinate with the failed image, waiting for a response from it. The response would never happen and so the application would hang.

The following example demonstrates using the STAT= specifier to prevent an application hang.

   SYNC ALL (STAT=MY_STAT)      ! Would hang without STAT=


Cross Compiling (compiling in 32-bit mode on a 64-bit machine running Microsoft Windows*)

If you are running 

  • Microsoft Windows* and
  • cross compiling (compiling in 32-bit mode on a 64-bit machine) and 
  • using Microsoft Visual Studio* 2019 and 
  • handle exceptions, particularly floating point exceptions, in your code and
  • you see a SEGV exception when your program gets a floating point exception,

your program did not handle the exception as intended.

The solution is to add legacy_x86_flt_exceptions.lib to your link command.

Next Generation Code Generator

These are applicable when using the [-/]qnextgen compiler option to IFORT or when using the IFX compiler driver.

Fortran 77
  • Alternate entries are not supported yet.
Fortran 90
  • Improved derived types support.
  • To determine if the code is using Fortran Standards that are not included in Fortran 90, add the compiler option -stand f90 to the compile line. That option issues warning messages for language elements that are not standard in Fortran 90.
Fortran 2003
  • Most of the iso_c_binding features introduced in F2003 (but not those introduced in F2018) are supported.
  • Most of OpenMP 4.5 has been implemented. 
  • OMP TARGET, including in combination with PARALLEL DO, or TEAMS,  is supported. There are known limitations when passing allocatable objects to a TARGET region, particularly as slices, although some whole-array operations also fail.
Other known issues
  • !DIR$ is recognized by the front end, but the next generation code generator does not implement them.
  • FIXED in beta07: Mismatched arguments between caller and callee (a common F77 behavior) is working, except in the case where a routine is declared as EXTERNAL and is also defined in the same file. In this case the compiler gives an internal compiler error.
  • Limited debug capability
  • Targeting to Win32 does not work.

Back to top

Fortran 2008 and Fortran 2018 Feature Summary

The Intel® Fortran Compiler supports full Fortran 2008 standard and most features from the Fortran 2018 standard.  New Fortran 2018 features supported by the current version are listed in the 'New features from Fortran 2018' section.

Please refer to the Fortran 2008 Standard (PDF) and the Fortran 2018 Standard (PDF) if necessary.

Back to top

Notices and Disclaimers

Intel technologies may require enabled hardware, software or service activation.

No product or component can be absolutely secure.

Your costs and results may vary.

© Intel Corporation. Intel, the Intel logo, and other Intel marks are trademarks of Intel Corporation or its subsidiaries. Other names and brands may be claimed as the property of others.

No license (express or implied, by estoppel or otherwise) to any intellectual property rights is granted by this document.

The products described may contain design defects or errors known as errata which may cause the product to deviate from published specifications. Current characterized errata are available on request.

Intel disclaims all express and implied warranties, including without limitation, the implied warranties of merchantability, fitness for a particular purpose, and non-infringement, as well as any warranty arising from course of performance, course of dealing, or usage in trade.


Информация о продукте и производительности


Компиляторы Intel могут не обеспечивать для процессоров других производителей уровень оптимизации, который не является присущим только процессорам Intel. В состав этих оптимизаций входят наборы команд SSE2, SSE3 и SSSE3, а также другие оптимизации. Корпорация Intel не гарантирует доступность, функциональность или эффективность работы любых приложений оптимизации для микропроцессоров других производителей. Содержащиеся в данной продукции оптимизации, предназначены для использования с конкретными микропроцессорами Intel. Некоторые оптимизации, не относящиеся к микроархитектуре Intel, зарезервированы для микропроцессоров Intel. Пожалуйста, см. соответствующее руководство пользователя или справочные руководства для получения дополнительной информации о конкретных наборах команд, к которым относится данное уведомление.

Редакция уведомления № 20110804