About This Guide

This manual describes the Fortran language as implemented by the MIPSpro Fortran 90 compiler. This compiler implements the Fortran standard.

The compiler was developed to support the Fortran standard adopted by the American National Standards Institute (ANSI) and the International Standards Organization (ISO). This standard, commonly referred to in this manual as the Fortran standard, is ISO/IEC 1539-1:1997. Because the Fortran standard is, generally, a superset of previous standards, the compiler will compile code written to previous standards.

Note: The Fortran 95 standard is a revision to the Fortran 90 standard. The standards organizations continue to interpret the Fortran standard for vendors. To maintain conformance to the Fortran standard, SGI may need to change the behavior of certain compiler features in future releases based upon the outcomes of interpretations to the standard.

1. Related Compiler Publications

This manual is one of a set of manuals that describes the compiler. The complete set of manuals is as follows:

  • MIPSpro Fortran Language Reference Manual, Volume 1. Chapters 1 through 8 correspond to sections 1 through 8 of the Fortran standard.

  • MIPSpro Fortran Language Reference Manual, Volume 2. Chapters 1 through 6 of this manual correspond to sections 9 through 14 of the Fortran standard.

  • MIPSpro Fortran Language Reference Manual, Volume 3. This manual contains compiler information that supplements the Fortran standard. The standard is the complete, official description of the language. This manual also contains the complete Fortran syntax in Backus-Naur form (BNF).

2. Compiler Messages

You can obtain compiler message explanations by using the online explain(1) command.

3. Compiler Man Pages

In addition to printed and online prose documentation, several online man pages describe aspects of the compiler. Man pages exist for the library routines, the intrinsic procedures, and several programming environment tools.

You can print copies of online man pages by using the pipe symbol with the man(1), col(1), and lpr(1) commands. In the following example, these commands are used to print a copy of the explain (1) man page:

% man explain | col -b | lpr

Each man page includes a general description of one or more commands, routines, system calls, or other topics, and provides details of their usage (command syntax, routine parameters, system call arguments, and so on). If more than one topic appears on a page, the entry in the printed manual is alphabetized under its primary name; online, secondary entry names are linked to these primary names. For example, egrep is a secondary entry on the page with a primary entry name of grep. To access egrep online, you can type man grep or man egrep. Both commands display the grep man page to your terminal.

4. Related Fortran Publications

The following commercially available reference books are among those that you can consult for more information on the history of Fortran and the Fortran language itself:

  • Adams, J. C., W. S. Brainerd, J. T. Martin, B. T. Smith, and J. L. Wagener. Fortran 95 Handbook : Complete ISO/ANSI Reference . MIT Press, 1997. ISBN 0262510960.

  • Chapman, S. Fortran 90/95 for Scientists and Engineers . McGraw Hill Text, 1998. ISBN 0070119384.

  • Chapman, S. Introduction to Fortran 90/95. McGraw Hill Text, 1998. ISBN 0070119694.

  • Counihan, M. Fortran 95 : Including Fortran 90, Details of High Performance Fortran (HPF), and the Fortran Module for Variable-Length Character Strings. UCL Press, 1997. ISBN 1857283678.

  • Gehrke, W. Fortran 95 Language Guide. Springer Verlag, 1996. ISBN 3540760628.

  • International Standards Organization. ISO/IEC 1539-1:1997, Information technology -- Programming languages -- Fortran. 1997.

  • Metcalf, M. and J. Reid. Fortran 90/95 Explained . Oxford University Press, 1996. ISBN 0198518889.

5. Obtaining Publications

To order a document, call +1 651 683 5907. SGI employees may send e-mail to [email protected].

Customers outside of the United States and Canada should contact their local service organization for ordering and documentation information.

6. Conventions

The following conventions are used throughout this document:




This fixed-space font denotes literal items such as commands, files, routines, path names, signals, messages, and programming language structures.


Italic typeface denotes variable entries and words or concepts being defined.

user input 

