Previous: f77/f2c Intrinsics, Up: Functions and Subroutines

(Corresponds to Section 15.10 of ANSI X3.9-1978 FORTRAN 77.)

The GNU Fortran language adds various functions, subroutines, types, and arguments to the set of intrinsic functions in ANSI FORTRAN 77. The complete set of intrinsics supported by the GNU Fortran language is described below.

Note that a name is not treated as that of an intrinsic if it is
specified in an `EXTERNAL`

statement in the same program unit;
if a command-line option is used to disable the groups to which
the intrinsic belongs; or if the intrinsic is not named in an
`INTRINSIC`

statement and a command-line option is used to
hide the groups to which the intrinsic belongs.

So, it is recommended that any reference in a program unit to
an intrinsic procedure that is not a standard FORTRAN 77
intrinsic be accompanied by an appropriate `INTRINSIC`

statement in that program unit.
This sort of defensive programming makes it more
likely that an implementation will issue a diagnostic rather
than generate incorrect code for such a reference.

The terminology used below is based on that of the Fortran 90 standard, so that the text may be more concise and accurate:

`OPTIONAL`

means the argument may be omitted.- `
`A-1, A-2, ..., A-n`' means more than one argument (generally named ``A`') may be specified. - `
`scalar`' means the argument must not be an array (must be a variable or array element, or perhaps a constant if expressions are permitted). - `
`DIMENSION(4)`' means the argument must be an array having 4 elements. `INTENT(IN)`

means the argument must be an expression (such as a constant or a variable that is defined upon invocation of the intrinsic).`INTENT(OUT)`

means the argument must be definable by the invocation of the intrinsic (that is, must not be a constant nor an expression involving operators other than array reference and substring reference).`INTENT(INOUT)`

means the argument must be defined prior to, and definable by, invocation of the intrinsic (a combination of the requirements of`INTENT(IN)`

and`INTENT(OUT)`

.- See Kind Notation, for an explanation of
`KIND`

.

- Abort Intrinsic: Abort the program.
- Abs Intrinsic: Absolute value.
- Access Intrinsic: Check file accessibility.
- AChar Intrinsic: ASCII character from code.
- ACos Intrinsic: Arc cosine.
- AdjustL Intrinsic: (Reserved for future use.)
- AdjustR Intrinsic: (Reserved for future use.)
- AImag Intrinsic: Convert/extract imaginary part of complex.
- AInt Intrinsic: Truncate to whole number.
- Alarm Intrinsic: Execute a routine after a given delay.
- All Intrinsic: (Reserved for future use.)
- Allocated Intrinsic: (Reserved for future use.)
- 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).
- And Intrinsic: Boolean AND.
- ANInt Intrinsic: Round to nearest whole number.
- Any Intrinsic: (Reserved for future use.)
- ASin Intrinsic: Arc sine.
- Associated Intrinsic: (Reserved for future use.)
- ATan Intrinsic: Arc tangent.
- ATan2 Intrinsic: Arc tangent.
- BesJ0 Intrinsic: Bessel function.
- BesJ1 Intrinsic: Bessel function.
- BesJN Intrinsic: Bessel function.
- BesY0 Intrinsic: Bessel function.
- BesY1 Intrinsic: Bessel function.
- BesYN Intrinsic: Bessel function.
- Bit_Size Intrinsic: Number of bits in argument's type.
- BTest Intrinsic: Test bit.
- CAbs Intrinsic: Absolute value (archaic).
- CCos Intrinsic: Cosine (archaic).
- Ceiling Intrinsic: (Reserved for future use.)
- CExp Intrinsic: Exponential (archaic).
- Char Intrinsic: Character from code.
- ChDir Intrinsic (subroutine): Change directory.
- ChMod Intrinsic (subroutine): Change file modes.
- CLog Intrinsic: Natural logarithm (archaic).
- Cmplx Intrinsic: Construct
`COMPLEX(KIND=1)`

