aboutsummaryrefslogtreecommitdiff
path: root/gcc/f/intdoc.in
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/f/intdoc.in')
-rw-r--r--gcc/f/intdoc.in320
1 files changed, 263 insertions, 57 deletions
diff --git a/gcc/f/intdoc.in b/gcc/f/intdoc.in
index a0b90ae3907..2027c5a4d7a 100644
--- a/gcc/f/intdoc.in
+++ b/gcc/f/intdoc.in
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1999 Free Software Foundation, Inc.
* This is part of the G77 manual.
* For copying conditions, see the file g77.texi. */
@@ -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.
@@ -1060,7 +1059,11 @@ 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}.
+@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.
")
@@ -1091,6 +1104,16 @@ The value of @var{@1@} is equal to @samp{@var{@2@}(1) + @var{@2@}(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,6 +1125,16 @@ 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.", "\
@@ -1112,6 +1145,16 @@ 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)}.
+@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
@@ -1227,6 +1292,17 @@ 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.
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).", "\
@@ -1235,7 +1311,20 @@ The month (in the range 1--12) is returned in @var{@1@},
the day (in the range 1--7) in @var{@2@},
and the year in @var{@3@} (in the range 0--99).
+@cindex Y2K compliance
+@cindex Year 2000 compliance
+@cindex wraparound, Y2K
+@cindex limits, Y2K
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.
+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 2000.
+
+@xref{IDate Intrinsic (UNIX)}, for information on obtaining more digits
+for the current date.
")
DEFDOC (ITIME, "Get local time of day.", "\
@@ -1247,9 +1336,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 +1359,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 +1386,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 +1438,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 +1472,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 +1499,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
@@ -1538,16 +1715,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 +1733,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,10 +1749,10 @@ 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.
@@ -1592,16 +1770,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 +1788,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,10 +1804,10 @@ 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.
@@ -1656,16 +1835,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 +1853,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,10 +1869,10 @@ 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.
@@ -1716,16 +1896,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 +1914,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,10 +1930,10 @@ 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.
@@ -1778,16 +1959,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 +1977,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,10 +1993,10 @@ 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.
@@ -1834,16 +2016,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 +2034,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,10 +2050,10 @@ 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.
@@ -2396,18 +2579,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.", "\
@@ -2429,7 +2623,7 @@ If the absolute value of the shift count is greater than
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.", "\
@@ -2445,7 +2639,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.", "\
@@ -2489,10 +2683,22 @@ 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 and milliseconds
+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.
")