The Fortran compiler supports technical and scientific application development with record-setting runtime performance and compatibility options for the Fortran77, Fortran90, and Fortran95 standards. The majority of Fortran 2003 features and OpenMP 4.0 support is included. The Fortran compiler uses the same high-performance code generation technology as the C and C++ compilers, ensuring that the resulting application generates the highest-performance parallel code for the newest SPARC and x86-based Oracle systems.
The Fortran compiler changes include the changes that are described in New and Changed Features Common to the Compilers.
The following lists the new and changed features in this release of version 8.7 of the Fortran compiler. For more information, see the f95 (1) man page and the Oracle Solaris Studio 12.4: Fortran User’s Guide .
The –xM option can be used to generate makefile dependency automatically. In conjunction with the new –keepmod=yes option, it allows the most optimal incremental build on Fortran application using modules. The new –keepmod option is used to retain a module which is not changed when compiled. The default is –xkeepmod=yes , which replaces the old behavior when a new module file is created each time even without any changes from the previous compilation.
Compile time for applications using modules is substantially improved and memory overflows due to module processing are eliminated.
#pragma ident can be used in a source file to identify the source version of the compiled object.
Support for a deferred type parameter (colon) as the LEN type parameter in a character type used in a declaration. For example:
character(LEN=:), pointer :: str
Support for procedure pointers.
Support for the Fortran 2003 function C_F_PROCPOINTER() for the ISO_C_BINDING module. The C_FUNLOC() function is extended to enable procedure pointer as an argument.
Full support for object-oriented Fortran. Typebound procedures with the following attributes are now allowed:
Support for the Fortran 2003 feature to enable derived type and generic function to have the same name.
Support for the Fortran 2008 feature passing TARGET objects to INTENT(IN) pointer dummies.
Expanded support to allow all elemental intrinsic functions (where each argument is itself an initialization expression) to be used in initialization expressions as specified in the Fortran 2003 standard. Previously, the elemental intrinsic functions used in that context were limited to those which returned type integer and character only.
Support for –fserialio which specifies that the program does not perform I/O in more than one thread at a time.