Intel® Fortran Compiler 18.0 Developer Guide and Reference

Categories of Intrinsic Functions

Generic intrinsic functions can be divided into categories, as shown in the following table:

Categories of Intrinsic Functions

Category

Subcategory

Description

Numeric

Computation

Elemental functions that perform type conversions or simple numeric operations: ABS, AIMAG, AINT, AMAX0, AMIN0, ANINT, CEILING, CMPLX, CONJG, DBLE, DCMPLX, DFLOAT, DIM, DNUM, DPROD, DREAL, FLOAT, FLOOR, IFIX, IMAG, INT, INUM, JNUM, KNUM MAX, MAX1, MIN, MIN1, MOD, MODULO, NINT, QCMPLX, QEXT, QFLOAT, QNUM, QREAL, REAL, RNUM, SIGN, SNGL, ZEXT

Nonelemental function that provides a pseudorandom number: RAN

Elemental function that generates a random number: RANF

Manipulation1

Elemental functions that return values related to the components of the model values associated with the actual value of the argument: EXPONENT, FRACTION, NEAREST, RRSPACING, SCALE, SET_EXPONENT, SPACING

Inquiry1

Functions that return scalar values from the models associated with the type and kind parameters of their arguments2: DIGITS, EPSILON, HUGE, ILEN, MAXEXPONENT, MINEXPONENT, PRECISION, RADIX, RANGE, SIZEOF, TINY

Transformational

Functions that perform vector and matrix multiplication: DOT_PRODUCT, MATMUL

System

Functions that return information about a process or processor: MCLOCK, SECNDS

Kind type

Functions that return kind type parameters: KIND, SELECTED_CHAR_KIND, SELECTED_INT_KIND, SELECTED_REAL_KIND

Mathematical

Elemental functions that perform mathematical operations: ACOS, ACOSD, ACOSH, ASIN, ASIND, ASINH, ATAN, ATAN2, ATAN2D,ATAND, ATANH, BESSEL_J0, BESSEL_J1, BESSEL_JN, BESSEL_Y0, BESSEL_Y1, BESSEL_YN, COS, COSD, COSH,COTAN, COTAND, EXP, EXP10, GAMMA, HYPOT, LOG, LOG10, LOG_GAMMA, SIN, SIND, SINH, SQRT, TAN, TAND, TANH

Bit

Manipulation

Elemental functions that perform bit operations, such as single-bit processing, logical and shift operations, and allowing bit subfields to be referenced: AND, BGE, BGT, BLE, BLT, BTEST, DSHIFTL, DSHIFTR, IAND, IBCHNG, IBCLR, IBITS, IBSET, IEOR, IOR, ISHA, ISHC, ISHFT, ISHFTC, ISHL, IXOR,LSHIFT, MASKL, MASKR, MERGE_BITS, NOT, OR, RSHIFT, SHIFTA, SHIFTL, SHIFTR, XOR

Inquiry

Function that lets you determine bit size and storage size: BIT_SIZE, STORAGE_SIZE

Representation

Elemental functions that return information on bit representation of integers: LEADZ, POPCNT, POPPAR, TRAILZ

Character

Comparison

Elemental functions that make a lexical comparison of the character-string arguments and return a default logical result: LGE, LGT, LLE, LLT

Conversion

Elemental functions that take character arguments and return integer, ASCII, or character values4: ACHAR, CHAR, IACHAR, ICHAR

String handling

Functions that perform operations on character strings, return lengths of arguments, and search for certain arguments: Elemental: ADJUSTL, ADJUSTR, INDEX, LEN_TRIM, SCAN, VERIFY; Nonelemental: REPEAT, TRIM

Inquiry

Functions that return the length of an argument or information about command-line arguments: COMMAND_ARGUMENT_COUNT, IARG, IARGC, LEN, NARGS, NUMARG

Array

Construction

Functions that construct new arrays from the elements of existing arrays: Elemental: MERGE; Nonelemental: PACK, SPREAD, UNPACK

Inquiry

Functions that let you determine if an array argument is allocated, and return the size or shape of an array, and the lower and upper bounds of subscripts along each dimension: ALLOCATED, COSHAPE, IS_CONTIGUOUS, LBOUND, RANK, SHAPE, SIZE, UBOUND

Location

