Introduction

This guide describes the features of MIPSpro Power Fortran 77. For details about analyzing a program and converting the output for use on a multiprocessor system, refer to Chapter 7, “Fortran Enhancements for Multiprocessors,” of the MIPSpro Fortran 77 Programmer's Guide.

Organization of Information

This guide contains the following chapters and appendixes:

Chapter 1, “Overview of Power Fortran,” explains the basic mechanism for invoking Power Fortran and includes a description of Power Fortran's output files.

Chapter 2, “How to Use Power Fortran,” explains how to use Power Fortran.

Chapter 3, “Utilizing Power Fortran Output,” explains output produced by Power Fortran: the transformed source file, listing file, and WorkShop Pro MPF input file.

Chapter 4, “Customizing Power Fortran Execution,”describes how to use command-line options to optimize Power Fortran execution.

Chapter 5, “Scalar Optimizations,” describes the scalar optimizations that you can enable from the command line.

Chapter 6, “Inlining and Interprocedural Analysis,” explains how to perform inlining and interprocedural analysis by specifying options to the compiler.

Chapter 7, “Fine-Tuning Power Fortran,” describes how to optimize code by using Power Fortran directives and assertions.

Appendix A, “Power Fortran Command-Line Options,” lists and describes the command-line options unique to Power Fortran.

Appendix B, “Power Fortran Directives,” lists the Power Fortran directives you can use to modify the features of Power Fortran, that is, directives to increase the optimization level, increase the size of the loop that Power Fortran can analyze, or use more sophisticated (and time-consuming) ways of resolving superficial data dependencies that prevent Power Fortran from identifying a loop for parallel execution.

Appendix C, “Power Fortran Assertions,” lists the Power Fortran assertions you can include in a program to provide information that Power Fortran needs to identify loops that can run in parallel, despite apparent but sometimes non-existent data dependencies.

The Glossary lists and defines terminology related to Power Fortran.

Additional Reading

Refer to the MIPSpro Fortran 77 Programmer's Guide for information on the following topics:

  • how to compile and link a Fortran program

  • alignments, sizes, and variable ranges for the various data types

  • the coding interface between Fortran programs and programs written in C

  • file formats, run-time error handling, and other information related to the IRIX operating system

  • operating system functions and subroutines callable by Fortran programs

  • scalar optimizations that can be controlled through command-line options and compiler directives

  • Fortran directives for multiprocessing

  • run-time error messages

Refer to the MIPSpro Fortran 77 Language Reference Manual for a description of the Fortran language as implemented on Silicon Graphics® workstations and servers.

Refer to the MIPSpro Compiling and Performance Tuning Guide for information on:

  • an overview of the MIPSpro compiler system and general compiler system command-line options

  • optimizing program performance

  • using the performance tools, prof and pixie, of the compiler system

  • using dynamic shared objects (DSOs)

  • using the debugger, dbx

  • the dump utilities, archiver, and other tools for maintaining Fortran programs

  • writing and updating code that is portable to 64-bit systems

Refer to the Developer Magic: WorkShop Pro MPF User's Guide for information about using WorkShop Pro MPF, a graphical tool to help you better understand the structure and parallelization of multiprocessing applications.

Refer to the MIPSpro 64-Bit Porting and Transition Guide for information on:

  • an overview of the MIPSpro compiler system

  • language implementation differences

  • porting source code to the 64-bit system

  • compilation and run-time issues

  • performance tuning

Typographical Conventions

This guide uses the following conventions and symbols:

Bold 

Indicates literal command-line options, filenames, keywords, function/subroutine names, pathnames, and directory names.

Italics 

Represents user-defined values. Replace the item in italics with a legal value. Italics are also used for command names and manual titles.

Courier 

Indicates command syntax, program listings, computer output, and error messages.

Courier bold 

Indicates user input.

[ ] 

Enclose optional command arguments.

( ) 

Surround arguments or are empty if the function has no arguments following function/subroutine names. Surround reference page section in which the command is described following IRIX commands.

{ } 

Enclose two or more items from which you must specify exactly one.

| 

Separates two or more optional items.

... 

Indicates that the preceding optional items can appear more than once in succession.

#  

IRIX shell prompt for the superuser.

% 

IRIX shell prompt for users other than the superuser.

Here is an example illustrating the syntax conventions.

C*$*[NO]IPA [(name [,name...])]  {HERE|ROUTINE|GLOBAL}

The previous syntax statement indicates that:

  • the keyword C*$* NO IPA or C*$* IPA must be written as shown

  • you can specify one or more name, each separated by a comma and all between parentheses

  • you must specify one of the following: HERE, ROUTINE, or GLOBAL

The following statements are valid examples of the described syntax:

C*$* IPA(ALPHA,BETA) HERE
C*$* NOIPA GLOBAL