OSDN Git Service

2003-07-10 Toon Moene <toon@moene.indiv.nluug.nl>
[pf3gnuchains/gcc-fork.git] / gcc / f / intdoc.in
index f8c9b82..55d426a 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1999, 2003 Free Software Foundation, Inc.
  * This is part of the G77 manual.
  * For copying conditions, see the file g77.texi. */
 
@@ -55,11 +55,11 @@ If @var{@1@} is type @code{COMPLEX}, the absolute
 value is computed as:
 
 @example
-SQRT(REALPART(@var{@1@})**2IMAGPART(@var{@1@})**2)
+SQRT(REALPART(@var{@1@})**2+IMAGPART(@var{@1@})**2)
 @end example
 
 @noindent
-Otherwise, it is computed by negating the @var{@1@} if
+Otherwise, it is computed by negating @var{@1@} if
 it is negative, or returning @var{@1@}.
 
 @xref{Sign Intrinsic}, for how to explicitly
@@ -285,7 +285,7 @@ be zero.
 
 @xref{Exp Intrinsic}, for the inverse of this function.
 
-@xref{Log10 Intrinsic}, for the base-10 logarithm function.
+@xref{Log10 Intrinsic}, for the `common' (base-10) logarithm function.
 ")
 
 DEFDOC (ALOG, "Natural logarithm (archaic).", ARCHAIC (LOG, Log))
@@ -296,19 +296,18 @@ DEFDOC (DLOG, "Natural logarithm (archaic).", ARCHAIC (LOG, Log))
 
 DEFDOC (CDLOG, "Natural logarithm (archaic).", ARCHAIC (LOG, Log))
 
-DEFDOC (LOG10, "Natural logarithm.", "\
-Returns the natural logarithm of @var{@1@}, which must
-be greater than zero or, if type @code{COMPLEX}, must not
-be zero.
+DEFDOC (LOG10, "Common logarithm.", "\
+Returns the common logarithm (base 10) of @var{@1@}, which must
+be greater than zero.
 
 The inverse of this function is @samp{10. ** LOG10(@var{@1@})}.
 
 @xref{Log Intrinsic}, for the natural logarithm function.
 ")
 
-DEFDOC (ALOG10, "Natural logarithm (archaic).", ARCHAIC (LOG10, Log10))
+DEFDOC (ALOG10, "Common logarithm (archaic).", ARCHAIC (LOG10, Log10))
 
-DEFDOC (DLOG10, "Natural logarithm (archaic).", ARCHAIC (LOG10, Log10))
+DEFDOC (DLOG10, "Common logarithm (archaic).", ARCHAIC (LOG10, Log10))
 
 DEFDOC (MAX, "Maximum value.", "\
 Returns the argument with the largest value.
@@ -647,7 +646,7 @@ magnitude truncated and its sign preserved, converted
 to type @code{INTEGER(KIND=6)}.
 
 If @var{@1@} is type @code{COMPLEX}, its real part
-is truncated and converted, and its imaginary part is disgregarded.
+is truncated and converted, and its imaginary part is disregarded.
 
 @xref{Int Intrinsic}.
 
@@ -662,7 +661,7 @@ magnitude truncated and its sign preserved, converted
 to type @code{INTEGER(KIND=6)}.
 
 If @var{@1@} is type @code{COMPLEX}, its real part
-is truncated and converted, and its imaginary part is disgregarded.
+is truncated and converted, and its imaginary part is disregarded.
 
 @xref{Int Intrinsic}.
 
@@ -677,7 +676,7 @@ magnitude truncated and its sign preserved, converted
 to type @code{INTEGER(KIND=2)}.
 
 If @var{@1@} is type @code{COMPLEX}, its real part
-is truncated and converted, and its imaginary part is disgregarded.
+is truncated and converted, and its imaginary part is disregarded.
 
 @xref{Int Intrinsic}.
 
@@ -1044,9 +1043,9 @@ and returns that string as the function value.
 ")
 
 DEFDOC (CTIME_subr, "Convert time to Day Mon dd hh:mm:ss yyyy.", "\
-Converts @var{@2@}, a system time value, such as returned by
+Converts @var{@1@}, a system time value, such as returned by
 @code{TIME8()}, to a string of the form @samp{Sat Aug 19 18:13:14 1995},
-and returns that string in @var{@1@}.
+and returns that string in @var{@2@}.
 
 @xref{Time8 Intrinsic}.
 
@@ -1058,9 +1057,13 @@ DEFDOC (DATE, "Get current date as dd-Mon-yy.", "\
 Returns @var{@1@} in the form @samp{@var{dd}-@var{mmm}-@var{yy}},
 representing the numeric day of the month @var{dd}, a three-character
 abbreviation of the month name @var{mmm} and the last two digits of
-the year @var{yy}, e.g.@ @samp{25-Nov-96}.
+the year @var{yy}, e.g.@: @samp{25-Nov-96}.
 
+@cindex Y2K compliance
+@cindex Year 2000 compliance
 This intrinsic is not recommended, due to the year 2000 approaching.
+Therefore, programs making use of this intrinsic
+might not be Year 2000 (Y2K) compliant.
 @xref{CTime Intrinsic (subroutine)}, for information on obtaining more digits
 for the current (or any) date.
 ")
@@ -1076,6 +1079,16 @@ The functions' value is equal to @samp{@var{@1@}(1) + @var{@1@}(2)}.
 Subsequent invocations of @samp{@0@()} return values accumulated since the
 previous invocation.
 
+@cindex wraparound, timings
+@cindex limits, timings
+On some systems, the underlying timings are represented
+using types with sufficiently small limits that overflows
+(wraparounds) are possible, such as 32-bit types.
+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.
+
 Due to the side effects performed by this intrinsic, the function
 form is not recommended.
 ")
@@ -1083,14 +1096,24 @@ form is not recommended.
 DEFDOC (DTIME_subr, "Get elapsed time since last time.", "\
 Initially, return the number of seconds of runtime
 since the start of the process's execution
-in @var{@1@},
-and the user and system components of this in @samp{@var{@2@}(1)}
-and @samp{@var{@2@}(2)} respectively.
-The value of @var{@1@} is equal to @samp{@var{@2@}(1) + @var{@2@}(2)}.
+in @var{@2@},
+and the user and system components of this in @samp{@var{@1@}(1)}
+and @samp{@var{@1@}(2)} respectively.
+The value of @var{@2@} is equal to @samp{@var{@1@}(1) + @var{@1@}(2)}.
 
 Subsequent invocations of @samp{@0@()} set values based on accumulations
 since the previous invocation.
 
+@cindex wraparound, timings
+@cindex limits, timings
+On some systems, the underlying timings are represented
+using types with sufficiently small limits that overflows
+(wraparounds) are possible, such as 32-bit types.
+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.
+
 Some non-GNU implementations of Fortran provide this intrinsic as
 only a function, not as a subroutine.
 ")
@@ -1102,15 +1125,35 @@ as the function value,
 and the user and system components of this in @samp{@var{@1@}(1)}
 and @samp{@var{@1@}(2)} respectively.
 The functions' value is equal to @samp{@var{@1@}(1) + @var{@1@}(2)}.
+
+@cindex wraparound, timings
+@cindex limits, timings
+On some systems, the underlying timings are represented
+using types with sufficiently small limits that overflows
+(wraparounds) are possible, such as 32-bit types.
+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.
 ")
 
 DEFDOC (ETIME_subr, "Get elapsed time for process.", "\
 Return the number of seconds of runtime
 since the start of the process's execution
-in @var{@1@},
-and the user and system components of this in @samp{@var{@2@}(1)}
-and @samp{@var{@2@}(2)} respectively.
-The value of @var{@1@} is equal to @samp{@var{@2@}(1) + @var{@2@}(2)}.
+in @var{@2@},
+and the user and system components of this in @samp{@var{@1@}(1)}
+and @samp{@var{@1@}(2)} respectively.
+The value of @var{@2@} is equal to @samp{@var{@1@}(1) + @var{@1@}(2)}.
+
+@cindex wraparound, timings
+@cindex limits, timings
+On some systems, the underlying timings are represented
+using types with sufficiently small limits that overflows
+(wraparounds) are possible, such as 32-bit types.
+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.
 
 Some non-GNU implementations of Fortran provide this intrinsic as
 only a function, not as a subroutine.
@@ -1125,6 +1168,17 @@ Equivalent to:
 CTIME(TIME8())
 @end example
 
+@cindex Y10K compliance
+@cindex Year 10000 compliance
+@cindex wraparound, Y10K
+@cindex limits, Y10K
+Programs making use of this intrinsic
+might not be Year 10000 (Y10K) compliant.
+For example, the date might appear,
+to such programs, to wrap around
+(change from a larger value to a smaller one)
+as of the Year 10000.
+
 @xref{CTime Intrinsic (function)}.
 ")
 
@@ -1138,6 +1192,17 @@ Equivalent to:
 CALL CTIME(@var{@1@}, TIME8())
 @end example
 
+@cindex Y10K compliance
+@cindex Year 10000 compliance
+@cindex wraparound, Y10K
+@cindex limits, Y10K
+Programs making use of this intrinsic
+might not be Year 10000 (Y10K) compliant.
+For example, the date might appear,
+to such programs, to wrap around
+(change from a larger value to a smaller one)
+as of the Year 10000.
+
 @xref{CTime Intrinsic (subroutine)}.
 
 Some non-GNU implementations of Fortran provide this intrinsic as
@@ -1223,19 +1288,44 @@ zero if not, and negative if the information isn't available.
 ")
 
 DEFDOC (IDATE_unix, "Get local time info.", "\
-Fills @var{@1@} with the numerical values at the current local time
-of day, month (in the range 1--12), and year in elements 1, 2, and 3,
-respectively.
+Fills @var{@1@} with the numerical values at the current local time.
+The day (in the range 1--31), month (in the range 1--12),
+and year appear in elements 1, 2, and 3 of @var{@1@}, respectively.
 The year has four significant digits.
+
+@cindex Y10K compliance
+@cindex Year 10000 compliance
+@cindex wraparound, Y10K
+@cindex limits, Y10K
+Programs making use of this intrinsic
+might not be Year 10000 (Y10K) compliant.
+For example, the date might appear,
+to such programs, to wrap around
+(change from a larger value to a smaller one)
+as of the Year 10000.
 ")
 
 DEFDOC (IDATE_vxt, "Get local time info (VAX/VMS).", "\
 Returns the numerical values of the current local time.
 The month (in the range 1--12) is returned in @var{@1@},
-the day (in the range 1--7) in @var{@2@},
+the day (in the range 1--31) in @var{@2@},
 and the year in @var{@3@} (in the range 0--99).
 
-This intrinsic is not recommended, due to the year 2000 approaching.
+@cindex Y2K compliance
+@cindex Year 2000 compliance
+@cindex wraparound, Y2K
+@cindex limits, Y2K
+This intrinsic is not recommended, due to the fact that
+its return value for year wraps around century boundaries
+(change from a larger value to a smaller one).
+Therefore, programs making use of this intrinsic, for
+instance, might not be Year 2000 (Y2K) compliant.
+For example, the date might appear,
+to such programs, to wrap around
+as of the Year 2000.
+
+@xref{IDate Intrinsic (UNIX)}, for information on obtaining more digits
+for the current date.
 ")
 
 DEFDOC (ITIME, "Get local time of day.", "\
@@ -1247,9 +1337,16 @@ DEFDOC (MCLOCK, "Get number of clock ticks for process.", "\
 Returns the number of clock ticks since the start of the process.
 Supported on systems with @code{clock(3)} (q.v.).
 
+@cindex wraparound, timings
+@cindex limits, timings
 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.
+
 @xref{MClock8 Intrinsic}, for information on a
 similar intrinsic that might be portable to more
 GNU Fortran implementations, though to fewer
@@ -1263,6 +1360,19 @@ DEFDOC (MCLOCK8, "Get number of clock ticks for process.", "\
 Returns the number of clock ticks since the start of the process.
 Supported on systems with @code{clock(3)} (q.v.).
 
+@cindex wraparound, timings
+@cindex limits, timings
+@emph{Warning:} this intrinsic does not increase the range
+of the timing values over that returned by @code{clock(3)}.
+On a system with a 32-bit @code{clock(3)},
+@code{@0@} will return a 32-bit value,
+even though converted to an @samp{INTEGER(KIND=2)} 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.
+
 No Fortran implementations other than GNU Fortran are
 known to support this intrinsic at the time of this
 writing.
@@ -1277,18 +1387,46 @@ If the system does not support @code{clock(3)},
 DEFDOC (SECNDS, "Get local time offset since midnight.", "\
 Returns the local time in seconds since midnight minus the value
 @var{@1@}.
+
+@cindex wraparound, timings
+@cindex limits, timings
+This values returned by this intrinsic
+become numerically less than previous values
+(they wrap around) during a single run of the
+compiler program, under normal circumstances
+(such as running through the midnight hour).
 ")
 
 DEFDOC (SECOND_func, "Get CPU time for process in seconds.", "\
 Returns the process's runtime in seconds---the same value as the
 UNIX function @code{etime} returns.
+
+@cindex wraparound, timings
+@cindex limits, timings
+On some systems, the underlying timings are represented
+using types with sufficiently small limits that overflows
+(wraparounds) are possible, such as 32-bit types.
+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.
 ")
 
 DEFDOC (SECOND_subr, "Get CPU time for process@99@in seconds.", "\
 Returns the process's runtime in seconds in @var{@1@}---the same value
 as the UNIX function @code{etime} returns.
 
-This routine is known from Cray Fortran.  @xref{CPU_Time Intrinsic}
+@cindex wraparound, timings
+@cindex limits, timings
+On some systems, the underlying timings are represented
+using types with sufficiently small limits that overflows
+(wraparounds) are possible, such as 32-bit types.
+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.
+
+This routine is known from Cray Fortran.  @xref{CPU_Time Intrinsic},
 for a standard equivalent.
 ")
 
@@ -1301,12 +1439,32 @@ isn't in general.
 @var{@3@} is the maximum value this can take, which isn't very useful
 in this implementation since it's just the maximum C @code{unsigned
 int} value.
+
+@cindex wraparound, timings
+@cindex limits, timings
+On some systems, the underlying timings are represented
+using types with sufficiently small limits that overflows
+(wraparounds) are possible, such as 32-bit types.
+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.
 ")
 
 DEFDOC (CPU_TIME, "Get current CPU time.", "\
 Returns in @var{@1@} the current value of the system time.
 This implementation of the Fortran 95 intrinsic is just an alias for
 @code{second} @xref{Second Intrinsic (subroutine)}.
+
+@cindex wraparound, timings
+@cindex limits, timings
+On some systems, the underlying timings are represented
+using types with sufficiently small limits that overflows
+(wraparounds) are possible, such as 32-bit types.
+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.
 ")
 
 DEFDOC (TIME8, "Get current time as time value.", "\
@@ -1315,6 +1473,19 @@ Returns the current time encoded as a long integer
 This value is suitable for passing to @code{CTIME},
 @code{GMTIME}, and @code{LTIME}.
 
+@cindex wraparound, timings
+@cindex limits, timings
+@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{@0@} will return a 32-bit value,
+even though converted to an @samp{INTEGER(KIND=2)} 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.
+
 No Fortran implementations other than GNU Fortran are
 known to support this intrinsic at the time of this
 writing.
@@ -1329,9 +1500,16 @@ Returns the current time encoded as an integer
 This value is suitable for passing to @code{CTIME},
 @code{GMTIME}, and @code{LTIME}.
 
+@cindex wraparound, timings
+@cindex limits, timings
 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.
+
 @xref{Time8 Intrinsic}, for information on a
 similar intrinsic that might be portable to more
 GNU Fortran implementations, though to fewer
@@ -1365,7 +1543,7 @@ See @code{erf(3m)}, which provides the implementation.
 
 DEFDOC (ERFC, "Complementary error function.", "\
 Returns the complementary error function of @var{@1@}:
-@samp{ERFC(R) = 1 - ERF(R)} (except that the result may be more
+@samp{ERFC(R) = 1 - ERF(R)} (except that the result might be more
 accurate than explicitly evaluating that formulae would give).
 See @code{erfc(3m)}, which provides the implementation.
 ")
@@ -1407,7 +1585,7 @@ almost certainly want to use something better.
 ")
 
 DEFDOC (SRAND, "Random seed.", "\
-Reinitialises the generator with the seed in @var{@1@}.
+Reinitializes the generator with the seed in @var{@1@}.
 @xref{IRand Intrinsic}.
 @xref{Rand Intrinsic}.
 ")
@@ -1440,12 +1618,12 @@ Existence
 DEFDOC (CHDIR_subr, "Change directory.", "\
 Sets the current working directory to be @var{@1@}.
 If the @var{@2@} argument is supplied, it contains 0
-on success or a non-zero error code otherwise upon return.
+on success or a nonzero error code otherwise upon return.
 See @code{chdir(3)}.
 
 @emph{Caution:} Using this routine during I/O to a unit connected with a
 non-absolute file name can cause subsequent I/O on such a unit to fail
-because the I/O library may reopen files by name.
+because the I/O library might reopen files by name.
 
 Some non-GNU implementations of Fortran provide this intrinsic as
 only a function, not as a subroutine, or do not support the
@@ -1454,12 +1632,12 @@ only a function, not as a subroutine, or do not support the
 
 DEFDOC (CHDIR_func, "Change directory.", "\
 Sets the current working directory to be @var{@1@}.
-Returns 0 on success or a non-zero error code.
+Returns 0 on success or a nonzero error code.
 See @code{chdir(3)}.
 
 @emph{Caution:} Using this routine during I/O to a unit connected with a
 non-absolute file name can cause subsequent I/O on such a unit to fail
-because the I/O library may reopen files by name.
+because the I/O library might reopen files by name.
 
 Due to the side effects performed by this intrinsic, the function
 form is not recommended.
@@ -1475,11 +1653,11 @@ trailing blanks in @var{@1@} are ignored.
 Currently, @var{@1@} must not contain the single quote
 character.
 
-Returns 0 on success or a non-zero error code otherwise.
+Returns 0 on success or a nonzero error code otherwise.
 
 Note that this currently works
 by actually invoking @code{/bin/chmod} (or the @code{chmod} found when
-the library was configured) and so may fail in some circumstances and
+the library was configured) and so might fail in some circumstances and
 will, anyway, be slow.
 
 Due to the side effects performed by this intrinsic, the function
@@ -1497,11 +1675,11 @@ Currently, @var{@1@} must not contain the single quote
 character.
 
 If the @var{@3@} argument is supplied, it contains
-0 on success or a non-zero error code upon return.
+0 on success or a nonzero error code upon return.
 
 Note that this currently works
 by actually invoking @code{/bin/chmod} (or the @code{chmod} found when
-the library was configured) and so may fail in some circumstances and
+the library was configured) and so might fail in some circumstances and
 will, anyway, be slow.
 
 Some non-GNU implementations of Fortran provide this intrinsic as
@@ -1512,7 +1690,7 @@ only a function, not as a subroutine, or do not support the
 DEFDOC (GETCWD_func, "Get current working directory.", "\
 Places the current working directory in @var{@1@}.
 Returns 0 on
-success, otherwise a non-zero error code
+success, otherwise a nonzero error code
 (@code{ENOSYS} if the system does not provide @code{getcwd(3)}
 or @code{getwd(3)}).
 ")
@@ -1520,7 +1698,7 @@ or @code{getwd(3)}).
 DEFDOC (GETCWD_subr, "Get current working directory.", "\
 Places the current working directory in @var{@1@}.
 If the @var{@2@} argument is supplied, it contains 0
-success or a non-zero error code upon return
+success or a nonzero error code upon return
 (@code{ENOSYS} if the system does not provide @code{getcwd(3)}
 or @code{getwd(3)}).
 
@@ -1538,16 +1716,13 @@ extracted from the @code{stat} structure as returned by
 
 @enumerate
 @item
-File mode
+Device ID
 
 @item
 Inode number
 
 @item
-ID of device containing directory entry for file
-
-@item
-Device id (if relevant)
+File mode
 
 @item
 Number of links
@@ -1559,6 +1734,10 @@ Owner's uid
 Owner's gid
 
 @item
+ID of device containing directory entry for file
+(0 if not available)
+
+@item
 File size (bytes)
 
 @item
@@ -1571,16 +1750,16 @@ Last modification time
 Last file status change time
 
 @item
-Preferred I/O block size
+Preferred I/O block size (-1 if not available)
 
 @item
-Number of blocks allocated
+Number of blocks allocated (-1 if not available)
 @end enumerate
 
 Not all these elements are relevant on all systems.
 If an element is not relevant, it is returned as 0.
 
-Returns 0 on success or a non-zero error code.
+Returns 0 on success or a nonzero error code.
 ")
 
 DEFDOC (FSTAT_subr, "Get file information.", "\
@@ -1592,16 +1771,13 @@ extracted from the @code{stat} structure as returned by
 
 @enumerate
 @item
-File mode
+Device ID
 
 @item
 Inode number
 
 @item
-ID of device containing directory entry for file
-
-@item
-Device id (if relevant)
+File mode
 
 @item
 Number of links
@@ -1613,6 +1789,10 @@ Owner's uid
 Owner's gid
 
 @item
+ID of device containing directory entry for file
+(0 if not available)
+
+@item
 File size (bytes)
 
 @item
@@ -1625,17 +1805,17 @@ Last modification time
 Last file status change time
 
 @item
-Preferred I/O block size
+Preferred I/O block size (-1 if not available)
 
 @item
-Number of blocks allocated
+Number of blocks allocated (-1 if not available)
 @end enumerate
 
 Not all these elements are relevant on all systems.
 If an element is not relevant, it is returned as 0.
 
 If the @var{@3@} argument is supplied, it contains
-0 on success or a non-zero error code upon return.
+0 on success or a nonzero error code upon return.
 
 Some non-GNU implementations of Fortran provide this intrinsic as
 only a function, not as a subroutine, or do not support the
@@ -1656,16 +1836,13 @@ The values in this array are extracted from the
 
 @enumerate
 @item
-File mode
+Device ID
 
 @item
 Inode number
 
 @item
-ID of device containing directory entry for file
-
-@item
-Device id (if relevant)
+File mode
 
 @item
 Number of links
@@ -1677,6 +1854,10 @@ Owner's uid
 Owner's gid
 
 @item
+ID of device containing directory entry for file
+(0 if not available)
+
+@item
 File size (bytes)
 
 @item
@@ -1689,16 +1870,16 @@ Last modification time
 Last file status change time
 
 @item
-Preferred I/O block size
+Preferred I/O block size (-1 if not available)
 
 @item
-Number of blocks allocated
+Number of blocks allocated (-1 if not available)
 @end enumerate
 
 Not all these elements are relevant on all systems.
 If an element is not relevant, it is returned as 0.
 
-Returns 0 on success or a non-zero error code
+Returns 0 on success or a nonzero error code
 (@code{ENOSYS} if the system does not provide @code{lstat(2)}).
 ")
 
@@ -1716,16 +1897,13 @@ The values in this array are extracted from the
 
 @enumerate
 @item
-File mode
+Device ID
 
 @item
 Inode number
 
 @item
-ID of device containing directory entry for file
-
-@item
-Device id (if relevant)
+File mode
 
 @item
 Number of links
@@ -1737,6 +1915,10 @@ Owner's uid
 Owner's gid
 
 @item
+ID of device containing directory entry for file
+(0 if not available)
+
+@item
 File size (bytes)
 
 @item
@@ -1749,17 +1931,17 @@ Last modification time
 Last file status change time
 
 @item
-Preferred I/O block size
+Preferred I/O block size (-1 if not available)
 
 @item
-Number of blocks allocated
+Number of blocks allocated (-1 if not available)
 @end enumerate
 
 Not all these elements are relevant on all systems.
 If an element is not relevant, it is returned as 0.
 
 If the @var{@3@} argument is supplied, it contains
-0 on success or a non-zero error code upon return
+0 on success or a nonzero error code upon return
 (@code{ENOSYS} if the system does not provide @code{lstat(2)}).
 
 Some non-GNU implementations of Fortran provide this intrinsic as
@@ -1778,16 +1960,13 @@ The values in this array are extracted from the
 
 @enumerate
 @item
-File mode
+Device ID
 
 @item
 Inode number
 
 @item
-ID of device containing directory entry for file
-
-@item
-Device id (if relevant)
+File mode
 
 @item
 Number of links
@@ -1799,6 +1978,10 @@ Owner's uid
 Owner's gid
 
 @item
+ID of device containing directory entry for file
+(0 if not available)
+
+@item
 File size (bytes)
 
 @item
@@ -1811,16 +1994,16 @@ Last modification time
 Last file status change time
 
 @item
-Preferred I/O block size
+Preferred I/O block size (-1 if not available)
 
 @item
-Number of blocks allocated
+Number of blocks allocated (-1 if not available)
 @end enumerate
 
 Not all these elements are relevant on all systems.
 If an element is not relevant, it is returned as 0.
 
-Returns 0 on success or a non-zero error code.
+Returns 0 on success or a nonzero error code.
 ")
 
 DEFDOC (STAT_subr, "Get file information.", "\
@@ -1834,16 +2017,13 @@ The values in this array are extracted from the
 
 @enumerate
 @item
-File mode
+Device ID
 
 @item
 Inode number
 
 @item
-ID of device containing directory entry for file
-
-@item
-Device id (if relevant)
+File mode
 
 @item
 Number of links
@@ -1855,6 +2035,10 @@ Owner's uid
 Owner's gid
 
 @item
+ID of device containing directory entry for file
+(0 if not available)
+
+@item
 File size (bytes)
 
 @item
@@ -1867,17 +2051,17 @@ Last modification time
 Last file status change time
 
 @item
-Preferred I/O block size
+Preferred I/O block size (-1 if not available)
 
 @item
-Number of blocks allocated
+Number of blocks allocated (-1 if not available)
 @end enumerate
 
 Not all these elements are relevant on all systems.
 If an element is not relevant, it is returned as 0.
 
 If the @var{@3@} argument is supplied, it contains
-0 on success or a non-zero error code upon return.
+0 on success or a nonzero error code upon return.
 
 Some non-GNU implementations of Fortran provide this intrinsic as
 only a function, not as a subroutine, or do not support the
@@ -1890,7 +2074,7 @@ A null character (@samp{CHAR(0)}) marks the end of
 the names in @var{@1@} and @var{@2@}---otherwise,
 trailing blanks in @var{@1@} and @var{@2@} are ignored.
 If the @var{@3@} argument is supplied, it contains
-0 on success or a non-zero error code upon return.
+0 on success or a nonzero error code upon return.
 See @code{link(2)}.
 
 Some non-GNU implementations of Fortran provide this intrinsic as
@@ -1903,7 +2087,7 @@ Makes a (hard) link from file @var{@1@} to @var{@2@}.
 A null character (@samp{CHAR(0)}) marks the end of
 the names in @var{@1@} and @var{@2@}---otherwise,
 trailing blanks in @var{@1@} and @var{@2@} are ignored.
-Returns 0 on success or a non-zero error code.
+Returns 0 on success or a nonzero error code.
 See @code{link(2)}.
 
 Due to the side effects performed by this intrinsic, the function
@@ -1916,7 +2100,7 @@ A null character (@samp{CHAR(0)}) marks the end of
 the names in @var{@1@} and @var{@2@}---otherwise,
 trailing blanks in @var{@1@} and @var{@2@} are ignored.
 If the @var{@3@} argument is supplied, it contains
-0 on success or a non-zero error code upon return
+0 on success or a nonzero error code upon return
 (@code{ENOSYS} if the system does not provide @code{symlink(2)}).
 
 Some non-GNU implementations of Fortran provide this intrinsic as
@@ -1929,7 +2113,7 @@ Makes a symbolic link from file @var{@1@} to @var{@2@}.
 A null character (@samp{CHAR(0)}) marks the end of
 the names in @var{@1@} and @var{@2@}---otherwise,
 trailing blanks in @var{@1@} and @var{@2@} are ignored.
-Returns 0 on success or a non-zero error code
+Returns 0 on success or a nonzero error code
 (@code{ENOSYS} if the system does not provide @code{symlink(2)}).
 
 Due to the side effects performed by this intrinsic, the function
@@ -1943,7 +2127,7 @@ the names in @var{@1@} and @var{@2@}---otherwise,
 trailing blanks in @var{@1@} and @var{@2@} are ignored.
 See @code{rename(2)}.
 If the @var{@3@} argument is supplied, it contains
-0 on success or a non-zero error code upon return.
+0 on success or a nonzero error code upon return.
 
 Some non-GNU implementations of Fortran provide this intrinsic as
 only a function, not as a subroutine, or do not support the
@@ -1956,7 +2140,7 @@ A null character (@samp{CHAR(0)}) marks the end of
 the names in @var{@1@} and @var{@2@}---otherwise,
 trailing blanks in @var{@1@} and @var{@2@} are ignored.
 See @code{rename(2)}.
-Returns 0 on success or a non-zero error code.
+Returns 0 on success or a nonzero error code.
 
 Due to the side effects performed by this intrinsic, the function
 form is not recommended.
@@ -1985,7 +2169,7 @@ A null character (@samp{CHAR(0)}) marks the end of
 the name in @var{@1@}---otherwise,
 trailing blanks in @var{@1@} are ignored.
 If the @var{@2@} argument is supplied, it contains
-0 on success or a non-zero error code upon return.
+0 on success or a nonzero error code upon return.
 See @code{unlink(2)}.
 
 Some non-GNU implementations of Fortran provide this intrinsic as
@@ -1998,7 +2182,7 @@ Unlink the file @var{@1@}.
 A null character (@samp{CHAR(0)}) marks the end of
 the name in @var{@1@}---otherwise,
 trailing blanks in @var{@1@} are ignored.
-Returns 0 on success or a non-zero error code.
+Returns 0 on success or a nonzero error code.
 See @code{unlink(2)}.
 
 Due to the side effects performed by this intrinsic, the function
@@ -2055,23 +2239,31 @@ in @var{@1@}.
 
 DEFDOC (HOSTNM_func, "Get host name.", "\
 Fills @var{@1@} with the system's host name returned by
-@code{gethostname(2)}, returning 0 on success or a non-zero error code
+@code{gethostname(2)}, returning 0 on success or a nonzero error code
 (@code{ENOSYS} if the system does not provide @code{gethostname(2)}).
+
+On some systems (specifically SCO) it might be necessary to link the
+``socket'' library if you call this routine.
+Typically this means adding @samp{-lg2c -lsocket -lm}
+to the @code{g77} command line when linking the program.
 ")
 
 DEFDOC (HOSTNM_subr, "Get host name.", "\
 Fills @var{@1@} with the system's host name returned by
 @code{gethostname(2)}.
 If the @var{@2@} argument is supplied, it contains
-0 on success or a non-zero error code upon return
+0 on success or a nonzero error code upon return
 (@code{ENOSYS} if the system does not provide @code{gethostname(2)}).
 
 Some non-GNU implementations of Fortran provide this intrinsic as
 only a function, not as a subroutine, or do not support the
 (optional) @var{@2@} argument.
-")
 
-/* Fixme: stream I/O */
+On some systems (specifically SCO) it might be necessary to link the
+``socket'' library if you call this routine.
+Typically this means adding @samp{-lg2c -lsocket -lm}
+to the @code{g77} command line when linking the program.
+")
 
 DEFDOC (FLUSH, "Flush buffered output.", "\
 Flushes Fortran unit(s) currently open for output.
@@ -2156,10 +2348,10 @@ Returns in
 
 DEFDOC (FSEEK, "Position file (low-level).", "\
 Attempts to move Fortran unit @var{@1@} to the specified
-@var{Offset}: absolute offset if @var{@2@}=0; relative to the
-current offset if @var{@2@}=1; relative to the end of the file if
-@var{@2@}=2.
-It branches to label @var{@3@} if @var{@1@} is
+@var{@2@}: absolute offset if @var{@3@}=0; relative to the
+current offset if @var{@3@}=1; relative to the end of the file if
+@var{@3@}=2.
+It branches to label @var{@4@} if @var{@1@} is
 not open or if the call otherwise fails.
 ")
 
@@ -2190,8 +2382,8 @@ terminal.
 ")
 
 DEFDOC (TTYNAM_subr, "Get name of terminal device for unit.", "\
-Sets @var{@1@} to the name of the terminal device open on logical unit
-@var{@2@} or a blank string if @var{@2@} is not connected to a
+Sets @var{@2@} to the name of the terminal device open on logical unit
+@var{@1@} or to a blank string if @var{@1@} is not connected to a
 terminal.
 
 Some non-GNU implementations of Fortran provide this intrinsic as
@@ -2322,7 +2514,7 @@ allowing you to take appropriate action.
 
 DEFDOC (KILL_func, "Signal a process.", "\
 Sends the signal specified by @var{@2@} to the process @var{@1@}.
-Returns 0 on success or a non-zero error code.
+Returns 0 on success or a nonzero error code.
 See @code{kill(2)}.
 
 Due to the side effects performed by this intrinsic, the function
@@ -2332,7 +2524,7 @@ form is not recommended.
 DEFDOC (KILL_subr, "Signal a process.", "\
 Sends the signal specified by @var{@2@} to the process @var{@1@}.
 If the @var{@3@} argument is supplied, it contains
-0 on success or a non-zero error code upon return.
+0 on success or a nonzero error code upon return.
 See @code{kill(2)}.
 
 Some non-GNU implementations of Fortran provide this intrinsic as
@@ -2388,18 +2580,29 @@ DEFDOC (TIME_vxt, "Get the time as a character value.", "\
 Returns in @var{@1@} a character representation of the current time as
 obtained from @code{ctime(3)}.
 
-@xref{Fdate Intrinsic (subroutine)} for an equivalent routine.
+@cindex Y10K compliance
+@cindex Year 10000 compliance
+@cindex wraparound, Y10K
+@cindex limits, Y10K
+Programs making use of this intrinsic
+might not be Year 10000 (Y10K) compliant.
+For example, the date might appear,
+to such programs, to wrap around
+(change from a larger value to a smaller one)
+as of the Year 10000.
+
+@xref{FDate Intrinsic (subroutine)}, for an equivalent routine.
 ")
 
 DEFDOC (IBCLR, "Clear a bit.", "\
 Returns the value of @var{@1@} with bit @var{@2@} cleared (set to
 zero).
-@xref{BTest Intrinsic} for information on bit positions.
+@xref{BTest Intrinsic}, for information on bit positions.
 ")
 
 DEFDOC (IBSET, "Set a bit.", "\
 Returns the value of @var{@1@} with bit @var{@2@} set (to one).
-@xref{BTest Intrinsic} for information on bit positions.
+@xref{BTest Intrinsic}, for information on bit positions.
 ")
 
 DEFDOC (IBITS, "Extract a bit subfield of a variable.", "\
@@ -2418,17 +2621,16 @@ All bits representing @var{@1@} are shifted @var{@2@} places.
 indicates no shift and @samp{@var{@2@}.LT.0} indicates a right shift.
 If the absolute value of the shift count is greater than
 @samp{BIT_SIZE(@var{@1@})}, the result is undefined.
-Bits shifted out from the left end or the right end, as the case may be,
-are lost.
+Bits shifted out from the left end or the right end are lost.
 Zeros are shifted in from the opposite end.
 
-@xref{IShftC Intrinsic} for the circular-shift equivalent.
+@xref{IShftC Intrinsic}, for the circular-shift equivalent.
 ")
 
 DEFDOC (ISHFTC, "Circular bit shift.", "\
 The rightmost @var{@3@} bits of the argument @var{@1@}
 are shifted circularly @var{@2@}
-places, i.e.@ the bits shifted out of one end are shifted into 
+places, i.e.@: the bits shifted out of one end are shifted into 
 the opposite end.
 No bits are lost.
 The unshifted bits of the result are the same as
@@ -2438,7 +2640,7 @@ must be less than or equal to @var{@3@}.
 The value of @var{@3@} must be greater than or equal to one and less than 
 or equal to @samp{BIT_SIZE(@var{@1@})}.
 
-@xref{IShft Intrinsic} for the logical shift equivalent.
+@xref{IShft Intrinsic}, for the logical shift equivalent.
 ")
 
 DEFDOC (MVBITS, "Moving a bit field.", "\
@@ -2463,8 +2665,41 @@ Causes external subroutine @var{@2@} to be executed after a delay of
 @var{@1@} seconds by using @code{alarm(1)} to set up a signal and
 @code{signal(2)} to catch it.
 If @var{@3@} is supplied, it will be
-returned with the the number of seconds remaining until any previously
+returned with the number of seconds remaining until any previously
 scheduled alarm was due to be delivered, or zero if there was no
 previously scheduled alarm.
 @xref{Signal Intrinsic (subroutine)}.
 ")
+
+DEFDOC (DATE_AND_TIME, "Get the current date and time.", "\
+Returns:
+@table @var
+@item @1@
+The date in the form @var{ccyymmdd}: century, year, month and day;
+@item @2@
+The time in the form @samp{@var{hhmmss.ss}}: hours, minutes, seconds
+and milliseconds;
+@item @3@
+The difference between local time and UTC (GMT) in the form @var{Shhmm}:
+sign, hours and minutes, e.g.@: @samp{-0500} (winter in New York);
+@item @4@
+The year, month of the year, day of the month, time difference in
+minutes from UTC, hour of the day, minutes of the hour, seconds
+of the minute, and milliseconds
+of the second in successive values of the array.
+@end table
+
+@cindex Y10K compliance
+@cindex Year 10000 compliance
+@cindex wraparound, Y10K
+@cindex limits, Y10K
+Programs making use of this intrinsic
+might not be Year 10000 (Y10K) compliant.
+For example, the date might appear,
+to such programs, to wrap around
+(change from a larger value to a smaller one)
+as of the Year 10000.
+
+On systems where a millisecond timer isn't available, the millisecond
+value is returned as zero.
+")