Transformational functions that find the geometric locations of the maximum and minimum values of an array, and find the location of a specified value in an array: MAXLOC, MINLOC, FINDLOC

Manipulation

Transformational functions that shift an array, transpose an array, or change the shape of an array: CSHIFT, EOSHIFT, RESHAPE, TRANSPOSE

Reduction

Transformational functions that perform operations on arrays. The functions "reduce" elements of a whole array to produce a scalar result, or they can be applied to a specific dimension of an array to produce a result array with a rank reduced by one: ALL, ANY, COUNT, IALL, IANY, IPARITY, MAXVAL, MINVAL, NORM2, PARITY, PRODUCT, SUM

Coarray

Inquiry

Functions that convert cosubscripts or return lower or upper cobounds: IMAGE_INDEX, LCOBOUND, UCOBOUND

Transformational

Functions that return the number of images or cosubscripts: NUM_IMAGES, THIS_IMAGE

Polymorphic

Inquiry

Functions that let you determine the dynamic type of an object: EXTENDS_TYPE_OF, SAME_TYPE_AS

Miscellaneous

Functions that do the following:

  • Check for pointer association (ASSOCIATED)

  • Return an address (BADDRESS or IADDR)

  • Return the size of a level of the memory cache (CACHESIZE)

  • Check for end-of-file (EOF)

  • Return error functions (ERF, ERFC,and ERFC_SCALED)

  • Return the class of a floating-point argument (FP_CLASS)

  • Return the INTEGER KIND that will hold an address (INT_PTR_KIND)

  • Test for Not-a-Number values (ISNAN)

  • Return the internal address of a storage item (LOC)

  • Return a logical value of an argument (LOGICAL)

  • Allocate memory (MALLOC)

  • Return a new line character (NEW_LINE)

  • Return a disassociated pointer (NULL)

  • Check for argument presence (PRESENT)

  • Convert a bit pattern (TRANSFER)

  • Check for end-of-file condition (IS_IOSTAT_END)

  • Check for end-of-record condition (IS_IOSTAT_EOR)

1 All of the numeric manipulation, and many of the numeric inquiry functions are defined by the model sets for integers and reals.

2 The value of the argument does not have to be defined.

3 For more information on bit functions, see Bit functions.

4 The Intel® Fortran processor character set is ASCII, so ACHAR = CHAR and IACHAR = ICHAR.

The following table summarizes the generic intrinsic functions and indicates whether they are elemental, inquiry, or transformational functions. Optional arguments are shown within square brackets.

Some intrinsic functions are specific with no generic association. These functions are listed below.

Summary of Generic Intrinsic Functions

Generic Function

Class

Value Returned

ABS (A)

E

The absolute value of an argument

ACHAR (I [,KIND])

E

The character in the specified position of the ASCII character set

ACOS (X)

E

The arccosine (in radians) of the argument

ACOSD (X)

E

The arccosine (in degrees) of the argument

ACOSH (X)

E

The hyperbolic arccosine of the argument

ADJUSTL (STRING)

E

The specified string with leading blanks removed and placed at the end of the string

ADJUSTR (STRING)

E

The specified string with trailing blanks removed and placed at the beginning of the string

AIMAG (Z)

E

The imaginary part of a complex argument

AINT (A [,KIND])

E

A real value truncated to a whole number

ALL (MASK [,DIM])

T

.TRUE. if all elements of the masked array are true

ALLOCATED ([ARRAY=]array) or ALLOCATED ([SCALAR=]scalar)

I

The allocation status of the argument array or scalar

AMAX0 (A1, A2 [, A3,...])

E

The maximum value in a list of integers (returned as a real value)

AMIN0 (A1, A2 [, A3,...])

E

The minimum value in a list of integers (returned as a real value)

AND (I, J)

E

See IAND

ANINT (A [, KIND])

E

A real value rounded to a whole number

ANY (MASK [, DIM])

T

.TRUE. if any elements of the masked array are true

ASIN (X)

E

The arcsine (in radians) of the argument

ASIND (X)

E

The arcsine (in degrees) of the argument

ASINH (X)

E

The hyperbolic arcsine of the argument

ASSOCIATED (POINTER [,TARGET])

I

.TRUE. if the pointer argument is associated or the pointer is associated with the specified target

ATAN (X)

E

