Index

%LOC
Using %LOC

%VAL
Using %VAL

&space
Using Local COMMON Blocks

aliasing
Controlling Global Assumptions
Assertions About Aliasing
argument alias
Using Argument Aliasing

ALLOCATE
size limit
Allocatable Sizes
status after
Status From ALLOCATE and DEALLOCATE

array constructor
Partial Evaluation of Array Constructors

array subscript bounds
Controlling Global Assumptions

assembly language
Calling Assembly Language From Fortran

assertions
Overview of Assertions
about dependences
Assertions About Data Dependence
C*$* ASSERT [NO] ARGUMENT ALIASING
Using Argument Aliasing
C*$* ASSERT [NO] BOUNDS VIOLATIONS
Asserting Array Bounds Violations
C*$* ASSERT [NO] EQUIVALENCE HAZARD
Using Equivalenced Variables
C*$* ASSERT NO RECURRENCE
Ignoring Data Dependence Conflicts
C*$* ASSERT RELATION
Asserting a Relationship
recognizing
Recognizing Directives and Assertions
supported
Overview of Assertions

assumed dependences
Known and Assumed Dependence

assumed-shape array
Unsupported Array Parameters
Assumed-Shape and Deferred-Shape Arrays

assumptions about program
Controlling Global Assumptions

C data types
Corresponding Scalar Types

C$
Using C$

C$CHUNK
Using C$MP_SCHEDTYPE and C$CHUNK

C$DOACROSS
Syntax of C$DOACROSS
CHUNK clause
Using the CHUNK and MP_SCHEDTYPE Clauses
examples
C$DOACROSS Examples
IF clause
Using the IF Clause
LASTLOCAL clause
Using the LOCAL, LASTLOCAL, and SHARE Clauses
LOCAL clause
Using the LOCAL, LASTLOCAL, and SHARE Clauses
MP_SCHEDTYPE clause
Using the CHUNK and MP_SCHEDTYPE Clauses
REDUCTION clause
Using the REDUCTION Clause
SHARE clause
Using the LOCAL, LASTLOCAL, and SHARE Clauses
syntax
Syntax of C$DOACROSS

C$MP_SCHEDTYPE
Using C$MP_SCHEDTYPE and C$CHUNK

C$PAR
C$PAR &

C$PAR BARRIER
Barrier Constructs

C$PAR CRITICAL SECTION
Critical Sections

C$PAR PARALLEL DO
Parallel DO

C$PAR PDO
PDO

C$PAR PSECTION
Parallel Sections

C$PAR SINGLE PROCESS
Single Process

C*$* [NO] INLINE
Fine-Tuning Inlining and IPA

C*$* [NO] IPA
Fine-Tuning Inlining and IPA

C*$* ARCLIMIT
Controlling Internal Table Size

C*$* ASSERT [NO] ARGUMENT ALIASING
Using Argument Aliasing

C*$* ASSERT [NO] BOUNDS VIOLATIONS
Asserting Array Bounds Violations

C*$* ASSERT [NO] EQUIVALENCE HAZARD
Using Equivalenced Variables

C*$* ASSERT NO RECURRENCE
Ignoring Data Dependence Conflicts

C*$* ASSERT RELATION
Asserting a Relationship

C*$* EACH_INVARIANT_IF_GROWTH
Setting Invariant IF Floating Limits

C*$* MAX_INVARIANT_IF_GROWTH
Setting Invariant IF Floating Limits

C*$* NO ASSERTIONS
Overview of Assertions

C*$* OPTIMIZE
Setting Optimization Level

C*$* ROUNDOFF
Setting Variations in Round Off

C*$* SCALAROPTIMIZE
Controlling Scalar Optimizations

cache
Cache Effects

CDIR$ NORECURRENCE
Ignoring Data Dependence Conflicts

command arguments at runtime
Executing a Program

COMMON
Using Local COMMON Blocks
General Debugging Hints
alignment of
Using Aggressive Optimization
sharing with C
Using Fortran COMMON in C Code

core file
Run-Time Error Handling

cpp use
Using Macro Processing

Cray assertions
CDIR$ NORECURRENCE
Ignoring Data Dependence Conflicts

critical section
Critical Sections

CVD$ NODEPCHK
Ignoring Data Dependence Conflicts

data type
C versus Fortran
Corresponding Scalar Types

data types
Supported Data Types

dbx
Run-Time Error Handling

DEALLOCATE
status after
Status From ALLOCATE and DEALLOCATE

debugging
driver options
Specifying Debugging and Profiling

deferred-shape array
Assumed-Shape and Deferred-Shape Arrays
Unsupported Array Parameters

dependences
assertions about
Assertions About Data Dependence
assumed and known
Known and Assumed Dependence
multiprocessing
Analyzing Data Dependencies for Multiprocessing

directives
Overview of Directives
and driver options
Directives and Driver Options
C$
Using C$
C$CHUNK
Using C$MP_SCHEDTYPE and C$CHUNK
C$MP_SCHEDTYPE
Using C$MP_SCHEDTYPE and C$CHUNK
C*$* [NO] INLINE
Fine-Tuning Inlining and IPA
C*$* [NO] IPA
Fine-Tuning Inlining and IPA
C*$* ARCLIMIT
Controlling Internal Table Size
C*$* EACH_INVARIANT_IF_GROWTH
Setting Invariant IF Floating Limits
C*$* MAX_INVARIANT_IF_GROWTH
Setting Invariant IF Floating Limits
C*$* NO ASSERTIONS
Overview of Assertions
C*$* OPTIMIZE
Setting Optimization Level
C*$* ROUNDOFF
Setting Variations in Round Off
C*$* SCALAROPTIMIZE
Controlling Scalar Optimizations
format
Supported Directives
recognizing
Recognizing Directives and Assertions
supported
Supported Directives
used for parallelization
Parallel Directives
ZZZ
Optimizing for Multiprocessors

driver
control of phases
Controlling Compiler Execution
debugging options
Specifying Debugging and Profiling
input files
Specifying Compiler Input Files
linking
Linking
macro preprocessor
Controlling the Macro Preprocessor
macro processing
Using Macro Processing
memory alignment
Specifying Memory Allocation and Alignment
memory allocation
Specifying Memory Allocation and Alignment
optimization levels
Specifying Optimization Levels
output files
Specifying Compiler Output Files
overview of
Using the Driver
source format
Specifying Source File Format
target features
Specifying Target Machine Features

