using gnu fortran using gnu fortran for gcc version 9.2.0 (gcc) the gfortran team

Download Using GNU Fortran Using GNU Fortran For gcc version 9.2.0 (GCC) The gfortran team

Post on 14-Oct-2019

6 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

  • Using GNU Fortran For gcc version 9.2.0

    (GCC)

    The gfortran team

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

    Copyright c© 1999-2019 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.3 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 FSF’s Front-Cover Text is: A GNU Manual (b) The FSF’s 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 Contents

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

    Invoking GNU Fortran

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

    variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

    Language Reference

    4 Fortran standards status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 5 Compiler Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 6 Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 7 Mixed-Language Programming . . . . . . . . . . . . . . . . . . . . . . . . . 73 8 Coarray Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 9 Intrinsic Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 10 Intrinsic Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287

    Contributing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 GNU General Public License . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297 GNU Free Documentation License . . . . . . . . . . . . . . . . . . . . . . . . . 309 Funding Free Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 Option Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319 Keyword Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321

  • iii

    Table of Contents

    1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1 About GNU Fortran . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 GNU Fortran and GCC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3 Preprocessing and conditional compilation . . . . . . . . . . . . . . . . . . . . . . 2 1.4 GNU Fortran and G77 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.5 Project Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.6 Standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

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

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

    2 GNU Fortran Command Options . . . . . . . . . . . . . 7 2.1 Option summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2 Options controlling Fortran dialect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.3 Enable and customize preprocessing . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.4 Options to request or suppress errors and warnings . . . . . . . . . . . . 15 2.5 Options for debugging your program or GNU Fortran . . . . . . . . . . 20 2.6 Options for directory search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.7 Influencing the linking step . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.8 Influencing runtime behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.9 Options for code generation conventions . . . . . . . . . . . . . . . . . . . . . . . 23 2.10 Options for interoperability with other languages . . . . . . . . . . . . . 30 2.11 Environment variables affecting gfortran . . . . . . . . . . . . . . . . . . . . 31

    3 Runtime: Influencing runtime behavior with environment variables . . . . . . . . . . . . . . . . . . . . . . . . 33

    3.1 TMPDIR—Directory for scratch files . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.2 GFORTRAN_STDIN_UNIT—Unit number for standard input . . . . . . 33 3.3 GFORTRAN_STDOUT_UNIT—Unit number for standard output . . . . 33 3.4 GFORTRAN_STDERR_UNIT—Unit number for standard error . . . . . . 33 3.5 GFORTRAN_UNBUFFERED_ALL—Do not buffer I/O on all units . . . . 33 3.6 GFORTRAN_UNBUFFERED_PRECONNECTED—Do not buffer I/O on

    preconnected units . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.7 GFORTRAN_SHOW_LOCUS—Show location for runtime errors . . . . . . 33 3.8 GFORTRAN_OPTIONAL_PLUS—Print leading + where permitted . . 34 3.9 GFORTRAN_LIST_SEPARATOR—Separator for list output . . . . . . . . . 34 3.10 GFORTRAN_CONVERT_UNIT—Set endianness for unformatted I/O

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 3.11 GFORTRAN_ERROR_BACKTRACE—Show backtrace on run-time errors

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 3.12 GFORTRAN_FORMATTED_BUFFER_SIZE—Set buffer size for

    formatted I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

  • iv The GNU Fortran Compiler

    3.13 GFORTRAN_UNFORMATTED_BUFFER_SIZE—Set buffer size for unformatted I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

    Part II: Language Reference . . . . . . . . . . . . . . . . . . . . . 37

    4 Fortran standards status . . . . . . . . . . . . . . . . . . . . . . 39 4.1 Fortran 2003 status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.2 Fortran 2008 status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.3 Status of Fortran 2018 support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

    4.3.1 TS 29113 Status (Further Interoperability with C) . . . . . . . . 42 4.3.2 TS 18508 Status (Additional Parallel Features) . . . . . . . . . . . 43

    5 Compiler Characteristics . . . . . . . . . . . . . . . . . . . . . 45 5.1 KIND Type Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 5.2 Internal representation of LOGICAL variables . . . . . . . . . . . . . . . . . 45 5.3 Evaluation of logical expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 5.4 MAX and MIN intrinsics with REAL NaN arguments . . . . . . . . . 46 5.5 Thread-safety of the runtime library . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 5.6 Data consistency and durability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 5.7 Files opened without an explicit ACTION= specifier . . . . . . . . . . 48 5.8 File operations on symbolic links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 5.9 File format of unformatted sequential files . . . . . . . . . . . . . . . . . . . . . 48 5.10 Asynchronous I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

    6 Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 6.1 Extensions implemented in GNU Fortran . . . . . . . . . . . . . . . . . . . . . . 51

    6.1.1 Old-style kind specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 6.1.2 Old-style variable initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 6.1.3 Extensions to namelist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 6.1.4 X format descriptor without count field . . . . . . . . . . . . . . . . . . . 53 6.1.5 Commas in FORMAT specifications . . . . . . . . . . . . . . . . . . . . . . . . . 53 6.1.6 Missing period in FORMAT specifications . . . . . . . . . . . . . . . . . . . 53 6.1.7 I/O item lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 6.1.8 Q exponent-letter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 6.1.9 BOZ literal constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 6.1.10 Real array indices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 6.1.11 Unary operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 6.1.12 Implicitly convert LOGICAL and INTEGER values . . . . . . . . . . 54 6.1.13 Hollerith constants support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 6.1.14 Cray pointers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 6.1.15 CONVERT specifier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 6.1.16 OpenMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Recommended

View more >