Intrinsic Procedures Overview

Intrinsic procedures are functions and subroutines that are included in the Fortran library. There are four classes of these intrinsic procedures, as follows:

An atomic subroutine is an intrinsic subroutine that performs an action on a variable (its ATOM argument) atomically. When an atomic subroutine is executed, it is as if the subroutine were executed instantaneously without overlapping other atomic actions that might occur asynchronously.

Intrinsic procedures are invoked the same way as other procedures, and follow the same rules of argument association.

The intrinsic procedures have generic (or common) names, and many of the intrinsic functions have specific names. (Some intrinsic functions are both generic and specific.)

In general, generic functions accept arguments of more than one data type; the data type of the result is the same as that of the arguments in the function reference. For elemental functions with more than one argument, all arguments must be of the same type (except for the function MERGE).

When an intrinsic function is passed as an actual argument to a procedure, its specific name must be used, and when called, its arguments must be scalar. Some specific intrinsic functions are not allowed as actual arguments in all circumstances. The following table lists specific functions that cannot be passed as actual arguments or as targets in procedure pointer assignment statements.

Specific Intrinsic Functions Not Allowed as Actual Arguments

AIMAX0

FLOATI

IZEXT

LOC

AIMIN0

FLOATJ

JFIX

MAX0

AJMAX0

FLOATK

JIDINT

MAX1

AJMIN0

FP_CLASS

JIFIX

MIN0

AKMAX0

HFIX

JINT

MIN1

AKMIN0

IADDR

JIQINT

MULT_HIGH

AMAX0

IARGC

JMAX0

MULT_HIGH_SIGNED

AMAX1

ICHAR

JMAX1

NARGS

AMIN0

IDINT

JMIN0

QCMPLX

AMIN1

IFIX

JMIN1

QEXT

CHAR

IIDINT

JNUM

QEXTD

CMPLX

IIFIX

JZEXT

QMAX1

DBLE

IINT

KIDINT

QMIN1

DBLEQ

IIQINT

KIFIX

QNUM

DCMPLX

IJINT

KINT

QREAL

DFLOTI

IMAX0

KIQINT

RAN

DFLOTJ

IMAX1

KMAX0

RANF

DFLOTK

IMIN0

KMAX1

REAL

DMAX1

IMIN1

KMIN0

RNUM

DMIN1

INT

KMIN1

SECNDS

DNUM

INT1

KNUM

SHIFTL

DPROD

INT2

KZEXT

SHIFTR

DREAL

INT4

LGE

SNGL

DSHIFTL

INT8

LGT

SNGLQ

DSHIFTR

INUM

LLE

ZEXT

FLOAT

IQINT

LLT

Note that none of the intrinsic subroutines can be passed as actual arguments or as targets in procedure pointer assignment statements.

The A to Z Reference contains the descriptions of all intrinsics listed in alphabetical order. Each reference entry indicates whether the procedure is inquiry, elemental, transformational, or nonelemental, and whether it is a function or a subroutine.

See Also


Submit feedback on this help topic

Copyright © 1996-2011, Intel Corporation. All rights reserved.