@c This file is automatically derived from intdoc.c, intdoc.in, @c ansify.c, intrin.def, and intrin.h. Edit those files instead. @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:: Execute a routine after a given delay. @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:: Common 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:: Get the current date and time. @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:: Common 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:: Common 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 @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}. @noindent Description: Causes external subroutine @var{Handler} to be executed after a delay of @var{Seconds} seconds by using @code{alarm(1)} to set up a signal and @code{signal(2)} to catch it. If @var{Status} is supplied, it will be returned with the number of seconds remaining until any previously scheduled alarm was due to be delivered, or zero if there was no previously scheduled alarm. @xref{Signal Intrinsic (subroutine)}. @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} not wider than the default kind; 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} not wider than the default kind; 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 nonzero error code otherwise upon return. See @code{chdir(3)}. @emph{Caution:} Using this routine during I/O to a unit connected with a non-absolute file name can cause subsequent I/O on such a unit to fail because the I/O library might reopen files by name. Some non-GNU implementations of Fortran provide this intrinsic as only a function, not as a subroutine, or do not support the (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 nonzero error code. See @code{chdir(3)}. @emph{Caution:} Using this routine during I/O to a unit connected with a non-absolute file name can cause subsequent I/O on such a unit to fail because the I/O library might reopen files by name. 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 nonzero error code upon return. Note that this currently works by actually invoking @code{/bin/chmod} (or the @code{chmod} found when the library was configured) and so might 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 nonzero error code otherwise. Note that this currently works by actually invoking @code{/bin/chmod} (or the @code{chmod} found when the library was configured) and so might 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}; 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)}. @cindex wraparound, timings @cindex limits, timings On some systems, the underlying timings are represented using types with sufficiently small limits that overflows (wraparounds) are possible, such as 32-bit types. Therefore, the values returned by this intrinsic might be, or become, negative, or numerically less than previous values, during a single run of the compiled program. @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{STime}, @var{Result}) @end example @noindent @var{STime}: @code{INTEGER}; scalar; INTENT(IN). @noindent @var{Result}: @code{CHARACTER}; scalar; INTENT(OUT). @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}. @cindex Y2K compliance @cindex Year 2000 compliance This intrinsic is not recommended, due to the year 2000 approaching. Therefore, programs making use of this intrinsic might not be Year 2000 (Y2K) compliant. @xref{CTime Intrinsic (subroutine)}, for information on obtaining more digits for the current (or any) date. @end ifset @ifset familyF90 @node Date_and_Time Intrinsic @subsubsection Date_and_Time Intrinsic @cindex Date_and_Time intrinsic @cindex intrinsics, Date_and_Time @noindent @example CALL Date_and_Time(@var{Date}, @var{Time}, @var{Zone}, @var{Values}) @end example @noindent @var{Date}: @code{CHARACTER}; scalar; INTENT(OUT). @noindent @var{Time}: @code{CHARACTER}; OPTIONAL; scalar; INTENT(OUT). @noindent @var{Zone}: @code{CHARACTER}; OPTIONAL; scalar; INTENT(OUT). @noindent @var{Values}: @code{INTEGER(KIND=1)}; OPTIONAL; DIMENSION(8); INTENT(OUT). @noindent Intrinsic groups: @code{f90}. @noindent Description: Returns: @table @var @item Date The date in the form @var{ccyymmdd}: century, year, month and day; @item Time The time in the form @samp{@var{hhmmss.ss}}: hours, minutes, seconds and milliseconds; @item Zone The difference between local time and UTC (GMT) in the form @var{Shhmm}: sign, hours and minutes, e.g.@: @samp{-0500} (winter in New York); @item Values The year, month of the year, day of the month, time difference in minutes from UTC, hour of the day, minutes of the hour, seconds of the minute, and milliseconds of the second in successive values of the array. @end table @cindex Y10K compliance @cindex Year 10000 compliance @cindex wraparound, Y10K @cindex limits, Y10K Programs making use of this intrinsic might not be Year 10000 (Y10K) compliant. For example, the date might appear, to such programs, to wrap around (change from a larger value to a smaller one) as of the Year 10000. On systems where a millisecond timer isn't available, the millisecond value is returned as zero. @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} not wider than the default kind; 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} not wider than the default kind; 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{Conjg 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{Dble Intrinsic}, for information on the standard FORTRAN 77 replacement for @code{DREAL()}. @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{TArray}, @var{Result}) @end example @noindent @var{TArray}: @code{REAL(KIND=1)}; DIMENSION(2); INTENT(OUT). @noindent @var{Result}: @code{REAL(KIND=1)}; scalar; 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. @cindex wraparound, timings @cindex limits, timings On some systems, the underlying timings are represented using types with sufficiently small limits that overflows (wraparounds) are possible, such as 32-bit types. Therefore, the values returned by this intrinsic might be, or become, negative, or numerically less than previous values, during a single run of the compiled program. Some non-GNU implementations of Fortran provide this intrinsic as only a function, not as a subroutine. 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. @cindex wraparound, timings @cindex limits, timings On some systems, the underlying timings are represented using types with sufficiently small limits that overflows (wraparounds) are possible, such as 32-bit types. Therefore, the values returned by this intrinsic might be, or become, negative, or numerically less than previous values, during a single run of the compiled program. Due to the side effects performed by this intrinsic, the function form is not recommended. 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 might 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{TArray}, @var{Result}) @end example @noindent @var{TArray}: @code{REAL(KIND=1)}; DIMENSION(2); INTENT(OUT). @noindent @var{Result}: @code{REAL(KIND=1)}; scalar; 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)}. @cindex wraparound, timings @cindex limits, timings On some systems, the underlying timings are represented using types with sufficiently small limits that overflows (wraparounds) are possible, such as 32-bit types. Therefore, the values returned by this intrinsic might be, or become, negative, or numerically less than previous values, during a single run of the compiled program. Some non-GNU implementations of Fortran provide this intrinsic as only a function, not as a subroutine. 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)}. @cindex wraparound, timings @cindex limits, timings On some systems, the underlying timings are represented using types with sufficiently small limits that overflows (wraparounds) are possible, such as 32-bit types. Therefore, the values returned by this intrinsic might be, or become, negative, or numerically less than previous values, during a single run of the compiled program. 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} not wider than the default kind; 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 @cindex Y10K compliance @cindex Year 10000 compliance @cindex wraparound, Y10K @cindex limits, Y10K Programs making use of this intrinsic might not be Year 10000 (Y10K) compliant. For example, the date might appear, to such programs, to wrap around (change from a larger value to a smaller one) as of the Year 10000. @xref{CTime Intrinsic (subroutine)}. Some non-GNU implementations of Fortran provide this intrinsic as 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 @cindex Y10K compliance @cindex Year 10000 compliance @cindex wraparound, Y10K @cindex limits, Y10K Programs making use of this intrinsic might not be Year 10000 (Y10K) compliant. For example, the date might appear, to such programs, to wrap around (change from a larger value to a smaller one) as of the Year 10000. @xref{CTime Intrinsic (function)}. 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{Whence}=0; relative to the current offset if @var{Whence}=1; relative to the end of the file if @var{Whence}=2. It branches to label @var{ErrLab} 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 Device ID @item Inode number @item File mode @item Number of links @item Owner's uid @item Owner's gid @item ID of device containing directory entry for file (0 if not available) @item File size (bytes) @item Last access time @item Last modification time @item Last file status change time @item Preferred I/O block size (-1 if not available) @item Number of blocks allocated (-1 if not available) @end enumerate Not all these elements are relevant on all systems. If an element is not relevant, it is returned as 0. If the @var{Status} argument is supplied, it contains 0 on success or a nonzero error code upon return. Some non-GNU implementations of Fortran provide this intrinsic as only a function, not as a subroutine, or do not support the (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 Device ID @item Inode number @item File mode @item Number of links @item Owner's uid @item Owner's gid @item ID of device containing directory entry for file (0 if not available) @item File size (bytes) @item Last access time @item Last modification time @item Last file status change time @item Preferred I/O block size (-1 if not available) @item Number of blocks allocated (-1 if not available) @end enumerate Not all these elements are relevant on all systems. If an element is not relevant, it is returned as 0. Returns 0 on success or a nonzero 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} not wider than the default kind; 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 nonzero 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 nonzero 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}. @emph{Caution:} On some systems, the @code{getlogin(3)} function, which this intrinsic calls at run time, is either not implemented or returns a null pointer. In the latter case, this intrinsic returns blanks 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 nonzero error code upon return (@code{ENOSYS} if the system does not provide @code{gethostname(2)}). Some non-GNU implementations of Fortran provide this intrinsic as only a function, not as a subroutine, or do not support the (optional) @var{Status} argument. On some systems (specifically SCO) it might be necessary to link the ``socket'' library if you call this routine. Typically this means adding @samp{-lg2c -lsocket -lm} to the @code{g77} command line when linking the program. 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 nonzero error code (@code{ENOSYS} if the system does not provide @code{gethostname(2)}). On some systems (specifically SCO) it might be necessary to link the ``socket'' library if you call this routine. Typically this means adding @samp{-lg2c -lsocket -lm} to the @code{g77} command line when linking the program. 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. @cindex Y10K compliance @cindex Year 10000 compliance @cindex wraparound, Y10K @cindex limits, Y10K Programs making use of this intrinsic might not be Year 10000 (Y10K) compliant. For example, the date might appear, to such programs, to wrap around (change from a larger value to a smaller one) as of the Year 10000. 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). @cindex Y2K compliance @cindex Year 2000 compliance @cindex wraparound, Y2K @cindex limits, Y2K This intrinsic is not recommended, due to the year 2000 approaching. Therefore, programs making use of this intrinsic might not be Year 2000 (Y2K) compliant. For example, the date might appear, to such programs, to wrap around (change from a larger value to a smaller one) as of the Year 2000. @xref{IDate Intrinsic (UNIX)}, for information on obtaining more digits for the current date. 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{DIM()} that is specific to one type for @var{X} and @var{Y}. @xref{DiM 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}, @code{REAL}, or @code{COMPLEX}; 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 disregarded. @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}, @code{REAL}, or @code{COMPLEX}; 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 disregarded. @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 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{SIGN()} that is specific to one type for @var{A} and @var{B}. @xref{Sign 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 nonzero 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 nonzero 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 nonzero 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 nonzero 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=7)} 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 `common' (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 common logarithm (base 10) of @var{X}, which must be greater than 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 Device ID @item Inode number @item File mode @item Number of links @item Owner's uid @item Owner's gid @item ID of device containing directory entry for file (0 if not available) @item File size (bytes) @item Last access time @item Last modification time @item Last file status change time @item Preferred I/O block size (-1 if not available) @item Number of blocks allocated (-1 if not available) @end enumerate Not all these elements are relevant on all systems. If an element is not relevant, it is returned as 0. If the @var{Status} argument is supplied, it contains 0 on success or a nonzero error code upon return (@code{ENOSYS} if the system does not provide @code{lstat(2)}). Some non-GNU implementations of Fortran provide this intrinsic as 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 Device ID @item Inode number @item File mode @item Number of links @item Owner's uid @item Owner's gid @item ID of device containing directory entry for file (0 if not available) @item File size (bytes) @item Last access time @item Last modification time @item Last file status change time @item Preferred I/O block size (-1 if not available) @item Number of blocks allocated (-1 if not available) @end enumerate Not all these elements are relevant on all systems. If an element is not relevant, it is returned as 0. Returns 0 on success or a nonzero 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.). @cindex wraparound, timings @cindex limits, timings This intrinsic is not fully portable, such as to systems with 32-bit @code{INTEGER} types but supporting times wider than 32 bits. Therefore, the values returned by this intrinsic might be, or become, negative, or numerically less than previous values, during a single run of the compiled program. @xref{MClock8 Intrinsic}, for information on a similar intrinsic that might be portable to more GNU Fortran implementations, though to fewer 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.). @cindex wraparound, timings @cindex limits, timings @emph{Warning:} this intrinsic does not increase the range of the timing values over that returned by @code{clock(3)}. On a system with a 32-bit @code{clock(3)}, @code{MCLOCK8} will return a 32-bit value, even though converted to an @samp{INTEGER(KIND=2)} value. That means overflows of the 32-bit value can still occur. Therefore, the values returned by this intrinsic might be, or become, negative, or numerically less than previous values, during a single run of the compiled program. No Fortran implementations other than GNU Fortran are known to support this intrinsic at the time of this writing. @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 nonzero error code upon return. Some non-GNU implementations of Fortran provide this intrinsic as only a function, not as a subroutine, or do not support the (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 nonzero 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}. @cindex wraparound, timings @cindex limits, timings This values returned by this intrinsic become numerically less than previous values (they wrap around) during a single run of the compiler program, under normal circumstances (such as running through the midnight hour). @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. @cindex wraparound, timings @cindex limits, timings On some systems, the underlying timings are represented using types with sufficiently small limits that overflows (wraparounds) are possible, such as 32-bit types. Therefore, the values returned by this intrinsic might be, or become, negative, or numerically less than previous values, during a single run of the compiled program. 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}; 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. @cindex wraparound, timings @cindex limits, timings On some systems, the underlying timings are represented using types with sufficiently small limits that overflows (wraparounds) are possible, such as 32-bit types. Therefore, the values returned by this intrinsic might be, or become, negative, or numerically less than previous values, during a single run of the compiled program. This routine is known from Cray Fortran. @xref{CPU_Time Intrinsic}, for a standard equivalent. 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 disregarded. @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=7)}; 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{Handler} is an integer, it can be used to turn off handling of signal @var{Number} or revert to its default action. See @code{signal(2)}. Note that @var{Handler} will be called using C conventions, so the value of its argument in Fortran terms 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. @emph{Warning:} Use of the @code{libf2c} run-time library function @samp{signal_} directly (such as via @samp{EXTERNAL SIGNAL}) requires use of the @code{%VAL()} construct to pass an @code{INTEGER} value (such as @samp{SIG_IGN} or @samp{SIG_DFL}) for the @var{Handler} argument. However, while @samp{CALL SIGNAL(@var{signum}, %VAL(SIG_IGN))} works when @samp{SIGNAL} is treated as an external procedure (and resolves, at link time, to @code{libf2c}'s @samp{signal_} routine), this construct is not valid when @samp{SIGNAL} is recognized as the intrinsic of that name. Therefore, for maximum portability and reliability, code such references to the @samp{SIGNAL} facility as follows: @smallexample INTRINSIC SIGNAL @dots{} CALL SIGNAL(@var{signum}, SIG_IGN) @end smallexample @code{g77} will compile such a call correctly, while other compilers will generally either do so as well or reject the @samp{INTRINSIC SIGNAL} statement via a diagnostic, allowing you to take appropriate action. 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=7)} 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{Handler} is an integer, it can be used to turn off handling of signal @var{Number} or revert to its default action. See @code{signal(2)}. Note that @var{Handler} will be called using C conventions, so the value of its argument 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. @emph{Warning:} If the returned value is stored in an @code{INTEGER(KIND=1)} (default @code{INTEGER}) argument, truncation of the original return value occurs on some systems (such as Alphas, which have 64-bit pointers but 32-bit default integers), with no warning issued by @code{g77} under normal circumstances. Therefore, the following code fragment might silently fail on some systems: @smallexample INTEGER RTN EXTERNAL MYHNDL RTN = SIGNAL(@var{signum}, MYHNDL) @dots{} ! Restore original handler: RTN = SIGNAL(@var{signum}, RTN) @end smallexample The reason for the failure is that @samp{RTN} might not hold all the information on the original handler for the signal, thus restoring an invalid handler. This bug could manifest itself as a spurious run-time failure at an arbitrary point later during the program's execution, for example. @emph{Warning:} Use of the @code{libf2c} run-time library function @samp{signal_} directly (such as via @samp{EXTERNAL SIGNAL}) requires use of the @code{%VAL()} construct to pass an @code{INTEGER} value (such as @samp{SIG_IGN} or @samp{SIG_DFL}) for the @var{Handler} argument. However, while @samp{RTN = SIGNAL(@var{signum}, %VAL(SIG_IGN))} works when @samp{SIGNAL} is treated as an external procedure (and resolves, at link time, to @code{libf2c}'s @samp{signal_} routine), this construct is not valid when @samp{SIGNAL} is recognized as the intrinsic of that name. Therefore, for maximum portability and reliability, code such references to the @samp{SIGNAL} facility as follows: @smallexample INTRINSIC SIGNAL @dots{} RTN = SIGNAL(@var{signum}, SIG_IGN) @end smallexample @code{g77} will compile such a call correctly, while other compilers will generally either do so as well or reject the @samp{INTRINSIC SIGNAL} statement via a diagnostic, allowing you to take appropriate action. 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: Reinitializes 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 Device ID @item Inode number @item File mode @item Number of links @item Owner's uid @item Owner's gid @item ID of device containing directory entry for file (0 if not available) @item File size (bytes) @item Last access time @item Last modification time @item Last file status change time @item Preferred I/O block size (-1 if not available) @item Number of blocks allocated (-1 if not available) @end enumerate Not all these elements are relevant on all systems. If an element is not relevant, it is returned as 0. If the @var{Status} argument is supplied, it contains 0 on success or a nonzero error code upon return. Some non-GNU implementations of Fortran provide this intrinsic as only a function, not as a subroutine, or do not support the (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 Device ID @item Inode number @item File mode @item Number of links @item Owner's uid @item Owner's gid @item ID of device containing directory entry for file (0 if not available) @item File size (bytes) @item Last access time @item Last modification time @item Last file status change time @item Preferred I/O block size (-1 if not available) @item Number of blocks allocated (-1 if not available) @end enumerate Not all these elements are relevant on all systems. If an element is not relevant, it is returned as 0. Returns 0 on success or a nonzero 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 nonzero error code upon return (@code{ENOSYS} if the system does not provide @code{symlink(2)}). Some non-GNU implementations of Fortran provide this intrinsic as 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 nonzero error code (@code{ENOSYS} if the system does not provide @code{symlink(2)}). Due to the side effects performed by this intrinsic, the function 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)}; OPTIONAL; scalar; INTENT(OUT). @noindent @var{Max}: @code{INTEGER(KIND=1)}; OPTIONAL; 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. @cindex wraparound, timings @cindex limits, timings On some systems, the underlying timings are represented using types with sufficiently small limits that overflows (wraparounds) are possible, such as 32-bit types. Therefore, the values returned by this intrinsic might be, or become, negative, or numerically less than previous values, during a single run of the compiled program. @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}. @cindex wraparound, timings @cindex limits, timings This intrinsic is not fully portable, such as to systems with 32-bit @code{INTEGER} types but supporting times wider than 32 bits. Therefore, the values returned by this intrinsic might be, or become, negative, or numerically less than previous values, during a single run of the compiled program. @xref{Time8 Intrinsic}, for information on a similar intrinsic that might be portable to more GNU Fortran implementations, though to fewer 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)}. @cindex Y10K compliance @cindex Year 10000 compliance @cindex wraparound, Y10K @cindex limits, Y10K Programs making use of this intrinsic might not be Year 10000 (Y10K) compliant. For example, the date might appear, to such programs, to wrap around (change from a larger value to a smaller one) as of the Year 10000. @xref{FDate Intrinsic (subroutine)}, for an equivalent routine. 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}. @cindex wraparound, timings @cindex limits, timings @emph{Warning:} this intrinsic does not increase the range of the timing values over that returned by @code{time(3)}. On a system with a 32-bit @code{time(3)}, @code{TIME8} will return a 32-bit value, even though converted to an @samp{INTEGER(KIND=2)} value. That means overflows of the 32-bit value can still occur. Therefore, the values returned by this intrinsic might be, or become, negative, or numerically less than previous values, during a single run of the compiled program. No Fortran implementations other than GNU Fortran are known to support this intrinsic at the time of this writing. @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{Unit}, @var{Name}) @end example @noindent @var{Unit}: @code{INTEGER}; scalar; INTENT(IN). @noindent @var{Name}: @code{CHARACTER}; scalar; INTENT(OUT). @noindent Intrinsic groups: @code{unix}. @noindent Description: Sets @var{Name} to the name of the terminal device open on logical unit @var{Unit} or to 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 nonzero 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 nonzero 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