Intel® Fortran Compiler 18.0 Developer Guide and Reference
The major new features for this release are as follows:
You can specify the following new settings for option [Q]init: [minus_]huge, [minus_]infinity, [minus_]tiny. For more information, see init, Qinit.
NOMASK_READWRITE and MASK_READWRITE clauses in the VECTOR directive
You can direct the compiler to enable (NOMASK_READWRITE) or disable (MASK_READWRITE) memory speculation, causing the generation of unmasked or masked loads and stores within conditional statements. For more information, see VECTOR and NOVECTOR.
The following new features only apply when targeting Intel® Xeon Phi™ products:
ATTRIBUTES MEMKIND directive
Can be used to request allocation in High Band Width (HBW) memory. For more information, see ATTRIBUTES MEMKIND.
MEMKIND directive
Can be used to request that an ALLOCATE statement place an object in High Band Width (HBW) memory. For more information, see MEMKIND.
Intrinsic routine FOR_GET_MEMKIND
Can be used to determine if an object should be placed in High Band Width (HBW) memory. For more information, see FOR_GET_MEMKIND
The following are new OpenMP* features:
The Intel® Fortran compiler now supports most of OpenMP* Version Technical Report 4: Version 5.0 Preview 1. The predefined macro _OPENMP now has the value 201611. The integer parameter openmp_version in omp_lib.mod and omp_lib.h now has the value 201611.
IN_REDUCTION clause in OpenMP* directive
Specifies that a task participates in a reduction. For more information, see IN_REDUCTION.
TASK_REDUCTION directive (OpenMP* API)
Specifies a reduction among tasks. For more information, see TASK_REDUCTION.
Extension to the OpenMP THREADPRIVATE directive
You can now specify module variables and variables that have the SAVE attribute in a THREADPRIVATE directive. For more information, see THREADPRIVATE.
Extension to the OpenMP TASK directive
You can now specify an IN_REDUCTION clause in a TASK directive. For more information, see TASK.
Extension to the OpenMP TASKGROUP directive
You can now specify a TASK_REDUCTION clause in a TASKGROUP directive. For more information, see TASKGROUP.
Extension to the OpenMP TASKLOOP directive
You can now specify a REDUCTION clause and an IN_REDUCTION clause in a TASKLOOP directive. For more information, see TASKLOOP.
Extension to the OpenMP ORDERED SIMD directive.
You can now specify a MONOTONIC and an OVERLAP keyword in the ORDERED SIMD directive. For more information, see ORDERED.
Extension to the LASTPRIVATE clause in OpenMP* directives.
You can now specify the optional CONDITIONAL modifier on the LASTPRIVATE clause. For more information, see LASTPRIVATE.
The following new OpenMP* features only apply when targeting Intel® Xeon Phi™ products:
In the TARGET DATA directive, the same variable can be used in both the MAP clause and the USE_DEVICE_PTR clause.
If a variable appears in a REDUCTION or LASTPRIVATE clause on a combined construct for which the first construct is TARGET, then it is treated as if it had appeared in a MAP clause with a map-type of TOFROM for REDUCTION and a map-type of FROM for LASTPRIVATE.
A non-scalar variable referenced in a TARGET region and not explicitly mapped is implicitly treated as MAP (TOFROM).
Data pointers and procedure pointers are now allowed in DECLARE TARGET.
Variables with static storage and procedures used in a TARGET region are implicitly treated as DECLARE TARGET.
For a summary of Fortran 2003 features, see Fortran 2003 Features.
For a summary of new Fortran 2008 features, see Fortran 2008 Features.
For a summary of new draft Fortran 2015 features, see Draft Fortran 2015 Features.
For information on new compiler options in this release, see New Options in the Compiler Options reference.
For information about the Fortran standards, visit the Fortran standards technical committee website at http://j3-fortran.org/.
For information about the OpenMP* standards, see the OpenMP website at http://www.openmp.org/.