Mercurial > hg > CbC > CbC_gcc
diff gcc/fortran/intrinsic.texi @ 145:1830386684a0
gcc-9.2.0
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 11:34:05 +0900 |
parents | 84e7813d76e9 |
children |
line wrap: on
line diff
--- a/gcc/fortran/intrinsic.texi Thu Oct 25 07:37:49 2018 +0900 +++ b/gcc/fortran/intrinsic.texi Thu Feb 13 11:34:05 2020 +0900 @@ -1,5 +1,5 @@ @ignore -Copyright (C) 2005-2018 Free Software Foundation, Inc. +Copyright (C) 2005-2020 Free Software Foundation, Inc. This is part of the GNU Fortran manual. For copying conditions, see the file gfortran.texi. @@ -148,6 +148,7 @@ * @code{FDATE}: FDATE, Subroutine (or function) to get the current time as a string * @code{FGET}: FGET, Read a single character in stream mode from stdin * @code{FGETC}: FGETC, Read a single character in stream mode +* @code{FINDLOC}: FINDLOC, Search an array for a value * @code{FLOOR}: FLOOR, Integer floor function * @code{FLUSH}: FLUSH, Flush I/O unit(s) * @code{FNUM}: FNUM, File number function @@ -194,6 +195,7 @@ * @code{IOR}: IOR, Bitwise logical or * @code{IPARITY}: IPARITY, Bitwise XOR of array elements * @code{IRAND}: IRAND, Integer pseudo-random number +* @code{IS_CONTIGUOUS}: IS_CONTIGUOUS, Test whether an array is contiguous * @code{IS_IOSTAT_END}: IS_IOSTAT_END, Test for end-of-file value * @code{IS_IOSTAT_EOR}: IS_IOSTAT_EOR, Test for end-of-record value * @code{ISATTY}: ISATTY, Whether a unit is a terminal device @@ -401,8 +403,9 @@ @end smallexample @item @emph{See also}: -@ref{EXIT}, @ref{KILL}, @ref{BACKTRACE} - +@ref{EXIT}, @gol +@ref{KILL}, @gol +@ref{BACKTRACE} @end table @@ -468,8 +471,8 @@ @item @code{IIABS(A)} @tab @code{INTEGER(2) A} @tab @code{INTEGER(2)} @tab GNU extension @item @code{JIABS(A)} @tab @code{INTEGER(4) A} @tab @code{INTEGER(4)} @tab GNU extension @item @code{KIABS(A)} @tab @code{INTEGER(8) A} @tab @code{INTEGER(8)} @tab GNU extension -@item @code{ZABS(A)} @tab @code{COMPLEX(8) A} @tab @code{COMPLEX(8)} @tab GNU extension -@item @code{CDABS(A)} @tab @code{COMPLEX(8) A} @tab @code{COMPLEX(8)} @tab GNU extension +@item @code{ZABS(A)} @tab @code{COMPLEX(8) A} @tab @code{REAL(8)} @tab GNU extension +@item @code{CDABS(A)} @tab @code{COMPLEX(8) A} @tab @code{REAL(8)} @tab GNU extension @end multitable @end table @@ -527,9 +530,6 @@ print *, trim(file2),' is readable, writable and executable' end program access_test @end smallexample -@item @emph{Specific names}: -@item @emph{See also}: - @end table @@ -579,8 +579,9 @@ and formatted string representations. @item @emph{See also}: -@ref{CHAR}, @ref{IACHAR}, @ref{ICHAR} - +@ref{CHAR}, @gol +@ref{IACHAR}, @gol +@ref{ICHAR} @end table @@ -632,9 +633,10 @@ @end multitable @item @emph{See also}: -Inverse function: @ref{COS} -Degrees function: @ref{ACOSD} - +Inverse function: @gol +@ref{COS} @gol +Degrees function: @gol +@ref{ACOSD} @end table @@ -655,7 +657,7 @@ standard constructs wherever possible. @item @emph{Standard}: -GNU Extension, enabled with @option{-fdec-math} +GNU extension, enabled with @option{-fdec-math} @item @emph{Class}: Elemental function @@ -685,14 +687,15 @@ @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @item Name @tab Argument @tab Return type @tab Standard -@item @code{ACOSD(X)} @tab @code{REAL(4) X} @tab @code{REAL(4)} @tab GNU Extension -@item @code{DACOSD(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab GNU Extension -@end multitable - -@item @emph{See also}: -Inverse function: @ref{COSD} -Radians function: @ref{ACOS} - +@item @code{ACOSD(X)} @tab @code{REAL(4) X} @tab @code{REAL(4)} @tab GNU extension +@item @code{DACOSD(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab GNU extension +@end multitable + +@item @emph{See also}: +Inverse function: @gol +@ref{COSD} @gol +Radians function: @gol +@ref{ACOS} @gol @end table @@ -744,7 +747,8 @@ @end multitable @item @emph{See also}: -Inverse function: @ref{COSH} +Inverse function: @gol +@ref{COSH} @end table @@ -789,7 +793,8 @@ @end smallexample @item @emph{See also}: -@ref{ADJUSTR}, @ref{TRIM} +@ref{ADJUSTR}, @gol +@ref{TRIM} @end table @@ -806,7 +811,7 @@ Spaces are inserted at the start of the string as needed. @item @emph{Standard}: -Fortran 95 and later +Fortran 90 and later @item @emph{Class}: Elemental function @@ -834,7 +839,8 @@ @end smallexample @item @emph{See also}: -@ref{ADJUSTL}, @ref{TRIM} +@ref{ADJUSTL}, @gol +@ref{TRIM} @end table @@ -886,7 +892,7 @@ @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @item Name @tab Argument @tab Return type @tab Standard -@item @code{AIMAG(Z)} @tab @code{COMPLEX Z} @tab @code{REAL} @tab GNU extension +@item @code{AIMAG(Z)} @tab @code{COMPLEX Z} @tab @code{REAL} @tab Fortran 77 and later @item @code{DIMAG(Z)} @tab @code{COMPLEX(8) Z} @tab @code{REAL(8)} @tab GNU extension @item @code{IMAG(Z)} @tab @code{COMPLEX Z} @tab @code{REAL} @tab GNU extension @item @code{IMAGPART(Z)} @tab @code{COMPLEX Z} @tab @code{REAL} @tab GNU extension @@ -1016,7 +1022,7 @@ in the array along dimension @var{DIM}. @item @emph{Standard}: -Fortran 95 and later +Fortran 90 and later @item @emph{Class}: Transformational function @@ -1082,7 +1088,7 @@ status of @var{ARRAY} and @var{SCALAR}, respectively. @item @emph{Standard}: -Fortran 95 and later. Note, the @code{SCALAR=} keyword and allocatable +Fortran 90 and later. Note, the @code{SCALAR=} keyword and allocatable scalar entities are available in Fortran 2003 and later. @item @emph{Class}: @@ -1143,15 +1149,20 @@ @item @emph{Arguments}: @multitable @columnfractions .15 .70 @item @var{I} @tab The type shall be either a scalar @code{INTEGER} -type or a scalar @code{LOGICAL} type. -@item @var{J} @tab The type shall be the same as the type of @var{I}. +type or a scalar @code{LOGICAL} type or a boz-literal-constant. +@item @var{J} @tab The type shall be the same as the type of @var{I} or +a boz-literal-constant. @var{I} and @var{J} shall not both be +boz-literal-constants. If either @var{I} or @var{J} is a +boz-literal-constant, then the other argument must be a scalar @code{INTEGER}. @end multitable @item @emph{Return value}: The return type is either a scalar @code{INTEGER} or a scalar @code{LOGICAL}. If the kind type parameters differ, then the smaller kind type is implicitly converted to larger kind, and the -return has the larger kind. +return has the larger kind. A boz-literal-constant is +converted to an @code{INTEGER} with the kind type parameter of +the other argument as-if a call to @ref{INT} occurred. @item @emph{Example}: @smallexample @@ -1166,7 +1177,8 @@ @end smallexample @item @emph{See also}: -Fortran 95 elemental function: @ref{IAND} +Fortran 95 elemental function: @gol +@ref{IAND} @end table @@ -1239,7 +1251,7 @@ @var{MASK} along dimension @var{DIM} are @code{.TRUE.}. @item @emph{Standard}: -Fortran 95 and later +Fortran 90 and later @item @emph{Class}: Transformational function @@ -1341,9 +1353,10 @@ @end multitable @item @emph{See also}: -Inverse function: @ref{SIN} -Degrees function: @ref{ASIND} - +Inverse function: @gol +@ref{SIN} @gol +Degrees function: @gol +@ref{ASIND} @end table @@ -1364,7 +1377,7 @@ standard constructs wherever possible. @item @emph{Standard}: -GNU Extension, enabled with @option{-fdec-math}. +GNU extension, enabled with @option{-fdec-math}. @item @emph{Class}: Elemental function @@ -1394,14 +1407,15 @@ @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @item Name @tab Argument @tab Return type @tab Standard -@item @code{ASIND(X)} @tab @code{REAL(4) X} @tab @code{REAL(4)} @tab GNU Extension -@item @code{DASIND(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab GNU Extension -@end multitable - -@item @emph{See also}: -Inverse function: @ref{SIND} -Radians function: @ref{ASIN} - +@item @code{ASIND(X)} @tab @code{REAL(4) X} @tab @code{REAL(4)} @tab GNU extension +@item @code{DASIND(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab GNU extension +@end multitable + +@item @emph{See also}: +Inverse function: @gol +@ref{SIND} @gol +Radians function: @gol +@ref{ASIN} @end table @@ -1453,7 +1467,8 @@ @end multitable @item @emph{See also}: -Inverse function: @ref{SINH} +Inverse function: @gol +@ref{SINH} @end table @@ -1470,7 +1485,7 @@ @var{POINTER} or if @var{POINTER} is associated with the target @var{TARGET}. @item @emph{Standard}: -Fortran 95 and later +Fortran 90 and later @item @emph{Class}: Inquiry function @@ -1563,7 +1578,7 @@ @multitable @columnfractions .15 .70 @item @var{X} @tab The type shall be @code{REAL} or @code{COMPLEX}; if @var{Y} is present, @var{X} shall be REAL. -@item @var{Y} shall be of the same type and kind as @var{X}. +@item @var{Y} @tab The type and kind type parameter shall be the same as @var{X}. @end multitable @item @emph{Return value}: @@ -1589,9 +1604,10 @@ @end multitable @item @emph{See also}: -Inverse function: @ref{TAN} -Degrees function: @ref{ATAND} - +Inverse function: @gol +@ref{TAN} @gol +Degrees function: @gol +@ref{ATAND} @end table @@ -1612,7 +1628,7 @@ standard constructs wherever possible. @item @emph{Standard}: -GNU Extension, enabled with @option{-fdec-math}. +GNU extension, enabled with @option{-fdec-math}. @item @emph{Class}: Elemental function @@ -1627,7 +1643,7 @@ @multitable @columnfractions .15 .70 @item @var{X} @tab The type shall be @code{REAL} or @code{COMPLEX}; if @var{Y} is present, @var{X} shall be REAL. -@item @var{Y} shall be of the same type and kind as @var{X}. +@item @var{Y} @tab The type and kind type parameter shall be the same as @var{X}. @end multitable @item @emph{Return value}: @@ -1648,14 +1664,15 @@ @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @item Name @tab Argument @tab Return type @tab Standard -@item @code{ATAND(X)} @tab @code{REAL(4) X} @tab @code{REAL(4)} @tab GNU Extension -@item @code{DATAND(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab GNU Extension -@end multitable - -@item @emph{See also}: -Inverse function: @ref{TAND} -Radians function: @ref{ATAN} - +@item @code{ATAND(X)} @tab @code{REAL(4) X} @tab @code{REAL(4)} @tab GNU extension +@item @code{DATAND(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab GNU extension +@end multitable + +@item @emph{See also}: +Inverse function: @gol +@ref{TAND} @gol +Radians function: @gol +@ref{ATAN} @end table @@ -1717,9 +1734,10 @@ @end multitable @item @emph{See also}: -Alias: @ref{ATAN} -Degrees function: @ref{ATAN2D} - +Alias: @gol +@ref{ATAN} @gol +Degrees function: @gol +@ref{ATAN2D} @end table @@ -1742,7 +1760,7 @@ standard constructs wherever possible. @item @emph{Standard}: -GNU Extension, enabled with @option{-fdec-math}. +GNU extension, enabled with @option{-fdec-math}. @item @emph{Class}: Elemental function @@ -1779,14 +1797,15 @@ @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @item Name @tab Argument @tab Return type @tab Standard -@item @code{ATAN2D(X, Y)} @tab @code{REAL(4) X, Y} @tab @code{REAL(4)} @tab GNU Extension -@item @code{DATAN2D(X, Y)} @tab @code{REAL(8) X, Y} @tab @code{REAL(8)} @tab GNU Extension -@end multitable - -@item @emph{See also}: -Alias: @ref{ATAND} -Radians function: @ref{ATAN2} - +@item @code{ATAN2D(X, Y)} @tab @code{REAL(4) X, Y} @tab @code{REAL(4)} @tab GNU extension +@item @code{DATAN2D(X, Y)} @tab @code{REAL(8) X, Y} @tab @code{REAL(8)} @tab GNU extension +@end multitable + +@item @emph{See also}: +Alias: @gol +@ref{ATAND} @gol +Radians function: @gol +@ref{ATAN2} @end table @@ -1838,7 +1857,8 @@ @end multitable @item @emph{See also}: -Inverse function: @ref{TANH} +Inverse function: @gol +@ref{TANH} @end table @@ -1886,8 +1906,12 @@ @end smallexample @item @emph{See also}: -@ref{ATOMIC_DEFINE}, @ref{ATOMIC_FETCH_ADD}, @ref{ISO_FORTRAN_ENV}, -@ref{ATOMIC_AND}, @ref{ATOMIC_OR}, @ref{ATOMIC_XOR} +@ref{ATOMIC_DEFINE}, @gol +@ref{ATOMIC_FETCH_ADD}, @gol +@ref{ISO_FORTRAN_ENV}, @gol +@ref{ATOMIC_AND}, @gol +@ref{ATOMIC_OR}, @gol +@ref{ATOMIC_XOR} @end table @@ -1936,8 +1960,12 @@ @end smallexample @item @emph{See also}: -@ref{ATOMIC_DEFINE}, @ref{ATOMIC_FETCH_AND}, @ref{ISO_FORTRAN_ENV}, -@ref{ATOMIC_ADD}, @ref{ATOMIC_OR}, @ref{ATOMIC_XOR} +@ref{ATOMIC_DEFINE}, @gol +@ref{ATOMIC_FETCH_AND}, @gol +@ref{ISO_FORTRAN_ENV}, @gol +@ref{ATOMIC_ADD}, @gol +@ref{ATOMIC_OR}, @gol +@ref{ATOMIC_XOR} @end table @@ -1991,7 +2019,9 @@ @end smallexample @item @emph{See also}: -@ref{ATOMIC_DEFINE}, @ref{ATOMIC_REF}, @ref{ISO_FORTRAN_ENV} +@ref{ATOMIC_DEFINE}, @gol +@ref{ATOMIC_REF}, @gol +@ref{ISO_FORTRAN_ENV} @end table @@ -2041,8 +2071,13 @@ @end smallexample @item @emph{See also}: -@ref{ATOMIC_REF}, @ref{ATOMIC_CAS}, @ref{ISO_FORTRAN_ENV}, -@ref{ATOMIC_ADD}, @ref{ATOMIC_AND}, @ref{ATOMIC_OR}, @ref{ATOMIC_XOR} +@ref{ATOMIC_REF}, @gol +@ref{ATOMIC_CAS}, @gol +@ref{ISO_FORTRAN_ENV}, @gol +@ref{ATOMIC_ADD}, @gol +@ref{ATOMIC_AND}, @gol +@ref{ATOMIC_OR}, @gol +@ref{ATOMIC_XOR} @end table @@ -2094,8 +2129,12 @@ @end smallexample @item @emph{See also}: -@ref{ATOMIC_DEFINE}, @ref{ATOMIC_ADD}, @ref{ISO_FORTRAN_ENV}, -@ref{ATOMIC_FETCH_AND}, @ref{ATOMIC_FETCH_OR}, @ref{ATOMIC_FETCH_XOR} +@ref{ATOMIC_DEFINE}, @gol +@ref{ATOMIC_ADD}, @gol +@ref{ISO_FORTRAN_ENV}, @gol +@ref{ATOMIC_FETCH_AND}, @gol +@ref{ATOMIC_FETCH_OR}, @gol +@ref{ATOMIC_FETCH_XOR} @end table @@ -2145,8 +2184,12 @@ @end smallexample @item @emph{See also}: -@ref{ATOMIC_DEFINE}, @ref{ATOMIC_AND}, @ref{ISO_FORTRAN_ENV}, -@ref{ATOMIC_FETCH_ADD}, @ref{ATOMIC_FETCH_OR}, @ref{ATOMIC_FETCH_XOR} +@ref{ATOMIC_DEFINE}, @gol +@ref{ATOMIC_AND}, @gol +@ref{ISO_FORTRAN_ENV}, @gol +@ref{ATOMIC_FETCH_ADD}, @gol +@ref{ATOMIC_FETCH_OR}, @gol +@ref{ATOMIC_FETCH_XOR} @end table @@ -2196,8 +2239,12 @@ @end smallexample @item @emph{See also}: -@ref{ATOMIC_DEFINE}, @ref{ATOMIC_OR}, @ref{ISO_FORTRAN_ENV}, -@ref{ATOMIC_FETCH_ADD}, @ref{ATOMIC_FETCH_AND}, @ref{ATOMIC_FETCH_XOR} +@ref{ATOMIC_DEFINE}, @gol +@ref{ATOMIC_OR}, @gol +@ref{ISO_FORTRAN_ENV}, @gol +@ref{ATOMIC_FETCH_ADD}, @gol +@ref{ATOMIC_FETCH_AND}, @gol +@ref{ATOMIC_FETCH_XOR} @end table @@ -2247,8 +2294,12 @@ @end smallexample @item @emph{See also}: -@ref{ATOMIC_DEFINE}, @ref{ATOMIC_XOR}, @ref{ISO_FORTRAN_ENV}, -@ref{ATOMIC_FETCH_ADD}, @ref{ATOMIC_FETCH_AND}, @ref{ATOMIC_FETCH_OR} +@ref{ATOMIC_DEFINE}, @gol +@ref{ATOMIC_XOR}, @gol +@ref{ISO_FORTRAN_ENV}, @gol +@ref{ATOMIC_FETCH_ADD}, @gol +@ref{ATOMIC_FETCH_AND}, @gol +@ref{ATOMIC_FETCH_OR} @end table @@ -2296,8 +2347,12 @@ @end smallexample @item @emph{See also}: -@ref{ATOMIC_DEFINE}, @ref{ATOMIC_FETCH_OR}, @ref{ISO_FORTRAN_ENV}, -@ref{ATOMIC_ADD}, @ref{ATOMIC_OR}, @ref{ATOMIC_XOR} +@ref{ATOMIC_DEFINE}, @gol +@ref{ATOMIC_FETCH_OR}, @gol +@ref{ISO_FORTRAN_ENV}, @gol +@ref{ATOMIC_ADD}, @gol +@ref{ATOMIC_OR}, @gol +@ref{ATOMIC_XOR} @end table @@ -2353,8 +2408,12 @@ @end smallexample @item @emph{See also}: -@ref{ATOMIC_DEFINE}, @ref{ATOMIC_CAS}, @ref{ISO_FORTRAN_ENV}, -@ref{ATOMIC_FETCH_ADD}, @ref{ATOMIC_FETCH_AND}, @ref{ATOMIC_FETCH_OR}, +@ref{ATOMIC_DEFINE}, @gol +@ref{ATOMIC_CAS}, @gol +@ref{ISO_FORTRAN_ENV}, @gol +@ref{ATOMIC_FETCH_ADD}, @gol +@ref{ATOMIC_FETCH_AND}, @gol +@ref{ATOMIC_FETCH_OR}, @gol @ref{ATOMIC_FETCH_XOR} @end table @@ -2402,8 +2461,12 @@ @end smallexample @item @emph{See also}: -@ref{ATOMIC_DEFINE}, @ref{ATOMIC_FETCH_XOR}, @ref{ISO_FORTRAN_ENV}, -@ref{ATOMIC_ADD}, @ref{ATOMIC_OR}, @ref{ATOMIC_XOR} +@ref{ATOMIC_DEFINE}, @gol +@ref{ATOMIC_FETCH_XOR}, @gol +@ref{ISO_FORTRAN_ENV}, @gol +@ref{ATOMIC_ADD}, @gol +@ref{ATOMIC_OR}, @gol +@ref{ATOMIC_XOR} @end table @@ -2419,7 +2482,7 @@ to the unit corresponding to @code{ERROR_UNIT} in @code{ISO_FORTRAN_ENV}. @item @emph{Standard}: -GNU Extension +GNU extension @item @emph{Class}: Subroutine @@ -2790,7 +2853,9 @@ The return value is of type @code{LOGICAL} and of the default kind. @item @emph{See also}: -@ref{BGT}, @ref{BLE}, @ref{BLT} +@ref{BGT}, @gol +@ref{BLE}, @gol +@ref{BLT} @end table @@ -2824,7 +2889,9 @@ The return value is of type @code{LOGICAL} and of the default kind. @item @emph{See also}: -@ref{BGE}, @ref{BLE}, @ref{BLT} +@ref{BGE}, @gol +@ref{BLE}, @gol +@ref{BLT} @end table @@ -2842,7 +2909,7 @@ independent of the actual value of @var{I}. @item @emph{Standard}: -Fortran 95 and later +Fortran 90 and later @item @emph{Class}: Inquiry function @@ -2901,7 +2968,9 @@ The return value is of type @code{LOGICAL} and of the default kind. @item @emph{See also}: -@ref{BGT}, @ref{BGE}, @ref{BLT} +@ref{BGT}, @gol +@ref{BGE}, @gol +@ref{BLT} @end table @@ -2935,7 +3004,9 @@ The return value is of type @code{LOGICAL} and of the default kind. @item @emph{See also}: -@ref{BGE}, @ref{BGT}, @ref{BLE} +@ref{BGE}, @gol +@ref{BGT}, @gol +@ref{BLE} @end table @@ -2955,7 +3026,7 @@ in @var{I} is set. The counting of the bits starts at 0. @item @emph{Standard}: -Fortran 95 and later, has overloads that are GNU extensions +Fortran 90 and later, has overloads that are GNU extensions @item @emph{Class}: Elemental function @@ -2988,7 +3059,7 @@ @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @item Name @tab Argument @tab Return type @tab Standard -@item @code{BTEST(I,POS)} @tab @code{INTEGER I,POS} @tab @code{LOGICAL} @tab F95 and later +@item @code{BTEST(I,POS)} @tab @code{INTEGER I,POS} @tab @code{LOGICAL} @tab Fortran 95 and later @item @code{BBTEST(I,POS)} @tab @code{INTEGER(1) I,POS} @tab @code{LOGICAL(1)} @tab GNU extension @item @code{BITEST(I,POS)} @tab @code{INTEGER(2) I,POS} @tab @code{LOGICAL(2)} @tab GNU extension @item @code{BJTEST(I,POS)} @tab @code{INTEGER(4) I,POS} @tab @code{LOGICAL(4)} @tab GNU extension @@ -3040,7 +3111,8 @@ @end smallexample @item @emph{See also}: -@ref{C_LOC}, @ref{C_FUNLOC} +@ref{C_LOC}, @gol +@ref{C_FUNLOC} @end table @@ -3094,7 +3166,8 @@ @end smallexample @item @emph{See also}: -@ref{C_LOC}, @ref{C_F_PROCPOINTER} +@ref{C_LOC}, @gol +@ref{C_F_PROCPOINTER} @end table @@ -3151,7 +3224,8 @@ @end smallexample @item @emph{See also}: -@ref{C_LOC}, @ref{C_F_POINTER} +@ref{C_LOC}, @gol +@ref{C_F_POINTER} @end table @@ -3208,7 +3282,10 @@ @end smallexample @item @emph{See also}: -@ref{C_ASSOCIATED}, @ref{C_LOC}, @ref{C_F_POINTER}, @ref{C_F_PROCPOINTER} +@ref{C_ASSOCIATED}, @gol +@ref{C_LOC}, @gol +@ref{C_F_POINTER}, @gol +@ref{C_F_PROCPOINTER} @end table @@ -3253,7 +3330,10 @@ @end smallexample @item @emph{See also}: -@ref{C_ASSOCIATED}, @ref{C_FUNLOC}, @ref{C_F_POINTER}, @ref{C_F_PROCPOINTER} +@ref{C_ASSOCIATED}, @gol +@ref{C_FUNLOC}, @gol +@ref{C_F_POINTER}, @gol +@ref{C_F_PROCPOINTER} @end table @@ -3299,11 +3379,12 @@ print *, (c_sizeof(s)/c_sizeof(r) == 5) end @end smallexample -The example will print @code{.TRUE.} unless you are using a platform +The example will print @code{T} unless you are using a platform where default @code{REAL} variables are unusually padded. @item @emph{See also}: -@ref{SIZEOF}, @ref{STORAGE_SIZE} +@ref{SIZEOF}, @gol +@ref{STORAGE_SIZE} @end table @@ -3348,8 +3429,8 @@ @end smallexample @item @emph{See also}: -@ref{FLOOR}, @ref{NINT} - +@ref{FLOOR}, @gol +@ref{NINT} @end table @@ -3393,9 +3474,9 @@ @end smallexample @item @emph{Specific names}: -@multitable @columnfractions .20 .20 .20 .25 +@multitable @columnfractions .18 .18 .24 .25 @item Name @tab Argument @tab Return type @tab Standard -@item @code{CHAR(I)} @tab @code{INTEGER I} @tab @code{CHARACTER(LEN=1)} @tab F77 and later +@item @code{CHAR(I)} @tab @code{INTEGER I} @tab @code{CHARACTER(LEN=1)} @tab Fortran 77 and later @end multitable @item @emph{Note}: @@ -3403,7 +3484,9 @@ and formatted string representations. @item @emph{See also}: -@ref{ACHAR}, @ref{IACHAR}, @ref{ICHAR} +@ref{ACHAR}, @gol +@ref{IACHAR}, @gol +@ref{ICHAR} @end table @@ -3608,7 +3691,7 @@ @code{CALL CO_BROADCAST(A, SOURCE_IMAGE [, STAT, ERRMSG])} @item @emph{Arguments}: -@multitable @columnfractions .15 .70 +@multitable @columnfractions .20 .65 @item @var{A} @tab INTENT(INOUT) argument; shall have the same dynamic type and type paramters on all images of the current team. If it is an array, it shall have the same shape on all images. @@ -3632,7 +3715,10 @@ @end smallexample @item @emph{See also}: -@ref{CO_MAX}, @ref{CO_MIN}, @ref{CO_SUM}, @ref{CO_REDUCE} +@ref{CO_MAX}, @gol +@ref{CO_MIN}, @gol +@ref{CO_SUM}, @gol +@ref{CO_REDUCE} @end table @@ -3663,7 +3749,7 @@ @code{CALL CO_MAX(A [, RESULT_IMAGE, STAT, ERRMSG])} @item @emph{Arguments}: -@multitable @columnfractions .15 .70 +@multitable @columnfractions .20 .65 @item @var{A} @tab shall be an integer, real or character variable, which has the same type and type parameters on all images of the team. @item @var{RESULT_IMAGE} @tab (optional) a scalar integer expression; if @@ -3686,7 +3772,10 @@ @end smallexample @item @emph{See also}: -@ref{CO_MIN}, @ref{CO_SUM}, @ref{CO_REDUCE}, @ref{CO_BROADCAST} +@ref{CO_MIN}, @gol +@ref{CO_SUM}, @gol +@ref{CO_REDUCE}, @gol +@ref{CO_BROADCAST} @end table @@ -3717,7 +3806,7 @@ @code{CALL CO_MIN(A [, RESULT_IMAGE, STAT, ERRMSG])} @item @emph{Arguments}: -@multitable @columnfractions .15 .70 +@multitable @columnfractions .20 .65 @item @var{A} @tab shall be an integer, real or character variable, which has the same type and type parameters on all images of the team. @item @var{RESULT_IMAGE} @tab (optional) a scalar integer expression; if @@ -3740,7 +3829,10 @@ @end smallexample @item @emph{See also}: -@ref{CO_MAX}, @ref{CO_SUM}, @ref{CO_REDUCE}, @ref{CO_BROADCAST} +@ref{CO_MAX}, @gol +@ref{CO_SUM}, @gol +@ref{CO_REDUCE}, @gol +@ref{CO_BROADCAST} @end table @@ -3775,7 +3867,7 @@ @code{CALL CO_REDUCE(A, OPERATOR, [, RESULT_IMAGE, STAT, ERRMSG])} @item @emph{Arguments}: -@multitable @columnfractions .15 .70 +@multitable @columnfractions .20 .65 @item @var{A} @tab is an @code{INTENT(INOUT)} argument and shall be nonpolymorphic. If it is allocatable, it shall be allocated; if it is a pointer, it shall be associated. @var{A} shall have the same type and type parameters on @@ -3820,7 +3912,10 @@ type as result. @item @emph{See also}: -@ref{CO_MIN}, @ref{CO_MAX}, @ref{CO_SUM}, @ref{CO_BROADCAST} +@ref{CO_MIN}, @gol +@ref{CO_MAX}, @gol +@ref{CO_SUM}, @gol +@ref{CO_BROADCAST} @end table @@ -3851,7 +3946,7 @@ @code{CALL CO_MIN(A [, RESULT_IMAGE, STAT, ERRMSG])} @item @emph{Arguments}: -@multitable @columnfractions .15 .70 +@multitable @columnfractions .20 .65 @item @var{A} @tab shall be an integer, real or complex variable, which has the same type and type parameters on all images of the team. @item @var{RESULT_IMAGE} @tab (optional) a scalar integer expression; if @@ -3868,13 +3963,17 @@ val = this_image () call co_sum (val, result_image=1) if (this_image() == 1) then - write(*,*) "The sum is ", val ! prints (n**2 + n)/2, with n = num_images() + write(*,*) "The sum is ", val ! prints (n**2 + n)/2, + ! with n = num_images() end if end program test @end smallexample @item @emph{See also}: -@ref{CO_MAX}, @ref{CO_MIN}, @ref{CO_REDUCE}, @ref{CO_BROADCAST} +@ref{CO_MAX}, @gol +@ref{CO_MIN}, @gol +@ref{CO_REDUCE}, @gol +@ref{CO_BROADCAST} @end table @@ -3918,7 +4017,8 @@ @end smallexample @item @emph{See also}: -@ref{GET_COMMAND}, @ref{GET_COMMAND_ARGUMENT} +@ref{GET_COMMAND}, @gol +@ref{GET_COMMAND_ARGUMENT} @end table @@ -3945,7 +4045,7 @@ @code{STR = COMPILER_OPTIONS()} @item @emph{Arguments}: -None. +None @item @emph{Return value}: The return value is a default-kind string with system-dependent length. @@ -3962,7 +4062,8 @@ @end smallexample @item @emph{See also}: -@ref{COMPILER_VERSION}, @ref{ISO_FORTRAN_ENV} +@ref{COMPILER_VERSION}, @gol +@ref{ISO_FORTRAN_ENV} @end table @@ -3988,7 +4089,7 @@ @code{STR = COMPILER_VERSION()} @item @emph{Arguments}: -None. +None @item @emph{Return value}: The return value is a default-kind string with system-dependent length. @@ -4004,7 +4105,8 @@ @end smallexample @item @emph{See also}: -@ref{COMPILER_OPTIONS}, @ref{ISO_FORTRAN_ENV} +@ref{COMPILER_OPTIONS}, @gol +@ref{ISO_FORTRAN_ENV} @end table @@ -4072,7 +4174,7 @@ then the result is @code{(x, -y)} @item @emph{Standard}: -Fortran 77 and later, has overloads that are GNU extensions +Fortran 77 and later, has an overload that is a GNU extension @item @emph{Class}: Elemental function @@ -4103,7 +4205,6 @@ @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @item Name @tab Argument @tab Return type @tab Standard -@item @code{CONJG(Z)} @tab @code{COMPLEX Z} @tab @code{COMPLEX} @tab GNU extension @item @code{DCONJG(Z)} @tab @code{COMPLEX(8) Z} @tab @code{COMPLEX(8)} @tab GNU extension @end multitable @end table @@ -4163,9 +4264,10 @@ @end multitable @item @emph{See also}: -Inverse function: @ref{ACOS} -Degrees function: @ref{COSD} - +Inverse function: @gol +@ref{ACOS} @gol +Degrees function: @gol +@ref{COSD} @end table @@ -4188,7 +4290,7 @@ standard constructs wherever possible. @item @emph{Standard}: -GNU Extension, enabled with @option{-fdec-math}. +GNU extension, enabled with @option{-fdec-math}. @item @emph{Class}: Elemental function @@ -4218,17 +4320,18 @@ @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @item Name @tab Argument @tab Return type @tab Standard -@item @code{COSD(X)} @tab @code{REAL(4) X} @tab @code{REAL(4)} @tab GNU Extension -@item @code{DCOSD(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab GNU Extension -@item @code{CCOSD(X)} @tab @code{COMPLEX(4) X} @tab @code{COMPLEX(4)} @tab GNU Extension +@item @code{COSD(X)} @tab @code{REAL(4) X} @tab @code{REAL(4)} @tab GNU extension +@item @code{DCOSD(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab GNU extension +@item @code{CCOSD(X)} @tab @code{COMPLEX(4) X} @tab @code{COMPLEX(4)} @tab GNU extension @item @code{ZCOSD(X)} @tab @code{COMPLEX(8) X} @tab @code{COMPLEX(8)} @tab GNU extension @item @code{CDCOSD(X)} @tab @code{COMPLEX(8) X} @tab @code{COMPLEX(8)} @tab GNU extension @end multitable @item @emph{See also}: -Inverse function: @ref{ACOSD} -Radians function: @ref{COS} - +Inverse function: @gol +@ref{ACOSD} @gol +Radians function: @gol +@ref{COS} @end table @@ -4281,8 +4384,8 @@ @end multitable @item @emph{See also}: -Inverse function: @ref{ACOSH} - +Inverse function: @gol +@ref{ACOSH} @end table @@ -4303,7 +4406,7 @@ standard constructs wherever possible. @item @emph{Standard}: -GNU Extension, enabled with @option{-fdec-math}. +GNU extension, enabled with @option{-fdec-math}. @item @emph{Class}: Elemental function @@ -4330,13 +4433,15 @@ @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @item Name @tab Argument @tab Return type @tab Standard -@item @code{COTAN(X)} @tab @code{REAL(4) X} @tab @code{REAL(4)} @tab GNU Extension -@item @code{DCOTAN(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab GNU Extension -@end multitable - -@item @emph{See also}: -Converse function: @ref{TAN} -Degrees function: @ref{COTAND} +@item @code{COTAN(X)} @tab @code{REAL(4) X} @tab @code{REAL(4)} @tab GNU extension +@item @code{DCOTAN(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab GNU extension +@end multitable + +@item @emph{See also}: +Converse function: @gol +@ref{TAN} @gol +Degrees function: @gol +@ref{COTAND} @end table @@ -4354,7 +4459,7 @@ @code{COSD(x)} divided by @code{SIND(x)}, or @code{1 / TAND(x)}. @item @emph{Standard}: -GNU Extension, enabled with @option{-fdec-math}. +GNU extension, enabled with @option{-fdec-math}. This function is for compatibility only and should be avoided in favor of standard constructs wherever possible. @@ -4384,14 +4489,15 @@ @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @item Name @tab Argument @tab Return type @tab Standard -@item @code{COTAND(X)} @tab @code{REAL(4) X} @tab @code{REAL(4)} @tab GNU Extension -@item @code{DCOTAND(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab GNU Extension -@end multitable - -@item @emph{See also}: -Converse function: @ref{TAND} -Radians function: @ref{COTAN} - +@item @code{COTAND(X)} @tab @code{REAL(4) X} @tab @code{REAL(4)} @tab GNU extension +@item @code{DCOTAND(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab GNU extension +@end multitable + +@item @emph{See also}: +Converse function: @gol +@ref{TAND} @gol +Radians function: @gol +@ref{COTAN} @end table @@ -4413,7 +4519,7 @@ @code{.FALSE.}, then the result is @code{0}. @item @emph{Standard}: -Fortran 95 and later, with @var{KIND} argument Fortran 2003 and later +Fortran 90 and later, with @var{KIND} argument Fortran 2003 and later @item @emph{Class}: Transformational function @@ -4514,7 +4620,8 @@ @end smallexample @item @emph{See also}: -@ref{SYSTEM_CLOCK}, @ref{DATE_AND_TIME} +@ref{SYSTEM_CLOCK}, @gol +@ref{DATE_AND_TIME} @end table @@ -4538,7 +4645,7 @@ shifted out one end of each rank one section are shifted back in the other end. @item @emph{Standard}: -Fortran 95 and later +Fortran 90 and later @item @emph{Class}: Transformational function @@ -4629,7 +4736,11 @@ @end smallexample @item @emph{See Also}: -@ref{DATE_AND_TIME}, @ref{GMTIME}, @ref{LTIME}, @ref{TIME}, @ref{TIME8} +@ref{DATE_AND_TIME}, @gol +@ref{GMTIME}, @gol +@ref{LTIME}, @gol +@ref{TIME}, @gol +@ref{TIME8} @end table @@ -4665,7 +4776,7 @@ @end multitable @item @emph{Standard}: -Fortran 95 and later +Fortran 90 and later @item @emph{Class}: Subroutine @@ -4705,7 +4816,8 @@ @end smallexample @item @emph{See also}: -@ref{CPU_TIME}, @ref{SYSTEM_CLOCK} +@ref{CPU_TIME}, @gol +@ref{SYSTEM_CLOCK} @end table @@ -4814,7 +4926,7 @@ floating point representation, a default real number would likely return 24. @item @emph{Standard}: -Fortran 95 and later +Fortran 90 and later @item @emph{Class}: Inquiry function @@ -4869,11 +4981,13 @@ @item @emph{Arguments}: @multitable @columnfractions .15 .70 @item @var{X} @tab The type shall be @code{INTEGER} or @code{REAL} -@item @var{Y} @tab The type shall be the same type and kind as @var{X}. -@end multitable - -@item @emph{Return value}: -The return value is of type @code{INTEGER} or @code{REAL}. +@item @var{Y} @tab The type shall be the same type and kind as @var{X}. (As +a GNU extension, arguments of different kinds are permitted.) +@end multitable + +@item @emph{Return value}: +The return value is of type @code{INTEGER} or @code{REAL}. (As a GNU +extension, kind is the largest kind of the actual arguments.) @item @emph{Example}: @smallexample @@ -4916,7 +5030,7 @@ the result is @code{ANY(VECTOR_A .AND. VECTOR_B)}. @item @emph{Standard}: -Fortran 95 and later +Fortran 90 and later @item @emph{Class}: Transformational function @@ -5246,7 +5360,7 @@ @end multitable @item @emph{Standard}: -Fortran 95 and later +Fortran 90 and later @item @emph{Class}: Transformational function @@ -5295,7 +5409,7 @@ as @var{X} such that @math{1 + E > 1}. @item @emph{Standard}: -Fortran 95 and later +Fortran 90 and later @item @emph{Class}: Inquiry function @@ -5589,12 +5703,12 @@ @code{EXECUTE_COMMAND_LINE} runs a shell command, synchronously or asynchronously. -The @code{COMMAND} argument is passed to the shell and executed, using -the C library's @code{system} call. (The shell is @code{sh} on Unix -systems, and @code{cmd.exe} on Windows.) If @code{WAIT} is present -and has the value false, the execution of the command is asynchronous -if the system supports it; otherwise, the command is executed -synchronously. +The @code{COMMAND} argument is passed to the shell and executed (The +shell is @code{sh} on Unix systems, and @code{cmd.exe} on Windows.). +If @code{WAIT} is present and has the value false, the execution of +the command is asynchronous if the system supports it; otherwise, the +command is executed synchronously using the C library's @code{system} +call. The three last arguments allow the user to get status information. After synchronous execution, @code{EXITSTAT} contains the integer exit code of @@ -5606,6 +5720,10 @@ the responsibility of the user to ensure that @code{system} is not called concurrently. +For asynchronous execution on supported targets, the POSIX +@code{posix_spawn} or @code{fork} functions are used. Also, a signal +handler for the @code{SIGCHLD} signal is installed. + @item @emph{Standard}: Fortran 2008 and later @@ -5697,7 +5815,8 @@ @end smallexample @item @emph{See also}: -@ref{ABORT}, @ref{KILL} +@ref{ABORT}, @gol +@ref{KILL} @end table @@ -5767,7 +5886,7 @@ is zero the value returned is zero. @item @emph{Standard}: -Fortran 95 and later +Fortran 90 and later @item @emph{Class}: Elemental function @@ -5889,7 +6008,8 @@ @end smallexample @item @emph{See also}: -@ref{DATE_AND_TIME}, @ref{CTIME} +@ref{DATE_AND_TIME}, @gol +@ref{CTIME} @end table @@ -5953,7 +6073,9 @@ @end smallexample @item @emph{See also}: -@ref{FGETC}, @ref{FPUT}, @ref{FPUTC} +@ref{FGETC}, @gol +@ref{FPUT}, @gol +@ref{FPUTC} @end table @@ -6018,10 +6140,73 @@ @end smallexample @item @emph{See also}: -@ref{FGET}, @ref{FPUT}, @ref{FPUTC} -@end table - - +@ref{FGET}, @gol +@ref{FPUT}, @gol +@ref{FPUTC} +@end table + +@node FINDLOC +@section @code{FINDLOC} --- Search an array for a value +@fnindex FINDLOC +@cindex findloc + +@table @asis +@item @emph{Description}: +Determines the location of the element in the array with the value +given in the @var{VALUE} argument, or, if the @var{DIM} argument is +supplied, determines the locations of the maximum element along each +row of the array in the @var{DIM} direction. If @var{MASK} is +present, only the elements for which @var{MASK} is @code{.TRUE.} are +considered. If more than one element in the array has the value +@var{VALUE}, the location returned is that of the first such element +in array element order if the @var{BACK} is not present or if it is +@code{.FALSE.}. If @var{BACK} is true, the location returned is that +of the last such element. If the array has zero size, or all of the +elements of @var{MASK} are @code{.FALSE.}, then the result is an array +of zeroes. Similarly, if @var{DIM} is supplied and all of the +elements of @var{MASK} along a given row are zero, the result value +for that row is zero. + +@item @emph{Standard}: +Fortran 2008 and later. + +@item @emph{Class}: +Transformational function + +@item @emph{Syntax}: +@multitable @columnfractions .80 +@item @code{RESULT = FINDLOC(ARRAY, VALUE, DIM [, MASK] [,KIND] [,BACK])} +@item @code{RESULT = FINDLOC(ARRAY, VALUE, [, MASK] [,KIND] [,BACK])} +@end multitable + +@item @emph{Arguments}: +@multitable @columnfractions .15 .70 +@item @var{ARRAY} @tab Shall be an array of intrinsic type. +@item @var{VALUE} @tab A scalar of intrinsic type which is in type +conformance with @var{ARRAY}. +@item @var{DIM} @tab (Optional) Shall be a scalar of type +@code{INTEGER}, with a value between one and the rank of @var{ARRAY}, +inclusive. It may not be an optional dummy argument. +@item @var{KIND} @tab (Optional) An @code{INTEGER} initialization +expression indicating the kind parameter of the result. +@item @var{BACK} @tab (Optional) A scalar of type @code{LOGICAL}. +@end multitable + +@item @emph{Return value}: +If @var{DIM} is absent, the result is a rank-one array with a length +equal to the rank of @var{ARRAY}. If @var{DIM} is present, the result +is an array with a rank one less than the rank of @var{ARRAY}, and a +size corresponding to the size of @var{ARRAY} with the @var{DIM} +dimension removed. If @var{DIM} is present and @var{ARRAY} has a rank +of one, the result is a scalar. If the optional argument @var{KIND} +is present, the result is an integer of kind @var{KIND}, otherwise it +is of default kind. + +@item @emph{See also}: +@ref{MAXLOC}, @gol +@ref{MINLOC} + +@end table @node FLOOR @section @code{FLOOR} --- Integer floor function @@ -6064,8 +6249,8 @@ @end smallexample @item @emph{See also}: -@ref{CEILING}, @ref{NINT} - +@ref{CEILING}, @gol +@ref{NINT} @end table @@ -6235,7 +6420,9 @@ @end smallexample @item @emph{See also}: -@ref{FPUTC}, @ref{FGET}, @ref{FGETC} +@ref{FPUTC}, @gol +@ref{FGET}, @gol +@ref{FGETC} @end table @@ -6298,7 +6485,9 @@ @end smallexample @item @emph{See also}: -@ref{FPUT}, @ref{FGET}, @ref{FGETC} +@ref{FPUT}, @gol +@ref{FGET}, @gol +@ref{FGETC} @end table @@ -6315,7 +6504,7 @@ representation of @code{X}. @item @emph{Standard}: -Fortran 95 and later +Fortran 90 and later @item @emph{Class}: Elemental function @@ -6506,7 +6695,10 @@ See @ref{STAT} for an example. @item @emph{See also}: -To stat a link: @ref{LSTAT}, to stat a file: @ref{STAT} +To stat a link: @gol +@ref{LSTAT} @gol +To stat a file: @gol +@ref{STAT} @end table @@ -6609,13 +6801,12 @@ @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @item Name @tab Argument @tab Return type @tab Standard -@item @code{GAMMA(X)} @tab @code{REAL(4) X} @tab @code{REAL(4)} @tab GNU Extension -@item @code{DGAMMA(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab GNU Extension -@end multitable - -@item @emph{See also}: -Logarithm of the Gamma function: @ref{LOG_GAMMA} - +@item @code{DGAMMA(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab GNU extension +@end multitable + +@item @emph{See also}: +Logarithm of the Gamma function: @gol +@ref{LOG_GAMMA} @end table @@ -6654,7 +6845,8 @@ @end smallexample @item @emph{See also}: -@ref{IERRNO}, @ref{PERROR} +@ref{IERRNO}, @gol +@ref{PERROR} @end table @@ -6695,7 +6887,7 @@ @item @emph{Return value}: After @code{GETARG} returns, the @var{VALUE} argument holds the -@var{POS}th command line argument. If @var{VALUE} can not hold the +@var{POS}th command line argument. If @var{VALUE} cannot hold the argument, it is truncated to fit the length of @var{VALUE}. If there are less than @var{POS} arguments specified at the command line, @var{VALUE} will be filled with blanks. If @math{@var{POS} = 0}, @var{VALUE} is set @@ -6715,10 +6907,12 @@ @end smallexample @item @emph{See also}: -GNU Fortran 77 compatibility function: @ref{IARGC} - -Fortran 2003 functions and subroutines: @ref{GET_COMMAND}, -@ref{GET_COMMAND_ARGUMENT}, @ref{COMMAND_ARGUMENT_COUNT} +GNU Fortran 77 compatibility function: @gol +@ref{IARGC} @gol +Fortran 2003 functions and subroutines: @gol +@ref{GET_COMMAND}, @gol +@ref{GET_COMMAND_ARGUMENT}, @gol +@ref{COMMAND_ARGUMENT_COUNT} @end table @@ -6769,7 +6963,8 @@ @end smallexample @item @emph{See also}: -@ref{GET_COMMAND_ARGUMENT}, @ref{COMMAND_ARGUMENT_COUNT} +@ref{GET_COMMAND_ARGUMENT}, @gol +@ref{COMMAND_ARGUMENT_COUNT} @end table @@ -6808,7 +7003,7 @@ @item @emph{Return value}: After @code{GET_COMMAND_ARGUMENT} returns, the @var{VALUE} argument holds the -@var{NUMBER}-th command line argument. If @var{VALUE} can not hold the argument, it is +@var{NUMBER}-th command line argument. If @var{VALUE} cannot hold the argument, it is truncated to fit the length of @var{VALUE}. If there are less than @var{NUMBER} arguments specified at the command line, @var{VALUE} will be filled with blanks. If @math{@var{NUMBER} = 0}, @var{VALUE} is set to the name of the program (on @@ -6836,7 +7031,8 @@ @end smallexample @item @emph{See also}: -@ref{GET_COMMAND}, @ref{COMMAND_ARGUMENT_COUNT} +@ref{GET_COMMAND}, @gol +@ref{COMMAND_ARGUMENT_COUNT} @end table @@ -7029,7 +7225,8 @@ See @code{GETPID} for an example. @item @emph{See also}: -@ref{GETPID}, @ref{GETUID} +@ref{GETPID}, @gol +@ref{GETUID} @end table @@ -7113,7 +7310,8 @@ @end smallexample @item @emph{See also}: -@ref{GETGID}, @ref{GETUID} +@ref{GETGID}, @gol +@ref{GETUID} @end table @@ -7146,7 +7344,8 @@ See @code{GETPID} for an example. @item @emph{See also}: -@ref{GETPID}, @ref{GETLOG} +@ref{GETPID}, @gol +@ref{GETLOG} @end table @@ -7202,8 +7401,11 @@ @end enumerate @item @emph{See also}: -@ref{DATE_AND_TIME}, @ref{CTIME}, @ref{LTIME}, @ref{TIME}, @ref{TIME8} - +@ref{DATE_AND_TIME}, @gol +@ref{CTIME}, @gol +@ref{LTIME}, @gol +@ref{TIME}, @gol +@ref{TIME8} @end table @@ -7259,7 +7461,7 @@ the model of the type of @code{X}. @item @emph{Standard}: -Fortran 95 and later +Fortran 90 and later @item @emph{Class}: Inquiry function @@ -7371,8 +7573,9 @@ and formatted string representations. @item @emph{See also}: -@ref{ACHAR}, @ref{CHAR}, @ref{ICHAR} - +@ref{ACHAR}, @gol +@ref{CHAR}, @gol +@ref{ICHAR} @end table @@ -7432,7 +7635,9 @@ @end smallexample @item @emph{See also}: -@ref{IANY}, @ref{IPARITY}, @ref{IAND} +@ref{IANY}, @gol +@ref{IPARITY}, @gol +@ref{IAND} @end table @@ -7452,7 +7657,7 @@ Bitwise logical @code{AND}. @item @emph{Standard}: -Fortran 95 and later, has overloads that are GNU extensions +Fortran 90 and later, with boz-literal-constant Fortran 2008 and later, has overloads that are GNU extensions @item @emph{Class}: Elemental function @@ -7462,16 +7667,17 @@ @item @emph{Arguments}: @multitable @columnfractions .15 .70 -@item @var{I} @tab The type shall be @code{INTEGER}. -@item @var{J} @tab The type shall be @code{INTEGER}, of the same -kind as @var{I}. (As a GNU extension, different kinds are also -permitted.) -@end multitable - -@item @emph{Return value}: -The return type is @code{INTEGER}, of the same kind as the -arguments. (If the argument kinds differ, it is of the same kind as -the larger argument.) +@item @var{I} @tab The type shall be @code{INTEGER} or a boz-literal-constant. +@item @var{J} @tab The type shall be @code{INTEGER} with the same +kind type parameter as @var{I} or a boz-literal-constant. +@var{I} and @var{J} shall not both be boz-literal-constants. +@end multitable + +@item @emph{Return value}: +The return type is @code{INTEGER} with the kind type parameter of the +arguments. +A boz-literal-constant is converted to an @code{INTEGER} with the kind +type parameter of the other argument as-if a call to @ref{INT} occurred. @item @emph{Example}: @smallexample @@ -7485,7 +7691,7 @@ @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @item Name @tab Argument @tab Return type @tab Standard -@item @code{IAND(A)} @tab @code{INTEGER A} @tab @code{INTEGER} @tab Fortran 95 and later +@item @code{IAND(A)} @tab @code{INTEGER A} @tab @code{INTEGER} @tab Fortran 90 and later @item @code{BIAND(A)} @tab @code{INTEGER(1) A} @tab @code{INTEGER(1)} @tab GNU extension @item @code{IIAND(A)} @tab @code{INTEGER(2) A} @tab @code{INTEGER(2)} @tab GNU extension @item @code{JIAND(A)} @tab @code{INTEGER(4) A} @tab @code{INTEGER(4)} @tab GNU extension @@ -7493,8 +7699,12 @@ @end multitable @item @emph{See also}: -@ref{IOR}, @ref{IEOR}, @ref{IBITS}, @ref{IBSET}, @ref{IBCLR}, @ref{NOT} - +@ref{IOR}, @gol +@ref{IEOR}, @gol +@ref{IBITS}, @gol +@ref{IBSET}, @gol +@ref{IBCLR}, @gol +@ref{NOT} @end table @@ -7554,7 +7764,9 @@ @end smallexample @item @emph{See also}: -@ref{IPARITY}, @ref{IALL}, @ref{IOR} +@ref{IPARITY}, @gol +@ref{IALL}, @gol +@ref{IOR} @end table @@ -7586,7 +7798,7 @@ @code{RESULT = IARGC()} @item @emph{Arguments}: -None. +None @item @emph{Return value}: The number of command line arguments, type @code{INTEGER(4)}. @@ -7595,10 +7807,12 @@ See @ref{GETARG} @item @emph{See also}: -GNU Fortran 77 compatibility subroutine: @ref{GETARG} - -Fortran 2003 functions and subroutines: @ref{GET_COMMAND}, -@ref{GET_COMMAND_ARGUMENT}, @ref{COMMAND_ARGUMENT_COUNT} +GNU Fortran 77 compatibility subroutine: @gol +@ref{GETARG} @gol +Fortran 2003 functions and subroutines: @gol +@ref{GET_COMMAND}, @gol +@ref{GET_COMMAND_ARGUMENT}, @gol +@ref{COMMAND_ARGUMENT_COUNT} @end table @@ -7619,7 +7833,7 @@ @var{POS} set to zero. @item @emph{Standard}: -Fortran 95 and later, has overloads that are GNU extensions +Fortran 90 and later, has overloads that are GNU extensions @item @emph{Class}: Elemental function @@ -7640,7 +7854,7 @@ @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @item Name @tab Argument @tab Return type @tab Standard -@item @code{IBCLR(A)} @tab @code{INTEGER A} @tab @code{INTEGER} @tab Fortran 95 and later +@item @code{IBCLR(A)} @tab @code{INTEGER A} @tab @code{INTEGER} @tab Fortran 90 and later @item @code{BBCLR(A)} @tab @code{INTEGER(1) A} @tab @code{INTEGER(1)} @tab GNU extension @item @code{IIBCLR(A)} @tab @code{INTEGER(2) A} @tab @code{INTEGER(2)} @tab GNU extension @item @code{JIBCLR(A)} @tab @code{INTEGER(4) A} @tab @code{INTEGER(4)} @tab GNU extension @@ -7648,8 +7862,12 @@ @end multitable @item @emph{See also}: -@ref{IBITS}, @ref{IBSET}, @ref{IAND}, @ref{IOR}, @ref{IEOR}, @ref{MVBITS} - +@ref{IBITS}, @gol +@ref{IBSET}, @gol +@ref{IAND}, @gol +@ref{IOR}, @gol +@ref{IEOR}, @gol +@ref{MVBITS} @end table @@ -7673,7 +7891,7 @@ value @code{BIT_SIZE(I)}. @item @emph{Standard}: -Fortran 95 and later, has overloads that are GNU extensions +Fortran 90 and later, has overloads that are GNU extensions @item @emph{Class}: Elemental function @@ -7695,7 +7913,7 @@ @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @item Name @tab Argument @tab Return type @tab Standard -@item @code{IBITS(A)} @tab @code{INTEGER A} @tab @code{INTEGER} @tab Fortran 95 and later +@item @code{IBITS(A)} @tab @code{INTEGER A} @tab @code{INTEGER} @tab Fortran 90 and later @item @code{BBITS(A)} @tab @code{INTEGER(1) A} @tab @code{INTEGER(1)} @tab GNU extension @item @code{IIBITS(A)} @tab @code{INTEGER(2) A} @tab @code{INTEGER(2)} @tab GNU extension @item @code{JIBITS(A)} @tab @code{INTEGER(4) A} @tab @code{INTEGER(4)} @tab GNU extension @@ -7703,7 +7921,12 @@ @end multitable @item @emph{See also}: -@ref{BIT_SIZE}, @ref{IBCLR}, @ref{IBSET}, @ref{IAND}, @ref{IOR}, @ref{IEOR} +@ref{BIT_SIZE}, @gol +@ref{IBCLR}, @gol +@ref{IBSET}, @gol +@ref{IAND}, @gol +@ref{IOR}, @gol +@ref{IEOR} @end table @@ -7723,7 +7946,7 @@ @var{POS} set to one. @item @emph{Standard}: -Fortran 95 and later, has overloads that are GNU extensions +Fortran 90 and later, has overloads that are GNU extensions @item @emph{Class}: Elemental function @@ -7744,7 +7967,7 @@ @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @item Name @tab Argument @tab Return type @tab Standard -@item @code{IBSET(A)} @tab @code{INTEGER A} @tab @code{INTEGER} @tab Fortran 95 and later +@item @code{IBSET(A)} @tab @code{INTEGER A} @tab @code{INTEGER} @tab Fortran 90 and later @item @code{BBSET(A)} @tab @code{INTEGER(1) A} @tab @code{INTEGER(1)} @tab GNU extension @item @code{IIBSET(A)} @tab @code{INTEGER(2) A} @tab @code{INTEGER(2)} @tab GNU extension @item @code{JIBSET(A)} @tab @code{INTEGER(4) A} @tab @code{INTEGER(4)} @tab GNU extension @@ -7752,8 +7975,12 @@ @end multitable @item @emph{See also}: -@ref{IBCLR}, @ref{IBITS}, @ref{IAND}, @ref{IOR}, @ref{IEOR}, @ref{MVBITS} - +@ref{IBCLR}, @gol +@ref{IBITS}, @gol +@ref{IAND}, @gol +@ref{IOR}, @gol +@ref{IEOR}, @gol +@ref{MVBITS} @end table @@ -7771,7 +7998,7 @@ the same across different GNU Fortran implementations. @item @emph{Standard}: -Fortran 95 and later, with @var{KIND} argument Fortran 2003 and later +Fortran 77 and later, with @var{KIND} argument Fortran 2003 and later @item @emph{Class}: Elemental function @@ -7828,8 +8055,9 @@ @end smallexample @item @emph{See also}: -@ref{ACHAR}, @ref{CHAR}, @ref{IACHAR} - +@ref{ACHAR}, @gol +@ref{CHAR}, @gol +@ref{IACHAR} @end table @@ -7902,7 +8130,7 @@ @var{J}. @item @emph{Standard}: -Fortran 95 and later, has overloads that are GNU extensions +Fortran 90 and later, with boz-literal-constant Fortran 2008 and later, has overloads that are GNU extensions @item @emph{Class}: Elemental function @@ -7912,21 +8140,22 @@ @item @emph{Arguments}: @multitable @columnfractions .15 .70 -@item @var{I} @tab The type shall be @code{INTEGER}. -@item @var{J} @tab The type shall be @code{INTEGER}, of the same -kind as @var{I}. (As a GNU extension, different kinds are also -permitted.) -@end multitable - -@item @emph{Return value}: -The return type is @code{INTEGER}, of the same kind as the -arguments. (If the argument kinds differ, it is of the same kind as -the larger argument.) +@item @var{I} @tab The type shall be @code{INTEGER} or a boz-literal-constant. +@item @var{J} @tab The type shall be @code{INTEGER} with the same +kind type parameter as @var{I} or a boz-literal-constant. +@var{I} and @var{J} shall not both be boz-literal-constants. +@end multitable + +@item @emph{Return value}: +The return type is @code{INTEGER} with the kind type parameter of the +arguments. +A boz-literal-constant is converted to an @code{INTEGER} with the kind +type parameter of the other argument as-if a call to @ref{INT} occurred. @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @item Name @tab Argument @tab Return type @tab Standard -@item @code{IEOR(A)} @tab @code{INTEGER A} @tab @code{INTEGER} @tab Fortran 95 and later +@item @code{IEOR(A)} @tab @code{INTEGER A} @tab @code{INTEGER} @tab Fortran 90 and later @item @code{BIEOR(A)} @tab @code{INTEGER(1) A} @tab @code{INTEGER(1)} @tab GNU extension @item @code{IIEOR(A)} @tab @code{INTEGER(2) A} @tab @code{INTEGER(2)} @tab GNU extension @item @code{JIEOR(A)} @tab @code{INTEGER(4) A} @tab @code{INTEGER(4)} @tab GNU extension @@ -7934,7 +8163,12 @@ @end multitable @item @emph{See also}: -@ref{IOR}, @ref{IAND}, @ref{IBITS}, @ref{IBSET}, @ref{IBCLR}, @ref{NOT} +@ref{IOR}, @gol +@ref{IAND}, @gol +@ref{IBITS}, @gol +@ref{IBSET}, @gol +@ref{IBCLR}, @gol +@ref{NOT} @end table @@ -7959,7 +8193,7 @@ @code{RESULT = IERRNO()} @item @emph{Arguments}: -None. +None @item @emph{Return value}: The return value is of type @code{INTEGER} and of the default integer @@ -7990,7 +8224,7 @@ @item @emph{Syntax}: @code{RESULT = IMAGE_INDEX(COARRAY, SUB)} -@item @emph{Arguments}: None. +@item @emph{Arguments}: @multitable @columnfractions .15 .70 @item @var{COARRAY} @tab Coarray of any type. @item @var{SUB} @tab default integer rank-1 array of a size equal to @@ -8010,7 +8244,8 @@ @end smallexample @item @emph{See also}: -@ref{THIS_IMAGE}, @ref{NUM_IMAGES} +@ref{THIS_IMAGE}, @gol +@ref{NUM_IMAGES} @end table @@ -8061,7 +8296,8 @@ @end multitable @item @emph{See also}: -@ref{SCAN}, @ref{VERIFY} +@ref{SCAN}, @gol +@ref{VERIFY} @end table @@ -8078,7 +8314,7 @@ Convert to integer type @item @emph{Standard}: -Fortran 77 and later +Fortran 77 and later, with boz-literal-constant Fortran 2008 and later. @item @emph{Class}: Elemental function @@ -8089,7 +8325,7 @@ @item @emph{Arguments}: @multitable @columnfractions .15 .70 @item @var{A} @tab Shall be of type @code{INTEGER}, -@code{REAL}, or @code{COMPLEX}. +@code{REAL}, or @code{COMPLEX} or or a boz-literal-constant. @item @var{KIND} @tab (Optional) An @code{INTEGER} initialization expression indicating the kind parameter of the result. @end multitable @@ -8164,7 +8400,9 @@ The return value is a @code{INTEGER(2)} variable. @item @emph{See also}: -@ref{INT}, @ref{INT8}, @ref{LONG} +@ref{INT}, @gol +@ref{INT8}, @gol +@ref{LONG} @end table @@ -8199,7 +8437,9 @@ The return value is a @code{INTEGER(8)} variable. @item @emph{See also}: -@ref{INT}, @ref{INT2}, @ref{LONG} +@ref{INT}, @gol +@ref{INT2}, @gol +@ref{LONG} @end table @@ -8220,7 +8460,7 @@ @var{J}. @item @emph{Standard}: -Fortran 95 and later, has overloads that are GNU extensions +Fortran 90 and later, with boz-literal-constant Fortran 2008 and later, has overloads that are GNU extensions @item @emph{Class}: Elemental function @@ -8230,21 +8470,22 @@ @item @emph{Arguments}: @multitable @columnfractions .15 .70 -@item @var{I} @tab The type shall be @code{INTEGER}. -@item @var{J} @tab The type shall be @code{INTEGER}, of the same -kind as @var{I}. (As a GNU extension, different kinds are also -permitted.) -@end multitable - -@item @emph{Return value}: -The return type is @code{INTEGER}, of the same kind as the -arguments. (If the argument kinds differ, it is of the same kind as -the larger argument.) +@item @var{I} @tab The type shall be @code{INTEGER} or a boz-literal-constant. +@item @var{J} @tab The type shall be @code{INTEGER} with the same +kind type parameter as @var{I} or a boz-literal-constant. +@var{I} and @var{J} shall not both be boz-literal-constants. +@end multitable + +@item @emph{Return value}: +The return type is @code{INTEGER} with the kind type parameter of the +arguments. +A boz-literal-constant is converted to an @code{INTEGER} with the kind +type parameter of the other argument as-if a call to @ref{INT} occurred. @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @item Name @tab Argument @tab Return type @tab Standard -@item @code{IOR(A)} @tab @code{INTEGER A} @tab @code{INTEGER} @tab Fortran 95 and later +@item @code{IOR(A)} @tab @code{INTEGER A} @tab @code{INTEGER} @tab Fortran 90 and later @item @code{BIOR(A)} @tab @code{INTEGER(1) A} @tab @code{INTEGER(1)} @tab GNU extension @item @code{IIOR(A)} @tab @code{INTEGER(2) A} @tab @code{INTEGER(2)} @tab GNU extension @item @code{JIOR(A)} @tab @code{INTEGER(4) A} @tab @code{INTEGER(4)} @tab GNU extension @@ -8252,7 +8493,12 @@ @end multitable @item @emph{See also}: -@ref{IEOR}, @ref{IAND}, @ref{IBITS}, @ref{IBSET}, @ref{IBCLR}, @ref{NOT} +@ref{IEOR}, @gol +@ref{IAND}, @gol +@ref{IBITS}, @gol +@ref{IBSET}, @gol +@ref{IBCLR}, @gol +@ref{NOT} @end table @@ -8304,8 +8550,8 @@ PROGRAM test_iparity INTEGER(1) :: a(2) - a(1) = b'00100100' - a(2) = b'01101010' + a(1) = int(b'00100100', 1) + a(2) = int(b'01101010', 1) ! prints 01001110 PRINT '(b8.8)', IPARITY(a) @@ -8313,7 +8559,10 @@ @end smallexample @item @emph{See also}: -@ref{IANY}, @ref{IALL}, @ref{IEOR}, @ref{PARITY} +@ref{IANY}, @gol +@ref{IALL}, @gol +@ref{IEOR}, @gol +@ref{PARITY} @end table @@ -8369,6 +8618,55 @@ +@node IS_CONTIGUOUS +@section @code{IS_CONTIGUOUS} --- Test whether an array is contiguous +@fnindex IS_IOSTAT_EOR +@cindex array, contiguity + +@table @asis +@item @emph{Description}: +@code{IS_CONTIGUOUS} tests whether an array is contiguous. + +@item @emph{Standard}: +Fortran 2008 and later + +@item @emph{Class}: +Inquiry function + +@item @emph{Syntax}: +@code{RESULT = IS_CONTIGUOUS(ARRAY)} + +@item @emph{Arguments}: +@multitable @columnfractions .15 .70 +@item @var{ARRAY} @tab Shall be an array of any type. +@end multitable + +@item @emph{Return value}: +Returns a @code{LOGICAL} of the default kind, which @code{.TRUE.} if +@var{ARRAY} is contiguous and false otherwise. + +@item @emph{Example}: +@smallexample +program test + integer :: a(10) + a = [1,2,3,4,5,6,7,8,9,10] + call sub (a) ! every element, is contiguous + call sub (a(::2)) ! every other element, is noncontiguous +contains + subroutine sub (x) + integer :: x(:) + if (is_contiguous (x)) then + write (*,*) 'X is contiguous' + else + write (*,*) 'X is not contiguous' + end if + end subroutine sub +end program test +@end smallexample +@end table + + + @node IS_IOSTAT_END @section @code{IS_IOSTAT_END} --- Test for end-of-file value @fnindex IS_IOSTAT_END @@ -8458,7 +8756,6 @@ @end table - @node ISATTY @section @code{ISATTY} --- Whether a unit is a terminal device. @fnindex ISATTY @@ -8521,7 +8818,7 @@ lost; zeros are shifted in from the opposite end. @item @emph{Standard}: -Fortran 95 and later, has overloads that are GNU extensions +Fortran 90 and later, has overloads that are GNU extensions @item @emph{Class}: Elemental function @@ -8542,7 +8839,7 @@ @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @item Name @tab Argument @tab Return type @tab Standard -@item @code{ISHFT(A)} @tab @code{INTEGER A} @tab @code{INTEGER} @tab Fortran 95 and later +@item @code{ISHFT(A)} @tab @code{INTEGER A} @tab @code{INTEGER} @tab Fortran 90 and later @item @code{BSHFT(A)} @tab @code{INTEGER(1) A} @tab @code{INTEGER(1)} @tab GNU extension @item @code{IISHFT(A)} @tab @code{INTEGER(2) A} @tab @code{INTEGER(2)} @tab GNU extension @item @code{JISHFT(A)} @tab @code{INTEGER(4) A} @tab @code{INTEGER(4)} @tab GNU extension @@ -8576,7 +8873,7 @@ equivalent to @code{BIT_SIZE(I)}. @item @emph{Standard}: -Fortran 95 and later, has overloads that are GNU extensions +Fortran 90 and later, has overloads that are GNU extensions @item @emph{Class}: Elemental function @@ -8600,7 +8897,7 @@ @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @item Name @tab Argument @tab Return type @tab Standard -@item @code{ISHFTC(A)} @tab @code{INTEGER A} @tab @code{INTEGER} @tab Fortran 95 and later +@item @code{ISHFTC(A)} @tab @code{INTEGER A} @tab @code{INTEGER} @tab Fortran 90 and later @item @code{BSHFTC(A)} @tab @code{INTEGER(1) A} @tab @code{INTEGER(1)} @tab GNU extension @item @code{IISHFTC(A)} @tab @code{INTEGER(2) A} @tab @code{INTEGER(2)} @tab GNU extension @item @code{JISHFTC(A)} @tab @code{INTEGER(4) A} @tab @code{INTEGER(4)} @tab GNU extension @@ -8715,12 +9012,16 @@ @table @asis @item @emph{Description}: -@item @emph{Standard}: Sends the signal specified by @var{SIG} to the process @var{PID}. See @code{kill(2)}. This intrinsic is provided in both subroutine and function forms; however, only one form can be used in any given program unit. +@item @emph{Standard}: +GNU extension + +@item @emph{Standard}: +GNU extension @item @emph{Class}: Subroutine, function @@ -8744,7 +9045,8 @@ @end multitable @item @emph{See also}: -@ref{ABORT}, @ref{EXIT} +@ref{ABORT}, @gol +@ref{EXIT} @end table @@ -8769,7 +9071,8 @@ @item @emph{Arguments}: @multitable @columnfractions .15 .70 @item @var{X} @tab Shall be of type @code{LOGICAL}, @code{INTEGER}, -@code{REAL}, @code{COMPLEX} or @code{CHARACTER}. +@code{REAL}, @code{COMPLEX} or @code{CHARACTER}. It may be scalar or +array valued. @end multitable @item @emph{Return value}: @@ -8801,7 +9104,7 @@ Returns the lower bounds of an array, or a single lower bound along the @var{DIM} dimension. @item @emph{Standard}: -Fortran 95 and later, with @var{KIND} argument Fortran 2003 and later +Fortran 90 and later, with @var{KIND} argument Fortran 2003 and later @item @emph{Class}: Inquiry function @@ -8828,7 +9131,8 @@ dimension, the lower bound is taken to be 1. @item @emph{See also}: -@ref{UBOUND}, @ref{LCOBOUND} +@ref{UBOUND}, @gol +@ref{LCOBOUND} @end table @@ -8867,7 +9171,8 @@ corresponding to the lower cobound of the array along that codimension. @item @emph{See also}: -@ref{UCOBOUND}, @ref{LBOUND} +@ref{UCOBOUND}, @gol +@ref{LBOUND} @end table @@ -8908,7 +9213,10 @@ @end smallexample @item @emph{See also}: -@ref{BIT_SIZE}, @ref{TRAILZ}, @ref{POPCNT}, @ref{POPPAR} +@ref{BIT_SIZE}, @gol +@ref{TRAILZ}, @gol +@ref{POPCNT}, @gol +@ref{POPPAR} @end table @@ -8955,7 +9263,9 @@ @item @emph{See also}: -@ref{LEN_TRIM}, @ref{ADJUSTL}, @ref{ADJUSTR} +@ref{LEN_TRIM}, @gol +@ref{ADJUSTL}, @gol +@ref{ADJUSTR} @end table @@ -8970,7 +9280,7 @@ Returns the length of a character string, ignoring any trailing blanks. @item @emph{Standard}: -Fortran 95 and later, with @var{KIND} argument Fortran 2003 and later +Fortran 90 and later, with @var{KIND} argument Fortran 2003 and later @item @emph{Class}: Elemental function @@ -8991,7 +9301,9 @@ @var{KIND} is absent, the return value is of default integer kind. @item @emph{See also}: -@ref{LEN}, @ref{ADJUSTL}, @ref{ADJUSTR} +@ref{LEN}, @gol +@ref{ADJUSTL}, @gol +@ref{ADJUSTR} @end table @@ -9043,7 +9355,9 @@ @end multitable @item @emph{See also}: -@ref{LGT}, @ref{LLE}, @ref{LLT} +@ref{LGT}, @gol +@ref{LLE}, @gol +@ref{LLT} @end table @@ -9095,7 +9409,9 @@ @end multitable @item @emph{See also}: -@ref{LGE}, @ref{LLE}, @ref{LLT} +@ref{LGE}, @gol +@ref{LLE}, @gol +@ref{LLT} @end table @@ -9138,7 +9454,8 @@ @end multitable @item @emph{See also}: -@ref{SYMLNK}, @ref{UNLINK} +@ref{SYMLNK}, @gol +@ref{UNLINK} @end table @@ -9190,7 +9507,9 @@ @end multitable @item @emph{See also}: -@ref{LGE}, @ref{LGT}, @ref{LLT} +@ref{LGE}, @gol +@ref{LGT}, @gol +@ref{LLT} @end table @@ -9242,7 +9561,9 @@ @end multitable @item @emph{See also}: -@ref{LGE}, @ref{LGT}, @ref{LLE} +@ref{LGE}, @gol +@ref{LGT}, @gol +@ref{LLE} @end table @@ -9277,7 +9598,8 @@ The return value is of @code{INTEGER(kind=4)} type. @item @emph{See also}: -@ref{INDEX intrinsic}, @ref{LEN_TRIM} +@ref{INDEX intrinsic}, @gol +@ref{LEN_TRIM} @end table @@ -9341,7 +9663,7 @@ logarithm to the base @math{e}. @item @emph{Standard}: -Fortran 77 and later +Fortran 77 and later, has GNU extensions @item @emph{Class}: Elemental function @@ -9374,11 +9696,11 @@ @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @item Name @tab Argument @tab Return type @tab Standard -@item @code{ALOG(X)} @tab @code{REAL(4) X} @tab @code{REAL(4)} @tab f95, gnu -@item @code{DLOG(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab f95, gnu -@item @code{CLOG(X)} @tab @code{COMPLEX(4) X} @tab @code{COMPLEX(4)} @tab f95, gnu -@item @code{ZLOG(X)} @tab @code{COMPLEX(8) X} @tab @code{COMPLEX(8)} @tab f95, gnu -@item @code{CDLOG(X)} @tab @code{COMPLEX(8) X} @tab @code{COMPLEX(8)} @tab f95, gnu +@item @code{ALOG(X)} @tab @code{REAL(4) X} @tab @code{REAL(4)} @tab Fortran 77 or later +@item @code{DLOG(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab Fortran 77 or later +@item @code{CLOG(X)} @tab @code{COMPLEX(4) X} @tab @code{COMPLEX(4)} @tab Fortran 77 or later +@item @code{ZLOG(X)} @tab @code{COMPLEX(8) X} @tab @code{COMPLEX(8)} @tab GNU extension +@item @code{CDLOG(X)} @tab @code{COMPLEX(8) X} @tab @code{COMPLEX(8)} @tab GNU extension @end multitable @end table @@ -9426,8 +9748,8 @@ @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @item Name @tab Argument @tab Return type @tab Standard -@item @code{ALOG10(X)} @tab @code{REAL(4) X} @tab @code{REAL(4)} @tab Fortran 95 and later -@item @code{DLOG10(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab Fortran 95 and later +@item @code{ALOG10(X)} @tab @code{REAL(4) X} @tab @code{REAL(4)} @tab Fortran 77 and later +@item @code{DLOG10(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab Fortran 77 and later @end multitable @end table @@ -9475,14 +9797,14 @@ @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @item Name @tab Argument @tab Return type @tab Standard -@item @code{LGAMMA(X)} @tab @code{REAL(4) X} @tab @code{REAL(4)} @tab GNU Extension -@item @code{ALGAMA(X)} @tab @code{REAL(4) X} @tab @code{REAL(4)} @tab GNU Extension -@item @code{DLGAMA(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab GNU Extension -@end multitable - -@item @emph{See also}: -Gamma function: @ref{GAMMA} - +@item @code{LGAMMA(X)} @tab @code{REAL(4) X} @tab @code{REAL(4)} @tab GNU extension +@item @code{ALGAMA(X)} @tab @code{REAL(4) X} @tab @code{REAL(4)} @tab GNU extension +@item @code{DLGAMA(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab GNU extension +@end multitable + +@item @emph{See also}: +Gamma function: @gol +@ref{GAMMA} @end table @@ -9497,7 +9819,7 @@ Converts one kind of @code{LOGICAL} variable to another. @item @emph{Standard}: -Fortran 95 and later +Fortran 90 and later @item @emph{Class}: Elemental function @@ -9518,7 +9840,9 @@ @var{KIND} is not given. @item @emph{See also}: -@ref{INT}, @ref{REAL}, @ref{CMPLX} +@ref{INT}, @gol +@ref{REAL}, @gol +@ref{CMPLX} @end table @@ -9554,7 +9878,9 @@ The return value is a @code{INTEGER(4)} variable. @item @emph{See also}: -@ref{INT}, @ref{INT2}, @ref{INT8} +@ref{INT}, @gol +@ref{INT2}, @gol +@ref{INT8} @end table @@ -9567,10 +9893,10 @@ @table @asis @item @emph{Description}: @code{LSHIFT} returns a value corresponding to @var{I} with all of the -bits shifted left by @var{SHIFT} places. If the absolute value of -@var{SHIFT} is greater than @code{BIT_SIZE(I)}, the value is undefined. -Bits shifted out from the left end are lost; zeros are shifted in from -the opposite end. +bits shifted left by @var{SHIFT} places. @var{SHIFT} shall be +nonnegative and less than or equal to @code{BIT_SIZE(I)}, otherwise +the result value is undefined. Bits shifted out from the left end are +lost; zeros are shifted in from the opposite end. This function has been superseded by the @code{ISHFT} intrinsic, which is standard in Fortran 95 and later, and the @code{SHIFTL} intrinsic, @@ -9596,9 +9922,12 @@ @var{I}. @item @emph{See also}: -@ref{ISHFT}, @ref{ISHFTC}, @ref{RSHIFT}, @ref{SHIFTA}, @ref{SHIFTL}, +@ref{ISHFT}, @gol +@ref{ISHFTC}, @gol +@ref{RSHIFT}, @gol +@ref{SHIFTA}, @gol +@ref{SHIFTL}, @gol @ref{SHIFTR} - @end table @@ -9644,7 +9973,10 @@ See @ref{STAT} for an example. @item @emph{See also}: -To stat an open file: @ref{FSTAT}, to stat a file: @ref{STAT} +To stat an open file: @gol +@ref{FSTAT} @gol +To stat a file: @gol +@ref{STAT} @end table @@ -9699,8 +10031,11 @@ @end enumerate @item @emph{See also}: -@ref{DATE_AND_TIME}, @ref{CTIME}, @ref{GMTIME}, @ref{TIME}, @ref{TIME8} - +@ref{DATE_AND_TIME}, @gol +@ref{CTIME}, @gol +@ref{GMTIME}, @gol +@ref{TIME}, @gol +@ref{TIME8} @end table @@ -9853,7 +10188,7 @@ Performs a matrix multiplication on numeric or logical arguments. @item @emph{Standard}: -Fortran 95 and later +Fortran 90 and later @item @emph{Class}: Transformational function @@ -9878,8 +10213,6 @@ The matrix product of @var{MATRIX_A} and @var{MATRIX_B}. The type and kind of the result follow the usual type and kind promotion rules, as for the @code{*} or @code{.AND.} operators. - -@item @emph{See also}: @end table @@ -9931,8 +10264,9 @@ @end multitable @item @emph{See also}: -@ref{MAXLOC} @ref{MAXVAL}, @ref{MIN} - +@ref{MAXLOC} @gol +@ref{MAXVAL}, @gol +@ref{MIN} @end table @@ -9948,7 +10282,7 @@ type of @code{X}. @item @emph{Standard}: -Fortran 95 and later +Fortran 90 and later @item @emph{Class}: Inquiry function @@ -9993,8 +10327,8 @@ which @var{MASK} is @code{.TRUE.} are considered. If more than one element in the array has the maximum value, the location returned is that of the first such element in array element order if the -@var{BACK} is not present, or if it false; otherwise, the location -returned is that of the first such element. If the array has zero +@var{BACK} is not present, or is false; if @var{BACK} is true, the location +returned is that of the last such element. If the array has zero size, or all of the elements of @var{MASK} are @code{.FALSE.}, then the result is an array of zeroes. Similarly, if @var{DIM} is supplied and all of the elements of @var{MASK} along a given row are zero, the @@ -10039,8 +10373,9 @@ is of default kind. @item @emph{See also}: -@ref{MAX}, @ref{MAXVAL} - +@ref{FINDLOC}, @gol +@ref{MAX}, @gol +@ref{MAXVAL} @end table @@ -10063,7 +10398,7 @@ type. @item @emph{Standard}: -Fortran 95 and later +Fortran 90 and later @item @emph{Class}: Transformational function @@ -10081,7 +10416,7 @@ @item @var{DIM} @tab (Optional) Shall be a scalar of type @code{INTEGER}, with a value between one and the rank of @var{ARRAY}, inclusive. It may not be an optional dummy argument. -@item @var{MASK} @tab Shall be an array of type @code{LOGICAL}, +@item @var{MASK} @tab (Opional) Shall be an array of type @code{LOGICAL}, and conformable with @var{ARRAY}. @end multitable @@ -10093,7 +10428,8 @@ cases, the result is of the same type and kind as @var{ARRAY}. @item @emph{See also}: -@ref{MAX}, @ref{MAXLOC} +@ref{MAX}, @gol +@ref{MAXLOC} @end table @@ -10130,8 +10466,11 @@ the system does not support @code{clock(3)}. @item @emph{See also}: -@ref{CTIME}, @ref{GMTIME}, @ref{LTIME}, @ref{MCLOCK}, @ref{TIME} - +@ref{CTIME}, @gol +@ref{GMTIME}, @gol +@ref{LTIME}, @gol +@ref{MCLOCK}, @gol +@ref{TIME} @end table @@ -10170,8 +10509,11 @@ the system does not support @code{clock(3)}. @item @emph{See also}: -@ref{CTIME}, @ref{GMTIME}, @ref{LTIME}, @ref{MCLOCK}, @ref{TIME8} - +@ref{CTIME}, @gol +@ref{GMTIME}, @gol +@ref{LTIME}, @gol +@ref{MCLOCK}, @gol +@ref{TIME8} @end table @@ -10189,7 +10531,7 @@ @var{FSOURCE} if it is @code{.FALSE.}. @item @emph{Standard}: -Fortran 95 and later +Fortran 90 and later @item @emph{Class}: Elemental function @@ -10235,11 +10577,12 @@ @item @emph{Arguments}: @multitable @columnfractions .15 .70 -@item @var{I} @tab Shall be of type @code{INTEGER}. -@item @var{J} @tab Shall be of type @code{INTEGER} and of the same -kind as @var{I}. -@item @var{MASK} @tab Shall be of type @code{INTEGER} and of the same -kind as @var{I}. +@item @var{I} @tab Shall be of type @code{INTEGER} or a boz-literal-constant. +@item @var{J} @tab Shall be of type @code{INTEGER} with the same +kind type parameter as @var{I} or a boz-literal-constant. +@var{I} and @var{J} shall not both be boz-literal-constants. +@item @var{MASK} @tab Shall be of type @code{INTEGER} or a boz-literal-constant +and of the same kind as @var{I}. @end multitable @item @emph{Return value}: @@ -10296,7 +10639,9 @@ @end multitable @item @emph{See also}: -@ref{MAX}, @ref{MINLOC}, @ref{MINVAL} +@ref{MAX}, @gol +@ref{MINLOC}, @gol +@ref{MINVAL} @end table @@ -10312,7 +10657,7 @@ type of @code{X}. @item @emph{Standard}: -Fortran 95 and later +Fortran 90 and later @item @emph{Class}: Inquiry function @@ -10349,15 +10694,15 @@ which @var{MASK} is @code{.TRUE.} are considered. If more than one element in the array has the minimum value, the location returned is that of the first such element in array element order if the -@var{BACK} is not present, or if it false; otherwise, the location -returned is that of the first such element. If the array has +@var{BACK} is not present, or is false; if @var{BACK} is true, the location +returned is that of the last such element. If the array has zero size, or all of the elements of @var{MASK} are @code{.FALSE.}, then the result is an array of zeroes. Similarly, if @var{DIM} is supplied and all of the elements of @var{MASK} along a given row are zero, the result value for that row is zero. @item @emph{Standard}: -Fortran 95 and later; @var{ARRAY} of @code{CHARACTER} and the +Fortran 90 and later; @var{ARRAY} of @code{CHARACTER} and the @var{KIND} argument are available in Fortran 2003 and later. The @var{BACK} argument is available in Fortran 2008 and later. @@ -10395,8 +10740,9 @@ is of default kind. @item @emph{See also}: -@ref{MIN}, @ref{MINVAL} - +@ref{FINDLOC}, @gol +@ref{MIN}, @gol +@ref{MINVAL} @end table @@ -10419,7 +10765,7 @@ @var{ARRAY} is of character type. @item @emph{Standard}: -Fortran 95 and later +Fortran 90 and later @item @emph{Class}: Transformational function @@ -10449,8 +10795,8 @@ cases, the result is of the same type and kind as @var{ARRAY}. @item @emph{See also}: -@ref{MIN}, @ref{MINLOC} - +@ref{MIN}, @gol +@ref{MINLOC} @end table @@ -10484,14 +10830,16 @@ @multitable @columnfractions .15 .70 @item @var{A} @tab Shall be a scalar of type @code{INTEGER} or @code{REAL}. @item @var{P} @tab Shall be a scalar of the same type and kind as @var{A} -and not equal to zero. +and not equal to zero. (As a GNU extension, arguments of different kinds are +permitted.) @end multitable @item @emph{Return value}: The return value is the result of @code{A - (INT(A/P) * P)}. The type and kind of the return value is the same as that of the arguments. The returned value has the same sign as A and a magnitude less than the -magnitude of P. +magnitude of P. (As a GNU extension, kind is the largest kind of the actual +arguments.) @item @emph{Example}: @smallexample @@ -10516,9 +10864,9 @@ @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @item Name @tab Arguments @tab Return type @tab Standard -@item @code{MOD(A,P)} @tab @code{INTEGER A,P} @tab @code{INTEGER} @tab Fortran 95 and later -@item @code{AMOD(A,P)} @tab @code{REAL(4) A,P} @tab @code{REAL(4)} @tab Fortran 95 and later -@item @code{DMOD(A,P)} @tab @code{REAL(8) A,P} @tab @code{REAL(8)} @tab Fortran 95 and later +@item @code{MOD(A,P)} @tab @code{INTEGER A,P} @tab @code{INTEGER} @tab Fortran 77 and later +@item @code{AMOD(A,P)} @tab @code{REAL(4) A,P} @tab @code{REAL(4)} @tab Fortran 77 and later +@item @code{DMOD(A,P)} @tab @code{REAL(8) A,P} @tab @code{REAL(8)} @tab Fortran 77 and later @item @code{BMOD(A,P)} @tab @code{INTEGER(1) A,P} @tab @code{INTEGER(1)} @tab GNU extension @item @code{IMOD(A,P)} @tab @code{INTEGER(2) A,P} @tab @code{INTEGER(2)} @tab GNU extension @item @code{JMOD(A,P)} @tab @code{INTEGER(4) A,P} @tab @code{INTEGER(4)} @tab GNU extension @@ -10555,11 +10903,13 @@ @multitable @columnfractions .15 .70 @item @var{A} @tab Shall be a scalar of type @code{INTEGER} or @code{REAL}. @item @var{P} @tab Shall be a scalar of the same type and kind as @var{A}. -It shall not be zero. -@end multitable - -@item @emph{Return value}: -The type and kind of the result are those of the arguments. +It shall not be zero. (As a GNU extension, arguments of different kinds are +permitted.) +@end multitable + +@item @emph{Return value}: +The type and kind of the result are those of the arguments. (As a GNU +extension, kind is the largest kind of the actual arguments.) @table @asis @item If @var{A} and @var{P} are of type @code{INTEGER}: @code{MODULO(A,P)} has the value @var{R} such that @code{A=Q*P+R}, where @@ -10658,7 +11008,7 @@ @code{BIT_SIZE(FROM)}. @item @emph{Standard}: -Fortran 95 and later, has overloads that are GNU extensions +Fortran 90 and later, has overloads that are GNU extensions @item @emph{Class}: Elemental subroutine @@ -10679,7 +11029,7 @@ @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @item Name @tab Argument @tab Return type @tab Standard -@item @code{MVBITS(A)} @tab @code{INTEGER A} @tab @code{INTEGER} @tab Fortran 95 and later +@item @code{MVBITS(A)} @tab @code{INTEGER A} @tab @code{INTEGER} @tab Fortran 90 and later @item @code{BMVBITS(A)} @tab @code{INTEGER(1) A} @tab @code{INTEGER(1)} @tab GNU extension @item @code{IMVBITS(A)} @tab @code{INTEGER(2) A} @tab @code{INTEGER(2)} @tab GNU extension @item @code{JMVBITS(A)} @tab @code{INTEGER(4) A} @tab @code{INTEGER(4)} @tab GNU extension @@ -10687,7 +11037,12 @@ @end multitable @item @emph{See also}: -@ref{IBCLR}, @ref{IBSET}, @ref{IBITS}, @ref{IAND}, @ref{IOR}, @ref{IEOR} +@ref{IBCLR}, @gol +@ref{IBSET}, @gol +@ref{IBITS}, @gol +@ref{IAND}, @gol +@ref{IOR}, @gol +@ref{IEOR} @end table @@ -10704,7 +11059,7 @@ to @code{X} in the direction indicated by the sign of @code{S}. @item @emph{Standard}: -Fortran 95 and later +Fortran 90 and later @item @emph{Class}: Elemental function @@ -10824,13 +11179,13 @@ @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @item Name @tab Argument @tab Return Type @tab Standard -@item @code{NINT(A)} @tab @code{REAL(4) A} @tab @code{INTEGER} @tab Fortran 95 and later -@item @code{IDNINT(A)} @tab @code{REAL(8) A} @tab @code{INTEGER} @tab Fortran 95 and later -@end multitable - -@item @emph{See also}: -@ref{CEILING}, @ref{FLOOR} - +@item @code{NINT(A)} @tab @code{REAL(4) A} @tab @code{INTEGER} @tab Fortran 77 and later +@item @code{IDNINT(A)} @tab @code{REAL(8) A} @tab @code{INTEGER} @tab Fortran 77 and later +@end multitable + +@item @emph{See also}: +@ref{CEILING}, @gol +@ref{FLOOR} @end table @@ -10902,7 +11257,7 @@ @code{NOT} returns the bitwise Boolean inverse of @var{I}. @item @emph{Standard}: -Fortran 95 and later, has overloads that are GNU extensions +Fortran 90 and later, has overloads that are GNU extensions @item @emph{Class}: Elemental function @@ -10930,8 +11285,12 @@ @end multitable @item @emph{See also}: -@ref{IAND}, @ref{IEOR}, @ref{IOR}, @ref{IBITS}, @ref{IBSET}, @ref{IBCLR} - +@ref{IAND}, @gol +@ref{IEOR}, @gol +@ref{IOR}, @gol +@ref{IBITS}, @gol +@ref{IBSET}, @gol +@ref{IBCLR} @end table @@ -11033,7 +11392,8 @@ @end smallexample @item @emph{See also}: -@ref{THIS_IMAGE}, @ref{IMAGE_INDEX} +@ref{THIS_IMAGE}, @gol +@ref{IMAGE_INDEX} @end table @@ -11064,15 +11424,20 @@ @item @emph{Arguments}: @multitable @columnfractions .15 .70 @item @var{I} @tab The type shall be either a scalar @code{INTEGER} -type or a scalar @code{LOGICAL} type. -@item @var{J} @tab The type shall be the same as the type of @var{J}. +type or a scalar @code{LOGICAL} type or a boz-literal-constant. +@item @var{J} @tab The type shall be the same as the type of @var{I} or +a boz-literal-constant. @var{I} and @var{J} shall not both be +boz-literal-constants. If either @var{I} and @var{J} is a +boz-literal-constant, then the other argument must be a scalar @code{INTEGER}. @end multitable @item @emph{Return value}: The return type is either a scalar @code{INTEGER} or a scalar @code{LOGICAL}. If the kind type parameters differ, then the smaller kind type is implicitly converted to larger kind, and the -return has the larger kind. +return has the larger kind. A boz-literal-constant is +converted to an @code{INTEGER} with the kind type parameter of +the other argument as-if a call to @ref{INT} occurred. @item @emph{Example}: @smallexample @@ -11087,7 +11452,8 @@ @end smallexample @item @emph{See also}: -Fortran 95 elemental function: @ref{IOR} +Fortran 95 elemental function: @gol +@ref{IOR} @end table @@ -11108,7 +11474,7 @@ @var{VECTOR}. @item @emph{Standard}: -Fortran 95 and later +Fortran 90 and later @item @emph{Class}: Transformational function @@ -11150,7 +11516,8 @@ PROGRAM test_pack_2 INTEGER :: m(4) m = (/ 1, 0, 0, 2 /) - WRITE(*, FMT="(4(I0, ' '))") pack(m, m /= 0, (/ 0, 0, 3, 4 /)) ! "1 2 3 4" + ! The following results in "1 2 3 4" + WRITE(*, FMT="(4(I0, ' '))") pack(m, m /= 0, (/ 0, 0, 3, 4 /)) END PROGRAM @end smallexample @@ -11273,9 +11640,6 @@ The return value is of type @code{INTEGER} and of the default integer kind. -@item @emph{See also}: -@ref{POPPAR}, @ref{LEADZ}, @ref{TRAILZ} - @item @emph{Example}: @smallexample program test_population @@ -11284,7 +11648,12 @@ print *, popcnt(huge(0_8)), poppar(huge(0_8)) end program test_population @end smallexample -@end table +@item @emph{See also}: +@ref{POPPAR}, @gol +@ref{LEADZ}, @gol +@ref{TRAILZ} +@end table + @node POPPAR @@ -11318,9 +11687,6 @@ The return value is of type @code{INTEGER} and of the default integer kind. -@item @emph{See also}: -@ref{POPCNT}, @ref{LEADZ}, @ref{TRAILZ} - @item @emph{Example}: @smallexample program test_population @@ -11329,6 +11695,10 @@ print *, popcnt(huge(0_8)), poppar(huge(0_8)) end program test_population @end smallexample +@item @emph{See also}: +@ref{POPCNT}, @gol +@ref{LEADZ}, @gol +@ref{TRAILZ} @end table @@ -11344,7 +11714,7 @@ type of @code{X}. @item @emph{Standard}: -Fortran 95 and later +Fortran 90 and later @item @emph{Class}: Inquiry function @@ -11354,16 +11724,14 @@ @item @emph{Arguments}: @multitable @columnfractions .15 .70 -@item @var{X} @tab Shall be of type @code{REAL} or @code{COMPLEX}. +@item @var{X} @tab Shall be of type @code{REAL} or @code{COMPLEX}. It may +be scalar or valued. @end multitable @item @emph{Return value}: The return value is of type @code{INTEGER} and of the default integer kind. -@item @emph{See also}: -@ref{SELECTED_REAL_KIND}, @ref{RANGE} - @item @emph{Example}: @smallexample program prec_and_range @@ -11374,6 +11742,9 @@ print *, precision(y), range(y) end program prec_and_range @end smallexample +@item @emph{See also}: +@ref{SELECTED_REAL_KIND}, @gol +@ref{RANGE} @end table @@ -11387,7 +11758,7 @@ Determines whether an optional dummy argument is present. @item @emph{Standard}: -Fortran 95 and later +Fortran 90 and later @item @emph{Class}: Inquiry function @@ -11435,7 +11806,7 @@ the corresponding element in @var{MASK} is @code{TRUE}. @item @emph{Standard}: -Fortran 95 and later +Fortran 90 and later @item @emph{Class}: Transformational function @@ -11492,7 +11863,7 @@ @code{RADIX(X)} returns the base of the model representing the entity @var{X}. @item @emph{Standard}: -Fortran 95 and later +Fortran 90 and later @item @emph{Class}: Inquiry function @@ -11509,9 +11880,6 @@ The return value is a scalar of type @code{INTEGER} and of the default integer kind. -@item @emph{See also}: -@ref{SELECTED_REAL_KIND} - @item @emph{Example}: @smallexample program test_radix @@ -11519,7 +11887,8 @@ print *, "The radix for the default real kind is", radix(0.0) end program test_radix @end smallexample - +@item @emph{See also}: +@ref{SELECTED_REAL_KIND} @end table @@ -11542,7 +11911,8 @@ Function @item @emph{See also}: -@ref{RAND}, @ref{RANDOM_NUMBER} +@ref{RAND}, @gol +@ref{RANDOM_NUMBER} @end table @@ -11594,7 +11964,8 @@ @end smallexample @item @emph{See also}: -@ref{SRAND}, @ref{RANDOM_NUMBER} +@ref{SRAND}, @gol +@ref{RANDOM_NUMBER} @end table @@ -11619,7 +11990,7 @@ @code{CALL RANDOM_INIT(REPEATABLE, IMAGE_DISTINCT)} @item @emph{Arguments}: -@multitable @columnfractions .20 .75 +@multitable @columnfractions .25 .70 @item @var{REPEATABLE} @tab Shall be a scalar with a @code{LOGICAL} type, and it is @code{INTENT(IN)}. If it is @code{.true.}, the seed is set to a processor-dependent value that is the same each time @code{RANDOM_INIT} @@ -11650,7 +12021,8 @@ @end smallexample @item @emph{See also}: -@ref{RANDOM_NUMBER}, @ref{RANDOM_SEED} +@ref{RANDOM_NUMBER}, @gol +@ref{RANDOM_SEED} @end table @@ -11664,10 +12036,10 @@ Returns a single pseudorandom number or an array of pseudorandom numbers from the uniform distribution over the range @math{ 0 \leq x < 1}. -The runtime-library implements the xorshift1024* random number -generator (RNG). This generator has a period of @math{2^{1024} - 1}, -and when using multiple threads up to @math{2^{512}} threads can each -generate @math{2^{512}} random numbers before any aliasing occurs. +The runtime-library implements the xoshiro256** pseudorandom number +generator (PRNG). This generator has a period of @math{2^{256} - 1}, +and when using multiple threads up to @math{2^{128}} threads can each +generate @math{2^{128}} random numbers before any aliasing occurs. Note that in a multi-threaded program (e.g. using OpenMP directives), each thread will have its own random number state. For details of the @@ -11676,7 +12048,7 @@ @item @emph{Standard}: -Fortran 95 and later +Fortran 90 and later @item @emph{Class}: Subroutine @@ -11698,7 +12070,8 @@ @end smallexample @item @emph{See also}: -@ref{RANDOM_SEED}, @ref{RANDOM_INIT} +@ref{RANDOM_SEED}, @gol +@ref{RANDOM_INIT} @end table @@ -11724,13 +12097,13 @@ given seed is copied into a master seed as well as the seed of the current thread. When a new thread uses @code{RANDOM_NUMBER} for the first time, the seed is copied from the master seed, and forwarded -@math{N * 2^{512}} steps to guarantee that the random stream does not +@math{N * 2^{128}} steps to guarantee that the random stream does not alias any other stream in the system, where @var{N} is the number of threads that have used @code{RANDOM_NUMBER} so far during the program execution. @item @emph{Standard}: -Fortran 95 and later +Fortran 90 and later @item @emph{Class}: Subroutine @@ -11768,7 +12141,8 @@ @end smallexample @item @emph{See also}: -@ref{RANDOM_NUMBER}, @ref{RANDOM_INIT} +@ref{RANDOM_NUMBER}, @gol +@ref{RANDOM_INIT} @end table @@ -11784,7 +12158,7 @@ type of @code{X}. @item @emph{Standard}: -Fortran 95 and later +Fortran 90 and later @item @emph{Class}: Inquiry function @@ -11802,11 +12176,11 @@ The return value is of type @code{INTEGER} and of the default integer kind. -@item @emph{See also}: -@ref{SELECTED_REAL_KIND}, @ref{PRECISION} - @item @emph{Example}: See @code{PRECISION} for an example. +@item @emph{See also}: +@ref{SELECTED_REAL_KIND}, @gol +@ref{PRECISION} @end table @@ -11872,7 +12246,7 @@ and its use is strongly discouraged. @item @emph{Standard}: -Fortran 77 and later +Fortran 77 and later, with @var{KIND} argument Fortran 90 and later, has GNU extensions @item @emph{Class}: Elemental function @@ -11919,12 +12293,12 @@ @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @item Name @tab Argument @tab Return type @tab Standard -@item @code{FLOAT(A)} @tab @code{INTEGER(4)} @tab @code{REAL(4)} @tab Fortran 77 and later +@item @code{FLOAT(A)} @tab @code{INTEGER(4)} @tab @code{REAL(4)} @tab GNU extension @item @code{DFLOAT(A)} @tab @code{INTEGER(4)} @tab @code{REAL(8)} @tab GNU extension @item @code{FLOATI(A)} @tab @code{INTEGER(2)} @tab @code{REAL(4)} @tab GNU extension @item @code{FLOATJ(A)} @tab @code{INTEGER(4)} @tab @code{REAL(4)} @tab GNU extension @item @code{FLOATK(A)} @tab @code{INTEGER(8)} @tab @code{REAL(4)} @tab GNU extension -@item @code{SNGL(A)} @tab @code{INTEGER(8)} @tab @code{REAL(4)} @tab Fortran 77 and later +@item @code{SNGL(A)} @tab @code{INTEGER(8)} @tab @code{REAL(4)} @tab GNU extension @end multitable @@ -11989,7 +12363,7 @@ Concatenates @var{NCOPIES} copies of a string. @item @emph{Standard}: -Fortran 95 and later +Fortran 90 and later @item @emph{Class}: Transformational function @@ -12030,7 +12404,7 @@ as defined by @var{ORDER}. @item @emph{Standard}: -Fortran 95 and later +Fortran 90 and later @item @emph{Class}: Transformational function @@ -12084,7 +12458,7 @@ model numbers near @var{X}. @item @emph{Standard}: -Fortran 95 and later +Fortran 90 and later @item @emph{Class}: Elemental function @@ -12116,11 +12490,12 @@ @table @asis @item @emph{Description}: @code{RSHIFT} returns a value corresponding to @var{I} with all of the -bits shifted right by @var{SHIFT} places. If the absolute value of -@var{SHIFT} is greater than @code{BIT_SIZE(I)}, the value is undefined. -Bits shifted out from the right end are lost. The fill is arithmetic: the -bits shifted in from the left end are equal to the leftmost bit, which in -two's complement representation is the sign bit. +bits shifted right by @var{SHIFT} places. @var{SHIFT} shall be +nonnegative and less than or equal to @code{BIT_SIZE(I)}, otherwise +the result value is undefined. Bits shifted out from the right end +are lost. The fill is arithmetic: the bits shifted in from the left +end are equal to the leftmost bit, which in two's complement +representation is the sign bit. This function has been superseded by the @code{SHIFTA} intrinsic, which is standard in Fortran 2008 and later. @@ -12145,7 +12520,11 @@ @var{I}. @item @emph{See also}: -@ref{ISHFT}, @ref{ISHFTC}, @ref{LSHIFT}, @ref{SHIFTA}, @ref{SHIFTR}, +@ref{ISHFT}, @gol +@ref{ISHFTC}, @gol +@ref{LSHIFT}, @gol +@ref{SHIFTA}, @gol +@ref{SHIFTR}, @gol @ref{SHIFTL} @end table @@ -12199,7 +12578,7 @@ @code{SCALE(X,I)} returns @code{X * RADIX(X)**I}. @item @emph{Standard}: -Fortran 95 and later +Fortran 90 and later @item @emph{Class}: Elemental function @@ -12247,7 +12626,7 @@ result is zero. @item @emph{Standard}: -Fortran 95 and later, with @var{KIND} argument Fortran 2003 and later +Fortran 90 and later, with @var{KIND} argument Fortran 2003 and later @item @emph{Class}: Elemental function @@ -12278,7 +12657,8 @@ @end smallexample @item @emph{See also}: -@ref{INDEX intrinsic}, @ref{VERIFY} +@ref{INDEX intrinsic}, @gol +@ref{VERIFY} @end table @@ -12444,7 +12824,7 @@ this range, @code{SELECTED_INT_KIND} returns @math{-1}. @item @emph{Standard}: -Fortran 95 and later +Fortran 90 and later @item @emph{Class}: Transformational function @@ -12490,7 +12870,7 @@ at least @code{R}, and with a radix of @code{RADIX}. @item @emph{Standard}: -Fortran 95 and later, with @code{RADIX} Fortran 2008 or later +Fortran 90 and later, with @code{RADIX} Fortran 2008 or later @item @emph{Class}: Transformational function @@ -12530,9 +12910,6 @@ @item -5 if there is no real type with the given @code{RADIX} @end table -@item @emph{See also}: -@ref{PRECISION}, @ref{RANGE}, @ref{RADIX} - @item @emph{Example}: @smallexample program real_kinds @@ -12548,6 +12925,10 @@ print *, precision(z), range(z) end program real_kinds @end smallexample +@item @emph{See also}: +@ref{PRECISION}, @gol +@ref{RANGE}, @gol +@ref{RADIX} @end table @@ -12564,7 +12945,7 @@ is that that of @var{X} and whose exponent part is @var{I}. @item @emph{Standard}: -Fortran 95 and later +Fortran 90 and later @item @emph{Class}: Elemental function @@ -12607,7 +12988,7 @@ Determines the shape of an array. @item @emph{Standard}: -Fortran 95 and later, with @var{KIND} argument Fortran 2003 and later +Fortran 90 and later, with @var{KIND} argument Fortran 2003 and later @item @emph{Class}: Inquiry function @@ -12641,7 +13022,8 @@ @end smallexample @item @emph{See also}: -@ref{RESHAPE}, @ref{SIZE} +@ref{RESHAPE}, @gol +@ref{SIZE} @end table @@ -12655,11 +13037,12 @@ @table @asis @item @emph{Description}: @code{SHIFTA} returns a value corresponding to @var{I} with all of the -bits shifted right by @var{SHIFT} places. If the absolute value of -@var{SHIFT} is greater than @code{BIT_SIZE(I)}, the value is undefined. -Bits shifted out from the right end are lost. The fill is arithmetic: the -bits shifted in from the left end are equal to the leftmost bit, which in -two's complement representation is the sign bit. +bits shifted right by @var{SHIFT} places. @var{SHIFT} that be +nonnegative and less than or equal to @code{BIT_SIZE(I)}, otherwise +the result value is undefined. Bits shifted out from the right end +are lost. The fill is arithmetic: the bits shifted in from the left +end are equal to the leftmost bit, which in two's complement +representation is the sign bit. @item @emph{Standard}: Fortran 2008 and later @@ -12681,7 +13064,8 @@ @var{I}. @item @emph{See also}: -@ref{SHIFTL}, @ref{SHIFTR} +@ref{SHIFTL}, @gol +@ref{SHIFTR} @end table @@ -12695,10 +13079,10 @@ @table @asis @item @emph{Description}: @code{SHIFTL} returns a value corresponding to @var{I} with all of the -bits shifted left by @var{SHIFT} places. If the absolute value of -@var{SHIFT} is greater than @code{BIT_SIZE(I)}, the value is undefined. -Bits shifted out from the left end are lost, and bits shifted in from -the right end are set to 0. +bits shifted left by @var{SHIFT} places. @var{SHIFT} shall be +nonnegative and less than or equal to @code{BIT_SIZE(I)}, otherwise +the result value is undefined. Bits shifted out from the left end are +lost, and bits shifted in from the right end are set to 0. @item @emph{Standard}: Fortran 2008 and later @@ -12720,7 +13104,8 @@ @var{I}. @item @emph{See also}: -@ref{SHIFTA}, @ref{SHIFTR} +@ref{SHIFTA}, @gol +@ref{SHIFTR} @end table @@ -12734,10 +13119,10 @@ @table @asis @item @emph{Description}: @code{SHIFTR} returns a value corresponding to @var{I} with all of the -bits shifted right by @var{SHIFT} places. If the absolute value of -@var{SHIFT} is greater than @code{BIT_SIZE(I)}, the value is undefined. -Bits shifted out from the right end are lost, and bits shifted in from -the left end are set to 0. +bits shifted right by @var{SHIFT} places. @var{SHIFT} shall be +nonnegative and less than or equal to @code{BIT_SIZE(I)}, otherwise +the result value is undefined. Bits shifted out from the right end +are lost, and bits shifted in from the left end are set to 0. @item @emph{Standard}: Fortran 2008 and later @@ -12759,7 +13144,8 @@ @var{I}. @item @emph{See also}: -@ref{SHIFTA}, @ref{SHIFTL} +@ref{SHIFTA}, @gol +@ref{SHIFTL} @end table @@ -12787,7 +13173,7 @@ @item @emph{Arguments}: @multitable @columnfractions .15 .70 @item @var{A} @tab Shall be of type @code{INTEGER} or @code{REAL} -@item @var{B} @tab Shall be of the same type and kind as @var{A} +@item @var{B} @tab Shall be of the same type and kind as @var{A}. @end multitable @item @emph{Return value}: @@ -12811,9 +13197,9 @@ @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @item Name @tab Arguments @tab Return type @tab Standard -@item @code{SIGN(A,B)} @tab @code{REAL(4) A, B} @tab @code{REAL(4)} @tab f77, gnu -@item @code{ISIGN(A,B)} @tab @code{INTEGER(4) A, B} @tab @code{INTEGER(4)} @tab f77, gnu -@item @code{DSIGN(A,B)} @tab @code{REAL(8) A, B} @tab @code{REAL(8)} @tab f77, gnu +@item @code{SIGN(A,B)} @tab @code{REAL(4) A, B} @tab @code{REAL(4)} @tab Fortran 77 and later +@item @code{ISIGN(A,B)} @tab @code{INTEGER(4) A, B} @tab @code{INTEGER(4)} @tab Fortran 77 and later +@item @code{DSIGN(A,B)} @tab @code{REAL(8) A, B} @tab @code{REAL(8)} @tab Fortran 77 and later @end multitable @end table @@ -12920,16 +13306,18 @@ @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @item Name @tab Argument @tab Return type @tab Standard -@item @code{SIN(X)} @tab @code{REAL(4) X} @tab @code{REAL(4)} @tab f77, gnu -@item @code{DSIN(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab f95, gnu -@item @code{CSIN(X)} @tab @code{COMPLEX(4) X} @tab @code{COMPLEX(4)} @tab f95, gnu -@item @code{ZSIN(X)} @tab @code{COMPLEX(8) X} @tab @code{COMPLEX(8)} @tab f95, gnu -@item @code{CDSIN(X)} @tab @code{COMPLEX(8) X} @tab @code{COMPLEX(8)} @tab f95, gnu -@end multitable - -@item @emph{See also}: -Inverse function: @ref{ASIN} -Degrees function: @ref{SIND} +@item @code{SIN(X)} @tab @code{REAL(4) X} @tab @code{REAL(4)} @tab Fortran 77 and later +@item @code{DSIN(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab Fortran 77 and later +@item @code{CSIN(X)} @tab @code{COMPLEX(4) X} @tab @code{COMPLEX(4)} @tab Fortran 77 and later +@item @code{ZSIN(X)} @tab @code{COMPLEX(8) X} @tab @code{COMPLEX(8)} @tab GNU extension +@item @code{CDSIN(X)} @tab @code{COMPLEX(8) X} @tab @code{COMPLEX(8)} @tab GNU extension +@end multitable + +@item @emph{See also}: +Inverse function: @gol +@ref{ASIN} @gol +Degrees function: @gol +@ref{SIND} @end table @@ -12952,7 +13340,7 @@ standard constructs wherever possible. @item @emph{Standard}: -GNU Extension, enabled with @option{-fdec-math}. +GNU extension, enabled with @option{-fdec-math}. @item @emph{Class}: Elemental function @@ -12980,17 +13368,18 @@ @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @item Name @tab Argument @tab Return type @tab Standard -@item @code{SIND(X)} @tab @code{REAL(4) X} @tab @code{REAL(4)} @tab GNU Extension -@item @code{DSIND(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab GNU Extension -@item @code{CSIND(X)} @tab @code{COMPLEX(4) X} @tab @code{COMPLEX(4)} @tab GNU Extension -@item @code{ZSIND(X)} @tab @code{COMPLEX(8) X} @tab @code{COMPLEX(8)} @tab GNU Extension -@item @code{CDSIND(X)} @tab @code{COMPLEX(8) X} @tab @code{COMPLEX(8)} @tab GNU Extension -@end multitable - -@item @emph{See also}: -Inverse function: @ref{ASIND} -Radians function: @ref{SIN} - +@item @code{SIND(X)} @tab @code{REAL(4) X} @tab @code{REAL(4)} @tab GNU extension +@item @code{DSIND(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab GNU extension +@item @code{CSIND(X)} @tab @code{COMPLEX(4) X} @tab @code{COMPLEX(4)} @tab GNU extension +@item @code{ZSIND(X)} @tab @code{COMPLEX(8) X} @tab @code{COMPLEX(8)} @tab GNU extension +@item @code{CDSIND(X)} @tab @code{COMPLEX(8) X} @tab @code{COMPLEX(8)} @tab GNU extension +@end multitable + +@item @emph{See also}: +Inverse function: @gol +@ref{ASIND} @gol +Radians function: @gol +@ref{SIN} @gol @end table @@ -13008,7 +13397,8 @@ @code{SINH(X)} computes the hyperbolic sine of @var{X}. @item @emph{Standard}: -Fortran 95 and later, for a complex argument Fortran 2008 or later +Fortran 90 and later, for a complex argument Fortran 2008 or later, has +a GNU extension @item @emph{Class}: Elemental function @@ -13035,8 +13425,7 @@ @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @item Name @tab Argument @tab Return type @tab Standard -@item @code{SINH(X)} @tab @code{REAL(4) X} @tab @code{REAL(4)} @tab Fortran 95 and later -@item @code{DSINH(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab Fortran 95 and later +@item @code{DSINH(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab Fortran 90 and later @end multitable @item @emph{See also}: @@ -13058,7 +13447,7 @@ or the total number of elements in @var{ARRAY} if @var{DIM} is absent. @item @emph{Standard}: -Fortran 95 and later, with @var{KIND} argument Fortran 2003 and later +Fortran 90 and later, with @var{KIND} argument Fortran 2003 and later @item @emph{Class}: Inquiry function @@ -13089,7 +13478,8 @@ @end smallexample @item @emph{See also}: -@ref{SHAPE}, @ref{RESHAPE} +@ref{SHAPE}, @gol +@ref{RESHAPE} @end table @@ -13142,7 +13532,8 @@ where default @code{REAL} variables are unusually padded. @item @emph{See also}: -@ref{C_SIZEOF}, @ref{STORAGE_SIZE} +@ref{C_SIZEOF}, @gol +@ref{STORAGE_SIZE} @end table @@ -13191,7 +13582,7 @@ adjacent number of the same type. @item @emph{Standard}: -Fortran 95 and later +Fortran 90 and later @item @emph{Class}: Elemental function @@ -13237,7 +13628,7 @@ dimension @var{DIM}. @item @emph{Standard}: -Fortran 95 and later +Fortran 90 and later @item @emph{Class}: Transformational function @@ -13319,9 +13710,9 @@ @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @item Name @tab Argument @tab Return type @tab Standard -@item @code{SQRT(X)} @tab @code{REAL(4) X} @tab @code{REAL(4)} @tab Fortran 95 and later -@item @code{DSQRT(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab Fortran 95 and later -@item @code{CSQRT(X)} @tab @code{COMPLEX(4) X} @tab @code{COMPLEX(4)} @tab Fortran 95 and later +@item @code{SQRT(X)} @tab @code{REAL(4) X} @tab @code{REAL(4)} @tab Fortran 77 and later +@item @code{DSQRT(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab Fortran 77 and later +@item @code{CSQRT(X)} @tab @code{COMPLEX(4) X} @tab @code{COMPLEX(4)} @tab Fortran 77 and later @item @code{ZSQRT(X)} @tab @code{COMPLEX(8) X} @tab @code{COMPLEX(8)} @tab GNU extension @item @code{CDSQRT(X)} @tab @code{COMPLEX(8) X} @tab @code{COMPLEX(8)} @tab GNU extension @end multitable @@ -13373,8 +13764,9 @@ pseudo-random number generators. @item @emph{See also}: -@ref{RAND}, @ref{RANDOM_SEED}, @ref{RANDOM_NUMBER} - +@ref{RAND}, @gol +@ref{RANDOM_SEED}, @gol +@ref{RANDOM_NUMBER} @end table @@ -13461,7 +13853,10 @@ @end smallexample @item @emph{See also}: -To stat an open file: @ref{FSTAT}, to stat a link: @ref{LSTAT} +To stat an open file: @gol +@ref{FSTAT} @gol +To stat a link: @gol +@ref{LSTAT} @end table @@ -13494,7 +13889,8 @@ parameters of A. @item @emph{See also}: -@ref{C_SIZEOF}, @ref{SIZEOF} +@ref{C_SIZEOF}, @gol +@ref{SIZEOF} @end table @@ -13513,7 +13909,7 @@ the corresponding element in @var{MASK} is @code{TRUE}. @item @emph{Standard}: -Fortran 95 and later +Fortran 90 and later @item @emph{Class}: Transformational function @@ -13597,8 +13993,8 @@ @end multitable @item @emph{See also}: -@ref{LINK}, @ref{UNLINK} - +@ref{LINK}, @gol +@ref{UNLINK} @end table @@ -13692,7 +14088,7 @@ potential caveats, please see the platform documentation. @item @emph{Standard}: -Fortran 95 and later +Fortran 90 and later @item @emph{Class}: Subroutine @@ -13701,7 +14097,7 @@ @code{CALL SYSTEM_CLOCK([COUNT, COUNT_RATE, COUNT_MAX])} @item @emph{Arguments}: -@multitable @columnfractions .15 .70 +@multitable @columnfractions .20 .65 @item @var{COUNT} @tab (Optional) shall be a scalar of type @code{INTEGER} with @code{INTENT(OUT)}. @item @var{COUNT_RATE} @tab (Optional) shall be a scalar of type @@ -13720,7 +14116,8 @@ @end smallexample @item @emph{See also}: -@ref{DATE_AND_TIME}, @ref{CPU_TIME} +@ref{DATE_AND_TIME}, @gol +@ref{CPU_TIME} @end table @@ -13764,13 +14161,15 @@ @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @item Name @tab Argument @tab Return type @tab Standard -@item @code{TAN(X)} @tab @code{REAL(4) X} @tab @code{REAL(4)} @tab Fortran 95 and later -@item @code{DTAN(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab Fortran 95 and later -@end multitable - -@item @emph{See also}: -Inverse function: @ref{ATAN} -Degrees function: @ref{TAND} +@item @code{TAN(X)} @tab @code{REAL(4) X} @tab @code{REAL(4)} @tab Fortran 77 and later +@item @code{DTAN(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab Fortran 77 and later +@end multitable + +@item @emph{See also}: +Inverse function: @gol +@ref{ATAN} @gol +Degrees function: @gol +@ref{TAND} @end table @@ -13790,7 +14189,7 @@ standard constructs wherever possible. @item @emph{Standard}: -GNU Extension, enabled with @option{-fdec-math}. +GNU extension, enabled with @option{-fdec-math}. @item @emph{Class}: Elemental function @@ -13817,13 +14216,15 @@ @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @item Name @tab Argument @tab Return type @tab Standard -@item @code{TAND(X)} @tab @code{REAL(4) X} @tab @code{REAL(4)} @tab GNU Extension -@item @code{DTAND(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab GNU Extension -@end multitable - -@item @emph{See also}: -Inverse function: @ref{ATAND} -Radians function: @ref{TAN} +@item @code{TAND(X)} @tab @code{REAL(4) X} @tab @code{REAL(4)} @tab GNU extension +@item @code{DTAND(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab GNU extension +@end multitable + +@item @emph{See also}: +Inverse function: @gol +@ref{ATAND} @gol +Radians function: @gol +@ref{TAN} @end table @@ -13871,8 +14272,8 @@ @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @item Name @tab Argument @tab Return type @tab Standard -@item @code{TANH(X)} @tab @code{REAL(4) X} @tab @code{REAL(4)} @tab Fortran 95 and later -@item @code{DTANH(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab Fortran 95 and later +@item @code{TANH(X)} @tab @code{REAL(4) X} @tab @code{REAL(4)} @tab Fortran 77 and later +@item @code{DTANH(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab Fortran 77 and later @end multitable @item @emph{See also}: @@ -13947,7 +14348,8 @@ @end smallexample @item @emph{See also}: -@ref{NUM_IMAGES}, @ref{IMAGE_INDEX} +@ref{NUM_IMAGES}, @gol +@ref{IMAGE_INDEX} @end table @@ -13987,8 +14389,12 @@ The return value is a scalar of type @code{INTEGER(4)}. @item @emph{See also}: -@ref{DATE_AND_TIME}, @ref{CTIME}, @ref{GMTIME}, @ref{LTIME}, @ref{MCLOCK}, @ref{TIME8} - +@ref{DATE_AND_TIME}, @gol +@ref{CTIME}, @gol +@ref{GMTIME}, @gol +@ref{LTIME}, @gol +@ref{MCLOCK}, @gol +@ref{TIME8} @end table @@ -14026,8 +14432,12 @@ The return value is a scalar of type @code{INTEGER(8)}. @item @emph{See also}: -@ref{DATE_AND_TIME}, @ref{CTIME}, @ref{GMTIME}, @ref{LTIME}, @ref{MCLOCK8}, @ref{TIME} - +@ref{DATE_AND_TIME}, @gol +@ref{CTIME}, @gol +@ref{GMTIME}, @gol +@ref{LTIME}, @gol +@ref{MCLOCK8}, @gol +@ref{TIME} @end table @@ -14044,7 +14454,7 @@ in the model of the type of @code{X}. @item @emph{Standard}: -Fortran 95 and later +Fortran 90 and later @item @emph{Class}: Inquiry function @@ -14101,7 +14511,10 @@ @end smallexample @item @emph{See also}: -@ref{BIT_SIZE}, @ref{LEADZ}, @ref{POPPAR}, @ref{POPCNT} +@ref{BIT_SIZE}, @gol +@ref{LEADZ}, @gol +@ref{POPPAR}, @gol +@ref{POPCNT} @end table @@ -14122,7 +14535,7 @@ type to another. @item @emph{Standard}: -Fortran 95 and later +Fortran 90 and later @item @emph{Class}: Transformational function @@ -14182,7 +14595,7 @@ @code{MATRIX(j, i)}, for all i, j. @item @emph{Standard}: -Fortran 95 and later +Fortran 90 and later @item @emph{Class}: Transformational function @@ -14212,7 +14625,7 @@ Removes trailing blank characters of a string. @item @emph{Standard}: -Fortran 95 and later +Fortran 90 and later @item @emph{Class}: Transformational function @@ -14238,7 +14651,8 @@ @end smallexample @item @emph{See also}: -@ref{ADJUSTL}, @ref{ADJUSTR} +@ref{ADJUSTL}, @gol +@ref{ADJUSTR} @end table @@ -14300,7 +14714,7 @@ Returns the upper bounds of an array, or a single upper bound along the @var{DIM} dimension. @item @emph{Standard}: -Fortran 95 and later, with @var{KIND} argument Fortran 2003 and later +Fortran 90 and later, with @var{KIND} argument Fortran 2003 and later @item @emph{Class}: Inquiry function @@ -14328,7 +14742,8 @@ the relevant dimension. @item @emph{See also}: -@ref{LBOUND}, @ref{LCOBOUND} +@ref{LBOUND}, @gol +@ref{LCOBOUND} @end table @@ -14367,7 +14782,8 @@ corresponding to the lower cobound of the array along that codimension. @item @emph{See also}: -@ref{LCOBOUND}, @ref{LBOUND} +@ref{LCOBOUND}, @gol +@ref{LBOUND} @end table @@ -14441,7 +14857,8 @@ @end multitable @item @emph{See also}: -@ref{LINK}, @ref{SYMLNK} +@ref{LINK}, @gol +@ref{SYMLNK} @end table @@ -14458,7 +14875,7 @@ Store the elements of @var{VECTOR} in an array of higher rank. @item @emph{Standard}: -Fortran 95 and later +Fortran 90 and later @item @emph{Class}: Transformational function @@ -14492,7 +14909,8 @@ @end smallexample @item @emph{See also}: -@ref{PACK}, @ref{SPREAD} +@ref{PACK}, @gol +@ref{SPREAD} @end table @@ -14514,7 +14932,7 @@ @var{SET}, the result is zero. @item @emph{Standard}: -Fortran 95 and later, with @var{KIND} argument Fortran 2003 and later +Fortran 90 and later, with @var{KIND} argument Fortran 2003 and later @item @emph{Class}: Elemental function @@ -14547,7 +14965,8 @@ @end smallexample @item @emph{See also}: -@ref{SCAN}, @ref{INDEX intrinsic} +@ref{SCAN}, @gol +@ref{INDEX intrinsic} @end table @@ -14578,16 +14997,21 @@ @item @emph{Arguments}: @multitable @columnfractions .15 .70 -@item @var{I} @tab The type shall be either a scalar @code{INTEGER} -type or a scalar @code{LOGICAL} type. -@item @var{J} @tab The type shall be the same as the type of @var{I}. +@item @var{I} @tab The type shall be either a scalar @code{INTEGER} +type or a scalar @code{LOGICAL} type or a boz-literal-constant. +@item @var{J} @tab The type shall be the same as the type of @var{I} or +a boz-literal-constant. @var{I} and @var{J} shall not both be +boz-literal-constants. If either @var{I} and @var{J} is a +boz-literal-constant, then the other argument must be a scalar @code{INTEGER}. @end multitable @item @emph{Return value}: The return type is either a scalar @code{INTEGER} or a scalar @code{LOGICAL}. If the kind type parameters differ, then the smaller kind type is implicitly converted to larger kind, and the -return has the larger kind. +return has the larger kind. A boz-literal-constant is +converted to an @code{INTEGER} with the kind type parameter of +the other argument as-if a call to @ref{INT} occurred. @item @emph{Example}: @smallexample @@ -14602,7 +15026,8 @@ @end smallexample @item @emph{See also}: -Fortran 95 elemental function: @ref{IEOR} +Fortran 95 elemental function: @gol +@ref{IEOR} @end table @@ -14882,13 +15307,16 @@ For details refer to the actual @uref{http://www.openmp.org/wp-content/uploads/openmp-4.5.pdf, OpenMP Application Program Interface v4.5}. +And for the @code{pause}-related constants to the OpenMP 5.0 specification. @code{OMP_LIB_KINDS} provides the following scalar default-integer named constants: @table @asis @item @code{omp_lock_kind} +@item @code{omp_lock_hint_kind} @item @code{omp_nest_lock_kind} +@item @code{omp_pause_resource_kind} @item @code{omp_proc_bind_kind} @item @code{omp_sched_kind} @end table @@ -14919,13 +15347,31 @@ @item @code{omp_proc_bind_spread} @end table +The following scalar integer named constants are of the +kind @code{omp_lock_hint_kind}: + +@table @asis +@item @code{omp_lock_hint_none} +@item @code{omp_lock_hint_uncontended} +@item @code{omp_lock_hint_contended} +@item @code{omp_lock_hint_nonspeculative} +@item @code{omp_lock_hint_speculative} +@end table + +And the following two scalar integer named constants are of the +kind @code{omp_pause_resource_kind}: + +@table @asis +@item @code{omp_pause_soft} +@item @code{omp_pause_hard} +@end table @node OpenACC Module OPENACC @section OpenACC Module @code{OPENACC} @table @asis @item @emph{Standard}: -OpenACC Application Programming Interface v2.0 +OpenACC Application Programming Interface v2.6 @end table @@ -14939,9 +15385,9 @@ For details refer to the actual @uref{http://www.openacc.org/, -OpenACC Application Programming Interface v2.0}. +OpenACC Application Programming Interface v2.6}. @code{OPENACC} provides the scalar default-integer named constant @code{openacc_version} with a value of the form @var{yyyymm}, where @code{yyyy} is the year and @var{mm} the month -of the OpenACC version; for OpenACC v2.0 the value is @code{201306}. +of the OpenACC version; for OpenACC v2.6 the value is @code{201711}.