The arctangent (in radians) of the argument

ATAN2 (Y, X)

E

The arctangent (in radians) of the arguments

ATAN2D (Y, X)

E

The arctangent (in degrees) of the arguments

ATAND (X)

E

The arctangent (in degrees) of the argument

ATANH (X)

E

The hyperbolic arctangent of the argument

BADDRESS (X)

I

The address of the argument

BESSEL_J0 (X)

E

A Bessel function of the first kind, order 0

BESSEL_J1 (X)

E

A Bessel function of the first kind, order 1

BESSEL_JN (N, X)

E

A Bessel function of the first kind, order N

BESSEL_JN (N1, N2, X)

T

A Bessel function of the first kind

BESSEL_Y0 (X)

E

A Bessel function of the second kind, order 0

BESSEL_Y1 (X)

E

A Bessel function of the second kind, order 1

BESSEL_YN (N, X)

E

A Bessel function of the second kind, order N

BESSEL_YN (N1, N2, X)

T

A Bessel function of the second kind

BGE (I, J)

E

Bitwise greater than or equal to

BGT (I, J)

E

Bitwise greater than

BIT_SIZE (I)

I

The number of bits (s) in the bit model

BLE (I, J)

E

Bitwise less than or equal to

BLT (I, J)

E

Bitwise less than

BTEST (I, POS)

E

.TRUE. if the specified position of argument I is one

CEILING (A [,KIND])

E

The smallest integer greater than or equal to the argument value

CHAR (I [,KIND])

E

The character in the specified position of the processor character set

COMMAND_ARGUMENT_COUNT ()

I

The number of command arguments

CONJG (Z)

E

The conjugate of a complex number

COS (X)

E

The cosine of the argument, which is in radians

COSD (X)

E

The cosine of the argument, which is in degrees

COSH (X)

E

The hyperbolic cosine of the argument

COSHAPE (COARRAY [,KIND])

I

The sizes of codimensions of a coarray.

COTAN (X)

E

The cotangent of the argument, which is in radians

COTAND (X)

E

The cotangent of the argument, which is in degrees

COUNT (MASK [, DIM, KIND])

T

The number of .TRUE. elements in the argument array

CSHIFT (ARRAY, SHIFT [,DIM])

T

An array that has the elements of the argument array circularly shifted

DBLE (A)

E

The corresponding double precision value of the argument

DFLOAT (A)

E

The corresponding double precision value of the integer argument

DIGITS (X)

I

The number of significant digits in the model for the argument

DIM (X, Y)

E

The positive difference between the two arguments

DOT_PRODUCT (VECTOR_A, VECTOR_B)

T

The dot product of two rank-one arrays (also called a vector multiply function)

DREAL (A)

E

The corresponding double-precision value of the double complex argument

DSHIFTL (ILEFT, IRIGHT, ISHIFT)

E

The upper (leftmost) 64 bits of a left-shifted 128-bit integer

DSHIFTR (ILEFT, IRIGHT, ISHIFT)

E

The lower (rightmost) 64 bits of a right-shifted 128-bit integer

EOF (A)

I

.TRUE. or .FALSE. depending on whether a file is beyond the end-of-file record

EOSHIFT (ARRAY, SHIFT [,BOUNDARY] [,DIM])

T

An array that has the elements of the argument array end-off shifted

EPSILON (X)

I

The number that is almost negligible when compared to one

ERF (X)

E

The error function of an argument

ERFC (X)

E

The complementary error function of an argument

ERFC_SCALED (X)

E

The scaled complementary error function of an argument

EXP (X)

E

The exponential ex for the argument x

EXPONENT (X)

E

The value of the exponent part of a real argument

EXTENDS_TYPE_OF (A, MOLD)

I

Whether one dynamic type is an extension of another dynamic type.

FINDLOC (ARRAY, VALUE, DIM [, MASK, KIND, BACK]) or FINDLOC (ARRAY, VALUE [, MASK, KIND, BACK])

T

Location of a specified value in an array.

FLOAT (X)

E

The corresponding real value of the integer argument

FLOOR (A [,KIND])

E

The largest integer less than or equal to the argument value

FP_CLASS (X)

E

The class of the IEEE floating-point argument

FRACTION (X)

E

The fractional part of a real argument

GAMMA (X)

E

A gamma function

