JavaScript is required to for searching.
Skip Navigation Links
Exit Print View
Oracle Solaris Studio 12.3: Fortran User's Guide     Oracle Solaris Studio 12.3 Information Library
search filter icon
search icon

Document Information


1.  Introduction

2.  Using Solaris Studio Fortran

3.  Fortran Compiler Options

4.  Solaris Studio Fortran Features and Extensions

4.1 Source Language Features

4.1.1 Continuation Line Limits

4.1.2 Fixed-Form Source Lines

4.1.3 Tab Form

4.1.4 Source Form Assumed Mixing Forms Case

4.1.5 Limits and Defaults

4.2 Data Types

4.2.1 Boolean Type Rules Governing Boolean Type Alternate Forms of Boolean Constants



Hollerith Alternate Contexts of Boolean Constants

4.2.2 Abbreviated Size Notation for Numeric Data Types

4.2.3 Size and Alignment of Data Types

4.3 Cray Pointers

4.3.1 Syntax

4.3.2 Purpose of Cray Pointers

4.3.3 Declaring Cray Pointers and Fortran 95 Pointers

4.3.4 Features of Cray Pointers

4.3.5 Restrictions on Cray Pointers

4.3.6 Restrictions on Cray Pointees

4.3.7 Usage of Cray Pointers

4.4 STRUCTURE and UNION (VAX Fortran)

4.5 Unsigned Integers

4.5.1 Arithmetic Expressions

4.5.2 Relational Expressions

4.5.3 Control Constructs

4.5.4 Input/Output Constructs

4.5.5 Intrinsic Functions

4.6 Fortran 200x Features

4.6.1 Interoperability with C

4.6.2 IEEE Floating-Point Exception Handling

4.6.3 Command-Line Argument Intrinsics

4.6.4 PROTECTED Attribute

4.6.5 Fortran 2003 Asynchronous I/O

4.6.6 Extended ALLOCATABLE Attribute

4.6.7 VALUE Attribute

4.6.8 Fortran 2003 Stream I/O

4.6.9 Fortran 2003 IMPORT Statement

4.6.10 Fortran 2003 FLUSH I/O Statement

4.6.11 Fortran 2003 POINTER INTENT Feature

4.6.12 Fortran 2003 Enhanced Array Constructor

4.6.13 Object-Oriented Fortran Support

4.6.14 Additional Fortran 2003 and Fortran 2008 Features

4.7 Additional I/O Extensions

4.7.1 I/O Error Handling Routines

4.7.2 Variable Format Expressions

4.7.3 NAMELIST Input Format

4.7.4 Binary Unformatted I/O

4.7.5 Miscellaneous I/O Extensions

4.8 Directives

4.8.1 Form of Special f95 Directive Lines Fixed-Form Source Free-Form Source

4.8.2 FIXED and FREE Directives Scope Uses Restrictions

4.8.3 Parallelization Directives

4.9 Module Files

4.9.1 Searching for Modules

4.9.2 The -use=list Option Flag

4.9.3 The fdumpmod Command

4.10 Intrinsics

4.11 Forward Compatibility

4.12 Mixing Languages

5.  FORTRAN 77 Compatibility: Migrating to Solaris Studio Fortran

A.  Runtime Error Messages

B.  Features Release History

C.  Fortran Directives Summary


4.8 Directives

A compiler directive directs the compiler to do some special action. Directives are also called pragmas.

A compiler directive is inserted into the source program as one or more lines of text. Each line looks like a comment, but has additional characters that identify it as more than a comment for this compiler. For most other compilers, it is treated as a comment, so there is some code portability.

A complete summary of Fortran directives appears in Appendix C, Fortran Directives Summary.

4.8.1 Form of Special f95 Directive Lines

f95 recognizes its own special directives in addition to those described in 1.8 Command-Line Help. These have the following syntax:

!DIR$ d1, d2, … Fixed-Form Source Free-Form Source

Thus, !DIR$ in columns 1 through 5 works for both free-form source and fixed-form source.

4.8.2 FIXED and FREE Directives

These directives specify the source form of lines following the directive line. Scope

They apply to the rest of the file in which they appear, or until the next FREE or FIXED directive is encountered. Uses Restrictions

The FREE/FIXED directives:

Example: A FREE directive.

    DO i = 1, n
        a(i) = b(i) * c(i)
    END DO

4.8.3 Parallelization Directives

A parallelization directive is a special comment that directs the compiler to attempt to parallelize the next DO loop. These are summarized in Appendix D and described in the chapter on parallelization in the Fortran Programming Guide. Both Sun and Cray style parallelization directives are now deprecated as obsolete., The OpenMP Fortran API directives and parallelization model is preferred. OpenMP parallelization is described in the OpenMP API User’s Guide.