2. Using Solaris Studio Fortran
4. Solaris Studio Fortran Features and Differences
5. FORTRAN 77 Compatibility: Migrating to Solaris Studio Fortran
B.1 Oracle Solaris Studio 12.2 Fortran Release
B.2 Sun Studio 12 Update 1 Fortran Release
B.3 Sun Studio 12 Fortran Release
B.4 Sun Studio 11 Fortran Release
B.5 Sun Studio 10 Fortran Release:
B.6 Sun Studio 9 Fortran Release:
B.8 Sun ONE Studio 7, Compiler Collection (Forte Developer 7) Release:
Enhanced -openmp option:
The -openmp option flag has been enhanced to facilitate debugging OpenMP programs. To use dbx to debug your OpenMP application, compile with
-openmp=noopt -g
You will then be able to use dbx to breakpoint within parallel regions and display contents of variables. .
Multi-process compilation:
Specify -xjobs=n with -xipo and the interprocedural optimizer will invoke at most n code generator instances to compile the files listed on the command line. This option can greatly reduce the build time of large applications on a multi-cpu machine. See 3.4.134 -xjobs=n.
Making assertions with PRAGMA ASSUME:
The ASSUME pragma is a new feature in this release of the compiler. This pragma gives hints to the compiler about conditions the programmer knows are true at some point in a procedure. This may help the compiler to do a better job optimizing the code. The programmer can also use the assertions to check the validity of the program during execution. See 2.3.1.8 The ASSUME Directives, and 3.4.111 -xassume_control[=keywords].
More Fortran 2003 features:
The following features appearing in the Fortran 2003 standard have been implemented in this release of Fortran compiler. These are described in Chapter 4.
Exceptions and IEEE Arithmetic:
New intrinsic modules IEEE_ARITHMETIC, and IEEE_FEATURES provide support for exceptions and IEEE arithmetic in the Fortran language. See 4.6.2 IEEE Floating-Point Exception Handling.
Interoperability with C:
The Fortran standard provides a means of referencing C language procedures and, conversely, a means of specifying that a Fortran subprogram can be referenced from a C function. It also provides a means of declaring global variables that are linked with external C variables. See 4.6.1 Interoperability with C Functions.
PROTECTED Attribute
The Fortran compiler now accepts the Fortran 2003 PROTECTED attribute. PROTECTED imposes limitations on the usage of module entities. Objects with the PROTECTED attribute are only definable within the module that declares them. 4.6.4 PROTECTED Attribute.
ASYNCHRONOUS I/O Specifier
The compiler recognizes the ASYNCHRONOUS specifier on I/O statements:
ASYNCHRONOUS=[’YES’ | ’NO’]
Enhanced compatibility with legacy f77:
A number of new features enhance the Fortran compiler’s compatibility with legacy Fortran 77 compiler, f77. These include variable format expressions (VFE’s), long identifiers, -arg=local , and the -vax compiler option. See Chapter 3 and Chapter 4.
I/O error handlers:
Two new functions enable the user to specify their own error handling routine for formatted input on a logical unit. These routines are described in 4.7.1 I/O Error Handling Routines, and in man pages and the Fortran Library Reference.
Unsigned integers:
With this release, the Fortran compiler accepts a new data type, UNSIGNED, as an extension to the language. See 4.5 Unsigned Integers.
Set preferred stack/heap page size:
A new command-line option, -xpagesize, enables the running program to set the preferred stack and heap page size at program startup. See 3.4.155 -xpagesize=size.
Faster and enhanced profiling:
This release introduces the new command-line option -xprofile_ircache= path, to speed up the "use" compilation phase during profile feedback. See 3.4.165 -xprofile_ircache[=path]. See also 3.4.166 -xprofile_pathmap=collect_prefix:use_prefix.
Enhanced "known libraries":
The -xknown_lib option has been enhanced to include more routines from the Basic Linear Algebra library, BLAS. See 3.4.136 -xknown_lib=library_list.
Link-time Optimization:
Compile and link with the new -xlinkopt flag to invoke a post-optimizer to apply a number of advanced performance optimizations on the generated binary object code at link time. See 3.4.144 -xlinkopt[={1|2|0}].
Initialization of local variables:
A new extension to the -xcheck option flag enables special initialization of local variables. Compiling with -xcheck=init_local initializes local variables to a value that is likely to cause an arithmetic exception if it is used before it is assigned by the program. See 3.4.115 -xcheck=keyword