HUGE (X)

I

The largest number in the model for the argument

HYPOT (X, Y)

E

A Euclidean distance function

IACHAR (C [,KIND])

E

The position of the specified character in the ASCII character set

IADDR (X)

E

See BADDRESS

IAND (I, J)

E

The logical AND of the two arguments

IALL (ARRAY, DIM [, MASK]) or IALL (ARRAY [, MASK])

T

The result of a bitwise AND operation

IANY (ARRAY, DIM [, MASK]) or IANY (ARRAY [, MASK])

T

The result of a bitwise OR operation

IBCLR (I, POS)

E

The specified position of argument I cleared (set to zero)

IBCHNG (I, POS)

E

The reversed value of a specified bit

IBITS (I, POS, LEN)

E

The specified substring of bits of argument I

IBSET (I, POS)

E

The specified bit in argument I set to one

ICHAR (C [, KIND])

E

The position of the specified character in the processor character set

IEOR (I, J)

E

The logical exclusive OR of the corresponding bit arguments

IFIX (X)

E

The corresponding integer value of the real argument rounded as if it were an implied conversion in an assignment

ILEN (I)

I

The length (in bits) in the two's complement representation of an integer

IMAG (Z)

E

See AIMAG

IMAGE_INDEX (COARRAY, SUB)

I

The index of the corresponding image

INDEX (STRING, SUBSTRING [, BACK, KIND])

E

The position of the specified substring in a character expression

INT (A [, KIND])

E

The corresponding integer value (truncated) of the argument

IOR (I, J)

E

The logical inclusive OR of the corresponding bit arguments

IPARITY (ARRAY, DIM [, MASK]) or IPARITY (ARRAY [, MASK])

T

The result of a bitwise exclusive OR operation

IS_CONTIGUOUS (ARRAY)

I

The contiguity of an array

IS_IOSTAT_END (I)

E

.TRUE. for an end-of-file condition

IS_IOSTAT_EOR (I)

E

.TRUE. for an end-of-record condition

ISHA (I, SHIFT)

E

Argument I shifted left or right by a specified number of bits

ISHC (I, SHIFT)

E

Argument I rotated left or right by a specified number of bits

ISHFT (I, SHIFT)

E

The logical end-off shift of the bits in argument I

ISHFTC (I, SHIFT [,SIZE])

E

The logical circular shift of the bits in argument I

ISHL (I, SHIFT)

E

Argument I logically shifted left or right by a specified number of bits

ISNAN (X)

E

Tests for Not-a-Number (NaN) values

IXOR (I, J)

E

See IEOR

KIND (X)

I

The kind type parameter of the argument

LBOUND (ARRAY [, DIM, KIND])

I

The lower bounds of an array (or one of its dimensions)

LEADZ (I)

E

The number of leading zero bits in an integer

LEN (STRING [,KIND])

I

The length (number of characters) of the argument character string

LEN_TRIM (STRING [,KIND])

E

The length of the specified string without trailing blanks

LGE (STRING_A, STRING_B)

E

A logical value determined by a > or = comparison of the arguments

LGT (STRING_A, STRING_ B)

E

A logical value determined by a > comparison of the arguments

LLE (STRING_A, STRING_B)

E

A logical value determined by a < or = comparison of the arguments

LLT (STRING_A, STRING_B)

E

A logical value determined by a < comparison of the arguments

LOC (A)

I

The internal address of the argument.

LOG (X)

E

The natural logarithm of the argument

LOG10 (X)

E

The common logarithm (base 10) of the argument

LOG_GAMMA (X)

E

The logarithm of the absolute value of the gamma function

LOGICAL (L [,KIND])

E

The logical value of the argument converted to a logical of type KIND

LSHIFT (I, POSITIVE_SHIFT)

E

See ISHFT

LSHFT (I, POSITIVE_SHIFT)

E

Same as LSHIFT; see ISHFT

MALLOC (I)

E

The starting address for the block of memory allocated

MASKL (I [,KIND])

E

A left-justified mask

MASKR (I [,KIND])

E

A right-justified mask

MATMUL (MATRIX_A, MATRIX_B)

T

The result of matrix multiplication (also called a matrix multiply function)

MAX (A1, A2 [, A3,...])

E

The maximum value in the set of arguments

