HP OpenVMS Systems Documentation

Content starts here

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
                Image File Qualifiers
                /NATIVE_ONLY Qualifier
                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
                The LIB$xxxx_TIMER Routines
                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
                Arranging Data Items in Common Blocks
                Arranging Data Items in Derived-Type Data
                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
                Common Subexpression Elimination
                Integer Multiplication and Division Expansion
                Compile-Time Operations
                Value Propagation
                Dead Store Elimination
                Register Usage
                Mixed Real/Complex Operations
         5.7.3         Global Optimizations
         5.7.4         Additional Global Optimizations
                Loop Unrolling
                Code Replication to Eliminate Branches
         5.7.5         Automatic Inlining and Software Pipelining
                Interprocedure Analysis
                Inlining Procedures
                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