@menu
@ifset familyF2U
* Abort Intrinsic::     Abort the program.
@end ifset
@ifset familyF77
* Abs Intrinsic::       Absolute value.
@end ifset
@ifset familyF2U
* Access Intrinsic::    Check file accessibility.
@end ifset
@ifset familyASC
* AChar Intrinsic::     ASCII character from code.
@end ifset
@ifset familyF77
* ACos Intrinsic::      Arc cosine.
* AImag Intrinsic::     Convert/extract imaginary part of complex.
* AInt Intrinsic::      Truncate to whole number.
* ALog Intrinsic::      Natural logarithm (archaic).
* ALog10 Intrinsic::    Natural logarithm (archaic).
* AMax0 Intrinsic::     Maximum value (archaic).
* AMax1 Intrinsic::     Maximum value (archaic).
* AMin0 Intrinsic::     Minimum value (archaic).
* AMin1 Intrinsic::     Minimum value (archaic).
* AMod Intrinsic::      Remainder (archaic).
@end ifset
@ifset familyF2C
* And Intrinsic::       Boolean AND.
@end ifset
@ifset familyF77
* ANInt Intrinsic::     Round to nearest whole number.
* ASin Intrinsic::      Arc sine.
* ATan Intrinsic::      Arc tangent.
* ATan2 Intrinsic::     Arc tangent.
@end ifset
@ifset familyF2U
* BesJ0 Intrinsic::     Bessel function.
* BesJ1 Intrinsic::     Bessel function.
* BesJN Intrinsic::     Bessel function.
* BesY0 Intrinsic::     Bessel function.
* BesY1 Intrinsic::     Bessel function.
* BesYN Intrinsic::     Bessel function.
@end ifset
@ifset familyF90
* Bit_Size Intrinsic::  Number of bits in argument's type.
@end ifset
@ifset familyMIL
* BTest Intrinsic::     Test bit.
@end ifset
@ifset familyF77
* CAbs Intrinsic::      Absolute value (archaic).
* CCos Intrinsic::
@end ifset
@ifset familyFVZ
* CDAbs Intrinsic::     Absolute value (archaic).
* CDCos Intrinsic::
* CDExp Intrinsic::
* CDLog Intrinsic::     Natural logarithm (archaic).
* CDSin Intrinsic::
* CDSqRt Intrinsic::
@end ifset
@ifset familyF77
* CExp Intrinsic::
* Char Intrinsic::      Character from code.
@end ifset
@ifset familyF2U
* ChDir Intrinsic::     Change directory.
* ChMod Intrinsic::     Change file modes.
@end ifset
@ifset familyF77
* CLog Intrinsic::      Natural logarithm (archaic).
* Cmplx Intrinsic::     Construct @code{COMPLEX(KIND=1)} value.
@end ifset
@ifset familyGNU
* Complex Intrinsic::   Build complex value from real and
                         imaginary parts.
@end ifset
@ifset familyF77
* Conjg Intrinsic::     Complex conjugate.
* Cos Intrinsic::
* CosH Intrinsic::
* CSin Intrinsic::
* CSqRt Intrinsic::
@end ifset
@ifset familyF2U
* CTime Intrinsic::     Convert time to Day Mon dd hh:mm:ss yyyy.
@end ifset
@ifset familyF77
* DAbs Intrinsic::      Absolute value (archaic).
* DACos Intrinsic::     Arc cosine (archaic).
* DASin Intrinsic::     Arc sine (archaic).
* DATan Intrinsic::     Arc tangent (archaic).
* DATan2 Intrinsic::    Arc tangent (archaic).
@end ifset
@ifset familyVXT
* Date Intrinsic::      Get current date as dd-Mon-yy.
@end ifset
@ifset familyF2U
* DbesJ0 Intrinsic::
* DbesJ1 Intrinsic::
* DbesJN Intrinsic::
* DbesY0 Intrinsic::
* DbesY1 Intrinsic::
* DbesYN Intrinsic::
@end ifset
@ifset familyF77
* Dble Intrinsic::
@end ifset
@ifset familyFVZ
* DCmplx Intrinsic::
* DConjg Intrinsic::    Complex conjugate (archaic).
@end ifset
@ifset familyF77
* DCos Intrinsic::
* DCosH Intrinsic::
* DDiM Intrinsic::
@end ifset
@ifset familyF2U
* DErF Intrinsic::
* DErFC Intrinsic::
@end ifset
@ifset familyF77
* DExp Intrinsic::
@end ifset
@ifset familyFVZ
* DFloat Intrinsic::
@end ifset
@ifset familyF77
* DiM Intrinsic::
@end ifset
@ifset familyFVZ
* DImag Intrinsic::
@end ifset
@ifset familyF77
* DInt Intrinsic::      Truncate to whole number (archaic).
* DLog Intrinsic::      Natural logarithm (archaic).
* DLog10 Intrinsic::    Natural logarithm (archaic).
* DMax1 Intrinsic::     Maximum value (archaic).
* DMin1 Intrinsic::     Minimum value (archaic).
* DMod Intrinsic::      Remainder (archaic).
* DNInt Intrinsic::     Round to nearest whole number (archaic).
* DProd Intrinsic::
@end ifset
@ifset familyVXT
* DReal Intrinsic::
@end ifset
@ifset familyF77
* DSign Intrinsic::
* DSin Intrinsic::
* DSinH Intrinsic::
* DSqRt Intrinsic::
* DTan Intrinsic::
* DTanH Intrinsic::
@end ifset
@ifset familyF2U
* Dtime Intrinsic::     Get elapsed time since last time.
* ErF Intrinsic::       Error function.
* ErFC Intrinsic::      Complementary error function.
* ETime Intrinsic::     Get elapsed time for process.
* Exit Intrinsic::      Terminate the program.
@end ifset
@ifset familyF77
* Exp Intrinsic::
@end ifset
@ifset familyF2U
* Fdate Intrinsic::     Get current time as Day Mon dd hh:mm:ss yyyy.
* FGetC Intrinsic::
@end ifset
@ifset familyF77
* Float Intrinsic::
@end ifset
@ifset familyF2U
* Flush Intrinsic::     Flush buffered output.
* FNum Intrinsic::      Get file descriptor from Fortran unit number.
* FPutC Intrinsic::
* FSeek Intrinsic::     Position file (low-level).
* FStat Intrinsic::     Get file information.
* FTell Intrinsic::     Get file position (low-level).
* GError Intrinsic::    Get error message for last error.
* GetArg Intrinsic::    Obtain command-line argument.
* GetCWD Intrinsic::    Get current working directory.
* GetEnv Intrinsic::    Get environment variable.
* GetGId Intrinsic::    Get process group id.
* GetLog Intrinsic::    Get login name.
* GetPId Intrinsic::    Get process id.
* GetUId Intrinsic::    Get process user id.
* GMTime Intrinsic::    Convert time to GMT time info.
* HostNm Intrinsic::    Get host name.
@end ifset
@ifset familyF77
* IAbs Intrinsic::      Absolute value (archaic).
@end ifset
@ifset familyASC
* IAChar Intrinsic::    ASCII code for character.
@end ifset
@ifset familyMIL
* IAnd Intrinsic::      Boolean AND.
@end ifset
@ifset familyF2U
* IArgC Intrinsic::     Obtain count of command-line arguments.
@end ifset
@ifset familyMIL
* IBClr Intrinsic::
* IBits Intrinsic::
* IBSet Intrinsic::
@end ifset
@ifset familyF77
* IChar Intrinsic::     Code for character.
@end ifset
@ifset familyF2U
* IDate Intrinsic::     Get local time info.
@end ifset
@ifset familyVXT
* IDate Intrinsic (Form IDATE (VXT)):: Get local time info (VAX/VMS).
@end ifset
@ifset familyF77
* IDiM Intrinsic::
* IDInt Intrinsic::     Convert to @code{INTEGER} value truncated
                         to whole number (archaic).
* IDNInt Intrinsic::    Convert to @code{INTEGER} value rounded
                         to nearest whole number (archaic).
@end ifset
@ifset familyMIL
* IEOr Intrinsic::      Boolean XOR.
@end ifset
@ifset familyF2U
* IErrNo Intrinsic::    Get error number for last error.
@end ifset
@ifset familyF77
* IFix Intrinsic::      Convert to @code{INTEGER} value truncated
                         to whole number.
@end ifset
@ifset familyF2C
* Imag Intrinsic::      Extract imaginary part of complex.
@end ifset
@ifset familyGNU
* ImagPart Intrinsic::  Extract imaginary part of complex.
@end ifset
@ifset familyF77
* Index Intrinsic::
* Int Intrinsic::       Convert to @code{INTEGER} value truncated
                         to whole number.
@end ifset
@ifset familyMIL
* IOr Intrinsic::       Boolean OR.
@end ifset
@ifset familyF2U
* IRand Intrinsic::     Random number.
* IsaTty Intrinsic::    Is unit connected to a terminal?
@end ifset
@ifset familyMIL
* IShft Intrinsic::
* IShftC Intrinsic::
@end ifset
@ifset familyF77
* ISign Intrinsic::
@end ifset
@ifset familyF2U
* ITime Intrinsic::     Get local time of day.
* Kill Intrinsic::      Signal a process.
@end ifset
@ifset familyF77
* Len Intrinsic::
@end ifset
@ifset familyF90
* Len_Trim Intrinsic::  Get last non-blank character in string.
@end ifset
@ifset familyF77
* LGe Intrinsic::
* LGt Intrinsic::
@end ifset
@ifset familyF2U
* Link Intrinsic::      Make hard link in file system.
@end ifset
@ifset familyF77
* LLe Intrinsic::
* LLt Intrinsic::
@end ifset
@ifset familyF2U
* LnBlnk Intrinsic::    Get last non-blank character in string.
* Loc Intrinsic::       Address of entity in core.
@end ifset
@ifset familyF77
* Log Intrinsic::       Natural logarithm.
* Log10 Intrinsic::     Natural logarithm.
@end ifset
@ifset familyF2U
* Long Intrinsic::
@end ifset
@ifset familyF2C
* LShift Intrinsic::
@end ifset
@ifset familyF2U
* LStat Intrinsic::     Get file information.
* LTime Intrinsic::     Convert time to local time info.
@end ifset
@ifset familyF77
* Max Intrinsic::       Maximum value.
* Max0 Intrinsic::      Maximum value (archaic).
* Max1 Intrinsic::      Maximum value (archaic).
@end ifset
@ifset familyF2U
* MClock Intrinsic::    Get number of clock ticks for process.
@end ifset
@ifset familyF77
* Min Intrinsic::       Minimum value.
* Min0 Intrinsic::      Minimum value (archaic).
* Min1 Intrinsic::      Minimum value (archaic).
* Mod Intrinsic::       Remainder.
@end ifset
@ifset familyMIL
* MvBits Intrinsic::
@end ifset
@ifset familyF77
* NInt Intrinsic::      Convert to @code{INTEGER} value rounded
                         to nearest whole number.
@end ifset
@ifset familyMIL
* Not Intrinsic::       Boolean NOT.
@end ifset
@ifset familyF2C
* Or Intrinsic::        Boolean OR.
@end ifset
@ifset familyF2U
* PError Intrinsic::    Print error message for last error.
* Rand Intrinsic::      Random number.
@end ifset
@ifset familyF77
* Real Intrinsic::      Convert value to type @code{REAL(KIND=1)}.
@end ifset
@ifset familyGNU
* RealPart Intrinsic::  Extract real part of complex.
@end ifset
@ifset familyF2U
* Rename Intrinsic::    Rename file.
@end ifset
@ifset familyF2C
* RShift Intrinsic::
@end ifset
@ifset familyVXT
* Secnds Intrinsic::    Get local time offset since midnight.
@end ifset
@ifset familyF2U
* Second Intrinsic::    Get CPU time for process in seconds.
* Second Intrinsic (Form SECOND (subroutine)):: Get CPU time for process
                         in seconds.
* Short Intrinsic::
@end ifset
@ifset familyF77
* Sign Intrinsic::
@end ifset
@ifset familyF2U
* Signal Intrinsic::    Muck with signal handling.
@end ifset
@ifset familyF77
* Sin Intrinsic::
* SinH Intrinsic::
@end ifset
@ifset familyF2U
* Sleep Intrinsic::     Sleep for a specified time.
@end ifset
@ifset familyF77
* Sngl Intrinsic::
* SqRt Intrinsic::
@end ifset
@ifset familyF2U
* SRand Intrinsic::     Random seed.
* Stat Intrinsic::      Get file information.
* SymLnk Intrinsic::    Make symbolic link in file system.
* System Intrinsic::    Invoke shell (system) command.
@end ifset
@ifset familyF90
* System_Clock Intrinsic:: Get current system clock value.
@end ifset
@ifset familyF77
* Tan Intrinsic::
* TanH Intrinsic::
@end ifset
@ifset familyF2U
* Time Intrinsic::      Get current time as time value.
@end ifset
@ifset familyVXT
* Time Intrinsic (Form TIME (VXT))::
@end ifset
@ifset familyF2U
* TtyNam Intrinsic::    Get name of terminal device for unit.
* UMask Intrinsic::     Set file creation permissions mask.
* Unlink Intrinsic::    Unlink file.
@end ifset
@ifset familyF2C
* XOr Intrinsic::       Boolean XOR.
* ZAbs Intrinsic::      Absolute value (archaic).
* ZCos Intrinsic::
* ZExp Intrinsic::
* ZLog Intrinsic::      Natural logarithm (archaic).
* ZSin Intrinsic::
* ZSqRt Intrinsic::
@end ifset
@end menu

@ifset familyF2U
@node Abort Intrinsic
@subsubsection Abort Intrinsic
@cindex Abort intrinsic
@cindex intrinsics, Abort

@noindent
@example
CALL Abort()
@end example

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Prints a message and potentially causes a core dump via @code{abort(3)}.

@end ifset
@ifset familyF77
@node Abs Intrinsic
@subsubsection Abs Intrinsic
@cindex Abs intrinsic
@cindex intrinsics, Abs

@noindent
@example
Abs(@var{A})
@end example

@noindent
Abs: @code{INTEGER} or @code{REAL} function.
The exact type depends on that of argument @var{A}---if @var{A} is
@code{COMPLEX}, this function's type is @code{REAL}
with the same @samp{KIND=} value as the type of @var{A}.
Otherwise, this function's type is the same as that of @var{A}.

@noindent
@var{A}: @code{INTEGER}, @code{REAL}, or @code{COMPLEX}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@noindent
Description:

Returns the absolute value of @var{A}.

If @var{A} is type @code{COMPLEX}, the absolute
value is computed as:

@example
SQRT(REALPART(@var{A})**2, IMAGPART(@var{A})**2)
@end example

@noindent
Otherwise, it is computed by negating the @var{A} if
it is negative, or returning @var{A}.

@xref{Sign Intrinsic}, for how to explicitly
compute the positive or negative form of the absolute
value of an expression.

@end ifset
@ifset familyF2U
@node Access Intrinsic
@subsubsection Access Intrinsic
@cindex Access intrinsic
@cindex intrinsics, Access

@noindent
@example
Access(@var{Name}, @var{Mode})
@end example

@noindent
Access: @code{INTEGER(KIND=1)} function.

@noindent
@var{Name}: @code{CHARACTER}; scalar; INTENT(IN).

@noindent
@var{Mode}: @code{CHARACTER}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Checks file @var{Name} for accessibility in the mode specified by @var{Mode} and
returns 0 if the file is accessible in that mode, otherwise an error
code if the file is inaccessible or @var{Mode} is invalid.  See
@code{access(2)}.  @var{Mode} may be a concatenation of any of the
following characters:

@table @samp
@item r
Read permission

@item w
Write permission

@item x
Execute permission

@item @kbd{SPC}
Existence
@end table

@end ifset
@ifset familyASC
@node AChar Intrinsic
@subsubsection AChar Intrinsic
@cindex AChar intrinsic
@cindex intrinsics, AChar

@noindent
@example
AChar(@var{I})
@end example

@noindent
AChar: @code{CHARACTER*1} function.

@noindent
@var{I}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{f2c}, @code{f90}.

@noindent
Description:

Returns the ASCII character corresponding to the
code specified by @var{I}.

@xref{IAChar Intrinsic}, for the inverse function.

@xref{Char Intrinsic}, for the function corresponding
to the system's native character set.

@end ifset
@ifset familyF77
@node ACos Intrinsic
@subsubsection ACos Intrinsic
@cindex ACos intrinsic
@cindex intrinsics, ACos

@noindent
@example
ACos(@var{X})
@end example

@noindent
ACos: @code{REAL} function, the @samp{KIND=} value of the type being that of argument @var{X}.

@noindent
@var{X}: @code{REAL}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@noindent
Description:

Returns the arc-cosine (inverse cosine) of @var{X}
in radians.

@xref{Cos Intrinsic}, for the inverse function.

@node AImag Intrinsic
@subsubsection AImag Intrinsic
@cindex AImag intrinsic
@cindex intrinsics, AImag

@noindent
@example
AImag(@var{Z})
@end example

@noindent
AImag: @code{REAL} function.
This intrinsic is valid when argument @var{Z} is
@code{COMPLEX(KIND=1)}.
When @var{Z} is any other @code{COMPLEX} type,
this intrinsic is valid only when used as the argument to
@code{REAL()}, as explained below.

@noindent
@var{Z}: @code{COMPLEX}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@noindent
Description:

Returns the (possibly converted) imaginary part of @var{Z}.

Use of @code{AIMAG()} with an argument of a type
other than @code{COMPLEX(KIND=1)} is restricted to the following case:

@example
REAL(AIMAG(Z))
@end example

@noindent
This expression converts the imaginary part of Z to
@code{REAL(KIND=1)}.

@xref{REAL() and AIMAG() of Complex}, for more information.

@node AInt Intrinsic
@subsubsection AInt Intrinsic
@cindex AInt intrinsic
@cindex intrinsics, AInt

@noindent
@example
AInt(@var{A})
@end example

@noindent
AInt: @code{REAL} function, the @samp{KIND=} value of the type being that of argument @var{A}.

@noindent
@var{A}: @code{REAL}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@noindent
Description:

Returns @var{A} with the fractional portion of its
magnitude truncated and its sign preserved.
(Also called ``truncation towards zero''.)

@xref{ANInt Intrinsic}, for how to round to nearest
whole number.

@xref{Int Intrinsic}, for how to truncate and then convert
number to @code{INTEGER}.

@node ALog Intrinsic
@subsubsection ALog Intrinsic
@cindex ALog intrinsic
@cindex intrinsics, ALog

@noindent
@example
ALog(@var{X})
@end example

@noindent
ALog: @code{REAL(KIND=1)} function.