driver option
Driver Options
-M
Controlling the Macro Preprocessor
Controlling the Macro Preprocessor
Specifying Compiler Input Files
Specifying Compiler Output Files
Specifying Compiler Output Files
Specifying Compiler Output Files
General Debugging Hints
Specifying Debugging and Profiling
Specifying Debugging and Profiling
Controlling Compiler Execution
Controlling Compiler Execution
Specifying Compiler Input Files
Specifying the Location of Libraries
Specifying Compiler Input Files
Specifying Compiler Output Files
Controlling Compiler Execution
Controlling Compiler Execution
Controlling Compiler Execution
Specifying Memory Allocation and Alignment
Specifying Compiler Output Files
-alignn
Specifying Memory Allocation and Alignment
-bytereclen
Specifying Source File Format
Default Output Record Lengths
-col120
Specifying Source File Format
-col72
Specifying Source File Format
-d8 and d16
Specifying Memory Allocation and Alignment
-dlines (not supported)
Specifying Source File Format
-Dname
Controlling the Macro Preprocessor
-extend_source
Specifying Source File Format
-fe
Controlling Compiler Execution
-fixedform
Specifying Source File Format
-freeform
Specifying Source File Format
Specifying Source File Format
-GCM
Specifying Optimization Levels
-in
Specifying Memory Allocation and Alignment
-keep
Specifying Compiler Output Files
-LIST
Specifying Compiler Output Files
-listing
Specifying Compiler Output Files
-mp
General Debugging Hints
Specifying Optimization Levels
Compiling and Running
-nocpp
Controlling Compiler Execution
Controlling the Macro Preprocessor
-noextend_source
Specifying Source File Format
-nostdinc
Specifying Compiler Input Files
-nostdlib
Specifying Compiler Input Files
-On
Specifying Optimization Levels
-objectlist
Specifying Compiler Input Files
-OPT
Specifying Optimization Levels
-pfa
Specifying Optimization Levels
Controlling Compiler Execution
-pfakeep
Specifying Optimization Levels
-pfalist
Specifying Optimization Levels
-r8 and -r8
Specifying Memory Allocation and Alignment
-sopt
Specifying Optimization Levels
Controlling Compiler Execution
-static
General Debugging Hints
Specifying Memory Allocation and Alignment
Parallel Procedure Calls
Using the –static Option
General Debugging Hints
-SWP
Specifying Optimization Levels
-TARG
Specifying Target Machine Features
-TENV
Specifying Target Machine Features
-U (not supported)
How Fortran 90 Handles External and Public Names
-Uname
Controlling the Macro Preprocessor
-WK
Overview of Scalar Optimization
Overview Inlining and IPA
Specifying Optimization Levels
Controlling Compiler Execution
–arclimit
Controlling Internal Table Size
–assume
Using Equivalenced Variables
–cacheline
Performing Memory Management Transformations
–cachesize
Performing Memory Management Transformations
Performing Memory Management Transformations
–directives
Recognizing Directives and Assertions
–dpregisters
Performing Memory Management Transformations
–fpregisters
Performing Memory Management Transformations
–inline_create
Creating Libraries of Inline Functions
–inline_from_files
Specifying Where to Search for Routines
–ipa_create
Creating Libraries of Inline Functions
–ipa_from_files
Specifying Where to Search for Routines
–ipa_from_libraries
Specifying Where to Search for Routines
–ipa_looplevel
Using Loop Level
–setassociativity
Performing Memory Management Transformations
-aggressive
Using Aggressive Optimization
-assert
Asserting Array Bounds Violations
-assume
Controlling Global Assumptions
-directives
Recognizing Directives and Assertions
-each_invariant_if_growth
Setting Invariant IF Floating Limits
-fuse
Enabling Loop Fusion
-inline
Specifying Functions for Inlining or IPA
-inline_and_copy
Using the Inline-and-Copy Option
-inline_depth
Depth of Nested Inlining
-inline_looplevel
Using Loop Level
-inline_man
Enabling Manual Control
-ipa
Specifying Functions for Inlining or IPA
-listoptions
Setting the Listing Level
-max_invariant_if_growth
Setting Invariant IF Floating Limits
-nodirectives
Overview of Assertions
-optimize
Controlling General Optimizations
-recursion
Specifying Recursion
-roundoff
Controlling Variations in Round Off
-scalaropt
Controlling the Optimization Level
Enabling Loop Fusion
-WK
–inline_from_libraries
Specifying Where to Search for Routines
-xgot
Specifying Memory Allocation and Alignment
-Yc
Controlling Compiler Execution

dynamic shared object (DSO)
Creating Dynamic Shared Objects
Static and Dynamic Linking
versus MODULE
Creating Dynamic Shared Objects

edit code "S"
Implementation of Sign Edit Codes

environment variable
CHUNK
Environment Variables for RUNTIME Scheduling
f77_dump_flag
Run-Time Error Handling
MP_BLOCKTIME
Environment Variables for Scheduling Control
MP_SCHEDTYPE
Environment Variables for RUNTIME Scheduling
MP_SET_NUMTHREADS
Environment Variables for Scheduling Control
MP_SETUP
Environment Variables for Scheduling Control
MP_SUGNUMTHD
Environment Variables for Load-Sensitive Scheduling
MP_SUGNUMTHD_MAX
Environment Variables for Load-Sensitive Scheduling
MP_SUGNUMTHD_MIN
Environment Variables for Load-Sensitive Scheduling
TRAP_FPE
Floating Point Exceptions

EQUIVALENCE
General Debugging Hints
Using Equivalenced Variables

error handling
Run-Time Error Handling

execution environment
Execution Environment
command arguments
Executing a Program
connecting files
Preconnected Files
error handling
Run-Time Error Handling
floating point exceptions
Floating Point Exceptions
memory size limits
Program and Memory Size Limits
multiprocessing
Run-Time Control of Multiprocessing
predefined filenames
Filename Syntax
running parallel programs
Compiling and Running
status after I/O
Status From I/O Statements

extcentry
Using mkf2c and extcentry

external name
External and Public Names
'$' not supported
How Fortran 90 Handles External and Public Names
treatment of
How Fortran 90 Handles External and Public Names

f77_dump_flag
Run-Time Error Handling

