OSDN Git Service

* intrinsic.texi: Edited all "Syntax" examples to a consistent form.
[pf3gnuchains/gcc-fork.git] / gcc / fortran / intrinsic.texi
index 077fa87..90f15c9 100644 (file)
@@ -238,6 +238,7 @@ Some intrinsics have documentation yet to be completed as indicated by 'document
 * @code{TAN}:           TAN,       Tangent function
 * @code{TANH}:          TANH,      Hyperbolic tangent function
 * @code{TIME}:          TIME,      Time function
+* @code{TIME8}:         TIME8,     Time function (64-bit)
 * @code{TINY}:          TINY,      Smallest positive number of a real kind
 * @code{TRANSFER}:      TRANSFER,  Transfer bit patterns
 * @code{TRANSPOSE}:     TRANSPOSE, Transpose an array of rank two
@@ -245,7 +246,6 @@ Some intrinsics have documentation yet to be completed as indicated by 'document
 * @code{UBOUND}:        UBOUND,    Upper dimension bounds of an array
 * @code{UMASK}:         UMASK,     Set the file creation mask
 * @code{UNLINK}:        UNLINK,    Remove a file from the file system
-* @code{UNMASK}:        UNMASK,    (?)
 * @code{UNPACK}:        UNPACK,    Unpack an array of rank one into an array
 * @code{VERIFY}:        VERIFY,    Scan a string for the absence of a set of characters
 * @code{XOR}:           XOR,       Bitwise logical exclusive or
@@ -350,7 +350,7 @@ F77 and later, has overloads that are GNU extensions
 Elemental function
 
 @item @emph{Syntax}:
-@code{X = ABS(X)}
+@code{RESULT = ABS(X)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -406,7 +406,7 @@ GNU extension
 Inquiry function
 
 @item @emph{Syntax}:
-@code{I = ACCESS(NAME, MODE)}
+@code{RESULT = ACCESS(NAME, MODE)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -461,7 +461,7 @@ F77 and later
 Elemental function
 
 @item @emph{Syntax}:
-@code{C = ACHAR(I)}
+@code{RESULT = ACHAR(I)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -500,7 +500,7 @@ F77 and later
 Elemental function
 
 @item @emph{Syntax}:
-@code{X = ACOS(X)}
+@code{RESULT = ACOS(X)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -550,7 +550,7 @@ GNU extension
 Elemental function
 
 @item @emph{Syntax}:
-@code{X = ACOSH(X)}
+@code{RESULT = ACOSH(X)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -593,7 +593,7 @@ F95 and later
 Elemental function
 
 @item @emph{Syntax}:
-@code{STR = ADJUSTL(STR)}
+@code{RESULT = ADJUSTL(STR)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -634,7 +634,7 @@ F95 and later
 Elemental function
 
 @item @emph{Syntax}:
-@code{STR = ADJUSTR(STR)}
+@code{RESULT = ADJUSTR(STR)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -680,7 +680,7 @@ F77 and later, has overloads that are GNU extensions
 Elemental function
 
 @item @emph{Syntax}:
-@code{X = AIMAG(Z)}
+@code{RESULT = AIMAG(Z)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -730,13 +730,14 @@ F77 and later
 Elemental function
 
 @item @emph{Syntax}:
-@code{X = AINT(X [, KIND])} 
+@code{RESULT = AINT(X [, KIND])} 
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
 @item @var{X}    @tab The type of the argument shall be @code{REAL(*)}.
-@item @var{KIND} @tab (Optional) @var{KIND} shall be a scalar integer
-initialization expression.
+@item @var{KIND} @tab (Optional) An @code{INTEGER(*)} initialization
+                      expression indicating the kind parameter of
+                     the result.
 @end multitable
 
 @item @emph{Return value}:
@@ -835,7 +836,7 @@ F95 and later
 transformational function
 
 @item @emph{Syntax}:
-@code{L = ALL(MASK [, DIM])}
+@code{RESULT = ALL(MASK [, DIM])}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -900,7 +901,7 @@ F95 and later
 Inquiry function
 
 @item @emph{Syntax}:
-@code{L = ALLOCATED(X)}
+@code{RESULT = ALLOCATED(X)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -990,14 +991,14 @@ F77 and later
 Elemental function
 
 @item @emph{Syntax}:
-@code{X = ANINT(X)}
-@code{X = ANINT(X, KIND)}
+@code{RESULT = ANINT(X [, KIND])}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
 @item @var{X}    @tab The type of the argument shall be @code{REAL(*)}.
-@item @var{KIND} @tab (Optional) @var{KIND} shall be a scalar integer
-initialization expression.
+@item @var{KIND} @tab (Optional) An @code{INTEGER(*)} initialization
+                      expression indicating the kind parameter of
+                     the result.
 @end multitable
 
 @item @emph{Return value}:
@@ -1045,8 +1046,7 @@ F95 and later
 transformational function
 
 @item @emph{Syntax}:
-@code{L = ANY(MASK)} 
-@code{L = ANY(MASK, DIM)}
+@code{RESULT = ANY(MASK [, DIM])}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -1112,7 +1112,7 @@ F77 and later
 Elemental function
 
 @item @emph{Syntax}:
-@code{X = ASIN(X)}
+@code{RESULT = ASIN(X)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -1162,7 +1162,7 @@ GNU extension
 Elemental function
 
 @item @emph{Syntax}:
-@code{X = ASINH(X)}
+@code{RESULT = ASINH(X)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -1204,8 +1204,7 @@ F95 and later
 Inquiry function
 
 @item @emph{Syntax}:
-@code{L = ASSOCIATED(PTR)} 
-@code{L = ASSOCIATED(PTR [, TGT])}
+@code{RESULT = ASSOCIATED(PTR [, TGT])}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -1280,7 +1279,7 @@ F77 and later
 Elemental function
 
 @item @emph{Syntax}:
-@code{X = ATAN(X)}
+@code{RESULT = ATAN(X)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -1329,7 +1328,7 @@ F77 and later
 Elemental function
 
 @item @emph{Syntax}:
-@code{X = ATAN2(Y,X)}
+@code{RESULT = ATAN2(Y,X)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -1381,7 +1380,7 @@ GNU extension
 Elemental function
 
 @item @emph{Syntax}:
-@code{X = ATANH(X)}
+@code{RESULT = ATANH(X)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -1426,7 +1425,7 @@ GNU extension
 Elemental function
 
 @item @emph{Syntax}:
-@code{X = BESJ0(X)}
+@code{RESULT = BESJ0(X)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -1472,7 +1471,7 @@ GNU extension
 Elemental function
 
 @item @emph{Syntax}:
-@code{X = BESJ1(X)}
+@code{RESULT = BESJ1(X)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -1518,7 +1517,7 @@ GNU extension
 Elemental function
 
 @item @emph{Syntax}:
-@code{Y = BESJN(N, X)}
+@code{RESULT = BESJN(N, X)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -1565,7 +1564,7 @@ GNU extension
 Elemental function
 
 @item @emph{Syntax}:
-@code{X = BESY0(X)}
+@code{RESULT = BESY0(X)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -1610,7 +1609,7 @@ GNU extension
 Elemental function
 
 @item @emph{Syntax}:
-@code{X = BESY1(X)}
+@code{RESULT = BESY1(X)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -1655,7 +1654,7 @@ GNU extension
 Elemental function
 
 @item @emph{Syntax}:
-@code{Y = BESYN(N, X)}
+@code{RESULT = BESYN(N, X)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -1702,7 +1701,7 @@ F95 and later
 Inquiry function
 
 @item @emph{Syntax}:
-@code{I = BIT_SIZE(I)}
+@code{RESULT = BIT_SIZE(I)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -1742,7 +1741,7 @@ F95 and later
 Elemental function
 
 @item @emph{Syntax}:
-@code{I = BTEST(I,POS)}
+@code{RESULT = BTEST(I, POS)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -1785,12 +1784,14 @@ F95 and later
 Elemental function
 
 @item @emph{Syntax}:
-@code{I = CEILING(X[,KIND])}
+@code{RESULT = CEILING(X [, KIND])}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
 @item @var{X} @tab The type shall be @code{REAL(*)}.
-@item @var{KIND} @tab (Optional) scalar integer initialization expression.
+@item @var{KIND} @tab (Optional) An @code{INTEGER(*)} initialization
+                      expression indicating the kind parameter of
+                     the result.
 @end multitable
 
 @item @emph{Return value}:
@@ -1820,7 +1821,7 @@ end program test_ceiling
 
 @table @asis
 @item @emph{Description}:
-@code{CHAR(I,[KIND])} returns the character represented by the integer @var{I}.
+@code{CHAR(I [, KIND])} returns the character represented by the integer @var{I}.
 
 @item @emph{Standard}:
 F77 and later
@@ -1829,12 +1830,14 @@ F77 and later
 Elemental function
 
 @item @emph{Syntax}:
-@code{C = CHAR(I[,KIND])}
+@code{RESULT = CHAR(I [, KIND])}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
 @item @var{I} @tab The type shall be @code{INTEGER(*)}.
-@item @var{KIND} @tab Optional scaler integer initialization expression.
+@item @var{KIND} @tab (Optional) An @code{INTEGER(*)} initialization
+                      expression indicating the kind parameter of
+                     the result.
 @end multitable
 
 @item @emph{Return value}:
@@ -1872,7 +1875,7 @@ GNU extension
 Non-elemental subroutine
 
 @item @emph{Syntax}:
-@code{CALL chdir(PATH[,STATUS])}
+@code{CALL CHDIR(PATH [, STATUS])}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -1976,7 +1979,7 @@ end program chmod_test
 
 @table @asis
 @item @emph{Description}:
-@code{CMPLX(X[,Y[,KIND]])} returns a complex number where @var{X} is converted to
+@code{CMPLX(X [, Y [, KIND]])} returns a complex number where @var{X} is converted to
 the real component.  If @var{Y} is present it is converted to the imaginary
 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.
@@ -1988,16 +1991,18 @@ F77 and later
 Elemental function
 
 @item @emph{Syntax}:
-@code{C = CMPLX(X[,Y[,KIND]])}
+@code{RESULT = CMPLX(X [, Y [, KIND]])}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
 @item @var{X} @tab The type may be @code{INTEGER(*)}, @code{REAL(*)},
                    or @code{COMPLEX(*)}.
-@item @var{Y} @tab Optional, allowed if @var{X} is not
-                   @code{COMPLEX(*)}.  May be @code{INTEGER(*)}
-                  or @code{REAL(*)}. 
-@item @var{KIND} @tab Optional scaler integer initialization expression.
+@item @var{Y} @tab (Optional; only allowed if @var{X} is not
+                   @code{COMPLEX(*)}.)  May be @code{INTEGER(*)}
+                  or @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}:
@@ -2034,7 +2039,7 @@ F2003
 Inquiry function
 
 @item @emph{Syntax}:
-@code{I = COMMAND_ARGUMENT_COUNT()}
+@code{RESULT = COMMAND_ARGUMENT_COUNT()}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -2124,7 +2129,7 @@ F77 and later, has overloads that are GNU extensions
 Elemental function
 
 @item @emph{Syntax}:
-@code{X = COS(X)}
+@code{RESULT = COS(X)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -2217,7 +2222,7 @@ Inverse function: @ref{ACOSH}
 
 @table @asis
 @item @emph{Description}:
-@code{COUNT(MASK[,DIM])} counts the number of @code{.TRUE.} elements of
+@code{COUNT(MASK [, DIM])} counts the number of @code{.TRUE.} elements of
 @var{MASK} along the dimension of @var{DIM}.  If @var{DIM} is omitted it is
 taken to be @code{1}.  @var{DIM} is a scaler of type @code{INTEGER} in the
 range of @math{1 /leq DIM /leq n)} where @math{n} is the rank of @var{MASK}.
@@ -2229,7 +2234,7 @@ F95 and later
 transformational function
 
 @item @emph{Syntax}:
-@code{I = COUNT(MASK[,DIM])}
+@code{RESULT = COUNT(MASK [, DIM])}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -2287,7 +2292,7 @@ F95 and later
 Subroutine
 
 @item @emph{Syntax}:
-@code{CPU_TIME(X)}
+@code{CALL CPU_TIME(X)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -2318,7 +2323,7 @@ end program test_cpu_time
 
 @table @asis
 @item @emph{Description}:
-@code{CSHIFT(ARRAY, SHIFT[,DIM])} performs a circular shift on elements of
+@code{CSHIFT(ARRAY, SHIFT [, DIM])} performs a circular shift on elements of
 @var{ARRAY} along the dimension of @var{DIM}.  If @var{DIM} is omitted it is
 taken to be @code{1}.  @var{DIM} is a scaler of type @code{INTEGER} in the
 range of @math{1 /leq DIM /leq n)} where @math{n} is the rank of @var{ARRAY}.
@@ -2334,7 +2339,7 @@ F95 and later
 transformational function
 
 @item @emph{Syntax}:
-@code{A = CSHIFT(A, SHIFT[,DIM])}
+@code{RESULT = CSHIFT(A, SHIFT [, DIM])}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -2415,8 +2420,14 @@ program test_ctime
     print *, 'Program was started on ', date
 end program test_ctime
 @end smallexample
+
+@item @emph{See Also}:
+@ref{GMTIME}, @ref{LTIME}, @ref{TIME}, @ref{TIME8}
+
 @end table
 
+
+
 @node DATE_AND_TIME
 @section @code{DATE_AND_TIME} --- Date and time subroutine
 @cindex @code{DATE_AND_TIME} intrinsic
@@ -2503,7 +2514,7 @@ F77 and later
 Elemental function
 
 @item @emph{Syntax}:
-@code{X = DBLE(X)}
+@code{RESULT = DBLE(X)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -2549,14 +2560,13 @@ GNU extension
 Elemental function
 
 @item @emph{Syntax}:
-@code{C = DCMPLX(X)}
-@code{C = DCMPLX(X,Y)}
+@code{RESULT = DCMPLX(X [, Y])}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
 @item @var{X} @tab The type may be @code{INTEGER(*)}, @code{REAL(*)},
                    or @code{COMPLEX(*)}.
-@item @var{Y} @tab Optional if @var{X} is not @code{COMPLEX(*)}. May be
+@item @var{Y} @tab (Optional if @var{X} is not @code{COMPLEX(*)}.) May be
                    @code{INTEGER(*)} or @code{REAL(*)}. 
 @end multitable
 
@@ -2596,7 +2606,7 @@ GNU extension
 Elemental function
 
 @item @emph{Syntax}:
-@code{X = DFLOAT(X)}
+@code{RESULT = DFLOAT(X)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -2638,7 +2648,7 @@ F95 and later
 Inquiry function
 
 @item @emph{Syntax}:
-@code{C = DIGITS(X)}
+@code{RESULT = DIGITS(X)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -2682,7 +2692,7 @@ F77 and later
 Elemental function
 
 @item @emph{Syntax}:
-@code{X = DIM(X,Y)}
+@code{RESULT = DIM(X, Y)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -2736,7 +2746,7 @@ F95 and later
 transformational function
 
 @item @emph{Syntax}:
-@code{S = DOT_PRODUCT(X,Y)}
+@code{RESULT = DOT_PRODUCT(X, Y)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -2782,7 +2792,7 @@ F77 and later
 Elemental function
 
 @item @emph{Syntax}:
-@code{D = DPROD(X,Y)}
+@code{RESULT = DPROD(X, Y)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -2824,7 +2834,7 @@ GNU extension
 Elemental function
 
 @item @emph{Syntax}:
-@code{D = DREAL(Z)}
+@code{RESULT = DREAL(Z)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -2960,7 +2970,7 @@ F95 and later
 transformational function
 
 @item @emph{Syntax}:
-@code{A = EOSHIFT(A, SHIFT[,BOUNDARY, DIM])}
+@code{RESULT = EOSHIFT(A, SHIFT [, BOUNDARY, DIM])}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -3008,7 +3018,7 @@ F95 and later
 Inquiry function
 
 @item @emph{Syntax}:
-@code{C = EPSILON(X)}
+@code{RESULT = EPSILON(X)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -3047,7 +3057,7 @@ GNU Extension
 Elemental function
 
 @item @emph{Syntax}:
-@code{X = ERF(X)}
+@code{RESULT = ERF(X)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -3091,7 +3101,7 @@ GNU extension
 Elemental function
 
 @item @emph{Syntax}:
-@code{X = ERFC(X)}
+@code{RESULT = ERFC(X)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -3258,7 +3268,7 @@ F77 and later, has overloads that are GNU extensions
 Elemental function
 
 @item @emph{Syntax}:
-@code{X = EXP(X)}
+@code{RESULT = EXP(X)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -3306,7 +3316,7 @@ F95 and later
 Elemental function
 
 @item @emph{Syntax}:
-@code{I = EXPONENT(X)}
+@code{RESULT = EXPONENT(X)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -3401,7 +3411,7 @@ GNU extension
 Elemental function
 
 @item @emph{Syntax}:
-@code{X = FLOAT(I)}
+@code{RESULT = FLOAT(I)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -3409,7 +3419,7 @@ Elemental function
 @end multitable
 
 @item @emph{Return value}:
-The return value is of type default @code{REAL}
+The return value is of type default @code{REAL}.
 
 @item @emph{Example}:
 @smallexample
@@ -3449,13 +3459,14 @@ GNU extension
 Non-elemental subroutine
 
 @item @emph{Syntax}:
-@code{CALL FGET(C[,STATUS])}
+@code{CALL FGET(C [, STATUS])}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
 @item @var{C}      @tab The type shall be @code{CHARACTER}.
-@item @var{STATUS} @tab (Optional) status flag of type @code{INTEGER}. Returns 0 on success,
-                        -1 on end-of-file and a system specific positive error code otherwise.
+@item @var{STATUS} @tab (Optional) status flag of type @code{INTEGER}.
+                        Returns 0 on success, -1 on end-of-file, and a
+                        system specific positive error code otherwise.
 @end multitable
 
 @item @emph{Example}:
@@ -3504,7 +3515,7 @@ GNU extension
 Non-elemental subroutine
 
 @item @emph{Syntax}:
-@code{CALL FGETC(UNIT,C[,STATUS])}
+@code{CALL FGETC(UNIT, C [, STATUS])}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -3552,12 +3563,14 @@ F95 and later
 Elemental function
 
 @item @emph{Syntax}:
-@code{I = FLOOR(X[,KIND])}
+@code{RESULT = FLOOR(X [, KIND])}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
 @item @var{X} @tab The type shall be @code{REAL(*)}.
-@item @var{KIND} @tab Optional scaler integer initialization expression.
+@item @var{KIND} @tab (Optional) An @code{INTEGER(*)} initialization
+                      expression indicating the kind parameter of
+                     the result.
 @end multitable
 
 @item @emph{Return value}:
@@ -3629,7 +3642,7 @@ GNU extension
 non-elemental function
 
 @item @emph{Syntax}:
-@code{I = FNUM(UNIT)}
+@code{RESULT = FNUM(UNIT)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -3677,7 +3690,7 @@ GNU extension
 Non-elemental subroutine
 
 @item @emph{Syntax}:
-@code{CALL FPUT(C[,STATUS])}
+@code{CALL FPUT(C [, STATUS])}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -3727,7 +3740,7 @@ GNU extension
 Non-elemental subroutine
 
 @item @emph{Syntax}:
-@code{CALL FPUTC(UNIT,C[,STATUS])}
+@code{CALL FPUTC(UNIT, C [, STATUS])}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -3859,7 +3872,7 @@ GNU extension
 Non-elemental subroutine
 
 @item @emph{Syntax}:
-@code{CALL fstat(UNIT,BUFF[,STATUS])}
+@code{CALL FSTAT(UNIT, BUFF [, STATUS])}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -3977,7 +3990,7 @@ GNU extension
 Subroutine
 
 @item @emph{Syntax}:
-@code{CALL GETARG(N,ARG)}
+@code{CALL GETARG(N, ARG)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -4074,7 +4087,7 @@ F2003
 Subroutine
 
 @item @emph{Syntax}:
-@code{CALL GET_COMMAND_ARGUMENT(N,ARG)}
+@code{CALL GET_COMMAND_ARGUMENT(N, ARG)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -4129,7 +4142,7 @@ GNU extension
 Non-elemental subroutine.
 
 @item @emph{Syntax}:
-@code{CALL GETCWD(CWD[,STATUS])}
+@code{CALL GETCWD(CWD [, STATUS])}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -4174,7 +4187,7 @@ GNU extension
 Subroutine
 
 @item @emph{Syntax}:
-@code{CALL GETENV(ENVVAR,VALUE)}
+@code{CALL GETENV(ENVVAR, VALUE)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -4218,7 +4231,7 @@ F2003
 Subroutine
 
 @item @emph{Syntax}:
-@code{CALL GET_ENVIRONMENT_VARIABLE(ENVVAR,VALUE)}
+@code{CALL GET_ENVIRONMENT_VARIABLE(ENVVAR, VALUE)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -4259,7 +4272,7 @@ GNU extension
 function
 
 @item @emph{Syntax}:
-@code{I = GETGID()}
+@code{RESULT = GETGID()}
 
 @item @emph{Return value}:
 The return value of @code{GETGID} is an @code{INTEGER} of the default
@@ -4333,7 +4346,7 @@ GNU extension
 function
 
 @item @emph{Syntax}:
-@code{I = GETPID()}
+@code{RESULT = GETPID()}
 
 @item @emph{Return value}:
 The return value of @code{GETPID} is an @code{INTEGER} of the default
@@ -4371,7 +4384,7 @@ GNU extension
 function
 
 @item @emph{Syntax}:
-@code{GETUID()}
+@code{RESULT = GETUID()}
 
 @item @emph{Return value}:
 The return value of @code{GETUID} is an @code{INTEGER} of the default
@@ -4392,10 +4405,12 @@ See @code{GETPID} for an example.
 @cindex @code{GMTIME} intrinsic
 @cindex time, conversion function
 
-Not yet implemented in GNU Fortran.
-
 @table @asis
 @item @emph{Description}:
+Given a system time value @var{STIME} (as provided by the @code{TIME8()}
+intrinsic), fills @var{TARRAY} with values extracted from it appropriate
+to the UTC time zone (Universal Coordinated Time, also known in some
+countries as GMT, Greenwich Mean Time), using @code{gmtime(3)}.
 
 @item @emph{Standard}:
 GNU extension
@@ -4404,11 +4419,36 @@ GNU extension
 Subroutine
 
 @item @emph{Syntax}:
+@code{CALL GMTIME(STIME, TARRAY)}
+
 @item @emph{Arguments}:
+@multitable @columnfractions .15 .80
+@item @var{STIME}  @tab An @code{INTEGER(*)} scalar expression
+                        corresponding to a system time, with 
+                       @code{INTENT(IN)}.
+@item @var{TARRAY} @tab A default @code{INTEGER} array with 9 elements,
+                        with @code{INTENT(OUT)}.
+@end multitable
+
 @item @emph{Return value}:
-@item @emph{Example}:
-@item @emph{Specific names}:
+The elements of @var{TARRAY} are assigned as follows:
+@enumerate
+@item Seconds after the minute, range 0--59 or 0--61 to allow for leap
+      seconds
+@item Minutes after the hour, range 0--59
+@item Hours past midnight, range 0--23
+@item Day of month, range 0--31
+@item Number of months since January, range 0--12
+@item Years since 1900
+@item Number of days since Sunday, range 0--6
+@item Days since January 1
+@item Daylight savings indicator: positive if daylight savings is in
+      effect, zero if not, and negative if the information is not
+      available.
+@end enumerate
+
 @item @emph{See also}:
+@ref{CTIME}, @ref{LTIME}, @ref{TIME}, @ref{TIME8}
 
 @end table
 
@@ -4470,7 +4510,7 @@ F95 and later
 Elemental function
 
 @item @emph{Syntax}:
-@code{Y = HUGE(X)}
+@code{RESULT = HUGE(X)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -4509,7 +4549,7 @@ F95 and later
 Elemental function
 
 @item @emph{Syntax}:
-@code{I = IACHAR(C)}
+@code{RESULT = IACHAR(C)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -4575,7 +4615,8 @@ END PROGRAM
 @end smallexample
 
 @item @emph{See also}:
-@ref{IOR}, @ref{IEOR}, @ref{IBITS}, @ref{IBSET}, @ref{IBCLR},
+@ref{IOR}, @ref{IEOR}, @ref{IBITS}, @ref{IBSET}, @ref{IBCLR}, @ref{NOT}
+
 @end table
 
 
@@ -4602,7 +4643,7 @@ GNU extension
 Non-elemental Function
 
 @item @emph{Syntax}:
-@code{I = IARGC()}
+@code{RESULT = IARGC()}
 
 @item @emph{Arguments}:
 None.
@@ -4652,7 +4693,8 @@ The return value is of type @code{INTEGER(*)} and of the same kind as
 @var{I}.
 
 @item @emph{See also}:
-@ref{IBITS}, @ref{IBSET}, @ref{IAND}, @ref{IOR}, @ref{IEOR}
+@ref{IBITS}, @ref{IBSET}, @ref{IAND}, @ref{IOR}, @ref{IEOR}, @ref{MVBITS}
+
 @end table
 
 
@@ -4726,7 +4768,8 @@ The return value is of type @code{INTEGER(*)} and of the same kind as
 @var{I}.
 
 @item @emph{See also}:
-@ref{IBCLR}, @ref{IBITS}, @ref{IAND}, @ref{IOR}, @ref{IEOR}
+@ref{IBCLR}, @ref{IBITS}, @ref{IAND}, @ref{IOR}, @ref{IEOR}, @ref{MVBITS}
+
 @end table
 
 
@@ -4750,7 +4793,7 @@ F95 and later
 Elemental function
 
 @item @emph{Syntax}:
-@code{I = ICHAR(C)}
+@code{RESULT = ICHAR(C)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -4865,7 +4908,7 @@ arguments.  (If the argument kinds differ, it is of the same kind as
 the larger argument.)
 
 @item @emph{See also}:
-@ref{IOR}, @ref{IAND}, @ref{IBITS}, @ref{IBSET}, @ref{IBCLR},
+@ref{IOR}, @ref{IAND}, @ref{IBITS}, @ref{IBSET}, @ref{IBCLR}, @ref{NOT}
 @end table
 
 
@@ -4886,7 +4929,7 @@ GNU extension
 Elemental function
 
 @item @emph{Syntax}:
-@code{I = IERRNO()}
+@code{RESULT = IERRNO()}
 
 @item @emph{Arguments}:
 None.
@@ -4920,7 +4963,7 @@ F77 and later
 Elemental function
 
 @item @emph{Syntax}:
-@code{I = INDEX(STRING, SUBSTRING [, BACK])}
+@code{RESULT = INDEX(STRING, SUBSTRING [, BACK])}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -4959,16 +5002,15 @@ F77 and later
 Elemental function
 
 @item @emph{Syntax}:
-@multitable @columnfractions .30 .80
-@item @code{X = INT(X)}
-@item @code{X = INT(X, KIND)}
-@end multitable
+@item @code{RESULT = INT(X [, KIND))}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
-@item @var{X} @tab shall be of type @code{INTEGER(*)}, @code{REAL(*)} or
-@code{COMPLEX(*)} @item @var{KIND}  @tab (Optional) @var{KIND} shall be
-a scalar integer.
+@item @var{X}    @tab shall be of type @code{INTEGER(*)},
+                      @code{REAL(*)}, or @code{COMPLEX(*)}.
+@item @var{KIND} @tab (Optional) An @code{INTEGER(*)} initialization
+                      expression indicating the kind parameter of
+                     the result.
 @end multitable
 
 @item @emph{Return value}:
@@ -4979,7 +5021,7 @@ the following rules:
 @item (A)
 If @var{X} is of type @code{INTEGER(*)}, @code{INT(X) = X} 
 @item (B)
-If @var{X} is of type @code{REAL(*)} and @math{|X| < 1} @code{INT(X)} equals @var{0}. 
+If @var{X} is of type @code{REAL(*)} and @math{|X| < 1}, @code{INT(X)} equals @var{0}. 
 If @math{|X| \geq 1}, then @code{INT(X)} equals the largest integer that does not exceed 
 the range of @var{X} and whose sign is the same as the sign of @var{X}.
 @item (C)
@@ -5041,7 +5083,7 @@ arguments.  (If the argument kinds differ, it is of the same kind as
 the larger argument.)
 
 @item @emph{See also}:
-@ref{IEOR}, @ref{IAND}, @ref{IBITS}, @ref{IBSET}, @ref{IBCLR},
+@ref{IEOR}, @ref{IAND}, @ref{IBITS}, @ref{IBSET}, @ref{IBCLR}, @ref{NOT}
 @end table
 
 
@@ -5068,7 +5110,7 @@ GNU extension
 non-elemental function
 
 @item @emph{Syntax}:
-@code{I = IRAND(FLAG)}
+@code{RESULT = IRAND(FLAG)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -5312,7 +5354,7 @@ F95 and later
 Inquiry function
 
 @item @emph{Syntax}:
-@code{I = LBOUND(ARRAY [, DIM])}
+@code{RESULT = LBOUND(ARRAY [, DIM])}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -5384,7 +5426,7 @@ F95 and later
 Elemental function
 
 @item @emph{Syntax}:
-@code{L = LEN_TRIM(STRING)}
+@code{RESULT = LEN_TRIM(STRING)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -5393,7 +5435,7 @@ with @code{INTENT(IN)}
 @end multitable
 
 @item @emph{Return value}:
-The return value is of @code{INTEGER(kind=4)} type.
+The return value is an @code{INTEGER} of the default kind.
 
 @item @emph{See also}:
 @ref{LEN}, @ref{ADJUSTL}, @ref{ADJUSTR}
@@ -5429,7 +5471,7 @@ F77 and later
 Elemental function
 
 @item @emph{Syntax}:
-@code{L = LGE(STRING_A, STRING_B)}
+@code{RESULT = LGE(STRING_A, STRING_B)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -5475,7 +5517,7 @@ F77 and later
 Elemental function
 
 @item @emph{Syntax}:
-@code{L = LGT(STRING_A, STRING_B)}
+@code{RESULT = LGT(STRING_A, STRING_B)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -5524,7 +5566,7 @@ Subroutine
 @end multitable
 
 @item @emph{See also}:
-@ref{UNLINK}
+@ref{SYMLNK}, @ref{UNLINK}
 @end table
 
 
@@ -5557,7 +5599,7 @@ F77 and later
 Elemental function
 
 @item @emph{Syntax}:
-@code{L = LLE(STRING_A, STRING_B)}
+@code{RESULT = LLE(STRING_A, STRING_B)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -5581,8 +5623,6 @@ otherwise, based on the ASCII ordering.
 @cindex comparison (lexical)
 @cindex lexical comparison
 
-Intrinsic implemented, documentation pending.
-
 @table @asis
 @item @emph{Description}:
 Determines whether one string is lexically less than another string,
@@ -5605,7 +5645,7 @@ F77 and later
 Elemental function
 
 @item @emph{Syntax}:
-@code{L = LLT(STRING_A, STRING_B)}
+@code{RESULT = LLT(STRING_A, STRING_B)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -5640,7 +5680,7 @@ GNU extension
 Elemental function
 
 @item @emph{Syntax}:
-@code{L = LNBLNK(STRING)}
+@code{RESULT = LNBLNK(STRING)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -5673,7 +5713,7 @@ GNU extension
 Inquiry function
 
 @item @emph{Syntax}:
-@code{I = LOC(X)}
+@code{RESULT = LOC(X)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -5719,7 +5759,7 @@ F77 and later
 Elemental function
 
 @item @emph{Syntax}:
-@code{X = LOG(X)}
+@code{RESULT = LOG(X)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -5772,7 +5812,7 @@ F77 and later
 Elemental function
 
 @item @emph{Syntax}:
-@code{X = LOG10(X)}
+@code{RESULT = LOG10(X)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -5807,10 +5847,10 @@ end program test_log10
 @cindex @code{LOGICAL} intrinsic
 @cindex conversion function (logical)
 
-Intrinsic implemented, documentation pending.
-
 @table @asis
 @item @emph{Description}:
+Converts one kind of @code{LOGICAL} variable to another.
+
 @item @emph{Standard}:
 F95 and later
 
@@ -5818,11 +5858,23 @@ F95 and later
 Elemental function
 
 @item @emph{Syntax}:
+@code{RESULT = LOGICAL(L [, KIND])}
+
 @item @emph{Arguments}:
+@multitable @columnfractions .15 .80
+@item @var{L}    @tab The type shall be @code{LOGICAL(*)}.
+@item @var{KIND} @tab (Optional) An @code{INTEGER(*)} initialization
+                      expression indicating the kind parameter of
+                     the result.
+@end multitable
+
 @item @emph{Return value}:
-@item @emph{Example}:
-@item @emph{Specific names}:
+The return value is a @code{LOGICAL} value equal to @var{L}, with a
+kind corresponding to @var{KIND}, or of the default logical kind if
+@var{KIND} is not given.
+
 @item @emph{See also}:
+@ref{INT}, @ref{REAL}, @ref{CMPLX}
 @end table
 
 
@@ -5833,23 +5885,38 @@ Elemental function
 @cindex @code{LSHIFT} intrinsic
 @cindex bit operations
 
-Intrinsic implemented, documentation pending.
-
 @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.
+
+This function has been superceded by the @code{ISHFT} intrinsic, which
+is standard in Fortran 95 and later.
 
 @item @emph{Standard}:
 GNU extension
 
 @item @emph{Class}:
-Function
+Elemental function
 
 @item @emph{Syntax}:
+@code{RESULT = LSHIFT(I, SHIFT)}
+
 @item @emph{Arguments}:
+@multitable @columnfractions .15 .80
+@item @var{I} @tab The type shall be @code{INTEGER(*)}.
+@item @var{SHIFT} @tab The type shall be @code{INTEGER(*)}.
+@end multitable
+
 @item @emph{Return value}:
-@item @emph{Example}:
-@item @emph{Specific names}:
+The return value is of type @code{INTEGER(*)} and of the same kind as
+@var{I}.
+
 @item @emph{See also}:
+@ref{ISHFT}, @ref{ISHFTC}, @ref{RSHIFT}
 
 @end table
 
@@ -5873,7 +5940,7 @@ GNU extension
 Non-elemental subroutine
 
 @item @emph{Syntax}:
-@code{CALL LSTAT(FILE,BUFF[,STATUS])}
+@code{CALL LSTAT(FILE, BUFF [, STATUS])}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -5897,10 +5964,11 @@ To stat an open file: @ref{FSTAT}, to stat a file: @ref{STAT}
 @cindex @code{LTIME} intrinsic
 @cindex time, conversion function
 
-Intrinsic implemented, documentation pending.
-
 @table @asis
 @item @emph{Description}:
+Given a system time value @var{STIME} (as provided by the @code{TIME8()}
+intrinsic), fills @var{TARRAY} with values extracted from it appropriate
+to the local time zone using @code{localtime(3)}.
 
 @item @emph{Standard}:
 GNU extension
@@ -5909,11 +5977,36 @@ GNU extension
 Subroutine
 
 @item @emph{Syntax}:
+@code{CALL LTIME(STIME, TARRAY)}
+
 @item @emph{Arguments}:
+@multitable @columnfractions .15 .80
+@item @var{STIME}  @tab An @code{INTEGER(*)} scalar expression
+                        corresponding to a system time, with 
+                       @code{INTENT(IN)}.
+@item @var{TARRAY} @tab A default @code{INTEGER} array with 9 elements,
+                        with @code{INTENT(OUT)}.
+@end multitable
+
 @item @emph{Return value}:
-@item @emph{Example}:
-@item @emph{Specific names}:
+The elements of @var{TARRAY} are assigned as follows:
+@enumerate
+@item Seconds after the minute, range 0--59 or 0--61 to allow for leap
+      seconds
+@item Minutes after the hour, range 0--59
+@item Hours past midnight, range 0--23
+@item Day of month, range 0--31
+@item Number of months since January, range 0--12
+@item Years since 1900
+@item Number of days since Sunday, range 0--6
+@item Days since January 1
+@item Daylight savings indicator: positive if daylight savings is in
+      effect, zero if not, and negative if the information is not
+      available.
+@end enumerate
+
 @item @emph{See also}:
+@ref{CTIME}, @ref{GMTIME}, @ref{TIME}, @ref{TIME8}
 
 @end table
 
@@ -5984,15 +6077,16 @@ end program test_malloc
 @end table
 
 
+
 @node MATMUL
 @section @code{MATMUL} --- matrix multiplication
 @cindex @code{MATMUL} intrinsic
 @cindex matrix operations
 
-Intrinsic implemented, documentation pending.
-
 @table @asis
 @item @emph{Description}:
+Performs a matrix multiplication on numeric or logical arguments.
+
 @item @emph{Standard}:
 F95 and later
 
@@ -6000,22 +6094,42 @@ F95 and later
 Transformational function
 
 @item @emph{Syntax}:
+@code{RESULT = MATMUL(MATRIX_A, MATRIX_B)}
+
 @item @emph{Arguments}:
+@multitable @columnfractions .15 .80
+@item @var{MATRIX_A} @tab An array of @code{INTEGER(*)},
+                          @code{REAL(*)}, @code{COMPLEX(*)}, or
+                         @code{LOGICAL(*)} type, with a rank of
+                         one or two.
+@item @var{MATRIX_B} @tab An array of @code{INTEGER(*)},
+                          @code{REAL(*)}, or @code{COMPLEX(*)} type if
+                         @var{MATRIX_A} is of a numeric type;
+                         otherwise, an array of @code{LOGICAL(*)}
+                         type. The rank shall be one or two, and the
+                         first (or only) dimension of @var{MATRIX_B}
+                         shall be equal to the last (or only)
+                         dimension of @var{MATRIX_A}.
+@end multitable
+
 @item @emph{Return value}:
-@item @emph{Example}:
+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
 
 
+
 @node MAX
 @section @code{MAX} --- Maximum value of an argument list
 @cindex @code{MAX} intrinsic
-@cindex undocumented intrinsic 
-
-Intrinsic implemented, documentation pending.
 
 @table @asis
 @item @emph{Description}:
+Returns the argument with the largest (most positive) value.
+
 @item @emph{Standard}:
 F77 and later
 
@@ -6023,9 +6137,21 @@ F77 and later
 Elemental function
 
 @item @emph{Syntax}:
+@code{RESULT = MAX(A1, A2 [, A3 [, ...]])}
+
 @item @emph{Arguments}:
+@multitable @columnfractions .15 .80
+@item @var{A1}          @tab The type shall be @code{INTEGER(*)} or
+                             @code{REAL(*)}.
+@item @var{A2}, @var{A3}, ... @tab An expression of the same type and kind
+                             as @var{A1}.  (As a GNU extension, 
+                            arguments of different kinds are
+                            permitted.)
+@end multitable
+
 @item @emph{Return value}:
-@item @emph{Example}:
+The return value corresponds to the maximum value among the arguments,
+and has the same type and kind as the first argument.
 
 @item @emph{Specific names}:
 @multitable @columnfractions .20 .20 .20 .40
@@ -6038,10 +6164,12 @@ Elemental function
 @end multitable
 
 @item @emph{See also}:
-@ref{MAXLOC} @ref{MAXVAL}
+@ref{MAXLOC} @ref{MAXVAL}, @ref{MIN}
+
 @end table
 
 
+
 @node MAXEXPONENT
 @section @code{MAXEXPONENT} --- Maximum exponent of a real kind
 @cindex @code{MAXEXPONENT} intrinsic
@@ -6060,7 +6188,7 @@ F95 and later
 Inquiry function
 
 @item @emph{Syntax}:
-@code{I = MAXEXPONENT(X)}
+@code{RESULT = MAXEXPONENT(X)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -6084,15 +6212,25 @@ end program exponents
 @end table
 
 
+
 @node MAXLOC
 @section @code{MAXLOC} --- Location of the maximum value within an array
 @cindex @code{MAXLOC} intrinsic
-@cindex undocumented intrinsic 
-
-Intrinsic implemented, documentation pending.
 
 @table @asis
 @item @emph{Description}:
+Determines the location of the element in the array with the maximum
+value, 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 maximum value, the location returned is
+that of the first such element in array element order.  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}:
 F95 and later
 
@@ -6100,11 +6238,35 @@ F95 and later
 Transformational function
 
 @item @emph{Syntax}:
+@multitable @columnfractions .80
+@item @code{RESULT = MAXLOC(ARRAY, DIM [, MASK])}
+@item @code{RESULT = MAXLOC(ARRAY [, MASK])}
+@end multitable
+
 @item @emph{Arguments}:
+@multitable @columnfractions .15 .80
+@item @var{ARRAY} @tab Shall be an array of type @code{INTEGER(*)},
+                       @code{REAL(*)}, or @code{CHARACTER(*)}.
+@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(*)},
+                       and conformable with @var{ARRAY}.
+@end multitable
+
 @item @emph{Return value}:
-@item @emph{Example}:
+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.  In all cases, the result is of default
+@code{INTEGER} type.
+
 @item @emph{See also}:
 @ref{MAX}, @ref{MAXVAL}
+
 @end table
 
 
@@ -6112,23 +6274,48 @@ Transformational function
 @node MAXVAL
 @section @code{MAXVAL} --- Maximum value of an array
 @cindex @code{MAXVAL} intrinsic
-@cindex undocumented intrinsic 
-
-Intrinsic implemented, documentation pending.
 
 @table @asis
 @item @emph{Description}:
-@item @emph{Standard}:
+Determines the maximum value of the elements in an array value, or, if
+the @var{DIM} argument is supplied, determines the maximum value 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 the array has zero size, or all of the elements of
+@var{MASK} are @code{.FALSE.}, then the result is the most negative
+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
 
 @item @emph{Class}:
 Transformational function
 
 @item @emph{Syntax}:
+@multitable @columnfractions .80
+@item @code{RESULT = MAXVAL(ARRAY, DIM [, MASK])}
+@item @code{RESULT = MAXVAL(ARRAY [, MASK])}
+@end multitable
+
 @item @emph{Arguments}:
+@multitable @columnfractions .15 .80
+@item @var{ARRAY} @tab Shall be an array of type @code{INTEGER(*)},
+                       @code{REAL(*)}, or @code{CHARACTER(*)}.
+@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(*)},
+                       and conformable with @var{ARRAY}.
+@end multitable
+
 @item @emph{Return value}:
-@item @emph{Example}:
-@item @emph{Specific names}:
+If @var{DIM} is absent, or if @var{ARRAY} has a rank of one, the result
+is a scalar.  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.  In all
+cases, the result is of the same type and kind as @var{ARRAY}.
 
 @item @emph{See also}:
 @ref{MAX}, @ref{MAXLOC}
@@ -6136,40 +6323,48 @@ Transformational function
 
 
 
-
 @node MERGE
-@section @code{MERGE} --- Merge arrays
+@section @code{MERGE} --- Merge variables
 @cindex @code{MERGE} intrinsic
-@cindex undocumented intrinsic 
-
-Intrinsic implemented, documentation pending.
 
 @table @asis
 @item @emph{Description}:
+Select values from two arrays according to a logical mask.  The result
+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
 
 @item @emph{Class}:
-elemental function
+Elemental function
 
 @item @emph{Syntax}:
+@code{RESULT = MERGE(TSOURCE, FSOURCE, MASK)}
+
 @item @emph{Arguments}:
+@multitable @columnfractions .15 .80
+@item @var{TSOURCE} @tab May be of any type.
+@item @var{FSOURCE} @tab Shall be of the same type and type parameters
+                         as @var{TSOURCE}.
+@item @var{MASK}    @tab Shall be of type @code{LOGICAL(*)}.
+@end multitable
+
 @item @emph{Return value}:
-@item @emph{Example}:
-@item @emph{Specific names}:
-@item @emph{See also}:
+The result is of the same type and type parameters as @var{TSOURCE}.
+
 @end table
 
 
+
 @node MIN
 @section @code{MIN} --- Minimum value of an argument list
 @cindex @code{MIN} intrinsic
-@cindex undocumented intrinsic 
-
-Intrinsic implemented, documentation pending.
 
 @table @asis
 @item @emph{Description}:
+Returns the argument with the smallest (most negative) value.
+
 @item @emph{Standard}:
 F77 and later
 
@@ -6177,9 +6372,21 @@ F77 and later
 Elemental function
 
 @item @emph{Syntax}:
+@code{RESULT = MIN(A1, A2 [, A3, ...])}
+
 @item @emph{Arguments}:
+@multitable @columnfractions .15 .80
+@item @var{A1}          @tab The type shall be @code{INTEGER(*)} or
+                             @code{REAL(*)}.
+@item @var{A2}, @var{A3}, ... @tab An expression of the same type and kind
+                             as @var{A1}.  (As a GNU extension, 
+                            arguments of different kinds are
+                            permitted.)
+@end multitable
+
 @item @emph{Return value}:
-@item @emph{Example}:
+The return value corresponds to the maximum value among the arguments,
+and has the same type and kind as the first argument.
 
 @item @emph{Specific names}:
 @multitable @columnfractions .20 .20 .20 .40
@@ -6192,7 +6399,7 @@ Elemental function
 @end multitable
 
 @item @emph{See also}:
-@ref{MINLOC}, @ref{MINVAL}
+@ref{MAX}, @ref{MINLOC}, @ref{MINVAL}
 @end table
 
 @node MINEXPONENT
@@ -6213,7 +6420,7 @@ F95 and later
 Inquiry function
 
 @item @emph{Syntax}:
-@code{I = MINEXPONENT(X)}
+@code{RESULT = MINEXPONENT(X)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -6229,15 +6436,25 @@ See @code{MAXEXPONENT} for an example.
 @end table
 
 
+
 @node MINLOC
 @section @code{MINLOC} --- Location of the minimum value within an array
 @cindex @code{MINLOC} intrinsic
-@cindex undocumented intrinsic 
-
-Intrinsic implemented, documentation pending.
 
 @table @asis
 @item @emph{Description}:
+Determines the location of the element in the array with the minimum
+value, or, if the @var{DIM} argument is supplied, determines the
+locations of the minimum 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 minimum value, the location returned is
+that of the first such element in array element order.  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}:
 F95 and later
 
@@ -6245,9 +6462,31 @@ F95 and later
 Transformational function
 
 @item @emph{Syntax}:
+@multitable @columnfractions .80
+@item @code{RESULT = MINLOC(ARRAY, DIM [, MASK])}
+@item @code{RESULT = MINLOC(ARRAY [, MASK])}
+@end multitable
+
 @item @emph{Arguments}:
+@multitable @columnfractions .15 .80
+@item @var{ARRAY} @tab Shall be an array of type @code{INTEGER(*)},
+                       @code{REAL(*)}, or @code{CHARACTER(*)}.
+@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(*)},
+                       and conformable with @var{ARRAY}.
+@end multitable
+
 @item @emph{Return value}:
-@item @emph{Example}:
+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.  In all cases, the result is of default
+@code{INTEGER} type.
 
 @item @emph{See also}:
 @ref{MIN}, @ref{MINVAL}
@@ -6255,15 +6494,22 @@ Transformational function
 @end table
 
 
+
 @node MINVAL
 @section @code{MINVAL} --- Minimum value of an array
 @cindex @code{MINVAL} intrinsic
-@cindex undocumented intrinsic 
-
-Intrinsic implemented, documentation pending.
 
 @table @asis
 @item @emph{Description}:
+Determines the minimum value of the elements in an array value, or, if
+the @var{DIM} argument is supplied, determines the minimum value 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 the array has zero size, or all of the elements of
+@var{MASK} are @code{.FALSE.}, then the result is @code{HUGE(ARRAY)} if
+@var{ARRAY} is numeric, or a string of @code{CHAR(255)} characters if
+@var{ARRAY} is of character type.
+
 @item @emph{Standard}:
 F95 and later
 
@@ -6271,14 +6517,34 @@ F95 and later
 Transformational function
 
 @item @emph{Syntax}:
+@multitable @columnfractions .80
+@item @code{RESULT = MINVAL(ARRAY, DIM [, MASK])}
+@item @code{RESULT = MINVAL(ARRAY [, MASK])}
+@end multitable
+
 @item @emph{Arguments}:
+@multitable @columnfractions .15 .80
+@item @var{ARRAY} @tab Shall be an array of type @code{INTEGER(*)},
+                       @code{REAL(*)}, or @code{CHARACTER(*)}.
+@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(*)},
+                       and conformable with @var{ARRAY}.
+@end multitable
+
 @item @emph{Return value}:
-@item @emph{Example}:
+If @var{DIM} is absent, or if @var{ARRAY} has a rank of one, the result
+is a scalar.  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.  In all
+cases, the result is of the same type and kind as @var{ARRAY}.
 
 @item @emph{See also}:
 @ref{MIN}, @ref{MINLOC}
-@end table
 
+@end table
 
 
 
@@ -6301,7 +6567,7 @@ F77 and later
 Elemental function
 
 @item @emph{Syntax}:
-@code{X = MOD(A,P)}
+@code{RESULT = MOD(A, P)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -6360,7 +6626,7 @@ F95 and later
 Elemental function
 
 @item @emph{Syntax}:
-@code{X = MODULO(A,P)}
+@code{RESULT = MODULO(A, P)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -6398,31 +6664,6 @@ end program test_mod
 
 
 
-@node MVBITS
-@section @code{MVBITS} --- Move bits from one integer to another
-@cindex @code{MVBITS} intrinsic
-@cindex bit operations
-
-Intrinsic implemented, documentation pending.
-
-@table @asis
-@item @emph{Description}:
-@item @emph{Standard}:
-F95 and later
-
-@item @emph{Class}:
-Elemental subroutine
-
-@item @emph{Syntax}:
-@item @emph{Arguments}:
-@item @emph{Return value}:
-@item @emph{Example}:
-@item @emph{See also}:
-@end table
-
-
-
-
 @node MOVE_ALLOC
 @section @code{MOVE_ALLOC} --- Move allocation from one object to another
 @cindex @code{MOVE_ALLOC} intrinsic
@@ -6470,6 +6711,50 @@ end program test_move_alloc
 
 
 
+@node MVBITS
+@section @code{MVBITS} --- Move bits from one integer to another
+@cindex @code{MVBITS} intrinsic
+@cindex bit operations
+
+@table @asis
+@item @emph{Description}:
+Moves @var{LEN} bits from positions @var{FROMPOS} through
+@code{FROMPOS+LEN-1} of @var{FROM} to positions @var{TOPOS} through
+@code{TOPOS+LEN-1} of @var{TO}. The portion of argument @var{TO} not
+affected by the movement of bits is unchanged. The values of
+@code{FROMPOS+LEN-1} and @code{TOPOS+LEN-1} must be less than
+@code{BIT_SIZE(FROM)}.
+
+@item @emph{Standard}:
+F95 and later
+
+@item @emph{Class}:
+Elemental function
+
+@item @emph{Syntax}:
+@code{RESULT = MVBITS(FROM, FROMPOS, LEN, TO, TOPOS)}
+
+@item @emph{Arguments}:
+@multitable @columnfractions .15 .80
+@item @var{FROM}    @tab The type shall be @code{INTEGER(*)}.
+@item @var{FROMPOS} @tab The type shall be @code{INTEGER(*)}.
+@item @var{LEN}     @tab The type shall be @code{INTEGER(*)}.
+@item @var{TO}      @tab The type shall be @code{INTEGER(*)}, of the
+                         same kind as @var{FROM}.
+@item @var{TOPOS}   @tab The type shall be @code{INTEGER(*)}.
+@end multitable
+
+@item @emph{Return value}:
+The return value is of type @code{INTEGER(*)} and of the same kind as
+@var{FROM}.
+
+@item @emph{See also}:
+@ref{IBCLR}, @ref{IBSET}, @ref{IBITS}, @ref{IAND}, @ref{IOR}, @ref{IEOR}
+
+@end table
+
+
+
 @node NEAREST
 @section @code{NEAREST} --- Nearest representable number
 @cindex @code{NEAREST} intrinsic
@@ -6487,7 +6772,7 @@ F95 and later
 Elemental function
 
 @item @emph{Syntax}:
-@code{Y = NEAREST(X, S)}
+@code{RESULT = NEAREST(X, S)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -6523,7 +6808,7 @@ end program test_nearest
 
 @table @asis
 @item @emph{Description}:
-@code{NEW_LINE(C)} returns the new-line character
+@code{NEW_LINE(C)} returns the new-line character.
 
 @item @emph{Standard}:
 F2003 and later
@@ -6532,7 +6817,7 @@ F2003 and later
 Elemental function
 
 @item @emph{Syntax}:
-@code{C = NEW_LINE(C)}
+@code{RESULT = NEW_LINE(C)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -6572,7 +6857,7 @@ F77 and later
 Elemental function
 
 @item @emph{Syntax}:
-@code{X = NINT(X)}
+@code{RESULT = NINT(X)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -6610,23 +6895,33 @@ end program test_nint
 @node NOT
 @section @code{NOT} --- Logical negation
 @cindex @code{NOT} intrinsic
-@cindex logical operations
-
-Intrinsic implemented, documentation pending.
+@cindex bit operations
 
 @table @asis
 @item @emph{Description}:
+@code{NOT} returns the bitwise boolean inverse of @var{I}.
+
 @item @emph{Standard}:
-F77 and later
+F95 and later
 
 @item @emph{Class}:
 Elemental function
 
 @item @emph{Syntax}:
+@code{RESULT = NOT(I)}
+
 @item @emph{Arguments}:
+@multitable @columnfractions .15 .80
+@item @var{I} @tab The type shall be @code{INTEGER(*)}.
+@end multitable
+
 @item @emph{Return value}:
-@item @emph{Example}:
+The return type is @code{INTEGER(*)}, of the same kind as the
+argument.
+
 @item @emph{See also}:
+@ref{IAND}, @ref{IEOR}, @ref{IOR}, @ref{IBITS}, @ref{IBSET}, @ref{IBCLR}
+
 @end table
 
 
@@ -6735,16 +7030,16 @@ Transformational function
 
 
 
-
 @node PERROR
 @section @code{PERROR} --- Print system error message
 @cindex @code{PERROR} intrinsic
-@cindex undocumented intrinsic 
-
-Intrinsic implemented, documentation pending.
 
 @table @asis
 @item @emph{Description}:
+Prints (on the C @code{stderr} stream) a newline-terminated error
+message corresponding to the last system error. This is prefixed by
+@var{STRING}, a colon and a space. See @code{perror(3)}.
+
 @item @emph{Standard}:
 GNU extension
 
@@ -6752,17 +7047,19 @@ GNU extension
 Subroutine
 
 @item @emph{Syntax}:
+@code{CALL PERROR(STRING)}
+
 @item @emph{Arguments}:
-@item @emph{Return value}:
-@item @emph{Example}:
-@item @emph{Specific names}:
+@multitable @columnfractions .15 .80
+@item @var{STRING} @tab A scalar of default @code{CHARACTER} type.
+@end multitable
+
 @item @emph{See also}:
 @ref{IERRNO}
 @end table
 
 
 
-
 @node PRECISION
 @section @code{PRECISION} --- Decimal precision of a real kind
 @cindex @code{PRECISION} intrinsic
@@ -6780,7 +7077,7 @@ F95 and later
 Inquiry function
 
 @item @emph{Syntax}:
-@code{I = PRECISION(X)}
+@code{RESULT = PRECISION(X)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -6829,7 +7126,6 @@ Inquiry function
 
 
 
-
 @node PRODUCT
 @section @code{PRODUCT} --- Product of array elements
 @cindex @code{PRODUCT} intrinsic
@@ -6856,7 +7152,6 @@ Transformational function
 
 
 
-
 @node RADIX
 @section @code{RADIX} --- Base of a model number
 @cindex @code{RADIX} intrinsic
@@ -6873,7 +7168,7 @@ F95 and later
 Inquiry function
 
 @item @emph{Syntax}:
-@code{R = RADIX(X)}
+@code{RESULT = RADIX(X)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -6896,62 +7191,32 @@ end program test_radix
 
 
 
-@node RANDOM_NUMBER
-@section @code{RANDOM_NUMBER} --- Pseudo-random number
-@cindex @code{RANDOM_NUMBER} intrinsic
+@node RAN
+@section @code{RAN} --- Real pseudo-random number
+@cindex @code{RAN} intrinsic
 @cindex random numbers
 
-Intrinsic implemented, documentation pending.
-
 @table @asis
 @item @emph{Description}:
-@item @emph{Standard}:
-F95 and later
-
-@item @emph{Class}:
-Elemental subroutine
-
-@item @emph{Syntax}:
-@item @emph{Arguments}:
-@item @emph{Return value}:
-@item @emph{Example}:
-@item @emph{See also}:
-@ref{RANDOM_SEED}
-@end table
-
-
-
-
-@node RANDOM_SEED
-@section @code{RANDOM_SEED} --- Initialize a pseudo-random number sequence
-@cindex @code{RANDOM_SEED} intrinsic
-@cindex random numbers
-
-Intrinsic implemented, documentation pending.
+For compatibility with HP FORTRAN 77/iX, the @code{RAN} intrinsic is
+provided as an alias for @code{RAND}.  See @ref{RAND} for complete
+documentation.
 
-@table @asis
-@item @emph{Description}:
 @item @emph{Standard}:
-F95 and later
+GNU extension
 
 @item @emph{Class}:
-Subroutine
+Non-elemental function
 
-@item @emph{Syntax}:
-@item @emph{Arguments}:
-@item @emph{Return value}:
-@item @emph{Example}:
 @item @emph{See also}:
-@ref{RANDOM_NUMBER}
+@ref{RAND}, @ref{RANDOM_NUMBER}
 @end table
 
 
 
-
 @node RAND
 @section @code{RAND} --- Real pseudo-random number
 @cindex @code{RAND} intrinsic
-@cindex @code{RAN} intrinsic
 @cindex random numbers
 
 @table @asis
@@ -6966,10 +7231,10 @@ it is used as a new seed with @code{SRAND}.
 GNU extension
 
 @item @emph{Class}:
-non-elemental function
+Non-elemental function
 
 @item @emph{Syntax}:
-@code{X = RAND(FLAG)}
+@code{RESULT = RAND(FLAG)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -6990,10 +7255,6 @@ program test_rand
 end program test_rand
 @end smallexample
 
-@item @emph{Note}:
-For compatibility with HP FORTRAN 77/iX, the @code{RAN} intrinsic is
-provided as an alias for @code{RAND}.
-
 @item @emph{See also}:
 @ref{SRAND}, @ref{RANDOM_NUMBER}
 
@@ -7001,6 +7262,56 @@ provided as an alias for @code{RAND}.
 
 
 
+@node RANDOM_NUMBER
+@section @code{RANDOM_NUMBER} --- Pseudo-random number
+@cindex @code{RANDOM_NUMBER} intrinsic
+@cindex random numbers
+
+Intrinsic implemented, documentation pending.
+
+@table @asis
+@item @emph{Description}:
+@item @emph{Standard}:
+F95 and later
+
+@item @emph{Class}:
+Elemental subroutine
+
+@item @emph{Syntax}:
+@item @emph{Arguments}:
+@item @emph{Return value}:
+@item @emph{Example}:
+@item @emph{See also}:
+@ref{RANDOM_SEED}
+@end table
+
+
+
+@node RANDOM_SEED
+@section @code{RANDOM_SEED} --- Initialize a pseudo-random number sequence
+@cindex @code{RANDOM_SEED} intrinsic
+@cindex random numbers
+
+Intrinsic implemented, documentation pending.
+
+@table @asis
+@item @emph{Description}:
+@item @emph{Standard}:
+F95 and later
+
+@item @emph{Class}:
+Subroutine
+
+@item @emph{Syntax}:
+@item @emph{Arguments}:
+@item @emph{Return value}:
+@item @emph{Example}:
+@item @emph{See also}:
+@ref{RANDOM_NUMBER}
+@end table
+
+
+
 @node RANGE
 @section @code{RANGE} --- Decimal exponent range of a real kind
 @cindex @code{RANGE} intrinsic
@@ -7018,7 +7329,7 @@ F95 and later
 Inquiry function
 
 @item @emph{Syntax}:
-@code{I = RANGE(X)}
+@code{RESULT = RANGE(X)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -7035,21 +7346,6 @@ See @code{PRECISION} for an example.
 
 
 
-@node RAN
-@section @code{RAN} --- Real pseudo-random number
-@cindex @code{RAN} intrinsic
-@cindex random numbers
-
-@table @asis
-@item @emph{Standard}:
-GNU extension
-
-@item @emph{See also}:
-@ref{RAND}, @ref{RANDOM_NUMBER}
-@end table
-
-
-
 @node REAL
 @section @code{REAL} --- Convert to real type 
 @cindex @code{REAL} intrinsic
@@ -7070,16 +7366,17 @@ Elemental function
 
 @item @emph{Syntax}:
 @multitable @columnfractions .30 .80
-@item @code{X = REAL(X)}
-@item @code{X = REAL(X, KIND)}
-@item @code{X = REALPART(Z)}
+@item @code{RESULT = REAL(X [, KIND])}
+@item @code{RESULT = REALPART(Z)}
 @end multitable
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
-@item @var{X} @tab shall be @code{INTEGER(*)}, @code{REAL(*)}, or  
-@code{COMPLEX(*)}.
-@item @var{KIND}  @tab (Optional) @var{KIND} shall be a scalar integer.
+@item @var{X}    @tab shall be @code{INTEGER(*)}, @code{REAL(*)}, or
+                      @code{COMPLEX(*)}.
+@item @var{KIND} @tab (Optional) An @code{INTEGER(*)} initialization
+                      expression indicating the kind parameter of
+                     the result.
 @end multitable
 
 @item @emph{Return value}:
@@ -7113,15 +7410,21 @@ end program test_real
 @end table
 
 
+
 @node RENAME
 @section @code{RENAME} --- Rename a file
 @cindex @code{RENAME} intrinsic
 @cindex file system operations
 
-Intrinsic implemented, documentation pending.
-
 @table @asis
 @item @emph{Description}:
+Renames a file from file @var{PATH1} to @var{PATH2}. A null
+character (@code{CHAR(0)}) can be used to mark the end of the names in
+@var{PATH1} and @var{PATH2}; otherwise, trailing blanks in the file
+names are ignored.  If the @var{STATUS} argument is supplied, it
+contains 0 on success or a nonzero error code upon return; see
+@code{rename(2)}.
+
 @item @emph{Standard}:
 GNU extension
 
@@ -7129,12 +7432,19 @@ GNU extension
 Subroutine
 
 @item @emph{Syntax}:
+@code{CALL RENAME(PATH1, PATH2 [, STATUS])}
+
 @item @emph{Arguments}:
-@item @emph{Return value}:
-@item @emph{Example}:
+@multitable @columnfractions .15 .80
+@item @var{PATH1} @tab Shall be of default @code{CHARACTER} type.
+@item @var{PATH2} @tab Shall be of default @code{CHARACTER} type.
+@item @var{STATUS} @tab (Optional) Shall be of default @code{INTEGER} type.
+@end multitable
+
 @item @emph{See also}:
-@end table
+@ref{LINK}
 
+@end table
 
 
 
@@ -7204,7 +7514,7 @@ F95 and later
 Elemental function
 
 @item @emph{Syntax}:
-@code{Y = RRSPACING(X)}
+@code{RESULT = RRSPACING(X)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -7225,22 +7535,38 @@ The value returned is equal to
 @cindex @code{RSHIFT} intrinsic
 @cindex bit operations
 
-Intrinsic implemented, documentation pending.
-
 @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 left end are lost; zeros are shifted in from
+the opposite end.
+
+This function has been superceded by the @code{ISHFT} intrinsic, which
+is standard in Fortran 95 and later.
 
 @item @emph{Standard}:
 GNU extension
 
 @item @emph{Class}:
-Function
+Elemental function
 
 @item @emph{Syntax}:
+@code{RESULT = RSHIFT(I, SHIFT)}
+
 @item @emph{Arguments}:
+@multitable @columnfractions .15 .80
+@item @var{I} @tab The type shall be @code{INTEGER(*)}.
+@item @var{SHIFT} @tab The type shall be @code{INTEGER(*)}.
+@end multitable
+
 @item @emph{Return value}:
-@item @emph{Example}:
+The return value is of type @code{INTEGER(*)} and of the same kind as
+@var{I}.
+
 @item @emph{See also}:
+@ref{ISHFT}, @ref{ISHFTC}, @ref{LSHIFT}
 
 @end table
 
@@ -7261,7 +7587,7 @@ F95 and later
 Elemental function
 
 @item @emph{Syntax}:
-@code{Y = SCALE(X, I)}
+@code{RESULT = SCALE(X, I)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -7330,7 +7656,7 @@ GNU extension
 function
 
 @item @emph{Syntax}:
-@code{T = SECNDS (X)}
+@code{RESULT = SECNDS (X)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -7377,9 +7703,7 @@ F95 and later
 Transformational function
 
 @item @emph{Syntax}:
-@multitable @columnfractions .30 .80
-@item @code{J = SELECTED_INT_KIND(I)}
-@end multitable
+@code{RESULT = SELECTED_INT_KIND(I)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -7423,9 +7747,7 @@ F95 and later
 Transformational function
 
 @item @emph{Syntax}:
-@multitable @columnfractions .30 .80
-@item @code{I = SELECTED_REAL_KIND(P,R)}
-@end multitable
+@code{RESULT = SELECTED_REAL_KIND(P, R)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -7486,7 +7808,7 @@ F95 and later
 Elemental function
 
 @item @emph{Syntax}:
-@code{Y = SET_EXPONENT(X, I)}
+@code{RESULT = SET_EXPONENT(X, I)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -7538,7 +7860,6 @@ Inquiry function
 
 
 
-
 @node SIGN
 @section @code{SIGN} --- Sign copying function
 @cindex @code{SIGN} intrinsic
@@ -7557,7 +7878,7 @@ F77 and later
 Elemental function
 
 @item @emph{Syntax}:
-@code{X = SIGN(A,B)}
+@code{RESULT = SIGN(A, B)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -7616,9 +7937,8 @@ GNU extension
 subroutine, non-elemental function
 
 @item @emph{Syntax}:
-@multitable @columnfractions .30 .80
-@item @code{CALL SIGNAL(NUMBER, HANDLER)}
-@item @code{CALL SIGNAL(NUMBER, HANDLER, STATUS)}
+@multitable @columnfractions .80
+@item @code{CALL SIGNAL(NUMBER, HANDLER [, STATUS])}
 @item @code{STATUS = SIGNAL(NUMBER, HANDLER)}
 @end multitable
 
@@ -7651,7 +7971,6 @@ end program test_signal
 
 
 
-
 @node SIN
 @section @code{SIN} --- Sine function 
 @cindex @code{SIN} intrinsic
@@ -7671,7 +7990,7 @@ F77 and later
 Elemental function
 
 @item @emph{Syntax}:
-@code{X = SIN(X)}
+@code{RESULT = SIN(X)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -7722,7 +8041,7 @@ F95 and later
 Elemental function
 
 @item @emph{Syntax}:
-@code{X = SINH(X)}
+@code{RESULT = SINH(X)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -7794,7 +8113,7 @@ GNU extension
 function
 
 @item @emph{Syntax}:
-@code{X = SNGL(A)}
+@code{RESULT = SNGL(A)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -7880,7 +8199,7 @@ F77 and later
 Elemental function
 
 @item @emph{Syntax}:
-@code{X = SQRT(X)}
+@code{RESULT = SQRT(X)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -7960,6 +8279,7 @@ pseudo-random number generators.
 @end table
 
 
+
 @node STAT
 @section @code{STAT} --- Get file status
 @cindex @code{STAT} intrinsic
@@ -8066,39 +8386,56 @@ Transformational function
 
 
 
-
 @node SYMLNK
 @section @code{SYMLNK} --- Create a symbolic link
 @cindex @code{SYMLNK} intrinsic
 @cindex file system operations
 
-Intrinsic implemented, documentation pending.
-
 @table @asis
 @item @emph{Description}:
+Makes a symbolic link from file @var{PATH1} to @var{PATH2}. A null
+character (@code{CHAR(0)}) can be used to mark the end of the names in
+@var{PATH1} and @var{PATH2}; otherwise, trailing blanks in the file
+names are ignored.  If the @var{STATUS} argument is supplied, it
+contains 0 on success or a nonzero error code upon return; see
+@code{symlink(2)}.  If the system does not supply @code{symlink(2)}, 
+@code{ENOSYS} is returned.
+
 @item @emph{Standard}:
-@item @emph{Class}:
 GNU extension
 
+@item @emph{Class}:
+Subroutine
+
 @item @emph{Syntax}:
+@code{CALL SYMLNK(PATH1, PATH2 [, STATUS])}
+
 @item @emph{Arguments}:
-@item @emph{Return value}:
-@item @emph{Example}:
+@multitable @columnfractions .15 .80
+@item @var{PATH1} @tab Shall be of default @code{CHARACTER} type.
+@item @var{PATH2} @tab Shall be of default @code{CHARACTER} type.
+@item @var{STATUS} @tab (Optional) Shall be of default @code{INTEGER} type.
+@end multitable
+
 @item @emph{See also}:
-@end table
+@ref{LINK}, @ref{UNLINK}
 
+@end table
 
 
 
 @node SYSTEM
 @section @code{SYSTEM} --- Execute a shell command
 @cindex @code{SYSTEM} intrinsic
-@cindex undocumented intrinsic 
-
-Intrinsic implemented, documentation pending.
 
 @table @asis
 @item @emph{Description}:
+Passes the command @var{COMMAND} to a shell (see @code{system(3)}). If
+argument @var{STATUS} is present, it contains the value returned by
+@code{system(3)}, which is presumably 0 if the shell command succeeded.
+Note that which shell is used to invoke the command is system-dependent
+and environment-dependent.
+
 @item @emph{Standard}:
 GNU extension
 
@@ -8106,15 +8443,19 @@ GNU extension
 Subroutine
 
 @item @emph{Syntax}:
+@code{CALL SYSTEM(COMMAND [, STATUS])}
+
 @item @emph{Arguments}:
-@item @emph{Return value}:
-@item @emph{Example}:
+@multitable @columnfractions .15 .80
+@item @var{COMMAND} @tab Shall be of default @code{CHARACTER} type.
+@item @var{STATUS}  @tab (Optional) Shall be of default @code{INTEGER} type.
+@end multitable
+
 @item @emph{See also}:
 @end table
 
 
 
-
 @node SYSTEM_CLOCK
 @section @code{SYSTEM_CLOCK} --- Time function
 @cindex @code{SYSTEM_CLOCK} intrinsic
@@ -8157,7 +8498,7 @@ F77 and later
 Elemental function
 
 @item @emph{Syntax}:
-@code{X = TAN(X)}
+@code{RESULT = TAN(X)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -8242,10 +8583,61 @@ end program test_tanh
 @cindex time, current
 @cindex current time
 
-Intrinsic implemented, documentation pending.
+@table @asis
+@item @emph{Description}:
+Returns the current time encoded as an integer (in the manner of the
+UNIX function @code{time(3)}). This value is suitable for passing to
+@code{CTIME()}, @code{GMTIME()}, and @code{LTIME()}.
+
+This intrinsic is not fully portable, such as to systems with 32-bit
+@code{INTEGER} types but supporting times wider than 32 bits. Therefore,
+the values returned by this intrinsic might be, or become, negative, or
+numerically less than previous values, during a single run of the
+compiled program.
+
+See @ref{TIME8}, for information on a similar intrinsic that might be
+portable to more GNU Fortran implementations, though to fewer Fortran
+compilers.
+
+@item @emph{Standard}:
+GNU extension
+
+@item @emph{Class}:
+Non-elemental function
+
+@item @emph{Syntax}:
+@code{RESULT = TIME()}
+
+@item @emph{Return value}:
+The return value is a scalar of type @code{INTEGER(4)}.
+
+@item @emph{See also}:
+@ref{CTIME}, @ref{GMTIME}, @ref{LTIME}, @ref{TIME8}
+
+@end table
+
+
+
+@node TIME8
+@section @code{TIME8} --- Time function (64-bit)
+@cindex @code{TIME8} intrinsic
+@cindex time, current
+@cindex current time
 
 @table @asis
 @item @emph{Description}:
+Returns the current time encoded as an integer (in the manner of the
+UNIX function @code{time(3)}). This value is suitable for passing to
+@code{CTIME()}, @code{GMTIME()}, and @code{LTIME()}.
+
+@emph{Warning:} this intrinsic does not increase the range of the timing
+values over that returned by @code{time(3)}. On a system with a 32-bit
+@code{time(3)}, @code{TIME8()} will return a 32-bit value, even though
+it is converted to a 64-bit @code{INTEGER(8)} value. That means
+overflows of the 32-bit value can still occur. Therefore, the values
+returned by this intrinsic might be or become negative or numerically
+less than previous values during a single run of the compiled program.
+
 @item @emph{Standard}:
 GNU extension
 
@@ -8253,10 +8645,14 @@ GNU extension
 Non-elemental function
 
 @item @emph{Syntax}:
-@item @emph{Arguments}:
+@code{RESULT = TIME8()}
+
 @item @emph{Return value}:
-@item @emph{Example}:
+The return value is a scalar of type @code{INTEGER(8)}.
+
 @item @emph{See also}:
+@ref{CTIME}, @ref{GMTIME}, @ref{LTIME}, @ref{TIME}
+
 @end table
 
 
@@ -8278,7 +8674,7 @@ F95 and later
 Elemental function
 
 @item @emph{Syntax}:
-@code{Y = TINY(X)}
+@code{RESULT = TINY(X)}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -8318,7 +8714,6 @@ Transformational function
 
 
 
-
 @node TRANSPOSE
 @section @code{TRANSPOSE} --- Transpose an array of rank two
 @cindex @code{TRANSPOSE} intrinsic
@@ -8343,7 +8738,6 @@ Transformational function
 
 
 
-
 @node TRIM
 @section @code{TRIM} --- Function to remove trailing blank characters of a string
 @cindex @code{TRIM} intrinsic
@@ -8383,7 +8777,7 @@ F95 and later
 Inquiry function
 
 @item @emph{Syntax}:
-@code{I = UBOUND(ARRAY [, DIM])}
+@code{RESULT = UBOUND(ARRAY [, DIM])}
 
 @item @emph{Arguments}:
 @multitable @columnfractions .15 .80
@@ -8411,10 +8805,11 @@ the relevant dimension.
 @cindex @code{UMASK} intrinsic
 @cindex file system operations
 
-Intrinsic implemented, documentation pending.
-
 @table @asis
 @item @emph{Description}:
+Sets the file creation mask to @var{MASK} and returns the old value in
+argument @var{OLD} if it is supplied. See @code{umask(2)}.
+
 @item @emph{Standard}:
 GNU extension
 
@@ -8422,11 +8817,15 @@ GNU extension
 Subroutine
 
 @item @emph{Syntax}:
+@code{CALL UMASK(MASK [, OLD])}
+
 @item @emph{Arguments}:
-@item @emph{Return value}:
-@item @emph{Example}:
-@item @emph{Specific names}:
-@item @emph{See also}:
+@multitable @columnfractions .15 .80
+@item @var{MASK} @tab Shall be a scalar of type @code{INTEGER(*)}.
+@item @var{MASK} @tab (Optional) Shall be a scalar of type
+                      @code{INTEGER(*)}.
+@end multitable
+
 @end table
 
 
@@ -8442,7 +8841,7 @@ Unlinks the file @var{PATH}. A null character (@code{CHAR(0)}) can be
 used to mark the end of the name in @var{PATH}; otherwise, trailing
 blanks in the file name are ignored.  If the @var{STATUS} argument is
 supplied, it contains 0 on success or a nonzero error code upon return;
-see @code{link(2)}.
+see @code{unlink(2)}.
 
 @item @emph{Standard}:
 GNU extension
@@ -8460,33 +8859,11 @@ Subroutine
 @end multitable
 
 @item @emph{See also}:
-@ref{LINK}
+@ref{LINK}, @ref{SYMLNK}
 @end table
 
 
 
-@node UNMASK
-@section @code{UNMASK} --- (?)
-@cindex @code{UNMASK} intrinsic
-@cindex undocumented intrinsic 
-
-Intrinsic implemented, documentation pending.
-
-@table @asis
-@item @emph{Description}:
-@item @emph{Standard}:
-@item @emph{Class}:
-@item @emph{Syntax}:
-@item @emph{Arguments}:
-@item @emph{Return value}:
-@item @emph{Example}:
-@item @emph{Specific names}:
-@item @emph{See also}:
-@end table
-
-
-
-
 @node UNPACK
 @section @code{UNPACK} --- Unpack an array of rank one into an array
 @cindex @code{UNPACK} intrinsic
@@ -8513,7 +8890,6 @@ Transformational function
 
 
 
-
 @node VERIFY
 @section @code{VERIFY} --- Scan a string for the absence of a set of characters
 @cindex @code{VERIFY} intrinsic
@@ -8538,6 +8914,7 @@ Elemental function
 @end table
 
 
+
 @node XOR
 @section @code{XOR} --- Bitwise logical exclusive OR
 @cindex @code{XOR} intrinsic