@noindent
@var{X}: @code{REAL(KIND=1)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@noindent
Description:

Archaic form of @code{LOG()} that is specific
to one type for @var{X}.
@xref{Log Intrinsic}.

@node ALog10 Intrinsic
@subsubsection ALog10 Intrinsic
@cindex ALog10 intrinsic
@cindex intrinsics, ALog10

@noindent
@example
ALog10(@var{X})
@end example

@noindent
ALog10: @code{REAL(KIND=1)} function.

@noindent
@var{X}: @code{REAL(KIND=1)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@noindent
Description:

Archaic form of @code{LOG10()} that is specific
to one type for @var{X}.
@xref{Log10 Intrinsic}.

@node AMax0 Intrinsic
@subsubsection AMax0 Intrinsic
@cindex AMax0 intrinsic
@cindex intrinsics, AMax0

@noindent
@example
AMax0(@var{A}-1, @var{A}-2, @dots{}, @var{A}-n)
@end example

@noindent
AMax0: @code{REAL(KIND=1)} function.

@noindent
@var{A}: @code{INTEGER(KIND=1)}; at least two such arguments must be provided; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@noindent
Description:

Archaic form of @code{MAX()} that is specific
to one type for @var{A} and a different return type.
@xref{Max Intrinsic}.

@node AMax1 Intrinsic
@subsubsection AMax1 Intrinsic
@cindex AMax1 intrinsic
@cindex intrinsics, AMax1

@noindent
@example
AMax1(@var{A}-1, @var{A}-2, @dots{}, @var{A}-n)
@end example

@noindent
AMax1: @code{REAL(KIND=1)} function.

@noindent
@var{A}: @code{REAL(KIND=1)}; at least two such arguments must be provided; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@noindent
Description:

Archaic form of @code{MAX()} that is specific
to one type for @var{A}.
@xref{Max Intrinsic}.

@node AMin0 Intrinsic
@subsubsection AMin0 Intrinsic
@cindex AMin0 intrinsic
@cindex intrinsics, AMin0

@noindent
@example
AMin0(@var{A}-1, @var{A}-2, @dots{}, @var{A}-n)
@end example

@noindent
AMin0: @code{REAL(KIND=1)} function.

@noindent
@var{A}: @code{INTEGER(KIND=1)}; at least two such arguments must be provided; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@noindent
Description:

Archaic form of @code{MIN()} that is specific
to one type for @var{A} and a different return type.
@xref{Min Intrinsic}.

@node AMin1 Intrinsic
@subsubsection AMin1 Intrinsic
@cindex AMin1 intrinsic
@cindex intrinsics, AMin1

@noindent
@example
AMin1(@var{A}-1, @var{A}-2, @dots{}, @var{A}-n)
@end example

@noindent
AMin1: @code{REAL(KIND=1)} function.

@noindent
@var{A}: @code{REAL(KIND=1)}; at least two such arguments must be provided; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@noindent
Description:

Archaic form of @code{MIN()} that is specific
to one type for @var{A}.
@xref{Min Intrinsic}.

@node AMod Intrinsic
@subsubsection AMod Intrinsic
@cindex AMod intrinsic
@cindex intrinsics, AMod

@noindent
@example
AMod(@var{A}, @var{P})
@end example

@noindent
AMod: @code{REAL(KIND=1)} function.

@noindent
@var{A}: @code{REAL(KIND=1)}; scalar; INTENT(IN).

@noindent
@var{P}: @code{REAL(KIND=1)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@noindent
Description:

Archaic form of @code{MOD()} that is specific
to one type for @var{A}.
@xref{Mod Intrinsic}.

@end ifset
@ifset familyF2C
@node And Intrinsic
@subsubsection And Intrinsic
@cindex And intrinsic
@cindex intrinsics, And

@noindent
@example
And(@var{I}, @var{J})
@end example

@noindent
And: @code{INTEGER} or @code{LOGICAL} function, the exact type being the result of cross-promoting the
types of all the arguments.

@noindent
@var{I}: @code{INTEGER} or @code{LOGICAL}; scalar; INTENT(IN).

@noindent
@var{J}: @code{INTEGER} or @code{LOGICAL}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{f2c}.

@noindent
Description:

Returns value resulting from boolean AND of
pair of bits in each of @var{I} and @var{J}.

@end ifset
@ifset familyF77
@node ANInt Intrinsic
@subsubsection ANInt Intrinsic
@cindex ANInt intrinsic
@cindex intrinsics, ANInt

@noindent
@example
ANInt(@var{A})
@end example

@noindent
ANInt: @code{REAL} function, the @samp{KIND=} value of the type being that of argument @var{A}.

@noindent
@var{A}: @code{REAL}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@noindent
Description:

Returns @var{A} with the fractional portion of its
magnitude eliminated by rounding to the nearest whole
number and with its sign preserved.

A fractional portion exactly equal to
@samp{.5} is rounded to the whole number that
is larger in magnitude.
(Also called ``Fortran round''.)

@xref{AInt Intrinsic}, for how to truncate to
whole number.

@xref{NInt Intrinsic}, for how to round and then convert
number to @code{INTEGER}.

@node ASin Intrinsic
@subsubsection ASin Intrinsic
@cindex ASin intrinsic
@cindex intrinsics, ASin

@noindent
@example
ASin(@var{X})
@end example

@noindent
ASin: @code{REAL} function, the @samp{KIND=} value of the type being that of argument @var{X}.

@noindent
@var{X}: @code{REAL}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@noindent
Description:

Returns the arc-sine (inverse sine) of @var{X}
in radians.

@xref{Sin Intrinsic}, for the inverse function.

@node ATan Intrinsic
@subsubsection ATan Intrinsic
@cindex ATan intrinsic
@cindex intrinsics, ATan

@noindent
@example
ATan(@var{X})
@end example

@noindent
ATan: @code{REAL} function, the @samp{KIND=} value of the type being that of argument @var{X}.

@noindent
@var{X}: @code{REAL}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@noindent
Description:

Returns the arc-tangent (inverse tangent) of @var{X}
in radians.

@xref{Tan Intrinsic}, for the inverse function.

@node ATan2 Intrinsic
@subsubsection ATan2 Intrinsic
@cindex ATan2 intrinsic
@cindex intrinsics, ATan2

@noindent
@example
ATan2(@var{Y}, @var{X})
@end example

@noindent
ATan2: @code{REAL} function, the exact type being the result of cross-promoting the
types of all the arguments.

@noindent
@var{Y}: @code{REAL}; scalar; INTENT(IN).

@noindent
@var{X}: @code{REAL}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@noindent
Description:

Returns the arc-tangent (inverse tangent) of the complex
number (@var{Y}, @var{X}) in radians.

@xref{Tan Intrinsic}, for the inverse function.

@end ifset
@ifset familyF2U
@node BesJ0 Intrinsic
@subsubsection BesJ0 Intrinsic
@cindex BesJ0 intrinsic
@cindex intrinsics, BesJ0

@noindent
@example
BesJ0(@var{X})
@end example

@noindent
BesJ0: @code{REAL} function, the @samp{KIND=} value of the type being that of argument @var{X}.

@noindent
@var{X}: @code{REAL}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Calculates the Bessel function of the first kind of order 0.
See @code{bessel(3m)}, on whose implementation the function depends.
@node BesJ1 Intrinsic
@subsubsection BesJ1 Intrinsic
@cindex BesJ1 intrinsic
@cindex intrinsics, BesJ1

@noindent
@example
BesJ1(@var{X})
@end example

@noindent
BesJ1: @code{REAL} function, the @samp{KIND=} value of the type being that of argument @var{X}.

@noindent
@var{X}: @code{REAL}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Calculates the Bessel function of the first kind of order 1.
See @code{bessel(3m)}, on whose implementation the function depends.
@node BesJN Intrinsic
@subsubsection BesJN Intrinsic
@cindex BesJN intrinsic
@cindex intrinsics, BesJN

@noindent
@example
BesJN(@var{N}, @var{X})
@end example

@noindent
BesJN: @code{REAL} function, the @samp{KIND=} value of the type being that of argument @var{X}.

@noindent
@var{N}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
@var{X}: @code{REAL}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Calculates the Bessel function of the first kind of order @var{N}.
See @code{bessel(3m)}, on whose implementation the function depends.
@node BesY0 Intrinsic
@subsubsection BesY0 Intrinsic
@cindex BesY0 intrinsic
@cindex intrinsics, BesY0

@noindent
@example
BesY0(@var{X})
@end example

@noindent
BesY0: @code{REAL} function, the @samp{KIND=} value of the type being that of argument @var{X}.

@noindent
@var{X}: @code{REAL}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Calculates the Bessel function of the second kind of order 0.
See @code{bessel(3m)}, on whose implementation the function depends.
@node BesY1 Intrinsic
@subsubsection BesY1 Intrinsic
@cindex BesY1 intrinsic
@cindex intrinsics, BesY1

@noindent
@example
BesY1(@var{X})
@end example

@noindent
BesY1: @code{REAL} function, the @samp{KIND=} value of the type being that of argument @var{X}.

@noindent
@var{X}: @code{REAL}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Calculates the Bessel function of the second kind of order 1.
See @code{bessel(3m)}, on whose implementation the function depends.
@node BesYN Intrinsic
@subsubsection BesYN Intrinsic
@cindex BesYN intrinsic
@cindex intrinsics, BesYN

@noindent
@example
BesYN(@var{N}, @var{X})
@end example

@noindent
BesYN: @code{REAL} function, the @samp{KIND=} value of the type being that of argument @var{X}.

@noindent
@var{N}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
@var{X}: @code{REAL}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Calculates the Bessel function of the second kind of order @var{N}.
See @code{bessel(3m)}, on whose implementation the function depends.
@end ifset
@ifset familyF90
@node Bit_Size Intrinsic
@subsubsection Bit_Size Intrinsic
@cindex Bit_Size intrinsic
@cindex intrinsics, Bit_Size

@noindent
@example
Bit_Size(@var{I})
@end example

@noindent
Bit_Size: @code{INTEGER} function, the @samp{KIND=} value of the type being that of argument @var{I}.

@noindent
@var{I}: @code{INTEGER}; scalar.

@noindent
Intrinsic groups: @code{f90}.

@noindent
Description:

Returns the number of bits (integer precision plus sign bit)
represented by the type for @var{I}.

@xref{BTest Intrinsic}, for how to test the value of a
bit in a variable or array.

@xref{IBSet Intrinsic}, for how to set a bit in a
variable or array to 1.

@end ifset
@ifset familyMIL
@node BTest Intrinsic
@subsubsection BTest Intrinsic
@cindex BTest intrinsic
@cindex intrinsics, BTest

@noindent
@example
BTest(@var{I}, @var{Pos})
@end example

@noindent
BTest: @code{LOGICAL(KIND=1)} function.

@noindent
@var{I}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
@var{Pos}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{mil}, @code{f90}, @code{vxt}.

@noindent
Description:

Returns @code{.TRUE.} if bit @var{Pos} in @var{I} is
1, @code{.FALSE.} otherwise.

(Bit 0 is the low-order bit, adding the value 2**0, or 1,
to the number if set to 1;
bit 1 is the next-higher-order bit, adding 2**1, or 2;
bit 2 adds 2**2, or 4; and so on.)

@xref{Bit_Size Intrinsic}, for how to obtain the number of bits
in a type.

@end ifset
@ifset familyF77
@node CAbs Intrinsic
@subsubsection CAbs Intrinsic
@cindex CAbs intrinsic
@cindex intrinsics, CAbs

@noindent
@example
CAbs(@var{A})
@end example

@noindent
CAbs: @code{REAL(KIND=1)} function.

@noindent
@var{A}: @code{COMPLEX(KIND=1)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@noindent
Description:

Archaic form of @code{ABS()} that is specific
to one type for @var{A}.
@xref{Abs Intrinsic}.

@node CCos Intrinsic
@subsubsection CCos Intrinsic
@cindex CCos intrinsic
@cindex intrinsics, CCos

@noindent
@example
CCos(@var{X})
@end example

@noindent
CCos: @code{COMPLEX(KIND=1)} function.

@noindent
@var{X}: @code{COMPLEX(KIND=1)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@end ifset
@ifset familyFVZ
@node CDAbs Intrinsic
@subsubsection CDAbs Intrinsic
@cindex CDAbs intrinsic
@cindex intrinsics, CDAbs

@noindent
@example
CDAbs(@var{A})
@end example

@noindent
CDAbs: @code{REAL(KIND=2)} function.

@noindent
@var{A}: @code{COMPLEX(KIND=2)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{f2c}, @code{vxt}.

@noindent
Description:

Archaic form of @code{ABS()} that is specific
to one type for @var{A}.
@xref{Abs Intrinsic}.

@node CDCos Intrinsic
@subsubsection CDCos Intrinsic
@cindex CDCos intrinsic
@cindex intrinsics, CDCos

@noindent
@example
CDCos(@var{X})
@end example

@noindent
CDCos: @code{COMPLEX(KIND=2)} function.

@noindent
@var{X}: @code{COMPLEX(KIND=2)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{f2c}, @code{vxt}.

@node CDExp Intrinsic
@subsubsection CDExp Intrinsic
@cindex CDExp intrinsic
@cindex intrinsics, CDExp

@noindent
@example
CDExp(@var{X})
@end example

@noindent
CDExp: @code{COMPLEX(KIND=2)} function.

@noindent
@var{X}: @code{COMPLEX(KIND=2)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{f2c}, @code{vxt}.

@node CDLog Intrinsic
@subsubsection CDLog Intrinsic
@cindex CDLog intrinsic
@cindex intrinsics, CDLog

@noindent
@example
CDLog(@var{X})
@end example

@noindent
CDLog: @code{COMPLEX(KIND=2)} function.

@noindent
@var{X}: @code{COMPLEX(KIND=2)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{f2c}, @code{vxt}.

@noindent
Description:

Archaic form of @code{LOG()} that is specific
to one type for @var{X}.
@xref{Log Intrinsic}.

@node CDSin Intrinsic
@subsubsection CDSin Intrinsic
@cindex CDSin intrinsic
@cindex intrinsics, CDSin

@noindent
@example
CDSin(@var{X})
@end example

@noindent
CDSin: @code{COMPLEX(KIND=2)} function.

@noindent
@var{X}: @code{COMPLEX(KIND=2)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{f2c}, @code{vxt}.

@node CDSqRt Intrinsic
@subsubsection CDSqRt Intrinsic
@cindex CDSqRt intrinsic
@cindex intrinsics, CDSqRt

@noindent
@example
CDSqRt(@var{X})
@end example

@noindent
CDSqRt: @code{COMPLEX(KIND=2)} function.

@noindent
@var{X}: @code{COMPLEX(KIND=2)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{f2c}, @code{vxt}.

@end ifset
@ifset familyF77
@node CExp Intrinsic
@subsubsection CExp Intrinsic
@cindex CExp intrinsic
@cindex intrinsics, CExp

@noindent
@example
CExp(@var{X})
@end example

@noindent
CExp: @code{COMPLEX(KIND=1)} function.

@noindent
@var{X}: @code{COMPLEX(KIND=1)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@node Char Intrinsic
@subsubsection Char Intrinsic
@cindex Char intrinsic
@cindex intrinsics, Char

@noindent
@example
Char(@var{I})
@end example

@noindent
Char: @code{CHARACTER*1} function.

@noindent
@var{I}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@noindent
Description:

Returns the character corresponding to the
code specified by @var{I}, using the system's
native character set.

Because the system's native character set is used,
the correspondence between character and their codes
is not necessarily the same between GNU Fortran
implementations.

@xref{IChar Intrinsic}, for the inverse function.

@xref{AChar Intrinsic}, for the function corresponding
to the ASCII character set.

@end ifset
@ifset familyF2U
@node ChDir Intrinsic
@subsubsection ChDir Intrinsic
@cindex ChDir intrinsic
@cindex intrinsics, ChDir

@noindent
@example
CALL ChDir(@var{Dir}, @var{Status})
@end example

@noindent
@var{Dir}: @code{CHARACTER}; scalar; INTENT(IN).

@noindent
@var{Status}: @code{INTEGER(KIND=1)}; OPTIONAL; scalar; INTENT(OUT).

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Sets the current working directory to be @var{Dir}.
If the @var{Status} argument is supplied, it contains 0
on success or an error code otherwise upon return.
See @code{chdir(3)}.

@node ChMod Intrinsic
@subsubsection ChMod Intrinsic
@cindex ChMod intrinsic
@cindex intrinsics, ChMod

@noindent
@example
CALL ChMod(@var{Name}, @var{Mode}, @var{Status})
@end example

@noindent
@var{Name}: @code{CHARACTER}; scalar; INTENT(IN).

@noindent
@var{Mode}: @code{CHARACTER}; scalar; INTENT(IN).

@noindent
@var{Status}: @code{INTEGER}; OPTIONAL; scalar; INTENT(OUT).

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Changes the access mode of file @var{Name} according to the
specification @var{Mode}, which is given in the format of
@code{chmod(1)}.
If the @var{Status} argument is supplied, it contains 0
on success or an error code otherwise 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
will, anyway, be slow.

@end ifset
@ifset familyF77
@node CLog Intrinsic
@subsubsection CLog Intrinsic
@cindex CLog intrinsic
@cindex intrinsics, CLog

@noindent
@example
CLog(@var{X})
@end example

@noindent
CLog: @code{COMPLEX(KIND=1)} function.

@noindent
@var{X}: @code{COMPLEX(KIND=1)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@noindent
Description:

Archaic form of @code{LOG()} that is specific
to one type for @var{X}.
@xref{Log Intrinsic}.

@node Cmplx Intrinsic
@subsubsection Cmplx Intrinsic
@cindex Cmplx intrinsic
@cindex intrinsics, Cmplx

@noindent
@example
Cmplx(@var{X}, @var{Y})
@end example

@noindent
Cmplx: @code{COMPLEX(KIND=1)} function.

@noindent
@var{X}: @code{INTEGER}, @code{REAL}, or @code{COMPLEX}; scalar; INTENT(IN).

@noindent
@var{Y}: @code{INTEGER} or @code{REAL}; OPTIONAL (must be omitted if @var{X} is @code{COMPLEX}); scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@noindent
Description:

If @var{X} is not type @code{COMPLEX},
constructs a value of type @code{COMPLEX(KIND=1)} from the
real and imaginary values specified by @var{X} and
@var{Y}, respectively.
If @var{Y} is omitted, @samp{0.} is assumed.

If @var{X} is type @code{COMPLEX},
converts it to type @code{COMPLEX(KIND=1)}.

@xref{Complex Intrinsic}, for information on easily constructing
a @code{COMPLEX} value of arbitrary precision from @code{REAL}
arguments.

@end ifset
@ifset familyGNU
@node Complex Intrinsic
@subsubsection Complex Intrinsic
@cindex Complex intrinsic
@cindex intrinsics, Complex

@noindent
@example
Complex(@var{Real}, @var{Imag})
@end example

@noindent
Complex: @code{COMPLEX} function, the exact type being the result of cross-promoting the
types of all the arguments.

@noindent
@var{Real}: @code{INTEGER} or @code{REAL}; scalar; INTENT(IN).

@noindent
@var{Imag}: @code{INTEGER} or @code{REAL}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{gnu}.

@noindent
Description:

Returns a @code{COMPLEX} value that has @samp{Real} and @samp{Imag} as its
real and imaginary parts, respectively.

If @var{Real} and @var{Imag} are the same type, and that type is not
@code{INTEGER}, no data conversion is performed, and the type of
the resulting value has the same kind value as the types
of @var{Real} and @var{Imag}.

If @var{Real} and @var{Imag} are not the same type, the usual type-promotion
rules are applied to both, converting either or both to the
appropriate @code{REAL} type.
The type of the resulting value has the same kind value as the
type to which both @var{Real} and @var{Imag} were converted, in this case.

If @var{Real} and @var{Imag} are both @code{INTEGER}, they are both converted
to @code{REAL(KIND=1)}, and the result of the @code{COMPLEX()}
invocation is type @code{COMPLEX(KIND=1)}.

@emph{Note:} The way to do this in standard Fortran 90
is too hairy to describe here, but it is important to
note that @samp{CMPLX(D1,D2)} returns a @code{COMPLEX(KIND=1)}
result even if @samp{D1} and @samp{D2} are type @code{REAL(KIND=2)}.
Hence the availability of @code{COMPLEX()} in GNU Fortran.

@end ifset
@ifset familyF77
@node Conjg Intrinsic
@subsubsection Conjg Intrinsic
@cindex Conjg intrinsic
@cindex intrinsics, Conjg

@noindent
@example
Conjg(@var{Z})
@end example

@noindent
Conjg: @code{COMPLEX} function, the @samp{KIND=} value of the type being that of argument @var{Z}.

@noindent
@var{Z}: @code{COMPLEX}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@noindent
Description:

Returns the complex conjugate:

@example
COMPLEX(REALPART(@var{Z}), -IMAGPART(@var{Z}))
@end example

@node Cos Intrinsic
@subsubsection Cos Intrinsic
@cindex Cos intrinsic
@cindex intrinsics, Cos

@noindent
@example
Cos(@var{X})
@end example

@noindent
Cos: @code{REAL} or @code{COMPLEX} function, the exact type being that of argument @var{X}.

@noindent
@var{X}: @code{REAL} or @code{COMPLEX}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@node CosH Intrinsic
@subsubsection CosH Intrinsic
@cindex CosH intrinsic
@cindex intrinsics, CosH

@noindent
@example
CosH(@var{X})
@end example

@noindent
CosH: @code{REAL} function, the @samp{KIND=} value of the type being that of argument @var{X}.

@noindent
@var{X}: @code{REAL}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@node CSin Intrinsic
@subsubsection CSin Intrinsic
@cindex CSin intrinsic
@cindex intrinsics, CSin

@noindent
@example
CSin(@var{X})
@end example

@noindent
CSin: @code{COMPLEX(KIND=1)} function.

@noindent
@var{X}: @code{COMPLEX(KIND=1)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@node CSqRt Intrinsic
@subsubsection CSqRt Intrinsic
@cindex CSqRt intrinsic
@cindex intrinsics, CSqRt

@noindent
@example
CSqRt(@var{X})
@end example

@noindent
CSqRt: @code{COMPLEX(KIND=1)} function.

@noindent
@var{X}: @code{COMPLEX(KIND=1)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@end ifset
@ifset familyF2U
@node CTime Intrinsic
@subsubsection CTime Intrinsic
@cindex CTime intrinsic
@cindex intrinsics, CTime

@noindent
@example
CTime(@var{STime})
@end example

@noindent
CTime: @code{CHARACTER*(*)} function.

@noindent
@var{STime}: @code{INTEGER(KIND=2)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Converts @var{STime}, a system time value, such as returned by
@code{TIME()}, to a string of the form @samp{Sat Aug 19 18:13:14 1995}.

@xref{Time Intrinsic}.

@end ifset
@ifset familyF77
@node DAbs Intrinsic
@subsubsection DAbs Intrinsic
@cindex DAbs intrinsic
@cindex intrinsics, DAbs

@noindent
@example
DAbs(@var{A})
@end example

@noindent
DAbs: @code{REAL(KIND=2)} function.

@noindent
@var{A}: @code{REAL(KIND=2)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@noindent
Description:

Archaic form of @code{ABS()} that is specific
to one type for @var{A}.
@xref{Abs Intrinsic}.

@node DACos Intrinsic
@subsubsection DACos Intrinsic
@cindex DACos intrinsic
@cindex intrinsics, DACos

@noindent
@example
DACos(@var{X})
@end example

@noindent
DACos: @code{REAL(KIND=2)} function.

@noindent
@var{X}: @code{REAL(KIND=2)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@noindent
Description:

Archaic form of @code{ACOS()} that is specific
to one type for @var{X}.
@xref{ACos Intrinsic}.

@node DASin Intrinsic
@subsubsection DASin Intrinsic
@cindex DASin intrinsic
@cindex intrinsics, DASin

@noindent
@example
DASin(@var{X})
@end example

@noindent
DASin: @code{REAL(KIND=2)} function.

@noindent
@var{X}: @code{REAL(KIND=2)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@noindent
Description:

Archaic form of @code{ASIN()} that is specific
to one type for @var{X}.
@xref{ASin Intrinsic}.

@node DATan Intrinsic
@subsubsection DATan Intrinsic
@cindex DATan intrinsic
@cindex intrinsics, DATan

@noindent
@example
DATan(@var{X})
@end example

@noindent
DATan: @code{REAL(KIND=2)} function.

@noindent
@var{X}: @code{REAL(KIND=2)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@noindent
Description:

Archaic form of @code{ATAN()} that is specific
to one type for @var{X}.
@xref{ATan Intrinsic}.

@node DATan2 Intrinsic
@subsubsection DATan2 Intrinsic
@cindex DATan2 intrinsic
@cindex intrinsics, DATan2

@noindent
@example
DATan2(@var{Y}, @var{X})
@end example

@noindent
DATan2: @code{REAL(KIND=2)} function.

@noindent
@var{Y}: @code{REAL(KIND=2)}; scalar; INTENT(IN).

@noindent
@var{X}: @code{REAL(KIND=2)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@noindent
Description:

Archaic form of @code{ATAN2()} that is specific
to one type for @var{Y} and @var{X}.
@xref{ATan2 Intrinsic}.

@end ifset
@ifset familyVXT
@node Date Intrinsic
@subsubsection Date Intrinsic
@cindex Date intrinsic
@cindex intrinsics, Date

@noindent
@example
CALL Date(@var{Date})
@end example

@noindent
@var{Date}: @code{CHARACTER}; scalar; INTENT(OUT).

@noindent
Intrinsic groups: @code{vxt}.

@noindent
Description:

Returns @var{Date} 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}.

This intrinsic is not recommended, due to the year 2000 approaching.
@xref{CTime Intrinsic}, for information on obtaining more digits
for the current (or any) date.

@end ifset
@ifset familyF2U
@node DbesJ0 Intrinsic
@subsubsection DbesJ0 Intrinsic
@cindex DbesJ0 intrinsic
@cindex intrinsics, DbesJ0

@noindent
@example
DbesJ0(@var{X})
@end example

@noindent
DbesJ0: @code{REAL(KIND=2)} function.

@noindent
@var{X}: @code{REAL(KIND=2)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{unix}.

@node DbesJ1 Intrinsic
@subsubsection DbesJ1 Intrinsic
@cindex DbesJ1 intrinsic
@cindex intrinsics, DbesJ1

@noindent
@example
DbesJ1(@var{X})
@end example

@noindent
DbesJ1: @code{REAL(KIND=2)} function.

@noindent
@var{X}: @code{REAL(KIND=2)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{unix}.

@node DbesJN Intrinsic
@subsubsection DbesJN Intrinsic
@cindex DbesJN intrinsic
@cindex intrinsics, DbesJN

@noindent
@example
DbesJN(@var{N}, @var{X})
@end example

@noindent
DbesJN: @code{REAL(KIND=2)} function.

@noindent
@var{N}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
@var{X}: @code{REAL(KIND=2)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{unix}.

@node DbesY0 Intrinsic
@subsubsection DbesY0 Intrinsic
@cindex DbesY0 intrinsic
@cindex intrinsics, DbesY0

@noindent
@example
DbesY0(@var{X})
@end example

@noindent
DbesY0: @code{REAL(KIND=2)} function.

@noindent
@var{X}: @code{REAL(KIND=2)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{unix}.

@node DbesY1 Intrinsic
@subsubsection DbesY1 Intrinsic
@cindex DbesY1 intrinsic
@cindex intrinsics, DbesY1

@noindent
@example
DbesY1(@var{X})
@end example

@noindent
DbesY1: @code{REAL(KIND=2)} function.

@noindent
@var{X}: @code{REAL(KIND=2)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{unix}.

@node DbesYN Intrinsic
@subsubsection DbesYN Intrinsic
@cindex DbesYN intrinsic
@cindex intrinsics, DbesYN

@noindent
@example
DbesYN(@var{N}, @var{X})
@end example

@noindent
DbesYN: @code{REAL(KIND=2)} function.

@noindent
@var{N}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
@var{X}: @code{REAL(KIND=2)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{unix}.

@end ifset
@ifset familyF77
@node Dble Intrinsic
@subsubsection Dble Intrinsic
@cindex Dble intrinsic
@cindex intrinsics, Dble

@noindent
@example
Dble(@var{A})
@end example

@noindent
Dble: @code{REAL(KIND=2)} function.

@noindent
@var{A}: @code{INTEGER}, @code{REAL}, or @code{COMPLEX}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@end ifset
@ifset familyFVZ
@node DCmplx Intrinsic
@subsubsection DCmplx Intrinsic
@cindex DCmplx intrinsic
@cindex intrinsics, DCmplx

@noindent
@example
DCmplx(@var{X}, @var{Y})
@end example

@noindent
DCmplx: @code{COMPLEX(KIND=2)} function.

@noindent
@var{X}: @code{INTEGER}, @code{REAL}, or @code{COMPLEX}; scalar; INTENT(IN).

@noindent
@var{Y}: @code{INTEGER} or @code{REAL}; OPTIONAL (must be omitted if @var{X} is @code{COMPLEX}); scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{f2c}, @code{vxt}.

@node DConjg Intrinsic
@subsubsection DConjg Intrinsic
@cindex DConjg intrinsic
@cindex intrinsics, DConjg

@noindent
@example
DConjg(@var{Z})
@end example

@noindent
DConjg: @code{COMPLEX(KIND=2)} function.

@noindent
@var{Z}: @code{COMPLEX(KIND=2)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{f2c}, @code{vxt}.

@noindent
Description:

Archaic form of @code{CONJG()} that is specific
to one type for @var{Z}.
@xref{ATan2 Intrinsic}.

@end ifset
@ifset familyF77
@node DCos Intrinsic
@subsubsection DCos Intrinsic
@cindex DCos intrinsic
@cindex intrinsics, DCos

@noindent
@example
DCos(@var{X})
@end example

@noindent
DCos: @code{REAL(KIND=2)} function.

@noindent
@var{X}: @code{REAL(KIND=2)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@node DCosH Intrinsic
@subsubsection DCosH Intrinsic
@cindex DCosH intrinsic
@cindex intrinsics, DCosH

@noindent
@example
DCosH(@var{X})
@end example

@noindent
DCosH: @code{REAL(KIND=2)} function.

@noindent
@var{X}: @code{REAL(KIND=2)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@node DDiM Intrinsic
@subsubsection DDiM Intrinsic
@cindex DDiM intrinsic
@cindex intrinsics, DDiM

@noindent
@example
DDiM(@var{X}, @var{Y})
@end example

@noindent
DDiM: @code{REAL(KIND=2)} function.

@noindent
@var{X}: @code{REAL(KIND=2)}; scalar; INTENT(IN).

@noindent
@var{Y}: @code{REAL(KIND=2)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@end ifset
@ifset familyF2U
@node DErF Intrinsic
@subsubsection DErF Intrinsic
@cindex DErF intrinsic
@cindex intrinsics, DErF

@noindent
@example
DErF(@var{X})
@end example

@noindent
DErF: @code{REAL(KIND=2)} function.

@noindent
@var{X}: @code{REAL(KIND=2)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{unix}.

@node DErFC Intrinsic
@subsubsection DErFC Intrinsic
@cindex DErFC intrinsic
@cindex intrinsics, DErFC

@noindent
@example
DErFC(@var{X})
@end example

@noindent
DErFC: @code{REAL(KIND=2)} function.

@noindent
@var{X}: @code{REAL(KIND=2)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{unix}.

@end ifset
@ifset familyF77
@node DExp Intrinsic
@subsubsection DExp Intrinsic
@cindex DExp intrinsic
@cindex intrinsics, DExp

@noindent
@example
DExp(@var{X})
@end example

@noindent
DExp: @code{REAL(KIND=2)} function.

@noindent
@var{X}: @code{REAL(KIND=2)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@end ifset
@ifset familyFVZ
@node DFloat Intrinsic
@subsubsection DFloat Intrinsic
@cindex DFloat intrinsic
@cindex intrinsics, DFloat

@noindent
@example
DFloat(@var{A})
@end example

@noindent
DFloat: @code{REAL(KIND=2)} function.

@noindent
@var{A}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{f2c}, @code{vxt}.

@end ifset
@ifset familyF77
@node DiM Intrinsic
@subsubsection DiM Intrinsic
@cindex DiM intrinsic
@cindex intrinsics, DiM

@noindent
@example
DiM(@var{X}, @var{Y})
@end example

@noindent
DiM: @code{INTEGER} or @code{REAL} function, the exact type being the result of cross-promoting the
types of all the arguments.

@noindent
@var{X}: @code{INTEGER} or @code{REAL}; scalar; INTENT(IN).

@noindent
@var{Y}: @code{INTEGER} or @code{REAL}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@end ifset
@ifset familyFVZ
@node DImag Intrinsic
@subsubsection DImag Intrinsic
@cindex DImag intrinsic
@cindex intrinsics, DImag

@noindent
@example
DImag(@var{Z})
@end example

@noindent
DImag: @code{REAL(KIND=2)} function.

@noindent
@var{Z}: @code{COMPLEX(KIND=2)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{f2c}, @code{vxt}.

@end ifset
@ifset familyF77
@node DInt Intrinsic
@subsubsection DInt Intrinsic
@cindex DInt intrinsic
@cindex intrinsics, DInt

@noindent
@example
DInt(@var{A})
@end example

@noindent
DInt: @code{REAL(KIND=2)} function.

@noindent
@var{A}: @code{REAL(KIND=2)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@noindent
Description:

Archaic form of @code{AINT()} that is specific
to one type for @var{A}.
@xref{AInt Intrinsic}.

@node DLog Intrinsic
@subsubsection DLog Intrinsic
@cindex DLog intrinsic
@cindex intrinsics, DLog

@noindent
@example
DLog(@var{X})
@end example

@noindent
DLog: @code{REAL(KIND=2)} function.

@noindent
@var{X}: @code{REAL(KIND=2)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@noindent
Description:

Archaic form of @code{LOG()} that is specific
to one type for @var{X}.
@xref{Log Intrinsic}.

@node DLog10 Intrinsic
@subsubsection DLog10 Intrinsic
@cindex DLog10 intrinsic
@cindex intrinsics, DLog10

@noindent
@example
DLog10(@var{X})
@end example

@noindent
DLog10: @code{REAL(KIND=2)} function.

@noindent
@var{X}: @code{REAL(KIND=2)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@noindent
Description:

Archaic form of @code{LOG10()} that is specific
to one type for @var{X}.
@xref{Log10 Intrinsic}.

@node DMax1 Intrinsic
@subsubsection DMax1 Intrinsic
@cindex DMax1 intrinsic
@cindex intrinsics, DMax1

@noindent
@example
DMax1(@var{A}-1, @var{A}-2, @dots{}, @var{A}-n)
@end example

@noindent
DMax1: @code{REAL(KIND=2)} function.

@noindent
@var{A}: @code{REAL(KIND=2)}; at least two such arguments must be provided; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@noindent
Description:

Archaic form of @code{MAX()} that is specific
to one type for @var{A}.
@xref{Max Intrinsic}.

@node DMin1 Intrinsic
@subsubsection DMin1 Intrinsic
@cindex DMin1 intrinsic
@cindex intrinsics, DMin1

@noindent
@example
DMin1(@var{A}-1, @var{A}-2, @dots{}, @var{A}-n)
@end example

@noindent
DMin1: @code{REAL(KIND=2)} function.

@noindent
@var{A}: @code{REAL(KIND=2)}; at least two such arguments must be provided; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@noindent
Description:

Archaic form of @code{MIN()} that is specific
to one type for @var{A}.
@xref{Min Intrinsic}.

@node DMod Intrinsic
@subsubsection DMod Intrinsic
@cindex DMod intrinsic
@cindex intrinsics, DMod

@noindent
@example
DMod(@var{A}, @var{P})
@end example

@noindent
DMod: @code{REAL(KIND=2)} function.

@noindent
@var{A}: @code{REAL(KIND=2)}; scalar; INTENT(IN).

@noindent
@var{P}: @code{REAL(KIND=2)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@noindent
Description:

Archaic form of @code{MOD()} that is specific
to one type for @var{A}.
@xref{Mod Intrinsic}.

@node DNInt Intrinsic
@subsubsection DNInt Intrinsic
@cindex DNInt intrinsic
@cindex intrinsics, DNInt

@noindent
@example
DNInt(@var{A})
@end example

@noindent
DNInt: @code{REAL(KIND=2)} function.

@noindent
@var{A}: @code{REAL(KIND=2)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@noindent
Description:

Archaic form of @code{ANINT()} that is specific
to one type for @var{A}.
@xref{ANInt Intrinsic}.

@node DProd Intrinsic
@subsubsection DProd Intrinsic
@cindex DProd intrinsic
@cindex intrinsics, DProd

@noindent
@example
DProd(@var{X}, @var{Y})
@end example

@noindent
DProd: @code{REAL(KIND=2)} function.

@noindent
@var{X}: @code{REAL(KIND=1)}; scalar; INTENT(IN).

@noindent
@var{Y}: @code{REAL(KIND=1)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@end ifset
@ifset familyVXT
@node DReal Intrinsic
@subsubsection DReal Intrinsic
@cindex DReal intrinsic
@cindex intrinsics, DReal

@noindent
@example
DReal(@var{A})
@end example

@noindent
DReal: @code{REAL(KIND=2)} function.

@noindent
@var{A}: @code{INTEGER}, @code{REAL}, or @code{COMPLEX}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{vxt}.

@end ifset
@ifset familyF77
@node DSign Intrinsic
@subsubsection DSign Intrinsic
@cindex DSign intrinsic
@cindex intrinsics, DSign

@noindent
@example
DSign(@var{A}, @var{B})
@end example

@noindent
DSign: @code{REAL(KIND=2)} function.

@noindent
@var{A}: @code{REAL(KIND=2)}; scalar; INTENT(IN).

@noindent
@var{B}: @code{REAL(KIND=2)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@node DSin Intrinsic
@subsubsection DSin Intrinsic
@cindex DSin intrinsic
@cindex intrinsics, DSin

@noindent
@example
DSin(@var{X})
@end example

@noindent
DSin: @code{REAL(KIND=2)} function.

@noindent
@var{X}: @code{REAL(KIND=2)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@node DSinH Intrinsic
@subsubsection DSinH Intrinsic
@cindex DSinH intrinsic
@cindex intrinsics, DSinH

@noindent
@example
DSinH(@var{X})
@end example

@noindent
DSinH: @code{REAL(KIND=2)} function.

@noindent
@var{X}: @code{REAL(KIND=2)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@node DSqRt Intrinsic
@subsubsection DSqRt Intrinsic
@cindex DSqRt intrinsic
@cindex intrinsics, DSqRt

@noindent
@example
DSqRt(@var{X})
@end example

@noindent
DSqRt: @code{REAL(KIND=2)} function.

@noindent
@var{X}: @code{REAL(KIND=2)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@node DTan Intrinsic
@subsubsection DTan Intrinsic
@cindex DTan intrinsic
@cindex intrinsics, DTan

@noindent
@example
DTan(@var{X})
@end example

@noindent
DTan: @code{REAL(KIND=2)} function.

@noindent
@var{X}: @code{REAL(KIND=2)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@node DTanH Intrinsic
@subsubsection DTanH Intrinsic
@cindex DTanH intrinsic
@cindex intrinsics, DTanH

@noindent
@example
DTanH(@var{X})
@end example

@noindent
DTanH: @code{REAL(KIND=2)} function.

@noindent
@var{X}: @code{REAL(KIND=2)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@end ifset
@ifset familyF2U
@node Dtime Intrinsic
@subsubsection Dtime Intrinsic
@cindex Dtime intrinsic
@cindex intrinsics, Dtime

@noindent
@example
Dtime(@var{TArray})
@end example

@noindent
Dtime: @code{REAL(KIND=1)} function.

@noindent
@var{TArray}: @code{REAL(KIND=1)}; DIMENSION(2); INTENT(OUT).

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Initially, return in seconds the runtime (since the start of the
process' execution) as the function value and the user and system
components of this in @samp{@var{TArray}(1)} and @samp{@var{TArray}(2)}
respectively.
The functions' value is equal to @samp{@var{TArray}(1) + @samp{TArray}(2)}.

Subsequent invocations of @samp{DTIME()} return values accumulated since the
previous invocation.

@node ErF Intrinsic
@subsubsection ErF Intrinsic
@cindex ErF intrinsic
@cindex intrinsics, ErF

@noindent
@example
ErF(@var{X})
@end example

@noindent
ErF: @code{REAL} function, the @samp{KIND=} value of the type being that of argument @var{X}.

@noindent
@var{X}: @code{REAL}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Returns the error function of @var{X}.
See @code{erf(3m)}, which provides the implementation.

@node ErFC Intrinsic
@subsubsection ErFC Intrinsic
@cindex ErFC intrinsic
@cindex intrinsics, ErFC

@noindent
@example
ErFC(@var{X})
@end example

@noindent
ErFC: @code{REAL} function, the @samp{KIND=} value of the type being that of argument @var{X}.

@noindent
@var{X}: @code{REAL}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Returns the complementary error function of @var{X}:
@code{ERFC(R) = 1 - ERF(R)} (except that the result may be more
accurate than explicitly evaluating that formulae would give).
See @code{erfc(3m)}, which provides the implementation.

@node ETime Intrinsic
@subsubsection ETime Intrinsic
@cindex ETime intrinsic
@cindex intrinsics, ETime

@noindent
@example
ETime(@var{TArray})
@end example

@noindent
ETime: @code{REAL(KIND=1)} function.

@noindent
@var{TArray}: @code{REAL(KIND=1)}; DIMENSION(2); INTENT(OUT).

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Return in seconds the runtime (since the start of the process'
execution) as the function value and the user and system components of
this in @samp{@var{TArray}(1)} and @samp{@var{TArray}(2)} respectively.
The functions' value is equal to @samp{@var{TArray}(1) + @var{TArray}(2)}.

@node Exit Intrinsic
@subsubsection Exit Intrinsic
@cindex Exit intrinsic
@cindex intrinsics, Exit

@noindent
@example
CALL Exit(@var{Status})
@end example

@noindent
@var{Status}: @code{INTEGER}; OPTIONAL; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Exit the program with status @var{Status} after closing open Fortran
i/o units and otherwise behaving as @code{exit(2)}.  If @var{Status}
is omitted the canonical `success' value will be returned to the
system.

@end ifset
@ifset familyF77
@node Exp Intrinsic
@subsubsection Exp Intrinsic
@cindex Exp intrinsic
@cindex intrinsics, Exp

@noindent
@example
Exp(@var{X})
@end example

@noindent
Exp: @code{REAL} or @code{COMPLEX} function, the exact type being that of argument @var{X}.

@noindent
@var{X}: @code{REAL} or @code{COMPLEX}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@end ifset
@ifset familyF2U
@node Fdate Intrinsic
@subsubsection Fdate Intrinsic
@cindex Fdate intrinsic
@cindex intrinsics, Fdate

@noindent
@example
Fdate()
@end example

@noindent
Fdate: @code{CHARACTER*(*)} function.

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Returns the current date in the same format as @code{CTIME()}.

Equivalent to:

@example
CTIME(TIME())
@end example

@xref{CTime Intrinsic}.

@node FGetC Intrinsic
@subsubsection FGetC Intrinsic
@cindex FGetC intrinsic
@cindex intrinsics, FGetC

@noindent
@example
CALL FGetC(@var{Unit}, @var{C}, @var{Status})
@end example

@noindent
@var{Unit}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
@var{C}: @code{CHARACTER}; scalar; INTENT(OUT).

@noindent
@var{Status}: @code{INTEGER}; scalar; INTENT(OUT).

@noindent
Intrinsic groups: @code{unix}.

@end ifset
@ifset familyF77
@node Float Intrinsic
@subsubsection Float Intrinsic
@cindex Float intrinsic
@cindex intrinsics, Float

@noindent
@example
Float(@var{A})
@end example

@noindent
Float: @code{REAL(KIND=1)} function.

@noindent
@var{A}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@end ifset
@ifset familyF2U
@node Flush Intrinsic
@subsubsection Flush Intrinsic
@cindex Flush intrinsic
@cindex intrinsics, Flush

@noindent
@example
CALL Flush(@var{Unit})
@end example

@noindent
@var{Unit}: @code{INTEGER}; OPTIONAL; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Flushes Fortran unit(s) currently open for output.
Without the optional argument, all such units are flushed,
otherwise just the unit specified by @var{Unit}.

@node FNum Intrinsic
@subsubsection FNum Intrinsic
@cindex FNum intrinsic
@cindex intrinsics, FNum

@noindent
@example
FNum(@var{Unit})
@end example

@noindent
FNum: @code{INTEGER(KIND=1)} function.

@noindent
@var{Unit}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Returns the Unix file descriptor number corresponding to the open
Fortran I/O unit @var{Unit}.
This could be passed to an interface to C I/O routines.

@node FPutC Intrinsic
@subsubsection FPutC Intrinsic
@cindex FPutC intrinsic
@cindex intrinsics, FPutC

@noindent
@example
CALL FPutC(@var{Unit}, @var{C}, @var{Status})
@end example

@noindent
@var{Unit}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
@var{C}: @code{CHARACTER}; scalar; INTENT(IN).

@noindent
@var{Status}: @code{INTEGER}; scalar; INTENT(OUT).

@noindent
Intrinsic groups: @code{unix}.

@node FSeek Intrinsic
@subsubsection FSeek Intrinsic
@cindex FSeek intrinsic
@cindex intrinsics, FSeek

@noindent
@example
CALL FSeek(@var{Unit}, @var{Offset}, @var{Whence}, @var{ErrLab})
@end example

@noindent
@var{Unit}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
@var{Offset}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
@var{Whence}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
@var{ErrLab}: @samp{*@var{label}}, where @var{label} is the label
of an executable statement; OPTIONAL.

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Attempts to move Fortran unit @var{Unit} to the specified
@var{Offset}: absolute offset if @var{Offset}=0; relative to the
current offset if @var{Offset}=1; relative to the end of the file if
@var{Offset}=2.
It branches to label @var{Whence} if @var{Unit} is
not open or if the call otherwise fails.

@node FStat Intrinsic
@subsubsection FStat Intrinsic
@cindex FStat intrinsic
@cindex intrinsics, FStat

@noindent
@example
FStat(@var{Unit}, @var{SArray})
@end example

@noindent
FStat: @code{INTEGER(KIND=1)} function.

@noindent
@var{Unit}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
@var{SArray}: @code{INTEGER(KIND=1)}; DIMENSION(13); INTENT(OUT).

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Obtains data about the file open on Fortran I/O unit @var{Unit} and
places them in the array @var{SArray}.
The values in this array are
extracted from the @code{stat} structure as returned by
@code{fstat(2)} q.v., as follows:

@enumerate
@item
File mode

@item
Inode number

@item
ID of device containing directory entry for file

@item
Device id (if relevant)

@item
Number of links

@item
Owner's uid

@item
Owner's gid

@item
File size (bytes)

@item
Last access time

@item
Last modification time

@item
Last file status change time

@item
Preferred i/o block size

@item
Number of blocks allocated
@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, otherwise an error number.

@node FTell Intrinsic
@subsubsection FTell Intrinsic
@cindex FTell intrinsic
@cindex intrinsics, FTell

@noindent
@example
FTell(@var{Unit})
@end example

@noindent
FTell: @code{INTEGER(KIND=1)} function.

@noindent
@var{Unit}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Returns the current offset of Fortran unit @var{Unit} (or @minus{}1 if
@var{Unit} is not open).

@node GError Intrinsic
@subsubsection GError Intrinsic
@cindex GError intrinsic
@cindex intrinsics, GError

@noindent
@example
CALL GError(@var{Message})
@end example

@noindent
@var{Message}: @code{CHARACTER}; scalar; INTENT(OUT).

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Returns the system error message corresponding to the last system
error (C @code{errno}).

@node GetArg Intrinsic
@subsubsection GetArg Intrinsic
@cindex GetArg intrinsic
@cindex intrinsics, GetArg

@noindent
@example
CALL GetArg(@var{Pos}, @var{Value})
@end example

@noindent
@var{Pos}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
@var{Value}: @code{CHARACTER}; scalar; INTENT(OUT).

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Sets @var{Value} to the @var{Pos}-th command-line argument (or to all
blanks if there are fewer than @var{Value} command-line arguments);
@code{CALL GETARG(0, @var{value})} sets @var{value} to the name of the
program (on systems that support this feature).

@xref{IArgC Intrinsic}, for information on how to get the number
of arguments.

@node GetCWD Intrinsic
@subsubsection GetCWD Intrinsic
@cindex GetCWD intrinsic
@cindex intrinsics, GetCWD

@noindent
@example
GetCWD(@var{Name})
@end example

@noindent
GetCWD: @code{INTEGER(KIND=1)} function.

@noindent
@var{Name}: @code{CHARACTER}; scalar; INTENT(OUT).

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Places the current working directory in @var{Name}.
Returns 0 on
success, otherwise an error code.

@node GetEnv Intrinsic
@subsubsection GetEnv Intrinsic
@cindex GetEnv intrinsic
@cindex intrinsics, GetEnv

@noindent
@example
CALL GetEnv(@var{Name}, @var{Value})
@end example

@noindent
@var{Name}: @code{CHARACTER}; scalar; INTENT(IN).

@noindent
@var{Value}: @code{CHARACTER}; scalar; INTENT(OUT).

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Sets @var{Value} to the value of environment variable given by the
value of @var{Name} (@code{$name} in shell terms) or to blanks if
@code{$name} has not been set.

@node GetGId Intrinsic
@subsubsection GetGId Intrinsic
@cindex GetGId intrinsic
@cindex intrinsics, GetGId

@noindent
@example
GetGId()
@end example

@noindent
GetGId: @code{INTEGER(KIND=1)} function.

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Returns the group id for the current process.

@node GetLog Intrinsic
@subsubsection GetLog Intrinsic
@cindex GetLog intrinsic
@cindex intrinsics, GetLog

@noindent
@example
CALL GetLog(@var{Login})
@end example

@noindent
@var{Login}: @code{CHARACTER}; scalar; INTENT(OUT).

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Returns the login name for the process in @var{Login}.

@node GetPId Intrinsic
@subsubsection GetPId Intrinsic
@cindex GetPId intrinsic
@cindex intrinsics, GetPId

@noindent
@example
GetPId()
@end example

@noindent
GetPId: @code{INTEGER(KIND=1)} function.

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Returns the process id for the current process.

@node GetUId Intrinsic
@subsubsection GetUId Intrinsic
@cindex GetUId intrinsic
@cindex intrinsics, GetUId

@noindent
@example
GetUId()
@end example

@noindent
GetUId: @code{INTEGER(KIND=1)} function.

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Returns the user id for the current process.

@node GMTime Intrinsic
@subsubsection GMTime Intrinsic
@cindex GMTime intrinsic
@cindex intrinsics, GMTime

@noindent
@example
CALL GMTime(@var{STime}, @var{TArray})
@end example

@noindent
@var{STime}: @code{INTEGER(KIND=1)}; scalar; INTENT(IN).

@noindent
@var{TArray}: @code{INTEGER(KIND=1)}; DIMENSION(9); INTENT(OUT).

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Given a system time value @var{STime}, fills @var{TArray} with values
extracted from it appropriate to the GMT time zone using
@code{gmtime(3)}.

The array elements are as follows:

@enumerate
@item
Seconds after the minute, range 0--59 or 0--61 to allow for leap
seconds

@item
Minutes after the hour, range 0--59

@item
Hours past midnight, range 0--23

@item
Day of month, range 0--31

@item
Number of months since January, range 0--12

@item
Number of days since Sunday, range 0--6

@item
Years since 1900

@item
Days since January 1

@item
Daylight savings indicator: positive if daylight savings is in effect,
zero if not, and negative if the information isn't available.
@end enumerate

@node HostNm Intrinsic
@subsubsection HostNm Intrinsic
@cindex HostNm intrinsic
@cindex intrinsics, HostNm

@noindent
@example
HostNm(@var{Name})
@end example

@noindent
HostNm: @code{INTEGER(KIND=1)} function.

@noindent
@var{Name}: @code{CHARACTER}; scalar; INTENT(OUT).

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Fills @var{Name} with the system's host name returned by
@code{gethostname(2)}, returning 0 on success or an error code. 
This function is not available on all systems.

@end ifset
@ifset familyF77
@node IAbs Intrinsic
@subsubsection IAbs Intrinsic
@cindex IAbs intrinsic
@cindex intrinsics, IAbs

@noindent
@example
IAbs(@var{A})
@end example

@noindent
IAbs: @code{INTEGER(KIND=1)} function.

@noindent
@var{A}: @code{INTEGER(KIND=1)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@noindent
Description:

Archaic form of @code{ABS()} that is specific
to one type for @var{A}.
@xref{Abs Intrinsic}.

@end ifset
@ifset familyASC
@node IAChar Intrinsic
@subsubsection IAChar Intrinsic
@cindex IAChar intrinsic
@cindex intrinsics, IAChar

@noindent
@example
IAChar(@var{C})
@end example

@noindent
IAChar: @code{INTEGER(KIND=1)} function.

@noindent
@var{C}: @code{CHARACTER}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{f2c}, @code{f90}.

@noindent
Description:

Returns the code for the ASCII character in the
first character position of @var{C}.

@xref{AChar Intrinsic}, for the inverse function.

@xref{IChar Intrinsic}, for the function corresponding
to the system's native character set.

@end ifset
@ifset familyMIL
@node IAnd Intrinsic
@subsubsection IAnd Intrinsic
@cindex IAnd intrinsic
@cindex intrinsics, IAnd

@noindent
@example
IAnd(@var{I}, @var{J})
@end example

@noindent
IAnd: @code{INTEGER} function, the exact type being the result of cross-promoting the
types of all the arguments.

@noindent
@var{I}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
@var{J}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{mil}, @code{f90}, @code{vxt}.

@noindent
Description:

Returns value resulting from boolean AND of
pair of bits in each of @var{I} and @var{J}.

@end ifset
@ifset familyF2U
@node IArgC Intrinsic
@subsubsection IArgC Intrinsic
@cindex IArgC intrinsic
@cindex intrinsics, IArgC

@noindent
@example
IArgC()
@end example

@noindent
IArgC: @code{INTEGER(KIND=1)} function.

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Returns the number of command-line arguments.

This count does not include the specification of the program
name itself.

@end ifset
@ifset familyMIL
@node IBClr Intrinsic
@subsubsection IBClr Intrinsic
@cindex IBClr intrinsic
@cindex intrinsics, IBClr

@noindent
@example
IBClr(@var{I}, @var{Pos})
@end example

@noindent
IBClr: @code{INTEGER} function, the @samp{KIND=} value of the type being that of argument @var{I}.

@noindent
@var{I}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
@var{Pos}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{mil}, @code{f90}, @code{vxt}.

@node IBits Intrinsic
@subsubsection IBits Intrinsic
@cindex IBits intrinsic
@cindex intrinsics, IBits

@noindent
@example
IBits(@var{I}, @var{Pos}, @var{Len})
@end example

@noindent
IBits: @code{INTEGER} function, the @samp{KIND=} value of the type being that of argument @var{I}.

@noindent
@var{I}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
@var{Pos}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
@var{Len}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{mil}, @code{f90}, @code{vxt}.

@node IBSet Intrinsic
@subsubsection IBSet Intrinsic
@cindex IBSet intrinsic
@cindex intrinsics, IBSet

@noindent
@example
IBSet(@var{I}, @var{Pos})
@end example

@noindent
IBSet: @code{INTEGER} function, the @samp{KIND=} value of the type being that of argument @var{I}.

@noindent
@var{I}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
@var{Pos}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{mil}, @code{f90}, @code{vxt}.

@end ifset
@ifset familyF77
@node IChar Intrinsic
@subsubsection IChar Intrinsic
@cindex IChar intrinsic
@cindex intrinsics, IChar

@noindent
@example
IChar(@var{C})
@end example

@noindent
IChar: @code{INTEGER(KIND=1)} function.

@noindent
@var{C}: @code{CHARACTER}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@noindent
Description:

Returns the code for the character in the
first character position of @var{C}.

Because the system's native character set is used,
the correspondence between character and their codes
is not necessarily the same between GNU Fortran
implementations.

@xref{Char Intrinsic}, for the inverse function.

@xref{IAChar Intrinsic}, for the function corresponding
to the ASCII character set.

@end ifset
@ifset familyF2U
@node IDate Intrinsic
@subsubsection IDate Intrinsic
@cindex IDate intrinsic
@cindex intrinsics, IDate

@noindent
@example
CALL IDate(@var{TArray})
@end example

@noindent
@var{TArray}: @code{INTEGER(KIND=1)}; DIMENSION(3); INTENT(OUT).

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Fills @var{TArray} 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.

@end ifset
@ifset familyVXT
@node IDate Intrinsic (Form IDATE (VXT))
@subsubsection IDate Intrinsic (Form IDATE (VXT))
@cindex IDate intrinsic
@cindex intrinsics, IDate

@noindent
@example
CALL IDate(@var{D}, @var{M}, @var{Y})
@end example

@noindent
@var{D}: @code{INTEGER(KIND=1)}; scalar; INTENT(OUT).

@noindent
@var{M}: @code{INTEGER(KIND=1)}; scalar; INTENT(OUT).

@noindent
@var{Y}: @code{INTEGER(KIND=1)}; scalar; INTENT(OUT).

@noindent
Intrinsic groups: @code{vxt}.

@noindent
Description:

Returns the numerical values of the current local time.
The date is returned in @var{D},
the month in @var{M} (in the range 1--12),
and the year in @var{Y} (in the range 0--99).

This intrinsic is not recommended, due to the year 2000 approaching.
@xref{IDate Intrinsic}, for information on obtaining more digits
for the current local date.

@end ifset
@ifset familyF77
@node IDiM Intrinsic
@subsubsection IDiM Intrinsic
@cindex IDiM intrinsic
@cindex intrinsics, IDiM

@noindent
@example
IDiM(@var{X}, @var{Y})
@end example

@noindent
IDiM: @code{INTEGER(KIND=1)} function.

@noindent
@var{X}: @code{INTEGER(KIND=1)}; scalar; INTENT(IN).

@noindent
@var{Y}: @code{INTEGER(KIND=1)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@node IDInt Intrinsic
@subsubsection IDInt Intrinsic
@cindex IDInt intrinsic
@cindex intrinsics, IDInt

@noindent
@example
IDInt(@var{A})
@end example

@noindent
IDInt: @code{INTEGER(KIND=1)} function.

@noindent
@var{A}: @code{REAL(KIND=2)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@noindent
Description:

Archaic form of @code{INT()} that is specific
to one type for @var{A}.
@xref{Int Intrinsic}.

@node IDNInt Intrinsic
@subsubsection IDNInt Intrinsic
@cindex IDNInt intrinsic
@cindex intrinsics, IDNInt

@noindent
@example
IDNInt(@var{A})
@end example

@noindent
IDNInt: @code{INTEGER(KIND=1)} function.

@noindent
@var{A}: @code{REAL(KIND=2)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@noindent
Description:

Archaic form of @code{NINT()} that is specific
to one type for @var{A}.
@xref{NInt Intrinsic}.

@end ifset
@ifset familyMIL
@node IEOr Intrinsic
@subsubsection IEOr Intrinsic
@cindex IEOr intrinsic
@cindex intrinsics, IEOr

@noindent
@example
IEOr(@var{I}, @var{J})
@end example

@noindent
IEOr: @code{INTEGER} function, the exact type being the result of cross-promoting the
types of all the arguments.

@noindent
@var{I}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
@var{J}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{mil}, @code{f90}, @code{vxt}.

@noindent
Description:

Returns value resulting from boolean exclusive-OR of
pair of bits in each of @var{I} and @var{J}.

@end ifset
@ifset familyF2U
@node IErrNo Intrinsic
@subsubsection IErrNo Intrinsic
@cindex IErrNo intrinsic
@cindex intrinsics, IErrNo

@noindent
@example
IErrNo()
@end example

@noindent
IErrNo: @code{INTEGER(KIND=1)} function.

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Returns the last system error number (corresponding to the C
@code{errno}).

@end ifset
@ifset familyF77
@node IFix Intrinsic
@subsubsection IFix Intrinsic
@cindex IFix intrinsic
@cindex intrinsics, IFix

@noindent
@example
IFix(@var{A})
@end example

@noindent
IFix: @code{INTEGER(KIND=1)} function.

@noindent
@var{A}: @code{INTEGER}, @code{REAL}, or @code{COMPLEX}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@noindent
Description:

Returns @var{A} with the fractional portion of its
magnitude truncated and its sign preserved, converted
to type @code{INTEGER(KIND=1)}.

If @var{A} is type @code{COMPLEX}, its real part is
truncated and converted.

@xref{NInt Intrinsic}, for how to convert, rounded to nearest
whole number.

@xref{AInt Intrinsic}, for how to truncate to whole number
without converting.

@end ifset
@ifset familyF2C
@node Imag Intrinsic
@subsubsection Imag Intrinsic
@cindex Imag intrinsic
@cindex intrinsics, Imag

@noindent
@example
Imag(@var{Z})
@end example

@noindent
Imag: @code{REAL} function, the @samp{KIND=} value of the type being that of argument @var{Z}.

@noindent
@var{Z}: @code{COMPLEX}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{f2c}.

@noindent
Description:

The imaginary part of @var{Z} is returned, without conversion.

@emph{Note:} The way to do this in standard Fortran 90
is @samp{AIMAG(@var{Z})}.
However, when, for example, @var{Z} is @code{DOUBLE COMPLEX},
@samp{AIMAG(@var{Z})} means something different for some compilers
that are not true Fortran 90 compilers but offer some
extensions standardized by Fortran 90 (such as the
@code{DOUBLE COMPLEX} type, also known as @code{COMPLEX(KIND=2)}).

The advantage of @code{IMAG()} is that, while not necessarily
more or less portable than @code{AIMAG()}, it is more likely to
cause a compiler that doesn't support it to produce a diagnostic
than generate incorrect code.

@xref{REAL() and AIMAG() of Complex}, for more information.

@end ifset
@ifset familyGNU
@node ImagPart Intrinsic
@subsubsection ImagPart Intrinsic
@cindex ImagPart intrinsic
@cindex intrinsics, ImagPart

@noindent
@example
ImagPart(@var{Z})
@end example

@noindent
ImagPart: @code{REAL} function, the @samp{KIND=} value of the type being that of argument @var{Z}.

@noindent
@var{Z}: @code{COMPLEX}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{gnu}.

@noindent
Description:

The imaginary part of @var{Z} is returned, without conversion.

@emph{Note:} The way to do this in standard Fortran 90
is @samp{AIMAG(@var{Z})}.
However, when, for example, @var{Z} is @code{DOUBLE COMPLEX},
@samp{AIMAG(@var{Z})} means something different for some compilers
that are not true Fortran 90 compilers but offer some
extensions standardized by Fortran 90 (such as the
@code{DOUBLE COMPLEX} type, also known as @code{COMPLEX(KIND=2)}).

The advantage of @code{IMAGPART()} is that, while not necessarily
more or less portable than @code{AIMAG()}, it is more likely to
cause a compiler that doesn't support it to produce a diagnostic
than generate incorrect code.

@xref{REAL() and AIMAG() of Complex}, for more information.

@end ifset
@ifset familyF77
@node Index Intrinsic
@subsubsection Index Intrinsic
@cindex Index intrinsic
@cindex intrinsics, Index

@noindent
@example
Index(@var{String}, @var{Substring})
@end example

@noindent
Index: @code{INTEGER(KIND=1)} function.

@noindent
@var{String}: @code{CHARACTER}; scalar; INTENT(IN).

@noindent
@var{Substring}: @code{CHARACTER}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@node Int Intrinsic
@subsubsection Int Intrinsic
@cindex Int intrinsic
@cindex intrinsics, Int

@noindent
@example
Int(@var{A})
@end example

@noindent
Int: @code{INTEGER(KIND=1)} function.

@noindent
@var{A}: @code{INTEGER}, @code{REAL}, or @code{COMPLEX}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@noindent
Description:

Returns @var{A} with the fractional portion of its
magnitude truncated and its sign preserved, converted
to type @code{INTEGER(KIND=1)}.

If @var{A} is type @code{COMPLEX}, its real part is
truncated and converted.

@xref{NInt Intrinsic}, for how to convert, rounded to nearest
whole number.

@xref{AInt Intrinsic}, for how to truncate to whole number
without converting.

@end ifset
@ifset familyMIL
@node IOr Intrinsic
@subsubsection IOr Intrinsic
@cindex IOr intrinsic
@cindex intrinsics, IOr

@noindent
@example
IOr(@var{I}, @var{J})
@end example

@noindent
IOr: @code{INTEGER} function, the exact type being the result of cross-promoting the
types of all the arguments.

@noindent
@var{I}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
@var{J}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{mil}, @code{f90}, @code{vxt}.

@noindent
Description:

Returns value resulting from boolean OR of
pair of bits in each of @var{I} and @var{J}.

@end ifset
@ifset familyF2U
@node IRand Intrinsic
@subsubsection IRand Intrinsic
@cindex IRand intrinsic
@cindex intrinsics, IRand

@noindent
@example
IRand(@var{Flag})
@end example

@noindent
IRand: @code{INTEGER(KIND=1)} function.

@noindent
@var{Flag}: @code{INTEGER}; OPTIONAL; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Returns a uniform quasi-random number up to a system-dependent limit.
If @var{Flag} is 0, the next number in sequence is returned; if
@var{Flag} is 1, the generator is restarted by calling the UNIX function
@samp{srand(0)}; if @var{Flag} has any other value,
it is used as a new seed with @code{srand()}.

@xref{SRand Intrinsic}.

@emph{Note:} As typically implemented (by the routine of the same
name in the C library), this random number generator is a very poor
one, though the BSD and GNU libraries provide a much better
implementation than the `traditional' one.
On a different system you almost certainly want to use something better.

@node IsaTty Intrinsic
@subsubsection IsaTty Intrinsic
@cindex IsaTty intrinsic
@cindex intrinsics, IsaTty

@noindent
@example
IsaTty(@var{Unit})
@end example

@noindent
IsaTty: @code{LOGICAL(KIND=1)} function.

@noindent
@var{Unit}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Returns @code{.TRUE.} if and only if the Fortran I/O unit
specified by @var{Unit} is connected
to a terminal device.
See @code{isatty(3)}.

@end ifset
@ifset familyMIL
@node IShft Intrinsic
@subsubsection IShft Intrinsic
@cindex IShft intrinsic
@cindex intrinsics, IShft

@noindent
@example
IShft(@var{I}, @var{Shift})
@end example

@noindent
IShft: @code{INTEGER} function, the @samp{KIND=} value of the type being that of argument @var{I}.

@noindent
@var{I}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
@var{Shift}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{mil}, @code{f90}, @code{vxt}.

@node IShftC Intrinsic
@subsubsection IShftC Intrinsic
@cindex IShftC intrinsic
@cindex intrinsics, IShftC

@noindent
@example
IShftC(@var{I}, @var{Shift}, @var{Size})
@end example

@noindent
IShftC: @code{INTEGER} function, the @samp{KIND=} value of the type being that of argument @var{I}.

@noindent
@var{I}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
@var{Shift}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
@var{Size}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{mil}, @code{f90}, @code{vxt}.

@end ifset
@ifset familyF77
@node ISign Intrinsic
@subsubsection ISign Intrinsic
@cindex ISign intrinsic
@cindex intrinsics, ISign

@noindent
@example
ISign(@var{A}, @var{B})
@end example

@noindent
ISign: @code{INTEGER(KIND=1)} function.

@noindent
@var{A}: @code{INTEGER(KIND=1)}; scalar; INTENT(IN).

@noindent
@var{B}: @code{INTEGER(KIND=1)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@end ifset
@ifset familyF2U
@node ITime Intrinsic
@subsubsection ITime Intrinsic
@cindex ITime intrinsic
@cindex intrinsics, ITime

@noindent
@example
CALL ITime(@var{TArray})
@end example

@noindent
@var{TArray}: @code{INTEGER(KIND=1)}; DIMENSION(3); INTENT(OUT).

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Returns the current local time hour, minutes, and seconds in elements
1, 2, and 3 of @var{TArray}, respectively.

@node Kill Intrinsic
@subsubsection Kill Intrinsic
@cindex Kill intrinsic
@cindex intrinsics, Kill

@noindent
@example
CALL Kill(@var{Pid}, @var{Signal}, @var{Status})
@end example

@noindent
@var{Pid}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
@var{Signal}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
@var{Status}: @code{INTEGER}; OPTIONAL; scalar; INTENT(OUT).

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Sends the signal specified by @var{Signal} to the process @var{Pid}.  Returns zero
on success, otherwise an error number.
See @code{kill(2)}.

@end ifset
@ifset familyF77
@node Len Intrinsic
@subsubsection Len Intrinsic
@cindex Len intrinsic
@cindex intrinsics, Len

@noindent
@example
Len(@var{String})
@end example

@noindent
Len: @code{INTEGER(KIND=1)} function.

@noindent
@var{String}: @code{CHARACTER}; scalar.

@noindent
Intrinsic groups: (standard FORTRAN 77).

@end ifset
@ifset familyF90
@node Len_Trim Intrinsic
@subsubsection Len_Trim Intrinsic
@cindex Len_Trim intrinsic
@cindex intrinsics, Len_Trim

@noindent
@example
Len_Trim(@var{String})
@end example

@noindent
Len_Trim: @code{INTEGER(KIND=1)} function.

@noindent
@var{String}: @code{CHARACTER}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{f90}.

@noindent
Description:

Returns the index of the last non-blank character in @var{String}.
@code{LNBLNK} and @code{LEN_TRIM} are equivalent.

@end ifset
@ifset familyF77
@node LGe Intrinsic
@subsubsection LGe Intrinsic
@cindex LGe intrinsic
@cindex intrinsics, LGe

@noindent
@example
LGe(@var{String_A}, @var{String_B})
@end example

@noindent
LGe: @code{LOGICAL(KIND=1)} function.

@noindent
@var{String_A}: @code{CHARACTER}; scalar; INTENT(IN).

@noindent
@var{String_B}: @code{CHARACTER}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@node LGt Intrinsic
@subsubsection LGt Intrinsic
@cindex LGt intrinsic
@cindex intrinsics, LGt

@noindent
@example
LGt(@var{String_A}, @var{String_B})
@end example

@noindent
LGt: @code{LOGICAL(KIND=1)} function.

@noindent
@var{String_A}: @code{CHARACTER}; scalar; INTENT(IN).

@noindent
@var{String_B}: @code{CHARACTER}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@end ifset
@ifset familyF2U
@node Link Intrinsic
@subsubsection Link Intrinsic
@cindex Link intrinsic
@cindex intrinsics, Link

@noindent
@example
CALL Link(@var{Path1}, @var{Path2}, @var{Status})
@end example

@noindent
@var{Path1}: @code{CHARACTER}; scalar; INTENT(IN).

@noindent
@var{Path2}: @code{CHARACTER}; scalar; INTENT(IN).

@noindent
@var{Status}: @code{INTEGER}; OPTIONAL; scalar; INTENT(OUT).

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Makes a (hard) link from @var{Path1} to @var{Path2}.
If the
@var{Status} argument is supplied, it contains 0 on success or an error
code otherwise.
See @code{link(2)}.

@end ifset
@ifset familyF77
@node LLe Intrinsic
@subsubsection LLe Intrinsic
@cindex LLe intrinsic
@cindex intrinsics, LLe

@noindent
@example
LLe(@var{String_A}, @var{String_B})
@end example

@noindent
LLe: @code{LOGICAL(KIND=1)} function.

@noindent
@var{String_A}: @code{CHARACTER}; scalar; INTENT(IN).

@noindent
@var{String_B}: @code{CHARACTER}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@node LLt Intrinsic
@subsubsection LLt Intrinsic
@cindex LLt intrinsic
@cindex intrinsics, LLt

@noindent
@example
LLt(@var{String_A}, @var{String_B})
@end example

@noindent
LLt: @code{LOGICAL(KIND=1)} function.

@noindent
@var{String_A}: @code{CHARACTER}; scalar; INTENT(IN).

@noindent
@var{String_B}: @code{CHARACTER}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@end ifset
@ifset familyF2U
@node LnBlnk Intrinsic
@subsubsection LnBlnk Intrinsic
@cindex LnBlnk intrinsic
@cindex intrinsics, LnBlnk

@noindent
@example
LnBlnk(@var{String})
@end example

@noindent
LnBlnk: @code{INTEGER(KIND=1)} function.

@noindent
@var{String}: @code{CHARACTER}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Returns the index of the last non-blank character in @var{String}.
@code{LNBLNK} and @code{LEN_TRIM} are equivalent.

@node Loc Intrinsic
@subsubsection Loc Intrinsic
@cindex Loc intrinsic
@cindex intrinsics, Loc

@noindent
@example
Loc(@var{Entity})
@end example

@noindent
Loc: @code{INTEGER(KIND=0)} function.

@noindent
@var{Entity}: Any type; cannot be a constant or expression.

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

The @code{LOC()} intrinsic works the
same way as the @code{%LOC()} construct.
@xref{%LOC(),,The @code{%LOC()} Construct}, for
more information.

@end ifset
@ifset familyF77
@node Log Intrinsic
@subsubsection Log Intrinsic
@cindex Log intrinsic
@cindex intrinsics, Log

@noindent
@example
Log(@var{X})
@end example

@noindent
Log: @code{REAL} or @code{COMPLEX} function, the exact type being that of argument @var{X}.

@noindent
@var{X}: @code{REAL} or @code{COMPLEX}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@noindent
Description:

Returns the natural logarithm of @var{X}, which must
be greater than zero or, if type @code{COMPLEX}, must not
be zero.

@xref{Exp Intrinsic}, for the inverse function.

@xref{Log10 Intrinsic}, for the base-10 logarithm function.

@node Log10 Intrinsic
@subsubsection Log10 Intrinsic
@cindex Log10 intrinsic
@cindex intrinsics, Log10

@noindent
@example
Log10(@var{X})
@end example

@noindent
Log10: @code{REAL} function, the @samp{KIND=} value of the type being that of argument @var{X}.

@noindent
@var{X}: @code{REAL}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@noindent
Description:

Returns the natural logarithm of @var{X}, which must
be greater than zero or, if type @code{COMPLEX}, must not
be zero.

The inverse function is @samp{10. ** LOG10(@var{X})}.

@xref{Log Intrinsic}, for the natural logarithm function.

@end ifset
@ifset familyF2U
@node Long Intrinsic
@subsubsection Long Intrinsic
@cindex Long intrinsic
@cindex intrinsics, Long

@noindent
@example
Long(@var{A})
@end example

@noindent
Long: @code{INTEGER(KIND=1)} function.

@noindent
@var{A}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{unix}.

@end ifset
@ifset familyF2C
@node LShift Intrinsic
@subsubsection LShift Intrinsic
@cindex LShift intrinsic
@cindex intrinsics, LShift

@noindent
@example
LShift(@var{I}, @var{Shift})
@end example

@noindent
LShift: @code{INTEGER} function, the @samp{KIND=} value of the type being that of argument @var{I}.

@noindent
@var{I}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
@var{Shift}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{f2c}.

@end ifset
@ifset familyF2U
@node LStat Intrinsic
@subsubsection LStat Intrinsic
@cindex LStat intrinsic
@cindex intrinsics, LStat

@noindent
@example
LStat(@var{File}, @var{SArray})
@end example

@noindent
LStat: @code{INTEGER(KIND=1)} function.

@noindent
@var{File}: @code{CHARACTER}; scalar; INTENT(IN).

@noindent
@var{SArray}: @code{INTEGER(KIND=1)}; DIMENSION(13); INTENT(OUT).

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Obtains data about the given @var{File} and places them in the array
@var{SArray}.
If @var{File} is a symbolic link it returns data on the
link itself, so the routine is available only on systems that support
symbolic links.
The values in this array are extracted from the
@code{stat} structure as returned by @code{fstat(2)} q.v., as follows:

@enumerate
@item
File mode

@item
Inode number

@item
ID of device containing directory entry for file

@item
Device id (if relevant)

@item
Number of links

@item
Owner's uid

@item
Owner's gid

@item
File size (bytes)

@item
Last access time

@item
Last modification time

@item
Last file status change time

@item
Preferred i/o block size

@item
Number of blocks allocated
@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, otherwise an error number.

@node LTime Intrinsic
@subsubsection LTime Intrinsic
@cindex LTime intrinsic
@cindex intrinsics, LTime

@noindent
@example
CALL LTime(@var{STime}, @var{TArray})
@end example

@noindent
@var{STime}: @code{INTEGER(KIND=1)}; scalar; INTENT(IN).

@noindent
@var{TArray}: @code{INTEGER(KIND=1)}; DIMENSION(9); INTENT(OUT).

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Given a system time value @var{STime}, fills @var{TArray} with values
extracted from it appropriate to the GMT time zone using
@code{localtime(3)}.

The array elements are as follows:

@enumerate
@item
Seconds after the minute, range 0--59 or 0--61 to allow for leap
seconds

@item
Minutes after the hour, range 0--59

@item
Hours past midnight, range 0--23

@item
Day of month, range 0--31

@item
Number of months since January, range 0--12

@item
Number of days since Sunday, range 0--6

@item
Years since 1900

@item
Days since January 1

@item
Daylight savings indicator: positive if daylight savings is in effect,
zero if not, and negative if the information isn't available.
@end enumerate

@end ifset
@ifset familyF77
@node Max Intrinsic
@subsubsection Max Intrinsic
@cindex Max intrinsic
@cindex intrinsics, Max

@noindent
@example
Max(@var{A}-1, @var{A}-2, @dots{}, @var{A}-n)
@end example

@noindent
Max: @code{INTEGER} or @code{REAL} function, the exact type being the result of cross-promoting the
types of all the arguments.

@noindent
@var{A}: @code{INTEGER} or @code{REAL}; at least two such arguments must be provided; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@noindent
Description:

Returns the argument with the largest value.

@xref{Min Intrinsic}, for the opposite function.

@node Max0 Intrinsic
@subsubsection Max0 Intrinsic
@cindex Max0 intrinsic
@cindex intrinsics, Max0

@noindent
@example
Max0(@var{A}-1, @var{A}-2, @dots{}, @var{A}-n)
@end example

@noindent
Max0: @code{INTEGER(KIND=1)} function.

@noindent
@var{A}: @code{INTEGER(KIND=1)}; at least two such arguments must be provided; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@noindent
Description:

Archaic form of @code{MAX()} that is specific
to one type for @var{A}.
@xref{Max Intrinsic}.

@node Max1 Intrinsic
@subsubsection Max1 Intrinsic
@cindex Max1 intrinsic
@cindex intrinsics, Max1

@noindent
@example
Max1(@var{A}-1, @var{A}-2, @dots{}, @var{A}-n)
@end example

@noindent
Max1: @code{INTEGER(KIND=1)} function.

@noindent
@var{A}: @code{REAL(KIND=1)}; at least two such arguments must be provided; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@noindent
Description:

Archaic form of @code{MAX()} that is specific
to one type for @var{A} and a different return type.
@xref{Max Intrinsic}.

@end ifset
@ifset familyF2U
@node MClock Intrinsic
@subsubsection MClock Intrinsic
@cindex MClock intrinsic
@cindex intrinsics, MClock

@noindent
@example
MClock()
@end example

@noindent
MClock: @code{INTEGER(KIND=2)} function.

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Returns the number of clock ticks since the start of the process.
Only defined on systems with @code{clock(3)} (q.v.).

@end ifset
@ifset familyF77
@node Min Intrinsic
@subsubsection Min Intrinsic
@cindex Min intrinsic
@cindex intrinsics, Min

@noindent
@example
Min(@var{A}-1, @var{A}-2, @dots{}, @var{A}-n)
@end example

@noindent
Min: @code{INTEGER} or @code{REAL} function, the exact type being the result of cross-promoting the
types of all the arguments.

@noindent
@var{A}: @code{INTEGER} or @code{REAL}; at least two such arguments must be provided; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@noindent
Description:

Returns the argument with the smallest value.

@xref{Max Intrinsic}, for the opposite function.

@node Min0 Intrinsic
@subsubsection Min0 Intrinsic
@cindex Min0 intrinsic
@cindex intrinsics, Min0

@noindent
@example
Min0(@var{A}-1, @var{A}-2, @dots{}, @var{A}-n)
@end example

@noindent
Min0: @code{INTEGER(KIND=1)} function.

@noindent
@var{A}: @code{INTEGER(KIND=1)}; at least two such arguments must be provided; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@noindent
Description:

Archaic form of @code{MIN()} that is specific
to one type for @var{A}.
@xref{Min Intrinsic}.

@node Min1 Intrinsic
@subsubsection Min1 Intrinsic
@cindex Min1 intrinsic
@cindex intrinsics, Min1

@noindent
@example
Min1(@var{A}-1, @var{A}-2, @dots{}, @var{A}-n)
@end example

@noindent
Min1: @code{INTEGER(KIND=1)} function.

@noindent
@var{A}: @code{REAL(KIND=1)}; at least two such arguments must be provided; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@noindent
Description:

Archaic form of @code{MIN()} that is specific
to one type for @var{A} and a different return type.
@xref{Min Intrinsic}.

@node Mod Intrinsic
@subsubsection Mod Intrinsic
@cindex Mod intrinsic
@cindex intrinsics, Mod

@noindent
@example
Mod(@var{A}, @var{P})
@end example

@noindent
Mod: @code{INTEGER} or @code{REAL} function, the exact type being the result of cross-promoting the
types of all the arguments.

@noindent
@var{A}: @code{INTEGER} or @code{REAL}; scalar; INTENT(IN).

@noindent
@var{P}: @code{INTEGER} or @code{REAL}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@noindent
Description:

Returns remainder calculated as:

@smallexample
@var{A} - (INT(@var{A} / @var{P}) * @var{P})
@end smallexample

@var{P} must not be zero.

@end ifset
@ifset familyMIL
@node MvBits Intrinsic
@subsubsection MvBits Intrinsic
@cindex MvBits intrinsic
@cindex intrinsics, MvBits

@noindent
@example
CALL MvBits(@var{From}, @var{FromPos}, @var{Len}, @var{TO}, @var{ToPos})
@end example

@noindent
@var{From}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
@var{FromPos}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
@var{Len}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
@var{TO}: @code{INTEGER} with same @samp{KIND=} value as for @var{From}; scalar; INTENT(INOUT).

@noindent
@var{ToPos}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{mil}, @code{f90}, @code{vxt}.

@end ifset
@ifset familyF77
@node NInt Intrinsic
@subsubsection NInt Intrinsic
@cindex NInt intrinsic
@cindex intrinsics, NInt

@noindent
@example
NInt(@var{A})
@end example

@noindent
NInt: @code{INTEGER(KIND=1)} function.

@noindent
@var{A}: @code{REAL}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@noindent
Description:

Returns @var{A} with the fractional portion of its
magnitude eliminated by rounding to the nearest whole
number and with its sign preserved, converted
to type @code{INTEGER(KIND=1)}.

If @var{A} is type @code{COMPLEX}, its real part is
rounded and converted.

A fractional portion exactly equal to
@samp{.5} is rounded to the whole number that
is larger in magnitude.
(Also called ``Fortran round''.)

@xref{Int Intrinsic}, for how to convert, truncate to
whole number.

@xref{ANInt Intrinsic}, for how to round to nearest whole number
without converting.

@end ifset
@ifset familyMIL
@node Not Intrinsic
@subsubsection Not Intrinsic
@cindex Not intrinsic
@cindex intrinsics, Not

@noindent
@example
Not(@var{I})
@end example

@noindent
Not: @code{INTEGER} function, the @samp{KIND=} value of the type being that of argument @var{I}.

@noindent
@var{I}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{mil}, @code{f90}, @code{vxt}.

@noindent
Description:

Returns value resulting from boolean NOT of each bit
in @var{I}.

@end ifset
@ifset familyF2C
@node Or Intrinsic
@subsubsection Or Intrinsic
@cindex Or intrinsic
@cindex intrinsics, Or

@noindent
@example
Or(@var{I}, @var{J})
@end example

@noindent
Or: @code{INTEGER} or @code{LOGICAL} function, the exact type being the result of cross-promoting the
types of all the arguments.

@noindent
@var{I}: @code{INTEGER} or @code{LOGICAL}; scalar; INTENT(IN).

@noindent
@var{J}: @code{INTEGER} or @code{LOGICAL}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{f2c}.

@noindent
Description:

Returns value resulting from boolean OR of
pair of bits in each of @var{I} and @var{J}.

@end ifset
@ifset familyF2U
@node PError Intrinsic
@subsubsection PError Intrinsic
@cindex PError intrinsic
@cindex intrinsics, PError

@noindent
@example
CALL PError(@var{String})
@end example

@noindent
@var{String}: @code{CHARACTER}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Prints (on the C @code{stderr} stream) a newline-terminated error
message corresponding to the last system error.
This is prefixed by @var{String}, a colon and a space.
See @code{perror(3)}.

@node Rand Intrinsic
@subsubsection Rand Intrinsic
@cindex Rand intrinsic
@cindex intrinsics, Rand

@noindent
@example
Rand(@var{Flag})
@end example

@noindent
Rand: @code{REAL(KIND=1)} function.

@noindent
@var{Flag}: @code{INTEGER}; OPTIONAL; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Returns a uniform quasi-random number between 0 and 1.
If @var{Flag} is 0, the next number in sequence is returned; if
@var{Flag} is 1, the generator is restarted by calling @samp{srand(0)};
if @var{Flag} has any other value, it is used as a new seed with
@code{srand}.

@xref{SRand Intrinsic}.

@emph{Note:} As typically implemented (by the routine of the same
name in the C library), this random number generator is a very poor
one, though the BSD and GNU libraries provide a much better
implementation than the `traditional' one.
On a different system you
almost certainly want to use something better.

@end ifset
@ifset familyF77
@node Real Intrinsic
@subsubsection Real Intrinsic
@cindex Real intrinsic
@cindex intrinsics, Real

@noindent
@example
Real(@var{A})
@end example

@noindent
Real: @code{REAL} function.
The exact type is @samp{REAL(KIND=1)} when argument @var{A} is
any type other than @code{COMPLEX}, or when it is @code{COMPLEX(KIND=1)}.
When @var{A} is any @code{COMPLEX} type other than @code{COMPLEX(KIND=1)},
this intrinsic is valid only when used as the argument to
@code{REAL()}, as explained below.

@noindent
@var{A}: @code{INTEGER}, @code{REAL}, or @code{COMPLEX}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@noindent
Description:

Converts @var{A} to @code{REAL(KIND=1)}.

Use of @code{REAL()} with a @code{COMPLEX} argument
(other than @code{COMPLEX(KIND=1)}) is restricted to the following case:

@example
REAL(REAL(A))
@end example

@noindent
This expression converts the real part of A to
@code{REAL(KIND=1)}.

@xref{REAL() and AIMAG() of Complex}, for more information.

@end ifset
@ifset familyGNU
@node RealPart Intrinsic
@subsubsection RealPart Intrinsic
@cindex RealPart intrinsic
@cindex intrinsics, RealPart

@noindent
@example
RealPart(@var{Z})
@end example

@noindent
RealPart: @code{REAL} function, the @samp{KIND=} value of the type being that of argument @var{Z}.

@noindent
@var{Z}: @code{COMPLEX}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{gnu}.

@noindent
Description:

The real part of @var{Z} is returned, without conversion.

@emph{Note:} The way to do this in standard Fortran 90
is @samp{REAL(@var{Z})}.
However, when, for example, @var{Z} is @code{COMPLEX(KIND=2)},
@samp{REAL(@var{Z})} means something different for some compilers
that are not true Fortran 90 compilers but offer some
extensions standardized by Fortran 90 (such as the
@code{DOUBLE COMPLEX} type, also known as @code{COMPLEX(KIND=2)}).

The advantage of @code{REALPART()} is that, while not necessarily
more or less portable than @code{REAL()}, it is more likely to
cause a compiler that doesn't support it to produce a diagnostic
than generate incorrect code.

@xref{REAL() and AIMAG() of Complex}, for more information.

@end ifset
@ifset familyF2U
@node Rename Intrinsic
@subsubsection Rename Intrinsic
@cindex Rename intrinsic
@cindex intrinsics, Rename

@noindent
@example
CALL Rename(@var{Path1}, @var{Path2}, @var{Status})
@end example

@noindent
@var{Path1}: @code{CHARACTER}; scalar; INTENT(IN).

@noindent
@var{Path2}: @code{CHARACTER}; scalar; INTENT(IN).

@noindent
@var{Status}: @code{INTEGER}; OPTIONAL; scalar; INTENT(OUT).

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Renames the file @var{Path1} to @var{Path2}.
See @code{rename(2)}.
If the @var{Status} argument is supplied, it contains 0 on success or an
error code otherwise upon return.

@end ifset
@ifset familyF2C
@node RShift Intrinsic
@subsubsection RShift Intrinsic
@cindex RShift intrinsic
@cindex intrinsics, RShift

@noindent
@example
RShift(@var{I}, @var{Shift})
@end example

@noindent
RShift: @code{INTEGER} function, the @samp{KIND=} value of the type being that of argument @var{I}.

@noindent
@var{I}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
@var{Shift}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{f2c}.

@end ifset
@ifset familyVXT
@node Secnds Intrinsic
@subsubsection Secnds Intrinsic
@cindex Secnds intrinsic
@cindex intrinsics, Secnds

@noindent
@example
Secnds(@var{T})
@end example

@noindent
Secnds: @code{REAL(KIND=1)} function.

@noindent
@var{T}: @code{REAL(KIND=1)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{vxt}.

@noindent
Description:

Returns the local time in seconds since midnight minus the value
@var{T}.

@end ifset
@ifset familyF2U
@node Second Intrinsic
@subsubsection Second Intrinsic
@cindex Second intrinsic
@cindex intrinsics, Second

@noindent
@example
Second()
@end example

@noindent
Second: @code{REAL(KIND=1)} function.

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Returns the process' runtime in seconds---the same value as the
UNIX function @code{etime} returns.

This routine is known from Cray Fortran.

@node Second Intrinsic (Form SECOND (subroutine))
@subsubsection Second Intrinsic (Form SECOND (subroutine))
@cindex Second intrinsic
@cindex intrinsics, Second

@noindent
@example
CALL Second(@var{Seconds})
@end example

@noindent
@var{Seconds}: @code{REAL(KIND=1)}; scalar; INTENT(OUT).

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Returns the process' runtime in seconds in @var{Seconds}---the same value
as the UNIX function @code{etime} returns.

This routine is known from Cray Fortran.

@node Short Intrinsic
@subsubsection Short Intrinsic
@cindex Short intrinsic
@cindex intrinsics, Short

@noindent
@example
Short(@var{A})
@end example

@noindent
Short: @code{INTEGER(KIND=6)} function.

@noindent
@var{A}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{unix}.

@end ifset
@ifset familyF77
@node Sign Intrinsic
@subsubsection Sign Intrinsic
@cindex Sign intrinsic
@cindex intrinsics, Sign

@noindent
@example
Sign(@var{A}, @var{B})
@end example

@noindent
Sign: @code{INTEGER} or @code{REAL} function, the exact type being the result of cross-promoting the
types of all the arguments.

@noindent
@var{A}: @code{INTEGER} or @code{REAL}; scalar; INTENT(IN).

@noindent
@var{B}: @code{INTEGER} or @code{REAL}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@end ifset
@ifset familyF2U
@node Signal Intrinsic
@subsubsection Signal Intrinsic
@cindex Signal intrinsic
@cindex intrinsics, Signal

@noindent
@example
CALL Signal(@var{Number}, @var{Handler})
@end example

@noindent
@var{Number}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
@var{Handler}: Signal handler (@code{INTEGER FUNCTION} or @code{SUBROUTINE})
or dummy/global @code{INTEGER(KIND=1)} scalar.

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

If @var{Handler} is a an @code{EXTERNAL} routine, arranges for it to be
invoked with a single integer argument (of system-dependent length)
when signal @var{Number} occurs.
If @var{Number} is an integer it can be
used to turn off handling of signal @var{Handler} or revert to its default
action.
See @code{signal(2)}.

Note that @var{Handler} will be called with C conventions, so its value in
Fortran terms is obtained by applying @code{%loc} (or @var{loc}) to it.

@end ifset
@ifset familyF77
@node Sin Intrinsic
@subsubsection Sin Intrinsic
@cindex Sin intrinsic
@cindex intrinsics, Sin

@noindent
@example
Sin(@var{X})
@end example

@noindent
Sin: @code{REAL} or @code{COMPLEX} function, the exact type being that of argument @var{X}.

@noindent
@var{X}: @code{REAL} or @code{COMPLEX}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@node SinH Intrinsic
@subsubsection SinH Intrinsic
@cindex SinH intrinsic
@cindex intrinsics, SinH

@noindent
@example
SinH(@var{X})
@end example

@noindent
SinH: @code{REAL} function, the @samp{KIND=} value of the type being that of argument @var{X}.

@noindent
@var{X}: @code{REAL}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@end ifset
@ifset familyF2U
@node Sleep Intrinsic
@subsubsection Sleep Intrinsic
@cindex Sleep intrinsic
@cindex intrinsics, Sleep

@noindent
@example
CALL Sleep(@var{Seconds})
@end example

@noindent
@var{Seconds}: @code{INTEGER(KIND=1)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Causes the process to pause for @var{Seconds} seconds.
See @code{sleep(2)}.

@end ifset
@ifset familyF77
@node Sngl Intrinsic
@subsubsection Sngl Intrinsic
@cindex Sngl intrinsic
@cindex intrinsics, Sngl

@noindent
@example
Sngl(@var{A})
@end example

@noindent
Sngl: @code{REAL(KIND=1)} function.

@noindent
@var{A}: @code{REAL(KIND=2)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@node SqRt Intrinsic
@subsubsection SqRt Intrinsic
@cindex SqRt intrinsic
@cindex intrinsics, SqRt

@noindent
@example
SqRt(@var{X})
@end example

@noindent
SqRt: @code{REAL} or @code{COMPLEX} function, the exact type being that of argument @var{X}.

@noindent
@var{X}: @code{REAL} or @code{COMPLEX}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@end ifset
@ifset familyF2U
@node SRand Intrinsic
@subsubsection SRand Intrinsic
@cindex SRand intrinsic
@cindex intrinsics, SRand

@noindent
@example
CALL SRand(@var{Seed})
@end example

@noindent
@var{Seed}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Reinitialises the generator with the seed in @var{Seed}.
@xref{IRand Intrinsic}.  @xref{Rand Intrinsic}.

@node Stat Intrinsic
@subsubsection Stat Intrinsic
@cindex Stat intrinsic
@cindex intrinsics, Stat

@noindent
@example
Stat(@var{File}, @var{SArray})
@end example

@noindent
Stat: @code{INTEGER(KIND=1)} function.

@noindent
@var{File}: @code{CHARACTER}; scalar; INTENT(IN).

@noindent
@var{SArray}: @code{INTEGER(KIND=1)}; DIMENSION(13); INTENT(OUT).

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Obtains data about the given @var{File} and places them in the array
@var{SArray}.
The values in this array are extracted from the
@code{stat} structure as returned by @code{fstat(2)} q.v., as follows:

@enumerate
@item
File mode

@item
Inode number

@item
ID of device containing directory entry for file

@item
Device id (if relevant)

@item
Number of links

@item
Owner's uid

@item
Owner's gid

@item
File size (bytes)

@item
Last access time

@item
Last modification time

@item
Last file status change time

@item
Preferred i/o block size

@item
Number of blocks allocated
@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, otherwise an error number.

@node SymLnk Intrinsic
@subsubsection SymLnk Intrinsic
@cindex SymLnk intrinsic
@cindex intrinsics, SymLnk

@noindent
@example
CALL SymLnk(@var{Path1}, @var{Path2}, @var{Status})
@end example

@noindent
@var{Path1}: @code{CHARACTER}; scalar; INTENT(IN).

@noindent
@var{Path2}: @code{CHARACTER}; scalar; INTENT(IN).

@noindent
@var{Status}: @code{INTEGER}; OPTIONAL; scalar; INTENT(OUT).

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Makes a symbolic link from @var{Path1} to @var{Path2}.
If the
@var{Status} argument is supplied, it contains 0 on success or an error
code otherwise.
Available only on systems that support symbolic
links (see @code{symlink(2)}).

@node System Intrinsic
@subsubsection System Intrinsic
@cindex System intrinsic
@cindex intrinsics, System

@noindent
@example
CALL System(@var{Command}, @var{Status})
@end example

@noindent
@var{Command}: @code{CHARACTER}; scalar; INTENT(IN).

@noindent
@var{Status}: @code{INTEGER(KIND=1)}; OPTIONAL; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Passes the command @var{Command} to a shell (see @code{system(3)}).
If argument @var{Status} is present, it contains the value returned by
@code{system(3)}, presumably 0 if the shell command succeeded.
Note that which shell is used to invoke the command is system-dependent
and environment-dependent.

@end ifset
@ifset familyF90
@node System_Clock Intrinsic
@subsubsection System_Clock Intrinsic
@cindex System_Clock intrinsic
@cindex intrinsics, System_Clock

@noindent
@example
CALL System_Clock(@var{Count}, @var{Rate}, @var{Max})
@end example

@noindent
@var{Count}: @code{INTEGER(KIND=1)}; scalar; INTENT(OUT).

@noindent
@var{Rate}: @code{INTEGER(KIND=1)}; scalar; INTENT(OUT).

@noindent
@var{Max}: @code{INTEGER(KIND=1)}; scalar; INTENT(OUT).

@noindent
Intrinsic groups: @code{f90}.

@noindent
Description:

Returns in @var{Count} the current value of the system clock; this is
the value returned by the UNIX function @code{times(2)}
in this implementation, but
isn't in general.
@var{Rate} is the number of clock ticks per second and
@var{Max} 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.

@end ifset
@ifset familyF77
@node Tan Intrinsic
@subsubsection Tan Intrinsic
@cindex Tan intrinsic
@cindex intrinsics, Tan

@noindent
@example
Tan(@var{X})
@end example

@noindent
Tan: @code{REAL} function, the @samp{KIND=} value of the type being that of argument @var{X}.

@noindent
@var{X}: @code{REAL}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@node TanH Intrinsic
@subsubsection TanH Intrinsic
@cindex TanH intrinsic
@cindex intrinsics, TanH

@noindent
@example
TanH(@var{X})
@end example

@noindent
TanH: @code{REAL} function, the @samp{KIND=} value of the type being that of argument @var{X}.

@noindent
@var{X}: @code{REAL}; scalar; INTENT(IN).

@noindent
Intrinsic groups: (standard FORTRAN 77).

@end ifset
@ifset familyF2U
@node Time Intrinsic
@subsubsection Time Intrinsic
@cindex Time intrinsic
@cindex intrinsics, Time

@noindent
@example
Time()
@end example

@noindent
Time: @code{INTEGER(KIND=2)} function.

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Returns the current time encoded as an integer in the manner of
the UNIX function @code{time(3)}.
This value is suitable for passing to @code{CTIME},
@code{GMTIME}, and @code{LTIME}.

@end ifset
@ifset familyVXT
@node Time Intrinsic (Form TIME (VXT))
@subsubsection Time Intrinsic (Form TIME (VXT))
@cindex Time intrinsic
@cindex intrinsics, Time

@noindent
@example
CALL Time(@var{Time})
@end example

@noindent
@var{Time}: @code{CHARACTER*8}; scalar; INTENT(OUT).

@noindent
Intrinsic groups: @code{vxt}.

@end ifset
@ifset familyF2U
@node TtyNam Intrinsic
@subsubsection TtyNam Intrinsic
@cindex TtyNam intrinsic
@cindex intrinsics, TtyNam

@noindent
@example
TtyNam(@var{Unit})
@end example

@noindent
TtyNam: @code{CHARACTER*(*)} function.

@noindent
@var{Unit}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Returns the name of the terminal device open on logical unit
@var{Unit} or a blank string if @var{Unit} is not connected to a
terminal.

@node UMask Intrinsic
@subsubsection UMask Intrinsic
@cindex UMask intrinsic
@cindex intrinsics, UMask

@noindent
@example
CALL UMask(@var{Mask}, @var{Old})
@end example

@noindent
@var{Mask}: @code{INTEGER}; scalar; INTENT(IN).

@noindent
@var{Old}: @code{INTEGER}; OPTIONAL; scalar; INTENT(OUT).

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Sets the file creation mask to @var{Old} and returns the old value in
argument @var{Old} if it is supplied.
See @code{umask(2)}.

@node Unlink Intrinsic
@subsubsection Unlink Intrinsic
@cindex Unlink intrinsic
@cindex intrinsics, Unlink

@noindent
@example
CALL Unlink(@var{File}, @var{Status})
@end example

@noindent
@var{File}: @code{CHARACTER}; scalar; INTENT(IN).

@noindent
@var{Status}: @code{INTEGER(KIND=1)}; OPTIONAL; scalar; INTENT(OUT).

@noindent
Intrinsic groups: @code{unix}.

@noindent
Description:

Unlink the file @var{File}.
If the @var{Status} argument is supplied, it
contains 0 on success or an error code otherwise.
See @code{unlink(2)}.

@end ifset
@ifset familyF2C
@node XOr Intrinsic
@subsubsection XOr Intrinsic
@cindex XOr intrinsic
@cindex intrinsics, XOr

@noindent
@example
XOr(@var{I}, @var{J})
@end example

@noindent
XOr: @code{INTEGER} or @code{LOGICAL} function, the exact type being the result of cross-promoting the
types of all the arguments.

@noindent
@var{I}: @code{INTEGER} or @code{LOGICAL}; scalar; INTENT(IN).

@noindent
@var{J}: @code{INTEGER} or @code{LOGICAL}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{f2c}.

@noindent
Description:

Returns value resulting from boolean exclusive-OR of
pair of bits in each of @var{I} and @var{J}.

@node ZAbs Intrinsic
@subsubsection ZAbs Intrinsic
@cindex ZAbs intrinsic
@cindex intrinsics, ZAbs

@noindent
@example
ZAbs(@var{A})
@end example

@noindent
ZAbs: @code{REAL(KIND=2)} function.

@noindent
@var{A}: @code{COMPLEX(KIND=2)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{f2c}.

@noindent
Description:

Archaic form of @code{ABS()} that is specific
to one type for @var{A}.
@xref{Abs Intrinsic}.

@node ZCos Intrinsic
@subsubsection ZCos Intrinsic
@cindex ZCos intrinsic
@cindex intrinsics, ZCos

@noindent
@example
ZCos(@var{X})
@end example

@noindent
ZCos: @code{COMPLEX(KIND=2)} function.

@noindent
@var{X}: @code{COMPLEX(KIND=2)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{f2c}.

@node ZExp Intrinsic
@subsubsection ZExp Intrinsic
@cindex ZExp intrinsic
@cindex intrinsics, ZExp

@noindent
@example
ZExp(@var{X})
@end example

@noindent
ZExp: @code{COMPLEX(KIND=2)} function.

@noindent
@var{X}: @code{COMPLEX(KIND=2)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{f2c}.

@node ZLog Intrinsic
@subsubsection ZLog Intrinsic
@cindex ZLog intrinsic
@cindex intrinsics, ZLog

@noindent
@example
ZLog(@var{X})
@end example

@noindent
ZLog: @code{COMPLEX(KIND=2)} function.

@noindent
@var{X}: @code{COMPLEX(KIND=2)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{f2c}.

@noindent
Description:

Archaic form of @code{LOG()} that is specific
to one type for @var{X}.
@xref{Log Intrinsic}.

@node ZSin Intrinsic
@subsubsection ZSin Intrinsic
@cindex ZSin intrinsic
@cindex intrinsics, ZSin

@noindent
@example
ZSin(@var{X})
@end example

@noindent
ZSin: @code{COMPLEX(KIND=2)} function.

@noindent
@var{X}: @code{COMPLEX(KIND=2)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{f2c}.

@node ZSqRt Intrinsic
@subsubsection ZSqRt Intrinsic
@cindex ZSqRt intrinsic
@cindex intrinsics, ZSqRt

@noindent
@example
ZSqRt(@var{X})
@end example

@noindent
ZSqRt: @code{COMPLEX(KIND=2)} function.

@noindent
@var{X}: @code{COMPLEX(KIND=2)}; scalar; INTENT(IN).

@noindent
Intrinsic groups: @code{f2c}.

@end ifset