value. - Complex Intrinsic: Build complex value from real and imaginary parts.
- Conjg Intrinsic: Complex conjugate.
- Cos Intrinsic: Cosine.
- CosH Intrinsic: Hyperbolic cosine.
- Count Intrinsic: (Reserved for future use.)
- CPU_Time Intrinsic: Get current CPU time.
- CShift Intrinsic: (Reserved for future use.)
- CSin Intrinsic: Sine (archaic).
- CSqRt Intrinsic: Square root (archaic).
- 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.
- DAbs Intrinsic: Absolute value (archaic).
- DACos Intrinsic: Arc cosine (archaic).
- DASin Intrinsic: Arc sine (archaic).
- DATan Intrinsic: Arc tangent (archaic).
- DATan2 Intrinsic: Arc tangent (archaic).
- Date_and_Time Intrinsic: Get the current date and time.
- 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).
- Dble Intrinsic: Convert to double precision.
- DCos Intrinsic: Cosine (archaic).
- DCosH Intrinsic: Hyperbolic cosine (archaic).
- DDiM Intrinsic: Difference magnitude (archaic).
- DErF Intrinsic: Error function (archaic).
- DErFC Intrinsic: Complementary error function (archaic).
- DExp Intrinsic: Exponential (archaic).
- Digits Intrinsic: (Reserved for future use.)
- DiM Intrinsic: Difference magnitude (non-negative subtract).
- 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).
- Dot_Product Intrinsic: (Reserved for future use.)
- DProd Intrinsic: Double-precision product.
- DSign Intrinsic: Apply sign to magnitude (archaic).
- DSin Intrinsic: Sine (archaic).
- DSinH Intrinsic: Hyperbolic sine (archaic).
- DSqRt Intrinsic: Square root (archaic).
- DTan Intrinsic: Tangent (archaic).
- DTanH Intrinsic: Hyperbolic tangent (archaic).
- DTime Intrinsic (subroutine): Get elapsed time since last time.
- EOShift Intrinsic: (Reserved for future use.)
- Epsilon Intrinsic: (Reserved for future use.)
- 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.
- Exp Intrinsic: Exponential.
- Exponent Intrinsic: (Reserved for future use.)
- 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.
- FGetC Intrinsic (subroutine): Read a character stream-wise.
- Float Intrinsic: Conversion (archaic).
- Floor Intrinsic: (Reserved for future use.)
- 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.
- FPutC Intrinsic (subroutine): Write a character stream-wise.
- Fraction Intrinsic: (Reserved for future use.)
- 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.
- Huge Intrinsic: (Reserved for future use.)
- IAbs Intrinsic: Absolute value (archaic).
- IAChar Intrinsic: ASCII code for character.
- IAnd Intrinsic: Boolean AND.
- IArgC Intrinsic: Obtain count of command-line arguments.
- IBClr Intrinsic: Clear a bit.
- IBits Intrinsic: Extract a bit subfield of a variable.
- IBSet Intrinsic: Set a bit.
- IChar Intrinsic: Code for character.
- IDate Intrinsic (UNIX): Get local time info.
- IDiM Intrinsic: Difference magnitude (archaic).
- IDInt Intrinsic: Convert to
`INTEGER`

value truncated to whole number (archaic). - IDNInt Intrinsic: Convert to
`INTEGER`

value rounded to nearest whole number (archaic). - IEOr Intrinsic: Boolean XOR.
- IErrNo Intrinsic: Get error number for last error.
- IFix Intrinsic: Conversion (archaic).
- Imag Intrinsic: Extract imaginary part of complex.
- ImagPart Intrinsic: Extract imaginary part of complex.
- Index Intrinsic: Locate a CHARACTER substring.
- Int Intrinsic: Convert to
`INTEGER`

value truncated to whole number. - Int2 Intrinsic: Convert to
`INTEGER(KIND=6)`

value truncated to whole number. - Int8 Intrinsic: Convert to
`INTEGER(KIND=2)`

value truncated to whole number. - IOr Intrinsic: Boolean OR.
- IRand Intrinsic: Random number.
- IsaTty Intrinsic: Is unit connected to a terminal?
- IShft Intrinsic: Logical bit shift.
- IShftC Intrinsic: Circular bit shift.
- ISign Intrinsic: Apply sign to magnitude (archaic).
- ITime Intrinsic: Get local time of day.
- Kill Intrinsic (subroutine): Signal a process.
- Kind Intrinsic: (Reserved for future use.)
- LBound Intrinsic: (Reserved for future use.)
- Len Intrinsic: Length of character entity.
- Len_Trim Intrinsic: Get last non-blank character in string.
- LGe Intrinsic: Lexically greater than or equal.
- LGt Intrinsic: Lexically greater than.
- Link Intrinsic (subroutine): Make hard link in file system.
- LLe Intrinsic: Lexically less than or equal.
- LLt Intrinsic: Lexically less than.
- LnBlnk Intrinsic: Get last non-blank character in string.
- Loc Intrinsic: Address of entity in core.
- Log Intrinsic: Natural logarithm.
- Log10 Intrinsic: Common logarithm.
- Logical Intrinsic: (Reserved for future use.)
- Long Intrinsic: Conversion to
`INTEGER(KIND=1)`