file
default action
Default File Status and Action
filename syntax
Filename Syntax
position when opened
File Positions
preconnected
Preconnected Files

filename
Filename Syntax

fine-inlining
fine-tuning
Fine-Tuning Inlining and IPA

floating point exceptions
Floating Point Exceptions

Fortran 90
conformance to standard
Conformance to the Fortran 90 Language Standard
driver. See driver
Using the Driver
implementation-dependent features
Processor-Dependent Features

getarg
Arguments to the Main Program
Executing a Program

global option table
Specifying Memory Allocation and Alignment

global variable
Global Variables

handle_sigfpes
Floating Point Exceptions

I/O
default record length
Default Output Record Lengths

I/O status
Status From I/O Statements

iargc
Executing a Program

implementation-dependent features
Processor-Dependent Features

INCLUDE
INCLUDE Processing

inlining
Overview Inlining and IPA
creating libraries
Creating Libraries of Inline Functions
default options
Overview Inlining and IPA
restrictions
Conditions That Prevent Inlining and IPA
source of functions
Specifying Where to Search for Routines
specifying functions
Specifying Functions for Inlining or IPA

interprocedural analysis (IPA)
Overview Inlining and IPA
default options
Overview Inlining and IPA
fine-tuning
Fine-Tuning Inlining and IPA
restrictions
Conditions That Prevent Inlining and IPA
specifying procedures
Specifying Functions for Inlining or IPA

intrinsic functions
in parallel loop
Parallel Procedure Calls
vector versions
Using Vector Intrinsic Functions

intrinsic procedure
nonstandard
Nonstandard Intrinsic Procedures

invariant IF floating
Setting Invariant IF Floating Limits

IOSTAT values
Status From I/O Statements

IRIX kernel functions
Support for IRIX Kernel Functions

known dependences
Known and Assumed Dependence

libfpe
Floating Point Exceptions

library functions
Support for IRIX Kernel Functions

limit command
Checking and Setting IRIX Limits

linking
Linking
default libraries
Specifying the Location of Libraries
dynamic
Static and Dynamic Linking
library location
Specifying the Location of Libraries
multiple-unit program
Linking Multiple-File Programs
object file sources
Object Files
static
Static and Dynamic Linking
with DSO
Linking With DSOs

listing of optimization
Setting the Listing Level

local variable
allocation
Procedure Local Variables
in parallel loop
Use of Local Variable
size limits
Program and Memory Size Limits

loop fusion
Enabling Loop Fusion

loop interchange
Using a Loop Interchange

loop transformation by C$DOACROSS
Loop Transformation

main module
Linking Multiple-File Programs

makefile with mkf2c
Makefile Considerations

makefiles
Makefile Considerations

matrix multiply
Parallelizing a Matrix Multiply

memory
global variable
Global Variables
local variable
Procedure Local Variables
management transformation
Performing Memory Management Transformations
maximum allocatable
Allocatable Sizes
module global variable
MODULE Global Variables
size limits
Program and Memory Size Limits
swap storage limit
Limits of Swap Storage

memory alignment
Specifying Memory Allocation and Alignment

memory allocation
Specifying Memory Allocation and Alignment

mkf2c
Making C Wrappers With mkf2c
character arguments
Character String Treatment by mkf2c
extcentry
Using mkf2c and extcentry
parameter correspondence
Parameter Assumptions by mkf2c
restrictions
Restrictions of mkf2c

module
allocation of global variable
MODULE Global Variables
compared to DSO
Creating Dynamic Shared Objects
implementation
Implementation of MODULE and USE
intrinsic
Standard and Intrinsic Modules
standard
Standard and Intrinsic Modules

mp_barrier
Using mp_setlock, mp_unsetlock, mp_barrier

mp_block
Using mp_block and mp_unblock

mp_blocktime
Using mp_blocktime

mp_create
Using mp_setup, mp_create, and mp_destroy

mp_destroy
Using mp_setup, mp_create, and mp_destroy

mp_my_threadnum
Using mp_my_threadnum

mp_numthreads
Using mp_numthreads and mp_set_numthreads

mp_set_numthreads
Using mp_setup, mp_create, and mp_destroy
Using mp_numthreads and mp_set_numthreads

mp_setlock
Using mp_setlock, mp_unsetlock, mp_barrier

mp_setup
Using mp_numthreads and mp_set_numthreads
Using mp_setup, mp_create, and mp_destroy

mp_unblock
Using mp_block and mp_unblock

mp_unsetlock
Using mp_setlock, mp_unsetlock, mp_barrier

name of external routine
How Fortran 90 Handles External and Public Names

nonstandard intrinsics
Nonstandard Intrinsic Procedures

numeric precision
Numeric Precision

object file
Object Files

optimization
control of assumptions
Controlling Global Assumptions
controlling internal table size
Controlling Internal Table Size
controlling with directives
Controlling Scalar Optimizations
dead code elimination
Controlling the Optimization Level
dependences
Known and Assumed Dependence
driver options
Specifying Optimization Levels
floating invariant IF
Setting Invariant IF Floating Limits
Setting Invariant IF Floating Limits
inlining
Overview Inlining and IPA
IPA
Overview Inlining and IPA
listing level
Setting the Listing Level
loop fusion
Enabling Loop Fusion
memory management
Performing Memory Management Transformations
number of registers
Performing Memory Management Transformations
roundoff control
Controlling Variations in Round Off
scalar
Controlling Scalar Optimizations
Overview of Scalar Optimization
level
Controlling the Optimization Level
specifying cache size
Performing Memory Management Transformations

Parallel Computing Forum (PCF)
Parallel Directives

parallel region
Parallel Region

parallelization
Overview of Parallel Optimization
and -static
Using the –static Option
cache effects
Cache Effects
critical section
Critical Sections
debugging
Debugging Parallel Fortran
dynamic scheduling
Using MP_SCHEDTYPE=DYNAMIC
effect of dependences
Analyzing Data Dependencies for Multiprocessing
efficiency of
A Few Words About Efficiency
execution
Compiling and Running
implementation
DOACROSS Implementation
interleaved scheduling
Balancing the Load With Interleaving
Using MP_SCHEDTYPE=INTERLEAVE
local common blocks
Using Local COMMON Blocks
matrix multiply
Parallelizing a Matrix Multiply
of intrinsic functions
Parallel Procedure Calls
of procedure calls
Parallel Procedure Calls
of simple loops
Writing Simple Parallel Loops
overview
Overview of Parallel Optimization
parallel region
Parallel Region
parallel sections
Parallel Sections
PCF directives for
Using PCF Directives
profiling
Profiling a Parallel Fortran Program
runtime control
Run-Time Control of Multiprocessing
scheduling modes
Using the CHUNK and MP_SCHEDTYPE Clauses
sproc compatibility
Compatibility With sproc
work quantum of
Adjusting the Work Quantum

parameters, passing
How Fortran Passes Subprogram Parameters

PCF directives
Parallel Directives
Using PCF Directives
C$DOACROSS
Syntax of C$DOACROSS
C$PAR
C$PAR &
C$PAR BARRIER
Barrier Constructs
C$PAR CRITICAL SECTION
Critical Sections
C$PAR PARALLEL DO
Parallel DO
C$PAR PDO
PDO
C$PAR PSECTION
Parallel Sections
C$PAR SINGLE PROCESS
Single Process
efficiency of
A Few Words About Efficiency
parallel region
Parallel Region
parallel sections
Parallel Sections
summary
Using PCF Directives
work-sharing directives
PCF Work-Sharing Constructs

profiling
Specifying Debugging and Profiling

public name
External and Public Names

random number generation
Implementation of RANDOM_NUMBER

RECL= specifier
Default Output Record Lengths

RECURSIVE
Use of the Keyword RECURSIVE

roundoff
Controlling Variations in Round Off

runtime environment. See execution environment
Execution Environment

SAVE attribute
Treatment of the SAVE Attribute

stack
size limits
Program and Memory Size Limits

statement function
array references in
Array References in Statement Functions

subprogram parameters
How Fortran Passes Subprogram Parameters

SYS$ERROR
Filename Syntax

SYS$INPUT
Filename Syntax

SYS$OUTPUT
Filename Syntax

unit number
preconnected
Preconnected Files

VAST directives
CVD$ NODEPCHK
Ignoring Data Dependence Conflicts

vector intrinsics
Using Vector Intrinsic Functions

wrapper
made by mkf2c
Making C Wrappers With mkf2c