MAX1 (A1, A2 [, A3,...])

E

The maximum value in the set of real arguments (returned as an integer)

MAXEXPONENT (X)

I

The maximum exponent in the model for the argument

MAXLOC (ARRAY, DIM [, MASK, KIND, BACK]) or MAXLOC (ARRAY [, MASK, KIND, BACK])

T

The rank-one array that has the location of the maximum element in the argument array

MAXVAL (ARRAY, DIM [, MASK]) or MAXVAL (ARRAY [, MASK])

T

The maximum value of the elements in the argument array

MERGE (TSOURCE, FSOURCE, MASK)

E

An array that is the combination of two conformable arrays (under a mask)

MERGE_BITS (I, J, MASK)

E

The merge of bits under a mask

MIN (A1, A2 [, A3,...])

E

The minimum value in the set of arguments

MIN1 (A1, A2 [, A3,...])

E

The minimum value in the set of real arguments (returned as an integer)

MINEXPONENT (X)

I

The minimum exponent in the model for the argument

MINLOC (ARRAY, DIM [, MASK, KIND, BACK]) or MINLOC (ARRAY [, MASK, KIND, BACK])

T

The rank-one array that has the location of the minimum element in the argument array

MINVAL (ARRAY, DIM [, MASK]) or MAXVAL (ARRAY [, MASK])

T

The minimum value of the elements in the argument array

MOD (A, P)

E

The remainder of the arguments (has the sign of the first argument)

MODULO (A, P)

E

The modulo of the arguments (has the sign of the second argument)

NEAREST (X, S)

E

The nearest different machine-representable number in a given direction

NEW_LINE (A)

I

A new line character

NINT (A [,KIND])

E

A real value rounded to the nearest integer

NORM2 (X [,DIM])

T

The L2 norm of an array

NOT (I)

E

The logical complement of the argument

NULL ([MOLD])

T

A disassociated pointer

NUM_IMAGES ()

T

The number of images

OR (I, J)

E

See IOR

PACK (ARRAY, MASK [,VECTOR])

T

A packed array of rank one (under a mask)

PARITY (MASK [, DIM])

T

The result of an exclusive OR operation

POPCNT (I)

E

The number of 1 bits in the integer argument

POPPAR (I)

E

The parity of the integer argument

PRECISION (X)

I

The decimal precision (real or complex) of the argument

PRESENT (A)

I

.TRUE. if an actual argument has been provided for an optional dummy argument

PRODUCT (ARRAY, DIM [,MASK]) or PRODUCT (ARRAY [, MASK])

T

The product of the elements of the argument array

QEXT (A)

E

The corresponding REAL(16) precision value of the argument

QFLOAT (A)

E

The corresponding REAL(16) precision value of the integer argument

RADIX (X)

I

The base of the model for the argument

RANGE (X)

I

The decimal exponent range of the model for the argument

RANF ()

E

A random number between 0.0 and RAND_MAX

RANK (A)

I

The rank of a data object

REAL (A [, KIND])

E

The corresponding real value of the argument

REPEAT (STRING, NCOPIES)

T

The concatenation of zero or more copies of the specified string

RESHAPE (SOURCE, SHAPE [, PAD,ORDER])

T

An array that has a different shape than the argument array, but the same elements

RRSPACING (X)

E

The reciprocal of the relative spacing near the argument

RSHIFT (I, NEGATIVE_SHIFT)

E

See ISHFT

RSHFT (I, N EGATIVE_SHIFT)

E

Same as RSHIFT; see ISHFT

SAME_TYPE_AS (A, B)

I

Whether two dynamic types are the same.

SCALE (X, I)

E

The value of the exponent part (of the model for the argument) changed by a specified value

SCAN (STRING, SET [, BACK, KIND])

E

The position of the specified character (or set of characters) within a string

SELECTED_CHAR_KIND (NAME)

T

The value of the kind type parameter of the character set named by the argument

SELECTED_INT_KIND ®

T

The integer kind parameter of the argument

SELECTED_REAL_KIND ([P, R, RADIX])

T

The real kind parameter of the argument; one of the optional arguments must be specified

SET_EXPONENT (X, I)

E

The value of the exponent part (of the model for the argument) set to a specified value

SHAPE (SOURCE [,KIND])

I

The shape (rank and extents) of an array or scalar

