gnu fortran

Download GNU Fortran

Post on 27-Oct-2014

531 views

Category:

Documents

1 download

Embed Size (px)

TRANSCRIPT

Using GNU FortranFor gcc version 4.5.0 (pre-release) (GCC)

The gfortran team

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

Copyright c 1999-2008 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 6

Compiler Characteristics . . . . . . . . . . . . . . . . . . . . . 335.1 KIND Type Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

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

7

Mixed-Language Programming . . . . . . . . . . . . . . . 477.1 Interoperability with C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1.1 Intrinsic Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1.2 Derived Types and struct. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1.3 Interoperable Global Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1.4 Interoperable Subroutines and Functions . . . . . . . . . . . . . . . . . . 7.1.5 Further Interoperability of Fortran with C . . . . . . . . . . . . . . . . 7.2 GNU Fortran Compiler Directives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.3 Non-Fortran Main Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.3.1 _gfortran_set_args Save command-line arguments . . . 7.3.2 _gfortran_set_options Set library option flags. . . . . . . 47

Recommended

View more >