(archaic). - LShift Intrinsic: Left-shift bits.
- LStat Intrinsic (subroutine): Get file information.
- LStat Intrinsic (function): Get file information.
- LTime Intrinsic: Convert time to local time info.
- MatMul Intrinsic: (Reserved for future use.)
- Max Intrinsic: Maximum value.
- Max0 Intrinsic: Maximum value (archaic).
- Max1 Intrinsic: Maximum value (archaic).
- MaxExponent Intrinsic: (Reserved for future use.)
- MaxLoc Intrinsic: (Reserved for future use.)
- MaxVal Intrinsic: (Reserved for future use.)
- MClock Intrinsic: Get number of clock ticks for process.
- MClock8 Intrinsic: Get number of clock ticks for process.
- Merge Intrinsic: (Reserved for future use.)
- Min Intrinsic: Minimum value.
- Min0 Intrinsic: Minimum value (archaic).
- Min1 Intrinsic: Minimum value (archaic).
- MinExponent Intrinsic: (Reserved for future use.)
- MinLoc Intrinsic: (Reserved for future use.)
- MinVal Intrinsic: (Reserved for future use.)
- Mod Intrinsic: Remainder.
- Modulo Intrinsic: (Reserved for future use.)
- MvBits Intrinsic: Moving a bit field.
- Nearest Intrinsic: (Reserved for future use.)
- NInt Intrinsic: Convert to
`INTEGER`

value rounded to nearest whole number. - Not Intrinsic: Boolean NOT.
- Or Intrinsic: Boolean OR.
- Pack Intrinsic: (Reserved for future use.)
- PError Intrinsic: Print error message for last error.
- Precision Intrinsic: (Reserved for future use.)
- Present Intrinsic: (Reserved for future use.)
- Product Intrinsic: (Reserved for future use.)
- Radix Intrinsic: (Reserved for future use.)
- Rand Intrinsic: Random number.
- Random_Number Intrinsic: (Reserved for future use.)
- Random_Seed Intrinsic: (Reserved for future use.)
- Range Intrinsic: (Reserved for future use.)
- Real Intrinsic: Convert value to type
`REAL(KIND=1)`

. - RealPart Intrinsic: Extract real part of complex.
- Rename Intrinsic (subroutine): Rename file.
- Repeat Intrinsic: (Reserved for future use.)
- Reshape Intrinsic: (Reserved for future use.)
- RRSpacing Intrinsic: (Reserved for future use.)
- RShift Intrinsic: Right-shift bits.
- Scale Intrinsic: (Reserved for future use.)
- Scan Intrinsic: (Reserved for future use.)
- Second Intrinsic (function): Get CPU time for process in seconds.
- Second Intrinsic (subroutine): Get CPU time for process in seconds.
- 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.)
- Short Intrinsic: Convert to
`INTEGER(KIND=6)`

value truncated to whole number. - Sign Intrinsic: Apply sign to magnitude.
- Signal Intrinsic (subroutine): Muck with signal handling.
- Sin Intrinsic: Sine.
- SinH Intrinsic: Hyperbolic sine.
- Sleep Intrinsic: Sleep for a specified time.
- Sngl Intrinsic: Convert (archaic).
- Spacing Intrinsic: (Reserved for future use.)
- Spread Intrinsic: (Reserved for future use.)
- SqRt Intrinsic: Square root.
- SRand Intrinsic: Random seed.
- Stat Intrinsic (subroutine): Get file information.
- Stat Intrinsic (function): Get file information.
- Sum Intrinsic: (Reserved for future use.)
- SymLnk Intrinsic (subroutine): Make symbolic link in file system.
- System Intrinsic (subroutine): Invoke shell (system) command.
- System_Clock Intrinsic: Get current system clock value.
- Tan Intrinsic: Tangent.
- TanH Intrinsic: Hyperbolic tangent.
- Time Intrinsic (UNIX): Get current time as time value.
- Time8 Intrinsic: Get current time as time value.
- Tiny Intrinsic: (Reserved for future use.)
- Transfer Intrinsic: (Reserved for future use.)
- Transpose Intrinsic: (Reserved for future use.)
- Trim Intrinsic: (Reserved for future use.)
- TtyNam Intrinsic (subroutine): Get name of terminal device for unit.
- TtyNam Intrinsic (function): Get name of terminal device for unit.
- UBound Intrinsic: (Reserved for future use.)
- UMask Intrinsic (subroutine): Set file creation permissions mask.
- Unlink Intrinsic (subroutine): Unlink file.
- Unpack Intrinsic: (Reserved for future use.)
- Verify Intrinsic: (Reserved for future use.)
- XOr Intrinsic: Boolean XOR.
- ZAbs Intrinsic: Absolute value (archaic).
- ZCos Intrinsic: Cosine (archaic).
- ZExp Intrinsic: Exponential (archaic).
- ZLog Intrinsic: Natural logarithm (archaic).
- ZSin Intrinsic: Sine (archaic).
- ZSqRt Intrinsic: Square root (archaic).