SHIFTA (I, SHIFT)

E

A right shift with fill

SHIFTL (I, SHIFT)

E

Argument IVALUE shifted left by a specified number of bits

SHIFTR (I, SHIFT)

E

Argument IVALUE shifted right by a specified number of bits

SIGN (A, B)

E

A value with the sign transferred from its second argument

SIN (X)

E

The sine of the argument, which is in radians

SIND (X)

E

The sine of the argument, which is in degreess

SINH (X)

E

The hyperbolic sine of the argument

SIZE (ARRAY [, DIM, KIND])

I

The size (total number of elements) of the argument array (or one of its dimensions)

SIZEOF (X)

I

The bytes of storage used by the argument

SNGL (X)

E

The corresponding real value of the argument

SPACING (X)

E

The value of the absolute spacing of model numbers near the argument

SPREAD (SOURCE, DIM, NCOPIES)

T

A replicated array that has an added dimension

SQRT (X)

E

The square root of the argument

STORAGE_SIZE (A [,KIND])

I

The storage size in bits

SUM (ARRAY, DIM] [, MASK]) or SUM (ARRAY [, MASK])

T

The sum of the elements of the argument array

TAN (X)

E

The tangent of the argument, which is in radians

TAND (X)

E

The tangent of the argument, which is in degrees

TANH (X)

E

The hyperbolic tangent of the argument

THIS_IMAGE () or THIS_IMAGE (COARRAY [, DIM])

T

The index of the invoking image or the cosubscripts for the image

TINY (X)

I

The smallest positive number in the model for the argument

TRAILZ (I)

E

The number of trailing zero bits in an integer

TRANSFER (SOURCE, MOLD [,SIZE])

T

The bit pattern of SOURCE converted to the type and kind parameters of MOLD

TRANSPOSE (MATRIX)

T

The matrix transpose for the rank-two argument array

TRIM (STRING)

T

The argument with trailing blanks removed

UBOUND (ARRAY [, DIM, KIND])

I

The upper bounds of an array (or one of its dimensions)

UNPACK (VECTOR, MASK, FIELD)

T

An array (under a mask) unpacked from a rank-one array

VERIFY (STRING, SET [, BACK, KIND])

E

The position of the first character in a string that does not appear in the given set of characters

XOR (I, J)

E

See IEOR

ZEXT (X [,KIND])

E

A zero-extended value of the argument

Key to Classes

E-Elemental

I-Inquiry

T-Transformational

The following table lists specific functions that have no generic function associated with them and indicates whether they are elemental, nonelemental, or inquiry functions. Optional arguments are shown within square brackets.

Specific Functions with No Generic Association

Generic Function

Class

Value Returned

CACHESIZE (N)

I

The size of a level of the memory cache

CMPLX (X [,Y] [,KIND])

E

The corresponding complex value of the argument

DCMPLX (X, Y)

E

The corresponding double complex value of the argument

DNUM (I)

E

The corresponding REAL(8) value of a character string

DPROD (X, Y)

E

The double-precision product of two real arguments

DREAL (A)

E

The corresponding double-precision value of the double-complex argument

IARG ( )

I

See IARGC

IARGC ( )

I

The index of the last command-line argument

INT_PTR_KIND ( )

I

The INTEGER kind that will hold an address

INUM (I)

E

The corresponding INTEGER(2) value of a character string

JNUM (I)

E

The corresponding INTEGER(4) value of a character string

KNUM (I)

E

The corresponding INTEGER(8) value of a character string

MCLOCK ( )

I

The sum of the current process's user time and the user and system time of all its child processes

NARGS ( )

I

The total number of command-line arguments, including the command

NUMARG ( )

I

See IARGC

QCMPLX (X, Y)

E

The corresponding COMPLEX(16) value of the argument

QNUM (I)

E

The corresponding REAL(16) value of a character string

QREAL (A)

E

The corresponding REAL(16) value of the real part of a COMPLEX(16) argument

RAN (I)

N

The next number from a sequence of pseudorandom numbers (uniformly distributed in the range 0 to 1)

RNUM (I)

E

The corresponding REAL(4) value of a character string

SECNDS (X)

E

The system time of day (or elapsed time) as a floating-point value in seconds

Key to Classes

E-Elemental

I-Inquiry

N-Nonelemental