-/* 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. */
value is computed as:
@example
-SQRT(REALPART(@var{@1@})**2, IMAGPART(@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
@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))
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.
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}.
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}.
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}.
")
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}.
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.
")
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.
")
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.
")
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.
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)}.
")
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
")
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.", "\
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
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.
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.
")
@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.", "\
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.
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
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.
")
")
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}.
")
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
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.
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
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
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)}).
")
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)}).
@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
Owner's gid
@item
+ID of device containing directory entry for file
+(0 if not available)
+
+@item
File size (bytes)
@item
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.", "\
@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
Owner's gid
@item
+ID of device containing directory entry for file
+(0 if not available)
+
+@item
File size (bytes)
@item
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
@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
Owner's gid
@item
+ID of device containing directory entry for file
+(0 if not available)
+
+@item
File size (bytes)
@item
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)}).
")
@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
Owner's gid
@item
+ID of device containing directory entry for file
+(0 if not available)
+
+@item
File size (bytes)
@item
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
@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
Owner's gid
@item
+ID of device containing directory entry for file
+(0 if not available)
+
+@item
File size (bytes)
@item
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.", "\
@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
Owner's gid
@item
+ID of device containing directory entry for file
+(0 if not available)
+
+@item
File size (bytes)
@item
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
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
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
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
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
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
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.
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
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
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.
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.
")
")
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
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
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
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.", "\
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
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.", "\
@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.
+")