using gnu fortran

Download Using GNU Fortran

Post on 11-Feb-2017

217 views

Category:

Documents

1 download

Embed Size (px)

TRANSCRIPT

  • Using GNU FortranFor gcc version 8.0.1 (pre-release)

    (GCC)

    The gfortran team

  • Published by the Free Software Foundation51 Franklin Street, Fifth FloorBoston, MA 02110-1301, USA

    Copyright c 1999-2018 Free Software Foundation, Inc.Permission is granted to copy, distribute and/or modify this document under the terms ofthe GNU Free Documentation License, Version 1.3 or any later version published by theFree Software Foundation; with the Invariant Sections being Funding Free Software, theFront-Cover Texts being (a) (see below), and with the Back-Cover Texts being (b) (seebelow). A copy of the license is included in the section entitled GNU Free DocumentationLicense.(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. Copiespublished by the Free Software Foundation raise funds for GNU development.

  • i

    Short Contents

    1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

    Invoking GNU Fortran

    2 GNU Fortran Command Options . . . . . . . . . . . . . . . . . . . . . . . . 73 Runtime: Influencing runtime behavior with environment

    variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

    Language Reference

    4 Fortran standards status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375 Compiler Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436 Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477 Mixed-Language Programming . . . . . . . . . . . . . . . . . . . . . . . . . 678 Coarray Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 819 Intrinsic Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10510 Intrinsic Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277

    Contributing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283GNU General Public License . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287GNU Free Documentation License . . . . . . . . . . . . . . . . . . . . . . . . . 299Funding Free Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307Option Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309Keyword Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311

  • iii

    Table of Contents

    1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.1 About GNU Fortran . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 GNU Fortran and GCC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3 Preprocessing and conditional compilation . . . . . . . . . . . . . . . . . . . . . . 21.4 GNU Fortran and G77 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.5 Project Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.6 Standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

    1.6.1 Varying Length Character Strings . . . . . . . . . . . . . . . . . . . . . . . . . 4

    Part I: Invoking GNU Fortran . . . . . . . . . . . . . . . . . . . . 5

    2 GNU Fortran Command Options . . . . . . . . . . . . . 72.1 Option summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.2 Options controlling Fortran dialect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.3 Enable and customize preprocessing . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.4 Options to request or suppress errors and warnings . . . . . . . . . . . . 152.5 Options for debugging your program or GNU Fortran . . . . . . . . . . 202.6 Options for directory search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.7 Influencing the linking step . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222.8 Influencing runtime behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222.9 Options for code generation conventions . . . . . . . . . . . . . . . . . . . . . . . 222.10 Options for interoperability with other languages . . . . . . . . . . . . . 292.11 Environment variables affecting gfortran . . . . . . . . . . . . . . . . . . . . 29

    3 Runtime: Influencing runtime behavior withenvironment variables . . . . . . . . . . . . . . . . . . . . . . . . 31

    3.1 TMPDIRDirectory for scratch files . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313.2 GFORTRAN_STDIN_UNITUnit number for standard input . . . . . . 313.3 GFORTRAN_STDOUT_UNITUnit number for standard output . . . . 313.4 GFORTRAN_STDERR_UNITUnit number for standard error . . . . . . 313.5 GFORTRAN_UNBUFFERED_ALLDo not buffer I/O on all units . . . . 313.6 GFORTRAN_UNBUFFERED_PRECONNECTEDDo not buffer I/O on

    preconnected units . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313.7 GFORTRAN_SHOW_LOCUSShow location for runtime errors . . . . . . 313.8 GFORTRAN_OPTIONAL_PLUSPrint leading + where permitted . . 323.9 GFORTRAN_LIST_SEPARATORSeparator for list output . . . . . . . . . 323.10 GFORTRAN_CONVERT_UNITSet endianness for unformatted I/O

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323.11 GFORTRAN_ERROR_BACKTRACEShow backtrace on run-time errors

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

    Part II: Language Reference . . . . . . . . . . . . . . . . . . . . . 35

  • iv The GNU Fortran Compiler

    4 Fortran standards status . . . . . . . . . . . . . . . . . . . . . . 374.1 Fortran 2003 status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374.2 Fortran 2008 status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384.3 Technical Specification 29113 Status . . . . . . . . . . . . . . . . . . . . . . . . . . . 404.4 Technical Specification 18508 Status . . . . . . . . . . . . . . . . . . . . . . . . . . . 404.5 Status of Fortran 2018 support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

    5 Compiler Characteristics . . . . . . . . . . . . . . . . . . . . . 435.1 KIND Type Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435.2 Internal representation of LOGICAL variables . . . . . . . . . . . . . . . . . 435.3 Thread-safety of the runtime library . . . . . . . . . . . . . . . . . . . . . . . . . . . 445.4 Data consistency and durability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445.5 Files opened without an explicit ACTION= specifier . . . . . . . . . . 455.6 File operations on symbolic links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455.7 File format of unformatted sequential files . . . . . . . . . . . . . . . . . . . . . 46

    6 Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476.1 Extensions implemented in GNU Fortran . . . . . . . . . . . . . . . . . . . . . . 47

    6.1.1 Old-style kind specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476.1.2 Old-style variable initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . 476.1.3 Extensions to namelist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486.1.4 X format descriptor without count field . . . . . . . . . . . . . . . . . . . 496.1.5 Commas in FORMAT specifications . . . . . . . . . . . . . . . . . . . . . . . . . 496.1.6 Missing period in FORMAT specifications . . . . . . . . . . . . . . . . . . . 496.1.7 I/O item lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496.1.8 Q exponent-letter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496.1.9 BOZ literal constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496.1.10 Real array indices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506.1.11 Unary operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506.1.12 Implicitly convert LOGICAL and INTEGER values . . . . . . . . . . 506.1.13 Hollerith constants support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516.1.14 Cray pointers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516.1.15 CONVERT specifier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536.1.16 OpenMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546.1.17 OpenACC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546.1.18 Argument list functions %VAL, %REF and %LOC . . . . . . . . . . . . 556.1.19 Read/Write after EOF marker . . . . . . . . . . . . . . . . . . . . . . . . . . 556.1.20 STRUCTURE and RECORD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556.1.21 UNION and MAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 586.1.22 Type variants for integer intrinsics . . . . . . . . . . . . . . . . . . . . . . . 606.1.23 AUTOMATIC and STATIC attributes . . . . . . . . . . . . . . . . . . . . . . . 616.1.24 Extended math intrinsics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 626.1.25 Form feed as whitespace . . . . . . . . . . . . . . . .

View more >