HP OpenVMS Systems Documentation
HP Fortran for OpenVMS
User Manual
Previous
Contents
Index
Chapter 3
3
Linking and Running HP Fortran Programs
3.1
Linker Overview
3.2
LINK Command Qualifiers and Messages
3.2.1
Linker Output File Qualifiers
3.2.1.1
Image File Qualifiers
3.2.1.2
/NATIVE_ONLY Qualifier
3.2.1.3
Map File Qualifiers
3.2.2
/DEBUG and /TRACEBACK Qualifiers
3.2.3
Linker Input File Qualifiers
3.2.4
Linker Symbol Table Qualifier
3.2.5
Linker Options File Qualifier
3.2.6
Other Linker Qualifiers
3.2.7
Linker Messages
3.3
Running HP Fortran Programs
3.3.1
RUN Command
3.3.2
System Processing at Image Exit
3.3.3
Interrupting a Program
3.3.4
Returning Status Values to the Command Interpreter
3.4
Symbol Table and Traceback Information: Locating Run-Time Errors
3.4.1
Effects of Error-Related Command Qualifiers
3.4.2
Sample Source Program and Traceback
Chapter 4
4
Using the OpenVMS Debugger
4.1
Debugger Overview
4.2
Getting Started with the Debugger
4.2.1
Compiling and Linking a Program to Prepare for Debugging
4.2.2
Establishing the Debugging Configuration and Interface
4.2.3
Invoking the Debugger
4.2.4
Debugger Commands Used Often
4.2.5
Debugger Breakpoints, Tracepoints, and Watchpoints
4.2.6
Ending a Debugging Session
4.2.7
Notes on Debugger Support for HP Fortran
4.3
Sample Debugging Session
4.4
Displaying HP Fortran Variables
4.4.1
Accessing HP Fortran Common Block Variables
4.4.2
Accessing HP Fortran Derived-Type Variables
4.4.3
Accessing HP Fortran Record Variables
4.4.4
Accessing HP Fortran Array Variables
4.4.5
Accessing HP Fortran Module Variables
4.5
Debugger Command Summary
4.5.1
Starting and Terminating a Debugging Session
4.5.2
Controlling and Monitoring Program Execution
4.5.3
Examining and Manipulating Data
4.5.4
Controlling Type Selection and Symbolization
4.5.5
Controlling Symbol Lookup
4.5.6
Displaying Source Code
4.5.7
Using Screen Mode
4.5.8
Editing Source Code
4.5.9
Defining Symbols
4.5.10
Using Keypad Mode
4.5.11
Using Command Procedures and Log Files
4.5.12
Using Control Structures
4.5.13
Additional Commands
4.6
Locating an Exception
4.7
Locating Unaligned Data
Chapter 5
5
Performance: Making Programs Run Faster
5.1
Software Environment and Efficient Compilation
5.1.1
Install the Latest Version of HP Fortran and Performance Products
5.1.2
Compile Using Multiple Source Files and Appropriate FORTRAN Qualifiers
5.1.3
Process Environment and Related Influences on Performance
5.2
Analyzing Program Performance
5.2.1
Measuring Performance Using LIB$
xxxx
_TIMER Routines or Command Procedures
5.2.1.1
The LIB$
xxxx
_TIMER Routines
5.2.1.2
Using a Command Procedure
5.2.2
Performance and Coverage Analyzer (PCA)
5.3
Data Alignment Considerations
5.3.1
Causes of Unaligned Data and Ensuring Natural Alignment
5.3.2
Checking for Inefficient Unaligned Data
5.3.3
Ordering Data Declarations to Avoid Unaligned Data
5.3.3.1
Arranging Data Items in Common Blocks
5.3.3.2
Arranging Data Items in Derived-Type Data
5.3.3.3
Arranging Data Items in Compaq Fortran 77 Record Structures
5.3.4
Qualifiers Controlling Alignment
5.4
Using Arrays Efficiently
5.4.1
Accessing Arrays Efficiently
5.4.2
Passing Array Arguments Efficiently
5.5
Improving Overall I/O Performance
5.5.1
Use Unformatted Files Instead of Formatted Files
5.5.2
Write Whole Arrays or Strings
5.5.3
Write Array Data in the Natural Storage Order
5.5.4
Use Memory for Intermediate Results
5.5.5
Defaults for Blocksize and Buffer Count
5.5.6
Specify RECL
5.5.7
Use the Optimal Record Type
5.5.8
Enable Implied-DO Loop Collapsing
5.5.9
Use of Variable Format Expressions
5.6
Additional Source Code Guidelines for Run-Time Efficiency
5.6.1
Avoid Small or Large Integer and Logical Data Items (Alpha only)
5.6.2
Avoid Mixed Data Type Arithmetic Expressions
5.6.3
Use Efficient Data Types
5.6.4
Avoid Using Slow Arithmetic Operators
5.6.5
Avoid EQUIVALENCE Statement Use
5.6.6
Use Statement Functions and Internal Subprograms
5.6.7
Code DO Loops for Efficiency
5.7
Optimization Levels: /OPTIMIZE=LEVEL=
n
Qualifier
5.7.1
Optimizations Performed at All Optimization Levels
5.7.2
Local (Minimal) Optimizations
5.7.2.1
Common Subexpression Elimination
5.7.2.2
Integer Multiplication and Division Expansion
5.7.2.3
Compile-Time Operations
5.7.2.4
Value Propagation
5.7.2.5
Dead Store Elimination
5.7.2.6
Register Usage
5.7.2.7
Mixed Real/Complex Operations
5.7.3
Global Optimizations
5.7.4
Additional Global Optimizations
5.7.4.1
Loop Unrolling
5.7.4.2
Code Replication to Eliminate Branches
5.7.5
Automatic Inlining and Software Pipelining
5.7.5.1
Interprocedure Analysis
5.7.5.2
Inlining Procedures
5.7.5.3
Software Pipelining
5.7.6
Loop Transformation
5.8
Other Qualifiers Related to Optimization
5.8.1
Loop Transformation
5.8.2
Software Pipelining
5.8.3
Setting Multiple Qualifiers with the /FAST Qualifier
5.8.4
Controlling Loop Unrolling
5.8.5
Controlling the Inlining of Procedures
5.8.6
Requesting Optimized Code for a Specific Processor Generation (Alpha only)
5.8.7
Requesting Generated Code for a Specific Processor Generation (Alpha only)
5.8.8
Arithmetic Reordering Optimizations
5.8.9
Dummy Aliasing Assumption
5.9
Compiler Directives Related to Performance
5.9.1
Using the cDEC$ OPTIONS Directive
5.9.2
Using the cDEC$ UNROLL Directive to Control Loop Unrolling
5.9.3
Using the cDEC$ IVDEP Directive to Control Certain Loop Optimizations
Previous
Next
Contents
Index