diff options
author | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-05-17 05:56:15 +0000 |
---|---|---|
committer | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-05-17 05:56:15 +0000 |
commit | f259ef2dde37cdc1994ab89de4202de11db1758d (patch) | |
tree | fa16d409fa166f36caaced4b9b18b5c11655a10f /gcc/fortran/intrinsic.texi | |
parent | f901aa342fec3c1daf7be7c1f6258571542389b1 (diff) | |
download | gcc-f259ef2dde37cdc1994ab89de4202de11db1758d.tar.gz |
2008-05-17 Basile Starynkevitch <basile@starynkevitch.net>
MELT branch merged with trunk r135459
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@135460 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/fortran/intrinsic.texi')
-rw-r--r-- | gcc/fortran/intrinsic.texi | 383 |
1 files changed, 203 insertions, 180 deletions
diff --git a/gcc/fortran/intrinsic.texi b/gcc/fortran/intrinsic.texi index 9d3553da111..571f10e893f 100644 --- a/gcc/fortran/intrinsic.texi +++ b/gcc/fortran/intrinsic.texi @@ -361,7 +361,7 @@ end program test_abort @code{ABS(X)} computes the absolute value of @code{X}. @item @emph{Standard}: -F77 and later, has overloads that are GNU extensions +Fortran 77 and later, has overloads that are GNU extensions @item @emph{Class}: Elemental function @@ -395,9 +395,9 @@ end program test_abs @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @item Name @tab Argument @tab Return type @tab Standard -@item @code{CABS(Z)} @tab @code{COMPLEX(4) Z} @tab @code{REAL(4)} @tab F77 and later -@item @code{DABS(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab F77 and later -@item @code{IABS(I)} @tab @code{INTEGER(4) I} @tab @code{INTEGER(4)} @tab F77 and later +@item @code{CABS(Z)} @tab @code{COMPLEX(4) Z} @tab @code{REAL(4)} @tab Fortran 77 and later +@item @code{DABS(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab Fortran 77 and later +@item @code{IABS(I)} @tab @code{INTEGER(4) I} @tab @code{INTEGER(4)} @tab Fortran 77 and later @item @code{ZABS(Z)} @tab @code{COMPLEX(8) Z} @tab @code{COMPLEX(8)} @tab GNU extension @item @code{CDABS(Z)} @tab @code{COMPLEX(8) Z} @tab @code{COMPLEX(8)} @tab GNU extension @end multitable @@ -475,17 +475,20 @@ end program access_test in the @acronym{ASCII} collating sequence. @item @emph{Standard}: -F77 and later +Fortran 77 and later, with @var{KIND} argument Fortran 2003 and later @item @emph{Class}: Elemental function @item @emph{Syntax}: -@code{RESULT = ACHAR(I)} +@code{RESULT = ACHAR(I [, KIND])} @item @emph{Arguments}: @multitable @columnfractions .15 .70 -@item @var{I} @tab The type shall be @code{INTEGER(*)}. +@item @var{I} @tab The type shall be @code{INTEGER(*)}. +@item @var{KIND} @tab (Optional) An @code{INTEGER} initialization + expression indicating the kind parameter of + the result. @end multitable @item @emph{Return value}: @@ -523,7 +526,7 @@ and formatted string representations. @code{ACOS(X)} computes the arccosine of @var{X} (inverse of @code{COS(X)}). @item @emph{Standard}: -F77 and later +Fortran 77 and later @item @emph{Class}: Elemental function @@ -553,7 +556,7 @@ end program test_acos @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @item Name @tab Argument @tab Return type @tab Standard -@item @code{DACOS(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab F77 and later +@item @code{DACOS(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab Fortran 77 and later @end multitable @item @emph{See also}: @@ -626,7 +629,7 @@ Inverse function: @ref{COSH} Spaces are inserted at the end of the string as needed. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Elemental function @@ -671,7 +674,7 @@ end program test_adjustl Spaces are inserted at the start of the string as needed. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Elemental function @@ -720,7 +723,7 @@ for compatibility with @command{g77}, and their use in new code is strongly discouraged. @item @emph{Standard}: -F77 and later, has overloads that are GNU extensions +Fortran 77 and later, has overloads that are GNU extensions @item @emph{Class}: Elemental function @@ -771,7 +774,7 @@ end program test_aimag @code{AINT(X [, KIND])} truncates its argument to a whole number. @item @emph{Standard}: -F77 and later +Fortran 77 and later @item @emph{Class}: Elemental function @@ -811,7 +814,7 @@ end program test_aint @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @item Name @tab Argument @tab Return type @tab Standard -@item @code{DINT(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab F77 and later +@item @code{DINT(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab Fortran 77 and later @end multitable @end table @@ -880,7 +883,7 @@ after 3 seconds. in the array along dimension @var{DIM}. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Transformational function @@ -945,7 +948,7 @@ end program test_all @code{ALLOCATED(X)} checks the status of whether @var{X} is allocated. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Inquiry function @@ -1000,13 +1003,16 @@ Function @item @emph{Arguments}: @multitable @columnfractions .15 .70 -@item @var{I} @tab The type shall be either @code{INTEGER(*)} or @code{LOGICAL}. -@item @var{J} @tab The type shall be either @code{INTEGER(*)} or @code{LOGICAL}. +@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}. @end multitable @item @emph{Return value}: -The return type is either @code{INTEGER(*)} or @code{LOGICAL} after -cross-promotion of the arguments. +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. @item @emph{Example}: @smallexample @@ -1021,7 +1027,7 @@ END PROGRAM @end smallexample @item @emph{See also}: -F95 elemental function: @ref{IAND} +Fortran 95 elemental function: @ref{IAND} @end table @@ -1038,7 +1044,7 @@ F95 elemental function: @ref{IAND} @code{ANINT(X [, KIND])} rounds its argument to the nearest whole number. @item @emph{Standard}: -F77 and later +Fortran 77 and later @item @emph{Class}: Elemental function @@ -1076,7 +1082,7 @@ end program test_anint @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @item Name @tab Argument @tab Return type @tab Standard -@item @code{DNINT(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab F77 and later +@item @code{DNINT(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab Fortran 77 and later @end multitable @end table @@ -1094,7 +1100,7 @@ end program test_anint @var{MASK} along dimension @var{DIM} are @code{.TRUE.}. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Transformational function @@ -1161,7 +1167,7 @@ end program test_any @code{ASIN(X)} computes the arcsine of its @var{X} (inverse of @code{SIN(X)}). @item @emph{Standard}: -F77 and later +Fortran 77 and later @item @emph{Class}: Elemental function @@ -1191,7 +1197,7 @@ end program test_asin @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @item Name @tab Argument @tab Return type @tab Standard -@item @code{DASIN(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab F77 and later +@item @code{DASIN(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab Fortran 77 and later @end multitable @item @emph{See also}: @@ -1263,7 +1269,7 @@ Inverse function: @ref{SINH} or if @var{PTR} is associated with the target @var{TGT}. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Inquiry function @@ -1339,7 +1345,7 @@ end program test_associated @code{ATAN(X)} computes the arctangent of @var{X}. @item @emph{Standard}: -F77 and later +Fortran 77 and later @item @emph{Class}: Elemental function @@ -1367,7 +1373,7 @@ end program test_atan @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @item Name @tab Argument @tab Return type @tab Standard -@item @code{DATAN(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab F77 and later +@item @code{DATAN(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab Fortran 77 and later @end multitable @item @emph{See also}: @@ -1390,7 +1396,7 @@ Inverse function: @ref{TAN} @math{X + i Y}. @item @emph{Standard}: -F77 and later +Fortran 77 and later @item @emph{Class}: Elemental function @@ -1425,7 +1431,7 @@ end program test_atan2 @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @item Name @tab Argument @tab Return type @tab Standard -@item @code{DATAN2(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab F77 and later +@item @code{DATAN2(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab Fortran 77 and later @end multitable @end table @@ -1786,7 +1792,7 @@ end program test_besyn represented by the type of @var{I}. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Inquiry function @@ -1826,7 +1832,7 @@ end program test_bit_size in @var{I} is set. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Elemental function @@ -2135,7 +2141,7 @@ end subroutine association_test @code{CEILING(X)} returns the least integer greater than or equal to @var{X}. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Elemental function @@ -2181,7 +2187,7 @@ end program test_ceiling @code{CHAR(I [, KIND])} returns the character represented by the integer @var{I}. @item @emph{Standard}: -F77 and later +Fortran 77 and later @item @emph{Class}: Elemental function @@ -2354,7 +2360,7 @@ component. If @var{Y} is not present then the imaginary component is set to 0.0. If @var{X} is complex then @var{Y} must not be present. @item @emph{Standard}: -F77 and later +Fortran 77 and later @item @emph{Class}: Elemental function @@ -2504,7 +2510,7 @@ end program test_complex then the result is @code{(x, -y)} @item @emph{Standard}: -F77 and later, has overloads that are GNU extensions +Fortran 77 and later, has overloads that are GNU extensions @item @emph{Class}: Elemental function @@ -2556,7 +2562,7 @@ end program test_conjg @code{COS(X)} computes the cosine of @var{X}. @item @emph{Standard}: -F77 and later, has overloads that are GNU extensions +Fortran 77 and later, has overloads that are GNU extensions @item @emph{Class}: Elemental function @@ -2586,8 +2592,8 @@ end program test_cos @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @item Name @tab Argument @tab Return type @tab Standard -@item @code{DCOS(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab F77 and later -@item @code{CCOS(X)} @tab @code{COMPLEX(4) X} @tab @code{COMPLEX(4)} @tab F77 and later +@item @code{DCOS(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab Fortran 77 and later +@item @code{CCOS(X)} @tab @code{COMPLEX(4) X} @tab @code{COMPLEX(4)} @tab Fortran 77 and later @item @code{ZCOS(X)} @tab @code{COMPLEX(8) X} @tab @code{COMPLEX(8)} @tab GNU extension @item @code{CDCOS(X)} @tab @code{COMPLEX(8) X} @tab @code{COMPLEX(8)} @tab GNU extension @end multitable @@ -2612,7 +2618,7 @@ Inverse function: @ref{ACOS} @code{COSH(X)} computes the hyperbolic cosine of @var{X}. @item @emph{Standard}: -F77 and later +Fortran 77 and later @item @emph{Class}: Elemental function @@ -2640,7 +2646,7 @@ end program test_cosh @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @item Name @tab Argument @tab Return type @tab Standard -@item @code{DCOSH(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab F77 and later +@item @code{DCOSH(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab Fortran 77 and later @end multitable @item @emph{See also}: @@ -2667,7 +2673,7 @@ omitted it is taken to be @code{1}. @var{DIM} is a scaler of type is the rank of @var{MASK}. @item @emph{Standard}: -F95 and later +Fortran 95 and later, with @var{KIND} argument Fortran 2003 and later @item @emph{Class}: Transformational function @@ -2739,7 +2745,7 @@ this subroutine, as shown in the example below, should be used. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Subroutine @@ -2791,7 +2797,7 @@ sections of @var{ARRAY} along the given dimension are shifted. Elements shifted out one end of each rank one section are shifted back in the other end. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Transformational function @@ -2914,7 +2920,7 @@ Unavailable time and date parameters return blanks. @end multitable @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Subroutine @@ -2966,7 +2972,7 @@ end program test_time_and_date @code{DBLE(X)} Converts @var{X} to double precision real type. @item @emph{Standard}: -F77 and later +Fortran 77 and later @item @emph{Class}: Elemental function @@ -3101,7 +3107,7 @@ representation of @var{X}. For example, on a system using a 32-bit floating point representation, a default real number would likely return 24. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Inquiry function @@ -3145,7 +3151,7 @@ end program test_digits otherwise returns zero. @item @emph{Standard}: -F77 and later +Fortran 77 and later @item @emph{Class}: Elemental function @@ -3177,8 +3183,8 @@ end program test_dim @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @item Name @tab Argument @tab Return type @tab Standard -@item @code{IDIM(X,Y)} @tab @code{INTEGER(4) X,Y} @tab @code{INTEGER(4)} @tab F77 and later -@item @code{DDIM(X,Y)} @tab @code{REAL(8) X,Y} @tab @code{REAL(8)} @tab F77 and later +@item @code{IDIM(X,Y)} @tab @code{INTEGER(4) X,Y} @tab @code{INTEGER(4)} @tab Fortran 77 and later +@item @code{DDIM(X,Y)} @tab @code{REAL(8) X,Y} @tab @code{REAL(8)} @tab Fortran 77 and later @end multitable @end table @@ -3201,7 +3207,7 @@ vectors are @code{COMPLEX(*)}, the result is @code{SUM(CONJG(X)*Y)}. If the vectors are @code{LOGICAL}, the result is @code{ANY(X.AND.Y)}. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Transformational function @@ -3247,7 +3253,7 @@ end program test_dot_prod @code{DPROD(X,Y)} returns the product @code{X*Y}. @item @emph{Standard}: -F77 and later +Fortran 77 and later @item @emph{Class}: Elemental function @@ -3435,7 +3441,7 @@ following are copied in depending on the type of @var{ARRAY}. @end multitable @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Transformational function @@ -3483,7 +3489,7 @@ end program test_eoshift @code{EPSILON(X)} returns a nearly negligible number relative to @code{1}. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Inquiry function @@ -3774,7 +3780,7 @@ end program test_exit @code{EXP(X)} computes the base @math{e} exponential of @var{X}. @item @emph{Standard}: -F77 and later, has overloads that are GNU extensions +Fortran 77 and later, has overloads that are GNU extensions @item @emph{Class}: Elemental function @@ -3802,8 +3808,8 @@ end program test_exp @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @item Name @tab Argument @tab Return type @tab Standard -@item @code{DEXP(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab F77 and later -@item @code{CEXP(X)} @tab @code{COMPLEX(4) X} @tab @code{COMPLEX(4)} @tab F77 and later +@item @code{DEXP(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab Fortran 77 and later +@item @code{CEXP(X)} @tab @code{COMPLEX(4) X} @tab @code{COMPLEX(4)} @tab Fortran 77 and later @item @code{ZEXP(X)} @tab @code{COMPLEX(8) X} @tab @code{COMPLEX(8)} @tab GNU extension @item @code{CDEXP(X)} @tab @code{COMPLEX(8) X} @tab @code{COMPLEX(8)} @tab GNU extension @end multitable @@ -3823,7 +3829,7 @@ end program test_exp is zero the value returned is zero. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Elemental function @@ -3920,7 +3926,7 @@ end program test_fdate @code{FLOAT(I)} converts the integer @var{I} to a default real value. @item @emph{Standard}: -F77 and later +Fortran 77 and later @item @emph{Class}: Elemental function @@ -4082,7 +4088,7 @@ END PROGRAM @code{FLOOR(X)} returns the greatest integer less than or equal to @var{X}. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Elemental function @@ -4315,7 +4321,7 @@ END PROGRAM representation of @code{X}. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Elemental function @@ -5206,7 +5212,7 @@ be obtained, or to a blank string otherwise. the model of the type of @code{X}. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Inquiry function @@ -5286,7 +5292,7 @@ end program test_hypot in the first character position of @code{C}. @item @emph{Standard}: -F95 and later +Fortran 95 and later, with @var{KIND} argument Fortran 2003 and later @item @emph{Class}: Elemental function @@ -5336,7 +5342,7 @@ and formatted string representations. Bitwise logical @code{AND}. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Elemental function @@ -5429,7 +5435,7 @@ Fortran 2003 functions and subroutines: @ref{GET_COMMAND}, @var{POS} set to zero. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Elemental function @@ -5469,7 +5475,7 @@ zeroed. The value of @code{POS+LEN} must be less than or equal to the value @code{BIT_SIZE(I)}. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Elemental function @@ -5505,7 +5511,7 @@ The return value is of type @code{INTEGER(*)} and of the same kind as @var{POS} set to one. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Elemental function @@ -5543,7 +5549,7 @@ The correspondence between characters and their codes is not necessarily the same across different GNU Fortran implementations. @item @emph{Standard}: -F95 and later +Fortan 95 and later, with @var{KIND} argument Fortran 2003 and later @item @emph{Class}: Elemental function @@ -5658,7 +5664,7 @@ end program test_idate @var{J}. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Elemental function @@ -5732,7 +5738,7 @@ the @var{BACK} argument is present and true, the return value is the start of the last occurrence rather than the first. @item @emph{Standard}: -F77 and later +Fortran 77 and later, with @var{KIND} argument Fortran 2003 and later @item @emph{Class}: Elemental function @@ -5775,7 +5781,7 @@ The return value is of type @code{INTEGER} and of kind @var{KIND}. If Convert to integer type @item @emph{Standard}: -F77 and later +Fortran 77 and later @item @emph{Class}: Elemental function @@ -5820,8 +5826,8 @@ end program @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @item Name @tab Argument @tab Return type @tab Standard -@item @code{IFIX(A)} @tab @code{REAL(4) A} @tab @code{INTEGER} @tab F77 and later -@item @code{IDINT(A)} @tab @code{REAL(8) A} @tab @code{INTEGER} @tab F77 and later +@item @code{IFIX(A)} @tab @code{REAL(4) A} @tab @code{INTEGER} @tab Fortran 77 and later +@item @code{IDINT(A)} @tab @code{REAL(8) A} @tab @code{INTEGER} @tab Fortran 77 and later @end multitable @end table @@ -5843,7 +5849,7 @@ standard @code{INT} intrinsic with an optional argument of The @code{SHORT} intrinsic is equivalent to @code{INT2}. @item @emph{Standard}: -GNU extension. +GNU extension @item @emph{Class}: Elemental function @@ -5878,7 +5884,7 @@ standard @code{INT} intrinsic with an optional argument of @code{KIND=8}, and is only included for backwards compatibility. @item @emph{Standard}: -GNU extension. +GNU extension @item @emph{Class}: Elemental function @@ -5913,7 +5919,7 @@ The return value is a @code{INTEGER(8)} variable. @var{J}. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Elemental function @@ -6091,7 +6097,7 @@ END PROGRAM Determine whether a unit is connected to a terminal device. @item @emph{Standard}: -GNU extension. +GNU extension @item @emph{Class}: Function @@ -6139,7 +6145,7 @@ value is undefined. Bits shifted out from the left end or right end are lost; zeros are shifted in from the opposite end. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Elemental function @@ -6180,7 +6186,7 @@ a right shift. The absolute value of @var{SHIFT} must be less than equivalent to @code{BIT_SIZE(I)}. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Elemental function @@ -6341,7 +6347,7 @@ Subroutine, function @code{KIND(X)} returns the kind value of the entity @var{X}. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Inquiry function @@ -6384,7 +6390,7 @@ end program test_kind Returns the lower bounds of an array, or a single lower bound along the @var{DIM} dimension. @item @emph{Standard}: -F95 and later +Fortran 95 and later, with @var{KIND} argument Fortran 2003 and later @item @emph{Class}: Inquiry function @@ -6430,7 +6436,7 @@ the length of an element of @var{STRING} is returned. Note that only the length, not the content, of @var{STRING} is needed. @item @emph{Standard}: -F77 and later +Fortran 77 and later, with @var{KIND} argument Fortran 2003 and later @item @emph{Class}: Inquiry function @@ -6467,7 +6473,7 @@ The return value is of type @code{INTEGER} and of kind @var{KIND}. If Returns the length of a character string, ignoring any trailing blanks. @item @emph{Standard}: -F95 and later +Fortran 95 and later, with @var{KIND} argument Fortran 2003 and later @item @emph{Class}: Elemental function @@ -6570,7 +6576,7 @@ ASCII on some targets), whereas the former always use the ASCII ordering. @item @emph{Standard}: -F77 and later +Fortran 77 and later @item @emph{Class}: Elemental function @@ -6616,7 +6622,7 @@ ASCII on some targets), whereas the former always use the ASCII ordering. @item @emph{Standard}: -F77 and later +Fortran 77 and later @item @emph{Class}: Elemental function @@ -6705,7 +6711,7 @@ ASCII on some targets), whereas the former always use the ASCII ordering. @item @emph{Standard}: -F77 and later +Fortran 77 and later @item @emph{Class}: Elemental function @@ -6751,7 +6757,7 @@ ASCII on some targets), whereas the former always use the ASCII ordering. @item @emph{Standard}: -F77 and later +Fortran 77 and later @item @emph{Class}: Elemental function @@ -6867,7 +6873,7 @@ end program test_loc @code{LOG(X)} computes the logarithm of @var{X}. @item @emph{Standard}: -F77 and later +Fortran 77 and later @item @emph{Class}: Elemental function @@ -6921,7 +6927,7 @@ end program test_log @code{LOG10(X)} computes the base 10 logarithm of @var{X}. @item @emph{Standard}: -F77 and later +Fortran 77 and later @item @emph{Class}: Elemental function @@ -6949,8 +6955,8 @@ end program test_log10 @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 F95 and later -@item @code{DLOG10(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab F95 and later +@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 @end multitable @end table @@ -6966,7 +6972,7 @@ end program test_log10 Converts one kind of @code{LOGICAL} variable to another. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Elemental function @@ -7006,7 +7012,7 @@ intrinsic with an optional argument of @code{KIND=4}, and is only included for backwards compatibility. @item @emph{Standard}: -GNU extension. +GNU extension @item @emph{Class}: Elemental function @@ -7242,7 +7248,7 @@ end program test_malloc Performs a matrix multiplication on numeric or logical arguments. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Transformational function @@ -7291,7 +7297,7 @@ for the @code{*} or @code{.AND.} operators. Returns the argument with the largest (most positive) value. @item @emph{Standard}: -F77 and later +Fortran 77 and later @item @emph{Class}: Elemental function @@ -7316,11 +7322,11 @@ and has the same type and kind as the first argument. @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @item Name @tab Argument @tab Return type @tab Standard -@item @code{MAX0(I)} @tab @code{INTEGER(4) I} @tab @code{INTEGER(4)} @tab F77 and later -@item @code{AMAX0(I)} @tab @code{INTEGER(4) I} @tab @code{REAL(MAX(X))} @tab F77 and later -@item @code{MAX1(X)} @tab @code{REAL(*) X} @tab @code{INT(MAX(X))} @tab F77 and later -@item @code{AMAX1(X)} @tab @code{REAL(4) X} @tab @code{REAL(4)} @tab F77 and later -@item @code{DMAX1(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab F77 and later +@item @code{MAX0(I)} @tab @code{INTEGER(4) I} @tab @code{INTEGER(4)} @tab Fortran 77 and later +@item @code{AMAX0(I)} @tab @code{INTEGER(4) I} @tab @code{REAL(MAX(X))} @tab Fortran 77 and later +@item @code{MAX1(X)} @tab @code{REAL(*) X} @tab @code{INT(MAX(X))} @tab Fortran 77 and later +@item @code{AMAX1(X)} @tab @code{REAL(4) X} @tab @code{REAL(4)} @tab Fortran 77 and later +@item @code{DMAX1(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab Fortran 77 and later @end multitable @item @emph{See also}: @@ -7341,7 +7347,7 @@ and has the same type and kind as the first argument. type of @code{X}. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Inquiry function @@ -7392,7 +7398,7 @@ 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}: -F95 and later +Fortran 95 and later @item @emph{Class}: Transformational function @@ -7449,7 +7455,7 @@ number of the type and kind of @var{ARRAY} if @var{ARRAY} is numeric, or a string of nulls if @var{ARRAY} is of character type. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Transformational function @@ -7576,7 +7582,7 @@ is equal to @var{TSOURCE} if @var{MASK} is @code{.TRUE.}, or equal to @var{FSOURCE} if it is @code{.FALSE.}. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Elemental function @@ -7614,7 +7620,7 @@ The result is of the same type and type parameters as @var{TSOURCE}. Returns the argument with the smallest (most negative) value. @item @emph{Standard}: -F77 and later +Fortran 77 and later @item @emph{Class}: Elemental function @@ -7639,11 +7645,11 @@ and has the same type and kind as the first argument. @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @item Name @tab Argument @tab Return type @tab Standard -@item @code{MIN0(I)} @tab @code{INTEGER(4) I} @tab @code{INTEGER(4)} @tab F77 and later -@item @code{AMIN0(I)} @tab @code{INTEGER(4) I} @tab @code{REAL(MIN(X))} @tab F77 and later -@item @code{MIN1(X)} @tab @code{REAL(*) X} @tab @code{INT(MIN(X))} @tab F77 and later -@item @code{AMIN1(X)} @tab @code{REAL(4) X} @tab @code{REAL(4)} @tab F77 and later -@item @code{DMIN1(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab F77 and later +@item @code{MIN0(I)} @tab @code{INTEGER(4) I} @tab @code{INTEGER(4)} @tab Fortran 77 and later +@item @code{AMIN0(I)} @tab @code{INTEGER(4) I} @tab @code{REAL(MIN(X))} @tab Fortran 77 and later +@item @code{MIN1(X)} @tab @code{REAL(*) X} @tab @code{INT(MIN(X))} @tab Fortran 77 and later +@item @code{AMIN1(X)} @tab @code{REAL(4) X} @tab @code{REAL(4)} @tab Fortran 77 and later +@item @code{DMIN1(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab Fortran 77 and later @end multitable @item @emph{See also}: @@ -7663,7 +7669,7 @@ and has the same type and kind as the first argument. type of @code{X}. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Inquiry function @@ -7706,7 +7712,7 @@ 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}: -F95 and later +Fortran 95 and later @item @emph{Class}: Transformational function @@ -7763,7 +7769,7 @@ considered. If the array has zero size, or all of the elements of @var{ARRAY} is of character type. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Transformational function @@ -7814,7 +7820,7 @@ cases, the result is of the same type and kind as @var{ARRAY}. calculated as @code{A - (INT(A/P) * P)}. @item @emph{Standard}: -F77 and later +Fortran 77 and later @item @emph{Class}: Elemental function @@ -7856,8 +7862,8 @@ end program test_mod @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @item Name @tab Arguments @tab Return type @tab Standard -@item @code{AMOD(A,P)} @tab @code{REAL(4)} @tab @code{REAL(4)} @tab F95 and later -@item @code{DMOD(A,P)} @tab @code{REAL(8)} @tab @code{REAL(8)} @tab F95 and later +@item @code{AMOD(A,P)} @tab @code{REAL(4)} @tab @code{REAL(4)} @tab Fortran 95 and later +@item @code{DMOD(A,P)} @tab @code{REAL(8)} @tab @code{REAL(8)} @tab Fortran 95 and later @end multitable @end table @@ -7874,7 +7880,7 @@ end program test_mod @code{MODULO(A,P)} computes the @var{A} modulo @var{P}. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Elemental function @@ -7980,7 +7986,7 @@ affected by the movement of bits is unchanged. The values of @code{BIT_SIZE(FROM)}. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Elemental subroutine @@ -8016,7 +8022,7 @@ Elemental subroutine to @code{X} in the direction indicated by the sign of @code{S}. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Elemental function @@ -8102,17 +8108,20 @@ end program newline @code{NINT(X)} rounds its argument to the nearest whole number. @item @emph{Standard}: -F77 and later +Fortran 77 and later, with @var{KIND} argument Fortran 90 and later @item @emph{Class}: Elemental function @item @emph{Syntax}: -@code{RESULT = NINT(X)} +@code{RESULT = NINT(X [, KIND])} @item @emph{Arguments}: @multitable @columnfractions .15 .70 @item @var{X} @tab The type of the argument shall be @code{REAL}. +@item @var{KIND} @tab (Optional) An @code{INTEGER} initialization + expression indicating the kind parameter of + the result. @end multitable @item @emph{Return value}: @@ -8134,7 +8143,7 @@ end program test_nint @item @emph{Specific names}: @multitable @columnfractions .25 .25 .25 @item Name @tab Argument @tab Standard -@item @code{IDNINT(X)} @tab @code{REAL(8)} @tab F95 and later +@item @code{IDNINT(X)} @tab @code{REAL(8)} @tab Fortran 95 and later @end multitable @item @emph{See also}: @@ -8156,7 +8165,7 @@ end program test_nint @code{NOT} returns the bitwise boolean inverse of @var{I}. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Elemental function @@ -8197,7 +8206,7 @@ In Fortran 95, @var{MOLD} is optional. Please note that Fortran 2003 includes cases where it is required. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Transformational function @@ -8250,13 +8259,16 @@ Function @item @emph{Arguments}: @multitable @columnfractions .15 .70 -@item @var{X} @tab The type shall be either @code{INTEGER(*)} or @code{LOGICAL}. -@item @var{Y} @tab The type shall be either @code{INTEGER(*)} or @code{LOGICAL}. +@item @var{X} @tab The type shall be either a scalar @code{INTEGER(*)} +type or a scalar @code{LOGICAL} type. +@item @var{Y} @tab The type shall be the same as the type of @var{X}. @end multitable @item @emph{Return value}: -The return type is either @code{INTEGER(*)} or @code{LOGICAL} -after cross-promotion of the arguments. +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. @item @emph{Example}: @smallexample @@ -8271,7 +8283,7 @@ END PROGRAM @end smallexample @item @emph{See also}: -F95 elemental function: @ref{IOR} +Fortran 95 elemental function: @ref{IOR} @end table @@ -8292,7 +8304,7 @@ equals @code{TRUE}. Afterwards, positions are filled with elements taken from @var{VECTOR}. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Transformational function @@ -8386,7 +8398,7 @@ Subroutine type of @code{X}. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Inquiry function @@ -8426,7 +8438,7 @@ end program prec_and_range Determines whether an optional dummy argument is present. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Inquiry function @@ -8474,7 +8486,7 @@ Multiplies the elements of @var{ARRAY} along dimension @var{DIM} if the corresponding element in @var{MASK} is @code{TRUE}. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Transformational function @@ -8529,7 +8541,7 @@ END PROGRAM @code{RADIX(X)} returns the base of the model representing the entity @var{X}. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Inquiry function @@ -8663,7 +8675,7 @@ OpenMP-enabled application heavily relies on random numbers, one should consider employing a dedicated parallel random number generator instead. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Subroutine @@ -8707,7 +8719,7 @@ a default state. The example below shows how to initialize the random seed based on the system's time. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Subroutine @@ -8765,7 +8777,7 @@ END SUBROUTINE type of @code{X}. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Inquiry function @@ -8802,7 +8814,7 @@ See @code{PRECISION} for an example. and its use is strongly discouraged. @item @emph{Standard}: -F77 and later +Fortran 77 and later @item @emph{Class}: Elemental function @@ -8908,7 +8920,7 @@ Subroutine, function Concatenates @var{NCOPIES} copies of a string. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Transformational function @@ -8949,7 +8961,7 @@ the new array may be padded with elements from @var{PAD} or permuted as defined by @var{ORDER}. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Transformational function @@ -9003,7 +9015,7 @@ END PROGRAM model numbers near @var{X}. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Elemental function @@ -9080,7 +9092,7 @@ The return value is of type @code{INTEGER(*)} and of the same kind as @code{SCALE(X,I)} returns @code{X * RADIX(X)**I}. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Elemental function @@ -9128,7 +9140,7 @@ is returned. If no character of @var{SET} is found in @var{STRING}, the result is zero. @item @emph{Standard}: -F95 and later +Fortran 95 and later, with @var{KIND} argument Fortran 2003 and later @item @emph{Class}: Elemental function @@ -9313,7 +9325,7 @@ to @math{10^I} (exclusive). If there is no integer kind that accommodates this range, @code{SELECTED_INT_KIND} returns @math{-1}. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Transformational function @@ -9358,7 +9370,7 @@ with decimal precision greater of at least @code{P} digits and exponent range greater at least @code{R}. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Transformational function @@ -9420,7 +9432,7 @@ end program real_kinds is that that of @var{X} and whose exponent part is @var{I}. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Elemental function @@ -9463,7 +9475,7 @@ END PROGRAM Determines the shape of an array. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Inquiry function @@ -9511,7 +9523,7 @@ END PROGRAM @code{SIGN(A,B)} returns the value of @var{A} with the sign of @var{B}. @item @emph{Standard}: -F77 and later +Fortran 77 and later @item @emph{Class}: Elemental function @@ -9625,7 +9637,7 @@ end program test_signal @code{SIN(X)} computes the sine of @var{X}. @item @emph{Standard}: -F77 and later +Fortran 77 and later @item @emph{Class}: Elemental function @@ -9678,7 +9690,7 @@ end program test_sin @code{SINH(X)} computes the hyperbolic sine of @var{X}. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Elemental function @@ -9705,7 +9717,7 @@ end program test_sinh @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @item Name @tab Argument @tab Return type @tab Standard -@item @code{DSINH(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab F95 and later +@item @code{DSINH(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab Fortran 95 and later @end multitable @item @emph{See also}: @@ -9727,7 +9739,7 @@ Determine the extent of @var{ARRAY} along a specified dimension @var{DIM}, or the total number of elements in @var{ARRAY} if @var{DIM} is absent. @item @emph{Standard}: -F95 and later +Fortran 95 and later, with @var{KIND} argument Fortran 2003 and later @item @emph{Class}: Inquiry function @@ -9853,7 +9865,7 @@ to a default real value. This is an archaic form of @code{REAL} that is specific to one type for @var{A}. @item @emph{Standard}: -F77 and later +Fortran 77 and later @item @emph{Class}: Elemental function @@ -9887,7 +9899,7 @@ Determines the distance between the argument @var{X} and the nearest adjacent number of the same type. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Elemental function @@ -9933,7 +9945,7 @@ Replicates a @var{SOURCE} array @var{NCOPIES} times along a specified dimension @var{DIM}. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Transformational function @@ -9984,7 +9996,7 @@ END PROGRAM @code{SQRT(X)} computes the square root of @var{X}. @item @emph{Standard}: -F77 and later +Fortran 77 and later @item @emph{Class}: Elemental function @@ -10015,8 +10027,8 @@ end program test_sqrt @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @item Name @tab Argument @tab Return type @tab Standard -@item @code{DSQRT(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab F95 and later -@item @code{CSQRT(X)} @tab @code{COMPLEX(4) X} @tab @code{COMPLEX(4)} @tab F95 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{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 @@ -10169,7 +10181,7 @@ Adds the elements of @var{ARRAY} along dimension @var{DIM} if the corresponding element in @var{MASK} is @code{TRUE}. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Transformational function @@ -10314,7 +10326,7 @@ If there is no clock, @var{COUNT} is set to @code{-HUGE(COUNT)}, and @var{COUNT_RATE} and @var{COUNT_MAX} are set to zero @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Subroutine @@ -10360,7 +10372,7 @@ END PROGRAM @code{TAN(X)} computes the tangent of @var{X}. @item @emph{Standard}: -F77 and later +Fortran 77 and later @item @emph{Class}: Elemental function @@ -10388,7 +10400,7 @@ end program test_tan @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @item Name @tab Argument @tab Return type @tab Standard -@item @code{DTAN(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab F95 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}: @@ -10410,7 +10422,7 @@ end program test_tan @code{TANH(X)} computes the hyperbolic tangent of @var{X}. @item @emph{Standard}: -F77 and later +Fortran 77 and later @item @emph{Class}: Elemental function @@ -10438,7 +10450,7 @@ end program test_tanh @item @emph{Specific names}: @multitable @columnfractions .20 .20 .20 .25 @item Name @tab Argument @tab Return type @tab Standard -@item @code{DTANH(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab F95 and later +@item @code{DTANH(X)} @tab @code{REAL(8) X} @tab @code{REAL(8)} @tab Fortran 95 and later @end multitable @item @emph{See also}: @@ -10539,7 +10551,7 @@ The return value is a scalar of type @code{INTEGER(8)}. in the model of the type of @code{X}. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Inquiry function @@ -10577,7 +10589,7 @@ This is approximately equivalent to the C concept of @emph{casting} one type to another. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Transformational function @@ -10637,7 +10649,7 @@ Transpose an array of rank two. Element (i, j) of the result has the value @code{MATRIX(j, i)}, for all i, j. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Transformational function @@ -10667,7 +10679,7 @@ The result has the same type as @var{MATRIX}, and has shape Removes trailing blank characters of a string. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Transformational function @@ -10755,7 +10767,7 @@ END PROGRAM Returns the upper bounds of an array, or a single upper bound along the @var{DIM} dimension. @item @emph{Standard}: -F95 and later +Fortran 95 and later, with @var{KIND} argument Fortran 2003 and later @item @emph{Class}: Inquiry function @@ -10871,7 +10883,7 @@ Subroutine, function Store the elements of @var{VECTOR} in an array of higher rank. @item @emph{Standard}: -F95 and later +Fortran 95 and later @item @emph{Class}: Transformational function @@ -10926,7 +10938,7 @@ is returned. If all characters of @var{SET} are found in @var{STRING}, the result is zero. @item @emph{Standard}: -F95 and later +Fortran 95 and later, with @var{KIND} argument Fortran 2003 and later @item @emph{Class}: Elemental function @@ -10990,13 +11002,16 @@ Function @item @emph{Arguments}: @multitable @columnfractions .15 .70 -@item @var{X} @tab The type shall be either @code{INTEGER(*)} or @code{LOGICAL}. -@item @var{Y} @tab The type shall be either @code{INTEGER(*)} or @code{LOGICAL}. +@item @var{X} @tab The type shall be either a scalar @code{INTEGER(*)} +type or a scalar @code{LOGICAL} type. +@item @var{Y} @tab The type shall be the same as the type of @var{I}. @end multitable @item @emph{Return value}: -The return type is either @code{INTEGER(*)} or @code{LOGICAL} -after cross-promotion of the arguments. +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. @item @emph{Example}: @smallexample @@ -11011,7 +11026,7 @@ END PROGRAM @end smallexample @item @emph{See also}: -F95 elemental function: @ref{IEOR} +Fortran 95 elemental function: @ref{IEOR} @end table @@ -11064,7 +11079,7 @@ Identifies the preconnected unit identified by the asterisk @section @code{ISO_C_BINDING} @table @asis @item @emph{Standard}: -Fortran 2003 and later +Fortran 2003 and later, GNU extensions @end table The following intrinsic procedures are provided by the module; their @@ -11086,8 +11101,13 @@ parameters (marked by an asterisk (@code{*}) in the list below). The @code{C_INT_FAST...} parameters have therefore the value @math{-2} and cannot be used as KIND type parameter of the @code{INTEGER} type. -@multitable @columnfractions .15 .35 .35 -@item Fortran Type @tab Named constant @tab C type +In addition to the integer named constants required by the Fortran 2003 +standard, GNU Fortran provides as an extension named constants for the +128-bit integer types supported by the C compiler: @code{C_INT128_T, +C_INT_LEAST128_T, C_INT_FAST128_T}. + +@multitable @columnfractions .15 .35 .35 .35 +@item Fortran Type @tab Named constant @tab C type @tab Extension @item @code{INTEGER}@tab @code{C_INT} @tab @code{int} @item @code{INTEGER}@tab @code{C_SHORT} @tab @code{short int} @item @code{INTEGER}@tab @code{C_LONG} @tab @code{long int} @@ -11098,14 +11118,17 @@ and cannot be used as KIND type parameter of the @code{INTEGER} type. @item @code{INTEGER}@tab @code{C_INT16_T} @tab @code{int16_t} @item @code{INTEGER}@tab @code{C_INT32_T} @tab @code{int32_t} @item @code{INTEGER}@tab @code{C_INT64_T} @tab @code{int64_t} +@item @code{INTEGER}@tab @code{C_INT128_T} @tab @code{int128_t} @tab Ext. @item @code{INTEGER}@tab @code{C_INT_LEAST8_T} @tab @code{int_least8_t} @item @code{INTEGER}@tab @code{C_INT_LEAST16_T} @tab @code{int_least16_t} @item @code{INTEGER}@tab @code{C_INT_LEAST32_T} @tab @code{int_least32_t} @item @code{INTEGER}@tab @code{C_INT_LEAST64_T} @tab @code{int_least64_t} +@item @code{INTEGER}@tab @code{C_INT_LEAST128_T} @tab @code{int_least128_t} @tab Ext. @item @code{INTEGER}@tab @code{C_INT_FAST8_T}* @tab @code{int_fast8_t} @item @code{INTEGER}@tab @code{C_INT_FAST16_T}* @tab @code{int_fast16_t} @item @code{INTEGER}@tab @code{C_INT_FAST32_T}* @tab @code{int_fast32_t} @item @code{INTEGER}@tab @code{C_INT_FAST64_T}* @tab @code{int_fast64_t} +@item @code{INTEGER}@tab @code{C_INT_FAST128_T}* @tab @code{int_fast128_t} @tab Ext. @item @code{INTEGER}@tab @code{C_INTMAX_T} @tab @code{intmax_t} @item @code{INTEGER}@tab @code{C_INTPTR_T} @tab @code{intptr_t} @item @code{REAL} @tab @code{C_FLOAT} @tab @code{float} |