NAG Fortran Compiler Release 7.1 - Release Note - Overview

For full details see the PDF or HTML versions of this release note.

0. Licensing

Customers upgrading from a previous release will need a new licence key.

See KLICENCE.txt for more information about Kusari Licence Management.

1. Compatibility with Earlier Releases

NAG Fortran Release 7.1 is compatible with Release 7.0 except for procedures
with procedure pointer arguments that were compiled with the -C=calls option.

NAG Fortran Release 7.1 is compatible with Release 6.2 except for coarrays,
and the -C=calls option when a subroutine has an alternate return.
Any program that uses these features will need to be recompiled.

NAG Fortran Release 7.1 is compatible with Release 6.1 except:
 - use of HPF features (HPF_LIBRARY et al) is not supported;
 - the (previously deprecated) -abi=64 option on Linux x86-64 is unavailable.
Release 7.1 is also compatible with Release 6.0 except for the above
exceptions, and also, files which use allocatable arrays of a parameterised
derived type will need recompilation.

With the exception of HPF support and the deprecated option removal, it is
compatible with Release 5.3.1, 5.3 and 5.2, except that on Windows, modules
or procedures whose names begin with a dollar sign ($) need to be recompiled.

2. Summary of New Features

. Additional Fortran 2008 support
. Additional Fortran 2018 support
. Additional OpenMP support
. Additional error checking
. Miscellaneous enhancements

3. Additional Fortran 2008 support

. Allocatable components of forward or recursive type.
. Dummy arguments permitted in specifications in elemental subprograms.
. Pointers and pointer components can be initialised to point to a target.
. A pointer function reference can be used as a variable in many contexts.
. The result of a function can be a procedure pointer.

4. Additional Fortran 2018 support

. The collective intrinsic subroutines (CO_SUM et al) are available.
. The DIM argument to most reduction intrinsics can be an optional dummy.
. The SIZE= specifier can be used in a READ statement without ADVANCE='NO'.
. Specific intrinsic functions are considered to be obsolescent.
. Assumed-rank dummy arguments are supported.
. The SELECT RANK construct facilitates use of assumed rank objects in Fortran.
. TYPE(*) is supported for scalar/assumed-size/assumed-rank dummy arguments.
. A BIND(C) procedure can have optional arguments.
. The intrinsic function RANK returns the dimensionality of its argument.
. The intrinsic function REDUCE performs user-defined array reductions.
. Generic resolution can use the number of procedure arguments.

5. Additional OpenMP support

. Undefined variable detection (-C=undefined) is supported for OpenMP programs.
. The OpenMP 4.0 CANCEL and CANCELLATION POINT directives are supported.
. The OpenMP 5.1 MASKED construct is supported.

6. Additional error checking

. Multiple occurrences of the same variable in ALLOCATE/DEALLOCATE.
. Improved checking for type-bound procedure overriding and global consistency.
. Integer arguments too small in SYSTEM_CLOCK detected as errors.
. Warnings for inconsistent argument types/kinds in SYSTEM_CLOCK.
. Checks that variables in NAMELIST are used properly.
. Check character constant formats for junk after the format.
. Warning for CONTINUE with no label.
. Detect type parameter inconsistency at runtime in coarray allocation.
. Empty SELECT CASE and SELECT TYPE constructs are reported as Questionable.
. Integer overflow can now be detected in the SHAPE and SIZE intrinsics.
. Additional checking on procedure calls with procedure pointer arguments.

7. Miscellaneous enhancements

. Source code polishing now has Camel_Case options.
. Source code polishing now has a case preservation option.
. Enhanced polish -case provides separate case settings for kinds of names.
. Enhanced polish -casex specifies the exact case to use for specific names.
. The -quiet option suppresses the compiler banner/summary lines.
. Extension messages provide info on what kind of extension it is.
. Informational messages have been split into Note, Info, and Remark.

See RELNOTES.html or RELNOTES.pdf for full details.
