GCC 4.5.3 GNU Fortran Manual

Embed Size (px)

Text of GCC 4.5.3 GNU Fortran Manual

Using GNU FortranFor gcc version 4.5.3 (GCC)

The gfortran team

Published by the Free Software Foundation 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA

Copyright c 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with the Invariant Sections being Funding Free Software, the Front-Cover Texts being (a) (see below), and with the Back-Cover Texts being (b) (see below). A copy of the license is included in the section entitled GNU Free Documentation License. (a) The FSFs Front-Cover Text is: A GNU Manual (b) The FSFs Back-Cover Text is: You have freedom to copy and modify this GNU Manual, like GNU software. Copies published by the Free Software Foundation raise funds for GNU development.

i

Short Contents1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Part I: Invoking GNU Fortran . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2 GNU Fortran Command Options . . . . . . . . . . . . . . . . . . . . . . . . 7 3 Runtime: Influencing runtime behavior with environment variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Part II: Language Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 4 Fortran 2003 and 2008 Status . . . . . . . . . . . . . . . . . . . . . . . . . . 31 5 Compiler Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 6 Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 7 Mixed-Language Programming . . . . . . . . . . . . . . . . . . . . . . . . . 47 8 Intrinsic Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 9 Intrinsic Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 Contributing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GNU General Public License . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GNU Free Documentation License . . . . . . . . . . . . . . . . . . . . . . . . . Funding Free Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Option Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Keyword Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 193 205 213 215 217

iii

Table of Contents1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.1 1.2 1.3 1.4 1.5 1.6 About GNU Fortran . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GNU Fortran and GCC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Preprocessing and conditional compilation . . . . . . . . . . . . . . . . . . . . . . GNU Fortran and G77 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Project Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.6.1 Varying Length Character Strings . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 2 3 3 4 4

Part I: Invoking GNU Fortran . . . . . . . . . . . . . . . . . . . . 5 2 GNU Fortran Command Options . . . . . . . . . . . . . 72.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 Option summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Options controlling Fortran dialect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Enable and customize preprocessing . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Options to request or suppress errors and warnings . . . . . . . . . . . . 13 Options for debugging your program or GNU Fortran . . . . . . . . . . 16 Options for directory search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Influencing the linking step . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Influencing runtime behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Options for code generation conventions . . . . . . . . . . . . . . . . . . . . . . . 18 Environment variables affecting gfortran . . . . . . . . . . . . . . . . . . . . 23

3

Runtime: Influencing runtime behavior with environment variables. . . . . . . . . . . . . . . . . . . . . . . . 253.1 3.2 3.3 3.4 GFORTRAN_STDIN_UNITUnit number for standard input . . . . . . 25 GFORTRAN_STDOUT_UNITUnit number for standard output . . . . 25 GFORTRAN_STDERR_UNITUnit number for standard error . . . . . . 25 GFORTRAN_USE_STDERRSend library output to standard error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.5 GFORTRAN_TMPDIRDirectory for scratch files . . . . . . . . . . . . . . . . . . 25 3.6 GFORTRAN_UNBUFFERED_ALLDont buffer I/O on all units . . . . . 25 3.7 GFORTRAN_UNBUFFERED_PRECONNECTEDDont buffer I/O on preconnected units . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.8 GFORTRAN_SHOW_LOCUSShow location for runtime errors . . . . . . 25 3.9 GFORTRAN_OPTIONAL_PLUSPrint leading + where permitted . . 26 3.10 GFORTRAN_DEFAULT_RECLDefault record length for new files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.11 GFORTRAN_LIST_SEPARATORSeparator for list output . . . . . . . . 26 3.12 GFORTRAN_CONVERT_UNITSet endianness for unformatted I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.13 GFORTRAN_ERROR_DUMPCOREDump core on run-time errors . . 27

iv

The GNU Fortran Compiler 3.14 GFORTRAN_ERROR_BACKTRACEShow backtrace on run-time errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

Part II: Language Reference . . . . . . . . . . . . . . . . . . . . . 29 4 Fortran 2003 and 2008 Status . . . . . . . . . . . . . . . . 314.1 4.2 Fortran 2003 status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Fortran 2008 status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

5

Compiler Characteristics . . . . . . . . . . . . . . . . . . . . . 335.1 5.2 KIND Type Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Internal representation of LOGICAL variables . . . . . . . . . . . . . . . . . 33

6

Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356.1 Extensions implemented in GNU Fortran . . . . . . . . . . . . . . . . . . . . . . 6.1.1 Old-style kind specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.2 Old-style variable initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.3 Extensions to namelist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.4 X format descriptor without count field . . . . . . . . . . . . . . . . . . . 6.1.5 Commas in FORMAT specifications . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.6 Missing period in FORMAT specifications . . . . . . . . . . . . . . . . . . . 6.1.7 I/O item lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.8 BOZ literal constants. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.9 Real array indices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.10 Unary operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.11 Implicitly convert LOGICAL and INTEGER values . . . . . . . . . . 6.1.12 Hollerith constants support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.13 Cray pointers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.14 CONVERT specifier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.15 OpenMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.16 Argument list functions %VAL, %REF and %LOC . . . . . . . . . . . . 6.2 Extensions not implemented in GNU Fortran . . . . . . . . . . . . . . . . . . 6.2.1 STRUCTURE and RECORD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2.2 ENCODE and DECODE statements . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2.3 Variable FORMAT expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 35 35 36 37 37 37 37 37 38 38 38 38 39 41 41 42 42 43 44 44

v

7

Mixed-Language Programming . . . . . . . . . . . . . . . 477.1 Interoperability with C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 7.1.1 Intrinsic Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 7.1.2 Derived Types and struct. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 7.1.3 Interoperable Global Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 7.1.4 Interoperable Subroutines and Functions . . . . . . . . . . . . . . . . . . 48 7.1.5 Further Interoperability of Fortran with C . . . . . . . . . . . . . . . . 50 7.2 GNU Fortran Compiler Directives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 7.3 Non-Fortran Main Program . . . . . . . . . . . . . .

Recommended

View more >