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

Preface

1.  Introduction

2.  Using Solaris Studio Fortran

2.1 A Quick Start

2.2 Invoking the Compiler

2.2.1 Compile-Link Sequence

2.2.2 Command-Line File Name Conventions

2.2.3 Source Files

2.2.4 Source File Preprocessors

2.2.5 Separate Compiling and Linking

2.2.6 Consistent Compiling and Linking

2.2.7 Unrecognized Command-Line Arguments

2.2.8 Modules

2.3 Directives

2.3.1 General Directives

2.3.1.1 The C Directive

2.3.1.2 The IGNORE_TKR Directive

2.3.1.3 The UNROLL Directive

2.3.1.4 The WEAK Directive

2.3.1.5 The OPT Directive

2.3.1.6 The PIPELOOP[=n] Directive

2.3.1.7 The PREFETCH Directives

2.3.1.8 The ASSUME Directives

2.3.2 Parallelization Directives

2.3.2.1 OpenMP Parallelization Directives

2.3.2.2 Legacy Sun/Cray Parallelization Directives

2.3.3 IVDEP Directive

2.4 Library Interfaces and system.inc

2.5 Compiler Usage Tips

2.5.1 Determining Hardware Platform

2.5.2 Using Environment Variables

2.5.3 Memory Size

2.5.3.1 Swap Space Limits

2.5.3.2 Increasing Swap Space

2.5.3.3 Control of Virtual Memory

2.6 User-Supplied Default Options File

3.  Fortran Compiler Options

4.  Solaris Studio Fortran Features and Extensions

5.  FORTRAN 77 Compatibility: Migrating to Solaris Studio Fortran

A.  Runtime Error Messages

B.  Features Release History

C.  Fortran Directives Summary

Index

2.4 Library Interfaces and system.inc

The Fortran compiler provides an include file, system.inc, that defines the interfaces for most non-intrinsic library routines. Declare this include file to insure that functions you call and their arguments are properly typed, especially when default data types are changed with -xtypemap.

For example, the following may produce an arithmetic exception because function getpid() is not explicitly typed:

        integer(4) mypid
        mypid = getpid()
        print *, mypid

The getpid() routine returns an integer value but the compiler assumes it returns a real value if no explicit type is declared for the function. This value is further converted to integer, most likely producing a floating-point error.

To correct this you should explicitly type getuid() and functions like it that you call:

        integer(4) mypid, getpid
        mypid = getpid()
        print *, mypid

Problems like these can be diagnosed with the -Xlist (global program checking) option. The Fortran include file ”system.inc’ provides explicit interface definitions for these routines.

        include ’system.inc’
        integer(4) mypid
        mypid = getpid()
        print *, mypid

Including system.inc in program units calling routines in the Fortran library will automatically define the interfaces for you, and help the compiler diagnose type mismatches. (See the Fortran Library Reference for more information.)