This bold, fixed-space font denotes literal items that the user enters in interactive sessions. Output is shown in nonbold, fixed-space font.

[ ] 

Brackets enclose optional portions of a command or directive line.


Ellipses indicate that a preceding element can be repeated.


The DEL or DELETED notation indicates that the feature being described has been deleted from the Fortran standard. The MIPSpro Fortran 90 compiler supports these features, but the compiler issues a message when a deleted feature is encountered.


The EXT or EXTENSION notation indicates that the feature being described is an extension to the Fortran standard. The compiler issues a message when extensions are encountered.


The OBS or OBSOLESCENT notation indicates that the feature being described is considered to be obsolete in the Fortran standard. The compiler supports these features, but the compiler issues a message when an obsolescent feature is encountered.


When _list is part of a syntax description, it means that several items may be specified. For example, xyz_list can be expanded to mean xyz [ , xyz] ....


When scalar_ is the first item in a syntax description, it indicates that the item is a scalar, not an array, value.


When _name is part of a syntax definition, it indicates that the item is a name with no qualification. For example, the item must not have a subscript list, so ARRAY is a name, but ARRAY(I) is not.


Indicates that the Fortran 90 standard has rules regarding the characteristic of the language being discussed. All rules are numbered, and the numbered list appears in the MIPSpro Fortran Language Reference Manual, Volume 3. The numbering of the rules in the MIPSpro Fortran Language Reference Manual, Volume 3 matches the numbering of the rules in the standard. The forms of the rules in the MIPSpro Fortran Language Reference Manual, Volume 3 and the BNF syntax class terms that are used may differ from the rules and terms used in the standard.


The term POINTER refers to the Fortran POINTER attribute.

Cray pointer 

The term Cray pointer refers to the Cray pointer data type extension.

Fortran, Fortran standard 

These terms refer to the current Fortran standard, which is the Fortran 95 standard. For situations when it might otherwise be confusing, a specific standard is mentioned along with its numeric identifier (FORTRAN 77, Fortran 90, Fortran 95).

7. BNF Conventions

This section describes some of the commonly used Backus-Naur Form (BNF) conventions.

Terms such as goto_stmt are called variable entries, nonterminal symbols, or simply, nonterminals. The metalanguage term goto_stmt, for example, represents the GO TO statement, as follows:



GOTO label

The syntax rule defines goto_stmt to be GO TO label, which describes the format of the GO TO statement. The description of the GO TO statement is incomplete until the definition of label is given. label is also a nonterminal symbol. A further search for label will result in a specification of label and thereby provide the complete statement definition. A terminal part of a syntax rule is one that does not need further definition. For example, GO TO is a terminal keyword and is a required part of the statement form. The complete BNF list appears in the MIPSpro Fortran Language Reference Manual, Volume 3.

The following abbreviations are commonly used in naming nonterminal keywords:






















specifier or specification



The term is separates the syntax class name from its definition. The term or indicates an alternative definition for the syntactic class being defined. The following example shows that add_op, the add operator, may be either a plus sign (+) or a minus sign (-):






Indentation indicates syntax continuation. If a rule does not fit on one line, the second line is indented. This is shown in the following example:




DIMENSION [ :: ] array_name (array_spec)
 [, array_name (array_spec)] ...

8. Reader Comments

If you have comments about the technical accuracy, content, or organization of this document, please tell us. Be sure to include the title and document number of the manual with your comments. (Online, the document number is located in the front matter of the manual. In printed manuals, the document number is located at the bottom of each page.)

You can contact us in any of the following ways:

  • Send e-mail to the following address:

    [email protected]

  • Use the Feedback option on the Technical Publications Library World Wide Web page:


  • Contact your customer service representative and ask that an incident be filed in the SGI incident tracking system.

  • Send mail to the following address:

    Technical Publications
    1600 Amphitheatre Pkwy., M/S 535
    Mountain View, California 94043-1351

  • Send a fax to the attention of “Technical Publications” at +1 650 932 0801.

We value your comments and will respond to them promptly.