Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(137)

Unified Diff: gcc/gcc/fortran/gfortran.info

Issue 3050029: [gcc] GCC 4.5.0=>4.5.1 (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/nacl-toolchain.git
Patch Set: Created 10 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « gcc/gcc/fortran/gfortran.h ('k') | gcc/gcc/fortran/intrinsic.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: gcc/gcc/fortran/gfortran.info
diff --git a/gcc/gcc/fortran/gfortran.info b/gcc/gcc/fortran/gfortran.info
index 7044181e6b5c33282d740c79da5a77d80640c82f..ce0653b69d2eb2eee201873663e0755ab05e31f7 100644
--- a/gcc/gcc/fortran/gfortran.info
+++ b/gcc/gcc/fortran/gfortran.info
@@ -1,7 +1,8 @@
-This is doc/gfortran.info, produced by makeinfo version 4.13 from
-/d/gcc-4.4.3/gcc-4.4.3/gcc/fortran/gfortran.texi.
+This is doc/gfortran.info, produced by makeinfo version 4.12 from
+/space/rguenther/gcc-4.5.1/gcc-4.5.1/gcc/fortran/gfortran.texi.
-Copyright (C) 1999-2008 Free Software Foundation, Inc.
+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
@@ -31,7 +32,8 @@ compiler, (`gfortran').
Published by the Free Software Foundation 51 Franklin Street, Fifth
Floor Boston, MA 02110-1301 USA
- Copyright (C) 1999-2008 Free Software Foundation, Inc.
+ 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
@@ -71,7 +73,8 @@ Part I: Invoking GNU Fortran
Part II: Language Reference
* Fortran 2003 and 2008 status:: Fortran 2003 and 2008 features supported by GNU Fortran.
-* Compiler Characteristics:: KIND type parameters supported.
+* Compiler Characteristics:: User-visible implementation details.
+* Mixed-Language Programming:: Interoperability with C
* Extensions:: Language extensions implemented by GNU Fortran.
* Intrinsic Procedures:: Intrinsic procedures supported by GNU Fortran.
* Intrinsic Modules:: Intrinsic modules supported by GNU Fortran.
@@ -110,12 +113,10 @@ File: gfortran.info, Node: About GNU Fortran, Next: GNU Fortran and GCC, Up:
1.1 About GNU Fortran
=====================
-The GNU Fortran compiler is still in an early state of development. It
-can generate code for most constructs and expressions, but much work
-remains to be done.
-
- When the GNU Fortran compiler is finished, it will do everything you
-expect from any decent compiler:
+The GNU Fortran compiler supports the Fortran 77, 90 and 95 standards
+completely, parts of the Fortran 2003 and Fortran 2008 standards, and
+several vendor extensions. The development goal is to provide the
+following features:
* Read a user's program, stored in a file and containing
instructions written in Fortran 77, Fortran 90, Fortran 95,
@@ -321,7 +322,8 @@ a few minor known regressions.
categories: bug fixing (primarily regarding the treatment of invalid
code and providing useful error messages), improving the compiler
optimizations and the performance of compiled code, and extending the
-compiler to support future standards--in particular, Fortran 2003.
+compiler to support future standards--in particular, Fortran 2003 and
+Fortran 2008.

File: gfortran.info, Node: Standards, Prev: Project Status, Up: Introduction
@@ -329,9 +331,13 @@ File: gfortran.info, Node: Standards, Prev: Project Status, Up: Introduction
1.6 Standards
=============
-The GNU Fortran compiler implements ISO/IEC 1539:1997 (Fortran 95). As
-such, it can also compile essentially all standard-compliant Fortran 90
-and Fortran 77 programs. It also supports the ISO/IEC TR-15581
+* Menu:
+
+* Varying Length Character Strings::
+
+ The GNU Fortran compiler implements ISO/IEC 1539:1997 (Fortran 95).
+As such, it can also compile essentially all standard-compliant Fortran
+90 and Fortran 77 programs. It also supports the ISO/IEC TR-15581
enhancements to allocatable arrays, and the OpenMP Application Program
Interface v2.5 (http://www.openmp.org/drupal/mp-documents/spec25.pdf)
specification.
@@ -342,13 +348,30 @@ of that standard is already provided; the current status of Fortran 2003
support is reported in the *note Fortran 2003 status:: section of the
documentation.
- The next version of the Fortran standard after Fortran 2003 is
-currently being developed and the GNU Fortran compiler supports some of
-its new features. This support is based on the latest draft of the
-standard (available from `http://www.nag.co.uk/sc22wg5/') and no
-guarantee of future compatibility is made, as the final standard might
-differ from the draft. For more information, see the *note Fortran 2008
-status:: section.
+ The next version of the Fortran standard (Fortran 2008) is currently
+being developed and the GNU Fortran compiler supports some of its new
+features. This support is based on the latest draft of the standard
+(available from `http://www.nag.co.uk/sc22wg5/') and no guarantee of
+future compatibility is made, as the final standard might differ from
+the draft. For more information, see the *note Fortran 2008 status::
+section.
+
+ Additionally, the GNU Fortran compilers supports the OpenMP
+specification (version 3.0,
+`http://openmp.org/wp/openmp-specifications/').
+
+
+File: gfortran.info, Node: Varying Length Character Strings, Up: Standards
+
+1.6.1 Varying Length Character Strings
+--------------------------------------
+
+The Fortran 95 standard specifies in Part 2 (ISO/IEC 1539-2:2000)
+varying length character strings. While GNU Fortran currently does not
+support such strings directly, there exist two Fortran implementations
+for them, which work with GNU Fortran. They can be found at
+`http://www.fortran.com/iso_varying_string.f95' and at
+`ftp://ftp.nag.co.uk/sc22wg5/ISO_VARYING_STRING/'.

File: gfortran.info, Node: Invoking GNU Fortran, Next: Runtime, Prev: Introduction, Up: Top
@@ -421,9 +444,9 @@ _Error and Warning Options_
-fmax-errors=N
-fsyntax-only -pedantic -pedantic-errors
-Wall -Waliasing -Wampersand -Warray-bounds -Wcharacter-truncation
- -Wconversion -Wimplicit-interface -Wline-truncation -Wintrinsics-std
- -Wsurprising -Wno-tabs -Wunderflow -Wunused-parameter -Wintrinsics-shadow
- -Wno-align-commons
+ -Wconversion -Wimplicit-interface -Wimplicit-procedure -Wline-truncation
+ -Wintrinsics-std -Wsurprising -Wno-tabs -Wunderflow -Wunused-parameter
+ -Wintrinsics-shadow -Wno-align-commons
_Debugging Options_
*Note Options for debugging your program or GNU Fortran: Debugging
@@ -449,13 +472,15 @@ _Runtime Options_
_Code Generation Options_
*Note Options for code generation conventions: Code Gen Options.
-fno-automatic -ff2c -fno-underscoring
- -fsecond-underscore
+ -fwhole-file -fsecond-underscore
-fbounds-check -fcheck-array-temporaries -fmax-array-constructor =N
+ -fcheck=<ALL|ARRAY-TEMPS|BOUNDS|DO|MEM|POINTER|RECURSION>
-fmax-stack-var-size=N
-fpack-derived -frepack-arrays -fshort-enums -fexternal-blas
-fblas-matmul-limit=N -frecursive -finit-local-zero
- -finit-integer=N -finit-real=<ZERO|INF|-INF|NAN>
- -finit-logical=<TRUE|FALSE> -finit-character=N -fno-align-commons
+ -finit-integer=N -finit-real=<ZERO|INF|-INF|NAN|SNAN>
+ -finit-logical=<TRUE|FALSE> -finit-character=N
+ -fno-align-commons -fno-protect-parens
* Menu:
@@ -527,7 +552,10 @@ accepted by the compiler:
`-fdefault-double-8' is given, too.
`-fdollar-ok'
- Allow `$' as a valid character in a symbol name.
+ Allow `$' as a valid non-first character in a symbol name. Symbols
+ that start with `$' are rejected since it is unclear which rules to
+ apply to implicit typing as different vendors implement different
+ rules. Using `$' in `IMPLICIT' statements is also rejected.
`-fbackslash'
Change the interpretation of backslashes in string literals from a
@@ -917,11 +945,15 @@ produced by GNU Fortran:
not check that the declared interfaces are consistent across
program units.
+`-Wimplicit-procedure'
+ Warn if a procedure is called that has neither an explicit
+ interface nor has been declared as `EXTERNAL'.
+
`-Wintrinsics-std'
Warn if `gfortran' finds a procedure named like an intrinsic not
available in the currently selected standard (with `-std') and
treats it as `EXTERNAL' procedure because of this.
- `-fall-intrinsics' can be used to never trigger this behaviour and
+ `-fall-intrinsics' can be used to never trigger this behavior and
always link to the intrinsic regardless of the selected standard.
`-Wsurprising'
@@ -944,6 +976,8 @@ produced by GNU Fortran:
the same type. If `-pedantic' or standard-conforming mode is
enabled, this is an error.
+ * A `CHARACTER' variable is declared with negative length.
+
`-Wtabs'
By default, tabs are accepted as whitespace, but tabs are not
members of the Fortran Character Set. For continuation lines, a
@@ -1132,10 +1166,12 @@ Fortran.
really useful for use by the gfortran testsuite.
`-fsign-zero'
- When writing zero values, show the negative sign if the sign bit
- is set. `fno-sign-zero' does not print the negative sign of zero
- values for compatibility with F77. Default behavior is to show
- the negative sign.
+ When enabled, floating point numbers of value zero with the sign
+ bit set are written as negative number in formatted output and
+ treated as negative in the `SIGN' intrinsic. `fno-sign-zero' does
+ not print the negative sign of zero values and regards zero as
+ positive number in the `SIGN' intrinsic for compatibility with F77.
+ Default behavior is to show the negative sign.

File: gfortran.info, Node: Code Gen Options, Next: Environment Variables, Prev: Runtime Options, Up: Invoking GNU Fortran
@@ -1249,6 +1285,19 @@ the other form by either removing `no-' or adding it.
linker are mangled to prevent accidental linking between
procedures with incompatible interfaces.
+`-fwhole-file'
+ By default, GNU Fortran parses, resolves and translates each
+ procedure in a file separately. Using this option modifies this
+ such that the whole file is parsed and placed in a single
+ front-end tree. During resolution, in addition to all the usual
+ checks and fixups, references to external procedures that are in
+ the same file effect resolution of that procedure, if not already
+ done, and a check of the interfaces. The dependences are resolved
+ by changing the order in which the file is translated into the
+ backend tree. Thus, a procedure that is referenced is translated
+ before the reference and the duplication of backend tree
+ declarations eliminated.
+
`-fsecond-underscore'
By default, GNU Fortran appends an underscore to external names.
If this option is used GNU Fortran appends two underscores to
@@ -1266,27 +1315,60 @@ the other form by either removing `no-' or adding it.
compatibility with `g77' and `f2c', and is implied by use of the
`-ff2c' option.
-`-fbounds-check'
- Enable generation of run-time checks for array subscripts and
- against the declared minimum and maximum values. It also checks
- array indices for assumed and deferred shape arrays against the
- actual allocated bounds and ensures that all string lengths are
- equal for character array constructors without an explicit
- typespec.
+`-fcheck=<KEYWORD>'
+ Enable the generation of run-time checks; the argument shall be a
+ comma-delimited list of the following keywords.
+
+ `all'
+ Enable all run-time test of `-fcheck'.
+
+ `array-temps'
+ Warns at run time when for passing an actual argument a
+ temporary array had to be generated. The information
+ generated by this warning is sometimes useful in
+ optimization, in order to avoid such temporaries.
+
+ Note: The warning is only printed once per location.
- Some checks require that `-fbounds-check' is set for the
- compilation of the main program.
+ `bounds'
+ Enable generation of run-time checks for array subscripts and
+ against the declared minimum and maximum values. It also
+ checks array indices for assumed and deferred shape arrays
+ against the actual allocated bounds and ensures that all
+ string lengths are equal for character array constructors
+ without an explicit typespec.
- Note: In the future this may also include other forms of checking,
- e.g., checking substring references.
+ Some checks require that `-fcheck=bounds' is set for the
+ compilation of the main program.
-`fcheck-array-temporaries'
- Warns at run time when for passing an actual argument a temporary
- array had to be generated. The information generated by this
- warning is sometimes useful in optimization, in order to avoid
- such temporaries.
+ Note: In the future this may also include other forms of
+ checking, e.g., checking substring references.
- Note: The warning is only printed once per location.
+ `do'
+ Enable generation of run-time checks for invalid modification
+ of loop iteration variables.
+
+ `mem'
+ Enable generation of run-time checks for memory allocation.
+ Note: This option does not affect explicit allocations using
+ the `ALLOCATE' statement, which will be always checked.
+
+ `pointer'
+ Enable generation of run-time checks for pointers and
+ allocatables.
+
+ `recursion'
+ Enable generation of run-time checks for recursively called
+ subroutines and functions which are not marked as recursive.
+ See also `-frecursive'. Note: This check does not work for
+ OpenMP programs and is disabled if used together with
+ `-frecursive' and `-fopenmp'.
+
+`-fbounds-check'
+ Deprecated alias for `-fcheck=bounds'.
+
+`-fcheck-array-temporaries'
+ Deprecated alias for `-fcheck=array-temps'.
`-fmax-array-constructor=N'
This option can be used to increase the upper limit permitted in
@@ -1370,7 +1452,7 @@ the other form by either removing `no-' or adding it.
`-finit-integer=N'
-`-finit-real=<ZERO|INF|-INF|NAN>'
+`-finit-real=<ZERO|INF|-INF|NAN|SNAN>'
`-finit-logical=<TRUE|FALSE>'
@@ -1380,8 +1462,8 @@ the other form by either removing `no-' or adding it.
zero, `LOGICAL' variables to false, and `CHARACTER' variables to a
string of null bytes. Finer-grained initialization options are
provided by the `-finit-integer=N',
- `-finit-real=<ZERO|INF|-INF|NAN>' (which also initializes the real
- and imaginary parts of local `COMPLEX' variables),
+ `-finit-real=<ZERO|INF|-INF|NAN|SNAN>' (which also initializes the
+ real and imaginary parts of local `COMPLEX' variables),
`-finit-logical=<TRUE|FALSE>', and `-finit-character=N' (where N
is an ASCII character value) options. These options do not
initialize components of derived type variables, nor do they
@@ -1389,7 +1471,10 @@ the other form by either removing `no-' or adding it.
(This limitation may be removed in future releases).
Note that the `-finit-real=nan' option initializes `REAL' and
- `COMPLEX' variables with a quiet NaN.
+ `COMPLEX' variables with a quiet NaN. For a signalling NaN use
+ `-finit-real=snan'; note, however, that compile-time optimizations
+ may convert them into quiet NaN and that trapping needs to be
+ enabled (e.g. via `-ffpe-trap').
`-falign-commons'
By default, `gfortran' enforces proper alignment of all variables
@@ -1402,6 +1487,14 @@ the other form by either removing `no-' or adding it.
potential alignment issues in COMMON blocks, it is recommended to
order objects from largests to smallest.
+`-fno-protect-parens'
+ By default the parentheses in expression are honored for all
+ optimization levels such that the compiler does not do any
+ re-association. Using `-fno-protect-parens' allows the compiler to
+ reorder REAL and COMPLEX expressions to produce faster code. Note
+ that for the re-association optimization `-fno-signed-zeros' and
+ `-fno-trapping-math' need to be in effect.
+
*Note Options for Code Generation Conventions: (gcc)Code Gen
Options, for information on more options offered by the GBE shared by
`gfortran', `gcc', and other GNU compilers.
@@ -1676,15 +1769,17 @@ File: gfortran.info, Node: Fortran 2003 status, Next: Fortran 2008 status, Up
4.1 Fortran 2003 status
=======================
-Although GNU Fortran focuses on implementing the Fortran 95 standard
-for the time being, a few Fortran 2003 features are currently available.
+GNU Fortran supports several Fortran 2003 features; an incomplete list
+can be found below. See also the wiki page
+(http://gcc.gnu.org/wiki/Fortran2003) about Fortran 2003.
* Intrinsics `command_argument_count', `get_command',
`get_command_argument', `get_environment_variable', and
`move_alloc'.
* Array constructors using square brackets. That is, `[...]' rather
- than `(/.../)'.
+ than `(/.../)'. Type-specification for array constructors like
+ `(/ some-type :: ... /)'.
* `FLUSH' statement.
@@ -1702,6 +1797,12 @@ for the time being, a few Fortran 2003 features are currently available.
* `ALLOCATABLE' components of derived types
+ * The `ERRMSG=' tag is now supported in `ALLOCATE' and `DEALLOCATE'
+ statements. The `SOURCE=' tag is supported in an `ALLOCATE'
+ statement. An _intrinsic-type-spec_ can be used as the
+ _type-spec_ in an `ALLOCATE' statement; while the use of a
+ _derived-type-name_ is currently unsupported.
+
* The `OPEN' statement supports the `ACCESS='STREAM'' specifier,
allowing I/O without any record structure.
@@ -1724,7 +1825,15 @@ for the time being, a few Fortran 2003 features are currently available.
* Interoperability with C (ISO C Bindings)
- * BOZ as argument of INT, REAL, DBLE and CMPLX.
+ * BOZ as argument of `INT', `REAL', `DBLE' and `CMPLX'.
+
+ * Type-bound procedures with `PROCEDURE' or `GENERIC', and operators
+ bound to a derived-type.
+
+ * Extension of derived-types (the `EXTENDS(...)' syntax).
+
+ * `ABSTRACT' derived-types and declaring procedure bindings
+ `DEFERRED'.

@@ -1737,7 +1846,7 @@ The next version of the Fortran standard after Fortran 2003 is currently
being worked on by the Working Group 5 of Sub-Committee 22 of the Joint
Technical Committee 1 of the International Organization for
Standardization (ISO) and the International Electrotechnical Commission
-(IEC). This group is known at WG5 (http://www.nag.co.uk/sc22wg5/). The
+(IEC). This group is known as WG5 (http://www.nag.co.uk/sc22wg5/). The
next revision of the Fortran standard is informally referred to as
Fortran 2008, reflecting its planned release year. The GNU Fortran
compiler has support for some of the new features in Fortran 2008. This
@@ -1746,21 +1855,26 @@ support is based on the latest draft, available from
differ from the drafts, no guarantee of backward compatibility can be
made and you should only use it for experimental purposes.
+ The wiki (http://gcc.gnu.org/wiki/Fortran2008Status) has some
+information about the current Fortran 2008 implementation status.
+

-File: gfortran.info, Node: Compiler Characteristics, Next: Extensions, Prev: Fortran 2003 and 2008 status, Up: Top
+File: gfortran.info, Node: Compiler Characteristics, Next: Mixed-Language Programming, Prev: Fortran 2003 and 2008 status, Up: Top
5 Compiler Characteristics
**************************
This chapter describes certain characteristics of the GNU Fortran
-compiler, namely the KIND type parameter values supported.
+compiler, that are not specified by the Fortran standard, but which
+might in some way or another become visible to the programmer.
* Menu:
* KIND Type Parameters::
+* Internal representation of LOGICAL variables::

-File: gfortran.info, Node: KIND Type Parameters, Up: Compiler Characteristics
+File: gfortran.info, Node: KIND Type Parameters, Next: Internal representation of LOGICAL variables, Up: Compiler Characteristics
5.1 KIND Type Parameters
========================
@@ -1796,7 +1910,33 @@ imaginary part are a real value of the given size). It is recommended
to use the `SELECT_*_KIND' intrinsics instead of the concrete values.

-File: gfortran.info, Node: Extensions, Next: Intrinsic Procedures, Prev: Compiler Characteristics, Up: Top
+File: gfortran.info, Node: Internal representation of LOGICAL variables, Prev: KIND Type Parameters, Up: Compiler Characteristics
+
+5.2 Internal representation of LOGICAL variables
+================================================
+
+The Fortran standard does not specify how variables of `LOGICAL' type
+are represented, beyond requiring that `LOGICAL' variables of default
+kind have the same storage size as default `INTEGER' and `REAL'
+variables. The GNU Fortran internal representation is as follows.
+
+ A `LOGICAL(KIND=N)' variable is represented as an `INTEGER(KIND=N)'
+variable, however, with only two permissible values: `1' for `.TRUE.'
+and `0' for `.FALSE.'. Any other integer value results in undefined
+behavior.
+
+ Note that for mixed-language programming using the `ISO_C_BINDING'
+feature, there is a `C_BOOL' kind that can be used to create
+`LOGICAL(KIND=C_BOOL)' variables which are interoperable with the C99
+_Bool type. The C99 _Bool type has an internal representation
+described in the C99 standard, which is identical to the above
+description, i.e. with 1 for true and 0 for false being the only
+permissible values. Thus the internal representation of `LOGICAL'
+variables in GNU Fortran is identical to C99 _Bool, except for a
+possible difference in storage size depending on the kind.
+
+
+File: gfortran.info, Node: Extensions, Next: Intrinsic Procedures, Prev: Mixed-Language Programming, Up: Top
6 Extensions
************
@@ -2050,7 +2190,7 @@ the real part is initialized unless `CMPLX' is used. In all other
cases, the BOZ literal constant is converted to an `INTEGER' value with
the largest decimal representation. This value is then converted
numerically to the type and kind of the variable in question. (For
-instance `real :: r = b'0000001' + 1' initializes `r' with `2.0'.) As
+instance, `real :: r = b'0000001' + 1' initializes `r' with `2.0'.) As
different compilers implement the extension differently, one should be
careful when doing bitwise initialization of non-integer variables.
@@ -2316,8 +2456,7 @@ directives, library routines, and environment variables that influence
run-time behavior.
GNU Fortran strives to be compatible to the OpenMP Application
-Program Interface v2.5
-(http://www.openmp.org/drupal/mp-documents/spec25.pdf).
+Program Interface v3.0 (http://www.openmp.org/mp-documents/spec30.pdf).
To enable the processing of the OpenMP directive `!$omp' in
free-form source code; the `c$omp', `*$omp' and `!$omp' directives in
@@ -2348,7 +2487,7 @@ OpenMP Application Program Interface v2.5:
may lead to surprising results, especially to segmentation faults
if the stacksize is limited.
- * On glibc-based systems, OpenMP enabled applications can not be
+ * On glibc-based systems, OpenMP enabled applications cannot be
statically linked due to limitations of the underlying
pthreads-implementation. It might be possible to get a working
solution if `-Wl,--whole-archive -lpthread -Wl,--no-whole-archive'
@@ -2375,7 +2514,7 @@ are rebuilt using a new compiler or version of a compiler.
`%VAL' passes a scalar argument by value, `%REF' passes it by
reference and `%LOC' passes its memory location. Since gfortran
already passes scalar arguments by reference, `%REF' is in effect a
-do-nothing. `%LOC' has the same effect as a fortran pointer.
+do-nothing. `%LOC' has the same effect as a Fortran pointer.
An example of passing an argument by value to a C subroutine foo.:
C
@@ -2390,8 +2529,8 @@ do-nothing. `%LOC' has the same effect as a fortran pointer.
For details refer to the g77 manual
`http://gcc.gnu.org/onlinedocs/gcc-3.4.6/g77/index.html#Top'.
- Also, the gfortran testsuite c_by_val.f and its partner c_by_val.c
-are worth a look.
+ Also, `c_by_val.f' and its partner `c_by_val.c' of the GNU Fortran
+testsuite are worth a look.

File: gfortran.info, Node: Extensions not implemented in GNU Fortran, Prev: Extensions implemented in GNU Fortran, Up: Extensions
@@ -2412,6 +2551,7 @@ best make code that uses them running with the GNU Fortran compiler.
* STRUCTURE and RECORD::
* ENCODE and DECODE statements::
+* Variable FORMAT expressions::

File: gfortran.info, Node: STRUCTURE and RECORD, Next: ENCODE and DECODE statements, Up: Extensions not implemented in GNU Fortran
@@ -2475,7 +2615,7 @@ This code can easily be rewritten in the Fortran 90 syntax as following:
print *, store_catalog(12)

-File: gfortran.info, Node: ENCODE and DECODE statements, Prev: STRUCTURE and RECORD, Up: Extensions not implemented in GNU Fortran
+File: gfortran.info, Node: ENCODE and DECODE statements, Next: Variable FORMAT expressions, Prev: STRUCTURE and RECORD, Up: Extensions not implemented in GNU Fortran
6.2.2 `ENCODE' and `DECODE' statements
--------------------------------------
@@ -2510,16 +2650,612 @@ with the following:
with the following:
- INTEGER*1 LINE(80)
+ CHARACTER(LEN=80) LINE
REAL A, B, C
c ... Code that sets A, B and C
WRITE (UNIT=LINE, FMT=9000) A, B, C
9000 FORMAT (1X, 'OUTPUT IS ', 3(F10.5))

+File: gfortran.info, Node: Variable FORMAT expressions, Prev: ENCODE and DECODE statements, Up: Extensions not implemented in GNU Fortran
+
+6.2.3 Variable `FORMAT' expressions
+-----------------------------------
+
+A variable `FORMAT' expression is format statement which includes angle
+brackets enclosing a Fortran expression: `FORMAT(I<N>)'. GNU Fortran
+does not support this legacy extension. The effect of variable format
+expressions can be reproduced by using the more powerful (and standard)
+combination of internal output and string formats. For example, replace
+a code fragment like this:
+
+ WRITE(6,20) INT1
+ 20 FORMAT(I<N+1>)
+
+with the following:
+
+ c Variable declaration
+ CHARACTER(LEN=20) F
+ c
+ c Other code here...
+ c
+ WRITE(FMT,'("(I", I0, ")")') N+1
+ WRITE(6,FM) INT1
+
+or with:
+
+ c Variable declaration
+ CHARACTER(LEN=20) FMT
+ c
+ c Other code here...
+ c
+ WRITE(FMT,*) N+1
+ WRITE(6,"(I" // ADJUSTL(FMT) // ")") INT1
+
+
+File: gfortran.info, Node: Mixed-Language Programming, Next: Extensions, Prev: Compiler Characteristics, Up: Top
+
+7 Mixed-Language Programming
+****************************
+
+* Menu:
+
+* Interoperability with C::
+* GNU Fortran Compiler Directives::
+* Non-Fortran Main Program::
+
+ This chapter is about mixed-language interoperability, but also
+applies if one links Fortran code compiled by different compilers. In
+most cases, use of the C Binding features of the Fortran 2003 standard
+is sufficient, and their use is highly recommended.
+
+
+File: gfortran.info, Node: Interoperability with C, Next: GNU Fortran Compiler Directives, Up: Mixed-Language Programming
+
+7.1 Interoperability with C
+===========================
+
+* Menu:
+
+* Intrinsic Types::
+* Further Interoperability of Fortran with C::
+* Derived Types and struct::
+* Interoperable Global Variables::
+* Interoperable Subroutines and Functions::
+
+ Since Fortran 2003 (ISO/IEC 1539-1:2004(E)) there is a standardized
+way to generate procedure and derived-type declarations and global
+variables which are interoperable with C (ISO/IEC 9899:1999). The
+`bind(C)' attribute has been added to inform the compiler that a symbol
+shall be interoperable with C; also, some constraints are added. Note,
+however, that not all C features have a Fortran equivalent or vice
+versa. For instance, neither C's unsigned integers nor C's functions
+with variable number of arguments have an equivalent in Fortran.
+
+ Note that array dimensions are reversely ordered in C and that
+arrays in C always start with index 0 while in Fortran they start by
+default with 1. Thus, an array declaration `A(n,m)' in Fortran matches
+`A[m][n]' in C and accessing the element `A(i,j)' matches
+`A[j-1][i-1]'. The element following `A(i,j)' (C: `A[j-1][i-1]';
+assuming i < n) in memory is `A(i+1,j)' (C: `A[j-1][i]').
+
+
+File: gfortran.info, Node: Intrinsic Types, Next: Further Interoperability of Fortran with C, Up: Interoperability with C
+
+7.1.1 Intrinsic Types
+---------------------
+
+In order to ensure that exactly the same variable type and kind is used
+in C and Fortran, the named constants shall be used which are defined
+in the `ISO_C_BINDING' intrinsic module. That module contains named
+constants for kind parameters and character named constants for the
+escape sequences in C. For a list of the constants, see *note
+ISO_C_BINDING::.
+
+
+File: gfortran.info, Node: Derived Types and struct, Next: Interoperable Global Variables, Prev: Further Interoperability of Fortran with C, Up: Interoperability with C
+
+7.1.2 Derived Types and struct
+------------------------------
+
+For compatibility of derived types with `struct', one needs to use the
+`BIND(C)' attribute in the type declaration. For instance, the
+following type declaration
+
+ USE ISO_C_BINDING
+ TYPE, BIND(C) :: myType
+ INTEGER(C_INT) :: i1, i2
+ INTEGER(C_SIGNED_CHAR) :: i3
+ REAL(C_DOUBLE) :: d1
+ COMPLEX(C_FLOAT_COMPLEX) :: c1
+ CHARACTER(KIND=C_CHAR) :: str(5)
+ END TYPE
+
+ matches the following `struct' declaration in C
+
+ struct {
+ int i1, i2;
+ /* Note: "char" might be signed or unsigned. */
+ signed char i3;
+ double d1;
+ float _Complex c1;
+ char str[5];
+ } myType;
+
+ Derived types with the C binding attribute shall not have the
+`sequence' attribute, type parameters, the `extends' attribute, nor
+type-bound procedures. Every component must be of interoperable type
+and kind and may not have the `pointer' or `allocatable' attribute. The
+names of the variables are irrelevant for interoperability.
+
+ As there exist no direct Fortran equivalents, neither unions nor
+structs with bit field or variable-length array members are
+interoperable.
+
+
+File: gfortran.info, Node: Interoperable Global Variables, Next: Interoperable Subroutines and Functions, Prev: Derived Types and struct, Up: Interoperability with C
+
+7.1.3 Interoperable Global Variables
+------------------------------------
+
+Variables can be made accessible from C using the C binding attribute,
+optionally together with specifying a binding name. Those variables
+have to be declared in the declaration part of a `MODULE', be of
+interoperable type, and have neither the `pointer' nor the
+`allocatable' attribute.
+
+ MODULE m
+ USE myType_module
+ USE ISO_C_BINDING
+ integer(C_INT), bind(C, name="_MyProject_flags") :: global_flag
+ type(myType), bind(C) :: tp
+ END MODULE
+
+ Here, `_MyProject_flags' is the case-sensitive name of the variable
+as seen from C programs while `global_flag' is the case-insensitive
+name as seen from Fortran. If no binding name is specified, as for TP,
+the C binding name is the (lowercase) Fortran binding name. If a
+binding name is specified, only a single variable may be after the
+double colon. Note of warning: You cannot use a global variable to
+access ERRNO of the C library as the C standard allows it to be a
+macro. Use the `IERRNO' intrinsic (GNU extension) instead.
+
+
+File: gfortran.info, Node: Interoperable Subroutines and Functions, Prev: Interoperable Global Variables, Up: Interoperability with C
+
+7.1.4 Interoperable Subroutines and Functions
+---------------------------------------------
+
+Subroutines and functions have to have the `BIND(C)' attribute to be
+compatible with C. The dummy argument declaration is relatively
+straightforward. However, one needs to be careful because C uses
+call-by-value by default while Fortran behaves usually similar to
+call-by-reference. Furthermore, strings and pointers are handled
+differently. Note that only explicit size and assumed-size arrays are
+supported but not assumed-shape or allocatable arrays.
+
+ To pass a variable by value, use the `VALUE' attribute. Thus the
+following C prototype
+
+ `int func(int i, int *j)'
+
+ matches the Fortran declaration
+
+ integer(c_int) function func(i,j)
+ use iso_c_binding, only: c_int
+ integer(c_int), VALUE :: i
+ integer(c_int) :: j
+
+ Note that pointer arguments also frequently need the `VALUE'
+attribute.
+
+ Strings are handled quite differently in C and Fortran. In C a string
+is a `NUL'-terminated array of characters while in Fortran each string
+has a length associated with it and is thus not terminated (by e.g.
+`NUL'). For example, if one wants to use the following C function,
+
+ #include <stdio.h>
+ void print_C(char *string) /* equivalent: char string[] */
+ {
+ printf("%s\n", string);
+ }
+
+ to print "Hello World" from Fortran, one can call it using
+
+ use iso_c_binding, only: C_CHAR, C_NULL_CHAR
+ interface
+ subroutine print_c(string) bind(C, name="print_C")
+ use iso_c_binding, only: c_char
+ character(kind=c_char) :: string(*)
+ end subroutine print_c
+ end interface
+ call print_c(C_CHAR_"Hello World"//C_NULL_CHAR)
+
+ As the example shows, one needs to ensure that the string is `NUL'
+terminated. Additionally, the dummy argument STRING of `print_C' is a
+length-one assumed-size array; using `character(len=*)' is not allowed.
+The example above uses `c_char_"Hello World"' to ensure the string
+literal has the right type; typically the default character kind and
+`c_char' are the same and thus `"Hello World"' is equivalent. However,
+the standard does not guarantee this.
+
+ The use of pointers is now illustrated using the C library function
+`strncpy', whose prototype is
+
+ char *strncpy(char *restrict s1, const char *restrict s2, size_t n);
+
+ The function `strncpy' copies at most N characters from string S2 to
+S1 and returns S1. In the following example, we ignore the return value:
+
+ use iso_c_binding
+ implicit none
+ character(len=30) :: str,str2
+ interface
+ ! Ignore the return value of strncpy -> subroutine
+ ! "restrict" is always assumed if we do not pass a pointer
+ subroutine strncpy(dest, src, n) bind(C)
+ import
+ character(kind=c_char), intent(out) :: dest(*)
+ character(kind=c_char), intent(in) :: src(*)
+ integer(c_size_t), value, intent(in) :: n
+ end subroutine strncpy
+ end interface
+ str = repeat('X',30) ! Initialize whole string with 'X'
+ call strncpy(str, c_char_"Hello World"//C_NULL_CHAR, &
+ len(c_char_"Hello World",kind=c_size_t))
+ print '(a)', str ! prints: "Hello WorldXXXXXXXXXXXXXXXXXXX"
+ end
+
+ C pointers are represented in Fortran via the special derived type
+`type(c_ptr)', with private components. Thus one needs to use intrinsic
+conversion procedures to convert from or to C pointers. For example,
+
+ use iso_c_binding
+ type(c_ptr) :: cptr1, cptr2
+ integer, target :: array(7), scalar
+ integer, pointer :: pa(:), ps
+ cptr1 = c_loc(array(1)) ! The programmer needs to ensure that the
+ ! array is contiguous if required by the C
+ ! procedure
+ cptr2 = c_loc(scalar)
+ call c_f_pointer(cptr2, ps)
+ call c_f_pointer(cptr2, pa, shape=[7])
+
+ When converting C to Fortran arrays, the one-dimensional `SHAPE'
+argument has to be passed. Note: A pointer argument `void *' matches
+`TYPE(C_PTR), VALUE' while `TYPE(C_PTR)' matches `void **'.
+
+ Procedure pointers are handled analogously to pointers; the C type is
+`TYPE(C_FUNPTR)' and the intrinsic conversion procedures are
+`C_F_PROC_POINTER' and `C_FUNLOC'.
+
+ The intrinsic procedures are described in *note Intrinsic
+Procedures::.
+
+
+File: gfortran.info, Node: Further Interoperability of Fortran with C, Next: Derived Types and struct, Prev: Intrinsic Types, Up: Interoperability with C
+
+7.1.5 Further Interoperability of Fortran with C
+------------------------------------------------
+
+Assumed-shape and allocatable arrays are passed using an array
+descriptor (dope vector). The internal structure of the array
+descriptor used by GNU Fortran is not yet documented and will change.
+There will also be a Technical Report (TR 29113) which standardizes an
+interoperable array descriptor. Until then, you can use the Chasm
+Language Interoperability Tools,
+`http://chasm-interop.sourceforge.net/', which provide an interface to
+GNU Fortran's array descriptor.
+
+ The technical report 29113 will presumably also include support for
+C-interoperable `OPTIONAL' and for assumed-rank and assumed-type dummy
+arguments. However, the TR has neither been approved nor implemented in
+GNU Fortran; therefore, these features are not yet available.
+
+
+File: gfortran.info, Node: GNU Fortran Compiler Directives, Next: Non-Fortran Main Program, Prev: Interoperability with C, Up: Mixed-Language Programming
+
+7.2 GNU Fortran Compiler Directives
+===================================
+
+The Fortran standard standard describes how a conforming program shall
+behave; however, the exact implementation is not standardized. In order
+to allow the user to choose specific implementation details, compiler
+directives can be used to set attributes of variables and procedures
+which are not part of the standard. Whether a given attribute is
+supported and its exact effects depend on both the operating system and
+on the processor; see *note C Extensions: (gcc)Top. for details.
+
+ For procedures and procedure pointers, the following attributes can
+be used to change the calling convention:
+
+ * `CDECL' - standard C calling convention
+
+ * `STDCALL' - convention where the called procedure pops the stack
+
+ * `FASTCALL' - part of the arguments are passed via registers
+ instead using the stack
+
+ Besides changing the calling convention, the attributes also
+influence the decoration of the symbol name, e.g., by a leading
+underscore or by a trailing at-sign followed by the number of bytes on
+the stack. When assigning a procedure to a procedure pointer, both
+should use the same calling convention.
+
+ On some systems, procedures and global variables (module variables
+and `COMMON' blocks) need special handling to be accessible when they
+are in a shared library. The following attributes are available:
+
+ * `DLLEXPORT' - provide a global pointer to a pointer in the DLL
+
+ * `DLLIMPORT' - reference the function or variable using a global
+ pointer
+
+ The attributes are specified using the syntax
+
+ `!GCC$ ATTRIBUTES' ATTRIBUTE-LIST `::' VARIABLE-LIST
+
+ where in free-form source code only whitespace is allowed before
+`!GCC$' and in fixed-form source code `!GCC$', `cGCC$' or `*GCC$' shall
+start in the first column.
+
+ For procedures, the compiler directives shall be placed into the body
+of the procedure; for variables and procedure pointers, they shall be in
+the same declaration part as the variable or procedure pointer.
+
+
+File: gfortran.info, Node: Non-Fortran Main Program, Prev: GNU Fortran Compiler Directives, Up: Mixed-Language Programming
+
+7.3 Non-Fortran Main Program
+============================
+
+* Menu:
+
+* _gfortran_set_args:: Save command-line arguments
+* _gfortran_set_options:: Set library option flags
+* _gfortran_set_convert:: Set endian conversion
+* _gfortran_set_record_marker:: Set length of record markers
+* _gfortran_set_max_subrecord_length:: Set subrecord length
+* _gfortran_set_fpe:: Set when a Floating Point Exception should be raised
+
+ Even if you are doing mixed-language programming, it is very likely
+that you do not need to know or use the information in this section.
+Since it is about the internal structure of GNU Fortran, it may also
+change in GCC minor releases.
+
+ When you compile a `PROGRAM' with GNU Fortran, a function with the
+name `main' (in the symbol table of the object file) is generated,
+which initializes the libgfortran library and then calls the actual
+program which uses the name `MAIN__', for historic reasons. If you link
+GNU Fortran compiled procedures to, e.g., a C or C++ program or to a
+Fortran program compiled by a different compiler, the libgfortran
+library is not initialized and thus a few intrinsic procedures do not
+work properly, e.g. those for obtaining the command-line arguments.
+
+ Therefore, if your `PROGRAM' is not compiled with GNU Fortran and
+the GNU Fortran compiled procedures require intrinsics relying on the
+library initialization, you need to initialize the library yourself.
+Using the default options, gfortran calls `_gfortran_set_args' and
+`_gfortran_set_options'. The initialization of the former is needed if
+the called procedures access the command line (and for backtracing);
+the latter sets some flags based on the standard chosen or to enable
+backtracing. In typical programs, it is not necessary to call any
+initialization function.
+
+ If your `PROGRAM' is compiled with GNU Fortran, you shall not call
+any of the following functions. The libgfortran initialization
+functions are shown in C syntax but using C bindings they are also
+accessible from Fortran.
+
+
+File: gfortran.info, Node: _gfortran_set_args, Next: _gfortran_set_options, Up: Non-Fortran Main Program
+
+7.3.1 `_gfortran_set_args' -- Save command-line arguments
+---------------------------------------------------------
+
+_Description_:
+ `_gfortran_set_args' saves the command-line arguments; this
+ initialization is required if any of the command-line intrinsics
+ is called. Additionally, it shall be called if backtracing is
+ enabled (see `_gfortran_set_options').
+
+_Syntax_:
+ `void _gfortran_set_args (int argc, char *argv[])'
+
+_Arguments_:
+ ARGC number of command line argument strings
+ ARGV the command-line argument strings; argv[0] is
+ the pathname of the executable itself.
+
+_Example_:
+ int main (int argc, char *argv[])
+ {
+ /* Initialize libgfortran. */
+ _gfortran_set_args (argc, argv);
+ return 0;
+ }
+
+
+File: gfortran.info, Node: _gfortran_set_options, Next: _gfortran_set_convert, Prev: _gfortran_set_args, Up: Non-Fortran Main Program
+
+7.3.2 `_gfortran_set_options' -- Set library option flags
+---------------------------------------------------------
+
+_Description_:
+ `_gfortran_set_options' sets several flags related to the Fortran
+ standard to be used, whether backtracing or core dumps should be
+ enabled and whether range checks should be performed. The syntax
+ allows for upward compatibility since the number of passed flags
+ is specified; for non-passed flags, the default value is used. See
+ also *note Code Gen Options::. Please note that not all flags are
+ actually used.
+
+_Syntax_:
+ `void _gfortran_set_options (int num, int options[])'
+
+_Arguments_:
+ NUM number of options passed
+ ARGV The list of flag values
+
+_option flag list_:
+ OPTION[0] Allowed standard; can give run-time errors if
+ e.g. an input-output edit descriptor is
+ invalid in a given standard. Possible values
+ are (bitwise or-ed) `GFC_STD_F77' (1),
+ `GFC_STD_F95_OBS' (2), `GFC_STD_F95_DEL' (4),
+ `GFC_STD_F95' (8), `GFC_STD_F2003' (16),
+ `GFC_STD_GNU' (32), `GFC_STD_LEGACY' (64), and
+ `GFC_STD_F2008' (128). Default:
+ `GFC_STD_F95_OBS | GFC_STD_F95_DEL |
+ GFC_STD_F2003 | GFC_STD_F2008 | GFC_STD_F95 |
+ GFC_STD_F77 | GFC_STD_GNU | GFC_STD_LEGACY'.
+ OPTION[1] Standard-warning flag; prints a warning to
+ standard error. Default: `GFC_STD_F95_DEL |
+ GFC_STD_LEGACY'.
+ OPTION[2] If non zero, enable pedantic checking.
+ Default: off.
+ OPTION[3] If non zero, enable core dumps on run-time
+ errors. Default: off.
+ OPTION[4] If non zero, enable backtracing on run-time
+ errors. Default: off. Note: Installs a signal
+ handler and requires command-line
+ initialization using `_gfortran_set_args'.
+ OPTION[5] If non zero, supports signed zeros. Default:
+ enabled.
+ OPTION[6] Enables run-time checking. Possible values are
+ (bitwise or-ed): GFC_RTCHECK_BOUNDS (1),
+ GFC_RTCHECK_ARRAY_TEMPS (2),
+ GFC_RTCHECK_RECURSION (4), GFC_RTCHECK_DO
+ (16), GFC_RTCHECK_POINTER (32). Default:
+ disabled.
+ OPTION[7] If non zero, range checking is enabled.
+ Default: enabled. See -frange-check (*note
+ Code Gen Options::).
+
+_Example_:
+ /* Use gfortran 4.5 default options. */
+ static int options[] = {68, 255, 0, 0, 0, 1, 0, 1};
+ _gfortran_set_options (8, &options);
+
+
+File: gfortran.info, Node: _gfortran_set_convert, Next: _gfortran_set_record_marker, Prev: _gfortran_set_options, Up: Non-Fortran Main Program
+
+7.3.3 `_gfortran_set_convert' -- Set endian conversion
+------------------------------------------------------
+
+_Description_:
+ `_gfortran_set_convert' set the representation of data for
+ unformatted files.
+
+_Syntax_:
+ `void _gfortran_set_convert (int conv)'
+
+_Arguments_:
+ CONV Endian conversion, possible values:
+ GFC_CONVERT_NATIVE (0, default),
+ GFC_CONVERT_SWAP (1), GFC_CONVERT_BIG (2),
+ GFC_CONVERT_LITTLE (3).
+
+_Example_:
+ int main (int argc, char *argv[])
+ {
+ /* Initialize libgfortran. */
+ _gfortran_set_args (argc, argv);
+ _gfortran_set_convert (1);
+ return 0;
+ }
+
+
+File: gfortran.info, Node: _gfortran_set_record_marker, Next: _gfortran_set_max_subrecord_length, Prev: _gfortran_set_convert, Up: Non-Fortran Main Program
+
+7.3.4 `_gfortran_set_record_marker' -- Set length of record markers
+-------------------------------------------------------------------
+
+_Description_:
+ `_gfortran_set_record_marker' sets the length of record markers
+ for unformatted files.
+
+_Syntax_:
+ `void _gfortran_set_record_marker (int val)'
+
+_Arguments_:
+ VAL Length of the record marker; valid values are
+ 4 and 8. Default is 4.
+
+_Example_:
+ int main (int argc, char *argv[])
+ {
+ /* Initialize libgfortran. */
+ _gfortran_set_args (argc, argv);
+ _gfortran_set_record_marker (8);
+ return 0;
+ }
+
+
+File: gfortran.info, Node: _gfortran_set_fpe, Prev: _gfortran_set_max_subrecord_length, Up: Non-Fortran Main Program
+
+7.3.5 `_gfortran_set_fpe' -- Set when a Floating Point Exception should be raised
+---------------------------------------------------------------------------------
+
+_Description_:
+ `_gfortran_set_fpe' sets the IEEE exceptions for which a Floating
+ Point Exception (FPE) should be raised. On most systems, this will
+ result in a SIGFPE signal being sent and the program being
+ interrupted.
+
+_Syntax_:
+ `void _gfortran_set_fpe (int val)'
+
+_Arguments_:
+ OPTION[0] IEEE exceptions. Possible values are (bitwise
+ or-ed) zero (0, default) no trapping,
+ `GFC_FPE_INVALID' (1), `GFC_FPE_DENORMAL' (2),
+ `GFC_FPE_ZERO' (4), `GFC_FPE_OVERFLOW' (8),
+ `GFC_FPE_UNDERFLOW' (16), and
+ `GFC_FPE_PRECISION' (32).
+
+_Example_:
+ int main (int argc, char *argv[])
+ {
+ /* Initialize libgfortran. */
+ _gfortran_set_args (argc, argv);
+ /* FPE for invalid operations such as SQRT(-1.0). */
+ _gfortran_set_fpe (1);
+ return 0;
+ }
+
+
+File: gfortran.info, Node: _gfortran_set_max_subrecord_length, Next: _gfortran_set_fpe, Prev: _gfortran_set_record_marker, Up: Non-Fortran Main Program
+
+7.3.6 `_gfortran_set_max_subrecord_length' -- Set subrecord length
+------------------------------------------------------------------
+
+_Description_:
+ `_gfortran_set_max_subrecord_length' set the maximum length for a
+ subrecord. This option only makes sense for testing and debugging
+ of unformatted I/O.
+
+_Syntax_:
+ `void _gfortran_set_max_subrecord_length (int val)'
+
+_Arguments_:
+ VAL the maximum length for a subrecord; the
+ maximum permitted value is 2147483639, which
+ is also the default.
+
+_Example_:
+ int main (int argc, char *argv[])
+ {
+ /* Initialize libgfortran. */
+ _gfortran_set_args (argc, argv);
+ _gfortran_set_max_subrecord_length (8);
+ return 0;
+ }
+
+
File: gfortran.info, Node: Intrinsic Procedures, Next: Intrinsic Modules, Prev: Extensions, Up: Top
-7 Intrinsic Procedures
+8 Intrinsic Procedures
**********************
* Menu:
@@ -2653,7 +3389,6 @@ File: gfortran.info, Node: Intrinsic Procedures, Next: Intrinsic Modules, Pre
* `LEADZ': LEADZ, Number of leading zero bits of an integer
* `LEN': LEN, Length of a character entity
* `LEN_TRIM': LEN_TRIM, Length of a character entity without trailing blank characters
-* `LOG_GAMMA': LOG_GAMMA, Logarithm of the Gamma function
* `LGE': LGE, Lexical greater than or equal
* `LGT': LGT, Lexical greater than
* `LINK': LINK, Create a hard link
@@ -2663,6 +3398,7 @@ File: gfortran.info, Node: Intrinsic Procedures, Next: Intrinsic Modules, Pre
* `LOC': LOC, Returns the address of a variable
* `LOG': LOG, Logarithm function
* `LOG10': LOG10, Base 10 logarithm function
+* `LOG_GAMMA': LOG_GAMMA, Logarithm of the Gamma function
* `LOGICAL': LOGICAL, Convert to logical type
* `LONG': LONG, Convert to integer type
* `LSHIFT': LSHIFT, Left shift bits
@@ -2754,7 +3490,7 @@ File: gfortran.info, Node: Intrinsic Procedures, Next: Intrinsic Modules, Pre

File: gfortran.info, Node: Introduction to Intrinsics, Next: ABORT, Up: Intrinsic Procedures
-7.1 Introduction to intrinsic procedures
+8.1 Introduction to intrinsic procedures
========================================
The intrinsic procedures provided by GNU Fortran include all of the
@@ -2797,7 +3533,7 @@ for each intrinsic procedure is noted.

File: gfortran.info, Node: ABORT, Next: ABS, Prev: Introduction to Intrinsics, Up: Intrinsic Procedures
-7.2 `ABORT' -- Abort the program
+8.2 `ABORT' -- Abort the program
================================
_Description_:
@@ -2831,7 +3567,7 @@ _See also_:

File: gfortran.info, Node: ABS, Next: ACCESS, Prev: ABORT, Up: Intrinsic Procedures
-7.3 `ABS' -- Absolute value
+8.3 `ABS' -- Absolute value
===========================
_Description_:
@@ -2880,7 +3616,7 @@ _Specific names_:

File: gfortran.info, Node: ACCESS, Next: ACHAR, Prev: ABS, Up: Intrinsic Procedures
-7.4 `ACCESS' -- Checks file access modes
+8.4 `ACCESS' -- Checks file access modes
========================================
_Description_:
@@ -2933,7 +3669,7 @@ _See also_:

File: gfortran.info, Node: ACHAR, Next: ACOS, Prev: ACCESS, Up: Intrinsic Procedures
-7.5 `ACHAR' -- Character in ASCII collating sequence
+8.5 `ACHAR' -- Character in ASCII collating sequence
====================================================
_Description_:
@@ -2977,14 +3713,14 @@ _See also_:

File: gfortran.info, Node: ACOS, Next: ACOSH, Prev: ACHAR, Up: Intrinsic Procedures
-7.6 `ACOS' -- Arccosine function
+8.6 `ACOS' -- Arccosine function
================================
_Description_:
`ACOS(X)' computes the arccosine of X (inverse of `COS(X)').
_Standard_:
- Fortran 77 and later
+ Fortran 77 and later, for a complex argument Fortran 2008 or later
_Class_:
Elemental function
@@ -2993,12 +3729,14 @@ _Syntax_:
`RESULT = ACOS(X)'
_Arguments_:
- X The type shall be `REAL' with a magnitude that
- is less than or equal to one.
+ X The type shall either be `REAL' with a
+ magnitude that is less than or equal to one -
+ or the type shall be `COMPLEX'.
_Return value_:
- The return value is of type `REAL' and it lies in the range 0
- \leq \acos(x) \leq \pi. The return value if of the same kind as X.
+ The return value is of the same type and kind as X. The real part
+ of the result is in radians and lies in the range 0 \leq \Re
+ \acos(x) \leq \pi.
_Example_:
program test_acos
@@ -3018,7 +3756,7 @@ _See also_:

File: gfortran.info, Node: ACOSH, Next: ADJUSTL, Prev: ACOS, Up: Intrinsic Procedures
-7.7 `ACOSH' -- Hyperbolic arccosine function
+8.7 `ACOSH' -- Hyperbolic arccosine function
============================================
_Description_:
@@ -3038,7 +3776,9 @@ _Arguments_:
X The type shall be `REAL' or `COMPLEX'.
_Return value_:
- The return value has the same type and kind as X
+ The return value has the same type and kind as X. If X is complex,
+ the imaginary part of the result is in radians and lies between 0
+ \leq \Im \acosh(x) \leq \pi.
_Example_:
PROGRAM test_acosh
@@ -3056,7 +3796,7 @@ _See also_:

File: gfortran.info, Node: ADJUSTL, Next: ADJUSTR, Prev: ACOSH, Up: Intrinsic Procedures
-7.8 `ADJUSTL' -- Left adjust a string
+8.8 `ADJUSTL' -- Left adjust a string
=====================================
_Description_:
@@ -3093,7 +3833,7 @@ _See also_:

File: gfortran.info, Node: ADJUSTR, Next: AIMAG, Prev: ADJUSTL, Up: Intrinsic Procedures
-7.9 `ADJUSTR' -- Right adjust a string
+8.9 `ADJUSTR' -- Right adjust a string
======================================
_Description_:
@@ -3130,7 +3870,7 @@ _See also_:

File: gfortran.info, Node: AIMAG, Next: AINT, Prev: ADJUSTR, Up: Intrinsic Procedures
-7.10 `AIMAG' -- Imaginary part of complex number
+8.10 `AIMAG' -- Imaginary part of complex number
================================================
_Description_:
@@ -3174,7 +3914,7 @@ _Specific names_:

File: gfortran.info, Node: AINT, Next: ALARM, Prev: AIMAG, Up: Intrinsic Procedures
-7.11 `AINT' -- Truncate to a whole number
+8.11 `AINT' -- Truncate to a whole number
=========================================
_Description_:
@@ -3222,7 +3962,7 @@ _Specific names_:

File: gfortran.info, Node: ALARM, Next: ALL, Prev: AINT, Up: Intrinsic Procedures
-7.12 `ALARM' -- Execute a routine after a given delay
+8.12 `ALARM' -- Execute a routine after a given delay
=====================================================
_Description_:
@@ -3269,7 +4009,7 @@ _Example_:

File: gfortran.info, Node: ALL, Next: ALLOCATED, Prev: ALARM, Up: Intrinsic Procedures
-7.13 `ALL' -- All values in MASK along DIM are true
+8.13 `ALL' -- All values in MASK along DIM are true
===================================================
_Description_:
@@ -3329,7 +4069,7 @@ _Example_:

File: gfortran.info, Node: ALLOCATED, Next: AND, Prev: ALL, Up: Intrinsic Procedures
-7.14 `ALLOCATED' -- Status of an allocatable entity
+8.14 `ALLOCATED' -- Status of an allocatable entity
===================================================
_Description_:
@@ -3362,7 +4102,7 @@ _Example_:

File: gfortran.info, Node: AND, Next: ANINT, Prev: ALLOCATED, Up: Intrinsic Procedures
-7.15 `AND' -- Bitwise logical AND
+8.15 `AND' -- Bitwise logical AND
=================================
_Description_:
@@ -3409,7 +4149,7 @@ _See also_:

File: gfortran.info, Node: ANINT, Next: ANY, Prev: AND, Up: Intrinsic Procedures
-7.16 `ANINT' -- Nearest whole number
+8.16 `ANINT' -- Nearest whole number
====================================
_Description_:
@@ -3456,7 +4196,7 @@ _Specific names_:

File: gfortran.info, Node: ANY, Next: ASIN, Prev: ANINT, Up: Intrinsic Procedures
-7.17 `ANY' -- Any value in MASK along DIM is true
+8.17 `ANY' -- Any value in MASK along DIM is true
=================================================
_Description_:
@@ -3517,14 +4257,14 @@ _Example_:

File: gfortran.info, Node: ASIN, Next: ASINH, Prev: ANY, Up: Intrinsic Procedures
-7.18 `ASIN' -- Arcsine function
+8.18 `ASIN' -- Arcsine function
===============================
_Description_:
`ASIN(X)' computes the arcsine of its X (inverse of `SIN(X)').
_Standard_:
- Fortran 77 and later
+ Fortran 77 and later, for a complex argument Fortran 2008 or later
_Class_:
Elemental function
@@ -3533,13 +4273,14 @@ _Syntax_:
`RESULT = ASIN(X)'
_Arguments_:
- X The type shall be `REAL', and a magnitude that
- is less than or equal to one.
+ X The type shall be either `REAL' and a
+ magnitude that is less than or equal to one -
+ or be `COMPLEX'.
_Return value_:
- The return value is of type `REAL' and it lies in the range -\pi /
- 2 \leq \asin (x) \leq \pi / 2. The kind type parameter is the
- same as X.
+ The return value is of the same type and kind as X. The real part
+ of the result is in radians and lies in the range -\pi/2 \leq \Re
+ \asin(x) \leq \pi/2.
_Example_:
program test_asin
@@ -3559,7 +4300,7 @@ _See also_:

File: gfortran.info, Node: ASINH, Next: ASSOCIATED, Prev: ASIN, Up: Intrinsic Procedures
-7.19 `ASINH' -- Hyperbolic arcsine function
+8.19 `ASINH' -- Hyperbolic arcsine function
===========================================
_Description_:
@@ -3579,7 +4320,9 @@ _Arguments_:
X The type shall be `REAL' or `COMPLEX'.
_Return value_:
- The return value is of the same type and kind as X.
+ The return value is of the same type and kind as X. If X is
+ complex, the imaginary part of the result is in radians and lies
+ between -\pi/2 \leq \Im \asinh(x) \leq \pi/2.
_Example_:
PROGRAM test_asinh
@@ -3597,7 +4340,7 @@ _See also_:

File: gfortran.info, Node: ASSOCIATED, Next: ATAN, Prev: ASINH, Up: Intrinsic Procedures
-7.20 `ASSOCIATED' -- Status of a pointer or pointer/target pair
+8.20 `ASSOCIATED' -- Status of a pointer or pointer/target pair
===============================================================
_Description_:
@@ -3671,27 +4414,36 @@ _See also_:

File: gfortran.info, Node: ATAN, Next: ATAN2, Prev: ASSOCIATED, Up: Intrinsic Procedures
-7.21 `ATAN' -- Arctangent function
+8.21 `ATAN' -- Arctangent function
==================================
_Description_:
`ATAN(X)' computes the arctangent of X.
_Standard_:
- Fortran 77 and later
+ Fortran 77 and later, for a complex argument and for two arguments
+ Fortran 2008 or later
_Class_:
Elemental function
_Syntax_:
- `RESULT = ATAN(X)'
+ `RESULT = ATAN(X)' `RESULT = ATAN(Y, X)'
_Arguments_:
- X The type shall be `REAL'.
+ X The type shall be `REAL' or `COMPLEX'; if Y is
+ present, X shall be REAL.
+ Y shall
+ be of the
+ same type
+ and kind
+ as X.
_Return value_:
- The return value is of type `REAL' and it lies in the range - \pi
- / 2 \leq \atan (x) \leq \pi / 2.
+ The return value is of the same type and kind as X. If Y is
+ present, the result is identical to `ATAN2(Y,X)'. Otherwise, it
+ the arcus tangent of X, where the real part of the result is in
+ radians and lies in the range -\pi/2 \leq \Re \atan(x) \leq \pi/2.
_Example_:
program test_atan
@@ -3711,12 +4463,14 @@ _See also_:

File: gfortran.info, Node: ATAN2, Next: ATANH, Prev: ATAN, Up: Intrinsic Procedures
-7.22 `ATAN2' -- Arctangent function
+8.22 `ATAN2' -- Arctangent function
===================================
_Description_:
- `ATAN2(Y, X)' computes the arctangent of the complex number X + i
- Y.
+ `ATAN2(Y, X)' computes the principal value of the argument
+ function of the complex number X + i Y. This function can be used
+ to transform from carthesian into polar coordinates and allows to
+ determine the angle in the correct quadrant.
_Standard_:
Fortran 77 and later
@@ -3749,13 +4503,13 @@ _Example_:
_Specific names_:
Name Argument Return type Standard
- `DATAN2(X)' `REAL(8) X' `REAL(8)' Fortran 77 and
- later
+ `DATAN2(X, `REAL(8) X', `REAL(8)' Fortran 77 and
+ Y)' `REAL(8) Y' later

File: gfortran.info, Node: ATANH, Next: BESSEL_J0, Prev: ATAN2, Up: Intrinsic Procedures
-7.23 `ATANH' -- Hyperbolic arctangent function
+8.23 `ATANH' -- Hyperbolic arctangent function
==============================================
_Description_:
@@ -3775,7 +4529,9 @@ _Arguments_:
X The type shall be `REAL' or `COMPLEX'.
_Return value_:
- The return value has same type and kind as X.
+ The return value has same type and kind as X. If X is complex, the
+ imaginary part of the result is in radians and lies between -\pi/2
+ \leq \Im \atanh(x) \leq \pi/2.
_Example_:
PROGRAM test_atanh
@@ -3793,7 +4549,7 @@ _See also_:

File: gfortran.info, Node: BESSEL_J0, Next: BESSEL_J1, Prev: ATANH, Up: Intrinsic Procedures
-7.24 `BESSEL_J0' -- Bessel function of the first kind of order 0
+8.24 `BESSEL_J0' -- Bessel function of the first kind of order 0
================================================================
_Description_:
@@ -3831,7 +4587,7 @@ _Specific names_:

File: gfortran.info, Node: BESSEL_J1, Next: BESSEL_JN, Prev: BESSEL_J0, Up: Intrinsic Procedures
-7.25 `BESSEL_J1' -- Bessel function of the first kind of order 1
+8.25 `BESSEL_J1' -- Bessel function of the first kind of order 1
================================================================
_Description_:
@@ -3870,7 +4626,7 @@ _Specific names_:

File: gfortran.info, Node: BESSEL_JN, Next: BESSEL_Y0, Prev: BESSEL_J1, Up: Intrinsic Procedures
-7.26 `BESSEL_JN' -- Bessel function of the first kind
+8.26 `BESSEL_JN' -- Bessel function of the first kind
=====================================================
_Description_:
@@ -3906,13 +4662,14 @@ _Example_:
_Specific names_:
Name Argument Return type Standard
- `DBESJN(X)' `INTEGER N' `REAL(8)' GNU extension
+ `DBESJN(N, `INTEGER N' `REAL(8)' GNU extension
+ X)'
`REAL(8) X'

File: gfortran.info, Node: BESSEL_Y0, Next: BESSEL_Y1, Prev: BESSEL_JN, Up: Intrinsic Procedures
-7.27 `BESSEL_Y0' -- Bessel function of the second kind of order 0
+8.27 `BESSEL_Y0' -- Bessel function of the second kind of order 0
=================================================================
_Description_:
@@ -3950,7 +4707,7 @@ _Specific names_:

File: gfortran.info, Node: BESSEL_Y1, Next: BESSEL_YN, Prev: BESSEL_Y0, Up: Intrinsic Procedures
-7.28 `BESSEL_Y1' -- Bessel function of the second kind of order 1
+8.28 `BESSEL_Y1' -- Bessel function of the second kind of order 1
=================================================================
_Description_:
@@ -3988,7 +4745,7 @@ _Specific names_:

File: gfortran.info, Node: BESSEL_YN, Next: BIT_SIZE, Prev: BESSEL_Y1, Up: Intrinsic Procedures
-7.29 `BESSEL_YN' -- Bessel function of the second kind
+8.29 `BESSEL_YN' -- Bessel function of the second kind
======================================================
_Description_:
@@ -4031,7 +4788,7 @@ _Specific names_:

File: gfortran.info, Node: BIT_SIZE, Next: BTEST, Prev: BESSEL_YN, Up: Intrinsic Procedures
-7.30 `BIT_SIZE' -- Bit size inquiry function
+8.30 `BIT_SIZE' -- Bit size inquiry function
============================================
_Description_:
@@ -4065,7 +4822,7 @@ _Example_:

File: gfortran.info, Node: BTEST, Next: C_ASSOCIATED, Prev: BIT_SIZE, Up: Intrinsic Procedures
-7.31 `BTEST' -- Bit test function
+8.31 `BTEST' -- Bit test function
=================================
_Description_:
@@ -4102,7 +4859,7 @@ _Example_:

File: gfortran.info, Node: C_ASSOCIATED, Next: C_F_POINTER, Prev: BTEST, Up: Intrinsic Procedures
-7.32 `C_ASSOCIATED' -- Status of a C pointer
+8.32 `C_ASSOCIATED' -- Status of a C pointer
============================================
_Description_:
@@ -4144,7 +4901,7 @@ _See also_:

File: gfortran.info, Node: C_FUNLOC, Next: C_LOC, Prev: C_F_PROCPOINTER, Up: Intrinsic Procedures
-7.33 `C_FUNLOC' -- Obtain the C address of a procedure
+8.33 `C_FUNLOC' -- Obtain the C address of a procedure
======================================================
_Description_:
@@ -4197,16 +4954,13 @@ _See also_:

File: gfortran.info, Node: C_F_PROCPOINTER, Next: C_FUNLOC, Prev: C_F_POINTER, Up: Intrinsic Procedures
-7.34 `C_F_PROCPOINTER' -- Convert C into Fortran procedure pointer
+8.34 `C_F_PROCPOINTER' -- Convert C into Fortran procedure pointer
==================================================================
_Description_:
`C_F_PROCPOINTER(CPTR, FPTR)' Assign the target of the C function
pointer CPTR to the Fortran procedure pointer FPTR.
- Note: Due to the currently lacking support of procedure pointers
- in GNU Fortran this function is not fully operable.
-
_Standard_:
Fortran 2003 and later
@@ -4251,7 +5005,7 @@ _See also_:

File: gfortran.info, Node: C_F_POINTER, Next: C_F_PROCPOINTER, Prev: C_ASSOCIATED, Up: Intrinsic Procedures
-7.35 `C_F_POINTER' -- Convert C into Fortran pointer
+8.35 `C_F_POINTER' -- Convert C into Fortran pointer
====================================================
_Description_:
@@ -4298,7 +5052,7 @@ _See also_:

File: gfortran.info, Node: C_LOC, Next: C_SIZEOF, Prev: C_FUNLOC, Up: Intrinsic Procedures
-7.36 `C_LOC' -- Obtain the C address of an object
+8.36 `C_LOC' -- Obtain the C address of an object
=================================================
_Description_:
@@ -4339,7 +5093,7 @@ _See also_:

File: gfortran.info, Node: C_SIZEOF, Next: CEILING, Prev: C_LOC, Up: Intrinsic Procedures
-7.37 `C_SIZEOF' -- Size in bytes of an expression
+8.37 `C_SIZEOF' -- Size in bytes of an expression
=================================================
_Description_:
@@ -4383,7 +5137,7 @@ _See also_:

File: gfortran.info, Node: CEILING, Next: CHAR, Prev: C_SIZEOF, Up: Intrinsic Procedures
-7.38 `CEILING' -- Integer ceiling function
+8.38 `CEILING' -- Integer ceiling function
==========================================
_Description_:
@@ -4423,7 +5177,7 @@ _See also_:

File: gfortran.info, Node: CHAR, Next: CHDIR, Prev: CEILING, Up: Intrinsic Procedures
-7.39 `CHAR' -- Character conversion function
+8.39 `CHAR' -- Character conversion function
============================================
_Description_:
@@ -4467,7 +5221,7 @@ _See also_:

File: gfortran.info, Node: CHDIR, Next: CHMOD, Prev: CHAR, Up: Intrinsic Procedures
-7.40 `CHDIR' -- Change working directory
+8.40 `CHDIR' -- Change working directory
========================================
_Description_:
@@ -4510,7 +5264,7 @@ _See also_:

File: gfortran.info, Node: CHMOD, Next: CMPLX, Prev: CHDIR, Up: Intrinsic Procedures
-7.41 `CHMOD' -- Change access permissions of files
+8.41 `CHMOD' -- Change access permissions of files
==================================================
_Description_:
@@ -4566,7 +5320,7 @@ _Example_:

File: gfortran.info, Node: CMPLX, Next: COMMAND_ARGUMENT_COUNT, Prev: CHMOD, Up: Intrinsic Procedures
-7.42 `CMPLX' -- Complex conversion function
+8.42 `CMPLX' -- Complex conversion function
===========================================
_Description_:
@@ -4614,7 +5368,7 @@ _See also_:

File: gfortran.info, Node: COMMAND_ARGUMENT_COUNT, Next: COMPLEX, Prev: CMPLX, Up: Intrinsic Procedures
-7.43 `COMMAND_ARGUMENT_COUNT' -- Get number of command line arguments
+8.43 `COMMAND_ARGUMENT_COUNT' -- Get number of command line arguments
=====================================================================
_Description_:
@@ -4634,7 +5388,7 @@ _Arguments_:
None
_Return value_:
- The return value is of type `INTEGER(4)'
+ The return value is an `INTEGER' of default kind.
_Example_:
program test_command_argument_count
@@ -4649,7 +5403,7 @@ _See also_:

File: gfortran.info, Node: COMPLEX, Next: CONJG, Prev: COMMAND_ARGUMENT_COUNT, Up: Intrinsic Procedures
-7.44 `COMPLEX' -- Complex conversion function
+8.44 `COMPLEX' -- Complex conversion function
=============================================
_Description_:
@@ -4691,7 +5445,7 @@ _See also_:

File: gfortran.info, Node: CONJG, Next: COS, Prev: COMPLEX, Up: Intrinsic Procedures
-7.45 `CONJG' -- Complex conjugate function
+8.45 `CONJG' -- Complex conjugate function
==========================================
_Description_:
@@ -4731,7 +5485,7 @@ _Specific names_:

File: gfortran.info, Node: COS, Next: COSH, Prev: CONJG, Up: Intrinsic Procedures
-7.46 `COS' -- Cosine function
+8.46 `COS' -- Cosine function
=============================
_Description_:
@@ -4750,8 +5504,9 @@ _Arguments_:
X The type shall be `REAL' or `COMPLEX'.
_Return value_:
- The return value is of type `REAL' and it lies in the range -1
- \leq \cos (x) \leq 1. The kind type parameter is the same as X.
+ The return value is of the same type and kind as X. The real part
+ of the result is in radians. If X is of the type `REAL', the
+ return value lies in the range -1 \leq \cos (x) \leq 1.
_Example_:
program test_cos
@@ -4777,14 +5532,14 @@ _See also_:

File: gfortran.info, Node: COSH, Next: COUNT, Prev: COS, Up: Intrinsic Procedures
-7.47 `COSH' -- Hyperbolic cosine function
+8.47 `COSH' -- Hyperbolic cosine function
=========================================
_Description_:
`COSH(X)' computes the hyperbolic cosine of X.
_Standard_:
- Fortran 77 and later
+ Fortran 77 and later, for a complex argument Fortran 2008 or later
_Class_:
Elemental function
@@ -4793,12 +5548,12 @@ _Syntax_:
`X = COSH(X)'
_Arguments_:
- X The type shall be `REAL'.
+ X The type shall be `REAL' or `COMPLEX'.
_Return value_:
- The return value is of type `REAL' and it is positive ( \cosh (x)
- \geq 0 ). For a `REAL' argument X, \cosh (x) \geq 1 . The
- return value is of the same kind as X.
+ The return value has same type and kind as X. If X is complex, the
+ imaginary part of the result is in radians. If X is `REAL', the
+ return value has a lower bound of one, \cosh (x) \geq 1.
_Example_:
program test_cosh
@@ -4818,14 +5573,15 @@ _See also_:

File: gfortran.info, Node: COUNT, Next: CPU_TIME, Prev: COSH, Up: Intrinsic Procedures
-7.48 `COUNT' -- Count function
+8.48 `COUNT' -- Count function
==============================
_Description_:
- `COUNT(MASK [, DIM [, KIND]])' counts the number of `.TRUE.'
- elements of MASK along the dimension of DIM. If DIM is omitted it
- is taken to be `1'. DIM is a scalar of type `INTEGER' in the
- range of 1 /leq DIM /leq n) where n is the rank of MASK.
+ Counts the number of `.TRUE.' elements in a logical MASK, or, if
+ the DIM argument is supplied, counts the number of elements along
+ each row of the array in the DIM direction. If the array has zero
+ size, or all of the elements of MASK are `.FALSE.', then the
+ result is `0'.
_Standard_:
Fortran 95 and later, with KIND argument Fortran 2003 and later
@@ -4834,7 +5590,7 @@ _Class_:
Transformational function
_Syntax_:
- `RESULT = COUNT(MASK [, DIM [, KIND]])'
+ `RESULT = COUNT(MASK [, DIM, KIND])'
_Arguments_:
MASK The type shall be `LOGICAL'.
@@ -4845,8 +5601,10 @@ _Arguments_:
_Return value_:
The return value is of type `INTEGER' and of kind KIND. If KIND is
- absent, the return value is of default integer kind. The result
- has a rank equal to that of MASK.
+ absent, the return value is of default integer kind. If DIM is
+ present, the result is an array with a rank one less than the rank
+ of ARRAY, and a size corresponding to the shape of ARRAY with the
+ DIM dimension removed.
_Example_:
program test_count
@@ -4874,7 +5632,7 @@ _Example_:

File: gfortran.info, Node: CPU_TIME, Next: CSHIFT, Prev: COUNT, Up: Intrinsic Procedures
-7.49 `CPU_TIME' -- CPU elapsed time in seconds
+8.49 `CPU_TIME' -- CPU elapsed time in seconds
==============================================
_Description_:
@@ -4921,14 +5679,14 @@ _See also_:

File: gfortran.info, Node: CSHIFT, Next: CTIME, Prev: CPU_TIME, Up: Intrinsic Procedures
-7.50 `CSHIFT' -- Circular shift elements of an array
+8.50 `CSHIFT' -- Circular shift elements of an array
====================================================
_Description_:
`CSHIFT(ARRAY, SHIFT [, DIM])' performs a circular shift on
elements of ARRAY along the dimension of DIM. If DIM is omitted
it is taken to be `1'. DIM is a scalar of type `INTEGER' in the
- range of 1 /leq DIM /leq n) where n is the rank of ARRAY. If the
+ range of 1 \leq DIM \leq n) where n is the rank of ARRAY. If the
rank of ARRAY is one, then all elements of ARRAY are shifted by
SHIFT places. If rank is greater than one, then all complete rank
one sections of ARRAY along the given dimension are shifted.
@@ -4969,7 +5727,7 @@ _Example_:

File: gfortran.info, Node: CTIME, Next: DATE_AND_TIME, Prev: CSHIFT, Up: Intrinsic Procedures
-7.51 `CTIME' -- Convert a time into a string
+8.51 `CTIME' -- Convert a time into a string
============================================
_Description_:
@@ -5015,7 +5773,7 @@ _See Also_:

File: gfortran.info, Node: DATE_AND_TIME, Next: DBLE, Prev: CTIME, Up: Intrinsic Procedures
-7.52 `DATE_AND_TIME' -- Date and time subroutine
+8.52 `DATE_AND_TIME' -- Date and time subroutine
================================================
_Description_:
@@ -5082,7 +5840,7 @@ _See also_:

File: gfortran.info, Node: DBLE, Next: DCMPLX, Prev: DATE_AND_TIME, Up: Intrinsic Procedures
-7.53 `DBLE' -- Double conversion function
+8.53 `DBLE' -- Double conversion function
=========================================
_Description_:
@@ -5118,7 +5876,7 @@ _See also_:

File: gfortran.info, Node: DCMPLX, Next: DFLOAT, Prev: DBLE, Up: Intrinsic Procedures
-7.54 `DCMPLX' -- Double complex conversion function
+8.54 `DCMPLX' -- Double complex conversion function
===================================================
_Description_:
@@ -5161,7 +5919,7 @@ _Example_:

File: gfortran.info, Node: DFLOAT, Next: DIGITS, Prev: DCMPLX, Up: Intrinsic Procedures
-7.55 `DFLOAT' -- Double conversion function
+8.55 `DFLOAT' -- Double conversion function
===========================================
_Description_:
@@ -5194,7 +5952,7 @@ _See also_:

File: gfortran.info, Node: DIGITS, Next: DIM, Prev: DFLOAT, Up: Intrinsic Procedures
-7.56 `DIGITS' -- Significant binary digits function
+8.56 `DIGITS' -- Significant binary digits function
===================================================
_Description_:
@@ -5231,7 +5989,7 @@ _Example_:

File: gfortran.info, Node: DIM, Next: DOT_PRODUCT, Prev: DIGITS, Up: Intrinsic Procedures
-7.57 `DIM' -- Positive difference
+8.57 `DIM' -- Positive difference
=================================
_Description_:
@@ -5274,7 +6032,7 @@ _Specific names_:

File: gfortran.info, Node: DOT_PRODUCT, Next: DPROD, Prev: DIM, Up: Intrinsic Procedures
-7.58 `DOT_PRODUCT' -- Dot product function
+8.58 `DOT_PRODUCT' -- Dot product function
==========================================
_Description_:
@@ -5323,7 +6081,7 @@ _Example_:

File: gfortran.info, Node: DPROD, Next: DREAL, Prev: DOT_PRODUCT, Up: Intrinsic Procedures
-7.59 `DPROD' -- Double product function
+8.59 `DPROD' -- Double product function
=======================================
_Description_:
@@ -5357,7 +6115,7 @@ _Example_:

File: gfortran.info, Node: DREAL, Next: DTIME, Prev: DPROD, Up: Intrinsic Procedures
-7.60 `DREAL' -- Double real part function
+8.60 `DREAL' -- Double real part function
=========================================
_Description_:
@@ -5391,15 +6149,15 @@ _See also_:

File: gfortran.info, Node: DTIME, Next: EOSHIFT, Prev: DREAL, Up: Intrinsic Procedures
-7.61 `DTIME' -- Execution time subroutine (or function)
+8.61 `DTIME' -- Execution time subroutine (or function)
=======================================================
_Description_:
- `DTIME(TARRAY, RESULT)' initially returns the number of seconds of
- runtime since the start of the process's execution in RESULT.
- TARRAY returns the user and system components of this time in
- `TARRAY(1)' and `TARRAY(2)' respectively. RESULT is equal to
- `TARRAY(1) + TARRAY(2)'.
+ `DTIME(VALUES, TIME)' initially returns the number of seconds of
+ runtime since the start of the process's execution in TIME. VALUES
+ returns the user and system components of this time in `VALUES(1)'
+ and `VALUES(2)' respectively. TIME is equal to `VALUES(1) +
+ VALUES(2)'.
Subsequent invocations of `DTIME' return values accumulated since
the previous invocation.
@@ -5421,11 +6179,11 @@ _Description_:
This intrinsic is provided in both subroutine and function forms;
however, only one form can be used in any given program unit.
- TARRAY and RESULT are `INTENT(OUT)' and provide the following:
+ VALUES and TIME are `INTENT(OUT)' and provide the following:
- `TARRAY(1)': User time in seconds.
- `TARRAY(2)': System time in seconds.
- `RESULT': Run time since start in
+ `VALUES(1)': User time in seconds.
+ `VALUES(2)': System time in seconds.
+ `TIME': Run time since start in
seconds.
_Standard_:
@@ -5435,12 +6193,12 @@ _Class_:
Subroutine, function
_Syntax_:
- `CALL DTIME(TARRAY, RESULT)'.
- `RESULT = DTIME(TARRAY)', (not recommended).
+ `CALL DTIME(VALUES, TIME)'.
+ `TIME = DTIME(VALUES)', (not recommended).
_Arguments_:
- TARRAY The type shall be `REAL, DIMENSION(2)'.
- RESULT The type shall be `REAL'.
+ VALUES The type shall be `REAL(4), DIMENSION(2)'.
+ TIME The type shall be `REAL(4)'.
_Return value_:
Elapsed time in seconds since the last invocation or since the
@@ -5471,14 +6229,14 @@ _See also_:

File: gfortran.info, Node: EOSHIFT, Next: EPSILON, Prev: DTIME, Up: Intrinsic Procedures
-7.62 `EOSHIFT' -- End-off shift elements of an array
+8.62 `EOSHIFT' -- End-off shift elements of an array
====================================================
_Description_:
`EOSHIFT(ARRAY, SHIFT[, BOUNDARY, DIM])' performs an end-off shift
on elements of ARRAY along the dimension of DIM. If DIM is
omitted it is taken to be `1'. DIM is a scalar of type `INTEGER'
- in the range of 1 /leq DIM /leq n) where n is the rank of ARRAY.
+ in the range of 1 \leq DIM \leq n) where n is the rank of ARRAY.
If the rank of ARRAY is one, then all elements of ARRAY are
shifted by SHIFT places. If rank is greater than one, then all
complete rank one sections of ARRAY along the given dimension are
@@ -5529,7 +6287,7 @@ _Example_:

File: gfortran.info, Node: EPSILON, Next: ERF, Prev: EOSHIFT, Up: Intrinsic Procedures
-7.63 `EPSILON' -- Epsilon function
+8.63 `EPSILON' -- Epsilon function
==================================
_Description_:
@@ -5562,7 +6320,7 @@ _Example_:

File: gfortran.info, Node: ERF, Next: ERFC, Prev: EPSILON, Up: Intrinsic Procedures
-7.64 `ERF' -- Error function
+8.64 `ERF' -- Error function
============================
_Description_:
@@ -5597,7 +6355,7 @@ _Specific names_:

File: gfortran.info, Node: ERFC, Next: ERFC_SCALED, Prev: ERF, Up: Intrinsic Procedures
-7.65 `ERFC' -- Error function
+8.65 `ERFC' -- Error function
=============================
_Description_:
@@ -5632,7 +6390,7 @@ _Specific names_:

File: gfortran.info, Node: ERFC_SCALED, Next: ETIME, Prev: ERFC, Up: Intrinsic Procedures
-7.66 `ERFC_SCALED' -- Error function
+8.66 `ERFC_SCALED' -- Error function
====================================
_Description_:
@@ -5663,15 +6421,15 @@ _Example_:

File: gfortran.info, Node: ETIME, Next: EXIT, Prev: ERFC_SCALED, Up: Intrinsic Procedures
-7.67 `ETIME' -- Execution time subroutine (or function)
+8.67 `ETIME' -- Execution time subroutine (or function)
=======================================================
_Description_:
- `ETIME(TARRAY, RESULT)' returns the number of seconds of runtime
- since the start of the process's execution in RESULT. TARRAY
- returns the user and system components of this time in `TARRAY(1)'
- and `TARRAY(2)' respectively. RESULT is equal to `TARRAY(1) +
- TARRAY(2)'.
+ `ETIME(VALUES, TIME)' returns the number of seconds of runtime
+ since the start of the process's execution in TIME. VALUES
+ returns the user and system components of this time in `VALUES(1)'
+ and `VALUES(2)' respectively. TIME is equal to `VALUES(1) +
+ VALUES(2)'.
On some systems, the underlying timings are represented using
types with sufficiently small limits that overflows (wrap around)
@@ -5683,11 +6441,11 @@ _Description_:
This intrinsic is provided in both subroutine and function forms;
however, only one form can be used in any given program unit.
- TARRAY and RESULT are `INTENT(OUT)' and provide the following:
+ VALUES and TIME are `INTENT(OUT)' and provide the following:
- `TARRAY(1)': User time in seconds.
- `TARRAY(2)': System time in seconds.
- `RESULT': Run time since start in seconds.
+ `VALUES(1)': User time in seconds.
+ `VALUES(2)': System time in seconds.
+ `TIME': Run time since start in seconds.
_Standard_:
GNU extension
@@ -5696,12 +6454,12 @@ _Class_:
Subroutine, function
_Syntax_:
- `CALL ETIME(TARRAY, RESULT)'.
- `RESULT = ETIME(TARRAY)', (not recommended).
+ `CALL ETIME(VALUES, TIME)'.
+ `TIME = ETIME(VALUES)', (not recommended).
_Arguments_:
- TARRAY The type shall be `REAL, DIMENSION(2)'.
- RESULT The type shall be `REAL'.
+ VALUES The type shall be `REAL(4), DIMENSION(2)'.
+ TIME The type shall be `REAL(4)'.
_Return value_:
Elapsed time in seconds since the start of program execution.
@@ -5731,7 +6489,7 @@ _See also_:

File: gfortran.info, Node: EXIT, Next: EXP, Prev: ETIME, Up: Intrinsic Procedures
-7.68 `EXIT' -- Exit the program with status.
+8.68 `EXIT' -- Exit the program with status.
============================================
_Description_:
@@ -5767,7 +6525,7 @@ _See also_:

File: gfortran.info, Node: EXP, Next: EXPONENT, Prev: EXIT, Up: Intrinsic Procedures
-7.69 `EXP' -- Exponential function
+8.69 `EXP' -- Exponential function
==================================
_Description_:
@@ -5808,7 +6566,7 @@ _Specific names_:

File: gfortran.info, Node: EXPONENT, Next: FDATE, Prev: EXP, Up: Intrinsic Procedures
-7.70 `EXPONENT' -- Exponent function
+8.70 `EXPONENT' -- Exponent function
====================================
_Description_:
@@ -5842,7 +6600,7 @@ _Example_:

File: gfortran.info, Node: FDATE, Next: FGET, Prev: EXPONENT, Up: Intrinsic Procedures
-7.71 `FDATE' -- Get the current time as a string
+8.71 `FDATE' -- Get the current time as a string
================================================
_Description_:
@@ -5887,7 +6645,7 @@ _Example_:

File: gfortran.info, Node: FLOAT, Next: FLOOR, Prev: FGETC, Up: Intrinsic Procedures
-7.72 `FLOAT' -- Convert integer to default real
+8.72 `FLOAT' -- Convert integer to default real
===============================================
_Description_:
@@ -5920,7 +6678,7 @@ _See also_:

File: gfortran.info, Node: FGET, Next: FGETC, Prev: FDATE, Up: Intrinsic Procedures
-7.73 `FGET' -- Read a single character in stream mode from stdin
+8.73 `FGET' -- Read a single character in stream mode from stdin
================================================================
_Description_:
@@ -5975,7 +6733,7 @@ _See also_:

File: gfortran.info, Node: FGETC, Next: FLOAT, Prev: FGET, Up: Intrinsic Procedures
-7.74 `FGETC' -- Read a single character in stream mode
+8.74 `FGETC' -- Read a single character in stream mode
======================================================
_Description_:
@@ -6030,7 +6788,7 @@ _See also_:

File: gfortran.info, Node: FLOOR, Next: FLUSH, Prev: FLOAT, Up: Intrinsic Procedures
-7.75 `FLOOR' -- Integer floor function
+8.75 `FLOOR' -- Integer floor function
======================================
_Description_:
@@ -6070,7 +6828,7 @@ _See also_:

File: gfortran.info, Node: FLUSH, Next: FNUM, Prev: FLOOR, Up: Intrinsic Procedures
-7.76 `FLUSH' -- Flush I/O unit(s)
+8.76 `FLUSH' -- Flush I/O unit(s)
=================================
_Description_:
@@ -6098,7 +6856,7 @@ _Note_:

File: gfortran.info, Node: FNUM, Next: FPUT, Prev: FLUSH, Up: Intrinsic Procedures
-7.77 `FNUM' -- File number function
+8.77 `FNUM' -- File number function
===================================
_Description_:
@@ -6132,7 +6890,7 @@ _Example_:

File: gfortran.info, Node: FPUT, Next: FPUTC, Prev: FNUM, Up: Intrinsic Procedures
-7.78 `FPUT' -- Write a single character in stream mode to stdout
+8.78 `FPUT' -- Write a single character in stream mode to stdout
================================================================
_Description_:
@@ -6181,7 +6939,7 @@ _See also_:

File: gfortran.info, Node: FPUTC, Next: FRACTION, Prev: FPUT, Up: Intrinsic Procedures
-7.79 `FPUTC' -- Write a single character in stream mode
+8.79 `FPUTC' -- Write a single character in stream mode
=======================================================
_Description_:
@@ -6234,7 +6992,7 @@ _See also_:

File: gfortran.info, Node: FRACTION, Next: FREE, Prev: FPUTC, Up: Intrinsic Procedures
-7.80 `FRACTION' -- Fractional part of the model representation
+8.80 `FRACTION' -- Fractional part of the model representation
==============================================================
_Description_:
@@ -6269,7 +7027,7 @@ _Example_:

File: gfortran.info, Node: FREE, Next: FSEEK, Prev: FRACTION, Up: Intrinsic Procedures
-7.81 `FREE' -- Frees memory
+8.81 `FREE' -- Frees memory
===========================
_Description_:
@@ -6305,7 +7063,7 @@ _See also_:

File: gfortran.info, Node: FSEEK, Next: FSTAT, Prev: FREE, Up: Intrinsic Procedures
-7.82 `FSEEK' -- Low level file positioning subroutine
+8.82 `FSEEK' -- Low level file positioning subroutine
=====================================================
_Description_:
@@ -6375,14 +7133,14 @@ _See also_:

File: gfortran.info, Node: FSTAT, Next: FTELL, Prev: FSEEK, Up: Intrinsic Procedures
-7.83 `FSTAT' -- Get file status
+8.83 `FSTAT' -- Get file status
===============================
_Description_:
`FSTAT' is identical to *note STAT::, except that information
about an already opened file is obtained.
- The elements in `BUFF' are the same as described by *note STAT::.
+ The elements in `VALUES' are the same as described by *note STAT::.
This intrinsic is provided in both subroutine and function forms;
however, only one form can be used in any given program unit.
@@ -6394,11 +7152,11 @@ _Class_:
Subroutine, function
_Syntax_:
- `CALL FSTAT(UNIT, BUFF [, STATUS])'
+ `CALL FSTAT(UNIT, VALUES [, STATUS])'
_Arguments_:
UNIT An open I/O unit number of type `INTEGER'.
- BUFF The type shall be `INTEGER(4), DIMENSION(13)'.
+ VALUES The type shall be `INTEGER(4), DIMENSION(13)'.
STATUS (Optional) status flag of type `INTEGER(4)'.
Returns 0 on success and a system specific
error code otherwise.
@@ -6412,7 +7170,7 @@ _See also_:

File: gfortran.info, Node: FTELL, Next: GAMMA, Prev: FSTAT, Up: Intrinsic Procedures
-7.84 `FTELL' -- Current stream position
+8.84 `FTELL' -- Current stream position
=======================================
_Description_:
@@ -6453,7 +7211,7 @@ _See also_:

File: gfortran.info, Node: GAMMA, Next: GERROR, Prev: FTELL, Up: Intrinsic Procedures
-7.85 `GAMMA' -- Gamma function
+8.85 `GAMMA' -- Gamma function
==============================
_Description_:
@@ -6495,7 +7253,7 @@ _See also_:

File: gfortran.info, Node: GERROR, Next: GETARG, Prev: GAMMA, Up: Intrinsic Procedures
-7.86 `GERROR' -- Get last system error message
+8.86 `GERROR' -- Get last system error message
==============================================
_Description_:
@@ -6527,7 +7285,7 @@ _See also_:

File: gfortran.info, Node: GETARG, Next: GET_COMMAND, Prev: GERROR, Up: Intrinsic Procedures
-7.87 `GETARG' -- Get command line arguments
+8.87 `GETARG' -- Get command line arguments
===========================================
_Description_:
@@ -6583,7 +7341,7 @@ _See also_:

File: gfortran.info, Node: GET_COMMAND, Next: GET_COMMAND_ARGUMENT, Prev: GETARG, Up: Intrinsic Procedures
-7.88 `GET_COMMAND' -- Get the entire command line
+8.88 `GET_COMMAND' -- Get the entire command line
=================================================
_Description_:
@@ -6597,16 +7355,23 @@ _Class_:
Subroutine
_Syntax_:
- `CALL GET_COMMAND(COMMAND)'
+ `CALL GET_COMMAND([COMMAND, LENGTH, STATUS])'
_Arguments_:
- COMMAND Shall be of type `CHARACTER' and of default
- kind.
+ COMMAND (Optional) shall be of type `CHARACTER' and of
+ default kind.
+ LENGTH (Optional) Shall be of type `INTEGER' and of
+ default kind.
+ STATUS (Optional) Shall be of type `INTEGER' and of
+ default kind.
_Return value_:
- Stores the entire command line that was used to invoke the program
- in COMMAND. If COMMAND is not large enough, the command will be
- truncated.
+ If COMMAND is present, stores the entire command line that was used
+ to invoke the program in COMMAND. If LENGTH is present, it is
+ assigned the length of the command line. If STATUS is present, it
+ is assigned 0 upon success of the command, -1 if COMMAND is too
+ short to store the command line, or a positive value in case of an
+ error.
_Example_:
PROGRAM test_get_command
@@ -6621,7 +7386,7 @@ _See also_:

File: gfortran.info, Node: GET_COMMAND_ARGUMENT, Next: GETCWD, Prev: GET_COMMAND, Up: Intrinsic Procedures
-7.89 `GET_COMMAND_ARGUMENT' -- Get command line arguments
+8.89 `GET_COMMAND_ARGUMENT' -- Get command line arguments
=========================================================
_Description_:
@@ -6638,14 +7403,14 @@ _Syntax_:
`CALL GET_COMMAND_ARGUMENT(NUMBER [, VALUE, LENGTH, STATUS])'
_Arguments_:
- NUMBER Shall be a scalar of type `INTEGER(4)', NUMBER
- \geq 0
+ NUMBER Shall be a scalar of type `INTEGER' and of
+ default kind, NUMBER \geq 0
VALUE Shall be a scalar of type `CHARACTER' and of
default kind.
- LENGTH (Option) Shall be a scalar of type
- `INTEGER(4)'.
- STATUS (Option) Shall be a scalar of type
- `INTEGER(4)'.
+ LENGTH (Option) Shall be a scalar of type `INTEGER'
+ and of default kind.
+ STATUS (Option) Shall be a scalar of type `INTEGER'
+ and of default kind.
_Return value_:
After `GET_COMMAND_ARGUMENT' returns, the VALUE argument holds the
@@ -6680,7 +7445,7 @@ _See also_:

File: gfortran.info, Node: GETCWD, Next: GETENV, Prev: GET_COMMAND_ARGUMENT, Up: Intrinsic Procedures
-7.90 `GETCWD' -- Get current working directory
+8.90 `GETCWD' -- Get current working directory
==============================================
_Description_:
@@ -6718,7 +7483,7 @@ _See also_:

File: gfortran.info, Node: GETENV, Next: GET_ENVIRONMENT_VARIABLE, Prev: GETCWD, Up: Intrinsic Procedures
-7.91 `GETENV' -- Get an environmental variable
+8.91 `GETENV' -- Get an environmental variable
==============================================
_Description_:
@@ -6762,7 +7527,7 @@ _See also_:

File: gfortran.info, Node: GET_ENVIRONMENT_VARIABLE, Next: GETGID, Prev: GETENV, Up: Intrinsic Procedures
-7.92 `GET_ENVIRONMENT_VARIABLE' -- Get an environmental variable
+8.92 `GET_ENVIRONMENT_VARIABLE' -- Get an environmental variable
================================================================
_Description_:
@@ -6779,11 +7544,16 @@ _Syntax_:
TRIM_NAME)'
_Arguments_:
- NAME Shall be a scalar of type `CHARACTER(1)'.
- VALUE Shall be a scalar of type `CHARACTER(1)'.
- LENGTH Shall be a scalar of type `INTEGER(4)'.
- STATUS Shall be a scalar of type `INTEGER(4)'.
- TRIM_NAME Shall be a scalar of type `LOGICAL(4)'.
+ NAME Shall be a scalar of type `CHARACTER' and of
+ default kind.
+ VALUE Shall be a scalar of type `CHARACTER' and of
+ default kind.
+ LENGTH Shall be a scalar of type `INTEGER' and of
+ default kind.
+ STATUS Shall be a scalar of type `INTEGER' and of
+ default kind.
+ TRIM_NAME Shall be a scalar of type `LOGICAL' and of
+ default kind.
_Return value_:
Stores the value of NAME in VALUE. If VALUE is not large enough to
@@ -6808,7 +7578,7 @@ _Example_:

File: gfortran.info, Node: GETGID, Next: GETLOG, Prev: GET_ENVIRONMENT_VARIABLE, Up: Intrinsic Procedures
-7.93 `GETGID' -- Group ID function
+8.93 `GETGID' -- Group ID function
==================================
_Description_:
@@ -6835,7 +7605,7 @@ _See also_:

File: gfortran.info, Node: GETLOG, Next: GETPID, Prev: GETGID, Up: Intrinsic Procedures
-7.94 `GETLOG' -- Get login name
+8.94 `GETLOG' -- Get login name
===============================
_Description_:
@@ -6873,7 +7643,7 @@ _See also_:

File: gfortran.info, Node: GETPID, Next: GETUID, Prev: GETLOG, Up: Intrinsic Procedures
-7.95 `GETPID' -- Process ID function
+8.95 `GETPID' -- Process ID function
====================================
_Description_:
@@ -6904,7 +7674,7 @@ _See also_:

File: gfortran.info, Node: GETUID, Next: GMTIME, Prev: GETPID, Up: Intrinsic Procedures
-7.96 `GETUID' -- User ID function
+8.96 `GETUID' -- User ID function
=================================
_Description_:
@@ -6931,7 +7701,7 @@ _See also_:

File: gfortran.info, Node: GMTIME, Next: HOSTNM, Prev: GETUID, Up: Intrinsic Procedures
-7.97 `GMTIME' -- Convert time to GMT info
+8.97 `GMTIME' -- Convert time to GMT info
=========================================
_Description_:
@@ -6985,7 +7755,7 @@ _See also_:

File: gfortran.info, Node: HOSTNM, Next: HUGE, Prev: GMTIME, Up: Intrinsic Procedures
-7.98 `HOSTNM' -- Get system host name
+8.98 `HOSTNM' -- Get system host name
=====================================
_Description_:
@@ -7019,7 +7789,7 @@ _Return value_:

File: gfortran.info, Node: HUGE, Next: HYPOT, Prev: HOSTNM, Up: Intrinsic Procedures
-7.99 `HUGE' -- Largest number of a kind
+8.99 `HUGE' -- Largest number of a kind
=======================================
_Description_:
@@ -7050,7 +7820,7 @@ _Example_:

File: gfortran.info, Node: HYPOT, Next: IACHAR, Prev: HUGE, Up: Intrinsic Procedures
-7.100 `HYPOT' -- Euclidean distance function
+8.100 `HYPOT' -- Euclidean distance function
============================================
_Description_:
@@ -7083,7 +7853,7 @@ _Example_:

File: gfortran.info, Node: IACHAR, Next: IAND, Prev: HYPOT, Up: Intrinsic Procedures
-7.101 `IACHAR' -- Code in ASCII collating sequence
+8.101 `IACHAR' -- Code in ASCII collating sequence
==================================================
_Description_:
@@ -7127,7 +7897,7 @@ _See also_:

File: gfortran.info, Node: IAND, Next: IARGC, Prev: IACHAR, Up: Intrinsic Procedures
-7.102 `IAND' -- Bitwise logical and
+8.102 `IAND' -- Bitwise logical and
===================================
_Description_:
@@ -7168,7 +7938,7 @@ _See also_:

File: gfortran.info, Node: IARGC, Next: IBCLR, Prev: IAND, Up: Intrinsic Procedures
-7.103 `IARGC' -- Get the number of command line arguments
+8.103 `IARGC' -- Get the number of command line arguments
=========================================================
_Description_:
@@ -7207,7 +7977,7 @@ _See also_:

File: gfortran.info, Node: IBCLR, Next: IBITS, Prev: IARGC, Up: Intrinsic Procedures
-7.104 `IBCLR' -- Clear bit
+8.104 `IBCLR' -- Clear bit
==========================
_Description_:
@@ -7238,7 +8008,7 @@ _See also_:

File: gfortran.info, Node: IBITS, Next: IBSET, Prev: IBCLR, Up: Intrinsic Procedures
-7.105 `IBITS' -- Bit extraction
+8.105 `IBITS' -- Bit extraction
===============================
_Description_:
@@ -7271,7 +8041,7 @@ _See also_:

File: gfortran.info, Node: IBSET, Next: ICHAR, Prev: IBITS, Up: Intrinsic Procedures
-7.106 `IBSET' -- Set bit
+8.106 `IBSET' -- Set bit
========================
_Description_:
@@ -7302,7 +8072,7 @@ _See also_:

File: gfortran.info, Node: ICHAR, Next: IDATE, Prev: IBSET, Up: Intrinsic Procedures
-7.107 `ICHAR' -- Character-to-integer conversion function
+8.107 `ICHAR' -- Character-to-integer conversion function
=========================================================
_Description_:
@@ -7364,13 +8134,13 @@ _See also_:

File: gfortran.info, Node: IDATE, Next: IEOR, Prev: ICHAR, Up: Intrinsic Procedures
-7.108 `IDATE' -- Get current local time subroutine (day/month/year)
+8.108 `IDATE' -- Get current local time subroutine (day/month/year)
===================================================================
_Description_:
- `IDATE(TARRAY)' Fills TARRAY with the numerical values at the
+ `IDATE(VALUES)' Fills VALUES with the numerical values at the
current local time. The day (in the range 1-31), month (in the
- range 1-12), and year appear in elements 1, 2, and 3 of TARRAY,
+ range 1-12), and year appear in elements 1, 2, and 3 of VALUES,
respectively. The year has four significant digits.
_Standard_:
@@ -7401,7 +8171,7 @@ _Example_:

File: gfortran.info, Node: IEOR, Next: IERRNO, Prev: IDATE, Up: Intrinsic Procedures
-7.109 `IEOR' -- Bitwise logical exclusive or
+8.109 `IEOR' -- Bitwise logical exclusive or
============================================
_Description_:
@@ -7434,7 +8204,7 @@ _See also_:

File: gfortran.info, Node: IERRNO, Next: INDEX intrinsic, Prev: IEOR, Up: Intrinsic Procedures
-7.110 `IERRNO' -- Get the last system error number
+8.110 `IERRNO' -- Get the last system error number
==================================================
_Description_:
@@ -7463,7 +8233,7 @@ _See also_:

File: gfortran.info, Node: INDEX intrinsic, Next: INT, Prev: IERRNO, Up: Intrinsic Procedures
-7.111 `INDEX' -- Position of a substring within a string
+8.111 `INDEX' -- Position of a substring within a string
========================================================
_Description_:
@@ -7503,7 +8273,7 @@ _See also_:

File: gfortran.info, Node: INT, Next: INT2, Prev: INDEX intrinsic, Up: Intrinsic Procedures
-7.112 `INT' -- Convert to integer type
+8.112 `INT' -- Convert to integer type
======================================
_Description_:
@@ -7561,7 +8331,7 @@ _Specific names_:

File: gfortran.info, Node: INT2, Next: INT8, Prev: INT, Up: Intrinsic Procedures
-7.113 `INT2' -- Convert to 16-bit integer type
+8.113 `INT2' -- Convert to 16-bit integer type
==============================================
_Description_:
@@ -7593,7 +8363,7 @@ _See also_:

File: gfortran.info, Node: INT8, Next: IOR, Prev: INT2, Up: Intrinsic Procedures
-7.114 `INT8' -- Convert to 64-bit integer type
+8.114 `INT8' -- Convert to 64-bit integer type
==============================================
_Description_:
@@ -7623,7 +8393,7 @@ _See also_:

File: gfortran.info, Node: IOR, Next: IRAND, Prev: INT8, Up: Intrinsic Procedures
-7.115 `IOR' -- Bitwise logical or
+8.115 `IOR' -- Bitwise logical or
=================================
_Description_:
@@ -7656,7 +8426,7 @@ _See also_:

File: gfortran.info, Node: IRAND, Next: IS_IOSTAT_END, Prev: IOR, Up: Intrinsic Procedures
-7.116 `IRAND' -- Integer pseudo-random number
+8.116 `IRAND' -- Integer pseudo-random number
=============================================
_Description_:
@@ -7700,7 +8470,7 @@ _Example_:

File: gfortran.info, Node: IS_IOSTAT_END, Next: IS_IOSTAT_EOR, Prev: IRAND, Up: Intrinsic Procedures
-7.117 `IS_IOSTAT_END' -- Test for end-of-file value
+8.117 `IS_IOSTAT_END' -- Test for end-of-file value
===================================================
_Description_:
@@ -7738,7 +8508,7 @@ _Example_:

File: gfortran.info, Node: IS_IOSTAT_EOR, Next: ISATTY, Prev: IS_IOSTAT_END, Up: Intrinsic Procedures
-7.118 `IS_IOSTAT_EOR' -- Test for end-of-record value
+8.118 `IS_IOSTAT_EOR' -- Test for end-of-record value
=====================================================
_Description_:
@@ -7776,7 +8546,7 @@ _Example_:

File: gfortran.info, Node: ISATTY, Next: ISHFT, Prev: IS_IOSTAT_EOR, Up: Intrinsic Procedures
-7.119 `ISATTY' -- Whether a unit is a terminal device.
+8.119 `ISATTY' -- Whether a unit is a terminal device.
======================================================
_Description_:
@@ -7812,7 +8582,7 @@ _See also_:

File: gfortran.info, Node: ISHFT, Next: ISHFTC, Prev: ISATTY, Up: Intrinsic Procedures
-7.120 `ISHFT' -- Shift bits
+8.120 `ISHFT' -- Shift bits
===========================
_Description_:
@@ -7846,7 +8616,7 @@ _See also_:

File: gfortran.info, Node: ISHFTC, Next: ISNAN, Prev: ISHFT, Up: Intrinsic Procedures
-7.121 `ISHFTC' -- Shift bits circularly
+8.121 `ISHFTC' -- Shift bits circularly
=======================================
_Description_:
@@ -7884,7 +8654,7 @@ _See also_:

File: gfortran.info, Node: ISNAN, Next: ITIME, Prev: ISHFTC, Up: Intrinsic Procedures
-7.122 `ISNAN' -- Test for a NaN
+8.122 `ISNAN' -- Test for a NaN
===============================
_Description_:
@@ -7919,7 +8689,7 @@ _Example_:

File: gfortran.info, Node: ITIME, Next: KILL, Prev: ISNAN, Up: Intrinsic Procedures
-7.123 `ITIME' -- Get current local time subroutine (hour/minutes/seconds)
+8.123 `ITIME' -- Get current local time subroutine (hour/minutes/seconds)
=========================================================================
_Description_:
@@ -7956,7 +8726,7 @@ _Example_:

File: gfortran.info, Node: KILL, Next: KIND, Prev: ITIME, Up: Intrinsic Procedures
-7.124 `KILL' -- Send a signal to a process
+8.124 `KILL' -- Send a signal to a process
==========================================
_Description_:
@@ -7987,7 +8757,7 @@ _See also_:

File: gfortran.info, Node: KIND, Next: LBOUND, Prev: KILL, Up: Intrinsic Procedures
-7.125 `KIND' -- Kind of an entity
+8.125 `KIND' -- Kind of an entity
=================================
_Description_:
@@ -8023,7 +8793,7 @@ _Example_:

File: gfortran.info, Node: LBOUND, Next: LEADZ, Prev: KIND, Up: Intrinsic Procedures
-7.126 `LBOUND' -- Lower dimension bounds of an array
+8.126 `LBOUND' -- Lower dimension bounds of an array
====================================================
_Description_:
@@ -8062,7 +8832,7 @@ _See also_:

File: gfortran.info, Node: LEADZ, Next: LEN, Prev: LBOUND, Up: Intrinsic Procedures
-7.127 `LEADZ' -- Number of leading zero bits of an integer
+8.127 `LEADZ' -- Number of leading zero bits of an integer
==========================================================
_Description_:
@@ -8095,7 +8865,7 @@ _See also_:

File: gfortran.info, Node: LEN, Next: LEN_TRIM, Prev: LEADZ, Up: Intrinsic Procedures
-7.128 `LEN' -- Length of a character entity
+8.128 `LEN' -- Length of a character entity
===========================================
_Description_:
@@ -8128,9 +8898,9 @@ _See also_:
*note LEN_TRIM::, *note ADJUSTL::, *note ADJUSTR::

-File: gfortran.info, Node: LEN_TRIM, Next: LOG_GAMMA, Prev: LEN, Up: Intrinsic Procedures
+File: gfortran.info, Node: LEN_TRIM, Next: LGE, Prev: LEN, Up: Intrinsic Procedures
-7.129 `LEN_TRIM' -- Length of a character entity without trailing blank characters
+8.129 `LEN_TRIM' -- Length of a character entity without trailing blank characters
==================================================================================
_Description_:
@@ -8161,9 +8931,9 @@ _See also_:
*note LEN::, *note ADJUSTL::, *note ADJUSTR::

-File: gfortran.info, Node: LGE, Next: LGT, Prev: LOG_GAMMA, Up: Intrinsic Procedures
+File: gfortran.info, Node: LGE, Next: LGT, Prev: LEN_TRIM, Up: Intrinsic Procedures
-7.130 `LGE' -- Lexical greater than or equal
+8.130 `LGE' -- Lexical greater than or equal
============================================
_Description_:
@@ -8202,7 +8972,7 @@ _See also_:

File: gfortran.info, Node: LGT, Next: LINK, Prev: LGE, Up: Intrinsic Procedures
-7.131 `LGT' -- Lexical greater than
+8.131 `LGT' -- Lexical greater than
===================================
_Description_:
@@ -8241,7 +9011,7 @@ _See also_:

File: gfortran.info, Node: LINK, Next: LLE, Prev: LGT, Up: Intrinsic Procedures
-7.132 `LINK' -- Create a hard link
+8.132 `LINK' -- Create a hard link
==================================
_Description_:
@@ -8275,7 +9045,7 @@ _See also_:

File: gfortran.info, Node: LLE, Next: LLT, Prev: LINK, Up: Intrinsic Procedures
-7.133 `LLE' -- Lexical less than or equal
+8.133 `LLE' -- Lexical less than or equal
=========================================
_Description_:
@@ -8315,7 +9085,7 @@ _See also_:

File: gfortran.info, Node: LLT, Next: LNBLNK, Prev: LLE, Up: Intrinsic Procedures
-7.134 `LLT' -- Lexical less than
+8.134 `LLT' -- Lexical less than
================================
_Description_:
@@ -8354,7 +9124,7 @@ _See also_:

File: gfortran.info, Node: LNBLNK, Next: LOC, Prev: LLT, Up: Intrinsic Procedures
-7.135 `LNBLNK' -- Index of the last non-blank character in a string
+8.135 `LNBLNK' -- Index of the last non-blank character in a string
===================================================================
_Description_:
@@ -8384,7 +9154,7 @@ _See also_:

File: gfortran.info, Node: LOC, Next: LOG, Prev: LNBLNK, Up: Intrinsic Procedures
-7.136 `LOC' -- Returns the address of a variable
+8.136 `LOC' -- Returns the address of a variable
================================================
_Description_:
@@ -8417,7 +9187,7 @@ _Example_:

File: gfortran.info, Node: LOG, Next: LOG10, Prev: LOC, Up: Intrinsic Procedures
-7.137 `LOG' -- Logarithm function
+8.137 `LOG' -- Logarithm function
=================================
_Description_:
@@ -8460,9 +9230,9 @@ _Specific names_:
X'

-File: gfortran.info, Node: LOG10, Next: LOGICAL, Prev: LOG, Up: Intrinsic Procedures
+File: gfortran.info, Node: LOG10, Next: LOG_GAMMA, Prev: LOG, Up: Intrinsic Procedures
-7.138 `LOG10' -- Base 10 logarithm function
+8.138 `LOG10' -- Base 10 logarithm function
===========================================
_Description_:
@@ -8498,9 +9268,9 @@ _Specific names_:
later

-File: gfortran.info, Node: LOG_GAMMA, Next: LGE, Prev: LEN_TRIM, Up: Intrinsic Procedures
+File: gfortran.info, Node: LOG_GAMMA, Next: LOGICAL, Prev: LOG10, Up: Intrinsic Procedures
-7.139 `LOG_GAMMA' -- Logarithm of the Gamma function
+8.139 `LOG_GAMMA' -- Logarithm of the Gamma function
====================================================
_Description_:
@@ -8540,9 +9310,9 @@ _See also_:

-File: gfortran.info, Node: LOGICAL, Next: LONG, Prev: LOG10, Up: Intrinsic Procedures
+File: gfortran.info, Node: LOGICAL, Next: LONG, Prev: LOG_GAMMA, Up: Intrinsic Procedures
-7.140 `LOGICAL' -- Convert to logical type
+8.140 `LOGICAL' -- Convert to logical type
==========================================
_Description_:
@@ -8574,7 +9344,7 @@ _See also_:

File: gfortran.info, Node: LONG, Next: LSHIFT, Prev: LOGICAL, Up: Intrinsic Procedures
-7.141 `LONG' -- Convert to integer type
+8.141 `LONG' -- Convert to integer type
=======================================
_Description_:
@@ -8605,7 +9375,7 @@ _See also_:

File: gfortran.info, Node: LSHIFT, Next: LSTAT, Prev: LONG, Up: Intrinsic Procedures
-7.142 `LSHIFT' -- Left shift bits
+8.142 `LSHIFT' -- Left shift bits
=================================
_Description_:
@@ -8641,7 +9411,7 @@ _See also_:

File: gfortran.info, Node: LSTAT, Next: LTIME, Prev: LSHIFT, Up: Intrinsic Procedures
-7.143 `LSTAT' -- Get file status
+8.143 `LSTAT' -- Get file status
================================
_Description_:
@@ -8649,7 +9419,7 @@ _Description_:
symbolic link, then the link itself is statted, not the file that
it refers to.
- The elements in `BUFF' are the same as described by *note STAT::.
+ The elements in `VALUES' are the same as described by *note STAT::.
This intrinsic is provided in both subroutine and function forms;
however, only one form can be used in any given program unit.
@@ -8661,12 +9431,12 @@ _Class_:
Subroutine, function
_Syntax_:
- `CALL LSTAT(FILE, BUFF [, STATUS])'
+ `CALL LSTAT(NAME, VALUES [, STATUS])'
_Arguments_:
- FILE The type shall be `CHARACTER' of the default
+ NAME The type shall be `CHARACTER' of the default
kind, a valid path within the file system.
- BUFF The type shall be `INTEGER(4), DIMENSION(13)'.
+ VALUES The type shall be `INTEGER(4), DIMENSION(13)'.
STATUS (Optional) status flag of type `INTEGER(4)'.
Returns 0 on success and a system specific
error code otherwise.
@@ -8680,12 +9450,12 @@ _See also_:

File: gfortran.info, Node: LTIME, Next: MALLOC, Prev: LSTAT, Up: Intrinsic Procedures
-7.144 `LTIME' -- Convert time to local time info
+8.144 `LTIME' -- Convert time to local time info
================================================
_Description_:
- Given a system time value STIME (as provided by the `TIME8()'
- intrinsic), fills TARRAY with values extracted from it appropriate
+ Given a system time value TIME (as provided by the `TIME8()'
+ intrinsic), fills VALUES with values extracted from it appropriate
to the local time zone using `localtime(3)'.
_Standard_:
@@ -8695,16 +9465,16 @@ _Class_:
Subroutine
_Syntax_:
- `CALL LTIME(STIME, TARRAY)'
+ `CALL LTIME(TIME, VALUES)'
_Arguments_:
- STIME An `INTEGER' scalar expression corresponding
+ TIME An `INTEGER' scalar expression corresponding
to a system time, with `INTENT(IN)'.
- TARRAY A default `INTEGER' array with 9 elements,
+ VALUES A default `INTEGER' array with 9 elements,
with `INTENT(OUT)'.
_Return value_:
- The elements of TARRAY are assigned as follows:
+ The elements of VALUES are assigned as follows:
1. Seconds after the minute, range 0-59 or 0-61 to allow for leap
seconds
@@ -8733,7 +9503,7 @@ _See also_:

File: gfortran.info, Node: MALLOC, Next: MATMUL, Prev: LTIME, Up: Intrinsic Procedures
-7.145 `MALLOC' -- Allocate dynamic memory
+8.145 `MALLOC' -- Allocate dynamic memory
=========================================
_Description_:
@@ -8789,7 +9559,7 @@ _See also_:

File: gfortran.info, Node: MATMUL, Next: MAX, Prev: MALLOC, Up: Intrinsic Procedures
-7.146 `MATMUL' -- matrix multiplication
+8.146 `MATMUL' -- matrix multiplication
=======================================
_Description_:
@@ -8824,7 +9594,7 @@ _See also_:

File: gfortran.info, Node: MAX, Next: MAXEXPONENT, Prev: MATMUL, Up: Intrinsic Procedures
-7.147 `MAX' -- Maximum value of an argument list
+8.147 `MAX' -- Maximum value of an argument list
================================================
_Description_:
@@ -8869,7 +9639,7 @@ _See also_:

File: gfortran.info, Node: MAXEXPONENT, Next: MAXLOC, Prev: MAX, Up: Intrinsic Procedures
-7.148 `MAXEXPONENT' -- Maximum exponent of a real kind
+8.148 `MAXEXPONENT' -- Maximum exponent of a real kind
======================================================
_Description_:
@@ -8904,7 +9674,7 @@ _Example_:

File: gfortran.info, Node: MAXLOC, Next: MAXVAL, Prev: MAXEXPONENT, Up: Intrinsic Procedures
-7.149 `MAXLOC' -- Location of the maximum value within an array
+8.149 `MAXLOC' -- Location of the maximum value within an array
===============================================================
_Description_:
@@ -8931,8 +9701,7 @@ _Syntax_:
`RESULT = MAXLOC(ARRAY [, MASK])'
_Arguments_:
- ARRAY Shall be an array of type `INTEGER', `REAL',
- or `CHARACTER'.
+ ARRAY Shall be an array of type `INTEGER' or `REAL'.
DIM (Optional) Shall be a scalar of type
`INTEGER', with a value between one and the
rank of ARRAY, inclusive. It may not be an
@@ -8955,7 +9724,7 @@ _See also_:

File: gfortran.info, Node: MAXVAL, Next: MCLOCK, Prev: MAXLOC, Up: Intrinsic Procedures
-7.150 `MAXVAL' -- Maximum value of an array
+8.150 `MAXVAL' -- Maximum value of an array
===========================================
_Description_:
@@ -8978,8 +9747,7 @@ _Syntax_:
`RESULT = MAXVAL(ARRAY [, MASK])'
_Arguments_:
- ARRAY Shall be an array of type `INTEGER', `REAL',
- or `CHARACTER'.
+ ARRAY Shall be an array of type `INTEGER' or `REAL'.
DIM (Optional) Shall be a scalar of type
`INTEGER', with a value between one and the
rank of ARRAY, inclusive. It may not be an
@@ -9000,7 +9768,7 @@ _See also_:

File: gfortran.info, Node: MCLOCK, Next: MCLOCK8, Prev: MAXVAL, Up: Intrinsic Procedures
-7.151 `MCLOCK' -- Time function
+8.151 `MCLOCK' -- Time function
===============================
_Description_:
@@ -9035,7 +9803,7 @@ _See also_:

File: gfortran.info, Node: MCLOCK8, Next: MERGE, Prev: MCLOCK, Up: Intrinsic Procedures
-7.152 `MCLOCK8' -- Time function (64-bit)
+8.152 `MCLOCK8' -- Time function (64-bit)
=========================================
_Description_:
@@ -9073,7 +9841,7 @@ _See also_:

File: gfortran.info, Node: MERGE, Next: MIN, Prev: MCLOCK8, Up: Intrinsic Procedures
-7.153 `MERGE' -- Merge variables
+8.153 `MERGE' -- Merge variables
================================
_Description_:
@@ -9103,7 +9871,7 @@ _Return value_:

File: gfortran.info, Node: MIN, Next: MINEXPONENT, Prev: MERGE, Up: Intrinsic Procedures
-7.154 `MIN' -- Minimum value of an argument list
+8.154 `MIN' -- Minimum value of an argument list
================================================
_Description_:
@@ -9147,7 +9915,7 @@ _See also_:

File: gfortran.info, Node: MINEXPONENT, Next: MINLOC, Prev: MIN, Up: Intrinsic Procedures
-7.155 `MINEXPONENT' -- Minimum exponent of a real kind
+8.155 `MINEXPONENT' -- Minimum exponent of a real kind
======================================================
_Description_:
@@ -9176,7 +9944,7 @@ _Example_:

File: gfortran.info, Node: MINLOC, Next: MINVAL, Prev: MINEXPONENT, Up: Intrinsic Procedures
-7.156 `MINLOC' -- Location of the minimum value within an array
+8.156 `MINLOC' -- Location of the minimum value within an array
===============================================================
_Description_:
@@ -9203,8 +9971,7 @@ _Syntax_:
`RESULT = MINLOC(ARRAY [, MASK])'
_Arguments_:
- ARRAY Shall be an array of type `INTEGER', `REAL',
- or `CHARACTER'.
+ ARRAY Shall be an array of type `INTEGER' or `REAL'.
DIM (Optional) Shall be a scalar of type
`INTEGER', with a value between one and the
rank of ARRAY, inclusive. It may not be an
@@ -9227,7 +9994,7 @@ _See also_:

File: gfortran.info, Node: MINVAL, Next: MOD, Prev: MINLOC, Up: Intrinsic Procedures
-7.157 `MINVAL' -- Minimum value of an array
+8.157 `MINVAL' -- Minimum value of an array
===========================================
_Description_:
@@ -9251,8 +10018,7 @@ _Syntax_:
`RESULT = MINVAL(ARRAY [, MASK])'
_Arguments_:
- ARRAY Shall be an array of type `INTEGER', `REAL',
- or `CHARACTER'.
+ ARRAY Shall be an array of type `INTEGER' or `REAL'.
DIM (Optional) Shall be a scalar of type
`INTEGER', with a value between one and the
rank of ARRAY, inclusive. It may not be an
@@ -9274,7 +10040,7 @@ _See also_:

File: gfortran.info, Node: MOD, Next: MODULO, Prev: MINVAL, Up: Intrinsic Procedures
-7.158 `MOD' -- Remainder function
+8.158 `MOD' -- Remainder function
=================================
_Description_:
@@ -9327,7 +10093,7 @@ _Specific names_:

File: gfortran.info, Node: MODULO, Next: MOVE_ALLOC, Prev: MOD, Up: Intrinsic Procedures
-7.159 `MODULO' -- Modulo function
+8.159 `MODULO' -- Modulo function
=================================
_Description_:
@@ -9373,12 +10139,12 @@ _Example_:

File: gfortran.info, Node: MOVE_ALLOC, Next: MVBITS, Prev: MODULO, Up: Intrinsic Procedures
-7.160 `MOVE_ALLOC' -- Move allocation from one object to another
+8.160 `MOVE_ALLOC' -- Move allocation from one object to another
================================================================
_Description_:
- `MOVE_ALLOC(SRC, DEST)' moves the allocation from SRC to DEST.
- SRC will become deallocated in the process.
+ `MOVE_ALLOC(FROM, TO)' moves the allocation from FROM to TO. FROM
+ will become deallocated in the process.
_Standard_:
Fortran 2003 and later
@@ -9387,13 +10153,13 @@ _Class_:
Subroutine
_Syntax_:
- `CALL MOVE_ALLOC(SRC, DEST)'
+ `CALL MOVE_ALLOC(FROM, TO)'
_Arguments_:
- SRC `ALLOCATABLE', `INTENT(INOUT)', may be of any
+ FROM `ALLOCATABLE', `INTENT(INOUT)', may be of any
type and kind.
- DEST `ALLOCATABLE', `INTENT(OUT)', shall be of the
- same type, kind and rank as SRC.
+ TO `ALLOCATABLE', `INTENT(OUT)', shall be of the
+ same type, kind and rank as FROM.
_Return value_:
None
@@ -9412,7 +10178,7 @@ _Example_:

File: gfortran.info, Node: MVBITS, Next: NEAREST, Prev: MOVE_ALLOC, Up: Intrinsic Procedures
-7.161 `MVBITS' -- Move bits from one integer to another
+8.161 `MVBITS' -- Move bits from one integer to another
=======================================================
_Description_:
@@ -9446,7 +10212,7 @@ _See also_:

File: gfortran.info, Node: NEAREST, Next: NEW_LINE, Prev: MVBITS, Up: Intrinsic Procedures
-7.162 `NEAREST' -- Nearest representable number
+8.162 `NEAREST' -- Nearest representable number
===============================================
_Description_:
@@ -9484,7 +10250,7 @@ _Example_:

File: gfortran.info, Node: NEW_LINE, Next: NINT, Prev: NEAREST, Up: Intrinsic Procedures
-7.163 `NEW_LINE' -- New line character
+8.163 `NEW_LINE' -- New line character
======================================
_Description_:
@@ -9516,11 +10282,11 @@ _Example_:

File: gfortran.info, Node: NINT, Next: NOT, Prev: NEW_LINE, Up: Intrinsic Procedures
-7.164 `NINT' -- Nearest whole number
+8.164 `NINT' -- Nearest whole number
====================================
_Description_:
- `NINT(X)' rounds its argument to the nearest whole number.
+ `NINT(A)' rounds its argument to the nearest whole number.
_Standard_:
Fortran 77 and later, with KIND argument Fortran 90 and later
@@ -9529,10 +10295,10 @@ _Class_:
Elemental function
_Syntax_:
- `RESULT = NINT(X [, KIND])'
+ `RESULT = NINT(A [, KIND])'
_Arguments_:
- X The type of the argument shall be `REAL'.
+ A The type of the argument shall be `REAL'.
KIND (Optional) An `INTEGER' initialization
expression indicating the kind parameter of
the result.
@@ -9563,7 +10329,7 @@ _See also_:

File: gfortran.info, Node: NOT, Next: NULL, Prev: NINT, Up: Intrinsic Procedures
-7.165 `NOT' -- Logical negation
+8.165 `NOT' -- Logical negation
===============================
_Description_:
@@ -9592,7 +10358,7 @@ _See also_:

File: gfortran.info, Node: NULL, Next: OR, Prev: NOT, Up: Intrinsic Procedures
-7.166 `NULL' -- Function that returns an disassociated pointer
+8.166 `NULL' -- Function that returns an disassociated pointer
==============================================================
_Description_:
@@ -9629,7 +10395,7 @@ _See also_:

File: gfortran.info, Node: OR, Next: PACK, Prev: NULL, Up: Intrinsic Procedures
-7.167 `OR' -- Bitwise logical OR
+8.167 `OR' -- Bitwise logical OR
================================
_Description_:
@@ -9647,12 +10413,12 @@ _Class_:
Function
_Syntax_:
- `RESULT = OR(X, Y)'
+ `RESULT = OR(I, J)'
_Arguments_:
- X The type shall be either a scalar `INTEGER'
+ I The type shall be either a scalar `INTEGER'
type or a scalar `LOGICAL' type.
- Y The type shall be the same as the type of X.
+ J The type shall be the same as the type of J.
_Return value_:
The return type is either a scalar `INTEGER' or a scalar
@@ -9676,7 +10442,7 @@ _See also_:

File: gfortran.info, Node: PACK, Next: PERROR, Prev: OR, Up: Intrinsic Procedures
-7.168 `PACK' -- Pack an array into an array of rank one
+8.168 `PACK' -- Pack an array into an array of rank one
=======================================================
_Description_:
@@ -9735,7 +10501,7 @@ _See also_:

File: gfortran.info, Node: PERROR, Next: PRECISION, Prev: PACK, Up: Intrinsic Procedures
-7.169 `PERROR' -- Print system error message
+8.169 `PERROR' -- Print system error message
============================================
_Description_:
@@ -9762,7 +10528,7 @@ _See also_:

File: gfortran.info, Node: PRECISION, Next: PRESENT, Prev: PERROR, Up: Intrinsic Procedures
-7.170 `PRECISION' -- Decimal precision of a real kind
+8.170 `PRECISION' -- Decimal precision of a real kind
=====================================================
_Description_:
@@ -9797,7 +10563,7 @@ _Example_:

File: gfortran.info, Node: PRESENT, Next: PRODUCT, Prev: PRECISION, Up: Intrinsic Procedures
-7.171 `PRESENT' -- Determine whether an optional dummy argument is specified
+8.171 `PRESENT' -- Determine whether an optional dummy argument is specified
============================================================================
_Description_:
@@ -9836,7 +10602,7 @@ _Example_:

File: gfortran.info, Node: PRODUCT, Next: RADIX, Prev: PRESENT, Up: Intrinsic Procedures
-7.172 `PRODUCT' -- Product of array elements
+8.172 `PRODUCT' -- Product of array elements
============================================
_Description_:
@@ -9850,8 +10616,8 @@ _Class_:
Transformational function
_Syntax_:
- `RESULT = PRODUCT(ARRAY[, MASK])' `RESULT = PRODUCT(ARRAY, DIM[,
- MASK])'
+ `RESULT = PRODUCT(ARRAY[, MASK])'
+ `RESULT = PRODUCT(ARRAY, DIM[, MASK])'
_Arguments_:
ARRAY Shall be an array of type `INTEGER', `REAL' or
@@ -9884,7 +10650,7 @@ _See also_:

File: gfortran.info, Node: RADIX, Next: RANDOM_NUMBER, Prev: PRODUCT, Up: Intrinsic Procedures
-7.173 `RADIX' -- Base of a model number
+8.173 `RADIX' -- Base of a model number
=======================================
_Description_:
@@ -9916,7 +10682,7 @@ _Example_:

File: gfortran.info, Node: RAN, Next: REAL, Prev: RANGE, Up: Intrinsic Procedures
-7.174 `RAN' -- Real pseudo-random number
+8.174 `RAN' -- Real pseudo-random number
========================================
_Description_:
@@ -9936,7 +10702,7 @@ _See also_:

File: gfortran.info, Node: RAND, Next: RANGE, Prev: RANDOM_SEED, Up: Intrinsic Procedures
-7.175 `RAND' -- Real pseudo-random number
+8.175 `RAND' -- Real pseudo-random number
=========================================
_Description_:
@@ -9958,10 +10724,10 @@ _Class_:
Function
_Syntax_:
- `RESULT = RAND(FLAG)'
+ `RESULT = RAND(I)'
_Arguments_:
- FLAG Shall be a scalar `INTEGER' of kind 4.
+ I Shall be a scalar `INTEGER' of kind 4.
_Return value_:
The return value is of `REAL' type and the default kind.
@@ -9982,7 +10748,7 @@ _See also_:

File: gfortran.info, Node: RANDOM_NUMBER, Next: RANDOM_SEED, Prev: RADIX, Up: Intrinsic Procedures
-7.176 `RANDOM_NUMBER' -- Pseudo-random number
+8.176 `RANDOM_NUMBER' -- Pseudo-random number
=============================================
_Description_:
@@ -10033,7 +10799,7 @@ _See also_:

File: gfortran.info, Node: RANDOM_SEED, Next: RAND, Prev: RANDOM_NUMBER, Up: Intrinsic Procedures
-7.177 `RANDOM_SEED' -- Initialize a pseudo-random number sequence
+8.177 `RANDOM_SEED' -- Initialize a pseudo-random number sequence
=================================================================
_Description_:
@@ -10051,7 +10817,7 @@ _Class_:
Subroutine
_Syntax_:
- `CALL RANDOM_SEED(SIZE, PUT, GET)'
+ `CALL RANDOM_SEED([SIZE, PUT, GET])'
_Arguments_:
SIZE (Optional) Shall be a scalar and of type
@@ -10091,7 +10857,7 @@ _See also_:

File: gfortran.info, Node: RANGE, Next: RAN, Prev: RAND, Up: Intrinsic Procedures
-7.178 `RANGE' -- Decimal exponent range
+8.178 `RANGE' -- Decimal exponent range
=======================================
_Description_:
@@ -10121,13 +10887,13 @@ _Example_:

File: gfortran.info, Node: REAL, Next: RENAME, Prev: RAN, Up: Intrinsic Procedures
-7.179 `REAL' -- Convert to real type
+8.179 `REAL' -- Convert to real type
====================================
_Description_:
- `REAL(X [, KIND])' converts its argument X to a real type. The
- `REALPART(X)' function is provided for compatibility with `g77',
- and its use is strongly discouraged.
+ `REAL(A [, KIND])' converts its argument A to a real type. The
+ `REALPART' function is provided for compatibility with `g77', and
+ its use is strongly discouraged.
_Standard_:
Fortran 77 and later
@@ -10136,11 +10902,11 @@ _Class_:
Elemental function
_Syntax_:
- `RESULT = REAL(X [, KIND])'
+ `RESULT = REAL(A [, KIND])'
`RESULT = REALPART(Z)'
_Arguments_:
- X Shall be `INTEGER', `REAL', or `COMPLEX'.
+ A Shall be `INTEGER', `REAL', or `COMPLEX'.
KIND (Optional) An `INTEGER' initialization
expression indicating the kind parameter of
the result.
@@ -10150,16 +10916,16 @@ _Return value_:
following rules:
(A)
- `REAL(X)' is converted to a default real type if X is an
+ `REAL(A)' is converted to a default real type if A is an
integer or real variable.
(B)
- `REAL(X)' is converted to a real type with the kind type
- parameter of X if X is a complex variable.
+ `REAL(A)' is converted to a real type with the kind type
+ parameter of A if A is a complex variable.
(C)
- `REAL(X, KIND)' is converted to a real type with kind type
- parameter KIND if X is a complex, integer, or real variable.
+ `REAL(A, KIND)' is converted to a real type with kind type
+ parameter KIND if A is a complex, integer, or real variable.
_Example_:
program test_real
@@ -10174,7 +10940,7 @@ _See also_:

File: gfortran.info, Node: RENAME, Next: REPEAT, Prev: REAL, Up: Intrinsic Procedures
-7.180 `RENAME' -- Rename a file
+8.180 `RENAME' -- Rename a file
===============================
_Description_:
@@ -10209,7 +10975,7 @@ _See also_:

File: gfortran.info, Node: REPEAT, Next: RESHAPE, Prev: RENAME, Up: Intrinsic Procedures
-7.181 `REPEAT' -- Repeated string concatenation
+8.181 `REPEAT' -- Repeated string concatenation
===============================================
_Description_:
@@ -10240,7 +11006,7 @@ _Example_:

File: gfortran.info, Node: RESHAPE, Next: RRSPACING, Prev: REPEAT, Up: Intrinsic Procedures
-7.182 `RESHAPE' -- Function to reshape an array
+8.182 `RESHAPE' -- Function to reshape an array
===============================================
_Description_:
@@ -10286,7 +11052,7 @@ _See also_:

File: gfortran.info, Node: RRSPACING, Next: RSHIFT, Prev: RESHAPE, Up: Intrinsic Procedures
-7.183 `RRSPACING' -- Reciprocal of the relative spacing
+8.183 `RRSPACING' -- Reciprocal of the relative spacing
=======================================================
_Description_:
@@ -10316,7 +11082,7 @@ _See also_:

File: gfortran.info, Node: RSHIFT, Next: SCALE, Prev: RRSPACING, Up: Intrinsic Procedures
-7.184 `RSHIFT' -- Right shift bits
+8.184 `RSHIFT' -- Right shift bits
==================================
_Description_:
@@ -10352,7 +11118,7 @@ _See also_:

File: gfortran.info, Node: SCALE, Next: SCAN, Prev: RSHIFT, Up: Intrinsic Procedures
-7.185 `SCALE' -- Scale a real value
+8.185 `SCALE' -- Scale a real value
===================================
_Description_:
@@ -10386,7 +11152,7 @@ _Example_:

File: gfortran.info, Node: SCAN, Next: SECNDS, Prev: SCALE, Up: Intrinsic Procedures
-7.186 `SCAN' -- Scan a string for the presence of a set of characters
+8.186 `SCAN' -- Scan a string for the presence of a set of characters
=====================================================================
_Description_:
@@ -10431,7 +11197,7 @@ _See also_:

File: gfortran.info, Node: SECNDS, Next: SECOND, Prev: SCAN, Up: Intrinsic Procedures
-7.187 `SECNDS' -- Time function
+8.187 `SECNDS' -- Time function
===============================
_Description_:
@@ -10471,7 +11237,7 @@ _Example_:

File: gfortran.info, Node: SECOND, Next: SELECTED_CHAR_KIND, Prev: SECNDS, Up: Intrinsic Procedures
-7.188 `SECOND' -- CPU time function
+8.188 `SECOND' -- CPU time function
===================================
_Description_:
@@ -10507,7 +11273,7 @@ _See also_:

File: gfortran.info, Node: SELECTED_CHAR_KIND, Next: SELECTED_INT_KIND, Prev: SECOND, Up: Intrinsic Procedures
-7.189 `SELECTED_CHAR_KIND' -- Choose character kind
+8.189 `SELECTED_CHAR_KIND' -- Choose character kind
===================================================
_Description_:
@@ -10541,13 +11307,13 @@ _Example_:

File: gfortran.info, Node: SELECTED_INT_KIND, Next: SELECTED_REAL_KIND, Prev: SELECTED_CHAR_KIND, Up: Intrinsic Procedures
-7.190 `SELECTED_INT_KIND' -- Choose integer kind
+8.190 `SELECTED_INT_KIND' -- Choose integer kind
================================================
_Description_:
- `SELECTED_INT_KIND(I)' return the kind value of the smallest
- integer type that can represent all values ranging from -10^I
- (exclusive) to 10^I (exclusive). If there is no integer kind that
+ `SELECTED_INT_KIND(R)' return the kind value of the smallest
+ integer type that can represent all values ranging from -10^R
+ (exclusive) to 10^R (exclusive). If there is no integer kind that
accommodates this range, `SELECTED_INT_KIND' returns -1.
_Standard_:
@@ -10557,10 +11323,10 @@ _Class_:
Transformational function
_Syntax_:
- `RESULT = SELECTED_INT_KIND(I)'
+ `RESULT = SELECTED_INT_KIND(R)'
_Arguments_:
- I Shall be a scalar and of type `INTEGER'.
+ R Shall be a scalar and of type `INTEGER'.
_Example_:
program large_integers
@@ -10579,7 +11345,7 @@ _Example_:

File: gfortran.info, Node: SELECTED_REAL_KIND, Next: SET_EXPONENT, Prev: SELECTED_INT_KIND, Up: Intrinsic Procedures
-7.191 `SELECTED_REAL_KIND' -- Choose real kind
+8.191 `SELECTED_REAL_KIND' -- Choose real kind
==============================================
_Description_:
@@ -10594,7 +11360,7 @@ _Class_:
Transformational function
_Syntax_:
- `RESULT = SELECTED_REAL_KIND(P, R)'
+ `RESULT = SELECTED_REAL_KIND([P, R])'
_Arguments_:
P (Optional) shall be a scalar and of type
@@ -10635,7 +11401,7 @@ _Example_:

File: gfortran.info, Node: SET_EXPONENT, Next: SHAPE, Prev: SELECTED_REAL_KIND, Up: Intrinsic Procedures
-7.192 `SET_EXPONENT' -- Set the exponent of the model
+8.192 `SET_EXPONENT' -- Set the exponent of the model
=====================================================
_Description_:
@@ -10671,7 +11437,7 @@ _Example_:

File: gfortran.info, Node: SHAPE, Next: SIGN, Prev: SET_EXPONENT, Up: Intrinsic Procedures
-7.193 `SHAPE' -- Determine the shape of an array
+8.193 `SHAPE' -- Determine the shape of an array
================================================
_Description_:
@@ -10710,7 +11476,7 @@ _See also_:

File: gfortran.info, Node: SIGN, Next: SIGNAL, Prev: SHAPE, Up: Intrinsic Procedures
-7.194 `SIGN' -- Sign copying function
+8.194 `SIGN' -- Sign copying function
=====================================
_Description_:
@@ -10752,7 +11518,7 @@ _Specific names_:

File: gfortran.info, Node: SIGNAL, Next: SIN, Prev: SIGN, Up: Intrinsic Procedures
-7.195 `SIGNAL' -- Signal handling subroutine (or function)
+8.195 `SIGNAL' -- Signal handling subroutine (or function)
==========================================================
_Description_:
@@ -10800,7 +11566,7 @@ _Example_:

File: gfortran.info, Node: SIN, Next: SINH, Prev: SIGNAL, Up: Intrinsic Procedures
-7.196 `SIN' -- Sine function
+8.196 `SIN' -- Sine function
============================
_Description_:
@@ -10843,14 +11609,14 @@ _See also_:

File: gfortran.info, Node: SINH, Next: SIZE, Prev: SIN, Up: Intrinsic Procedures
-7.197 `SINH' -- Hyperbolic sine function
+8.197 `SINH' -- Hyperbolic sine function
========================================
_Description_:
`SINH(X)' computes the hyperbolic sine of X.
_Standard_:
- Fortran 95 and later
+ Fortran 95 and later, for a complex argument Fortran 2008 or later
_Class_:
Elemental function
@@ -10859,10 +11625,10 @@ _Syntax_:
`RESULT = SINH(X)'
_Arguments_:
- X The type shall be `REAL'.
+ X The type shall be `REAL' or `COMPLEX'.
_Return value_:
- The return value is of type `REAL'.
+ The return value has same type and kind as X.
_Example_:
program test_sinh
@@ -10881,7 +11647,7 @@ _See also_:

File: gfortran.info, Node: SIZE, Next: SIZEOF, Prev: SINH, Up: Intrinsic Procedures
-7.198 `SIZE' -- Determine the size of an array
+8.198 `SIZE' -- Determine the size of an array
==============================================
_Description_:
@@ -10923,7 +11689,7 @@ _See also_:

File: gfortran.info, Node: SIZEOF, Next: SLEEP, Prev: SIZE, Up: Intrinsic Procedures
-7.199 `SIZEOF' -- Size in bytes of an expression
+8.199 `SIZEOF' -- Size in bytes of an expression
================================================
_Description_:
@@ -10966,7 +11732,7 @@ _See also_:

File: gfortran.info, Node: SLEEP, Next: SNGL, Prev: SIZEOF, Up: Intrinsic Procedures
-7.200 `SLEEP' -- Sleep for the specified number of seconds
+8.200 `SLEEP' -- Sleep for the specified number of seconds
==========================================================
_Description_:
@@ -10993,7 +11759,7 @@ _Example_:

File: gfortran.info, Node: SNGL, Next: SPACING, Prev: SLEEP, Up: Intrinsic Procedures
-7.201 `SNGL' -- Convert double precision real to default real
+8.201 `SNGL' -- Convert double precision real to default real
=============================================================
_Description_:
@@ -11022,7 +11788,7 @@ _See also_:

File: gfortran.info, Node: SPACING, Next: SPREAD, Prev: SNGL, Up: Intrinsic Procedures
-7.202 `SPACING' -- Smallest distance between two numbers of a given type
+8.202 `SPACING' -- Smallest distance between two numbers of a given type
========================================================================
_Description_:
@@ -11059,7 +11825,7 @@ _See also_:

File: gfortran.info, Node: SPREAD, Next: SQRT, Prev: SPACING, Up: Intrinsic Procedures
-7.203 `SPREAD' -- Add a dimension to an array
+8.203 `SPREAD' -- Add a dimension to an array
=============================================
_Description_:
@@ -11100,7 +11866,7 @@ _See also_:

File: gfortran.info, Node: SQRT, Next: SRAND, Prev: SPREAD, Up: Intrinsic Procedures
-7.204 `SQRT' -- Square-root function
+8.204 `SQRT' -- Square-root function
====================================
_Description_:
@@ -11144,7 +11910,7 @@ _Specific names_:

File: gfortran.info, Node: SRAND, Next: STAT, Prev: SQRT, Up: Intrinsic Procedures
-7.205 `SRAND' -- Reinitialize the random number generator
+8.205 `SRAND' -- Reinitialize the random number generator
=========================================================
_Description_:
@@ -11185,7 +11951,7 @@ _See also_:

File: gfortran.info, Node: STAT, Next: SUM, Prev: SRAND, Up: Intrinsic Procedures
-7.206 `STAT' -- Get file status
+8.206 `STAT' -- Get file status
===============================
_Description_:
@@ -11193,21 +11959,21 @@ _Description_:
required on the file itself, but execute (search) permission is
required on all of the directories in path that lead to the file.
- The elements that are obtained and stored in the array `BUFF':
- `buff(1)' Device ID
- `buff(2)' Inode number
- `buff(3)' File mode
- `buff(4)' Number of links
- `buff(5)' Owner's uid
- `buff(6)' Owner's gid
- `buff(7)' ID of device containing directory entry for
+ The elements that are obtained and stored in the array `VALUES':
+ `VALUES(1)'Device ID
+ `VALUES(2)'Inode number
+ `VALUES(3)'File mode
+ `VALUES(4)'Number of links
+ `VALUES(5)'Owner's uid
+ `VALUES(6)'Owner's gid
+ `VALUES(7)'ID of device containing directory entry for
file (0 if not available)
- `buff(8)' File size (bytes)
- `buff(9)' Last access time
- `buff(10)' Last modification time
- `buff(11)' Last file status change time
- `buff(12)' Preferred I/O block size (-1 if not available)
- `buff(13)' Number of blocks allocated (-1 if not
+ `VALUES(8)'File size (bytes)
+ `VALUES(9)'Last access time
+ `VALUES(10)'Last modification time
+ `VALUES(11)'Last file status change time
+ `VALUES(12)'Preferred I/O block size (-1 if not available)
+ `VALUES(13)'Number of blocks allocated (-1 if not
available)
Not all these elements are relevant on all systems. If an element
@@ -11223,12 +11989,12 @@ _Class_:
Subroutine, function
_Syntax_:
- `CALL STAT(FILE,BUFF[,STATUS])'
+ `CALL STAT(NAME, VALUES [, STATUS])'
_Arguments_:
- FILE The type shall be `CHARACTER', of the default
+ NAME The type shall be `CHARACTER', of the default
kind and a valid path within the file system.
- BUFF The type shall be `INTEGER(4), DIMENSION(13)'.
+ VALUES The type shall be `INTEGER(4), DIMENSION(13)'.
STATUS (Optional) status flag of type `INTEGER(4)'.
Returns 0 on success and a system specific
error code otherwise.
@@ -11263,7 +12029,7 @@ _See also_:

File: gfortran.info, Node: SUM, Next: SYMLNK, Prev: STAT, Up: Intrinsic Procedures
-7.207 `SUM' -- Sum of array elements
+8.207 `SUM' -- Sum of array elements
====================================
_Description_:
@@ -11277,7 +12043,8 @@ _Class_:
Transformational function
_Syntax_:
- `RESULT = SUM(ARRAY[, MASK])' `RESULT = SUM(ARRAY, DIM[, MASK])'
+ `RESULT = SUM(ARRAY[, MASK])'
+ `RESULT = SUM(ARRAY, DIM[, MASK])'
_Arguments_:
ARRAY Shall be an array of type `INTEGER', `REAL' or
@@ -11310,7 +12077,7 @@ _See also_:

File: gfortran.info, Node: SYMLNK, Next: SYSTEM, Prev: SUM, Up: Intrinsic Procedures
-7.208 `SYMLNK' -- Create a symbolic link
+8.208 `SYMLNK' -- Create a symbolic link
========================================
_Description_:
@@ -11346,7 +12113,7 @@ _See also_:

File: gfortran.info, Node: SYSTEM, Next: SYSTEM_CLOCK, Prev: SYMLNK, Up: Intrinsic Procedures
-7.209 `SYSTEM' -- Execute a shell command
+8.209 `SYSTEM' -- Execute a shell command
=========================================
_Description_:
@@ -11378,7 +12145,7 @@ _See also_:

File: gfortran.info, Node: SYSTEM_CLOCK, Next: TAN, Prev: SYSTEM, Up: Intrinsic Procedures
-7.210 `SYSTEM_CLOCK' -- Time function
+8.210 `SYSTEM_CLOCK' -- Time function
=====================================
_Description_:
@@ -11422,14 +12189,14 @@ _See also_:

File: gfortran.info, Node: TAN, Next: TANH, Prev: SYSTEM_CLOCK, Up: Intrinsic Procedures
-7.211 `TAN' -- Tangent function
+8.211 `TAN' -- Tangent function
===============================
_Description_:
`TAN(X)' computes the tangent of X.
_Standard_:
- Fortran 77 and later
+ Fortran 77 and later, for a complex argument Fortran 2008 or later
_Class_:
Elemental function
@@ -11438,11 +12205,10 @@ _Syntax_:
`RESULT = TAN(X)'
_Arguments_:
- X The type shall be `REAL'.
+ X The type shall be `REAL' or `COMPLEX'.
_Return value_:
- The return value is of type `REAL'. The kind type parameter is
- the same as X.
+ The return value has same type and kind as X.
_Example_:
program test_tan
@@ -11461,14 +12227,14 @@ _See also_:

File: gfortran.info, Node: TANH, Next: TIME, Prev: TAN, Up: Intrinsic Procedures
-7.212 `TANH' -- Hyperbolic tangent function
+8.212 `TANH' -- Hyperbolic tangent function
===========================================
_Description_:
`TANH(X)' computes the hyperbolic tangent of X.
_Standard_:
- Fortran 77 and later
+ Fortran 77 and later, for a complex argument Fortran 2008 or later
_Class_:
Elemental function
@@ -11477,11 +12243,12 @@ _Syntax_:
`X = TANH(X)'
_Arguments_:
- X The type shall be `REAL'.
+ X The type shall be `REAL' or `COMPLEX'.
_Return value_:
- The return value is of type `REAL' and lies in the range - 1 \leq
- tanh(x) \leq 1 .
+ The return value has same type and kind as X. If X is complex, the
+ imaginary part of the result is in radians. If X is `REAL', the
+ return value lies in the range - 1 \leq tanh(x) \leq 1 .
_Example_:
program test_tanh
@@ -11500,7 +12267,7 @@ _See also_:

File: gfortran.info, Node: TIME, Next: TIME8, Prev: TANH, Up: Intrinsic Procedures
-7.213 `TIME' -- Time function
+8.213 `TIME' -- Time function
=============================
_Description_:
@@ -11538,7 +12305,7 @@ _See also_:

File: gfortran.info, Node: TIME8, Next: TINY, Prev: TIME, Up: Intrinsic Procedures
-7.214 `TIME8' -- Time function (64-bit)
+8.214 `TIME8' -- Time function (64-bit)
=======================================
_Description_:
@@ -11574,7 +12341,7 @@ _See also_:

File: gfortran.info, Node: TINY, Next: TRAILZ, Prev: TIME8, Up: Intrinsic Procedures
-7.215 `TINY' -- Smallest positive number of a real kind
+8.215 `TINY' -- Smallest positive number of a real kind
=======================================================
_Description_:
@@ -11602,7 +12369,7 @@ _Example_:

File: gfortran.info, Node: TRAILZ, Next: TRANSFER, Prev: TINY, Up: Intrinsic Procedures
-7.216 `TRAILZ' -- Number of trailing zero bits of an integer
+8.216 `TRAILZ' -- Number of trailing zero bits of an integer
============================================================
_Description_:
@@ -11635,7 +12402,7 @@ _See also_:

File: gfortran.info, Node: TRANSFER, Next: TRANSPOSE, Prev: TRAILZ, Up: Intrinsic Procedures
-7.217 `TRANSFER' -- Transfer bit patterns
+8.217 `TRANSFER' -- Transfer bit patterns
=========================================
_Description_:
@@ -11689,7 +12456,7 @@ _Example_:

File: gfortran.info, Node: TRANSPOSE, Next: TRIM, Prev: TRANSFER, Up: Intrinsic Procedures
-7.218 `TRANSPOSE' -- Transpose an array of rank two
+8.218 `TRANSPOSE' -- Transpose an array of rank two
===================================================
_Description_:
@@ -11716,7 +12483,7 @@ _Return value_:

File: gfortran.info, Node: TRIM, Next: TTYNAM, Prev: TRANSPOSE, Up: Intrinsic Procedures
-7.219 `TRIM' -- Remove trailing blank characters of a string
+8.219 `TRIM' -- Remove trailing blank characters of a string
============================================================
_Description_:
@@ -11750,7 +12517,7 @@ _See also_:

File: gfortran.info, Node: TTYNAM, Next: UBOUND, Prev: TRIM, Up: Intrinsic Procedures
-7.220 `TTYNAM' -- Get the name of a terminal device.
+8.220 `TTYNAM' -- Get the name of a terminal device.
====================================================
_Description_:
@@ -11788,7 +12555,7 @@ _See also_:

File: gfortran.info, Node: UBOUND, Next: UMASK, Prev: TTYNAM, Up: Intrinsic Procedures
-7.221 `UBOUND' -- Upper dimension bounds of an array
+8.221 `UBOUND' -- Upper dimension bounds of an array
====================================================
_Description_:
@@ -11828,31 +12595,32 @@ _See also_:

File: gfortran.info, Node: UMASK, Next: UNLINK, Prev: UBOUND, Up: Intrinsic Procedures
-7.222 `UMASK' -- Set the file creation mask
+8.222 `UMASK' -- Set the file creation mask
===========================================
_Description_:
- Sets the file creation mask to MASK and returns the old value in
- argument OLD if it is supplied. See `umask(2)'.
+ Sets the file creation mask to MASK. If called as a function, it
+ returns the old value. If called as a subroutine and argument OLD
+ if it is supplied, it is set to the old value. See `umask(2)'.
_Standard_:
GNU extension
_Class_:
- Subroutine
+ Subroutine, function
_Syntax_:
- `CALL UMASK(MASK [, OLD])'
+ `CALL UMASK(MASK [, OLD])' `OLD = UMASK(MASK)'
_Arguments_:
MASK Shall be a scalar of type `INTEGER'.
- MASK (Optional) Shall be a scalar of type `INTEGER'.
+ OLD (Optional) Shall be a scalar of type `INTEGER'.

File: gfortran.info, Node: UNLINK, Next: UNPACK, Prev: UMASK, Up: Intrinsic Procedures
-7.223 `UNLINK' -- Remove a file from the file system
+8.223 `UNLINK' -- Remove a file from the file system
====================================================
_Description_:
@@ -11885,7 +12653,7 @@ _See also_:

File: gfortran.info, Node: UNPACK, Next: VERIFY, Prev: UNLINK, Up: Intrinsic Procedures
-7.224 `UNPACK' -- Unpack an array of rank one into an array
+8.224 `UNPACK' -- Unpack an array of rank one into an array
===========================================================
_Description_:
@@ -11928,7 +12696,7 @@ _See also_:

File: gfortran.info, Node: VERIFY, Next: XOR, Prev: UNPACK, Up: Intrinsic Procedures
-7.225 `VERIFY' -- Scan a string for the absence of a set of characters
+8.225 `VERIFY' -- Scan a string for the absence of a set of characters
======================================================================
_Description_:
@@ -11975,7 +12743,7 @@ _See also_:

File: gfortran.info, Node: XOR, Prev: VERIFY, Up: Intrinsic Procedures
-7.226 `XOR' -- Bitwise logical exclusive OR
+8.226 `XOR' -- Bitwise logical exclusive OR
===========================================
_Description_:
@@ -11983,8 +12751,8 @@ _Description_:
This intrinsic routine is provided for backwards compatibility with
GNU Fortran 77. For integer arguments, programmers should consider
- the use of the *note IEOR:: intrinsic defined by the Fortran
- standard.
+ the use of the *note IEOR:: intrinsic and for logical arguments the
+ `.NEQV.' operator, which are both defined by the Fortran standard.
_Standard_:
GNU extension
@@ -11993,12 +12761,12 @@ _Class_:
Function
_Syntax_:
- `RESULT = XOR(X, Y)'
+ `RESULT = XOR(I, J)'
_Arguments_:
- X The type shall be either a scalar `INTEGER'
+ I The type shall be either a scalar `INTEGER'
type or a scalar `LOGICAL' type.
- Y The type shall be the same as the type of I.
+ J The type shall be the same as the type of I.
_Return value_:
The return type is either a scalar `INTEGER' or a scalar
@@ -12022,14 +12790,24 @@ _See also_:

File: gfortran.info, Node: Intrinsic Modules, Next: Contributing, Prev: Intrinsic Procedures, Up: Top
-8 Intrinsic Modules
+9 Intrinsic Modules
*******************
-8.1 `ISO_FORTRAN_ENV'
+* Menu:
+
+* ISO_FORTRAN_ENV::
+* ISO_C_BINDING::
+* OpenMP Modules OMP_LIB and OMP_LIB_KINDS::
+
+
+File: gfortran.info, Node: ISO_FORTRAN_ENV, Next: ISO_C_BINDING, Up: Intrinsic Modules
+
+9.1 `ISO_FORTRAN_ENV'
=====================
_Standard_:
- Fortran 2003 and later
+ Fortran 2003 and later; `INT8', `INT16', `INT32', `INT64',
+ `REAL32', `REAL64', `REAL128' are Fortran 2008 or later
The `ISO_FORTRAN_ENV' module provides the following scalar
default-integer named constants:
@@ -12047,6 +12825,11 @@ default-integer named constants:
Identifies the preconnected unit identified by the asterisk (`*')
in `READ' statement.
+`INT8', `INT16', `INT32', `INT64'
+ Kind type parameters to specify an INTEGER type with a storage
+ size of 16, 32, and 64 bits. It is negative if a target platform
+ does not support the particular kind.
+
`IOSTAT_END':
The value assigned to the variable passed to the IOSTAT= specifier
of an input/output statement if an end-of-file condition occurred.
@@ -12063,7 +12846,15 @@ default-integer named constants:
Identifies the preconnected unit identified by the asterisk (`*')
in `WRITE' statement.
-8.2 `ISO_C_BINDING'
+`REAL32', `REAL64', `REAL128'
+ Kind type parameters to specify a REAL type with a storage size of
+ 32, 64, and 128 bits. It is negative if a target platform does not
+ support the particular kind.
+
+
+File: gfortran.info, Node: ISO_C_BINDING, Next: OpenMP Modules OMP_LIB and OMP_LIB_KINDS, Prev: ISO_FORTRAN_ENV, Up: Intrinsic Modules
+
+9.2 `ISO_C_BINDING'
===================
_Standard_:
@@ -12084,11 +12875,7 @@ manual.
`C_LOC'
The `ISO_C_BINDING' module provides the following named constants of
-the type integer, which can be used as KIND type parameter. Note that
-GNU Fortran currently does not support the `C_INT_FAST...' KIND type
-parameters (marked by an asterisk (`*') in the list below). The
-`C_INT_FAST...' parameters have therefore the value -2 and cannot be
-used as KIND type parameter of the `INTEGER' type.
+type default integer, which can be used as KIND type parameters.
In addition to the integer named constants required by the Fortran
2003 standard, GNU Fortran provides as an extension named constants for
@@ -12114,11 +12901,11 @@ Type
`INTEGER' `C_INT_LEAST32_T' `int_least32_t'
`INTEGER' `C_INT_LEAST64_T' `int_least64_t'
`INTEGER' `C_INT_LEAST128_T' `int_least128_t' Ext.
-`INTEGER' `C_INT_FAST8_T'* `int_fast8_t'
-`INTEGER' `C_INT_FAST16_T'* `int_fast16_t'
-`INTEGER' `C_INT_FAST32_T'* `int_fast32_t'
-`INTEGER' `C_INT_FAST64_T'* `int_fast64_t'
-`INTEGER' `C_INT_FAST128_T'* `int_fast128_t' Ext.
+`INTEGER' `C_INT_FAST8_T' `int_fast8_t'
+`INTEGER' `C_INT_FAST16_T' `int_fast16_t'
+`INTEGER' `C_INT_FAST32_T' `int_fast32_t'
+`INTEGER' `C_INT_FAST64_T' `int_fast64_t'
+`INTEGER' `C_INT_FAST128_T' `int_fast128_t' Ext.
`INTEGER' `C_INTMAX_T' `intmax_t'
`INTEGER' `C_INTPTR_T' `intptr_t'
`REAL' `C_FLOAT' `float'
@@ -12130,7 +12917,8 @@ Type
`LOGICAL' `C_BOOL' `_Bool'
`CHARACTER' `C_CHAR' `char'
- Additionally, the following `(CHARACTER(KIND=C_CHAR))' are defined.
+ Additionally, the following parameters of type
+`CHARACTER(KIND=C_CHAR)' are defined.
Name C definition Value
`C_NULL_CHAR' null character `'\0''
@@ -12142,7 +12930,10 @@ Name C definition Value
`C_HORIZONTAL_TAB'horizontal tab `'\t''
`C_VERTICAL_TAB'vertical tab `'\v''
-8.3 OpenMP Modules `OMP_LIB' and `OMP_LIB_KINDS'
+
+File: gfortran.info, Node: OpenMP Modules OMP_LIB and OMP_LIB_KINDS, Prev: ISO_C_BINDING, Up: Intrinsic Modules
+
+9.3 OpenMP Modules `OMP_LIB' and `OMP_LIB_KINDS'
================================================
_Standard_:
@@ -12272,6 +13063,8 @@ significant help to the GNU Fortran project (in alphabetical order):
- Janus Weil
+ - Daniel Kraft
+
The following people have contributed bug reports, smaller or larger
patches, and much needed feedback and encouragement for the GNU Fortran
project:
@@ -12284,6 +13077,8 @@ project:
- Erik Schnetter
+ - Joost VandeVondele
+
Many other individuals have helped debug, test and improve the GNU
Fortran compiler over the past few years, and we welcome you to do the
same! If you already have done so, and you would like to see your name
@@ -13605,7 +14400,7 @@ look up both forms.
* APREDICATE=ANSWER: Preprocessing Options.
(line 114)
* backslash: Fortran Dialect Options.
- (line 59)
+ (line 62)
* C: Preprocessing Options.
(line 123)
* CC: Preprocessing Options.
@@ -13626,16 +14421,17 @@ look up both forms.
(line 156)
* dU: Preprocessing Options.
(line 44)
-* falign-commons: Code Gen Options. (line 255)
+* falign-commons: Code Gen Options. (line 304)
* fall-intrinsics: Fortran Dialect Options.
(line 18)
* fbacktrace: Debugging Options. (line 31)
-* fblas-matmul-limit: Code Gen Options. (line 214)
-* fbounds-check: Code Gen Options. (line 130)
-* fcheck-array-temporaries: Code Gen Options. (line 144)
+* fblas-matmul-limit: Code Gen Options. (line 260)
+* fbounds-check: Code Gen Options. (line 192)
+* fcheck: Code Gen Options. (line 143)
+* fcheck-array-temporaries: Code Gen Options. (line 195)
* fconvert=CONVERSION: Runtime Options. (line 9)
* fcray-pointer: Fortran Dialect Options.
- (line 105)
+ (line 108)
* fd-lines-as-code: Fortran Dialect Options.
(line 29)
* fd-lines-as-comments: Fortran Dialect Options.
@@ -13650,53 +14446,55 @@ look up both forms.
(line 56)
* fdump-core: Debugging Options. (line 38)
* fdump-parse-tree: Debugging Options. (line 10)
-* fexternal-blas: Code Gen Options. (line 206)
+* fexternal-blas: Code Gen Options. (line 252)
* ff2c: Code Gen Options. (line 25)
* ffixed-line-length-N: Fortran Dialect Options.
- (line 76)
+ (line 79)
* ffpe-trap=LIST: Debugging Options. (line 14)
* ffree-form: Fortran Dialect Options.
(line 12)
* ffree-line-length-N: Fortran Dialect Options.
- (line 89)
+ (line 92)
* fimplicit-none: Fortran Dialect Options.
- (line 100)
-* finit-character: Code Gen Options. (line 238)
-* finit-integer: Code Gen Options. (line 238)
-* finit-local-zero: Code Gen Options. (line 238)
-* finit-logical: Code Gen Options. (line 238)
-* finit-real: Code Gen Options. (line 238)
+ (line 103)
+* finit-character: Code Gen Options. (line 284)
+* finit-integer: Code Gen Options. (line 284)
+* finit-local-zero: Code Gen Options. (line 284)
+* finit-logical: Code Gen Options. (line 284)
+* finit-real: Code Gen Options. (line 284)
* fintrinsic-modules-path DIR: Directory Options. (line 40)
-* fmax-array-constructor: Code Gen Options. (line 152)
+* fmax-array-constructor: Code Gen Options. (line 198)
* fmax-errors=N: Error and Warning Options.
(line 27)
* fmax-identifier-length=N: Fortran Dialect Options.
- (line 96)
-* fmax-stack-var-size: Code Gen Options. (line 170)
+ (line 99)
+* fmax-stack-var-size: Code Gen Options. (line 216)
* fmax-subrecord-length=LENGTH: Runtime Options. (line 36)
* fmodule-private: Fortran Dialect Options.
- (line 71)
+ (line 74)
* fno-automatic: Code Gen Options. (line 15)
* fno-fixed-form: Fortran Dialect Options.
(line 12)
+* fno-protect-parens: Code Gen Options. (line 315)
* fno-range-check: Runtime Options. (line 20)
* fno-underscoring: Code Gen Options. (line 54)
* fopenmp: Fortran Dialect Options.
- (line 109)
-* fpack-derived: Code Gen Options. (line 184)
+ (line 112)
+* fpack-derived: Code Gen Options. (line 230)
* fpp: Preprocessing Options.
(line 13)
* frange-check: Fortran Dialect Options.
- (line 117)
+ (line 120)
* frecord-marker=LENGTH: Runtime Options. (line 28)
-* frecursive: Code Gen Options. (line 225)
-* frepack-arrays: Code Gen Options. (line 190)
-* fsecond-underscore: Code Gen Options. (line 113)
-* fshort-enums <1>: Fortran 2003 status. (line 20)
-* fshort-enums: Code Gen Options. (line 200)
+* frecursive: Code Gen Options. (line 271)
+* frepack-arrays: Code Gen Options. (line 236)
+* fsecond-underscore: Code Gen Options. (line 126)
+* fshort-enums <1>: Fortran 2003 status. (line 22)
+* fshort-enums: Code Gen Options. (line 246)
* fsign-zero: Runtime Options. (line 41)
* fsyntax-only: Error and Warning Options.
(line 33)
+* fwhole-file: Code Gen Options. (line 113)
* fworking-directory: Preprocessing Options.
(line 55)
* H: Preprocessing Options.
@@ -13726,7 +14524,7 @@ look up both forms.
(line 57)
* static-libgfortran: Link Options. (line 11)
* std=STD option: Fortran Dialect Options.
- (line 129)
+ (line 132)
* UNAME: Preprocessing Options.
(line 187)
* undef: Preprocessing Options.
@@ -13734,7 +14532,7 @@ look up both forms.
* Waliasing: Error and Warning Options.
(line 68)
* Walign-commons: Error and Warning Options.
- (line 165)
+ (line 171)
* Wall: Error and Warning Options.
(line 61)
* Wampersand: Error and Warning Options.
@@ -13746,23 +14544,25 @@ look up both forms.
* Wconversion: Error and Warning Options.
(line 104)
* Werror: Error and Warning Options.
- (line 171)
+ (line 177)
* Wimplicit-interface: Error and Warning Options.
(line 107)
+* Wimplicit-procedure: Error and Warning Options.
+ (line 113)
* Wintrinsic-shadow: Error and Warning Options.
- (line 152)
+ (line 158)
* Wintrinsics-std: Error and Warning Options.
- (line 113)
+ (line 117)
* Wline-truncation: Error and Warning Options.
(line 101)
* Wsurprising: Error and Warning Options.
- (line 120)
+ (line 124)
* Wtabs: Error and Warning Options.
- (line 140)
+ (line 146)
* Wunderflow: Error and Warning Options.
- (line 148)
+ (line 154)
* Wunused-parameter: Error and Warning Options.
- (line 158)
+ (line 164)

File: gfortran.info, Node: Keyword Index, Prev: Option Index, Up: Top
@@ -13783,12 +14583,23 @@ Keyword Index
(line 6)
* &: Error and Warning Options.
(line 85)
-* [...]: Fortran 2003 status. (line 13)
+* [...]: Fortran 2003 status. (line 14)
+* _gfortran_set_args: _gfortran_set_args. (line 6)
+* _gfortran_set_convert: _gfortran_set_convert.
+ (line 6)
+* _gfortran_set_fpe: _gfortran_set_fpe. (line 6)
+* _gfortran_set_max_subrecord_length: _gfortran_set_max_subrecord_length.
+ (line 6)
+* _gfortran_set_options: _gfortran_set_options.
+ (line 6)
+* _gfortran_set_record_marker: _gfortran_set_record_marker.
+ (line 6)
* ABORT: ABORT. (line 6)
* ABS: ABS. (line 6)
* absolute value: ABS. (line 6)
+* ABSTRACT type: Fortran 2003 status. (line 69)
* ACCESS: ACCESS. (line 6)
-* ACCESS='STREAM' I/O: Fortran 2003 status. (line 32)
+* ACCESS='STREAM' I/O: Fortran 2003 status. (line 40)
* ACHAR: ACHAR. (line 6)
* ACOS: ACOS. (line 6)
* ACOSH: ACOSH. (line 6)
@@ -13802,16 +14613,17 @@ Keyword Index
* ALGAMA: LOG_GAMMA. (line 6)
* aliasing: Error and Warning Options.
(line 68)
-* alignment of COMMON blocks <1>: Code Gen Options. (line 255)
+* alignment of COMMON blocks <1>: Code Gen Options. (line 304)
* alignment of COMMON blocks: Error and Warning Options.
- (line 165)
+ (line 171)
* ALL: ALL. (line 6)
* all warnings: Error and Warning Options.
(line 61)
* ALLOCATABLE components of derived types: Fortran 2003 status.
- (line 30)
-* ALLOCATABLE dummy arguments: Fortran 2003 status. (line 26)
-* ALLOCATABLE function results: Fortran 2003 status. (line 28)
+ (line 32)
+* ALLOCATABLE dummy arguments: Fortran 2003 status. (line 28)
+* ALLOCATABLE function results: Fortran 2003 status. (line 30)
+* ALLOCATE: Fortran 2003 status. (line 34)
* ALLOCATED: ALLOCATED. (line 6)
* allocation, moving: MOVE_ALLOC. (line 6)
* allocation, status: ALLOCATED. (line 6)
@@ -13840,7 +14652,7 @@ Keyword Index
* array, add elements: SUM. (line 6)
* array, apply condition <1>: ANY. (line 6)
* array, apply condition: ALL. (line 6)
-* array, bounds checking: Code Gen Options. (line 130)
+* array, bounds checking: Code Gen Options. (line 143)
* array, change dimensions: RESHAPE. (line 6)
* array, combine arrays: MERGE. (line 6)
* array, condition testing <1>: ANY. (line 6)
@@ -13848,7 +14660,7 @@ Keyword Index
* array, conditionally add elements: SUM. (line 6)
* array, conditionally count elements: COUNT. (line 6)
* array, conditionally multiply elements: PRODUCT. (line 6)
-* array, constructors: Fortran 2003 status. (line 13)
+* array, constructors: Fortran 2003 status. (line 14)
* array, count elements: SIZE. (line 6)
* array, duplicate dimensions: SPREAD. (line 6)
* array, duplicate elements: SPREAD. (line 6)
@@ -13893,7 +14705,7 @@ Keyword Index
* ATAN2: ATAN2. (line 6)
* Authors: Contributors. (line 6)
* backslash: Fortran Dialect Options.
- (line 59)
+ (line 62)
* backtrace: Debugging Options. (line 31)
* BESJ0: BESSEL_J0. (line 6)
* BESJ1: BESSEL_J1. (line 6)
@@ -13935,7 +14747,7 @@ Keyword Index
* bitwise logical not: NOT. (line 6)
* bitwise logical or <1>: OR. (line 6)
* bitwise logical or: IOR. (line 6)
-* bounds checking: Code Gen Options. (line 130)
+* bounds checking: Code Gen Options. (line 143)
* BOZ literal constants: BOZ literal constants.
(line 6)
* BTEST: BTEST. (line 6)
@@ -13963,8 +14775,8 @@ Keyword Index
* character set: Fortran Dialect Options.
(line 56)
* CHDIR: CHDIR. (line 6)
-* checking array temporaries: Code Gen Options. (line 144)
-* checking subscripts: Code Gen Options. (line 130)
+* checking array temporaries: Code Gen Options. (line 143)
+* checking subscripts: Code Gen Options. (line 143)
* CHMOD: CHMOD. (line 6)
* clock ticks <1>: SYSTEM_CLOCK. (line 6)
* clock ticks <2>: MCLOCK8. (line 6)
@@ -14081,8 +14893,10 @@ Keyword Index
(line 26)
* DECODE: ENCODE and DECODE statements.
(line 6)
+* DEFERRED procedure binding: Fortran 2003 status. (line 69)
* delayed execution <1>: SLEEP. (line 6)
* delayed execution: ALARM. (line 6)
+* derived-type extension: Fortran 2003 status. (line 67)
* DEXP: EXP. (line 6)
* DFLOAT: DFLOAT. (line 6)
* DGAMMA: GAMMA. (line 6)
@@ -14120,8 +14934,8 @@ Keyword Index
* elapsed time: DTIME. (line 6)
* ENCODE: ENCODE and DECODE statements.
(line 6)
-* ENUM statement: Fortran 2003 status. (line 20)
-* ENUMERATOR statement: Fortran 2003 status. (line 20)
+* ENUM statement: Fortran 2003 status. (line 22)
+* ENUMERATOR statement: Fortran 2003 status. (line 22)
* environment variable <1>: GET_ENVIRONMENT_VARIABLE.
(line 6)
* environment variable <2>: GETENV. (line 6)
@@ -14140,7 +14954,7 @@ Keyword Index
* errors, limiting: Error and Warning Options.
(line 27)
* escape characters: Fortran Dialect Options.
- (line 59)
+ (line 62)
* ETIME: ETIME. (line 6)
* Euclidean distance: HYPOT. (line 6)
* EXIT: EXIT. (line 6)
@@ -14151,6 +14965,7 @@ Keyword Index
* exponential function, inverse: LOG. (line 6)
* expression size <1>: SIZEOF. (line 6)
* expression size: C_SIZEOF. (line 6)
+* EXTENDS: Fortran 2003 status. (line 67)
* extensions: Extensions. (line 6)
* extensions, implemented: Extensions implemented in GNU Fortran.
(line 6)
@@ -14200,8 +15015,10 @@ Keyword Index
* FLOOR: FLOOR. (line 6)
* floor: AINT. (line 6)
* FLUSH: FLUSH. (line 6)
-* FLUSH statement: Fortran 2003 status. (line 16)
+* FLUSH statement: Fortran 2003 status. (line 18)
* FNUM: FNUM. (line 6)
+* FORMAT: Variable FORMAT expressions.
+ (line 6)
* Fortran 77: GNU Fortran and G77. (line 6)
* FPP: Preprocessing and conditional compilation.
(line 6)
@@ -14271,7 +15088,7 @@ Keyword Index
* IFIX: INT. (line 6)
* IMAG: AIMAG. (line 6)
* IMAGPART: AIMAG. (line 6)
-* IMPORT statement: Fortran 2003 status. (line 43)
+* IMPORT statement: Fortran 2003 status. (line 51)
* INCLUDE directive: Directory Options. (line 6)
* inclusion, directory search paths for: Directory Options. (line 14)
* INDEX: INDEX intrinsic. (line 6)
@@ -14279,13 +15096,15 @@ Keyword Index
* INT2: INT2. (line 6)
* INT8: INT8. (line 6)
* integer kind: SELECTED_INT_KIND. (line 6)
+* Interoperability: Mixed-Language Programming.
+ (line 6)
* intrinsic: Error and Warning Options.
- (line 152)
+ (line 158)
* intrinsic Modules: Intrinsic Modules. (line 6)
* intrinsic procedures: Intrinsic Procedures.
(line 6)
* Introduction: Top. (line 6)
-* IOMSG= specifier: Fortran 2003 status. (line 18)
+* IOMSG= specifier: Fortran 2003 status. (line 20)
* IOR: IOR. (line 6)
* IOSTAT, end of file: IS_IOSTAT_END. (line 6)
* IOSTAT, end of record: IS_IOSTAT_EOR. (line 6)
@@ -14297,8 +15116,8 @@ Keyword Index
* ISHFTC: ISHFTC. (line 6)
* ISIGN: SIGN. (line 6)
* ISNAN: ISNAN. (line 6)
-* ISO C Bindings: Fortran 2003 status. (line 52)
-* ISO_FORTRAN_ENV statement: Fortran 2003 status. (line 46)
+* ISO C Bindings: Fortran 2003 status. (line 60)
+* ISO_FORTRAN_ENV statement: Fortran 2003 status. (line 54)
* ITIME: ITIME. (line 6)
* KILL: KILL. (line 6)
* kind: KIND. (line 6)
@@ -14324,6 +15143,16 @@ Keyword Index
* LGE: LGE. (line 6)
* LGT: LGT. (line 6)
* libf2c calling convention: Code Gen Options. (line 25)
+* libgfortran initialization, set_args: _gfortran_set_args. (line 6)
+* libgfortran initialization, set_convert: _gfortran_set_convert.
+ (line 6)
+* libgfortran initialization, set_fpe: _gfortran_set_fpe. (line 6)
+* libgfortran initialization, set_max_subrecord_length: _gfortran_set_max_subrecord_length.
+ (line 6)
+* libgfortran initialization, set_options: _gfortran_set_options.
+ (line 6)
+* libgfortran initialization, set_record_marker: _gfortran_set_record_marker.
+ (line 6)
* limits, largest number: HUGE. (line 6)
* limits, smallest number: TINY. (line 6)
* LINK: LINK. (line 6)
@@ -14347,6 +15176,8 @@ Keyword Index
* logical not, bitwise: NOT. (line 6)
* logical or, bitwise <1>: OR. (line 6)
* logical or, bitwise: IOR. (line 6)
+* logical, variable representation: Internal representation of LOGICAL variables.
+ (line 6)
* login name: GETLOG. (line 6)
* LONG: LONG. (line 6)
* LSHIFT: LSHIFT. (line 6)
@@ -14366,6 +15197,7 @@ Keyword Index
* MAXVAL: MAXVAL. (line 6)
* MCLOCK: MCLOCK. (line 6)
* MCLOCK8: MCLOCK8. (line 6)
+* memory checking: Code Gen Options. (line 143)
* MERGE: MERGE. (line 6)
* messages, error: Error and Warning Options.
(line 6)
@@ -14379,6 +15211,8 @@ Keyword Index
* minimum value: MIN. (line 6)
* MINLOC: MINLOC. (line 6)
* MINVAL: MINVAL. (line 6)
+* Mixed-language programming: Mixed-Language Programming.
+ (line 6)
* MOD: MOD. (line 6)
* model representation, base: RADIX. (line 6)
* model representation, epsilon: EPSILON. (line 6)
@@ -14391,7 +15225,7 @@ Keyword Index
* model representation, significant digits: DIGITS. (line 6)
* model representation, smallest number: TINY. (line 6)
* module entities: Fortran Dialect Options.
- (line 71)
+ (line 74)
* module search path: Directory Options. (line 14)
* modulo: MODULO. (line 6)
* MODULO: MODULO. (line 6)
@@ -14409,7 +15243,7 @@ Keyword Index
* NULL: NULL. (line 6)
* OpenMP <1>: OpenMP. (line 6)
* OpenMP: Fortran Dialect Options.
- (line 109)
+ (line 112)
* operators, unary: Unary operators. (line 6)
* options, code generation: Code Gen Options. (line 6)
* options, debugging: Debugging Options. (line 6)
@@ -14436,6 +15270,7 @@ Keyword Index
* PACK: PACK. (line 6)
* paths, search: Directory Options. (line 14)
* PERROR: PERROR. (line 6)
+* pointer checking: Code Gen Options. (line 143)
* pointer, C address of pointers: C_F_PROCPOINTER. (line 6)
* pointer, C address of procedures: C_FUNLOC. (line 6)
* pointer, C association status: C_ASSOCIATED. (line 6)
@@ -14476,7 +15311,7 @@ Keyword Index
(line 55)
* PRESENT: PRESENT. (line 6)
* private: Fortran Dialect Options.
- (line 71)
+ (line 74)
* procedure pointer, convert C to Fortran: C_LOC. (line 6)
* process id: GETPID. (line 6)
* PRODUCT: PRODUCT. (line 6)
@@ -14485,7 +15320,7 @@ Keyword Index
* product, vector: DOT_PRODUCT. (line 6)
* program termination: EXIT. (line 6)
* program termination, with core dump: ABORT. (line 6)
-* PROTECTED statement: Fortran 2003 status. (line 37)
+* PROTECTED statement: Fortran 2003 status. (line 45)
* RADIX: RADIX. (line 6)
* RAN: RAN. (line 6)
* RAND: RAND. (line 6)
@@ -14498,7 +15333,9 @@ Keyword Index
* RANDOM_NUMBER: RANDOM_NUMBER. (line 6)
* RANDOM_SEED: RANDOM_SEED. (line 6)
* RANGE: RANGE. (line 6)
-* range checking: Code Gen Options. (line 130)
+* range checking: Code Gen Options. (line 143)
+* re-association of parenthesed expressions: Code Gen Options.
+ (line 315)
* read character, stream mode <1>: FGETC. (line 6)
* read character, stream mode: FGET. (line 6)
* REAL: REAL. (line 6)
@@ -14515,7 +15352,7 @@ Keyword Index
(line 6)
* remainder: MOD. (line 6)
* RENAME: RENAME. (line 6)
-* repacking arrays: Code Gen Options. (line 190)
+* repacking arrays: Code Gen Options. (line 236)
* REPEAT: REPEAT. (line 6)
* RESHAPE: RESHAPE. (line 6)
* root: SQRT. (line 6)
@@ -14526,6 +15363,7 @@ Keyword Index
* rounding, nearest whole number: NINT. (line 6)
* RRSPACING: RRSPACING. (line 6)
* RSHIFT: RSHIFT. (line 6)
+* run-time checking: Code Gen Options. (line 143)
* SAVE statement: Code Gen Options. (line 15)
* SCALE: SCALE. (line 6)
* SCAN: SCAN. (line 6)
@@ -14564,17 +15402,17 @@ Keyword Index
* SRAND: SRAND. (line 6)
* Standards: Standards. (line 6)
* STAT: STAT. (line 6)
-* statement, ENUM: Fortran 2003 status. (line 20)
-* statement, ENUMERATOR: Fortran 2003 status. (line 20)
-* statement, FLUSH: Fortran 2003 status. (line 16)
-* statement, IMPORT: Fortran 2003 status. (line 43)
-* statement, ISO_FORTRAN_ENV: Fortran 2003 status. (line 46)
-* statement, PROTECTED: Fortran 2003 status. (line 37)
+* statement, ENUM: Fortran 2003 status. (line 22)
+* statement, ENUMERATOR: Fortran 2003 status. (line 22)
+* statement, FLUSH: Fortran 2003 status. (line 18)
+* statement, IMPORT: Fortran 2003 status. (line 51)
+* statement, ISO_FORTRAN_ENV: Fortran 2003 status. (line 54)
+* statement, PROTECTED: Fortran 2003 status. (line 45)
* statement, SAVE: Code Gen Options. (line 15)
-* statement, USE, INTRINSIC: Fortran 2003 status. (line 46)
-* statement, VALUE: Fortran 2003 status. (line 39)
-* statement, VOLATILE: Fortran 2003 status. (line 41)
-* STREAM I/O: Fortran 2003 status. (line 32)
+* statement, USE, INTRINSIC: Fortran 2003 status. (line 54)
+* statement, VALUE: Fortran 2003 status. (line 47)
+* statement, VOLATILE: Fortran 2003 status. (line 49)
+* STREAM I/O: Fortran 2003 status. (line 40)
* stream mode, read character <1>: FGETC. (line 6)
* stream mode, read character: FGET. (line 6)
* stream mode, write character <1>: FPUTC. (line 6)
@@ -14594,10 +15432,12 @@ Keyword Index
* string, length, without trailing whitespace: LEN_TRIM. (line 6)
* string, remove trailing whitespace: TRIM. (line 6)
* string, repeat: REPEAT. (line 6)
+* strings, varying length: Varying Length Character Strings.
+ (line 6)
* STRUCTURE: STRUCTURE and RECORD.
(line 6)
-* structure packing: Code Gen Options. (line 184)
-* subscript checking: Code Gen Options. (line 130)
+* structure packing: Code Gen Options. (line 230)
+* subscript checking: Code Gen Options. (line 143)
* substring position: INDEX intrinsic. (line 6)
* SUM: SUM. (line 6)
* sum array elements: SUM. (line 6)
@@ -14627,7 +15467,7 @@ Keyword Index
* system, working directory: CHDIR. (line 6)
* SYSTEM_CLOCK: SYSTEM_CLOCK. (line 6)
* tabulators: Error and Warning Options.
- (line 140)
+ (line 146)
* TAN: TAN. (line 6)
* tangent: TAN. (line 6)
* tangent, hyperbolic: TANH. (line 6)
@@ -14656,7 +15496,7 @@ Keyword Index
* time, elapsed: CPU_TIME. (line 6)
* TIME8: TIME8. (line 6)
* TINY: TINY. (line 6)
-* TR 15581: Fortran 2003 status. (line 25)
+* TR 15581: Fortran 2003 status. (line 27)
* trace: Debugging Options. (line 31)
* TRAILZ: TRAILZ. (line 6)
* TRANSFER: TRANSFER. (line 6)
@@ -14673,25 +15513,31 @@ Keyword Index
* TRIM: TRIM. (line 6)
* TTYNAM: TTYNAM. (line 6)
* type cast: TRANSFER. (line 6)
+* type-bound operator: Fortran 2003 status. (line 64)
+* type-bound procedure: Fortran 2003 status. (line 64)
* UBOUND: UBOUND. (line 6)
* UMASK: UMASK. (line 6)
* underflow: Error and Warning Options.
- (line 148)
+ (line 154)
* underscore: Code Gen Options. (line 54)
* UNLINK: UNLINK. (line 6)
* UNPACK: UNPACK. (line 6)
* unused parameter: Error and Warning Options.
- (line 158)
-* USE, INTRINSIC statement: Fortran 2003 status. (line 46)
+ (line 164)
+* USE, INTRINSIC statement: Fortran 2003 status. (line 54)
* user id: GETUID. (line 6)
-* VALUE statement: Fortran 2003 status. (line 39)
+* VALUE statement: Fortran 2003 status. (line 47)
+* Varying length character strings: Varying Length Character Strings.
+ (line 6)
+* Varying length strings: Varying Length Character Strings.
+ (line 6)
* vector product: DOT_PRODUCT. (line 6)
* VERIFY: VERIFY. (line 6)
-* VOLATILE statement: Fortran 2003 status. (line 41)
+* VOLATILE statement: Fortran 2003 status. (line 49)
* warnings, aliasing: Error and Warning Options.
(line 68)
* warnings, alignment of COMMON blocks: Error and Warning Options.
- (line 165)
+ (line 171)
* warnings, all: Error and Warning Options.
(line 61)
* warnings, ampersand: Error and Warning Options.
@@ -14704,26 +15550,28 @@ Keyword Index
(line 104)
* warnings, implicit interface: Error and Warning Options.
(line 107)
+* warnings, implicit procedure: Error and Warning Options.
+ (line 113)
* warnings, intrinsic: Error and Warning Options.
- (line 152)
+ (line 158)
* warnings, intrinsics of other standards: Error and Warning Options.
- (line 113)
+ (line 117)
* warnings, line truncation: Error and Warning Options.
(line 101)
* warnings, non-standard intrinsics: Error and Warning Options.
- (line 113)
+ (line 117)
* warnings, suppressing: Error and Warning Options.
(line 6)
* warnings, suspicious code: Error and Warning Options.
- (line 120)
+ (line 124)
* warnings, tabs: Error and Warning Options.
- (line 140)
+ (line 146)
* warnings, to errors: Error and Warning Options.
- (line 171)
+ (line 177)
* warnings, underflow: Error and Warning Options.
- (line 148)
+ (line 154)
* warnings, unused parameter: Error and Warning Options.
- (line 158)
+ (line 164)
* write character, stream mode <1>: FPUTC. (line 6)
* write character, stream mode: FPUT. (line 6)
* XOR: XOR. (line 6)
@@ -14739,302 +15587,323 @@ Keyword Index

Tag Table:
-Node: Top1990
-Node: Introduction3305
-Node: About GNU Fortran4052
-Node: GNU Fortran and GCC8080
-Node: Preprocessing and conditional compilation10192
-Node: GNU Fortran and G7711833
-Node: Project Status12406
-Node: Standards14921
-Node: Invoking GNU Fortran16132
-Node: Option Summary17855
-Node: Fortran Dialect Options21343
-Node: Preprocessing Options28153
-Node: Error and Warning Options36279
-Node: Debugging Options43706
-Node: Directory Options45869
-Node: Link Options47384
-Node: Runtime Options48008
-Node: Code Gen Options50088
-Node: Environment Variables62313
-Node: Runtime62918
-Node: GFORTRAN_STDIN_UNIT64146
-Node: GFORTRAN_STDOUT_UNIT64513
-Node: GFORTRAN_STDERR_UNIT64914
-Node: GFORTRAN_USE_STDERR65312
-Node: GFORTRAN_TMPDIR65757
-Node: GFORTRAN_UNBUFFERED_ALL66198
-Node: GFORTRAN_UNBUFFERED_PRECONNECTED66721
-Node: GFORTRAN_SHOW_LOCUS67363
-Node: GFORTRAN_OPTIONAL_PLUS67857
-Node: GFORTRAN_DEFAULT_RECL68332
-Node: GFORTRAN_LIST_SEPARATOR68823
-Node: GFORTRAN_CONVERT_UNIT69432
-Node: GFORTRAN_ERROR_DUMPCORE72294
-Node: GFORTRAN_ERROR_BACKTRACE72841
-Node: Fortran 2003 and 2008 status73392
-Node: Fortran 2003 status73632
-Node: Fortran 2008 status75323
-Node: Compiler Characteristics76292
-Node: KIND Type Parameters76630
-Node: Extensions77557
-Node: Extensions implemented in GNU Fortran78156
-Node: Old-style kind specifications79490
-Node: Old-style variable initialization80596
-Node: Extensions to namelist81908
-Node: X format descriptor without count field83904
-Node: Commas in FORMAT specifications84431
-Node: Missing period in FORMAT specifications84948
-Node: I/O item lists85510
-Node: BOZ literal constants85899
-Node: Real array indices88468
-Node: Unary operators88765
-Node: Implicitly convert LOGICAL and INTEGER values89179
-Node: Hollerith constants support90139
-Node: Cray pointers91911
-Node: CONVERT specifier97321
-Node: OpenMP99319
-Node: Argument list functions101574
-Node: Extensions not implemented in GNU Fortran103168
-Node: STRUCTURE and RECORD104020
-Node: ENCODE and DECODE statements106076
-Node: Intrinsic Procedures107394
-Node: Introduction to Intrinsics121084
-Node: ABORT123436
-Node: ABS124193
-Node: ACCESS125695
-Node: ACHAR127616
-Node: ACOS128817
-Node: ACOSH129815
-Node: ADJUSTL130692
-Node: ADJUSTR131633
-Node: AIMAG132580
-Node: AINT133900
-Node: ALARM135372
-Node: ALL137006
-Node: ALLOCATED138924
-Node: AND139805
-Node: ANINT141102
-Node: ANY142465
-Node: ASIN144395
-Node: ASINH145407
-Node: ASSOCIATED146289
-Node: ATAN149294
-Node: ATAN2150183
-Node: ATANH151527
-Node: BESSEL_J0152407
-Node: BESSEL_J1153451
-Node: BESSEL_JN154503
-Node: BESSEL_Y0155670
-Node: BESSEL_Y1156670
-Node: BESSEL_YN157670
-Node: BIT_SIZE158887
-Node: BTEST159716
-Node: C_ASSOCIATED160604
-Node: C_FUNLOC161813
-Node: C_F_PROCPOINTER163182
-Node: C_F_POINTER164811
-Node: C_LOC166229
-Node: C_SIZEOF167346
-Node: CEILING168699
-Node: CHAR169704
-Node: CHDIR170768
-Node: CHMOD171936
-Node: CMPLX173731
-Node: COMMAND_ARGUMENT_COUNT175195
-Node: COMPLEX176102
-Node: CONJG177245
-Node: COS178255
-Node: COSH179526
-Node: COUNT180495
-Node: CPU_TIME182351
-Node: CSHIFT183705
-Node: CTIME185361
-Node: DATE_AND_TIME186620
-Node: DBLE189081
-Node: DCMPLX189905
-Node: DFLOAT191099
-Node: DIGITS191793
-Node: DIM192759
-Node: DOT_PRODUCT193902
-Node: DPROD195558
-Node: DREAL196284
-Node: DTIME196948
-Node: EOSHIFT199754
-Node: EPSILON201827
-Node: ERF202553
-Node: ERFC203327
-Node: ERFC_SCALED204131
-Node: ETIME204823
-Node: EXIT207054
-Node: EXP207913
-Node: EXPONENT209071
-Node: FDATE209821
-Node: FLOAT211096
-Node: FGET211810
-Node: FGETC213604
-Node: FLOOR215372
-Node: FLUSH216356
-Node: FNUM216994
-Node: FPUT217716
-Node: FPUTC219317
-Node: FRACTION221057
-Node: FREE221958
-Node: FSEEK222795
-Node: FSTAT225089
-Node: FTELL226129
-Node: GAMMA227107
-Node: GERROR228148
-Node: GETARG228867
-Node: GET_COMMAND230631
-Node: GET_COMMAND_ARGUMENT231577
-Node: GETCWD233545
-Node: GETENV234491
-Node: GET_ENVIRONMENT_VARIABLE235713
-Node: GETGID237413
-Node: GETLOG237948
-Node: GETPID238806
-Node: GETUID239534
-Node: GMTIME240048
-Node: HOSTNM241537
-Node: HUGE242453
-Node: HYPOT243172
-Node: IACHAR243992
-Node: IAND245172
-Node: IARGC246159
-Node: IBCLR247182
-Node: IBITS247843
-Node: IBSET248758
-Node: ICHAR249414
-Node: IDATE251395
-Node: IEOR252422
-Node: IERRNO253298
-Node: INDEX intrinsic253853
-Node: INT255199
-Node: INT2256786
-Node: INT8257551
-Node: IOR258263
-Node: IRAND259113
-Node: IS_IOSTAT_END260465
-Node: IS_IOSTAT_EOR261560
-Node: ISATTY262685
-Node: ISHFT263468
-Node: ISHFTC264448
-Node: ISNAN265664
-Node: ITIME266412
-Node: KILL267437
-Node: KIND268310
-Node: LBOUND269155
-Node: LEADZ270467
-Node: LEN271271
-Node: LEN_TRIM272362
-Node: LGE273350
-Node: LGT274663
-Node: LINK275940
-Node: LLE276975
-Node: LLT278279
-Node: LNBLNK279549
-Node: LOC280325
-Node: LOG281056
-Node: LOG10282347
-Node: LOG_GAMMA283319
-Node: LOGICAL284407
-Node: LONG285211
-Node: LSHIFT285967
-Node: LSTAT286921
-Node: LTIME288075
-Node: MALLOC289490
-Node: MATMUL290950
-Node: MAX292040
-Node: MAXEXPONENT293539
-Node: MAXLOC294355
-Node: MAXVAL296404
-Node: MCLOCK298067
-Node: MCLOCK8299070
-Node: MERGE300284
-Node: MIN301026
-Node: MINEXPONENT302522
-Node: MINLOC303152
-Node: MINVAL305201
-Node: MOD306883
-Node: MODULO308375
-Node: MOVE_ALLOC309589
-Node: MVBITS310613
-Node: NEAREST311672
-Node: NEW_LINE312795
-Node: NINT313566
-Node: NOT314834
-Node: NULL315417
-Node: OR316315
-Node: PACK317593
-Node: PERROR319585
-Node: PRECISION320207
-Node: PRESENT321033
-Node: PRODUCT322139
-Node: RADIX323664
-Node: RAN324441
-Node: RAND324897
-Node: RANDOM_NUMBER326232
-Node: RANDOM_SEED327950
-Node: RANGE329833
-Node: REAL330457
-Node: RENAME331899
-Node: REPEAT332918
-Node: RESHAPE333644
-Node: RRSPACING335113
-Node: RSHIFT335806
-Node: SCALE336768
-Node: SCAN337542
-Node: SECNDS339092
-Node: SECOND340180
-Node: SELECTED_CHAR_KIND341056
-Node: SELECTED_INT_KIND342053
-Node: SELECTED_REAL_KIND343228
-Node: SET_EXPONENT345167
-Node: SHAPE346163
-Node: SIGN347276
-Node: SIGNAL348359
-Node: SIN349856
-Node: SINH350898
-Node: SIZE351710
-Node: SIZEOF353018
-Node: SLEEP354312
-Node: SNGL354869
-Node: SPACING355540
-Node: SPREAD356552
-Node: SQRT357697
-Node: SRAND358936
-Node: STAT360104
-Node: SUM363216
-Node: SYMLNK364685
-Node: SYSTEM365817
-Node: SYSTEM_CLOCK366765
-Node: TAN368109
-Node: TANH368945
-Node: TIME369812
-Node: TIME8370916
-Node: TINY372053
-Node: TRAILZ372653
-Node: TRANSFER373438
-Node: TRANSPOSE375472
-Node: TRIM376159
-Node: TTYNAM377016
-Node: UBOUND377931
-Node: UMASK379300
-Node: UNLINK379855
-Node: UNPACK380832
-Node: VERIFY382120
-Node: XOR383836
-Node: Intrinsic Modules385144
-Node: Contributing390935
-Node: Contributors391787
-Node: Projects393410
-Node: Proposed Extensions394213
-Node: Copying396264
-Node: GNU Free Documentation License433828
-Node: Funding456240
-Node: Option Index458765
-Node: Keyword Index470647
+Node: Top2126
+Node: Introduction3504
+Node: About GNU Fortran4251
+Node: GNU Fortran and GCC8238
+Node: Preprocessing and conditional compilation10350
+Node: GNU Fortran and G7711991
+Node: Project Status12564
+Node: Standards15096
+Node: Varying Length Character Strings16492
+Node: Invoking GNU Fortran17026
+Node: Option Summary18749
+Node: Fortran Dialect Options22378
+Node: Preprocessing Options29416
+Node: Error and Warning Options37542
+Node: Debugging Options45176
+Node: Directory Options47339
+Node: Link Options48854
+Node: Runtime Options49478
+Node: Code Gen Options51727
+Node: Environment Variables66487
+Node: Runtime67092
+Node: GFORTRAN_STDIN_UNIT68320
+Node: GFORTRAN_STDOUT_UNIT68687
+Node: GFORTRAN_STDERR_UNIT69088
+Node: GFORTRAN_USE_STDERR69486
+Node: GFORTRAN_TMPDIR69931
+Node: GFORTRAN_UNBUFFERED_ALL70372
+Node: GFORTRAN_UNBUFFERED_PRECONNECTED70895
+Node: GFORTRAN_SHOW_LOCUS71537
+Node: GFORTRAN_OPTIONAL_PLUS72031
+Node: GFORTRAN_DEFAULT_RECL72506
+Node: GFORTRAN_LIST_SEPARATOR72997
+Node: GFORTRAN_CONVERT_UNIT73606
+Node: GFORTRAN_ERROR_DUMPCORE76468
+Node: GFORTRAN_ERROR_BACKTRACE77015
+Node: Fortran 2003 and 2008 status77566
+Node: Fortran 2003 status77806
+Node: Fortran 2008 status80175
+Node: Compiler Characteristics81276
+Node: KIND Type Parameters81751
+Node: Internal representation of LOGICAL variables82731
+Node: Extensions84042
+Node: Extensions implemented in GNU Fortran84643
+Node: Old-style kind specifications85977
+Node: Old-style variable initialization87083
+Node: Extensions to namelist88395
+Node: X format descriptor without count field90391
+Node: Commas in FORMAT specifications90918
+Node: Missing period in FORMAT specifications91435
+Node: I/O item lists91997
+Node: BOZ literal constants92386
+Node: Real array indices94956
+Node: Unary operators95253
+Node: Implicitly convert LOGICAL and INTEGER values95667
+Node: Hollerith constants support96627
+Node: Cray pointers98399
+Node: CONVERT specifier103809
+Node: OpenMP105807
+Node: Argument list functions108054
+Node: Extensions not implemented in GNU Fortran109658
+Node: STRUCTURE and RECORD110542
+Node: ENCODE and DECODE statements112598
+Node: Variable FORMAT expressions113956
+Node: Mixed-Language Programming115013
+Node: Interoperability with C115556
+Node: Intrinsic Types116863
+Node: Derived Types and struct117394
+Node: Interoperable Global Variables118775
+Node: Interoperable Subroutines and Functions120047
+Node: Further Interoperability of Fortran with C124600
+Node: GNU Fortran Compiler Directives125606
+Node: Non-Fortran Main Program127803
+Node: _gfortran_set_args129941
+Node: _gfortran_set_options130875
+Node: _gfortran_set_convert133711
+Node: _gfortran_set_record_marker134575
+Node: _gfortran_set_fpe135399
+Node: _gfortran_set_max_subrecord_length136611
+Node: Intrinsic Procedures137566
+Node: Introduction to Intrinsics151256
+Node: ABORT153608
+Node: ABS154365
+Node: ACCESS155867
+Node: ACHAR157788
+Node: ACOS158989
+Node: ACOSH160111
+Node: ADJUSTL161112
+Node: ADJUSTR162053
+Node: AIMAG163000
+Node: AINT164320
+Node: ALARM165792
+Node: ALL167426
+Node: ALLOCATED169344
+Node: AND170225
+Node: ANINT171522
+Node: ANY172885
+Node: ASIN174815
+Node: ASINH175926
+Node: ASSOCIATED176937
+Node: ATAN179942
+Node: ATAN2181241
+Node: ATANH182762
+Node: BESSEL_J0183771
+Node: BESSEL_J1184815
+Node: BESSEL_JN185867
+Node: BESSEL_Y0187082
+Node: BESSEL_Y1188082
+Node: BESSEL_YN189082
+Node: BIT_SIZE190299
+Node: BTEST191128
+Node: C_ASSOCIATED192016
+Node: C_FUNLOC193225
+Node: C_F_PROCPOINTER194594
+Node: C_F_POINTER196095
+Node: C_LOC197513
+Node: C_SIZEOF198630
+Node: CEILING199983
+Node: CHAR200988
+Node: CHDIR202052
+Node: CHMOD203220
+Node: CMPLX205015
+Node: COMMAND_ARGUMENT_COUNT206479
+Node: COMPLEX207395
+Node: CONJG208538
+Node: COS209548
+Node: COSH210879
+Node: COUNT211929
+Node: CPU_TIME213945
+Node: CSHIFT215299
+Node: CTIME216955
+Node: DATE_AND_TIME218214
+Node: DBLE220675
+Node: DCMPLX221499
+Node: DFLOAT222693
+Node: DIGITS223387
+Node: DIM224353
+Node: DOT_PRODUCT225496
+Node: DPROD227152
+Node: DREAL227878
+Node: DTIME228542
+Node: EOSHIFT231343
+Node: EPSILON233416
+Node: ERF234142
+Node: ERFC234916
+Node: ERFC_SCALED235720
+Node: ETIME236412
+Node: EXIT238637
+Node: EXP239496
+Node: EXPONENT240654
+Node: FDATE241404
+Node: FLOAT242679
+Node: FGET243393
+Node: FGETC245187
+Node: FLOOR246955
+Node: FLUSH247939
+Node: FNUM248577
+Node: FPUT249299
+Node: FPUTC250900
+Node: FRACTION252640
+Node: FREE253541
+Node: FSEEK254378
+Node: FSTAT256672
+Node: FTELL257716
+Node: GAMMA258694
+Node: GERROR259735
+Node: GETARG260454
+Node: GET_COMMAND262218
+Node: GET_COMMAND_ARGUMENT263582
+Node: GETCWD265601
+Node: GETENV266547
+Node: GET_ENVIRONMENT_VARIABLE267769
+Node: GETGID269634
+Node: GETLOG270169
+Node: GETPID271027
+Node: GETUID271755
+Node: GMTIME272269
+Node: HOSTNM273758
+Node: HUGE274674
+Node: HYPOT275393
+Node: IACHAR276213
+Node: IAND277393
+Node: IARGC278380
+Node: IBCLR279403
+Node: IBITS280064
+Node: IBSET280979
+Node: ICHAR281635
+Node: IDATE283616
+Node: IEOR284643
+Node: IERRNO285519
+Node: INDEX intrinsic286074
+Node: INT287420
+Node: INT2289007
+Node: INT8289772
+Node: IOR290484
+Node: IRAND291334
+Node: IS_IOSTAT_END292686
+Node: IS_IOSTAT_EOR293781
+Node: ISATTY294906
+Node: ISHFT295689
+Node: ISHFTC296669
+Node: ISNAN297885
+Node: ITIME298633
+Node: KILL299658
+Node: KIND300531
+Node: LBOUND301376
+Node: LEADZ302688
+Node: LEN303492
+Node: LEN_TRIM304583
+Node: LGE305565
+Node: LGT306877
+Node: LINK308154
+Node: LLE309189
+Node: LLT310493
+Node: LNBLNK311763
+Node: LOC312539
+Node: LOG313270
+Node: LOG10314561
+Node: LOG_GAMMA315535
+Node: LOGICAL316624
+Node: LONG317432
+Node: LSHIFT318188
+Node: LSTAT319142
+Node: LTIME320300
+Node: MALLOC321713
+Node: MATMUL323173
+Node: MAX324263
+Node: MAXEXPONENT325762
+Node: MAXLOC326578
+Node: MAXVAL328597
+Node: MCLOCK330230
+Node: MCLOCK8331233
+Node: MERGE332447
+Node: MIN333189
+Node: MINEXPONENT334685
+Node: MINLOC335315
+Node: MINVAL337334
+Node: MOD338986
+Node: MODULO340478
+Node: MOVE_ALLOC341692
+Node: MVBITS342716
+Node: NEAREST343775
+Node: NEW_LINE344898
+Node: NINT345669
+Node: NOT346937
+Node: NULL347520
+Node: OR348418
+Node: PACK349696
+Node: PERROR351688
+Node: PRECISION352310
+Node: PRESENT353136
+Node: PRODUCT354242
+Node: RADIX355767
+Node: RAN356544
+Node: RAND357000
+Node: RANDOM_NUMBER358332
+Node: RANDOM_SEED360050
+Node: RANGE361935
+Node: REAL362559
+Node: RENAME363998
+Node: REPEAT365017
+Node: RESHAPE365743
+Node: RRSPACING367212
+Node: RSHIFT367905
+Node: SCALE368867
+Node: SCAN369641
+Node: SECNDS371191
+Node: SECOND372279
+Node: SELECTED_CHAR_KIND373155
+Node: SELECTED_INT_KIND374152
+Node: SELECTED_REAL_KIND375327
+Node: SET_EXPONENT377268
+Node: SHAPE378264
+Node: SIGN379377
+Node: SIGNAL380460
+Node: SIN381957
+Node: SINH382999
+Node: SIZE383880
+Node: SIZEOF385188
+Node: SLEEP386482
+Node: SNGL387039
+Node: SPACING387710
+Node: SPREAD388722
+Node: SQRT389867
+Node: SRAND391106
+Node: STAT392274
+Node: SUM395397
+Node: SYMLNK396871
+Node: SYSTEM398003
+Node: SYSTEM_CLOCK398951
+Node: TAN400295
+Node: TANH401152
+Node: TIME402188
+Node: TIME8403292
+Node: TINY404429
+Node: TRAILZ405029
+Node: TRANSFER405814
+Node: TRANSPOSE407848
+Node: TRIM408535
+Node: TTYNAM409392
+Node: UBOUND410307
+Node: UMASK411676
+Node: UNLINK412347
+Node: UNPACK413324
+Node: VERIFY414612
+Node: XOR416328
+Node: Intrinsic Modules417700
+Node: ISO_FORTRAN_ENV417943
+Node: ISO_C_BINDING419588
+Node: OpenMP Modules OMP_LIB and OMP_LIB_KINDS423257
+Node: Contributing424217
+Node: Contributors425069
+Node: Projects426736
+Node: Proposed Extensions427539
+Node: Copying429590
+Node: GNU Free Documentation License467154
+Node: Funding489566
+Node: Option Index492091
+Node: Keyword Index504333

End Tag Table
« no previous file with comments | « gcc/gcc/fortran/gfortran.h ('k') | gcc/gcc/fortran/intrinsic.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698