diff options
author | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 1997-08-12 07:47:32 +0000 |
---|---|---|
committer | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 1997-08-12 07:47:32 +0000 |
commit | b2f877e9db26ec43ff364a9ed1b43d2012023222 (patch) | |
tree | 9338aae2651126a7f5a07aba373f5643beb8dfde /gcc/f/intdoc.texi | |
parent | a66ed8d6cf7db67b6d94735f61a57bd2ac583bea (diff) | |
download | ppe42-gcc-b2f877e9db26ec43ff364a9ed1b43d2012023222.tar.gz ppe42-gcc-b2f877e9db26ec43ff364a9ed1b43d2012023222.zip |
Initial revision
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@14772 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/f/intdoc.texi')
-rw-r--r-- | gcc/f/intdoc.texi | 10570 |
1 files changed, 10570 insertions, 0 deletions
diff --git a/gcc/f/intdoc.texi b/gcc/f/intdoc.texi new file mode 100644 index 00000000000..1d961d83d92 --- /dev/null +++ b/gcc/f/intdoc.texi @@ -0,0 +1,10570 @@ +@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. +@end ifset +@ifset familyVXT +* ACosD Intrinsic:: (Reserved for future use.) +@end ifset +@ifset familyF90 +* AdjustL Intrinsic:: (Reserved for future use.) +* AdjustR Intrinsic:: (Reserved for future use.) +@end ifset +@ifset familyF77 +* AImag Intrinsic:: Convert/extract imaginary part of complex. +@end ifset +@ifset familyVXT +* AIMax0 Intrinsic:: (Reserved for future use.) +* AIMin0 Intrinsic:: (Reserved for future use.) +@end ifset +@ifset familyF77 +* AInt Intrinsic:: Truncate to whole number. +@end ifset +@ifset familyVXT +* AJMax0 Intrinsic:: (Reserved for future use.) +* AJMin0 Intrinsic:: (Reserved for future use.) +@end ifset +@ifset familyF2U +* Alarm Intrinsic:: +@end ifset +@ifset familyF90 +* All Intrinsic:: (Reserved for future use.) +* Allocated Intrinsic:: (Reserved for future use.) +@end ifset +@ifset familyF77 +* 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. +@end ifset +@ifset familyF90 +* Any Intrinsic:: (Reserved for future use.) +@end ifset +@ifset familyF77 +* ASin Intrinsic:: Arc sine. +@end ifset +@ifset familyVXT +* ASinD Intrinsic:: (Reserved for future use.) +@end ifset +@ifset familyF90 +* Associated Intrinsic:: (Reserved for future use.) +@end ifset +@ifset familyF77 +* ATan Intrinsic:: Arc tangent. +* ATan2 Intrinsic:: Arc tangent. +@end ifset +@ifset familyVXT +* ATan2D Intrinsic:: (Reserved for future use.) +* ATanD Intrinsic:: (Reserved for future use.) +@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 familyVXT +* BITest Intrinsic:: (Reserved for future use.) +@end ifset +@ifset familyF90 +* Bit_Size Intrinsic:: Number of bits in argument's type. +@end ifset +@ifset familyVXT +* BJTest Intrinsic:: (Reserved for future use.) +@end ifset +@ifset familyMIL +* BTest Intrinsic:: Test bit. +@end ifset +@ifset familyF77 +* CAbs Intrinsic:: Absolute value (archaic). +* CCos Intrinsic:: Cosine (archaic). +@end ifset +@ifset familyFVZ +* CDAbs Intrinsic:: Absolute value (archaic). +* CDCos Intrinsic:: Cosine (archaic). +* CDExp Intrinsic:: Exponential (archaic). +* CDLog Intrinsic:: Natural logarithm (archaic). +* CDSin Intrinsic:: Sine (archaic). +* CDSqRt Intrinsic:: Square root (archaic). +@end ifset +@ifset familyF90 +* Ceiling Intrinsic:: (Reserved for future use.) +@end ifset +@ifset familyF77 +* CExp Intrinsic:: Exponential (archaic). +* Char Intrinsic:: Character from code. +@end ifset +@ifset familyF2U +* ChDir Intrinsic (subroutine):: Change directory. +@end ifset +@ifset familyBADU77 +* ChDir Intrinsic (function):: Change directory. +@end ifset +@ifset familyF2U +* ChMod Intrinsic (subroutine):: Change file modes. +@end ifset +@ifset familyBADU77 +* ChMod Intrinsic (function):: 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:: Cosine. +@end ifset +@ifset familyVXT +* CosD Intrinsic:: (Reserved for future use.) +@end ifset +@ifset familyF77 +* CosH Intrinsic:: Hyperbolic cosine. +@end ifset +@ifset familyF90 +* Count Intrinsic:: (Reserved for future use.) +* Cpu_Time Intrinsic:: Get current CPU time. +* CShift Intrinsic:: (Reserved for future use.) +@end ifset +@ifset familyF77 +* CSin Intrinsic:: Sine (archaic). +* CSqRt Intrinsic:: Square root (archaic). +@end ifset +@ifset familyF2U +* CTime Intrinsic (subroutine):: Convert time to Day Mon dd hh:mm:ss yyyy. +* CTime Intrinsic (function):: Convert time to Day Mon dd hh:mm:ss yyyy. +@end ifset +@ifset familyF77 +* DAbs Intrinsic:: Absolute value (archaic). +* DACos Intrinsic:: Arc cosine (archaic). +@end ifset +@ifset familyVXT +* DACosD Intrinsic:: (Reserved for future use.) +@end ifset +@ifset familyF77 +* DASin Intrinsic:: Arc sine (archaic). +@end ifset +@ifset familyVXT +* DASinD Intrinsic:: (Reserved for future use.) +@end ifset +@ifset familyF77 +* DATan Intrinsic:: Arc tangent (archaic). +* DATan2 Intrinsic:: Arc tangent (archaic). +@end ifset +@ifset familyVXT +* DATan2D Intrinsic:: (Reserved for future use.) +* DATanD Intrinsic:: (Reserved for future use.) +* Date Intrinsic:: Get current date as dd-Mon-yy. +@end ifset +@ifset familyF90 +* Date_and_Time Intrinsic:: (Reserved for future use.) +@end ifset +@ifset familyF2U +* DbesJ0 Intrinsic:: Bessel function (archaic). +* DbesJ1 Intrinsic:: Bessel function (archaic). +* DbesJN Intrinsic:: Bessel function (archaic). +* DbesY0 Intrinsic:: Bessel function (archaic). +* DbesY1 Intrinsic:: Bessel function (archaic). +* DbesYN Intrinsic:: Bessel function (archaic). +@end ifset +@ifset familyF77 +* Dble Intrinsic:: Convert to double precision. +@end ifset +@ifset familyVXT +* DbleQ Intrinsic:: (Reserved for future use.) +@end ifset +@ifset familyFVZ +* DCmplx Intrinsic:: Construct @code{COMPLEX(KIND=2)} value. +* DConjg Intrinsic:: Complex conjugate (archaic). +@end ifset +@ifset familyF77 +* DCos Intrinsic:: Cosine (archaic). +@end ifset +@ifset familyVXT +* DCosD Intrinsic:: (Reserved for future use.) +@end ifset +@ifset familyF77 +* DCosH Intrinsic:: Hyperbolic cosine (archaic). +* DDiM Intrinsic:: Difference magnitude (archaic). +@end ifset +@ifset familyF2U +* DErF Intrinsic:: Error function (archaic). +* DErFC Intrinsic:: Complementary error function (archaic). +@end ifset +@ifset familyF77 +* DExp Intrinsic:: Exponential (archaic). +@end ifset +@ifset familyFVZ +* DFloat Intrinsic:: Conversion (archaic). +@end ifset +@ifset familyVXT +* DFlotI Intrinsic:: (Reserved for future use.) +* DFlotJ Intrinsic:: (Reserved for future use.) +@end ifset +@ifset familyF90 +* Digits Intrinsic:: (Reserved for future use.) +@end ifset +@ifset familyF77 +* DiM Intrinsic:: Difference magnitude (non-negative subtract). +@end ifset +@ifset familyFVZ +* DImag Intrinsic:: Convert/extract imaginary part of complex (archaic). +@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). +@end ifset +@ifset familyF90 +* Dot_Product Intrinsic:: (Reserved for future use.) +@end ifset +@ifset familyF77 +* DProd Intrinsic:: Double-precision product. +@end ifset +@ifset familyVXT +* DReal Intrinsic:: Convert value to type @code{REAL(KIND=2)}. +@end ifset +@ifset familyF77 +* DSign Intrinsic:: Apply sign to magnitude (archaic). +* DSin Intrinsic:: Sine (archaic). +@end ifset +@ifset familyVXT +* DSinD Intrinsic:: (Reserved for future use.) +@end ifset +@ifset familyF77 +* DSinH Intrinsic:: Hyperbolic sine (archaic). +* DSqRt Intrinsic:: Square root (archaic). +* DTan Intrinsic:: Tangent (archaic). +@end ifset +@ifset familyVXT +* DTanD Intrinsic:: (Reserved for future use.) +@end ifset +@ifset familyF77 +* DTanH Intrinsic:: Hyperbolic tangent (archaic). +@end ifset +@ifset familyF2U +* Dtime Intrinsic (subroutine):: Get elapsed time since last time. +@end ifset +@ifset familyBADU77 +* Dtime Intrinsic (function):: Get elapsed time since last time. +@end ifset +@ifset familyF90 +* EOShift Intrinsic:: (Reserved for future use.) +* Epsilon Intrinsic:: (Reserved for future use.) +@end ifset +@ifset familyF2U +* ErF Intrinsic:: Error function. +* ErFC Intrinsic:: Complementary error function. +* ETime Intrinsic (subroutine):: Get elapsed time for process. +* ETime Intrinsic (function):: Get elapsed time for process. +* Exit Intrinsic:: Terminate the program. +@end ifset +@ifset familyF77 +* Exp Intrinsic:: Exponential. +@end ifset +@ifset familyF90 +* Exponent Intrinsic:: (Reserved for future use.) +@end ifset +@ifset familyF2U +* Fdate Intrinsic (subroutine):: Get current time as Day Mon dd hh:mm:ss yyyy. +* Fdate Intrinsic (function):: Get current time as Day Mon dd hh:mm:ss yyyy. +* FGet Intrinsic (subroutine):: Read a character from unit 5 stream-wise. +@end ifset +@ifset familyBADU77 +* FGet Intrinsic (function):: Read a character from unit 5 stream-wise. +@end ifset +@ifset familyF2U +* FGetC Intrinsic (subroutine):: Read a character stream-wise. +@end ifset +@ifset familyBADU77 +* FGetC Intrinsic (function):: Read a character stream-wise. +@end ifset +@ifset familyF77 +* Float Intrinsic:: Conversion (archaic). +@end ifset +@ifset familyVXT +* FloatI Intrinsic:: (Reserved for future use.) +* FloatJ Intrinsic:: (Reserved for future use.) +@end ifset +@ifset familyF90 +* Floor Intrinsic:: (Reserved for future use.) +@end ifset +@ifset familyF2U +* Flush Intrinsic:: Flush buffered output. +* FNum Intrinsic:: Get file descriptor from Fortran unit number. +* FPut Intrinsic (subroutine):: Write a character to unit 6 stream-wise. +@end ifset +@ifset familyBADU77 +* FPut Intrinsic (function):: Write a character to unit 6 stream-wise. +@end ifset +@ifset familyF2U +* FPutC Intrinsic (subroutine):: Write a character stream-wise. +@end ifset +@ifset familyBADU77 +* FPutC Intrinsic (function):: Write a character stream-wise. +@end ifset +@ifset familyF90 +* Fraction Intrinsic:: (Reserved for future use.) +@end ifset +@ifset familyF2U +* FSeek Intrinsic:: Position file (low-level). +* FStat Intrinsic (subroutine):: Get file information. +* FStat Intrinsic (function):: Get file information. +* FTell Intrinsic (subroutine):: Get file position (low-level). +* FTell Intrinsic (function):: Get file position (low-level). +* GError Intrinsic:: Get error message for last error. +* GetArg Intrinsic:: Obtain command-line argument. +* GetCWD Intrinsic (subroutine):: Get current working directory. +* GetCWD Intrinsic (function):: 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 (subroutine):: Get host name. +* HostNm Intrinsic (function):: Get host name. +@end ifset +@ifset familyF90 +* Huge Intrinsic:: (Reserved for future use.) +@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:: Clear a bit. +* IBits Intrinsic:: Extract a bit subfield of a variable. +* IBSet Intrinsic:: Set a bit. +@end ifset +@ifset familyF77 +* IChar Intrinsic:: Code for character. +@end ifset +@ifset familyF2U +* IDate Intrinsic (UNIX):: Get local time info. +@end ifset +@ifset familyVXT +* IDate Intrinsic (VXT):: Get local time info (VAX/VMS). +@end ifset +@ifset familyF77 +* IDiM Intrinsic:: Difference magnitude (archaic). +* 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:: Conversion (archaic). +@end ifset +@ifset familyVXT +* IIAbs Intrinsic:: (Reserved for future use.) +* IIAnd Intrinsic:: (Reserved for future use.) +* IIBClr Intrinsic:: (Reserved for future use.) +* IIBits Intrinsic:: (Reserved for future use.) +* IIBSet Intrinsic:: (Reserved for future use.) +* IIDiM Intrinsic:: (Reserved for future use.) +* IIDInt Intrinsic:: (Reserved for future use.) +* IIDNnt Intrinsic:: (Reserved for future use.) +* IIEOr Intrinsic:: (Reserved for future use.) +* IIFix Intrinsic:: (Reserved for future use.) +* IInt Intrinsic:: (Reserved for future use.) +* IIOr Intrinsic:: (Reserved for future use.) +* IIQint Intrinsic:: (Reserved for future use.) +* IIQNnt Intrinsic:: (Reserved for future use.) +* IIShftC Intrinsic:: (Reserved for future use.) +* IISign Intrinsic:: (Reserved for future use.) +@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 familyVXT +* IMax0 Intrinsic:: (Reserved for future use.) +* IMax1 Intrinsic:: (Reserved for future use.) +* IMin0 Intrinsic:: (Reserved for future use.) +* IMin1 Intrinsic:: (Reserved for future use.) +* IMod Intrinsic:: (Reserved for future use.) +@end ifset +@ifset familyF77 +* Index Intrinsic:: Locate a CHARACTER substring. +@end ifset +@ifset familyVXT +* INInt Intrinsic:: (Reserved for future use.) +* INot Intrinsic:: (Reserved for future use.) +@end ifset +@ifset familyF77 +* Int Intrinsic:: Convert to @code{INTEGER} value truncated + to whole number. +@end ifset +@ifset familyGNU +* Int2 Intrinsic:: Convert to @code{INTEGER(KIND=6)} value + truncated to whole number. +* Int8 Intrinsic:: Convert to @code{INTEGER(KIND=2)} 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:: Logical bit shift. +* IShftC Intrinsic:: Circular bit shift. +@end ifset +@ifset familyF77 +* ISign Intrinsic:: Apply sign to magnitude (archaic). +@end ifset +@ifset familyF2U +* ITime Intrinsic:: Get local time of day. +@end ifset +@ifset familyVXT +* IZExt Intrinsic:: (Reserved for future use.) +* JIAbs Intrinsic:: (Reserved for future use.) +* JIAnd Intrinsic:: (Reserved for future use.) +* JIBClr Intrinsic:: (Reserved for future use.) +* JIBits Intrinsic:: (Reserved for future use.) +* JIBSet Intrinsic:: (Reserved for future use.) +* JIDiM Intrinsic:: (Reserved for future use.) +* JIDInt Intrinsic:: (Reserved for future use.) +* JIDNnt Intrinsic:: (Reserved for future use.) +* JIEOr Intrinsic:: (Reserved for future use.) +* JIFix Intrinsic:: (Reserved for future use.) +* JInt Intrinsic:: (Reserved for future use.) +* JIOr Intrinsic:: (Reserved for future use.) +* JIQint Intrinsic:: (Reserved for future use.) +* JIQNnt Intrinsic:: (Reserved for future use.) +* JIShft Intrinsic:: (Reserved for future use.) +* JIShftC Intrinsic:: (Reserved for future use.) +* JISign Intrinsic:: (Reserved for future use.) +* JMax0 Intrinsic:: (Reserved for future use.) +* JMax1 Intrinsic:: (Reserved for future use.) +* JMin0 Intrinsic:: (Reserved for future use.) +* JMin1 Intrinsic:: (Reserved for future use.) +* JMod Intrinsic:: (Reserved for future use.) +* JNInt Intrinsic:: (Reserved for future use.) +* JNot Intrinsic:: (Reserved for future use.) +* JZExt Intrinsic:: (Reserved for future use.) +@end ifset +@ifset familyF2U +* Kill Intrinsic (subroutine):: Signal a process. +@end ifset +@ifset familyBADU77 +* Kill Intrinsic (function):: Signal a process. +@end ifset +@ifset familyF90 +* Kind Intrinsic:: (Reserved for future use.) +* LBound Intrinsic:: (Reserved for future use.) +@end ifset +@ifset familyF77 +* Len Intrinsic:: Length of character entity. +@end ifset +@ifset familyF90 +* Len_Trim Intrinsic:: Get last non-blank character in string. +@end ifset +@ifset familyF77 +* LGe Intrinsic:: Lexically greater than or equal. +* LGt Intrinsic:: Lexically greater than. +@end ifset +@ifset familyF2U +* Link Intrinsic (subroutine):: Make hard link in file system. +@end ifset +@ifset familyBADU77 +* Link Intrinsic (function):: Make hard link in file system. +@end ifset +@ifset familyF77 +* LLe Intrinsic:: Lexically less than or equal. +* LLt Intrinsic:: Lexically less than. +@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 familyF90 +* Logical Intrinsic:: (Reserved for future use.) +@end ifset +@ifset familyF2U +* Long Intrinsic:: Conversion to @code{INTEGER(KIND=1)} (archaic). +@end ifset +@ifset familyF2C +* LShift Intrinsic:: Left-shift bits. +@end ifset +@ifset familyF2U +* LStat Intrinsic (subroutine):: Get file information. +* LStat Intrinsic (function):: Get file information. +* LTime Intrinsic:: Convert time to local time info. +@end ifset +@ifset familyF90 +* MatMul Intrinsic:: (Reserved for future use.) +@end ifset +@ifset familyF77 +* Max Intrinsic:: Maximum value. +* Max0 Intrinsic:: Maximum value (archaic). +* Max1 Intrinsic:: Maximum value (archaic). +@end ifset +@ifset familyF90 +* MaxExponent Intrinsic:: (Reserved for future use.) +* MaxLoc Intrinsic:: (Reserved for future use.) +* MaxVal Intrinsic:: (Reserved for future use.) +@end ifset +@ifset familyF2U +* MClock Intrinsic:: Get number of clock ticks for process. +* MClock8 Intrinsic:: Get number of clock ticks for process. +@end ifset +@ifset familyF90 +* Merge Intrinsic:: (Reserved for future use.) +@end ifset +@ifset familyF77 +* Min Intrinsic:: Minimum value. +* Min0 Intrinsic:: Minimum value (archaic). +* Min1 Intrinsic:: Minimum value (archaic). +@end ifset +@ifset familyF90 +* MinExponent Intrinsic:: (Reserved for future use.) +* MinLoc Intrinsic:: (Reserved for future use.) +* MinVal Intrinsic:: (Reserved for future use.) +@end ifset +@ifset familyF77 +* Mod Intrinsic:: Remainder. +@end ifset +@ifset familyF90 +* Modulo Intrinsic:: (Reserved for future use.) +@end ifset +@ifset familyMIL +* MvBits Intrinsic:: Moving a bit field. +@end ifset +@ifset familyF90 +* Nearest Intrinsic:: (Reserved for future use.) +@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 familyF90 +* Pack Intrinsic:: (Reserved for future use.) +@end ifset +@ifset familyF2U +* PError Intrinsic:: Print error message for last error. +@end ifset +@ifset familyF90 +* Precision Intrinsic:: (Reserved for future use.) +* Present Intrinsic:: (Reserved for future use.) +* Product Intrinsic:: (Reserved for future use.) +@end ifset +@ifset familyVXT +* QAbs Intrinsic:: (Reserved for future use.) +* QACos Intrinsic:: (Reserved for future use.) +* QACosD Intrinsic:: (Reserved for future use.) +* QASin Intrinsic:: (Reserved for future use.) +* QASinD Intrinsic:: (Reserved for future use.) +* QATan Intrinsic:: (Reserved for future use.) +* QATan2 Intrinsic:: (Reserved for future use.) +* QATan2D Intrinsic:: (Reserved for future use.) +* QATanD Intrinsic:: (Reserved for future use.) +* QCos Intrinsic:: (Reserved for future use.) +* QCosD Intrinsic:: (Reserved for future use.) +* QCosH Intrinsic:: (Reserved for future use.) +* QDiM Intrinsic:: (Reserved for future use.) +* QExp Intrinsic:: (Reserved for future use.) +* QExt Intrinsic:: (Reserved for future use.) +* QExtD Intrinsic:: (Reserved for future use.) +* QFloat Intrinsic:: (Reserved for future use.) +* QInt Intrinsic:: (Reserved for future use.) +* QLog Intrinsic:: (Reserved for future use.) +* QLog10 Intrinsic:: (Reserved for future use.) +* QMax1 Intrinsic:: (Reserved for future use.) +* QMin1 Intrinsic:: (Reserved for future use.) +* QMod Intrinsic:: (Reserved for future use.) +* QNInt Intrinsic:: (Reserved for future use.) +* QSin Intrinsic:: (Reserved for future use.) +* QSinD Intrinsic:: (Reserved for future use.) +* QSinH Intrinsic:: (Reserved for future use.) +* QSqRt Intrinsic:: (Reserved for future use.) +* QTan Intrinsic:: (Reserved for future use.) +* QTanD Intrinsic:: (Reserved for future use.) +* QTanH Intrinsic:: (Reserved for future use.) +@end ifset +@ifset familyF90 +* Radix Intrinsic:: (Reserved for future use.) +@end ifset +@ifset familyF2U +* Rand Intrinsic:: Random number. +@end ifset +@ifset familyF90 +* Random_Number Intrinsic:: (Reserved for future use.) +* Random_Seed Intrinsic:: (Reserved for future use.) +* Range Intrinsic:: (Reserved for future use.) +@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 (subroutine):: Rename file. +@end ifset +@ifset familyBADU77 +* Rename Intrinsic (function):: Rename file. +@end ifset +@ifset familyF90 +* Repeat Intrinsic:: (Reserved for future use.) +* Reshape Intrinsic:: (Reserved for future use.) +* RRSpacing Intrinsic:: (Reserved for future use.) +@end ifset +@ifset familyF2C +* RShift Intrinsic:: Right-shift bits. +@end ifset +@ifset familyF90 +* Scale Intrinsic:: (Reserved for future use.) +* Scan Intrinsic:: (Reserved for future use.) +@end ifset +@ifset familyVXT +* Secnds Intrinsic:: Get local time offset since midnight. +@end ifset +@ifset familyF2U +* Second Intrinsic (function):: Get CPU time for process in seconds. +* Second Intrinsic (subroutine):: Get CPU time for process + in seconds. +@end ifset +@ifset familyF90 +* Selected_Int_Kind Intrinsic:: (Reserved for future use.) +* Selected_Real_Kind Intrinsic:: (Reserved for future use.) +* Set_Exponent Intrinsic:: (Reserved for future use.) +* Shape Intrinsic:: (Reserved for future use.) +@end ifset +@ifset familyF2U +* Short Intrinsic:: Convert to @code{INTEGER(KIND=6)} value + truncated to whole number. +@end ifset +@ifset familyF77 +* Sign Intrinsic:: Apply sign to magnitude. +@end ifset +@ifset familyF2U +* Signal Intrinsic (subroutine):: Muck with signal handling. +@end ifset +@ifset familyBADU77 +* Signal Intrinsic (function):: Muck with signal handling. +@end ifset +@ifset familyF77 +* Sin Intrinsic:: Sine. +@end ifset +@ifset familyVXT +* SinD Intrinsic:: (Reserved for future use.) +@end ifset +@ifset familyF77 +* SinH Intrinsic:: Hyperbolic sine. +@end ifset +@ifset familyF2U +* Sleep Intrinsic:: Sleep for a specified time. +@end ifset +@ifset familyF77 +* Sngl Intrinsic:: Convert (archaic). +@end ifset +@ifset familyVXT +* SnglQ Intrinsic:: (Reserved for future use.) +@end ifset +@ifset familyF90 +* Spacing Intrinsic:: (Reserved for future use.) +* Spread Intrinsic:: (Reserved for future use.) +@end ifset +@ifset familyF77 +* SqRt Intrinsic:: Square root. +@end ifset +@ifset familyF2U +* SRand Intrinsic:: Random seed. +* Stat Intrinsic (subroutine):: Get file information. +* Stat Intrinsic (function):: Get file information. +@end ifset +@ifset familyF90 +* Sum Intrinsic:: (Reserved for future use.) +@end ifset +@ifset familyF2U +* SymLnk Intrinsic (subroutine):: Make symbolic link in file system. +@end ifset +@ifset familyBADU77 +* SymLnk Intrinsic (function):: Make symbolic link in file system. +@end ifset +@ifset familyF2U +* System Intrinsic (subroutine):: Invoke shell (system) command. +@end ifset +@ifset familyBADU77 +* System Intrinsic (function):: Invoke shell (system) command. +@end ifset +@ifset familyF90 +* System_Clock Intrinsic:: Get current system clock value. +@end ifset +@ifset familyF77 +* Tan Intrinsic:: Tangent. +@end ifset +@ifset familyVXT +* TanD Intrinsic:: (Reserved for future use.) +@end ifset +@ifset familyF77 +* TanH Intrinsic:: Hyperbolic tangent. +@end ifset +@ifset familyF2U +* Time Intrinsic (UNIX):: Get current time as time value. +@end ifset +@ifset familyVXT +* Time Intrinsic (VXT):: Get the time as a character value. +@end ifset +@ifset familyF2U +* Time8 Intrinsic:: Get current time as time value. +@end ifset +@ifset familyF90 +* Tiny Intrinsic:: (Reserved for future use.) +* Transfer Intrinsic:: (Reserved for future use.) +* Transpose Intrinsic:: (Reserved for future use.) +* Trim Intrinsic:: (Reserved for future use.) +@end ifset +@ifset familyF2U +* TtyNam Intrinsic (subroutine):: Get name of terminal device for unit. +* TtyNam Intrinsic (function):: Get name of terminal device for unit. +@end ifset +@ifset familyF90 +* UBound Intrinsic:: (Reserved for future use.) +@end ifset +@ifset familyF2U +* UMask Intrinsic (subroutine):: Set file creation permissions mask. +@end ifset +@ifset familyBADU77 +* UMask Intrinsic (function):: Set file creation permissions mask. +@end ifset +@ifset familyF2U +* Unlink Intrinsic (subroutine):: Unlink file. +@end ifset +@ifset familyBADU77 +* Unlink Intrinsic (function):: Unlink file. +@end ifset +@ifset familyF90 +* Unpack Intrinsic:: (Reserved for future use.) +* Verify Intrinsic:: (Reserved for future use.) +@end ifset +@ifset familyF2C +* XOr Intrinsic:: Boolean XOR. +* ZAbs Intrinsic:: Absolute value (archaic). +* ZCos Intrinsic:: Cosine (archaic). +* ZExp Intrinsic:: Exponential (archaic). +@end ifset +@ifset familyVXT +* ZExt Intrinsic:: (Reserved for future use.) +@end ifset +@ifset familyF2C +* ZLog Intrinsic:: Natural logarithm (archaic). +* ZSin Intrinsic:: Sine (archaic). +* ZSqRt Intrinsic:: Square root (archaic). +@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)}. +A null character (@samp{CHAR(0)}) marks the end of +the name in @var{Name}---otherwise, +trailing blanks in @var{Name} are ignored. +@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 of this 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 of this function. + +@end ifset +@ifset familyVXT +@node ACosD Intrinsic +@subsubsection ACosD Intrinsic +@cindex ACosD intrinsic +@cindex intrinsics, ACosD + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL ACosD} to use this name for an +external procedure. + +@end ifset +@ifset familyF90 +@node AdjustL Intrinsic +@subsubsection AdjustL Intrinsic +@cindex AdjustL intrinsic +@cindex intrinsics, AdjustL + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL AdjustL} to use this name for an +external procedure. + +@node AdjustR Intrinsic +@subsubsection AdjustR Intrinsic +@cindex AdjustR intrinsic +@cindex intrinsics, AdjustR + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL AdjustR} to use this name for an +external procedure. + +@end ifset +@ifset familyF77 +@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. + +@end ifset +@ifset familyVXT +@node AIMax0 Intrinsic +@subsubsection AIMax0 Intrinsic +@cindex AIMax0 intrinsic +@cindex intrinsics, AIMax0 + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL AIMax0} to use this name for an +external procedure. + +@node AIMin0 Intrinsic +@subsubsection AIMin0 Intrinsic +@cindex AIMin0 intrinsic +@cindex intrinsics, AIMin0 + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL AIMin0} to use this name for an +external procedure. + +@end ifset +@ifset familyF77 +@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}. + +@end ifset +@ifset familyVXT +@node AJMax0 Intrinsic +@subsubsection AJMax0 Intrinsic +@cindex AJMax0 intrinsic +@cindex intrinsics, AJMax0 + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL AJMax0} to use this name for an +external procedure. + +@node AJMin0 Intrinsic +@subsubsection AJMin0 Intrinsic +@cindex AJMin0 intrinsic +@cindex intrinsics, AJMin0 + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL AJMin0} to use this name for an +external procedure. + +@end ifset +@ifset familyF2U +@node Alarm Intrinsic +@subsubsection Alarm Intrinsic +@cindex Alarm intrinsic +@cindex intrinsics, Alarm + +@noindent +@example +CALL Alarm(@var{Seconds}, @var{Handler}, @var{Status}) +@end example + +@noindent +@var{Seconds}: @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 +@var{Status}: @code{INTEGER(KIND=1)}; OPTIONAL; scalar; INTENT(OUT). + +@noindent +Intrinsic groups: @code{unix}. + +@end ifset +@ifset familyF90 +@node All Intrinsic +@subsubsection All Intrinsic +@cindex All intrinsic +@cindex intrinsics, All + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL All} to use this name for an +external procedure. + +@node Allocated Intrinsic +@subsubsection Allocated Intrinsic +@cindex Allocated intrinsic +@cindex intrinsics, Allocated + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL Allocated} to use this name for an +external procedure. + +@end ifset +@ifset familyF77 +@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}. + +@end ifset +@ifset familyF90 +@node Any Intrinsic +@subsubsection Any Intrinsic +@cindex Any intrinsic +@cindex intrinsics, Any + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL Any} to use this name for an +external procedure. + +@end ifset +@ifset familyF77 +@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 of this function. + +@end ifset +@ifset familyVXT +@node ASinD Intrinsic +@subsubsection ASinD Intrinsic +@cindex ASinD intrinsic +@cindex intrinsics, ASinD + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL ASinD} to use this name for an +external procedure. + +@end ifset +@ifset familyF90 +@node Associated Intrinsic +@subsubsection Associated Intrinsic +@cindex Associated intrinsic +@cindex intrinsics, Associated + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL Associated} to use this name for an +external procedure. + +@end ifset +@ifset familyF77 +@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 of this 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 of this function. + +@end ifset +@ifset familyVXT +@node ATan2D Intrinsic +@subsubsection ATan2D Intrinsic +@cindex ATan2D intrinsic +@cindex intrinsics, ATan2D + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL ATan2D} to use this name for an +external procedure. + +@node ATanD Intrinsic +@subsubsection ATanD Intrinsic +@cindex ATanD intrinsic +@cindex intrinsics, ATanD + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL ATanD} to use this name for an +external procedure. + +@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 of @var{X}. +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 of @var{X}. +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} of @var{X}. +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 of @var{X}. +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 of @var{X}. +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} of @var{X}. +See @code{bessel(3m)}, on whose implementation the function depends. +@end ifset +@ifset familyVXT +@node BITest Intrinsic +@subsubsection BITest Intrinsic +@cindex BITest intrinsic +@cindex intrinsics, BITest + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL BITest} to use this name for an +external procedure. + +@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 to 1. + +@xref{IBClr Intrinsic}, for how to set a bit in a variable to 0. + + +@end ifset +@ifset familyVXT +@node BJTest Intrinsic +@subsubsection BJTest Intrinsic +@cindex BJTest intrinsic +@cindex intrinsics, BJTest + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL BJTest} to use this name for an +external procedure. + +@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 (rightmost) bit, adding the value +@ifinfo +2**0, +@end ifinfo +@iftex +@tex +$2^0$, +@end tex +@end iftex +or 1, +to the number if set to 1; +bit 1 is the next-higher-order bit, adding +@ifinfo +2**1, +@end ifinfo +@iftex +@tex +$2^1$, +@end tex +@end iftex +or 2; +bit 2 adds +@ifinfo +2**2, +@end ifinfo +@iftex +@tex +$2^2$, +@end tex +@end iftex +or 4; and so on.) + +@xref{Bit_Size Intrinsic}, for how to obtain the number of bits +in a type. +The leftmost bit of @var{I} is @samp{BIT_SIZE(@var{I}-1}. + +@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). + +@noindent +Description: + +Archaic form of @code{COS()} that is specific +to one type for @var{X}. +@xref{Cos Intrinsic}. + +@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}. + +@noindent +Description: + +Archaic form of @code{COS()} that is specific +to one type for @var{X}. +@xref{Cos Intrinsic}. + +@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}. + +@noindent +Description: + +Archaic form of @code{EXP()} that is specific +to one type for @var{X}. +@xref{Exp Intrinsic}. + +@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}. + +@noindent +Description: + +Archaic form of @code{SIN()} that is specific +to one type for @var{X}. +@xref{Sin Intrinsic}. + +@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}. + +@noindent +Description: + +Archaic form of @code{SQRT()} that is specific +to one type for @var{X}. +@xref{SqRt Intrinsic}. + +@end ifset +@ifset familyF90 +@node Ceiling Intrinsic +@subsubsection Ceiling Intrinsic +@cindex Ceiling intrinsic +@cindex intrinsics, Ceiling + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL Ceiling} to use this name for an +external procedure. + +@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). + +@noindent +Description: + +Archaic form of @code{EXP()} that is specific +to one type for @var{X}. +@xref{Exp Intrinsic}. + +@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. + +Note that no intrinsic exists to convert a numerical +value to a printable character string. +For example, there is no intrinsic that, given +an @code{INTEGER} or @code{REAL} argument with the +value @samp{154}, returns the @code{CHARACTER} +result @samp{'154'}. + +Instead, you can use internal-file I/O to do this kind +of conversion. +For example: + +@smallexample +INTEGER VALUE +CHARACTER*10 STRING +VALUE = 154 +WRITE (STRING, '(I10)'), VALUE +PRINT *, STRING +END +@end smallexample + +The above program, when run, prints: + +@smallexample + 154 +@end smallexample + +@xref{IChar Intrinsic}, for the inverse of the @code{CHAR} function. + +@xref{AChar Intrinsic}, for the function corresponding +to the ASCII character set. + +@end ifset +@ifset familyF2U +@node ChDir Intrinsic (subroutine) +@subsubsection ChDir Intrinsic (subroutine) +@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 a non-zero error code otherwise upon return. +See @code{chdir(3)}. + +Some non-GNU implementations of Fortran provide this intrinsic as +only a function, not as a subroutine, or do not support the +(optional) @var{Status} argument. + +For information on other intrinsics with the same name: +@xref{ChDir Intrinsic (function)}. + +@end ifset +@ifset familyBADU77 +@node ChDir Intrinsic (function) +@subsubsection ChDir Intrinsic (function) +@cindex ChDir intrinsic +@cindex intrinsics, ChDir + +@noindent +@example +ChDir(@var{Dir}) +@end example + +@noindent +ChDir: @code{INTEGER(KIND=1)} function. + +@noindent +@var{Dir}: @code{CHARACTER}; scalar; INTENT(IN). + +@noindent +Intrinsic groups: @code{badu77}. + +@noindent +Description: + +Sets the current working directory to be @var{Dir}. +Returns 0 on success or a non-zero error code. +See @code{chdir(3)}. + +Due to the side effects performed by this intrinsic, the function +form is not recommended. + +For information on other intrinsics with the same name: +@xref{ChDir Intrinsic (subroutine)}. + +@end ifset +@ifset familyF2U +@node ChMod Intrinsic (subroutine) +@subsubsection ChMod Intrinsic (subroutine) +@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(KIND=1)}; 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)}. +A null character (@samp{CHAR(0)}) marks the end of +the name in @var{Name}---otherwise, +trailing blanks in @var{Name} are ignored. +Currently, @var{Name} must not contain the single quote +character. + +If the @var{Status} argument is supplied, it contains +0 on success or a non-zero error code upon return. + +Note that this currently works +by actually invoking @code{/bin/chmod} (or the @code{chmod} found when +the library was configured) and so may fail in some circumstances and +will, anyway, be slow. + +Some non-GNU implementations of Fortran provide this intrinsic as +only a function, not as a subroutine, or do not support the +(optional) @var{Status} argument. + +For information on other intrinsics with the same name: +@xref{ChMod Intrinsic (function)}. + +@end ifset +@ifset familyBADU77 +@node ChMod Intrinsic (function) +@subsubsection ChMod Intrinsic (function) +@cindex ChMod intrinsic +@cindex intrinsics, ChMod + +@noindent +@example +ChMod(@var{Name}, @var{Mode}) +@end example + +@noindent +ChMod: @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{badu77}. + +@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)}. +A null character (@samp{CHAR(0)}) marks the end of +the name in @var{Name}---otherwise, +trailing blanks in @var{Name} are ignored. +Currently, @var{Name} must not contain the single quote +character. + +Returns 0 on success or a non-zero error code otherwise. + +Note that this currently works +by actually invoking @code{/bin/chmod} (or the @code{chmod} found when +the library was configured) and so may fail in some circumstances and +will, anyway, be slow. + +Due to the side effects performed by this intrinsic, the function +form is not recommended. + +For information on other intrinsics with the same name: +@xref{ChMod Intrinsic (subroutine)}. + +@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). + +@noindent +Description: + +Returns the cosine of @var{X}, an angle measured +in radians. + +@xref{ACos Intrinsic}, for the inverse of this function. + +@end ifset +@ifset familyVXT +@node CosD Intrinsic +@subsubsection CosD Intrinsic +@cindex CosD intrinsic +@cindex intrinsics, CosD + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL CosD} to use this name for an +external procedure. + +@end ifset +@ifset familyF77 +@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). + +@noindent +Description: + +Returns the hyperbolic cosine of @var{X}. + +@end ifset +@ifset familyF90 +@node Count Intrinsic +@subsubsection Count Intrinsic +@cindex Count intrinsic +@cindex intrinsics, Count + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL Count} to use this name for an +external procedure. + +@node Cpu_Time Intrinsic +@subsubsection Cpu_Time Intrinsic +@cindex Cpu_Time intrinsic +@cindex intrinsics, Cpu_Time + +@noindent +@example +CALL Cpu_Time(@var{Seconds}) +@end example + +@noindent +@var{Seconds}: @code{REAL(KIND=1)}; scalar; INTENT(OUT). + +@noindent +Intrinsic groups: @code{f90}. + +@noindent +Description: + +Returns in @var{Seconds} the current value of the system time. +This implementation of the Fortran 95 intrinsic is just an alias for +@code{second} @xref{Second Intrinsic (subroutine)}. + +@node CShift Intrinsic +@subsubsection CShift Intrinsic +@cindex CShift intrinsic +@cindex intrinsics, CShift + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL CShift} to use this name for an +external procedure. + +@end ifset +@ifset familyF77 +@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). + +@noindent +Description: + +Archaic form of @code{SIN()} that is specific +to one type for @var{X}. +@xref{Sin Intrinsic}. + +@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). + +@noindent +Description: + +Archaic form of @code{SQRT()} that is specific +to one type for @var{X}. +@xref{SqRt Intrinsic}. + +@end ifset +@ifset familyF2U +@node CTime Intrinsic (subroutine) +@subsubsection CTime Intrinsic (subroutine) +@cindex CTime intrinsic +@cindex intrinsics, CTime + +@noindent +@example +CALL CTime(@var{Result}, @var{STime}) +@end example + +@noindent +@var{Result}: @code{CHARACTER}; scalar; INTENT(OUT). + +@noindent +@var{STime}: @code{INTEGER}; scalar; INTENT(IN). + +@noindent +Intrinsic groups: @code{unix}. + +@noindent +Description: + +Converts @var{STime}, a system time value, such as returned by +@code{TIME8()}, to a string of the form @samp{Sat Aug 19 18:13:14 1995}, +and returns that string in @var{Result}. + +@xref{Time8 Intrinsic}. + +Some non-GNU implementations of Fortran provide this intrinsic as +only a function, not as a subroutine. + +For information on other intrinsics with the same name: +@xref{CTime Intrinsic (function)}. + +@node CTime Intrinsic (function) +@subsubsection CTime Intrinsic (function) +@cindex CTime intrinsic +@cindex intrinsics, CTime + +@noindent +@example +CTime(@var{STime}) +@end example + +@noindent +CTime: @code{CHARACTER*(*)} function. + +@noindent +@var{STime}: @code{INTEGER}; scalar; INTENT(IN). + +@noindent +Intrinsic groups: @code{unix}. + +@noindent +Description: + +Converts @var{STime}, a system time value, such as returned by +@code{TIME8()}, to a string of the form @samp{Sat Aug 19 18:13:14 1995}, +and returns that string as the function value. + +@xref{Time8 Intrinsic}. + +For information on other intrinsics with the same name: +@xref{CTime Intrinsic (subroutine)}. + +@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}. + +@end ifset +@ifset familyVXT +@node DACosD Intrinsic +@subsubsection DACosD Intrinsic +@cindex DACosD intrinsic +@cindex intrinsics, DACosD + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL DACosD} to use this name for an +external procedure. + +@end ifset +@ifset familyF77 +@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}. + +@end ifset +@ifset familyVXT +@node DASinD Intrinsic +@subsubsection DASinD Intrinsic +@cindex DASinD intrinsic +@cindex intrinsics, DASinD + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL DASinD} to use this name for an +external procedure. + +@end ifset +@ifset familyF77 +@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 DATan2D Intrinsic +@subsubsection DATan2D Intrinsic +@cindex DATan2D intrinsic +@cindex intrinsics, DATan2D + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL DATan2D} to use this name for an +external procedure. + +@node DATanD Intrinsic +@subsubsection DATanD Intrinsic +@cindex DATanD intrinsic +@cindex intrinsics, DATanD + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL DATanD} to use this name for an +external procedure. + +@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 (subroutine)}, for information on obtaining more digits +for the current (or any) date. + +@end ifset +@ifset familyF90 +@node Date_and_Time Intrinsic +@subsubsection Date_and_Time Intrinsic +@cindex Date_and_Time intrinsic +@cindex intrinsics, Date_and_Time + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL Date_and_Time} to use this name for an +external procedure. + +@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}. + +@noindent +Description: + +Archaic form of @code{BESJ0()} that is specific +to one type for @var{X}. +@xref{BesJ0 Intrinsic}. + +@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}. + +@noindent +Description: + +Archaic form of @code{BESJ1()} that is specific +to one type for @var{X}. +@xref{BesJ1 Intrinsic}. + +@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}. + +@noindent +Description: + +Archaic form of @code{BESJN()} that is specific +to one type for @var{X}. +@xref{BesJN Intrinsic}. + +@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}. + +@noindent +Description: + +Archaic form of @code{BESY0()} that is specific +to one type for @var{X}. +@xref{BesY0 Intrinsic}. + +@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}. + +@noindent +Description: + +Archaic form of @code{BESY1()} that is specific +to one type for @var{X}. +@xref{BesY1 Intrinsic}. + +@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}. + +@noindent +Description: + +Archaic form of @code{BESYN()} that is specific +to one type for @var{X}. +@xref{BesYN Intrinsic}. + +@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). + +@noindent +Description: + +Returns @var{A} converted to double precision +(@code{REAL(KIND=2)}). +If @var{A} is @code{COMPLEX}, the real part of +@var{A} is used for the conversion +and the imaginary part disregarded. + +@xref{Sngl Intrinsic}, for the function that converts +to single precision. + +@xref{Int Intrinsic}, for the function that converts +to @code{INTEGER}. + +@xref{Complex Intrinsic}, for the function that converts +to @code{COMPLEX}. + +@end ifset +@ifset familyVXT +@node DbleQ Intrinsic +@subsubsection DbleQ Intrinsic +@cindex DbleQ intrinsic +@cindex intrinsics, DbleQ + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL DbleQ} to use this name for an +external procedure. + +@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}. + +@noindent +Description: + +If @var{X} is not type @code{COMPLEX}, +constructs a value of type @code{COMPLEX(KIND=2)} from the +real and imaginary values specified by @var{X} and +@var{Y}, respectively. +If @var{Y} is omitted, @samp{0D0} is assumed. + +If @var{X} is type @code{COMPLEX}, +converts it to type @code{COMPLEX(KIND=2)}. + +Although this intrinsic is not standard Fortran, +it is a popular extension offered by many compilers +that support @code{DOUBLE COMPLEX}, since it offers +the easiest way to convert to @code{DOUBLE COMPLEX} +without using Fortran 90 features (such as the @samp{KIND=} +argument to the @code{CMPLX()} intrinsic). + +(@samp{CMPLX(0D0, 0D0)} returns a single-precision +@code{COMPLEX} result, as required by standard FORTRAN 77. +That's why so many compilers provide @code{DCMPLX()}, since +@samp{DCMPLX(0D0, 0D0)} returns a @code{DOUBLE COMPLEX} +result. +Still, @code{DCMPLX()} converts even @code{REAL*16} arguments +to their @code{REAL*8} equivalents in most dialects of +Fortran, so neither it nor @code{CMPLX()} allow easy +construction of arbitrary-precision values without +potentially forcing a conversion involving extending or +reducing precision. +GNU Fortran provides such an intrinsic, called @code{COMPLEX()}.) + +@xref{Complex Intrinsic}, for information on easily constructing +a @code{COMPLEX} value of arbitrary precision from @code{REAL} +arguments. + +@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). + +@noindent +Description: + +Archaic form of @code{COS()} that is specific +to one type for @var{X}. +@xref{Cos Intrinsic}. + +@end ifset +@ifset familyVXT +@node DCosD Intrinsic +@subsubsection DCosD Intrinsic +@cindex DCosD intrinsic +@cindex intrinsics, DCosD + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL DCosD} to use this name for an +external procedure. + +@end ifset +@ifset familyF77 +@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). + +@noindent +Description: + +Archaic form of @code{COSH()} that is specific +to one type for @var{X}. +@xref{CosH Intrinsic}. + +@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). + +@noindent +Description: + +Archaic form of @code{DIM()} that is specific +to one type for @var{X} and @var{Y}. +@xref{DiM Intrinsic}. + +@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}. + +@noindent +Description: + +Archaic form of @code{ERF()} that is specific +to one type for @var{X}. +@xref{ErF Intrinsic}. + +@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}. + +@noindent +Description: + +Archaic form of @code{ERFC()} that is specific +to one type for @var{X}. +@xref{ErFC Intrinsic}. + +@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). + +@noindent +Description: + +Archaic form of @code{EXP()} that is specific +to one type for @var{X}. +@xref{Exp Intrinsic}. + +@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}. + +@noindent +Description: + +Archaic form of @code{REAL()} that is specific +to one type for @var{A}. +@xref{Real Intrinsic}. + +@end ifset +@ifset familyVXT +@node DFlotI Intrinsic +@subsubsection DFlotI Intrinsic +@cindex DFlotI intrinsic +@cindex intrinsics, DFlotI + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL DFlotI} to use this name for an +external procedure. + +@node DFlotJ Intrinsic +@subsubsection DFlotJ Intrinsic +@cindex DFlotJ intrinsic +@cindex intrinsics, DFlotJ + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL DFlotJ} to use this name for an +external procedure. + +@end ifset +@ifset familyF90 +@node Digits Intrinsic +@subsubsection Digits Intrinsic +@cindex Digits intrinsic +@cindex intrinsics, Digits + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL Digits} to use this name for an +external procedure. + +@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). + +@noindent +Description: + +Returns @samp{@var{X}-@var{Y}} if @var{X} is greater than +@var{Y}; otherwise returns zero. + +@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}. + +@noindent +Description: + +Archaic form of @code{AIMAG()} that is specific +to one type for @var{Z}. +@xref{AImag Intrinsic}. + +@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}. + +@end ifset +@ifset familyF90 +@node Dot_Product Intrinsic +@subsubsection Dot_Product Intrinsic +@cindex Dot_Product intrinsic +@cindex intrinsics, Dot_Product + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL Dot_Product} to use this name for an +external procedure. + +@end ifset +@ifset familyF77 +@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). + +@noindent +Description: + +Returns @samp{DBLE(@var{X})*DBLE(@var{Y})}. + +@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}. + +@noindent +Description: + +Converts @var{A} to @code{REAL(KIND=2)}. + +If @var{A} is type @code{COMPLEX}, its real part +is converted (if necessary) to @code{REAL(KIND=2)}, +and its imaginary part is disregarded. + +Although this intrinsic is not standard Fortran, +it is a popular extension offered by many compilers +that support @code{DOUBLE COMPLEX}, since it offers +the easiest way to extract the real part of a @code{DOUBLE COMPLEX} +value without using the Fortran 90 @code{REAL()} intrinsic +in a way that produces a return value inconsistent with +the way many FORTRAN 77 compilers handle @code{REAL()} of +a @code{DOUBLE COMPLEX} value. + +@xref{RealPart Intrinsic}, for information on a GNU Fortran +intrinsic that avoids these areas of confusion. + +@xref{REAL() and AIMAG() of Complex}, for more information on +this issue. + +@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). + +@noindent +Description: + +Archaic form of @code{SIGN()} that is specific +to one type for @var{A} and @var{B}. +@xref{Sign Intrinsic}. + +@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). + +@noindent +Description: + +Archaic form of @code{SIN()} that is specific +to one type for @var{X}. +@xref{Sin Intrinsic}. + +@end ifset +@ifset familyVXT +@node DSinD Intrinsic +@subsubsection DSinD Intrinsic +@cindex DSinD intrinsic +@cindex intrinsics, DSinD + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL DSinD} to use this name for an +external procedure. + +@end ifset +@ifset familyF77 +@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). + +@noindent +Description: + +Archaic form of @code{SINH()} that is specific +to one type for @var{X}. +@xref{SinH Intrinsic}. + +@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). + +@noindent +Description: + +Archaic form of @code{SQRT()} that is specific +to one type for @var{X}. +@xref{SqRt Intrinsic}. + +@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). + +@noindent +Description: + +Archaic form of @code{TAN()} that is specific +to one type for @var{X}. +@xref{Tan Intrinsic}. + +@end ifset +@ifset familyVXT +@node DTanD Intrinsic +@subsubsection DTanD Intrinsic +@cindex DTanD intrinsic +@cindex intrinsics, DTanD + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL DTanD} to use this name for an +external procedure. + +@end ifset +@ifset familyF77 +@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). + +@noindent +Description: + +Archaic form of @code{TANH()} that is specific +to one type for @var{X}. +@xref{TanH Intrinsic}. + +@end ifset +@ifset familyF2U +@node Dtime Intrinsic (subroutine) +@subsubsection Dtime Intrinsic (subroutine) +@cindex Dtime intrinsic +@cindex intrinsics, Dtime + +@noindent +@example +CALL Dtime(@var{Result}, @var{TArray}) +@end example + +@noindent +@var{Result}: @code{REAL(KIND=1)}; scalar; INTENT(OUT). + +@noindent +@var{TArray}: @code{REAL(KIND=1)}; DIMENSION(2); INTENT(OUT). + +@noindent +Intrinsic groups: @code{unix}. + +@noindent +Description: + +Initially, return the number of seconds of runtime +since the start of the process's execution +in @var{Result}, +and the user and system components of this in @samp{@var{TArray}(1)} +and @samp{@var{TArray}(2)} respectively. +The value of @var{Result} is equal to @samp{@var{TArray}(1) + @var{TArray}(2)}. + +Subsequent invocations of @samp{DTIME()} set values based on accumulations +since the previous invocation. + +Some non-GNU implementations of Fortran provide this intrinsic as +only a function, not as a subroutine. + +For information on other intrinsics with the same name: +@xref{Dtime Intrinsic (function)}. + +@end ifset +@ifset familyBADU77 +@node Dtime Intrinsic (function) +@subsubsection Dtime Intrinsic (function) +@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{badu77}. + +@noindent +Description: + +Initially, return the number of seconds of runtime +since the start of the process's 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)}. + +Subsequent invocations of @samp{DTIME()} return values accumulated since the +previous invocation. + +Due to the side effects performed by this intrinsic, the function +form is not recommended. + +For information on other intrinsics with the same name: +@xref{Dtime Intrinsic (subroutine)}. + +@end ifset +@ifset familyF90 +@node EOShift Intrinsic +@subsubsection EOShift Intrinsic +@cindex EOShift intrinsic +@cindex intrinsics, EOShift + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL EOShift} to use this name for an +external procedure. + +@node Epsilon Intrinsic +@subsubsection Epsilon Intrinsic +@cindex Epsilon intrinsic +@cindex intrinsics, Epsilon + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL Epsilon} to use this name for an +external procedure. + +@end ifset +@ifset familyF2U +@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}: +@samp{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 (subroutine) +@subsubsection ETime Intrinsic (subroutine) +@cindex ETime intrinsic +@cindex intrinsics, ETime + +@noindent +@example +CALL ETime(@var{Result}, @var{TArray}) +@end example + +@noindent +@var{Result}: @code{REAL(KIND=1)}; scalar; INTENT(OUT). + +@noindent +@var{TArray}: @code{REAL(KIND=1)}; DIMENSION(2); INTENT(OUT). + +@noindent +Intrinsic groups: @code{unix}. + +@noindent +Description: + +Return the number of seconds of runtime +since the start of the process's execution +in @var{Result}, +and the user and system components of this in @samp{@var{TArray}(1)} +and @samp{@var{TArray}(2)} respectively. +The value of @var{Result} is equal to @samp{@var{TArray}(1) + @var{TArray}(2)}. + +Some non-GNU implementations of Fortran provide this intrinsic as +only a function, not as a subroutine. + +For information on other intrinsics with the same name: +@xref{ETime Intrinsic (function)}. + +@node ETime Intrinsic (function) +@subsubsection ETime Intrinsic (function) +@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 the number of seconds of runtime +since the start of the process's 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)}. + +For information on other intrinsics with the same name: +@xref{ETime Intrinsic (subroutine)}. + +@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). + +@noindent +Description: + +Returns @samp{@var{e}**@var{X}}, where +@var{e} is approximately 2.7182818. + +@xref{Log Intrinsic}, for the inverse of this function. + +@end ifset +@ifset familyF90 +@node Exponent Intrinsic +@subsubsection Exponent Intrinsic +@cindex Exponent intrinsic +@cindex intrinsics, Exponent + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL Exponent} to use this name for an +external procedure. + +@end ifset +@ifset familyF2U +@node Fdate Intrinsic (subroutine) +@subsubsection Fdate Intrinsic (subroutine) +@cindex Fdate intrinsic +@cindex intrinsics, Fdate + +@noindent +@example +CALL Fdate(@var{Date}) +@end example + +@noindent +@var{Date}: @code{CHARACTER}; scalar; INTENT(OUT). + +@noindent +Intrinsic groups: @code{unix}. + +@noindent +Description: + +Returns the current date (using the same format as @code{CTIME()}) +in @var{Date}. + +Equivalent to: + +@example +CALL CTIME(@var{Date}, TIME8()) +@end example + +@xref{CTime Intrinsic (subroutine)}. + +Some non-GNU implementations of Fortran provide this intrinsic as +only a function, not as a subroutine. + +For information on other intrinsics with the same name: +@xref{Fdate Intrinsic (function)}. + +@node Fdate Intrinsic (function) +@subsubsection Fdate Intrinsic (function) +@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 (using the same format as @code{CTIME()}). + +Equivalent to: + +@example +CTIME(TIME8()) +@end example + +@xref{CTime Intrinsic (function)}. + +For information on other intrinsics with the same name: +@xref{Fdate Intrinsic (subroutine)}. + +@node FGet Intrinsic (subroutine) +@subsubsection FGet Intrinsic (subroutine) +@cindex FGet intrinsic +@cindex intrinsics, FGet + +@noindent +@example +CALL FGet(@var{C}, @var{Status}) +@end example + +@noindent +@var{C}: @code{CHARACTER}; scalar; INTENT(OUT). + +@noindent +@var{Status}: @code{INTEGER(KIND=1)}; OPTIONAL; scalar; INTENT(OUT). + +@noindent +Intrinsic groups: @code{unix}. + +@noindent +Description: + +Reads a single character into @var{C} in stream mode from unit 5 +(by-passing normal formatted output) using @code{getc(3)}. +Returns in +@var{Status} 0 on success, @minus{}1 on end-of-file, and the error code +from @code{ferror(3)} otherwise. + +Stream I/O should not be mixed with normal record-oriented (formatted or +unformatted) I/O on the same unit; the results are unpredictable. + +For information on other intrinsics with the same name: +@xref{FGet Intrinsic (function)}. + +@end ifset +@ifset familyBADU77 +@node FGet Intrinsic (function) +@subsubsection FGet Intrinsic (function) +@cindex FGet intrinsic +@cindex intrinsics, FGet + +@noindent +@example +FGet(@var{C}) +@end example + +@noindent +FGet: @code{INTEGER(KIND=1)} function. + +@noindent +@var{C}: @code{CHARACTER}; scalar; INTENT(OUT). + +@noindent +Intrinsic groups: @code{badu77}. + +@noindent +Description: + +Reads a single character into @var{C} in stream mode from unit 5 +(by-passing normal formatted input) using @code{getc(3)}. +Returns 0 on +success, @minus{}1 on end-of-file, and the error code from +@code{ferror(3)} otherwise. + +Stream I/O should not be mixed with normal record-oriented (formatted or +unformatted) I/O on the same unit; the results are unpredictable. + +For information on other intrinsics with the same name: +@xref{FGet Intrinsic (subroutine)}. + +@end ifset +@ifset familyF2U +@node FGetC Intrinsic (subroutine) +@subsubsection FGetC Intrinsic (subroutine) +@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(KIND=1)}; OPTIONAL; scalar; INTENT(OUT). + +@noindent +Intrinsic groups: @code{unix}. + +@noindent +Description: + +Reads a single character into @var{C} in stream mode from unit @var{Unit} +(by-passing normal formatted output) using @code{getc(3)}. +Returns in +@var{Status} 0 on success, @minus{}1 on end-of-file, and the error code from +@code{ferror(3)} otherwise. + +Stream I/O should not be mixed with normal record-oriented (formatted or +unformatted) I/O on the same unit; the results are unpredictable. + +For information on other intrinsics with the same name: +@xref{FGetC Intrinsic (function)}. + +@end ifset +@ifset familyBADU77 +@node FGetC Intrinsic (function) +@subsubsection FGetC Intrinsic (function) +@cindex FGetC intrinsic +@cindex intrinsics, FGetC + +@noindent +@example +FGetC(@var{Unit}, @var{C}) +@end example + +@noindent +FGetC: @code{INTEGER(KIND=1)} function. + +@noindent +@var{Unit}: @code{INTEGER}; scalar; INTENT(IN). + +@noindent +@var{C}: @code{CHARACTER}; scalar; INTENT(OUT). + +@noindent +Intrinsic groups: @code{badu77}. + +@noindent +Description: + +Reads a single character into @var{C} in stream mode from unit @var{Unit} +(by-passing normal formatted output) using @code{getc(3)}. +Returns 0 on +success, @minus{}1 on end-of-file, and the error code from +@code{ferror(3)} otherwise. + +Stream I/O should not be mixed with normal record-oriented (formatted or +unformatted) I/O on the same unit; the results are unpredictable. + +For information on other intrinsics with the same name: +@xref{FGetC Intrinsic (subroutine)}. + +@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). + +@noindent +Description: + +Archaic form of @code{REAL()} that is specific +to one type for @var{A}. +@xref{Real Intrinsic}. + +@end ifset +@ifset familyVXT +@node FloatI Intrinsic +@subsubsection FloatI Intrinsic +@cindex FloatI intrinsic +@cindex intrinsics, FloatI + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL FloatI} to use this name for an +external procedure. + +@node FloatJ Intrinsic +@subsubsection FloatJ Intrinsic +@cindex FloatJ intrinsic +@cindex intrinsics, FloatJ + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL FloatJ} to use this name for an +external procedure. + +@end ifset +@ifset familyF90 +@node Floor Intrinsic +@subsubsection Floor Intrinsic +@cindex Floor intrinsic +@cindex intrinsics, Floor + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL Floor} to use this name for an +external procedure. + +@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}. + +Some non-GNU implementations of Fortran provide this intrinsic +as a library procedure that might or might not support the +(optional) @var{Unit} argument. + +@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 FPut Intrinsic (subroutine) +@subsubsection FPut Intrinsic (subroutine) +@cindex FPut intrinsic +@cindex intrinsics, FPut + +@noindent +@example +CALL FPut(@var{C}, @var{Status}) +@end example + +@noindent +@var{C}: @code{CHARACTER}; scalar; INTENT(IN). + +@noindent +@var{Status}: @code{INTEGER(KIND=1)}; OPTIONAL; scalar; INTENT(OUT). + +@noindent +Intrinsic groups: @code{unix}. + +@noindent +Description: + +Writes the single character @var{C} in stream mode to unit 6 +(by-passing normal formatted output) using @code{putc(3)}. +Returns in +@var{Status} 0 on success, the error code from @code{ferror(3)} otherwise. + +Stream I/O should not be mixed with normal record-oriented (formatted or +unformatted) I/O on the same unit; the results are unpredictable. + +For information on other intrinsics with the same name: +@xref{FPut Intrinsic (function)}. + +@end ifset +@ifset familyBADU77 +@node FPut Intrinsic (function) +@subsubsection FPut Intrinsic (function) +@cindex FPut intrinsic +@cindex intrinsics, FPut + +@noindent +@example +FPut(@var{C}) +@end example + +@noindent +FPut: @code{INTEGER(KIND=1)} function. + +@noindent +@var{C}: @code{CHARACTER}; scalar; INTENT(IN). + +@noindent +Intrinsic groups: @code{badu77}. + +@noindent +Description: + +Writes the single character @var{C} in stream mode to unit 6 +(by-passing normal formatted output) using @code{getc(3)}. +Returns 0 on +success, the error code from @code{ferror(3)} otherwise. + +Stream I/O should not be mixed with normal record-oriented (formatted or +unformatted) I/O on the same unit; the results are unpredictable. + +For information on other intrinsics with the same name: +@xref{FPut Intrinsic (subroutine)}. + +@end ifset +@ifset familyF2U +@node FPutC Intrinsic (subroutine) +@subsubsection FPutC Intrinsic (subroutine) +@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(KIND=1)}; OPTIONAL; scalar; INTENT(OUT). + +@noindent +Intrinsic groups: @code{unix}. + +@noindent +Description: + +Writes the single character @var{Unit} in stream mode to unit 6 +(by-passing normal formatted output) using @code{putc(3)}. +Returns in +@var{C} 0 on success, the error code from @code{ferror(3)} otherwise. + +Stream I/O should not be mixed with normal record-oriented (formatted or +unformatted) I/O on the same unit; the results are unpredictable. + +For information on other intrinsics with the same name: +@xref{FPutC Intrinsic (function)}. + +@end ifset +@ifset familyBADU77 +@node FPutC Intrinsic (function) +@subsubsection FPutC Intrinsic (function) +@cindex FPutC intrinsic +@cindex intrinsics, FPutC + +@noindent +@example +FPutC(@var{Unit}, @var{C}) +@end example + +@noindent +FPutC: @code{INTEGER(KIND=1)} function. + +@noindent +@var{Unit}: @code{INTEGER}; scalar; INTENT(IN). + +@noindent +@var{C}: @code{CHARACTER}; scalar; INTENT(IN). + +@noindent +Intrinsic groups: @code{badu77}. + +@noindent +Description: + +Writes the single character @var{C} in stream mode to unit @var{Unit} +(by-passing normal formatted output) using @code{putc(3)}. +Returns 0 on +success, the error code from @code{ferror(3)} otherwise. + +Stream I/O should not be mixed with normal record-oriented (formatted or +unformatted) I/O on the same unit; the results are unpredictable. + +For information on other intrinsics with the same name: +@xref{FPutC Intrinsic (subroutine)}. + +@end ifset +@ifset familyF90 +@node Fraction Intrinsic +@subsubsection Fraction Intrinsic +@cindex Fraction intrinsic +@cindex intrinsics, Fraction + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL Fraction} to use this name for an +external procedure. + +@end ifset +@ifset familyF2U +@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 (subroutine) +@subsubsection FStat Intrinsic (subroutine) +@cindex FStat intrinsic +@cindex intrinsics, FStat + +@noindent +@example +CALL FStat(@var{Unit}, @var{SArray}, @var{Status}) +@end example + +@noindent +@var{Unit}: @code{INTEGER}; scalar; INTENT(IN). + +@noindent +@var{SArray}: @code{INTEGER(KIND=1)}; DIMENSION(13); INTENT(OUT). + +@noindent +@var{Status}: @code{INTEGER(KIND=1)}; OPTIONAL; scalar; 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. + +If the @var{Status} argument is supplied, it contains +0 on success or a non-zero error code upon return. + +Some non-GNU implementations of Fortran provide this intrinsic as +only a function, not as a subroutine, or do not support the +(optional) @var{Status} argument. + +For information on other intrinsics with the same name: +@xref{FStat Intrinsic (function)}. + +@node FStat Intrinsic (function) +@subsubsection FStat Intrinsic (function) +@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 or a non-zero error code. + +For information on other intrinsics with the same name: +@xref{FStat Intrinsic (subroutine)}. + +@node FTell Intrinsic (subroutine) +@subsubsection FTell Intrinsic (subroutine) +@cindex FTell intrinsic +@cindex intrinsics, FTell + +@noindent +@example +CALL FTell(@var{Unit}, @var{Offset}) +@end example + +@noindent +@var{Unit}: @code{INTEGER}; scalar; INTENT(IN). + +@noindent +@var{Offset}: @code{INTEGER(KIND=1)}; scalar; INTENT(OUT). + +@noindent +Intrinsic groups: @code{unix}. + +@noindent +Description: + +Sets @var{Offset} to the current offset of Fortran unit @var{Unit} +(or to @minus{}1 if @var{Unit} is not open). + +Some non-GNU implementations of Fortran provide this intrinsic as +only a function, not as a subroutine. + +For information on other intrinsics with the same name: +@xref{FTell Intrinsic (function)}. + +@node FTell Intrinsic (function) +@subsubsection FTell Intrinsic (function) +@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). + +For information on other intrinsics with the same name: +@xref{FTell Intrinsic (subroutine)}. + +@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 (subroutine) +@subsubsection GetCWD Intrinsic (subroutine) +@cindex GetCWD intrinsic +@cindex intrinsics, GetCWD + +@noindent +@example +CALL GetCWD(@var{Name}, @var{Status}) +@end example + +@noindent +@var{Name}: @code{CHARACTER}; scalar; INTENT(OUT). + +@noindent +@var{Status}: @code{INTEGER(KIND=1)}; OPTIONAL; scalar; INTENT(OUT). + +@noindent +Intrinsic groups: @code{unix}. + +@noindent +Description: + +Places the current working directory in @var{Name}. +If the @var{Status} argument is supplied, it contains 0 +success or a non-zero error code upon return +(@code{ENOSYS} if the system does not provide @code{getcwd(3)} +or @code{getwd(3)}). + +Some non-GNU implementations of Fortran provide this intrinsic as +only a function, not as a subroutine, or do not support the +(optional) @var{Status} argument. + +For information on other intrinsics with the same name: +@xref{GetCWD Intrinsic (function)}. + +@node GetCWD Intrinsic (function) +@subsubsection GetCWD Intrinsic (function) +@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 a non-zero error code +(@code{ENOSYS} if the system does not provide @code{getcwd(3)} +or @code{getwd(3)}). + +For information on other intrinsics with the same name: +@xref{GetCWD Intrinsic (subroutine)}. + +@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. +A null character (@samp{CHAR(0)}) marks the end of +the name in @var{Name}---otherwise, +trailing blanks in @var{Name} are ignored. + +@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 +Years since 1900 + +@item +Number of days since Sunday, range 0--6 + +@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 (subroutine) +@subsubsection HostNm Intrinsic (subroutine) +@cindex HostNm intrinsic +@cindex intrinsics, HostNm + +@noindent +@example +CALL HostNm(@var{Name}, @var{Status}) +@end example + +@noindent +@var{Name}: @code{CHARACTER}; scalar; INTENT(OUT). + +@noindent +@var{Status}: @code{INTEGER(KIND=1)}; OPTIONAL; scalar; INTENT(OUT). + +@noindent +Intrinsic groups: @code{unix}. + +@noindent +Description: + +Fills @var{Name} with the system's host name returned by +@code{gethostname(2)}. +If the @var{Status} argument is supplied, it contains +0 on success or a non-zero error code upon return +(@code{ENOSYS} if the system does not provide @code{gethostname(2)}). + +This intrinsic is not available on all systems. + +Some non-GNU implementations of Fortran provide this intrinsic as +only a function, not as a subroutine, or do not support the +(optional) @var{Status} argument. + +For information on other intrinsics with the same name: +@xref{HostNm Intrinsic (function)}. + +@node HostNm Intrinsic (function) +@subsubsection HostNm Intrinsic (function) +@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 a non-zero error code +(@code{ENOSYS} if the system does not provide @code{gethostname(2)}). + +This intrinsic is not available on all systems. + +For information on other intrinsics with the same name: +@xref{HostNm Intrinsic (subroutine)}. + +@end ifset +@ifset familyF90 +@node Huge Intrinsic +@subsubsection Huge Intrinsic +@cindex Huge intrinsic +@cindex intrinsics, Huge + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL Huge} to use this name for an +external procedure. + +@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 of this 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}. + +@noindent +Description: + +Returns the value of @var{I} with bit @var{Pos} cleared (set to +zero). +@xref{BTest Intrinsic} for information on bit positions. + +@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}. + +@noindent +Description: + +Extracts a subfield of length @var{Len} from @var{I}, starting from +bit position @var{Pos} and extending left for @var{Len} bits. +The result is right-justified and the remaining bits are zeroed. +The value +of @samp{@var{Pos}+@var{Len}} must be less than or equal to the value +@samp{BIT_SIZE(@var{I})}. +@xref{Bit_Size Intrinsic}. + +@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}. + +@noindent +Description: + +Returns the value of @var{I} with bit @var{Pos} set (to one). +@xref{BTest Intrinsic} for information on bit positions. + +@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. + +Note that no intrinsic exists to convert a printable +character string to a numerical value. +For example, there is no intrinsic that, given +the @code{CHARACTER} value @samp{'154'}, returns an +@code{INTEGER} or @code{REAL} value with the value @samp{154}. + +Instead, you can use internal-file I/O to do this kind +of conversion. +For example: + +@smallexample +INTEGER VALUE +CHARACTER*10 STRING +STRING = '154' +READ (STRING, '(I10)'), VALUE +PRINT *, VALUE +END +@end smallexample + +The above program, when run, prints: + +@smallexample + 154 +@end smallexample + +@xref{Char Intrinsic}, for the inverse of the @code{ICHAR} function. + +@xref{IAChar Intrinsic}, for the function corresponding +to the ASCII character set. + +@end ifset +@ifset familyF2U +@node IDate Intrinsic (UNIX) +@subsubsection IDate Intrinsic (UNIX) +@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. + +For information on other intrinsics with the same name: +@xref{IDate Intrinsic (VXT)}. + +@end ifset +@ifset familyVXT +@node IDate Intrinsic (VXT) +@subsubsection IDate Intrinsic (VXT) +@cindex IDate intrinsic +@cindex intrinsics, IDate + +@noindent +@example +CALL IDate(@var{M}, @var{D}, @var{Y}) +@end example + +@noindent +@var{M}: @code{INTEGER(KIND=1)}; scalar; INTENT(OUT). + +@noindent +@var{D}: @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 month (in the range 1--12) is returned in @var{M}, +the day (in the range 1--7) in @var{D}, +and the year in @var{Y} (in the range 0--99). + +This intrinsic is not recommended, due to the year 2000 approaching. + +For information on other intrinsics with the same name: +@xref{IDate Intrinsic (UNIX)}. + +@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). + +@noindent +Description: + +Archaic form of @code{IDIM()} that is specific +to one type for @var{X} and @var{Y}. +@xref{IDiM Intrinsic}. + +@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{REAL(KIND=1)}; 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}. + +@end ifset +@ifset familyVXT +@node IIAbs Intrinsic +@subsubsection IIAbs Intrinsic +@cindex IIAbs intrinsic +@cindex intrinsics, IIAbs + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL IIAbs} to use this name for an +external procedure. + +@node IIAnd Intrinsic +@subsubsection IIAnd Intrinsic +@cindex IIAnd intrinsic +@cindex intrinsics, IIAnd + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL IIAnd} to use this name for an +external procedure. + +@node IIBClr Intrinsic +@subsubsection IIBClr Intrinsic +@cindex IIBClr intrinsic +@cindex intrinsics, IIBClr + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL IIBClr} to use this name for an +external procedure. + +@node IIBits Intrinsic +@subsubsection IIBits Intrinsic +@cindex IIBits intrinsic +@cindex intrinsics, IIBits + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL IIBits} to use this name for an +external procedure. + +@node IIBSet Intrinsic +@subsubsection IIBSet Intrinsic +@cindex IIBSet intrinsic +@cindex intrinsics, IIBSet + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL IIBSet} to use this name for an +external procedure. + +@node IIDiM Intrinsic +@subsubsection IIDiM Intrinsic +@cindex IIDiM intrinsic +@cindex intrinsics, IIDiM + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL IIDiM} to use this name for an +external procedure. + +@node IIDInt Intrinsic +@subsubsection IIDInt Intrinsic +@cindex IIDInt intrinsic +@cindex intrinsics, IIDInt + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL IIDInt} to use this name for an +external procedure. + +@node IIDNnt Intrinsic +@subsubsection IIDNnt Intrinsic +@cindex IIDNnt intrinsic +@cindex intrinsics, IIDNnt + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL IIDNnt} to use this name for an +external procedure. + +@node IIEOr Intrinsic +@subsubsection IIEOr Intrinsic +@cindex IIEOr intrinsic +@cindex intrinsics, IIEOr + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL IIEOr} to use this name for an +external procedure. + +@node IIFix Intrinsic +@subsubsection IIFix Intrinsic +@cindex IIFix intrinsic +@cindex intrinsics, IIFix + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL IIFix} to use this name for an +external procedure. + +@node IInt Intrinsic +@subsubsection IInt Intrinsic +@cindex IInt intrinsic +@cindex intrinsics, IInt + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL IInt} to use this name for an +external procedure. + +@node IIOr Intrinsic +@subsubsection IIOr Intrinsic +@cindex IIOr intrinsic +@cindex intrinsics, IIOr + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL IIOr} to use this name for an +external procedure. + +@node IIQint Intrinsic +@subsubsection IIQint Intrinsic +@cindex IIQint intrinsic +@cindex intrinsics, IIQint + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL IIQint} to use this name for an +external procedure. + +@node IIQNnt Intrinsic +@subsubsection IIQNnt Intrinsic +@cindex IIQNnt intrinsic +@cindex intrinsics, IIQNnt + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL IIQNnt} to use this name for an +external procedure. + +@node IIShftC Intrinsic +@subsubsection IIShftC Intrinsic +@cindex IIShftC intrinsic +@cindex intrinsics, IIShftC + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL IIShftC} to use this name for an +external procedure. + +@node IISign Intrinsic +@subsubsection IISign Intrinsic +@cindex IISign intrinsic +@cindex intrinsics, IISign + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL IISign} to use this name for an +external procedure. + +@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 familyVXT +@node IMax0 Intrinsic +@subsubsection IMax0 Intrinsic +@cindex IMax0 intrinsic +@cindex intrinsics, IMax0 + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL IMax0} to use this name for an +external procedure. + +@node IMax1 Intrinsic +@subsubsection IMax1 Intrinsic +@cindex IMax1 intrinsic +@cindex intrinsics, IMax1 + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL IMax1} to use this name for an +external procedure. + +@node IMin0 Intrinsic +@subsubsection IMin0 Intrinsic +@cindex IMin0 intrinsic +@cindex intrinsics, IMin0 + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL IMin0} to use this name for an +external procedure. + +@node IMin1 Intrinsic +@subsubsection IMin1 Intrinsic +@cindex IMin1 intrinsic +@cindex intrinsics, IMin1 + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL IMin1} to use this name for an +external procedure. + +@node IMod Intrinsic +@subsubsection IMod Intrinsic +@cindex IMod intrinsic +@cindex intrinsics, IMod + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL IMod} to use this name for an +external procedure. + +@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). + +@noindent +Description: + +Returns the position of the start of the first occurrence of string +@var{Substring} as a substring in @var{String}, counting from one. +If @var{Substring} doesn't occur in @var{String}, zero is returned. + +@end ifset +@ifset familyVXT +@node INInt Intrinsic +@subsubsection INInt Intrinsic +@cindex INInt intrinsic +@cindex intrinsics, INInt + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL INInt} to use this name for an +external procedure. + +@node INot Intrinsic +@subsubsection INot Intrinsic +@cindex INot intrinsic +@cindex intrinsics, INot + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL INot} to use this name for an +external procedure. + +@end ifset +@ifset familyF77 +@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, and its imaginary part is disregarded. + +@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 familyGNU +@node Int2 Intrinsic +@subsubsection Int2 Intrinsic +@cindex Int2 intrinsic +@cindex intrinsics, Int2 + +@noindent +@example +Int2(@var{A}) +@end example + +@noindent +Int2: @code{INTEGER(KIND=6)} function. + +@noindent +@var{A}: @code{INTEGER}; scalar; INTENT(IN). + +@noindent +Intrinsic groups: @code{gnu}. + +@noindent +Description: + +Returns @var{A} with the fractional portion of its +magnitude truncated and its sign preserved, converted +to type @code{INTEGER(KIND=6)}. + +If @var{A} is type @code{COMPLEX}, its real part +is truncated and converted, and its imaginary part is disgregarded. + +@xref{Int Intrinsic}. + +The precise meaning of this intrinsic might change +in a future version of the GNU Fortran language, +as more is learned about how it is used. + +@node Int8 Intrinsic +@subsubsection Int8 Intrinsic +@cindex Int8 intrinsic +@cindex intrinsics, Int8 + +@noindent +@example +Int8(@var{A}) +@end example + +@noindent +Int8: @code{INTEGER(KIND=2)} function. + +@noindent +@var{A}: @code{INTEGER}; scalar; INTENT(IN). + +@noindent +Intrinsic groups: @code{gnu}. + +@noindent +Description: + +Returns @var{A} with the fractional portion of its +magnitude truncated and its sign preserved, converted +to type @code{INTEGER(KIND=2)}. + +If @var{A} is type @code{COMPLEX}, its real part +is truncated and converted, and its imaginary part is disgregarded. + +@xref{Int Intrinsic}. + +The precise meaning of this intrinsic might change +in a future version of the GNU Fortran language, +as more is learned about how it is used. + +@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}. + +@noindent +Description: + +All bits representing @var{I} are shifted @var{Shift} places. +@samp{@var{Shift}.GT.0} indicates a left shift, @samp{@var{Shift}.EQ.0} +indicates no shift and @samp{@var{Shift}.LT.0} indicates a right shift. +If the absolute value of the shift count is greater than +@samp{BIT_SIZE(@var{I})}, the result is undefined. +Bits shifted out from the left end or the right end, as the case may be, +are lost. +Zeros are shifted in from the opposite end. + +@xref{IShftC Intrinsic} for the circular-shift equivalent. + +@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}. + +@noindent +Description: + +The rightmost @var{Size} bits of the argument @var{I} +are shifted circularly @var{Shift} +places, i.e.@ the bits shifted out of one end are shifted into +the opposite end. +No bits are lost. +The unshifted bits of the result are the same as +the unshifted bits of @var{I}. +The absolute value of the argument @var{Shift} +must be less than or equal to @var{Size}. +The value of @var{Size} must be greater than or equal to one and less than +or equal to @samp{BIT_SIZE(@var{I})}. + +@xref{IShft Intrinsic} for the logical shift equivalent. + +@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). + +@noindent +Description: + +Archaic form of @code{ISIGN()} that is specific +to one type for @var{A} and @var{B}. +@xref{ISign Intrinsic}. + +@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. + +@end ifset +@ifset familyVXT +@node IZExt Intrinsic +@subsubsection IZExt Intrinsic +@cindex IZExt intrinsic +@cindex intrinsics, IZExt + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL IZExt} to use this name for an +external procedure. + +@node JIAbs Intrinsic +@subsubsection JIAbs Intrinsic +@cindex JIAbs intrinsic +@cindex intrinsics, JIAbs + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL JIAbs} to use this name for an +external procedure. + +@node JIAnd Intrinsic +@subsubsection JIAnd Intrinsic +@cindex JIAnd intrinsic +@cindex intrinsics, JIAnd + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL JIAnd} to use this name for an +external procedure. + +@node JIBClr Intrinsic +@subsubsection JIBClr Intrinsic +@cindex JIBClr intrinsic +@cindex intrinsics, JIBClr + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL JIBClr} to use this name for an +external procedure. + +@node JIBits Intrinsic +@subsubsection JIBits Intrinsic +@cindex JIBits intrinsic +@cindex intrinsics, JIBits + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL JIBits} to use this name for an +external procedure. + +@node JIBSet Intrinsic +@subsubsection JIBSet Intrinsic +@cindex JIBSet intrinsic +@cindex intrinsics, JIBSet + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL JIBSet} to use this name for an +external procedure. + +@node JIDiM Intrinsic +@subsubsection JIDiM Intrinsic +@cindex JIDiM intrinsic +@cindex intrinsics, JIDiM + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL JIDiM} to use this name for an +external procedure. + +@node JIDInt Intrinsic +@subsubsection JIDInt Intrinsic +@cindex JIDInt intrinsic +@cindex intrinsics, JIDInt + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL JIDInt} to use this name for an +external procedure. + +@node JIDNnt Intrinsic +@subsubsection JIDNnt Intrinsic +@cindex JIDNnt intrinsic +@cindex intrinsics, JIDNnt + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL JIDNnt} to use this name for an +external procedure. + +@node JIEOr Intrinsic +@subsubsection JIEOr Intrinsic +@cindex JIEOr intrinsic +@cindex intrinsics, JIEOr + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL JIEOr} to use this name for an +external procedure. + +@node JIFix Intrinsic +@subsubsection JIFix Intrinsic +@cindex JIFix intrinsic +@cindex intrinsics, JIFix + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL JIFix} to use this name for an +external procedure. + +@node JInt Intrinsic +@subsubsection JInt Intrinsic +@cindex JInt intrinsic +@cindex intrinsics, JInt + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL JInt} to use this name for an +external procedure. + +@node JIOr Intrinsic +@subsubsection JIOr Intrinsic +@cindex JIOr intrinsic +@cindex intrinsics, JIOr + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL JIOr} to use this name for an +external procedure. + +@node JIQint Intrinsic +@subsubsection JIQint Intrinsic +@cindex JIQint intrinsic +@cindex intrinsics, JIQint + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL JIQint} to use this name for an +external procedure. + +@node JIQNnt Intrinsic +@subsubsection JIQNnt Intrinsic +@cindex JIQNnt intrinsic +@cindex intrinsics, JIQNnt + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL JIQNnt} to use this name for an +external procedure. + +@node JIShft Intrinsic +@subsubsection JIShft Intrinsic +@cindex JIShft intrinsic +@cindex intrinsics, JIShft + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL JIShft} to use this name for an +external procedure. + +@node JIShftC Intrinsic +@subsubsection JIShftC Intrinsic +@cindex JIShftC intrinsic +@cindex intrinsics, JIShftC + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL JIShftC} to use this name for an +external procedure. + +@node JISign Intrinsic +@subsubsection JISign Intrinsic +@cindex JISign intrinsic +@cindex intrinsics, JISign + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL JISign} to use this name for an +external procedure. + +@node JMax0 Intrinsic +@subsubsection JMax0 Intrinsic +@cindex JMax0 intrinsic +@cindex intrinsics, JMax0 + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL JMax0} to use this name for an +external procedure. + +@node JMax1 Intrinsic +@subsubsection JMax1 Intrinsic +@cindex JMax1 intrinsic +@cindex intrinsics, JMax1 + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL JMax1} to use this name for an +external procedure. + +@node JMin0 Intrinsic +@subsubsection JMin0 Intrinsic +@cindex JMin0 intrinsic +@cindex intrinsics, JMin0 + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL JMin0} to use this name for an +external procedure. + +@node JMin1 Intrinsic +@subsubsection JMin1 Intrinsic +@cindex JMin1 intrinsic +@cindex intrinsics, JMin1 + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL JMin1} to use this name for an +external procedure. + +@node JMod Intrinsic +@subsubsection JMod Intrinsic +@cindex JMod intrinsic +@cindex intrinsics, JMod + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL JMod} to use this name for an +external procedure. + +@node JNInt Intrinsic +@subsubsection JNInt Intrinsic +@cindex JNInt intrinsic +@cindex intrinsics, JNInt + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL JNInt} to use this name for an +external procedure. + +@node JNot Intrinsic +@subsubsection JNot Intrinsic +@cindex JNot intrinsic +@cindex intrinsics, JNot + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL JNot} to use this name for an +external procedure. + +@node JZExt Intrinsic +@subsubsection JZExt Intrinsic +@cindex JZExt intrinsic +@cindex intrinsics, JZExt + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL JZExt} to use this name for an +external procedure. + +@end ifset +@ifset familyF2U +@node Kill Intrinsic (subroutine) +@subsubsection Kill Intrinsic (subroutine) +@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(KIND=1)}; OPTIONAL; scalar; INTENT(OUT). + +@noindent +Intrinsic groups: @code{unix}. + +@noindent +Description: + +Sends the signal specified by @var{Signal} to the process @var{Pid}. +If the @var{Status} argument is supplied, it contains +0 on success or a non-zero error code upon return. +See @code{kill(2)}. + +Some non-GNU implementations of Fortran provide this intrinsic as +only a function, not as a subroutine, or do not support the +(optional) @var{Status} argument. + +For information on other intrinsics with the same name: +@xref{Kill Intrinsic (function)}. + +@end ifset +@ifset familyBADU77 +@node Kill Intrinsic (function) +@subsubsection Kill Intrinsic (function) +@cindex Kill intrinsic +@cindex intrinsics, Kill + +@noindent +@example +Kill(@var{Pid}, @var{Signal}) +@end example + +@noindent +Kill: @code{INTEGER(KIND=1)} function. + +@noindent +@var{Pid}: @code{INTEGER}; scalar; INTENT(IN). + +@noindent +@var{Signal}: @code{INTEGER}; scalar; INTENT(IN). + +@noindent +Intrinsic groups: @code{badu77}. + +@noindent +Description: + +Sends the signal specified by @var{Signal} to the process @var{Pid}. +Returns 0 on success or a non-zero error code. +See @code{kill(2)}. + +Due to the side effects performed by this intrinsic, the function +form is not recommended. + +For information on other intrinsics with the same name: +@xref{Kill Intrinsic (subroutine)}. + +@end ifset +@ifset familyF90 +@node Kind Intrinsic +@subsubsection Kind Intrinsic +@cindex Kind intrinsic +@cindex intrinsics, Kind + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL Kind} to use this name for an +external procedure. + +@node LBound Intrinsic +@subsubsection LBound Intrinsic +@cindex LBound intrinsic +@cindex intrinsics, LBound + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL LBound} to use this name for an +external procedure. + +@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). + +@noindent +Description: + +Returns the length of @var{String}. + +If @var{String} is an array, the length of an element +of @var{String} is returned. + +Note that @var{String} need not be defined when this +intrinsic is invoked, since only the length, not +the content, of @var{String} is needed. + +@xref{Bit_Size Intrinsic}, for the function that determines +the size of its argument in bits. + +@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). + +@noindent +Description: + +Returns @samp{.TRUE.} if @samp{@var{String_A}.GE.@var{String_B}}, +@samp{.FALSE.} otherwise. +@var{String_A} and @var{String_B} are interpreted as containing +ASCII character codes. +If either value contains a character not in the ASCII +character set, the result is processor dependent. + +If the @var{String_A} and @var{String_B} are not the same length, +the shorter is compared as if spaces were appended to +it to form a value that has the same length as the longer. + +The lexical comparison intrinsics @code{LGe}, @code{LGt}, +@code{LLe}, and @code{LLt} differ from the corresponding +intrinsic operators @code{.GE.}, @code{.GT.}, +@code{.LE.}, @code{.LT.}. +Because the ASCII collating sequence is assumed, +the following expressions always return @samp{.TRUE.}: + +@smallexample +LGE ('0', ' ') +LGE ('A', '0') +LGE ('a', 'A') +@end smallexample + +The following related expressions do @emph{not} always +return @samp{.TRUE.}, as they are not necessarily evaluated +assuming the arguments use ASCII encoding: + +@smallexample +'0' .GE. ' ' +'A' .GE. '0' +'a' .GE. 'A' +@end smallexample + +The same difference exists +between @code{LGt} and @code{.GT.}; +between @code{LLe} and @code{.LE.}; and +between @code{LLt} and @code{.LT.}. + +@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). + +@noindent +Description: + +Returns @samp{.TRUE.} if @samp{@var{String_A}.GT.@var{String_B}}, +@samp{.FALSE.} otherwise. +@var{String_A} and @var{String_B} are interpreted as containing +ASCII character codes. +If either value contains a character not in the ASCII +character set, the result is processor dependent. + +If the @var{String_A} and @var{String_B} are not the same length, +the shorter is compared as if spaces were appended to +it to form a value that has the same length as the longer. + +@xref{LGe Intrinsic}, for information on the distinction +between the @code{LGT} intrinsic and the @code{.GT.} +operator. + +@end ifset +@ifset familyF2U +@node Link Intrinsic (subroutine) +@subsubsection Link Intrinsic (subroutine) +@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(KIND=1)}; OPTIONAL; scalar; INTENT(OUT). + +@noindent +Intrinsic groups: @code{unix}. + +@noindent +Description: + +Makes a (hard) link from file @var{Path1} to @var{Path2}. +A null character (@samp{CHAR(0)}) marks the end of +the names in @var{Path1} and @var{Path2}---otherwise, +trailing blanks in @var{Path1} and @var{Path2} are ignored. +If the @var{Status} argument is supplied, it contains +0 on success or a non-zero error code upon return. +See @code{link(2)}. + +Some non-GNU implementations of Fortran provide this intrinsic as +only a function, not as a subroutine, or do not support the +(optional) @var{Status} argument. + +For information on other intrinsics with the same name: +@xref{Link Intrinsic (function)}. + +@end ifset +@ifset familyBADU77 +@node Link Intrinsic (function) +@subsubsection Link Intrinsic (function) +@cindex Link intrinsic +@cindex intrinsics, Link + +@noindent +@example +Link(@var{Path1}, @var{Path2}) +@end example + +@noindent +Link: @code{INTEGER(KIND=1)} function. + +@noindent +@var{Path1}: @code{CHARACTER}; scalar; INTENT(IN). + +@noindent +@var{Path2}: @code{CHARACTER}; scalar; INTENT(IN). + +@noindent +Intrinsic groups: @code{badu77}. + +@noindent +Description: + +Makes a (hard) link from file @var{Path1} to @var{Path2}. +A null character (@samp{CHAR(0)}) marks the end of +the names in @var{Path1} and @var{Path2}---otherwise, +trailing blanks in @var{Path1} and @var{Path2} are ignored. +Returns 0 on success or a non-zero error code. +See @code{link(2)}. + +Due to the side effects performed by this intrinsic, the function +form is not recommended. + +For information on other intrinsics with the same name: +@xref{Link Intrinsic (subroutine)}. + +@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). + +@noindent +Description: + +Returns @samp{.TRUE.} if @samp{@var{String_A}.LE.@var{String_B}}, +@samp{.FALSE.} otherwise. +@var{String_A} and @var{String_B} are interpreted as containing +ASCII character codes. +If either value contains a character not in the ASCII +character set, the result is processor dependent. + +If the @var{String_A} and @var{String_B} are not the same length, +the shorter is compared as if spaces were appended to +it to form a value that has the same length as the longer. + +@xref{LGe Intrinsic}, for information on the distinction +between the @code{LLE} intrinsic and the @code{.LE.} +operator. + +@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). + +@noindent +Description: + +Returns @samp{.TRUE.} if @samp{@var{String_A}.LT.@var{String_B}}, +@samp{.FALSE.} otherwise. +@var{String_A} and @var{String_B} are interpreted as containing +ASCII character codes. +If either value contains a character not in the ASCII +character set, the result is processor dependent. + +If the @var{String_A} and @var{String_B} are not the same length, +the shorter is compared as if spaces were appended to +it to form a value that has the same length as the longer. + +@xref{LGe Intrinsic}, for information on the distinction +between the @code{LLT} intrinsic and the @code{.LT.} +operator. + +@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 of this 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 of this function is @samp{10. ** LOG10(@var{X})}. + +@xref{Log Intrinsic}, for the natural logarithm function. + +@end ifset +@ifset familyF90 +@node Logical Intrinsic +@subsubsection Logical Intrinsic +@cindex Logical intrinsic +@cindex intrinsics, Logical + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL Logical} to use this name for an +external procedure. + +@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(KIND=6)}; scalar; INTENT(IN). + +@noindent +Intrinsic groups: @code{unix}. + +@noindent +Description: + +Archaic form of @code{INT()} that is specific +to one type for @var{A}. +@xref{Int Intrinsic}. + +The precise meaning of this intrinsic might change +in a future version of the GNU Fortran language, +as more is learned about how it is used. + +@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}. + +@noindent +Description: + +Returns @var{I} shifted to the left +@var{Shift} bits. + +Although similar to the expression +@samp{@var{I}*(2**@var{Shift})}, there +are important differences. +For example, the sign of the result is +not necessarily the same as the sign of +@var{I}. + +Currently this intrinsic is defined assuming +the underlying representation of @var{I} +is as a two's-complement integer. +It is unclear at this point whether that +definition will apply when a different +representation is involved. + +@xref{LShift Intrinsic}, for the inverse of this function. + +@xref{IShft Intrinsic}, for information +on a more widely available left-shifting +intrinsic that is also more precisely defined. + +@end ifset +@ifset familyF2U +@node LStat Intrinsic (subroutine) +@subsubsection LStat Intrinsic (subroutine) +@cindex LStat intrinsic +@cindex intrinsics, LStat + +@noindent +@example +CALL LStat(@var{File}, @var{SArray}, @var{Status}) +@end example + +@noindent +@var{File}: @code{CHARACTER}; scalar; INTENT(IN). + +@noindent +@var{SArray}: @code{INTEGER(KIND=1)}; DIMENSION(13); INTENT(OUT). + +@noindent +@var{Status}: @code{INTEGER(KIND=1)}; OPTIONAL; scalar; INTENT(OUT). + +@noindent +Intrinsic groups: @code{unix}. + +@noindent +Description: + +Obtains data about the given file @var{File} and places them in the array +@var{SArray}. +A null character (@samp{CHAR(0)}) marks the end of +the name in @var{File}---otherwise, +trailing blanks in @var{File} are ignored. +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. + +If the @var{Status} argument is supplied, it contains +0 on success or a non-zero error code upon return +(@code{ENOSYS} if the system does not provide @code{lstat(2)}). + +Some non-GNU implementations of Fortran provide this intrinsic as +only a function, not as a subroutine, or do not support the +(optional) @var{Status} argument. + +For information on other intrinsics with the same name: +@xref{LStat Intrinsic (function)}. + +@node LStat Intrinsic (function) +@subsubsection LStat Intrinsic (function) +@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 file @var{File} and places them in the array +@var{SArray}. +A null character (@samp{CHAR(0)}) marks the end of +the name in @var{File}---otherwise, +trailing blanks in @var{File} are ignored. +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 or a non-zero error code +(@code{ENOSYS} if the system does not provide @code{lstat(2)}). + +For information on other intrinsics with the same name: +@xref{LStat Intrinsic (subroutine)}. + +@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 +Years since 1900 + +@item +Number of days since Sunday, range 0--6 + +@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 familyF90 +@node MatMul Intrinsic +@subsubsection MatMul Intrinsic +@cindex MatMul intrinsic +@cindex intrinsics, MatMul + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL MatMul} to use this name for an +external procedure. + +@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 familyF90 +@node MaxExponent Intrinsic +@subsubsection MaxExponent Intrinsic +@cindex MaxExponent intrinsic +@cindex intrinsics, MaxExponent + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL MaxExponent} to use this name for an +external procedure. + +@node MaxLoc Intrinsic +@subsubsection MaxLoc Intrinsic +@cindex MaxLoc intrinsic +@cindex intrinsics, MaxLoc + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL MaxLoc} to use this name for an +external procedure. + +@node MaxVal Intrinsic +@subsubsection MaxVal Intrinsic +@cindex MaxVal intrinsic +@cindex intrinsics, MaxVal + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL MaxVal} to use this name for an +external procedure. + +@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=1)} function. + +@noindent +Intrinsic groups: @code{unix}. + +@noindent +Description: + +Returns the number of clock ticks since the start of the process. +Supported on systems with @code{clock(3)} (q.v.). + +This intrinsic is not fully portable, such as to systems +with 32-bit @code{INTEGER} types but supporting times +wider than 32 bits. +@xref{MClock8 Intrinsic}, for information on a +similar intrinsic that might be portable to more +GNU Fortran implementations, though to fewer +Fortran compilers. + +If the system does not support @code{clock(3)}, +-1 is returned. + +@node MClock8 Intrinsic +@subsubsection MClock8 Intrinsic +@cindex MClock8 intrinsic +@cindex intrinsics, MClock8 + +@noindent +@example +MClock8() +@end example + +@noindent +MClock8: @code{INTEGER(KIND=2)} function. + +@noindent +Intrinsic groups: @code{unix}. + +@noindent +Description: + +Returns the number of clock ticks since the start of the process. +Supported on systems with @code{clock(3)} (q.v.). + +No Fortran implementations other than GNU Fortran are +known to support this intrinsic at the time of this +writing. +@xref{MClock Intrinsic}, for information on a +similar intrinsic that might be portable to more Fortran +compilers, though to fewer GNU Fortran implementations. + +If the system does not support @code{clock(3)}, +-1 is returned. + +@end ifset +@ifset familyF90 +@node Merge Intrinsic +@subsubsection Merge Intrinsic +@cindex Merge intrinsic +@cindex intrinsics, Merge + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL Merge} to use this name for an +external procedure. + +@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}. + +@end ifset +@ifset familyF90 +@node MinExponent Intrinsic +@subsubsection MinExponent Intrinsic +@cindex MinExponent intrinsic +@cindex intrinsics, MinExponent + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL MinExponent} to use this name for an +external procedure. + +@node MinLoc Intrinsic +@subsubsection MinLoc Intrinsic +@cindex MinLoc intrinsic +@cindex intrinsics, MinLoc + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL MinLoc} to use this name for an +external procedure. + +@node MinVal Intrinsic +@subsubsection MinVal Intrinsic +@cindex MinVal intrinsic +@cindex intrinsics, MinVal + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL MinVal} to use this name for an +external procedure. + +@end ifset +@ifset familyF77 +@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 familyF90 +@node Modulo Intrinsic +@subsubsection Modulo Intrinsic +@cindex Modulo intrinsic +@cindex intrinsics, Modulo + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL Modulo} to use this name for an +external procedure. + +@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}. + +@noindent +Description: + +Moves @var{Len} bits from positions @var{FromPos} through +@samp{@var{FromPos}+@var{Len}-1} of @var{From} to positions @var{ToPos} through +@samp{@var{FromPos}+@var{Len}-1} of @var{TO}. The portion of argument +@var{TO} not affected by the movement of bits is unchanged. Arguments +@var{From} and @var{TO} are permitted to be the same numeric storage +unit. The values of @samp{@var{FromPos}+@var{Len}} and +@samp{@var{ToPos}+@var{Len}} must be less than or equal to +@samp{BIT_SIZE(@var{From})}. + +@end ifset +@ifset familyF90 +@node Nearest Intrinsic +@subsubsection Nearest Intrinsic +@cindex Nearest intrinsic +@cindex intrinsics, Nearest + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL Nearest} to use this name for an +external procedure. + +@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 familyF90 +@node Pack Intrinsic +@subsubsection Pack Intrinsic +@cindex Pack intrinsic +@cindex intrinsics, Pack + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL Pack} to use this name for an +external procedure. + +@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)}. + +@end ifset +@ifset familyF90 +@node Precision Intrinsic +@subsubsection Precision Intrinsic +@cindex Precision intrinsic +@cindex intrinsics, Precision + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL Precision} to use this name for an +external procedure. + +@node Present Intrinsic +@subsubsection Present Intrinsic +@cindex Present intrinsic +@cindex intrinsics, Present + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL Present} to use this name for an +external procedure. + +@node Product Intrinsic +@subsubsection Product Intrinsic +@cindex Product intrinsic +@cindex intrinsics, Product + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL Product} to use this name for an +external procedure. + +@end ifset +@ifset familyVXT +@node QAbs Intrinsic +@subsubsection QAbs Intrinsic +@cindex QAbs intrinsic +@cindex intrinsics, QAbs + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL QAbs} to use this name for an +external procedure. + +@node QACos Intrinsic +@subsubsection QACos Intrinsic +@cindex QACos intrinsic +@cindex intrinsics, QACos + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL QACos} to use this name for an +external procedure. + +@node QACosD Intrinsic +@subsubsection QACosD Intrinsic +@cindex QACosD intrinsic +@cindex intrinsics, QACosD + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL QACosD} to use this name for an +external procedure. + +@node QASin Intrinsic +@subsubsection QASin Intrinsic +@cindex QASin intrinsic +@cindex intrinsics, QASin + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL QASin} to use this name for an +external procedure. + +@node QASinD Intrinsic +@subsubsection QASinD Intrinsic +@cindex QASinD intrinsic +@cindex intrinsics, QASinD + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL QASinD} to use this name for an +external procedure. + +@node QATan Intrinsic +@subsubsection QATan Intrinsic +@cindex QATan intrinsic +@cindex intrinsics, QATan + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL QATan} to use this name for an +external procedure. + +@node QATan2 Intrinsic +@subsubsection QATan2 Intrinsic +@cindex QATan2 intrinsic +@cindex intrinsics, QATan2 + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL QATan2} to use this name for an +external procedure. + +@node QATan2D Intrinsic +@subsubsection QATan2D Intrinsic +@cindex QATan2D intrinsic +@cindex intrinsics, QATan2D + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL QATan2D} to use this name for an +external procedure. + +@node QATanD Intrinsic +@subsubsection QATanD Intrinsic +@cindex QATanD intrinsic +@cindex intrinsics, QATanD + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL QATanD} to use this name for an +external procedure. + +@node QCos Intrinsic +@subsubsection QCos Intrinsic +@cindex QCos intrinsic +@cindex intrinsics, QCos + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL QCos} to use this name for an +external procedure. + +@node QCosD Intrinsic +@subsubsection QCosD Intrinsic +@cindex QCosD intrinsic +@cindex intrinsics, QCosD + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL QCosD} to use this name for an +external procedure. + +@node QCosH Intrinsic +@subsubsection QCosH Intrinsic +@cindex QCosH intrinsic +@cindex intrinsics, QCosH + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL QCosH} to use this name for an +external procedure. + +@node QDiM Intrinsic +@subsubsection QDiM Intrinsic +@cindex QDiM intrinsic +@cindex intrinsics, QDiM + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL QDiM} to use this name for an +external procedure. + +@node QExp Intrinsic +@subsubsection QExp Intrinsic +@cindex QExp intrinsic +@cindex intrinsics, QExp + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL QExp} to use this name for an +external procedure. + +@node QExt Intrinsic +@subsubsection QExt Intrinsic +@cindex QExt intrinsic +@cindex intrinsics, QExt + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL QExt} to use this name for an +external procedure. + +@node QExtD Intrinsic +@subsubsection QExtD Intrinsic +@cindex QExtD intrinsic +@cindex intrinsics, QExtD + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL QExtD} to use this name for an +external procedure. + +@node QFloat Intrinsic +@subsubsection QFloat Intrinsic +@cindex QFloat intrinsic +@cindex intrinsics, QFloat + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL QFloat} to use this name for an +external procedure. + +@node QInt Intrinsic +@subsubsection QInt Intrinsic +@cindex QInt intrinsic +@cindex intrinsics, QInt + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL QInt} to use this name for an +external procedure. + +@node QLog Intrinsic +@subsubsection QLog Intrinsic +@cindex QLog intrinsic +@cindex intrinsics, QLog + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL QLog} to use this name for an +external procedure. + +@node QLog10 Intrinsic +@subsubsection QLog10 Intrinsic +@cindex QLog10 intrinsic +@cindex intrinsics, QLog10 + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL QLog10} to use this name for an +external procedure. + +@node QMax1 Intrinsic +@subsubsection QMax1 Intrinsic +@cindex QMax1 intrinsic +@cindex intrinsics, QMax1 + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL QMax1} to use this name for an +external procedure. + +@node QMin1 Intrinsic +@subsubsection QMin1 Intrinsic +@cindex QMin1 intrinsic +@cindex intrinsics, QMin1 + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL QMin1} to use this name for an +external procedure. + +@node QMod Intrinsic +@subsubsection QMod Intrinsic +@cindex QMod intrinsic +@cindex intrinsics, QMod + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL QMod} to use this name for an +external procedure. + +@node QNInt Intrinsic +@subsubsection QNInt Intrinsic +@cindex QNInt intrinsic +@cindex intrinsics, QNInt + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL QNInt} to use this name for an +external procedure. + +@node QSin Intrinsic +@subsubsection QSin Intrinsic +@cindex QSin intrinsic +@cindex intrinsics, QSin + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL QSin} to use this name for an +external procedure. + +@node QSinD Intrinsic +@subsubsection QSinD Intrinsic +@cindex QSinD intrinsic +@cindex intrinsics, QSinD + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL QSinD} to use this name for an +external procedure. + +@node QSinH Intrinsic +@subsubsection QSinH Intrinsic +@cindex QSinH intrinsic +@cindex intrinsics, QSinH + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL QSinH} to use this name for an +external procedure. + +@node QSqRt Intrinsic +@subsubsection QSqRt Intrinsic +@cindex QSqRt intrinsic +@cindex intrinsics, QSqRt + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL QSqRt} to use this name for an +external procedure. + +@node QTan Intrinsic +@subsubsection QTan Intrinsic +@cindex QTan intrinsic +@cindex intrinsics, QTan + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL QTan} to use this name for an +external procedure. + +@node QTanD Intrinsic +@subsubsection QTanD Intrinsic +@cindex QTanD intrinsic +@cindex intrinsics, QTanD + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL QTanD} to use this name for an +external procedure. + +@node QTanH Intrinsic +@subsubsection QTanH Intrinsic +@cindex QTanH intrinsic +@cindex intrinsics, QTanH + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL QTanH} to use this name for an +external procedure. + +@end ifset +@ifset familyF90 +@node Radix Intrinsic +@subsubsection Radix Intrinsic +@cindex Radix intrinsic +@cindex intrinsics, Radix + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL Radix} to use this name for an +external procedure. + +@end ifset +@ifset familyF2U +@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 familyF90 +@node Random_Number Intrinsic +@subsubsection Random_Number Intrinsic +@cindex Random_Number intrinsic +@cindex intrinsics, Random_Number + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL Random_Number} to use this name for an +external procedure. + +@node Random_Seed Intrinsic +@subsubsection Random_Seed Intrinsic +@cindex Random_Seed intrinsic +@cindex intrinsics, Random_Seed + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL Random_Seed} to use this name for an +external procedure. + +@node Range Intrinsic +@subsubsection Range Intrinsic +@cindex Range intrinsic +@cindex intrinsics, Range + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL Range} to use this name for an +external procedure. + +@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{RealPart Intrinsic}, for information on a GNU Fortran +intrinsic that extracts the real part of an arbitrary +@code{COMPLEX} value. + +@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 (subroutine) +@subsubsection Rename Intrinsic (subroutine) +@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(KIND=1)}; OPTIONAL; scalar; INTENT(OUT). + +@noindent +Intrinsic groups: @code{unix}. + +@noindent +Description: + +Renames the file @var{Path1} to @var{Path2}. +A null character (@samp{CHAR(0)}) marks the end of +the names in @var{Path1} and @var{Path2}---otherwise, +trailing blanks in @var{Path1} and @var{Path2} are ignored. +See @code{rename(2)}. +If the @var{Status} argument is supplied, it contains +0 on success or a non-zero error code upon return. + +Some non-GNU implementations of Fortran provide this intrinsic as +only a function, not as a subroutine, or do not support the +(optional) @var{Status} argument. + +For information on other intrinsics with the same name: +@xref{Rename Intrinsic (function)}. + +@end ifset +@ifset familyBADU77 +@node Rename Intrinsic (function) +@subsubsection Rename Intrinsic (function) +@cindex Rename intrinsic +@cindex intrinsics, Rename + +@noindent +@example +Rename(@var{Path1}, @var{Path2}) +@end example + +@noindent +Rename: @code{INTEGER(KIND=1)} function. + +@noindent +@var{Path1}: @code{CHARACTER}; scalar; INTENT(IN). + +@noindent +@var{Path2}: @code{CHARACTER}; scalar; INTENT(IN). + +@noindent +Intrinsic groups: @code{badu77}. + +@noindent +Description: + +Renames the file @var{Path1} to @var{Path2}. +A null character (@samp{CHAR(0)}) marks the end of +the names in @var{Path1} and @var{Path2}---otherwise, +trailing blanks in @var{Path1} and @var{Path2} are ignored. +See @code{rename(2)}. +Returns 0 on success or a non-zero error code. + +Due to the side effects performed by this intrinsic, the function +form is not recommended. + +For information on other intrinsics with the same name: +@xref{Rename Intrinsic (subroutine)}. + +@end ifset +@ifset familyF90 +@node Repeat Intrinsic +@subsubsection Repeat Intrinsic +@cindex Repeat intrinsic +@cindex intrinsics, Repeat + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL Repeat} to use this name for an +external procedure. + +@node Reshape Intrinsic +@subsubsection Reshape Intrinsic +@cindex Reshape intrinsic +@cindex intrinsics, Reshape + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL Reshape} to use this name for an +external procedure. + +@node RRSpacing Intrinsic +@subsubsection RRSpacing Intrinsic +@cindex RRSpacing intrinsic +@cindex intrinsics, RRSpacing + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL RRSpacing} to use this name for an +external procedure. + +@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}. + +@noindent +Description: + +Returns @var{I} shifted to the right +@var{Shift} bits. + +Although similar to the expression +@samp{@var{I}/(2**@var{Shift})}, there +are important differences. +For example, the sign of the result is +undefined. + +Currently this intrinsic is defined assuming +the underlying representation of @var{I} +is as a two's-complement integer. +It is unclear at this point whether that +definition will apply when a different +representation is involved. + +@xref{RShift Intrinsic}, for the inverse of this function. + +@xref{IShft Intrinsic}, for information +on a more widely available right-shifting +intrinsic that is also more precisely defined. + +@end ifset +@ifset familyF90 +@node Scale Intrinsic +@subsubsection Scale Intrinsic +@cindex Scale intrinsic +@cindex intrinsics, Scale + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL Scale} to use this name for an +external procedure. + +@node Scan Intrinsic +@subsubsection Scan Intrinsic +@cindex Scan intrinsic +@cindex intrinsics, Scan + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL Scan} to use this name for an +external procedure. + +@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 (function) +@subsubsection Second Intrinsic (function) +@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's runtime in seconds---the same value as the +UNIX function @code{etime} returns. + +This routine is known from Cray Fortran. + +For information on other intrinsics with the same name: +@xref{Second Intrinsic (subroutine)}. + +@node Second Intrinsic (subroutine) +@subsubsection Second Intrinsic (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's runtime in seconds in @var{Seconds}---the same value +as the UNIX function @code{etime} returns. + +This routine is known from Cray Fortran. @xref{Cpu_Time Intrinsic} +for a standard equivalent. + +For information on other intrinsics with the same name: +@xref{Second Intrinsic (function)}. + +@end ifset +@ifset familyF90 +@node Selected_Int_Kind Intrinsic +@subsubsection Selected_Int_Kind Intrinsic +@cindex Selected_Int_Kind intrinsic +@cindex intrinsics, Selected_Int_Kind + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL Selected_Int_Kind} to use this name for an +external procedure. + +@node Selected_Real_Kind Intrinsic +@subsubsection Selected_Real_Kind Intrinsic +@cindex Selected_Real_Kind intrinsic +@cindex intrinsics, Selected_Real_Kind + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL Selected_Real_Kind} to use this name for an +external procedure. + +@node Set_Exponent Intrinsic +@subsubsection Set_Exponent Intrinsic +@cindex Set_Exponent intrinsic +@cindex intrinsics, Set_Exponent + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL Set_Exponent} to use this name for an +external procedure. + +@node Shape Intrinsic +@subsubsection Shape Intrinsic +@cindex Shape intrinsic +@cindex intrinsics, Shape + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL Shape} to use this name for an +external procedure. + +@end ifset +@ifset familyF2U +@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}. + +@noindent +Description: + +Returns @var{A} with the fractional portion of its +magnitude truncated and its sign preserved, converted +to type @code{INTEGER(KIND=6)}. + +If @var{A} is type @code{COMPLEX}, its real part +is truncated and converted, and its imaginary part is disgregarded. + +@xref{Int Intrinsic}. + +The precise meaning of this intrinsic might change +in a future version of the GNU Fortran language, +as more is learned about how it is used. + +@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). + +@noindent +Description: + +Returns @samp{ABS(@var{A})*@var{s}}, where +@var{s} is +1 if @samp{@var{B}.GE.0}, +-1 otherwise. + +@xref{Abs Intrinsic}, for the function that returns +the magnitude of a value. + +@end ifset +@ifset familyF2U +@node Signal Intrinsic (subroutine) +@subsubsection Signal Intrinsic (subroutine) +@cindex Signal intrinsic +@cindex intrinsics, Signal + +@noindent +@example +CALL Signal(@var{Number}, @var{Handler}, @var{Status}) +@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 +@var{Status}: @code{INTEGER(KIND=1)}; OPTIONAL; scalar; INTENT(OUT). + +@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 using C conventions, so its value in +Fortran terms is obtained by applying @code{%LOC()} (or @var{LOC()}) to it. + +The value returned by @code{signal(2)} is written to @var{Status}, if +that argument is supplied. +Otherwise the return value is ignored. + +Some non-GNU implementations of Fortran provide this intrinsic as +only a function, not as a subroutine, or do not support the +(optional) @var{Status} argument. + +For information on other intrinsics with the same name: +@xref{Signal Intrinsic (function)}. + +@end ifset +@ifset familyBADU77 +@node Signal Intrinsic (function) +@subsubsection Signal Intrinsic (function) +@cindex Signal intrinsic +@cindex intrinsics, Signal + +@noindent +@example +Signal(@var{Number}, @var{Handler}) +@end example + +@noindent +Signal: @code{INTEGER(KIND=1)} function. + +@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{badu77}. + +@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 using C conventions, so its value in +Fortran terms is obtained by applying @code{%LOC()} (or @var{LOC()}) to it. + +The value returned by @code{signal(2)} is returned. + +Due to the side effects performed by this intrinsic, the function +form is not recommended. + +For information on other intrinsics with the same name: +@xref{Signal Intrinsic (subroutine)}. + +@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). + +@noindent +Description: + +Returns the sine of @var{X}, an angle measured +in radians. + +@xref{ASin Intrinsic}, for the inverse of this function. + +@end ifset +@ifset familyVXT +@node SinD Intrinsic +@subsubsection SinD Intrinsic +@cindex SinD intrinsic +@cindex intrinsics, SinD + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL SinD} to use this name for an +external procedure. + +@end ifset +@ifset familyF77 +@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). + +@noindent +Description: + +Returns the hyperbolic sine of @var{X}. + +@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). + +@noindent +Description: + +Archaic form of @code{REAL()} that is specific +to one type for @var{A}. +@xref{Real Intrinsic}. + +@end ifset +@ifset familyVXT +@node SnglQ Intrinsic +@subsubsection SnglQ Intrinsic +@cindex SnglQ intrinsic +@cindex intrinsics, SnglQ + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL SnglQ} to use this name for an +external procedure. + +@end ifset +@ifset familyF90 +@node Spacing Intrinsic +@subsubsection Spacing Intrinsic +@cindex Spacing intrinsic +@cindex intrinsics, Spacing + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL Spacing} to use this name for an +external procedure. + +@node Spread Intrinsic +@subsubsection Spread Intrinsic +@cindex Spread intrinsic +@cindex intrinsics, Spread + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL Spread} to use this name for an +external procedure. + +@end ifset +@ifset familyF77 +@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). + +@noindent +Description: + +Returns the square root of @var{X}, which must +not be negative. + +To calculate and represent the square root of a negative +number, complex arithmetic must be used. +For example, @samp{SQRT(COMPLEX(@var{X}))}. + +The inverse of this function is @samp{SQRT(@var{X}) * SQRT(@var{X})}. + +@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 (subroutine) +@subsubsection Stat Intrinsic (subroutine) +@cindex Stat intrinsic +@cindex intrinsics, Stat + +@noindent +@example +CALL Stat(@var{File}, @var{SArray}, @var{Status}) +@end example + +@noindent +@var{File}: @code{CHARACTER}; scalar; INTENT(IN). + +@noindent +@var{SArray}: @code{INTEGER(KIND=1)}; DIMENSION(13); INTENT(OUT). + +@noindent +@var{Status}: @code{INTEGER(KIND=1)}; OPTIONAL; scalar; INTENT(OUT). + +@noindent +Intrinsic groups: @code{unix}. + +@noindent +Description: + +Obtains data about the given file @var{File} and places them in the array +@var{SArray}. +A null character (@samp{CHAR(0)}) marks the end of +the name in @var{File}---otherwise, +trailing blanks in @var{File} are ignored. +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. + +If the @var{Status} argument is supplied, it contains +0 on success or a non-zero error code upon return. + +Some non-GNU implementations of Fortran provide this intrinsic as +only a function, not as a subroutine, or do not support the +(optional) @var{Status} argument. + +For information on other intrinsics with the same name: +@xref{Stat Intrinsic (function)}. + +@node Stat Intrinsic (function) +@subsubsection Stat Intrinsic (function) +@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 file @var{File} and places them in the array +@var{SArray}. +A null character (@samp{CHAR(0)}) marks the end of +the name in @var{File}---otherwise, +trailing blanks in @var{File} are ignored. +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 or a non-zero error code. + +For information on other intrinsics with the same name: +@xref{Stat Intrinsic (subroutine)}. + +@end ifset +@ifset familyF90 +@node Sum Intrinsic +@subsubsection Sum Intrinsic +@cindex Sum intrinsic +@cindex intrinsics, Sum + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL Sum} to use this name for an +external procedure. + +@end ifset +@ifset familyF2U +@node SymLnk Intrinsic (subroutine) +@subsubsection SymLnk Intrinsic (subroutine) +@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(KIND=1)}; OPTIONAL; scalar; INTENT(OUT). + +@noindent +Intrinsic groups: @code{unix}. + +@noindent +Description: + +Makes a symbolic link from file @var{Path1} to @var{Path2}. +A null character (@samp{CHAR(0)}) marks the end of +the names in @var{Path1} and @var{Path2}---otherwise, +trailing blanks in @var{Path1} and @var{Path2} are ignored. +If the @var{Status} argument is supplied, it contains +0 on success or a non-zero error code upon return +(@code{ENOSYS} if the system does not provide @code{symlink(2)}). + +Some non-GNU implementations of Fortran provide this intrinsic as +only a function, not as a subroutine, or do not support the +(optional) @var{Status} argument. + +For information on other intrinsics with the same name: +@xref{SymLnk Intrinsic (function)}. + +@end ifset +@ifset familyBADU77 +@node SymLnk Intrinsic (function) +@subsubsection SymLnk Intrinsic (function) +@cindex SymLnk intrinsic +@cindex intrinsics, SymLnk + +@noindent +@example +SymLnk(@var{Path1}, @var{Path2}) +@end example + +@noindent +SymLnk: @code{INTEGER(KIND=1)} function. + +@noindent +@var{Path1}: @code{CHARACTER}; scalar; INTENT(IN). + +@noindent +@var{Path2}: @code{CHARACTER}; scalar; INTENT(IN). + +@noindent +Intrinsic groups: @code{badu77}. + +@noindent +Description: + +Makes a symbolic link from file @var{Path1} to @var{Path2}. +A null character (@samp{CHAR(0)}) marks the end of +the names in @var{Path1} and @var{Path2}---otherwise, +trailing blanks in @var{Path1} and @var{Path2} are ignored. +Returns 0 on success or a non-zero error code +(@code{ENOSYS} if the system does not provide @code{symlink(2)}). + +Due to the side effects performed by this intrinsic, the function +form is not recommended. + +For information on other intrinsics with the same name: +@xref{SymLnk Intrinsic (subroutine)}. + +@end ifset +@ifset familyF2U +@node System Intrinsic (subroutine) +@subsubsection System Intrinsic (subroutine) +@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(OUT). + +@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. + +Some non-GNU implementations of Fortran provide this intrinsic as +only a function, not as a subroutine, or do not support the +(optional) @var{Status} argument. + +For information on other intrinsics with the same name: +@xref{System Intrinsic (function)}. + +@end ifset +@ifset familyBADU77 +@node System Intrinsic (function) +@subsubsection System Intrinsic (function) +@cindex System intrinsic +@cindex intrinsics, System + +@noindent +@example +System(@var{Command}) +@end example + +@noindent +System: @code{INTEGER(KIND=1)} function. + +@noindent +@var{Command}: @code{CHARACTER}; scalar; INTENT(IN). + +@noindent +Intrinsic groups: @code{badu77}. + +@noindent +Description: + +Passes the command @var{Command} to a shell (see @code{system(3)}). +Returns 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. + +Due to the side effects performed by this intrinsic, the function +form is not recommended. +However, the function form can be valid in cases where the +actual side effects performed by the call are unimportant to +the application. + +For example, on a UNIX system, @samp{SAME = SYSTEM('cmp a b')} +does not perform any side effects likely to be important to the +program, so the programmer would not care if the actual system +call (and invocation of @code{cmp}) was optimized away in a situation +where the return value could be determined otherwise, or was not +actually needed (@samp{SAME} not actually referenced after the +sample assignment statement). + +For information on other intrinsics with the same name: +@xref{System Intrinsic (subroutine)}. + +@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). + +@noindent +Description: + +Returns the tangent of @var{X}, an angle measured +in radians. + +@xref{ATan Intrinsic}, for the inverse of this function. + +@end ifset +@ifset familyVXT +@node TanD Intrinsic +@subsubsection TanD Intrinsic +@cindex TanD intrinsic +@cindex intrinsics, TanD + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL TanD} to use this name for an +external procedure. + +@end ifset +@ifset familyF77 +@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). + +@noindent +Description: + +Returns the hyperbolic tangent of @var{X}. + +@end ifset +@ifset familyF2U +@node Time Intrinsic (UNIX) +@subsubsection Time Intrinsic (UNIX) +@cindex Time intrinsic +@cindex intrinsics, Time + +@noindent +@example +Time() +@end example + +@noindent +Time: @code{INTEGER(KIND=1)} 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}. + +This intrinsic is not fully portable, such as to systems +with 32-bit @code{INTEGER} types but supporting times +wider than 32 bits. +@xref{Time8 Intrinsic}, for information on a +similar intrinsic that might be portable to more +GNU Fortran implementations, though to fewer +Fortran compilers. + +For information on other intrinsics with the same name: +@xref{Time Intrinsic (VXT)}. + +@end ifset +@ifset familyVXT +@node Time Intrinsic (VXT) +@subsubsection Time Intrinsic (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}. + +@noindent +Description: + +Returns in @var{Time} a character representation of the current time as +obtained from @code{ctime(3)}. + +@xref{Fdate Intrinsic (subroutine)} for an equivalent routine. + +For information on other intrinsics with the same name: +@xref{Time Intrinsic (UNIX)}. + +@end ifset +@ifset familyF2U +@node Time8 Intrinsic +@subsubsection Time8 Intrinsic +@cindex Time8 intrinsic +@cindex intrinsics, Time8 + +@noindent +@example +Time8() +@end example + +@noindent +Time8: @code{INTEGER(KIND=2)} function. + +@noindent +Intrinsic groups: @code{unix}. + +@noindent +Description: + +Returns the current time encoded as a long 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}. + +No Fortran implementations other than GNU Fortran are +known to support this intrinsic at the time of this +writing. +@xref{Time Intrinsic (UNIX)}, for information on a +similar intrinsic that might be portable to more Fortran +compilers, though to fewer GNU Fortran implementations. + +@end ifset +@ifset familyF90 +@node Tiny Intrinsic +@subsubsection Tiny Intrinsic +@cindex Tiny intrinsic +@cindex intrinsics, Tiny + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL Tiny} to use this name for an +external procedure. + +@node Transfer Intrinsic +@subsubsection Transfer Intrinsic +@cindex Transfer intrinsic +@cindex intrinsics, Transfer + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL Transfer} to use this name for an +external procedure. + +@node Transpose Intrinsic +@subsubsection Transpose Intrinsic +@cindex Transpose intrinsic +@cindex intrinsics, Transpose + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL Transpose} to use this name for an +external procedure. + +@node Trim Intrinsic +@subsubsection Trim Intrinsic +@cindex Trim intrinsic +@cindex intrinsics, Trim + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL Trim} to use this name for an +external procedure. + +@end ifset +@ifset familyF2U +@node TtyNam Intrinsic (subroutine) +@subsubsection TtyNam Intrinsic (subroutine) +@cindex TtyNam intrinsic +@cindex intrinsics, TtyNam + +@noindent +@example +CALL TtyNam(@var{Name}, @var{Unit}) +@end example + +@noindent +@var{Name}: @code{CHARACTER}; scalar; INTENT(OUT). + +@noindent +@var{Unit}: @code{INTEGER}; scalar; INTENT(IN). + +@noindent +Intrinsic groups: @code{unix}. + +@noindent +Description: + +Sets @var{Name} to 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. + +Some non-GNU implementations of Fortran provide this intrinsic as +only a function, not as a subroutine. + +For information on other intrinsics with the same name: +@xref{TtyNam Intrinsic (function)}. + +@node TtyNam Intrinsic (function) +@subsubsection TtyNam Intrinsic (function) +@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. + +For information on other intrinsics with the same name: +@xref{TtyNam Intrinsic (subroutine)}. + +@end ifset +@ifset familyF90 +@node UBound Intrinsic +@subsubsection UBound Intrinsic +@cindex UBound intrinsic +@cindex intrinsics, UBound + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL UBound} to use this name for an +external procedure. + +@end ifset +@ifset familyF2U +@node UMask Intrinsic (subroutine) +@subsubsection UMask Intrinsic (subroutine) +@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(KIND=1)}; OPTIONAL; scalar; INTENT(OUT). + +@noindent +Intrinsic groups: @code{unix}. + +@noindent +Description: + +Sets the file creation mask to @var{Mask} and returns the old value in +argument @var{Old} if it is supplied. +See @code{umask(2)}. + +Some non-GNU implementations of Fortran provide this intrinsic as +only a function, not as a subroutine. + +For information on other intrinsics with the same name: +@xref{UMask Intrinsic (function)}. + +@end ifset +@ifset familyBADU77 +@node UMask Intrinsic (function) +@subsubsection UMask Intrinsic (function) +@cindex UMask intrinsic +@cindex intrinsics, UMask + +@noindent +@example +UMask(@var{Mask}) +@end example + +@noindent +UMask: @code{INTEGER(KIND=1)} function. + +@noindent +@var{Mask}: @code{INTEGER}; scalar; INTENT(IN). + +@noindent +Intrinsic groups: @code{badu77}. + +@noindent +Description: + +Sets the file creation mask to @var{Mask} and returns the old value. +See @code{umask(2)}. + +Due to the side effects performed by this intrinsic, the function +form is not recommended. + +For information on other intrinsics with the same name: +@xref{UMask Intrinsic (subroutine)}. + +@end ifset +@ifset familyF2U +@node Unlink Intrinsic (subroutine) +@subsubsection Unlink Intrinsic (subroutine) +@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}. +A null character (@samp{CHAR(0)}) marks the end of +the name in @var{File}---otherwise, +trailing blanks in @var{File} are ignored. +If the @var{Status} argument is supplied, it contains +0 on success or a non-zero error code upon return. +See @code{unlink(2)}. + +Some non-GNU implementations of Fortran provide this intrinsic as +only a function, not as a subroutine, or do not support the +(optional) @var{Status} argument. + +For information on other intrinsics with the same name: +@xref{Unlink Intrinsic (function)}. + +@end ifset +@ifset familyBADU77 +@node Unlink Intrinsic (function) +@subsubsection Unlink Intrinsic (function) +@cindex Unlink intrinsic +@cindex intrinsics, Unlink + +@noindent +@example +Unlink(@var{File}) +@end example + +@noindent +Unlink: @code{INTEGER(KIND=1)} function. + +@noindent +@var{File}: @code{CHARACTER}; scalar; INTENT(IN). + +@noindent +Intrinsic groups: @code{badu77}. + +@noindent +Description: + +Unlink the file @var{File}. +A null character (@samp{CHAR(0)}) marks the end of +the name in @var{File}---otherwise, +trailing blanks in @var{File} are ignored. +Returns 0 on success or a non-zero error code. +See @code{unlink(2)}. + +Due to the side effects performed by this intrinsic, the function +form is not recommended. + +For information on other intrinsics with the same name: +@xref{Unlink Intrinsic (subroutine)}. + +@end ifset +@ifset familyF90 +@node Unpack Intrinsic +@subsubsection Unpack Intrinsic +@cindex Unpack intrinsic +@cindex intrinsics, Unpack + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL Unpack} to use this name for an +external procedure. + +@node Verify Intrinsic +@subsubsection Verify Intrinsic +@cindex Verify intrinsic +@cindex intrinsics, Verify + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL Verify} to use this name for an +external procedure. + +@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}. + +@noindent +Description: + +Archaic form of @code{COS()} that is specific +to one type for @var{X}. +@xref{Cos Intrinsic}. + +@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}. + +@noindent +Description: + +Archaic form of @code{EXP()} that is specific +to one type for @var{X}. +@xref{Exp Intrinsic}. + +@end ifset +@ifset familyVXT +@node ZExt Intrinsic +@subsubsection ZExt Intrinsic +@cindex ZExt intrinsic +@cindex intrinsics, ZExt + +This intrinsic is not yet implemented. +The name is, however, reserved as an intrinsic. +Use @samp{EXTERNAL ZExt} to use this name for an +external procedure. + +@end ifset +@ifset familyF2C +@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}. + +@noindent +Description: + +Archaic form of @code{SIN()} that is specific +to one type for @var{X}. +@xref{Sin Intrinsic}. + +@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}. + +@noindent +Description: + +Archaic form of @code{SQRT()} that is specific +to one type for @var{X}. +@xref{SqRt Intrinsic}. + +@end ifset |