Fortran Programming Guide Sun Microsystems



1.  Introduction

Standards Conformance
Features of the Fortran Compilers
Other Fortran Utilities
Debugging Utilities
Sun Performance Library
Interval Arithmetic
Man Pages
Command-Line Help

2.  Fortran Input/Output

Accessing Files From Within Fortran Programs
Accessing Named Files
Opening Files Without a Name
Preconnected Units
Opening Files Without an OPEN Statement
Passing File Names to Programs
f77: VAX / VMS Logical File Names
Direct I/O
Binary I/O
Internal Files
f77: Tape I/O
Using TOPEN Routines
Fortran Formatted I/O for Tape
Fortran Unformatted I/O for Tape
Tape File Representation
Multifile Tapes
Fortran 95 I/O Considerations

3.  Program Development

Facilitating Program Builds With the make Utility
The Makefile
make Command
Overriding of Macro Values
Suffix Rules in make
Version Tracking and Control With SCCS
Controlling Files With SCCS
Checking Files Out and In

4.  Libraries

Understanding Libraries
Specifying Linker Debugging Options
Generating a Load Map
Listing Other Information
Consistent Compiling and Linking
Setting Library Search Paths and Order
Search Order for Standard Library Paths
LD_LIBRARY_PATH Environment Variable
Library Search Path and Order--Static Linking
Library Search Path and Order--Dynamic Linking
Creating Static Libraries
Tradeoffs for Static Libraries
Creation of a Simple Static Library
Creating Dynamic Libraries
Tradeoffs for Dynamic Libraries
Position-Independent Code and -pic
Binding Options
Naming Conventions
A Simple Dynamic Library
Libraries Provided with Sun Fortran Compilers
VMS Library
POSIX Library
Shippable Libraries

5.  Program Analysis and Debugging

Global Program Checking (-Xlist)
GPC Overview
How to Invoke Global Program Checking
Some Examples of -Xlist and Global Program Checking
Suboptions for Global Checking Across Routines
-Xlist Suboption Reference
Some Examples Using Suboptions
Special Compiler Options
Subscript Bounds (-C)
Undeclared Variable Types (-u)
Version Checking (-V)
Interactive Debugging With dbx and Sun WorkShop
f77: Viewing Compiler Listing Diagnostics

6.  Floating-Point Arithmetic

IEEE Floating-Point Arithmetic
-ftrap=mode Compiler Options
Floating-Point Exceptions and Fortran
Handling Exceptions
Trapping a Floating-Point Exception
SPARC: Nonstandard Arithmetic
IEEE Routines
Flags and ieee_flags()
IEEE Extreme Value Functions
Exception Handlers and ieee_handler()
Retrospective Summary
Debugging IEEE Exceptions
Further Numerical Adventures
Avoiding Simple Underflow
Continuing With the Wrong Answer
SPARC: Excessive Underflow
Interval Arithmetic

7.  Porting

Time and Date Functions
Working With Files
Porting From Scientific Mainframes
Data Representation
Hollerith Data
Nonstandard Coding Practices
Uninitialized Variables
Aliasing Across Calls
Obscure Optimizations
Results Are Close, but Not Close Enough
Program Fails Without Warning

8.  Performance Profiling

Sun WorkShop Performance Analyzer
The time Command
Multiprocessor Interpretation of time Output
The gprof Profiling Command
Overhead and Other Considerations
The tcov Profiling Command
"Old Style" tcov Coverage Analysis
"New Style" Enhanced tcov Analysis
f77 I/O Profiling

9.  Performance and Optimization

Choice of Compiler Options
Performance Option Reference
Other Performance Strategies
Using Optimized Libraries
Eliminating Performance Inhibitors
Further Reading

10.  SPARC: Parallelization

Essential Concepts
Speedups--What to Expect
Steps to Parallelizing a Program
Data Dependency Issues
Parallel Options and Directives Summary
Number of Threads
Stacks, Stack Sizes, and Parallelization
Automatic Parallelization
Loop Parallelization
Arrays, Scalars, and Pure Scalars
Automatic Parallelization Criteria
Automatic Parallelization With Reduction Operations
Explicit Parallelization
Parallelizable Loops
Sun-Style Parallelization Directives
Cray-Style Parallelization Directives
Environment Variables
Debugging Parallelized Programs
First Steps at Debugging
Debugging Parallel Code With dbx

11.  C-Fortran Interface

Compatibility Issues
Function or Subroutine?
Data Type Compatibility
Case Sensitivity
Underscores in Routine Names
Argument-Passing by Reference or Value
Argument Order
Array Indexing and Order
File Descriptors and stdio
File Permissions
Libraries and Linking With the f77 or f95 Command
Fortran Initialization Routines
Passing Data Arguments by Reference
Simple Data Types
Character Strings
One-Dimensional Arrays
Two-Dimensional Arrays
Passing Data Arguments by Value
Functions That Return a Value
Returning a Simple Data Type
Returning COMPLEX Data
Returning a CHARACTER String
Labeled COMMON
Sharing I/O Between Fortran and C
Alternate Returns


Sun Microsystems, Inc.
Copyright information. All rights reserved.
Library   |   Contents   |   Previous   |   Next   |   Index