Commit fe284266 by Daniel Franke Committed by Steven G. Kargl

intrinsic.texi: Update Copyright date.

2006-08-26  Daniel Franke <franke.daniel@gmail.com>

        * intrinsic.texi: Update Copyright date.  Added documentation
        for ACOSH, AND, ASINH, ATANH, CHDIR, FGET, FGETC, FPUT, FPUTC,
        GETCWD, OR and XOR intrinsics, removed inadvertently introduced
        doc-stubs for EQV and NEQV, corrected some typographical errors.

From-SVN: r116470
parent d2348985
2006-08-26 Daniel Franke <franke.daniel@gmail.com>
* intrinsic.texi: Update Copyright date. Added documentation
for ACOSH, AND, ASINH, ATANH, CHDIR, FGET, FGETC, FPUT, FPUTC,
GETCWD, OR and XOR intrinsics, removed inadvertently introduced
doc-stubs for EQV and NEQV, corrected some typographical errors.
2006-08-24 Daniel Franke <franke.daniel@gmail.com>, 2006-08-24 Daniel Franke <franke.daniel@gmail.com>,
Brooks Moses <bmoses@stanford.edu> Brooks Moses <bmoses@stanford.edu>
......
@ignore @ignore
Copyright (C) 2005 Copyright (C) 2005, 2006
Free Software Foundation, Inc. Free Software Foundation, Inc.
This is part of the GFORTRAN manual. This is part of the GFORTRAN manual.
For copying conditions, see the file gfortran.texi. For copying conditions, see the file gfortran.texi.
...@@ -24,6 +24,16 @@ Some basic guidelines for editing this document: ...@@ -24,6 +24,16 @@ Some basic guidelines for editing this document:
@end ignore @end ignore
@tex
\gdef\acos{\mathop{\rm acos}\nolimits}
\gdef\asin{\mathop{\rm asin}\nolimits}
\gdef\atan{\mathop{\rm atan}\nolimits}
\gdef\acosh{\mathop{\rm acosh}\nolimits}
\gdef\asinh{\mathop{\rm asinh}\nolimits}
\gdef\atanh{\mathop{\rm atanh}\nolimits}
@end tex
@node Intrinsic Procedures @node Intrinsic Procedures
@chapter Intrinsic Procedures @chapter Intrinsic Procedures
@cindex Intrinsic Procedures @cindex Intrinsic Procedures
...@@ -49,7 +59,7 @@ Some intrinsics have documentation yet to be completed as indicated by 'document ...@@ -49,7 +59,7 @@ Some intrinsics have documentation yet to be completed as indicated by 'document
* @code{ALARM}: ALARM, Set an alarm clock * @code{ALARM}: ALARM, Set an alarm clock
* @code{ALL}: ALL, Determine if all values are true * @code{ALL}: ALL, Determine if all values are true
* @code{ALLOCATED}: ALLOCATED, Status of allocatable entity * @code{ALLOCATED}: ALLOCATED, Status of allocatable entity
* @code{AND}: AND, Logical and * @code{AND}: AND, Bitwise logical AND
* @code{ANINT}: ANINT, Nearest whole number * @code{ANINT}: ANINT, Nearest whole number
* @code{ANY}: ANY, Determine if any values are true * @code{ANY}: ANY, Determine if any values are true
* @code{ASIN}: ASIN, Arcsine function * @code{ASIN}: ASIN, Arcsine function
...@@ -75,7 +85,7 @@ Some intrinsics have documentation yet to be completed as indicated by 'document ...@@ -75,7 +85,7 @@ Some intrinsics have documentation yet to be completed as indicated by 'document
* @code{CONJG}: CONJG, Complex conjugate function * @code{CONJG}: CONJG, Complex conjugate function
* @code{COS}: COS, Cosine function * @code{COS}: COS, Cosine function
* @code{COSH}: COSH, Hyperbolic cosine function * @code{COSH}: COSH, Hyperbolic cosine function
* @code{COUNT}: COUNT, Count occurrences of .TRUE. in an array * @code{COUNT}: COUNT, Count occurrences of TRUE in an array
* @code{CPU_TIME}: CPU_TIME, CPU time subroutine * @code{CPU_TIME}: CPU_TIME, CPU time subroutine
* @code{CSHIFT}: CSHIFT, Circular array shift function * @code{CSHIFT}: CSHIFT, Circular array shift function
* @code{CTIME}: CTIME, Subroutine (or function) to convert a time into a string * @code{CTIME}: CTIME, Subroutine (or function) to convert a time into a string
...@@ -91,7 +101,6 @@ Some intrinsics have documentation yet to be completed as indicated by 'document ...@@ -91,7 +101,6 @@ Some intrinsics have documentation yet to be completed as indicated by 'document
* @code{DTIME}: DTIME, Execution time subroutine (or function) * @code{DTIME}: DTIME, Execution time subroutine (or function)
* @code{EOSHIFT}: EOSHIFT, End-off shift function * @code{EOSHIFT}: EOSHIFT, End-off shift function
* @code{EPSILON}: EPSILON, Epsilon function * @code{EPSILON}: EPSILON, Epsilon function
* @code{EQV}: EQV, Logical equivalence
* @code{ERF}: ERF, Error function * @code{ERF}: ERF, Error function
* @code{ERFC}: ERFC, Complementary error function * @code{ERFC}: ERFC, Complementary error function
* @code{ETIME}: ETIME, Execution time subroutine (or function) * @code{ETIME}: ETIME, Execution time subroutine (or function)
...@@ -99,13 +108,13 @@ Some intrinsics have documentation yet to be completed as indicated by 'document ...@@ -99,13 +108,13 @@ Some intrinsics have documentation yet to be completed as indicated by 'document
* @code{EXP}: EXP, Exponential function * @code{EXP}: EXP, Exponential function
* @code{EXPONENT}: EXPONENT, Exponent function * @code{EXPONENT}: EXPONENT, Exponent function
* @code{FDATE}: FDATE, Subroutine (or function) to get the current time as a string * @code{FDATE}: FDATE, Subroutine (or function) to get the current time as a string
* @code{FGET}: FGET, Read a single character from stdin in stream mode * @code{FGET}: FGET, Read a single character in stream mode from stdin
* @code{FGETC}: FGETC, Read a single character in stream mode * @code{FGETC}: FGETC, Read a single character in stream mode
* @code{FLOAT}: FLOAT, Convert integer to default real * @code{FLOAT}: FLOAT, Convert integer to default real
* @code{FLOOR}: FLOOR, Integer floor function * @code{FLOOR}: FLOOR, Integer floor function
* @code{FLUSH}: FLUSH, Flush I/O unit(s) * @code{FLUSH}: FLUSH, Flush I/O unit(s)
* @code{FNUM}: FNUM, File number function * @code{FNUM}: FNUM, File number function
* @code{FPUT}: FPUT, Write a single character to stdout in stream mode * @code{FPUT}: FPUT, Write a single character in stream mode to stdout
* @code{FPUTC}: FPUTC, Write a single character in stream mode * @code{FPUTC}: FPUTC, Write a single character in stream mode
* @code{FRACTION}: FRACTION, Fractional part of the model representation * @code{FRACTION}: FRACTION, Fractional part of the model representation
* @code{FREE}: FREE, Memory de-allocation subroutine * @code{FREE}: FREE, Memory de-allocation subroutine
...@@ -174,11 +183,10 @@ Some intrinsics have documentation yet to be completed as indicated by 'document ...@@ -174,11 +183,10 @@ Some intrinsics have documentation yet to be completed as indicated by 'document
* @code{MODULO}: MODULO, Modulo function * @code{MODULO}: MODULO, Modulo function
* @code{MVBITS}: MVBITS, Move bits from one integer to another * @code{MVBITS}: MVBITS, Move bits from one integer to another
* @code{NEAREST}: NEAREST, Nearest representable number * @code{NEAREST}: NEAREST, Nearest representable number
* @code{NEQV}: NEQV, Logical non-equivalence
* @code{NINT}: NINT, Nearest whole number * @code{NINT}: NINT, Nearest whole number
* @code{NOT}: NOT, Logical negation * @code{NOT}: NOT, Logical negation
* @code{NULL}: NULL, Function that returns an dissassociated pointer * @code{NULL}: NULL, Function that returns an disassociated pointer
* @code{OR}: OR, Logical inclusive disjunction * @code{OR}: OR, Bitwise logical OR
* @code{PACK}: PACK, Pack an array into an array of rank one * @code{PACK}: PACK, Pack an array into an array of rank one
* @code{PERROR}: PERROR, Print system error message * @code{PERROR}: PERROR, Print system error message
* @code{PRECISION}: PRECISION, Decimal precision of a real kind * @code{PRECISION}: PRECISION, Decimal precision of a real kind
...@@ -233,7 +241,7 @@ Some intrinsics have documentation yet to be completed as indicated by 'document ...@@ -233,7 +241,7 @@ Some intrinsics have documentation yet to be completed as indicated by 'document
* @code{UNMASK}: UNMASK, (?) * @code{UNMASK}: UNMASK, (?)
* @code{UNPACK}: UNPACK, Unpack an array of rank one into an array * @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{VERIFY}: VERIFY, Scan a string for the absence of a set of characters
* @code{XOR}: XOR, Logical exclusive or * @code{XOR}: XOR, Bitwise logical exclusive or
@end menu @end menu
@node Introduction @node Introduction
...@@ -445,7 +453,7 @@ end program test_achar ...@@ -445,7 +453,7 @@ end program test_achar
@table @asis @table @asis
@item @emph{Description}: @item @emph{Description}:
@code{ACOS(X)} computes the arccosine of @var{X} (inverse of @code{COS(X)}. @code{ACOS(X)} computes the arccosine of @var{X} (inverse of @code{COS(X)}).
@item @emph{Standard}: @item @emph{Standard}:
F77 and later F77 and later
...@@ -464,8 +472,8 @@ less than one. ...@@ -464,8 +472,8 @@ less than one.
@item @emph{Return value}: @item @emph{Return value}:
The return value is of type @code{REAL(*)} and it lies in the The return value is of type @code{REAL(*)} and it lies in the
range @math{ 0 \leq \arccos (x) \leq \pi}. The kind type range @math{ 0 \leq \acos(x) \leq \pi}. The kind type parameter
parameter is the same as @var{X}. is the same as @var{X}.
@item @emph{Example}: @item @emph{Example}:
@smallexample @smallexample
...@@ -493,17 +501,37 @@ Inverse function: @ref{COS} ...@@ -493,17 +501,37 @@ Inverse function: @ref{COS}
@cindex hyperbolic arccosine @cindex hyperbolic arccosine
@cindex hyperbolic cosine (inverse) @cindex hyperbolic cosine (inverse)
Intrinsic implemented, documentation pending.
@table @asis @table @asis
@item @emph{Description}: @item @emph{Description}:
@code{ACOSH(X)} computes the area hyperbolic cosine of @var{X} (inverse of @code{COSH(X)}).
@item @emph{Standard}: @item @emph{Standard}:
GNU extension
@item @emph{Class}: @item @emph{Class}:
Elemental function
@item @emph{Syntax}: @item @emph{Syntax}:
@code{X = ACOSH(X)}
@item @emph{Arguments}: @item @emph{Arguments}:
@multitable @columnfractions .15 .80
@item @var{X} @tab The type shall be @code{REAL(*)} with a magnitude that is
greater or equal to one.
@end multitable
@item @emph{Return value}: @item @emph{Return value}:
The return value is of type @code{REAL(*)} and it lies in the
range @math{0 \leq \acosh (x) \leq \infty}.
@item @emph{Example}: @item @emph{Example}:
@item @emph{Specific names}: @smallexample
PROGRAM test_acosh
REAL(8), DIMENSION(3) :: x = (/ 1.0, 2.0, 3.0 /)
WRITE (*,*) ACOSH(x)
END PROGRAM
@end smallexample
@item @emph{See also}: @item @emph{See also}:
Inverse function: @ref{COSH} Inverse function: @ref{COSH}
@end table @end table
...@@ -861,22 +889,51 @@ end program test_allocated ...@@ -861,22 +889,51 @@ end program test_allocated
@node AND @node AND
@section @code{AND} --- Logical and @section @code{AND} --- Bitwise logical AND
@findex @code{AND} intrinsic @findex @code{AND} intrinsic
@cindex logical operations @cindex bit operations
Intrinsic implemented, documentation pending.
@table @asis @table @asis
@item @emph{Description}: @item @emph{Description}:
Bitwise logical @code{AND}.
This intrinsic routine is provided for backwards compatibility with
GNU Fortran 77. For integer arguments, programmers should consider
the use of the @ref{IAND} intrinsic defined by the Fortran standard.
@item @emph{Standard}: @item @emph{Standard}:
GNU extension
@item @emph{Class}: @item @emph{Class}:
Non-elemental function
@item @emph{Syntax}: @item @emph{Syntax}:
@code{RESULT = AND(X, Y)}
@item @emph{Arguments}: @item @emph{Arguments}:
@multitable @columnfractions .15 .80
@item @var{X} @tab The type shall be either @code{INTEGER(*)} or @code{LOGICAL}.
@item @var{Y} @tab The type shall be either @code{INTEGER(*)} or @code{LOGICAL}.
@end multitable
@item @emph{Return value}: @item @emph{Return value}:
The return type is either @code{INTEGER(*)} or @code{LOGICAL} after
cross-promotion of the arguments.
@item @emph{Example}: @item @emph{Example}:
@item @emph{Specific names}: @smallexample
PROGRAM test_and
LOGICAL :: T = .TRUE., F = ..FALSE.
INTEGER :: a, b
DATA a / Z'F' /, b / Z'3' /
WRITE (*,*) AND(T, T), AND(T, F), AND(F, T), AND(F, F)
WRITE (*,*) AND(a, b)
END PROGRAM
@end smallexample
@item @emph{See also}: @item @emph{See also}:
F95 elemental function: @ref{IAND}
@end table @end table
...@@ -1011,7 +1068,7 @@ end program test_any ...@@ -1011,7 +1068,7 @@ end program test_any
@table @asis @table @asis
@item @emph{Description}: @item @emph{Description}:
@code{ASIN(X)} computes the arcsine of its @var{X}. @code{ASIN(X)} computes the arcsine of its @var{X} (inverse of @code{SIN(X)}).
@item @emph{Standard}: @item @emph{Standard}:
F77 and later F77 and later
...@@ -1030,7 +1087,7 @@ less than one. ...@@ -1030,7 +1087,7 @@ less than one.
@item @emph{Return value}: @item @emph{Return value}:
The return value is of type @code{REAL(*)} and it lies in the The return value is of type @code{REAL(*)} and it lies in the
range @math{-\pi / 2 \leq \arcsin (x) \leq \pi / 2}. The kind type range @math{-\pi / 2 \leq \asin (x) \leq \pi / 2}. The kind type
parameter is the same as @var{X}. parameter is the same as @var{X}.
@item @emph{Example}: @item @emph{Example}:
...@@ -1059,18 +1116,38 @@ Inverse function: @ref{SIN} ...@@ -1059,18 +1116,38 @@ Inverse function: @ref{SIN}
@cindex hyperbolic arcsine @cindex hyperbolic arcsine
@cindex hyperbolic sine (inverse) @cindex hyperbolic sine (inverse)
Intrinsic implemented, documentation pending.
@table @asis @table @asis
@item @emph{Description}: @item @emph{Description}:
@code{ASINH(X)} computes the area hyperbolic sine of @var{X} (inverse of @code{SINH(X)}).
@item @emph{Standard}: @item @emph{Standard}:
GNU extension
@item @emph{Class}: @item @emph{Class}:
Elemental function
@item @emph{Syntax}: @item @emph{Syntax}:
@code{X = ASINH(X)}
@item @emph{Arguments}: @item @emph{Arguments}:
@multitable @columnfractions .15 .80
@item @var{X} @tab The type shall be @code{REAL(*)}, with @var{X} a real number.
@end multitable
@item @emph{Return value}: @item @emph{Return value}:
The return value is of type @code{REAL(*)} and it lies in the
range @math{-\infty \leq \asinh (x) \leq \infty}.
@item @emph{Example}: @item @emph{Example}:
@item @emph{Specific names}: @smallexample
PROGRAM test_asinh
REAL(8), DIMENSION(3) :: x = (/ -1.0, 0.0, 1.0 /)
WRITE (*,*) ASINH(x)
END PROGRAM
@end smallexample
@item @emph{See also}: @item @emph{See also}:
Inverse function: @ref{SINH}
@end table @end table
...@@ -1177,7 +1254,7 @@ Elemental function ...@@ -1177,7 +1254,7 @@ Elemental function
@item @emph{Return value}: @item @emph{Return value}:
The return value is of type @code{REAL(*)} and it lies in the The return value is of type @code{REAL(*)} and it lies in the
range @math{ - \pi / 2 \leq \arcsin (x) \leq \pi / 2}. range @math{ - \pi / 2 \leq \atan (x) \leq \pi / 2}.
@item @emph{Example}: @item @emph{Example}:
@smallexample @smallexample
...@@ -1229,7 +1306,7 @@ If @var{Y} is zero, then @var{X} must be nonzero. ...@@ -1229,7 +1306,7 @@ If @var{Y} is zero, then @var{X} must be nonzero.
@item @emph{Return value}: @item @emph{Return value}:
The return value has the same type and kind type parameter as @var{Y}. The return value has the same type and kind type parameter as @var{Y}.
It is the principal value of the complex number @math{X + i Y}. If It is the principal value of the complex number @math{X + i Y}. If
@var{X} is nonzero, then it lies in the range @math{-\pi \le \arccos (x) \leq \pi}. @var{X} is nonzero, then it lies in the range @math{-\pi \le \atan (x) \leq \pi}.
The sign is positive if @var{Y} is positive. If @var{Y} is zero, then The sign is positive if @var{Y} is positive. If @var{Y} is zero, then
the return value is zero if @var{X} is positive and @math{\pi} if @var{X} the return value is zero if @var{X} is positive and @math{\pi} if @var{X}
is negative. Finally, if @var{X} is zero, then the magnitude of the result is negative. Finally, if @var{X} is zero, then the magnitude of the result
...@@ -1258,18 +1335,38 @@ end program test_atan2 ...@@ -1258,18 +1335,38 @@ end program test_atan2
@cindex hyperbolic arctangent @cindex hyperbolic arctangent
@cindex hyperbolic tangent (inverse) @cindex hyperbolic tangent (inverse)
Intrinsic implemented, documentation pending.
@table @asis @table @asis
@item @emph{Description}: @item @emph{Description}:
@code{ATANH(X)} computes the area hyperbolic sine of @var{X} (inverse of @code{TANH(X)}).
@item @emph{Standard}: @item @emph{Standard}:
GNU extension
@item @emph{Class}: @item @emph{Class}:
Elemental function
@item @emph{Syntax}: @item @emph{Syntax}:
@code{X = ATANH(X)}
@item @emph{Arguments}: @item @emph{Arguments}:
@multitable @columnfractions .15 .80
@item @var{X} @tab The type shall be @code{REAL(*)} with a magnitude that is less than or equal to one.
@end multitable
@item @emph{Return value}: @item @emph{Return value}:
The return value is of type @code{REAL(*)} and it lies in the
range @math{-\infty \leq \atanh(x) \leq \infty}.
@item @emph{Example}: @item @emph{Example}:
@item @emph{Specific names}: @smallexample
PROGRAM test_atanh
REAL, DIMENSION(3) :: x = (/ -1.0, 0.0, 1.0 /)
WRITE (*,*) ATANH(x)
END PROGRAM
@end smallexample
@item @emph{See also}: @item @emph{See also}:
Inverse function: @ref{TANH}
@end table @end table
...@@ -1727,21 +1824,44 @@ end program test_char ...@@ -1727,21 +1824,44 @@ end program test_char
@findex @code{CHDIR} intrinsic @findex @code{CHDIR} intrinsic
@cindex file system functions @cindex file system functions
Intrinsic implemented, documentation pending.
@table @asis @table @asis
@item @emph{Description}: @item @emph{Description}:
Change current working directory to a specified @var{PATH}.
@item @emph{Standard}: @item @emph{Standard}:
GNU extension
@item @emph{Class}: @item @emph{Class}:
Non-elemental subroutine
@item @emph{Syntax}: @item @emph{Syntax}:
@code{CALL chdir(PATH[,STATUS])}
@item @emph{Arguments}: @item @emph{Arguments}:
@item @emph{Return value}: @multitable @columnfractions .15 .80
@item @var{PATH} @tab The type shall be @code{CHARACTER(*)} and shall specify a valid path within the file system.
@item @var{STATUS} @tab (Optional) status flag. Returns 0 on success,
a system specific and non-zero error code otherwise.
@end multitable
@item @emph{Example}: @item @emph{Example}:
@item @emph{Specific names}: @smallexample
PROGRAM test_chdir
CHARACTER(len=255) :: path
CALL getcwd(path)
WRITE(*,*) TRIM(path)
CALL chdir("/tmp")
CALL getcwd(path)
WRITE(*,*) TRIM(path)
END PROGRAM
@end smallexample
@item @emph{See also}: @item @emph{See also}:
@ref{GETCWD}
@end table @end table
@node CHMOD @node CHMOD
@section @code{CHMOD} --- Change access permissions of files @section @code{CHMOD} --- Change access permissions of files
@findex @code{CHMOD} @findex @code{CHMOD}
...@@ -2232,7 +2352,7 @@ Unavailable time and date parameters return blanks. ...@@ -2232,7 +2352,7 @@ Unavailable time and date parameters return blanks.
@item @tab @code{VALUE(1)}: @tab The year @item @tab @code{VALUE(1)}: @tab The year
@item @tab @code{VALUE(2)}: @tab The month @item @tab @code{VALUE(2)}: @tab The month
@item @tab @code{VALUE(3)}: @tab The day of the month @item @tab @code{VALUE(3)}: @tab The day of the month
@item @tab @code{VAlUE(4)}: @tab Time difference with UTC in minutes @item @tab @code{VALUE(4)}: @tab Time difference with UTC in minutes
@item @tab @code{VALUE(5)}: @tab The hour of the day @item @tab @code{VALUE(5)}: @tab The hour of the day
@item @tab @code{VALUE(6)}: @tab The minutes of the hour @item @tab @code{VALUE(6)}: @tab The minutes of the hour
@item @tab @code{VALUE(7)}: @tab The seconds of the minute @item @tab @code{VALUE(7)}: @tab The seconds of the minute
...@@ -2655,7 +2775,7 @@ Subsequent invocations of @code{DTIME} return values accumulated since the ...@@ -2655,7 +2775,7 @@ Subsequent invocations of @code{DTIME} return values accumulated since the
previous invocation. previous invocation.
On some systems, the underlying timings are represented using types with On some systems, the underlying timings are represented using types with
sufficiently small limits that overflows (wraparounds) are possible, such as sufficiently small limits that overflows (wrap around) are possible, such as
32-bit types. Therefore, the values returned by this intrinsic might be, or 32-bit types. Therefore, the values returned by this intrinsic might be, or
become, negative, or numerically less than previous values, during a single become, negative, or numerically less than previous values, during a single
run of the compiled program. run of the compiled program.
...@@ -2819,30 +2939,6 @@ end program test_epsilon ...@@ -2819,30 +2939,6 @@ end program test_epsilon
@node EQV
@section @code{EQV} --- Logical equivalence
@findex @code{EQV} intrinsic
@cindex logical operations
Intrinsic implemented, documentation pending.
@table @asis
@item @emph{Description}:
@item @emph{Standard}:
F77 and later
@item @emph{Class}:
@item @emph{Syntax}:
@item @emph{Arguments}:
@item @emph{Return value}:
@item @emph{Example}:
@item @emph{Specific names}:
@item @emph{See also}:
@ref{NEQV}
@end table
@node ERF @node ERF
@section @code{ERF} --- Error function @section @code{ERF} --- Error function
@findex @code{ERF} intrinsic @findex @code{ERF} intrinsic
...@@ -2944,7 +3040,7 @@ returns the user and system components of this time in @code{TARRAY(1)} and ...@@ -2944,7 +3040,7 @@ returns the user and system components of this time in @code{TARRAY(1)} and
@code{TARRAY(2)} respectively. @var{RESULT} is equal to @code{TARRAY(1) + TARRAY(2)}. @code{TARRAY(2)} respectively. @var{RESULT} is equal to @code{TARRAY(1) + TARRAY(2)}.
On some systems, the underlying timings are represented using types with On some systems, the underlying timings are represented using types with
sufficiently small limits that overflows (wraparounds) are possible, such as sufficiently small limits that overflows (wrap around) are possible, such as
32-bit types. Therefore, the values returned by this intrinsic might be, or 32-bit types. Therefore, the values returned by this intrinsic might be, or
become, negative, or numerically less than previous values, during a single become, negative, or numerically less than previous values, during a single
run of the compiled program. run of the compiled program.
...@@ -3234,51 +3330,117 @@ end program test_float ...@@ -3234,51 +3330,117 @@ end program test_float
@node FGETC @node FGET
@section @code{FGETC} --- Read a single character in stream mode @section @code{FGET} --- Read a single character in stream mode from stdin
@findex @code{FGETC} intrinsic @findex @code{FGET} intrinsic
@cindex undocumented intrinsic @cindex file operations
@cindex stream operations
Intrinsic implemented, documentation pending.
@table @asis @table @asis
@item @emph{Description}: @item @emph{Description}:
Read a single character in stream mode from stdin by bypassing normal
formatted output. Stream I/O should not be mixed with normal record-oriented
(formatted or unformatted) I/O on the same unit; the results are unpredictable.
This intrinsic routine is provided for backwards compatibility with
GNU Fortran 77. @command{Gfortran} provides the Fortran 2003 Stream facility.
Programmers should consider the use of new stream IO feature in new code
for future portability. See also @ref{Fortran 2003 status}.
@item @emph{Standard}: @item @emph{Standard}:
GNU extension GNU extension
@item @emph{Class}: @item @emph{Class}:
Non-elemental subroutine
@item @emph{Syntax}: @item @emph{Syntax}:
@code{CALL fget(C[,STATUS])}
@item @emph{Arguments}: @item @emph{Arguments}:
@item @emph{Return value}: @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.
@end multitable
@item @emph{Example}: @item @emph{Example}:
@item @emph{Specific names}: @smallexample
PROGRAM test_fget
INTEGER, PARAMETER :: strlen = 100
INTEGER :: status, i = 1
CHARACTER(len=strlen) :: str = ""
WRITE (*,*) 'Enter text:'
DO
CALL fget(str(i:i), status)
if (status /= 0 .OR. i > strlen) exit
i = i + 1
END DO
WRITE (*,*) TRIM(str)
END PROGRAM
@end smallexample
@item @emph{See also}: @item @emph{See also}:
@ref{FGETC}, @ref{FPUT}, @ref{FPUTC}
@end table @end table
@node FGETC
@node FGET @section @code{FGETC} --- Read a single character in stream mode
@section @code{FGET} --- Read a single character from stdin in stream mode @findex @code{FGETC} intrinsic
@findex @code{FGET} intrinsic @cindex file operations
@cindex undocumented intrinsic @cindex stream operations
Intrinsic implemented, documentation pending.
@table @asis @table @asis
@item @emph{Description}: @item @emph{Description}:
Read a single character in stream mode by bypassing normal formatted output.
Stream I/O should not be mixed with normal record-oriented (formatted or
unformatted) I/O on the same unit; the results are unpredictable.
This intrinsic routine is provided for backwards compatibility with
GNU Fortran 77. @command{Gfortran} provides the Fortran 2003 Stream facility.
Programmers should consider the use of new stream IO feature in new code
for future portability. See also @ref{Fortran 2003 status}.
@item @emph{Standard}: @item @emph{Standard}:
GNU extension GNU extension
@item @emph{Class}: @item @emph{Class}:
Non-elemental subroutine
@item @emph{Syntax}: @item @emph{Syntax}:
@code{CALL fgetc(UNIT,C[,STATUS])}
@item @emph{Arguments}: @item @emph{Arguments}:
@item @emph{Return value}: @multitable @columnfractions .15 .80
@item @var{UNIT} @tab The type shall be @code{INTEGER}.
@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.
@end multitable
@item @emph{Example}: @item @emph{Example}:
@item @emph{Specific names}: @smallexample
PROGRAM test_fgetc
INTEGER :: fd = 42, status
CHARACTER :: c
OPEN(UNIT=fd, FILE="/etc/passwd", ACTION="READ", STATUS = "OLD")
DO
CALL fgetc(fd, c, status)
IF (status /= 0) EXIT
call fput(c)
END DO
CLOSE(UNIT=fd)
END PROGRAM
@end smallexample
@item @emph{See also}: @item @emph{See also}:
@ref{FGET}, @ref{FPUT}, @ref{FPUTC}
@end table @end table
@node FLOOR @node FLOOR
@section @code{FLOOR} --- Integer floor function @section @code{FLOOR} --- Integer floor function
@findex @code{FLOOR} intrinsic @findex @code{FLOOR} intrinsic
...@@ -3362,7 +3524,7 @@ statement that should be preferred over the @code{FLUSH} intrinsic. ...@@ -3362,7 +3524,7 @@ statement that should be preferred over the @code{FLUSH} intrinsic.
@table @asis @table @asis
@item @emph{Description}: @item @emph{Description}:
@code{FNUM(UNIT)} returns the Posix file descriptor number corresponding to the @code{FNUM(UNIT)} returns the POSIX file descriptor number corresponding to the
open Fortran I/O unit @code{UNIT}. open Fortran I/O unit @code{UNIT}.
@item @emph{Standard}: @item @emph{Standard}:
...@@ -3397,24 +3559,51 @@ end program test_fnum ...@@ -3397,24 +3559,51 @@ end program test_fnum
@node FPUT @node FPUT
@section @code{FPUT} --- Write a single character to stdout in stream mode @section @code{FPUT} --- Write a single character in stream mode to stdout
@findex @code{FPUT} intrinsic @findex @code{FPUT} intrinsic
@cindex undocumented intrinsic @cindex file operations
@cindex stream operations
Intrinsic implemented, documentation pending.
@table @asis @table @asis
@item @emph{Description}: @item @emph{Description}:
Write a single character in stream mode to stdout by bypassing normal
formatted output. Stream I/O should not be mixed with normal record-oriented
(formatted or unformatted) I/O on the same unit; the results are unpredictable.
This intrinsic routine is provided for backwards compatibility with
GNU Fortran 77. @command{Gfortran} provides the Fortran 2003 Stream facility.
Programmers should consider the use of new stream IO feature in new code
for future portability. See also @ref{Fortran 2003 status}.
@item @emph{Standard}: @item @emph{Standard}:
GNU extension GNU extension
@item @emph{Class}: @item @emph{Class}:
Non-elemental subroutine
@item @emph{Syntax}: @item @emph{Syntax}:
@code{CALL fput(C[,STATUS])}
@item @emph{Arguments}: @item @emph{Arguments}:
@item @emph{Return value}: @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.
@end multitable
@item @emph{Example}: @item @emph{Example}:
@item @emph{Specific names}: @smallexample
PROGRAM test_fput
CHARACTER(len=*) :: str = "gfortran"
INTEGER :: i
DO i = 1, len_trim(str)
CALL fput(str(i:i))
END DO
END PROGRAM
@end smallexample
@item @emph{See also}: @item @emph{See also}:
@ref{FPUTC}, @ref{FGET}, @ref{FGETC}
@end table @end table
...@@ -3422,22 +3611,53 @@ GNU extension ...@@ -3422,22 +3611,53 @@ GNU extension
@node FPUTC @node FPUTC
@section @code{FPUTC} --- Write a single character in stream mode @section @code{FPUTC} --- Write a single character in stream mode
@findex @code{FPUTC} intrinsic @findex @code{FPUTC} intrinsic
@cindex undocumented intrinsic @cindex file operations
@cindex stream operations
Intrinsic implemented, documentation pending.
@table @asis @table @asis
@item @emph{Description}: @item @emph{Description}:
Write a single character in stream mode by bypassing normal formatted
output. Stream I/O should not be mixed with normal record-oriented
(formatted or unformatted) I/O on the same unit; the results are unpredictable.
This intrinsic routine is provided for backwards compatibility with
GNU Fortran 77. @command{Gfortran} provides the Fortran 2003 Stream facility.
Programmers should consider the use of new stream IO feature in new code
for future portability. See also @ref{Fortran 2003 status}.
@item @emph{Standard}: @item @emph{Standard}:
GNU extension GNU extension
@item @emph{Class}: @item @emph{Class}:
Non-elemental subroutine
@item @emph{Syntax}: @item @emph{Syntax}:
@code{CALL fputc(UNIT,C[,STATUS])}
@item @emph{Arguments}: @item @emph{Arguments}:
@item @emph{Return value}: @multitable @columnfractions .15 .80
@item @var{UNIT} @tab The type shall be @code{INTEGER}.
@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.
@end multitable
@item @emph{Example}: @item @emph{Example}:
@item @emph{Specific names}: @smallexample
PROGRAM test_fputc
CHARACTER(len=*) :: str = "gfortran"
INTEGER :: fd = 42, i
OPEN(UNIT = fd, FILE = "out", ACTION = "WRITE", STATUS="NEW")
DO i = 1, len_trim(str)
CALL fputc(fd, str(i:i))
END DO
CLOSE(fd)
END PROGRAM
@end smallexample
@item @emph{See also}: @item @emph{See also}:
@ref{FPUT}, @ref{FGET}, @ref{FGETC}
@end table @end table
...@@ -3674,22 +3894,39 @@ F2003 ...@@ -3674,22 +3894,39 @@ F2003
@node GETCWD @node GETCWD
@section @code{GETCWD} --- Get current working directory @section @code{GETCWD} --- Get current working directory
@findex @code{GETCWD} intrinsic @findex @code{GETCWD} intrinsic
@cindex undocumented intrinsic @cindex file system functions
Intrinsic implemented, documentation pending.
@table @asis @table @asis
@item @emph{Description}: @item @emph{Description}:
Get current working directory.
@item @emph{Standard}: @item @emph{Standard}:
GNU extension GNU extension
@item @emph{Class}: @item @emph{Class}:
Non-elemental subroutine.
@item @emph{Syntax}: @item @emph{Syntax}:
@code{CALL getcwd(CWD[,STATUS])}
@item @emph{Arguments}: @item @emph{Arguments}:
@item @emph{Return value}: @multitable @columnfractions .15 .80
@item @var{CWD} @tab The type shall be @code{CHARACTER(*)}.
@item @var{STATUS} @tab (Optional) status flag. Returns 0 on success,
a system specific and non-zero error code otherwise.
@end multitable
@item @emph{Example}: @item @emph{Example}:
@item @emph{Specific names}: @smallexample
PROGRAM test_getcwd
CHARACTER(len=255) :: cwd
CALL getcwd(cwd)
WRITE(*,*) TRIM(cwd)
END PROGRAM
@end smallexample
@item @emph{See also}: @item @emph{See also}:
@ref{CHDIR}
@end table @end table
...@@ -5642,31 +5879,6 @@ end program test_nearest ...@@ -5642,31 +5879,6 @@ end program test_nearest
@node NEQV
@section @code{NEQV} --- Logical non-equivalence
@findex @code{NEQV} intrinsic
@cindex logical operations
Intrinsic implemented, documentation pending.
@table @asis
@item @emph{Description}:
@item @emph{Standard}:
F77 and later
@item @emph{Class}:
@item @emph{Syntax}:
@item @emph{Arguments}:
@item @emph{Return value}:
@item @emph{Example}:
@item @emph{Specific names}:
@item @emph{See also}:
@ref{EQV}
@end table
@node NINT @node NINT
@section @code{NINT} --- Nearest whole number @section @code{NINT} --- Nearest whole number
@findex @code{NINT} intrinsic @findex @code{NINT} intrinsic
...@@ -5745,7 +5957,7 @@ Elemental function ...@@ -5745,7 +5957,7 @@ Elemental function
@node NULL @node NULL
@section @code{NULL} --- Function that returns an dissassociated pointer @section @code{NULL} --- Function that returns an disassociated pointer
@findex @code{NULL} intrinsic @findex @code{NULL} intrinsic
@cindex undocumented intrinsic @cindex undocumented intrinsic
...@@ -5771,23 +5983,51 @@ Transformational function ...@@ -5771,23 +5983,51 @@ Transformational function
@node OR @node OR
@section @code{OR} --- Logical inclusive disjunction @section @code{OR} --- Bitwise logical OR
@findex @code{OR} intrinsic @findex @code{OR} intrinsic
@cindex logical operations @cindex bit operations
Intrinsic implemented, documentation pending.
@table @asis @table @asis
@item @emph{Description}: @item @emph{Description}:
Bitwise logical @code{OR}.
This intrinsic routine is provided for backwards compatibility with
GNU Fortran 77. For integer arguments, programmers should consider
the use of the @ref{IOR} intrinsic defined by the Fortran standard.
@item @emph{Standard}: @item @emph{Standard}:
F77 and later GNU extension
@item @emph{Class}: @item @emph{Class}:
Non-elemental function
@item @emph{Syntax}: @item @emph{Syntax}:
@code{RESULT = OR(X, Y)}
@item @emph{Arguments}: @item @emph{Arguments}:
@multitable @columnfractions .15 .80
@item @var{X} @tab The type shall be either @code{INTEGER(*)} or @code{LOGICAL}.
@item @var{Y} @tab The type shall be either @code{INTEGER(*)} or @code{LOGICAL}.
@end multitable
@item @emph{Return value}: @item @emph{Return value}:
The return type is either @code{INTEGER(*)} or @code{LOGICAL}
after cross-promotion of the arguments.
@item @emph{Example}: @item @emph{Example}:
@smallexample
PROGRAM test_or
LOGICAL :: T = .TRUE., F = ..FALSE.
INTEGER :: a, b
DATA a / Z'F' /, b / Z'3' /
WRITE (*,*) OR(T, T), OR(T, F), OR(F, T), OR(F, F)
WRITE (*,*) OR(a, b)
END PROGRAM
@end smallexample
@item @emph{See also}: @item @emph{See also}:
F95 elemental function: @ref{IOR}
@end table @end table
...@@ -7549,27 +7789,52 @@ Elemental function ...@@ -7549,27 +7789,52 @@ Elemental function
@end table @end table
@node XOR @node XOR
@section @code{XOR} --- Logical exclusive or @section @code{XOR} --- Bitwise logical exclusive OR
@findex @code{XOR} intrinsic @findex @code{XOR} intrinsic
@cindex logical operations @cindex bit operations
Intrinsic implemented, documentation pending.
@table @asis @table @asis
@item @emph{Description}: @item @emph{Description}:
Bitwise logical exclusive or.
This intrinsic routine is provided for backwards compatibility with
GNU Fortran 77. For integer arguments, programmers should consider
the use of the @ref{IEOR} intrinsic defined by the Fortran standard.
@item @emph{Standard}: @item @emph{Standard}:
F77 and later GNU extension
@item @emph{Class}: @item @emph{Class}:
Non-elemental function
@item @emph{Syntax}: @item @emph{Syntax}:
@code{RESULT = XOR(X, Y)}
@item @emph{Arguments}: @item @emph{Arguments}:
@multitable @columnfractions .15 .80
@item @var{X} @tab The type shall be either @code{INTEGER(*)} or @code{LOGICAL}.
@item @var{Y} @tab The type shall be either @code{INTEGER(*)} or @code{LOGICAL}.
@end multitable
@item @emph{Return value}: @item @emph{Return value}:
The return type is either @code{INTEGER(*)} or @code{LOGICAL}
after cross-promotion of the arguments.
@item @emph{Example}: @item @emph{Example}:
@item @emph{Specific names}: @smallexample
PROGRAM test_xor
LOGICAL :: T = .TRUE., F = .FALSE.
INTEGER :: a, b
DATA a / Z,'F' /, b / Z'3' /
WRITE (*,*) XOR(T, T), XOR(T, F), XOR(F, T), XOR(F, F)
WRITE (*,*) XOR(a, b)
END PROGRAM
@end smallexample
@item @emph{See also}: @item @emph{See also}:
F95 elemental function: @ref{IEOR}
@end table @end table
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment