Supported Fortran intrinsics in armflang

The Fortran language standards implemented in the Arm Compiler are Fortran 77, Fortran 90, Fortran 95, Fortran 2003, and Fortran 2008. This topic details the supported and unsupported Fortran intrinsics within Arm Compiler.

Overview

An intrinsic is a function made available for a given language standard, for example, Fortran 95. Intrinsic functions accept arguments and return values. When an intrinsic function is called within the source code, the compiler replaces the function with a set of automatically-generated instructions. It is best practice to use these intrinsics to enable the compiler to optimize the code most efficiently.

Note: The intrinsics listed in the following tables are specific to Fortran 90/95, unless explicitly stated.

Bit manipulation functions and subroutines

Intrinsic Description Num. of
Arguments
Argument
Type
Result Type
AND Perform a logical AND on corresponding bits of the arguments. 2 Any, except CHAR or COMPLEX INTEGER or LOGICAL
BIT_SIZE Return the number of bits (the precision) of the integer argument. 1 INTEGER INTEGER
BTEST Test the binary value of a bit in a specified position of an integer argument. 2 INTEGER, INTEGER LOGICAL
IAND Perform a bit-by-bit logical AND on the arguments. 2 INTEGER, INTEGER (of same kind) INTEGER
IBCLR Clear one bit to zero. 2 INTEGER, INTEGER >=0 INTEGER
IBITS Extract a sequence of bits. 3 INTEGER, INTEGER >=0, INTEGER >=0 INTEGER
IBSET Set one bit to one. 2 INTEGER, INTEGER >=0 INTEGER
IEOR Perform a bit-by-bit logical exclusive OR on the arguments. 2 INTEGER, INTEGER (of same kind) INTEGER
IOR Perform a bit-by-bit logical OR on the arguments. 2 INTEGER, INTEGER (of same kind) INTEGER
ISHFT Perform a logical shift. 2 INTEGER, INTEGER INTEGER
ISHFTC Perform a circular shift of the rightmost bits. 2 or 3 INTEGER, INTEGER or
INTEGER, INTEGER, INTEGER
INTEGER
LSHIFT Perform a logical shift to the left. 2 INTEGER, INTEGER INTEGER
MVBITS Copy bit sequence 5 INTEGER(IN), INTEGER(IN), INTEGER(IN), INTEGER(INOUT), INTEGER(IN) N/A
NOT Perform a bit-by-bit logical complement on the argument. 2 INTEGER INTEGER
OR Perform a logical OR on each bit of the arguments. 2 Any except CHAR or COMPLEX INTEGER or LOGICAL
POPCNT Return the number of one bits. (F2008)
1 INTEGER or bits INTEGER
POPPAR Return the bitwise parity. (F2008) 1 INTEGER or bits INTEGER
RSHIFT Perform a logical shift to the right. 2 INTEGER, INTEGER INTEGER
SHIFT Perform a logical shift. 2 Any except CHAR or COMPLEX, INTEGER INTEGER or LOGICAL 
XOR Perform a logical exclusive OR on each bit of the arguments. 2 INTEGER, INTEGER INTEGER
ZEXT Zero-extend the argument. 1 INTEGER or LOGICAL INTEGER

 

 

Elemental character and logical functions

Intrinsic Description Num. of
Arguments
Argument
Type
Result Type
ACHAR Return character in specified ASCII collating position. 1 INTEGER CHARACTER
ADJUSTL Left adjust string. 1 CHARACTER CHARACTER
ADJUSTR Right adjust string. 1 CHARACTER CHARACTER
CHAR Return character with specified ASCII value. 1 LOGICAL*1 INTEGER CHARACTER CHARACTER
IACHAR Return position of character in ASCII collating sequence. 1 CHARACTER INTEGER
ICHAR Return position of character in the character set’s collating sequence. 1 CHARACTER INTEGER
INDEX Return starting position of substring within first string. 2
3
CHARACTER, CHARACTER
CHARACTER, CHARACTER, LOGICAL
INTEGER INTEGER
LEN Return the length of string. 1 CHARACTER INTEGER
LEN_TRIM Return the length of the supplied string minus the number of trailing blanks. 1 CHARACTER INTEGER
LGE Test the supplied strings to determine if the first string is lexically greater than or equal to the second.

Note: From F2008, character kind ASCII is also supported.
2 CHARACTER, CHARACTER LOGICAL
LGT Test the supplied strings to determine if the first string is lexically greater than the second.

Note: From F2008, character kind ASCII is also supported.
2 CHARACTER, CHARACTER LOGICAL
LLE Test the supplied strings to determine if the first string is lexically less than or equal to the second.

Note: From F2008, character kind ASCII is also supported.
2 CHARACTER, CHARACTER LOGICAL
LLT Test the supplied strings to determine if the first string is lexically less than the second.

Note: From F2008, character kind ASCII is also supported.
2 CHARACTER, CHARACTER LOGICAL
LOGICAL Logical conversion. 1
2
LOGICAL
LOGICAL, INTEGER
LOGICAL LOGICAL
SCAN Scan string for characters in set. 2
3
CHARACTER, CHARACTER
CHARACTER, CHARACTER, LOGICAL
INTEGER INTEGER
VERIFY Determine if string contains all characters in set. 2
3
CHARACTER, CHARACTER
CHARACTER, CHARACTER, LOGICAL
INTEGER
 

Vector/Matrix functions

Intrinsic Description Num. of
Arguments
Argument
Type
Result Type
DOT_PRODUCT Perform dot product on two vectors. 2 INTEGER, REAL, COMPLEX,
or LOGICAL
INTEGER, REAL, COMPLEX,
or LOGICAL
MATMUL Perform matrix multiply on two matrices. 2 INTEGER, REAL, COMPLEX,
or LOGICAL
INTEGER, REAL, COMPLEX,
or LOGICAL

Note: All matrix outputs are the same type as the argument supplied.

Array reduction functions

Intrinsic Description Num. of
Arguments
Argument
Type
Result Type
ALL Determine if all array values are true. 1
2
LOGICAL
LOGICAL, INTEGER
LOGICAL
LOGICAL
ANY Determine if any array value is true. 1
2
LOGICAL
LOGICAL, INTEGER
LOGICAL
LOGICAL
COUNT Count true values in array. 1
2
LOGICAL
LOGICAL, INTEGER
INTEGER
INTEGER
MAXLOC Determine the position of the array element with the maximum value. 1
2
2
3
1
2
2
3
INTEGER
INTEGER, LOGICAL
INTEGER, INTEGER
INTEGER, INTEGER, LOGICAL
REAL
REAL, LOGICAL
REAL, INTEGER
REAL, INTEGER, LOGICAL
INTEGER
MAXVAL Determine the maximum value of the array elements. 1
2
2
3
1
2
2
3
INTEGER
INTEGER, LOGICAL
INTEGER, INTEGER
INTEGER, INTEGER, LOGICAL
REAL
REAL, LOGICAL
REAL, INTEGER
REAL, INTEGER, LOGICAL
INTEGER
INTEGER
INTEGER
INTEGER
REAL
REAL
REAL
REAL
MINLOC Determine the position of the array element with the minimum value. 1
2
2
3
1
2
2
3
INTEGER
INTEGER, LOGICAL
INTEGER, INTEGER
INTEGER, INTEGER, LOGICAL
REAL
REAL, LOGICAL
REAL, INTEGER
REAL, INTEGER, LOGICAL
INTEGER
MINVAL Determine the minimum value of the array elements. 1
2
2
3
1
2
2
3
INTEGER
INTEGER, LOGICAL
INTEGER, INTEGER
INTEGER, INTEGER, LOGICAL
REAL
REAL, LOGICAL
REAL, INTEGER
REAL, INTEGER, LOGICAL
INTEGER
INTEGER
INTEGER
INTEGER
REAL
REAL
REAL
REAL
PRODUCT Calculate the product of the elements of an array. 1
2
2
3
NUMERIC
NUMERIC, LOGICAL
NUMERIC, INTEGER
NUMERIC, INTEGER, LOGICAL
NUMERIC
SUM Calculate the sum of the elements of an array. 1
2
2
3
NUMERIC
NUMERIC, LOGICAL
NUMERIC, INTEGER
NUMERIC, INTEGER, LOGICAL
NUMERIC
 

String construction functions

Intrinsic Description Num. of
Arguments
Argument
Type
Result Type
REPEAT Concatenate copies of a string. 2 CHARACTER, INTEGER CHARACTER
TRIM Remove trailing blanks from a string. 1 CHARACTER CHARACTER
 

Array construction manipulation functions

Intrinsic Description Num. of
Arguments
Argument
Type
Result Type
CSHIFT Perform circular shift on an array. 2
3
ARRAY, INTEGER
ARRAY, INTEGER, INTEGER
ARRAY
ARRAY
EOSHIFT Perform end-off shift on an array. 2
3
3
4
ARRAY, INTEGER
ARRAY, INTEGER, Any
ARRAY, INTEGER, INTEGER
ARRAY, INTEGER, Any, INTEGER
ARRAY
ARRAY
ARRAY ARRAY
MERGE Merge two arguments based on the logical mask. 3 Any, Any, LOGICAL
The second argument must be of the same type as the first argument.
Any
PACK Pack an array into a rank-one array. 2
3
ARRAY, LOGICAL
ARRAY, LOGICAL, VECTOR
ARRAY
RESHAPE Change the shape of an array. 2
3
3
4
ARRAY, INTEGER
ARRAY, INTEGER, ARRAY
ARRAY, INTEGER, INTEGER
ARRAY, INTEGER, ARRAY, INTEGER
ARRAY
SPREAD Replicate an array by adding a dimension. 3 Any, INTEGER, INTEGER ARRAY
TRANSPOSE Transpose an array of rank two. 1 ARRAY (/m, n/)
ARRAY
(/ n, m/)
UNPACK Unpack a rank-one array into an array of multiple dimensions. 3 VECTOR, LOGICAL, ARRAY ARRAY

Note: All ARRAY outputs are the same type as the argument supplied.

General inquiry functions

Intrinsic Description Num. of
Arguments
Argument
Type
Result Type
ASSOCIATED Determine association status. 12 POINTER, POINTER, ..., POINTER, TARGET LOGICAL LOGICAL
KIND Determine the kind of an argument. 1 Any intrinsic type INTEGER
PRESENT Determine presence of optional argument. 1 Any LOGICAL
 

Numeric inquiry functions

Intrinsic Description Num. of
Arguments
Argument
Type
Result Type
DIGITS Determine the number of significant digits. 1
1
INTEGER
REAL
INTEGER
EPSILON Smallest number that can be represented. 1 REAL REAL
HUGE Largest number that can be represented. 1
1
INTEGER
REAL
INTEGER
REAL
MAXEXPONENT Value of the maximum exponent. 1 REAL INTEGER
MINEXPONENT Value of the minimum exponent. 1 REAL INTEGER
PRECISION Decimal precision. 1
1
REAL
COMPLEX
INTEGER
INTEGER
RADIX Base of the model. 1
1
INTEGER
REAL
INTEGER
INTEGER
RANGE Decimal exponent range. 1
1
1
INTEGER
REAL
COMPLEX
INTEGER
INTEGER
INTEGER
SELECTED_INT_KIND Kind-type titlemeter in range. 1 INTEGER INTEGER
SELECTED_REAL_KIND Kind-type titlemeter in range.
Syntax: SELECTED_REAL_KIND(P[, R])

where P is precision and R is the range.
1
2
INTEGER
INTEGER, INTEGER
INTEGER
INTEGER
TINY Smallest positive number that can be represented. 1 REAL REAL
 

Array inquiry functions

Intrinsic Description Num. of
Arguments
Argument
Type
Result Type
ALLOCATED Determine if an array is allocated. 1 ARRAY LOGICAL
LBOUND Determine the lower bounds. 1
2
ARRAY
ARRAY, INTEGER
INTEGER
SHAPE Determine the shape. 1 Any INTEGER
SIZE Determine the number of elements. 1
2
ARRAY
ARRAY, INTEGER
INTEGER
UBOUND Determine the upper bounds. 1
2
ARRAY
ARRAY, INTEGER
INTEGER
 

Transfer functions

Intrinsic Description Num. of
Arguments
Argument
Type
Result Type
TRANSFER Change the type but maintain bit representation. 2
3
Any, Any
Any, Any, INTEGER
Any*

*Must be of the same type as the second argument

 

Arithmetic functions

Intrinsic Description Num. of
Arguments
Argument
Type
Result Type
ABS Return absolute value of the supplied argument. 1 INTEGER
REAL
COMPLEX
INTEGER
REAL
COMPLEX
ACOS Return the arccosine (in radians) of the specified value. 1 REAL REAL
ACOSD Return the arccosine (in degrees) of the specified value. 1 REAL REAL
AIMAG Return the value of the imaginary part of a complex number. 1 COMPLEX REAL
AINT Truncate the supplied value to a whole number. 2 REAL, INTEGER REAL
AND Perform a logical AND on corresponding bits of the arguments. 2 Any, except CHAR or COMPLEX INTEGER or LOGICAL 
ANINT Return the nearest whole number to the supplied argument. 2 REAL, INTEGER REAL
ASIN Return the arcsine (in radians) of the specified value. 1 REAL REAL
ASIND Return the arcsine (in degrees) of the specified value. 1 REAL REAL
ATAN Return the arctangent (in radians) of the specified value. 1 REAL REAL
ATAN2 Return the arctangent (in radians) of the specified pair of values. 2 REAL, REAL REAL
ATAN2D Return the arctangent (in degrees) of the specified pair of values. 1 REAL, REAL REAL
ATAND Return the arctangent (in degrees) of the specified value. 1 REAL REAL
CEILING Return the least integer greater than or equal to the supplied real argument. 2 REAL, KIND INTEGER
CMPLX Convert the supplied argument or arguments to complex type. 2
3
INTEGER, REAL, or COMPLEX;
INTEGER, REAL, or COMPLEX;
INTEGER, REAL, or COMPLEX;
INTEGER or REAL
KIND
COMPLEX
COMPL Perform a logical complement on the argument. 1 Any, except CHAR or COMPLEX N/A
COS Return the cosine (in radians) of the specified value. 1 REAL
COMPLEX
REAL
COSD Return the cosine (in degrees) of the specified value. 1 REAL
COMPLEX
REAL
COSH Return the hyperbolic cosine of the specified value. 1 REAL REAL
DBLE Convert to double precision real. 1
INTEGER, REAL, or COMPLEX REAL
DCMPLX Convert the supplied argument or arguments to double complex type. 1
2
INTEGER, REAL, or COMPLEX
INTEGER, REAL
DOUBLE COMPLEX
DPROD Double precision real product. 2 REAL, REAL REAL (double precision)
EQV Perform a logical exclusive NOR on the arguments. 2 Any, except CHAR or COMPLEX INTEGER or LOGICAL 
EXP Exponential function. 1 REAL
COMPLEX
REAL
COMPLEX
EXPONENT Return the exponent part of a real number. 1 REAL INTEGER
FLOOR Return the greatest integer less than or equal to the supplied real argument. 1
2
REAL
REAL, KIND
REAL
KIND
FRACTION Return the fractional part of a real number. 1 REAL INTEGER
IINT Convert a value to a short integer type. 1 INTEGER, REAL, or COMPLEX INTEGER
ININT Return the nearest short integer to the real argument. 1 REAL INTEGER
INT Convert a value to integer type. 1
2
INTEGER, REAL, or COMPLEX
INTEGER, REAL, or COMPLEX; KIND
INTEGER
INT8 Convert a real value to a long integer type. 1 REAL INTEGER
IZEXT Zero-extend the argument. 1 LOGICAL or INTEGER INTEGER
JINT Convert a value to an integer type. 1 INTEGER, REAL, or COMPLEX INTEGER
JNINT Return the nearest integer to the real argument. 1 REAL INTEGER
KNINT Return the nearest integer to the real argument. 1 REAL INTEGER (long)
LOG Return the natural logarithm. 1 REAL or COMPLEX REAL
LOG10 Return the common logarithm. 1 REAL REAL
MAX Return the maximum value of the supplied arguments. 2 or more INTEGER or REAL
(all of same kind)
Same as argument type
MIN Return the minimum value of the supplied arguments. 2 or more INTEGER or REAL
(all of same kind)
Same as argument type
MOD Find the remainder. 2 or more INTEGER or REAL,
INTEGER or REAL
(all of same kind)
Same as argument type
MODULO Return the modulo value of the arguments. 2 or more INTEGER or REAL,
INTEGER or REAL
(all of same kind)
Same as argument type
NEAREST Return the nearest different number that can be represented, by a machine, in a given direction. 2 REAL, non-zero REAL REAL
NEQV Perform a logical exclusive OR on the arguments. 2 Any, except CHAR or COMPLEX INTEGER or LOGICAL 
NINT Convert a value to integer type. 1
2
REAL
REAL, KIND
INTEGER
REAL Convert the argument to real. 1
2
INTEGER, REAL, or COMPLEX
INTEGER, REAL, or COMPLEX; KIND
REAL
RRSPACING Return the reciprocal of the relative spacing of model numbers near the argument value. 1 REAL REAL
SET_EXPONENT Return the model number whose fractional part is the fractional part of the model representation of the first argument and whose exponent part is the second argument. 2 REAL, INTEGER REAL
SIGN Return the absolute value of A times the sign of B.
Syntax: SIGN(A, B)
2 INTEGER or REAL,
INTEGER or REAL

Same as argument
SIN Return the sine (in radians) of the specified value. 1 REAL COMPLEX REAL
SIND Return the sine (in degrees) of the specified value. 1 REAL COMPLEX REAL
SINH Return the hyperbolic sine of the specified value. 1 REAL REAL
SPACING Return the relative spacing of model numbers near the argument value. 1 REAL REAL
SQRT Return the square root of the argument. 1 REAL
COMPLEX
REAL
COMPLEX
TAN Return the tangent (in radians) of the specified value. 1 REAL REAL
TAND Return the tangent (in degrees) of the specified value. 1 REAL REAL
TANH Return the hyperbolic tangent of the specified value. 1 REAL REAL
 

Miscellaneous functions

Intrinsic Description Num. of
Arguments
Argument
Type
Result Type
LOC Return the argument address. 1 NUMERIC INTEGER
NULL Assign a disassociated status. 0
1

POINTER
POINTER
POINTER
 

Fortran 2003 functions

Intrinsic Description Num. of
Arguments
Argument
Type
Result Type
COMMAND_ ARGUMENT_COUNT Return a scalar of type default integer that is equal to the number of arguments passed on the command line when the containing program was invoked. If there were no command arguments passed, the result is 0. 0 None INTEGER
EXTENDS_TYPE_OF Determine whether the dynamic type of A is an extension type of the dynamic type of B.
Syntax: EXTENDS_TYPE_OF(A, B)
2 Objects of extensible type LOGICAL SCALAR
GET_COMMAND_ ARGUMENT Return the specified command line argument of the command that invoked the program. 1 to 4 INTEGER
plus optionally:
CHAR, INTEGER, INTEGER
A command argument
GET_COMMAND Return the entire command line that was used to invoke the program. 0 to 3 CHAR, INTEGER, INTEGER A command line
GET_ENVIRONMENT _VARIABLE Return the value of the specified environment variable. 1 to 5 CHAR, CHAR, INTEGER, INTEGER, LOGICAL Stores the value of NAME in VALUE
IS_IOSTAT_END Test whether a variable has the value of the I/O status: ‘end of file’. 1 INTEGER LOGICAL
IS_IOSTAT_EOR Test whether a variable has the value of the I/O status: ‘end of record’. 1 INTEGER LOGICAL
LEADZ Count the number of leading zero bits. 1 INTEGER or bits INTEGER
MOVE_ALLOC Move an allocation from one allocatable object to another. 2 Any type and rank None
NEW_LINE Return the newline character. 1 CHARACTER CHARACTER
SAME_TYPE_AS Determine whether the dynamic type of A is the same as the dynamic type of B.
Syntax: SAME_TYPE_AS(A, B)
2 Objects of extensible type LOGICAL SCALAR
SCALE Return the value A * B where B is the base of the number system in use for A.
Syntax: SCALE(A, B)
2 REAL, INTEGER REAL
 

Fortran 2008 functions

Intrinsic Description Num. of
Arguments
Argument
Type
Result Type
ACOSH, ASINH, ATANH Inverse hyperbolic trigonometric functions 1 REAL
REAL


BESSEL_J0
BESSEL_J1
BESSEL_JN
BESSEL_Y0
BESSEL_Y1
BESSEL_YN
Bessel function of :

the first kind of order 0.
the first kind of order 1.
the first kind.
the second kind of order 0.
the second kind of order 1.
the second kind.


1
1
2 or 3
1
1
2 or 3


REAL
REAL
INTEGER, REAL or INTEGER, INTEGER, REAL
REAL
REAL
INTEGER, REAL or INTEGER, INTEGER, REAL


REAL
REAL
REAL
REAL
REAL
REAL
C_SIZEOF Calculates the number of bytes of storage the expression A occupies.
Syntax: C_SIZEOF(A)
1
Any
INTEGER
COMPILER_OPTIONS Options passed to the compiler.
None
None
STRING
COMPILER_VERSION Compiler version string
None
None CHARACTER
ERF
ERFC

ERFC_SCALED
Error function.
Complementary error function.
Exponentially-scaled complementary error function.
1
1

1
REAL
REAL

REAL
REAL
REAL

REAL
FINDLOC Finds the location of a specified value in an array.
Syntax: FINDLOC(ARRAY, VALUE, DIM, MASK, KIND, BACK)
or FINDLOC(ARRAY, VALUE, MASK, KIND, BACK)
3 to 6
ARRAY VALUE, DIM[, MASK, KIND, BACK], or
ARRAY, VALUE[, MASK, KIND, BACK]
INTEGER ARRAY
GAMMA



LOG_GAMMA
Computes Gamma of A. For positive, integer values of X.

Computes the natural logarithm of the absolute value of the Gamma function.
1



1
REAL (not zero or negative)



REAL (not zero or negative)
REAL



REAL
HYPOT Euclidean distance function.
2
REAL, REAL
REAL
IS_CONTIGUOUS Tests the contiguity of an array
1
ARRAY
LOGICAL
LEADZ Returns the number of leading zero bits of an integer.
1
INTEGER
INTEGER
POPCNT Return the number of one bits.
1 INTEGER
INTEGER
POPPAR Return the bitwise parity. 1 INTEGER
INTEGER
SELECTED_REAL_KIND Kind type titlemeter in range.
Syntax: SELECTED_REAL_KIND(P[, R, RADIX])

where P is precision and R is the range.

Note:
Radix argument added for F2008.
1
2
3
INTEGER
INTEGER, INTEGER
INTEGER, INTEGER, INTEGER
INTEGER
INTEGER
INTEGER
STORAGE_SIZE Storage size of argument A, in bits.
Syntax: STORAGE_SIZE(A[, KIND])
1[, 2]
SCALAR or ARRAY[, INTEGER]
INTEGER
 

Subroutines

Intrinsic Description Num. of
Arguments
Argument
Type
CPU_TIME Return processor time. 1 REAL (OUT)
DATE_AND_TIME Return the date and time. 4 (all optional) DATE (CHARACTER, OUT)
TIME (CHARACTER, OUT)
ZONE (CHARACTER, OUT)
VALUES (INTEGER, OUT)
RANDOM_NUMBER Generate pseudo-random numbers. 1 REAL (OUT)
RANDOM_SEED Set or query pseudo-random number generator. 0
1
1
1

SIZE (INTEGER, OUT)
PUT (INTEGER ARRAY, IN)
GET (INTEGER ARRAY, OUT)
SYSTEM_CLOCK Query the real time clock. 3 (optional) COUNT (INTEGER, OUT)
COUNT_RATE (REAL, OUT)
COUNT_MAX (INTEGER, OUT)
 

Non-standard intrinsics

Intrinsic Type Description Num. Of Arguments Argument type Result
GETENV Subroutine Get the string value of the environment variable NAME, and return it in VALUE.
If it does not exist or if its value is not present, VALUE is filled with blanks.
Syntax:
subroutine GETENV(NAME, VALUE)
character*(*) NAME
character*(*) VALUE
2 CHARACTER, CHARACTER CHARACTER
GETCWD Subroutine, function Return the pathname of the current working directory in DIR.
Note: Only use either the subroutine or function form in any given program unit, do not use both.
Syntax:
integer function GETCWD(DIR)
character*(*) DIR
1 CHARACTER CHARACTER
GETARG Subroutine Return the N-th command line argument in VALUE.
Note: The 0th argument is the command name.
Syntax:
subroutine GETARG(N, VALUE)
integer N
character*(*) VALUE
1 INTEGER,
CHARACTER
CHARACTER
IARGC Function Return the number of command line arguments passed on the command line following the program invoke.
Syntax:
integer function IARGC()
0
INTEGER

Unsupported functions

The following Fortran 2008 instrinsics are currently not supported:

Intrinsic Description Num. of
Arguments
Argument
Type
Result Type
ACOSH, ASINH,  ATANH Inverse hyperbolic trigonometric fucntions. 1
COMPLEX COMPLEX
BGE
BGT
BLE
BLT
Bitwise greater than or equal to.
Bitwise greater than.
Bitwise less than or equal to.
Bitwise less than.
2
2
2
2
INTEGER, INTEGER
INTEGER, INTEGER
INTEGER, INTEGER
INTEGER, INTEGER
LOGICAL
LOGICAL
LOGICAL
LOGICAL
DSHIFTL



DSHIFTR
Combined left shift.



Combined right shift.
3



3
INTEGER or BOZ constant, INTEGER or BOZ constant, INTEGER

INTEGER or BOZ constant, INTEGER or BOZ constant, INTEGER
INTEGER


INTEGER
IALL
IANY
IPARITY



Bitwise AND of array elements.
Bitwise OR of array elements.
Bitwise XOR of array elements.

Syntax: INTRINSIC(ARRAY[, DIM[, MASK]])
1
1
1



ARRAY
ARRAY
ARRAY



ARRAY
ARRAY
ARRAY



IMAGE_INDEX


NUM_IMAGES


THIS_IMAGE
Co-subscript to image index conversion.


Number of images.


Co-subscript index of this image.
2


0, 1, or 2


0, 1, or 2
COARRAY, INTEGER


None, INTEGER, or INTEGER, LOGICAL

None, INTEGER, INTEGER or COARRAY, INTEGER
INTEGER


INTEGER



INTEGER
LCOBOUND



UCOBOUND



Lower co-dimension of bounds of an array.



Upper co-dimension of bounds of an array.

Syntax: INTRINSIC(COARRAY[, DIM[, KIND]])
1



1



COARRAY



COARRAY



INTEGER



INTEGER



MASKL
MASKR



Left justified mask.
Right justified mask.

Syntax: INTRINSIC(I[, KIND])
1[, or 2]
1[, or 2]


INTEGER[, INTEGER]
INTEGER[, INTEGER]


INTEGER
INTEGER


MERGE_BITS Merge of bits under mask.
3
INTEGER, INTEGER, INTEGER
INTEGER
NORM2 Euclidean vector norm.
Syntax: NORM2(ARRAY[, DIM])
1[, or 2]
REAL ARRAY[, INTEGER]
ARRAY
PARITY Reduction with exclusive OR.
Syntax: PARITY(MASK[, DIM])
1[, or 2]
LOGICAL ARRAY[,INTEGER]
LOGICAL
SHIFTA
SHIFTL
SHIFTR
Right shift with fill.
Left shift.
Right shift.
2
2
2
INTEGER, INTEGER
INTEGER, INTEGER
INTEGER, INTEGER
INTEGER
INTEGER
INTEGER
TRAILZ Number of trailing zero bits of an integer.
1 INTEGER INTEGER
 

Unsupported subroutines

The following Fortran 2008 subroutines are not currently supported:

Intrinsic Description Num. of
Arguments
Argument
Type
ATOMIC_DEFINE




ATOMIC_REF


Defines the variable ATOM with the value VALUE atomically.
Syntax: ATOMIC_DEFINE(ATOM, VALUE[, STAT])

Atomically assigns the value of the variable ATOM to VALUE.
Syntax: ATOMIC_REF(ATOM, VALUE[, STAT])
2[, or 3]





2[, or 3]


INTEGER or LOGICAL, INTEGER or LOGICAL[, INTEGER]



INTEGER or LOGICAL, INTEGER orLOGICAL[, INTEGER]
EXECUTE_COMMAND_LINE Execute a shell command.
Syntax: EXECUTE_COMMAND_LINE(COMMAND [, WAIT, EXITSTAT, CMDSTAT, CMDMSG])
1
STRING

Resources