This section provides a quick reference guide to the Fortran 90/95 intrinsic functions and subroutines.
Procedures marked with ‘*’ are non-generic versions of other intrinsics. Procedures marked with ‘E’ are elemental.
Procedures marked with ‘I’ are inquiry functions; these query characteristics of a variable other than its value.
Procedures marked with ‘P’ may be supplied as actual procedure
arguments; when it is used as a procedure argument all arguments are
scalar, no optional arguments are allowed, and it is not generic: if the name
is normally generic the procedure argument version is default INTEGER
if
it begins with the letter I to N, and default REAL
otherwise.
Arguments named ‘KIND
’ must be initialisation expressions.
Arguments printed in italics (e.g., ‘DIM’) are optional.
Function Name | Flags | Description |
ABS(A) | EP | Absolute value. |
ACHAR(I) | E | Produce character from ASCII value. |
ACOS(X) | EP | Arccosine. |
ADJUSTL(STRING) | E | Adjust string to the left by moving leading blanks to the end. |
ADJUSTR(STRING) | E | Adjust string to the right. |
AIMAG(Z) | EP | The imaginary part of a complex number. |
AINT(A,KIND ) | EP | Truncate to a whole number. |
ALL(MASK,DIM) | Reduce MASK with the .AND. operation. | |
ALLOCATED(ARRAY) | I | Whether an allocatable array is allocated. |
ALOG(X) | *P | LOG function restricted to scalar default real. |
ALOG10(X) | *P | LOG10 function restricted to scalar default real. |
AMAX0(A1,A2,A3,...) | * | REAL(MAX(A1,A2,A3,...)) with scalar default integer args. |
AMAX1(A1,A2,A3,...) | * | MAX function restricted to scalar default real. |
AMIN0(A1,A2,A3,...) | * | REAL(MIN(A1,A2,A3,...)) with scalar default integer args. |
AMIN1(A1,A2,A3,...) | * | MIN function restricted to scalar default integer. |
AMOD(A,P) | *P | MOD function restricted to scalar default real. |
ANINT(A,KIND) | EP | Round to a whole number. |
ANY(MASK,DIM) | Reduce MASK with the .OR. operation. | |
ASIN(X) | EP | Arcsine. |
ASSOCIATED(POINTER,TARGET) | I | Whether a pointer is associated with a target. |
ATAN(X) | EP | Arctangent. |
ATAN2(Y,X) | EP | Arctangent. |
BIT_SIZE(I) | Number of bits in an integer type. | |
BTEST(I,POS) | E | Whether a particular bit is 1. |
CABS(A) | *P | ABS function restricted to scalar default complex. |
CCOS(X) | *P | COS function restricted to scalar default complex. |
CEILING(A,KIND) | E | Smallest integer greater than or equal to A . |
CEXP(X) | *P | EXP function restricted to scalar default complex. |
CHAR(I,KIND) | E | Produce character from native coded character set value. |
CLOG(X) | *P | LOG function restricted to scalar default complex. |
CMPLX(X,Y,KIND) | E | Convert to complex. |
CONJG(Z) | EP | Complex conjugate. |
COS(X) | EP | Cosine. |
COSH(X) | EP | Hyperbolic cosine. |
COUNT(MASK,DIM) | Reduce MASK by counting .TRUE. elements. | |
CSHIFT(ARRAY,SHIFT,DIM) | Circular shift of an array. | |
CSIN(X) | *P | SIN function restricted to scalar default complex. |
CSQRT(X) | *P | SQRT function restricted to scalar default complex. |
DABS(A) | *P | ABS function restricted to scalar double precision. |
DACOS(X) | *P | ACOS function restricted to scalar double precision. |
DASIN(X) | *P | ASIN function restricted to scalar double precision. |
DATAN(X) | *P | ATAN function restricted to scalar double precision. |
DATAN2(Y,X) | *P | ATAN2 function restricted to scalar double precision. |
DBLE(A) | E | Convert to double precision. |
DCOS(X) | *P | COS function restricted to scalar double precision. |
DCOSH(X) | *P | COSH function restricted to scalar double precision. |
DDIM(X,Y) | *P | DIM function restricted to scalar double precision. |
DEXP(X) | *P | EXP function restricted to scalar double precision. |
DIGITS(X) | I | Number of mantissa digits in the model for X. |
DIM(X,Y) | EP | Non-negative difference, MAX(0,X-Y) . |
DINT(A) | *P | AINT function restricted to scalar double precision. |
DLOG(X) | *P | LOG function restricted to scalar double precision. |
DLOG10(X) | *P | LOG10 function restricted to scalar double precision. |
DMAX1(A1,A2,A3,...) | * | MAX function restricted to scalar double precision. |
DMIN1(A1,A2,A3,...) | * | MIN function restricted to scalar double precision. |
DMOD(A,P) | *P | MOD function restricted to scalar double precision. |
DNINT(A) | *P | ANINT function restricted to scalar double precision. |
DOT_PRODUCT(VECTOR_A,VECTOR_B) | Dot product. | |
DPROD(X,Y) | EP | Double precision result of X*Y. |
DSIGN(A,B) | *P | SIGN function restricted to scalar double precision. |
DSIN(X) | *P | SIN function restricted to scalar double precision. |
DSINH(X) | *P | SINH function restricted to scalar double precision. |
DSQRT(X) | *P | SQRT function restricted to scalar double precision. |
DTAN(X) | *P | TAN function restricted to scalar double precision. |
DTANH(X) | *P | TANH function restricted to scalar double precision. |
EOSHIFT(ARRAY,SHIFT,BOUNDARY,DIM) | End-off array shift. | |
EPSILON(X) | I | Number almost neglible compared to 1. |
EXP(X) | EP | Exponential (eX ). |
EXPONENT(X) | E | The exponent part of a floating-point number. |
FLOAT(A) | * | REAL function restricted to scalar default integer. |
FLOOR(A,KIND) | E | Largest integer less than or equal to A . |
FRACTION(X) | E | The mantissa of a floating-point number. |
HUGE(X) | I | The largest number in the model for a real type. |
IABS(A) | *P | ABS function restricted to scalar default integer. |
IACHAR(C) | E | ASCII value for a character. |
IAND(I,J) | E | Bitwise and. |
IBCLR(I,POS) | E | Clear specified bit. |
IBITS(I,POS,LEN) | E | Extract a group of bits. |
IBSET(I,POS) | E | Set a bit. |
ICHAR(C) | E | Native coded character set value for a character. |
IDIM(X,Y) | *P | DIM function restricted to scalar default integer. |
IDINT(A) | * | INT function restricted to scalar double precision. |
IDNINT(A) | *P | NINT function restricted to scalar double precision. |
IEOR(I,J) | E | Bitwise exclusive or. |
IFIX(A) | * | INT function restricted to scalar default real. |
INDEX(STRING,SUBSTRING,BACK) | EP | Search for substring. |
INT(A,KIND) | E | Convert to integer. |
IOR(I,J) | E | Bitwise inclusive or. |
ISHFT(I,SHIFT) | E | Shift bits. |
ISHFTC(I,SHIFT,SIZE) | E | Shift bits circularly. |
ISIGN(A,B) | *P | SIGN function restricted to scalar default integer. |
KIND(X) | I | Kind type parameter of X . |
LBOUND(ARRAY,DIM) | I | Lower bound(s) of an array. |
LEN(STRING) | IP | Length of a character string. |
LEN_TRIM(STRING) | E | Length of a character string ignoring trailing blanks. |
LGE(STRING_A,STRING_B) | E | Comparison (>= ) using ASCII collating sequence. |
LGT(STRING_A,STRING_B) | E | Comparison (> ) using ASCII collating sequence. |
LLE(STRING_A,STRING_B) | E | Comparison (<= ) using ASCII collating sequence. |
LLT(STRING_A,STRING_B) | E | Comparison (< ) using ASCII collating sequence. |
LOG(X) | EP | Natural logarithm. |
LOG10(X) | EP | Common logarithm. |
LOGICAL(L,KIND) | E | Convert to a specific logical kind. |
MATMUL(MATRIX_A,MATRIX_B) | Matrix multiplication. | |
MAX(A1,A2,A3,...) | E | Maximum value. |
MAX0(A1,A2,A3,...) | * | MAX function restricted to scalar default integer. |
MAX1(A1,A2,A3,...) | * | INT(MAX(A1,A2,A3,...)) with scalar default real args. |
MAXEXPONENT(X) | I | Maximum model exponent value for X . |
MAXLOC(ARRAY,MASK) | Position of maximum value in an array. | |
MAXLOC(ARRAY,DIM,MASK) | Dimensional reduction of maximum value positions. | |
MAXVAL(ARRAY,MASK) | Reduce a (masked) array with the MAX intrinsic. | |
MAXVAL(ARRAY,DIM,MASK) | Dimensional reduction by the MAX intrinsic. | |
MERGE(TSOURCE,FSOURCE,MASK) | E | Choose value depending on logical value. |
MIN(A1,A2,A3,...) | E | Minimum value. |
MIN0(A1,A2,A3,...) | * | MIN function restricted to scalar default integer. |
MIN1(A1,A2,A3,...) | * | INT(MIN(A1,A2,A3,...)) with scalar default real args. |
MINEXPONENT(X) | I | Minimum model exponent value for X . |
MINLOC(ARRAY,MASK) | Position of minimum value in an array. | |
MINLOC(ARRAY,DIM,MASK) | Dimensional reduction of minimum value positions. | |
MINVAL(ARRAY,MASK) | Reduce a (masked) array with the MIN intrinsic. | |
MINVAL(ARRAY,DIM,MASK) | Dimensional reduction by the MIN intrinsic. | |
MOD(A,P) | EP | Remainder; sign(result) = sign(A ). |
MODULO(A,P) | E | Modulo; sign(result) = sign(P ). |
NEAREST(X,S) | E | Nearest machine-representable number. |
NINT(A,KIND) | EP | Round and convert to integer. |
NOT(I) | E | Bitwise complement. |
NULL(MOLD) | Null (disassociated) pointer. | |
PACK(ARRAY,MASK,VECTOR) | Pack an array into a vector. | |
PRECISION(X) | I | Decimal model precision for X . |
PRESENT(A) | I | Whether an optional argument is present. |
PRODUCT(ARRAY,MASK) | Reduce a (masked) array by multiplication. | |
PRODUCT(ARRAY,DIM,MASK) | Dimensional reduction by multiplication. | |
RADIX(X) | I | Model radix for X . |
RANGE(X) | I | Decimal model exponent range for X . |
REAL(A,KIND) | E | Convert to real. |
REPEAT(STRING,NCOPIES) | Concatenate a string with itself. | |
RESHAPE(SOURCE,SHAPE,PAD,ORDER) | Reshape an array. | |
RRSPACING(X) | E | Reciprocal relative model spacing near X . |
SCALE(X,I) | E | X*RADIX(X)**I . |
SCAN(STRING,SET,BACK) | E | Look for characters in a set. |
SELECTED_INT_KIND(R) | Integer kind with at least R decimal digits. | |
SELECTED_REAL_KIND(P,R) | Real kind with at least P decimal precision and/or | |
at least R decimal exponent range. | ||
SET_EXPONENT(X,I) | E | X*RADIX(X)**(I-EXPONENT(X)) . |
SHAPE(SOURCE) | I | Shape of an array. |
SIGN(A,B) | EP | A with the sign of B . |
SIN(X) | EP | Sine. |
SINH(X) | EP | Hyperbolic sine. |
SIZE(ARRAY,DIM) | I | Size of an array or dimension. |
SNGL(A) | * | REAL function restricted to scalar double precision. |
SPACING(X) | E | Spacing of model numbers near X . |
SPREAD(SOURCE,DIM,NCOPIES) | Replicate an array in a given dimension by copying. | |
SQRT(X) | EP | Square root. |
SUM(ARRAY,MASK) | Reduce a (masked) array by addition. | |
SUM(ARRAY,DIM,MASK) | Dimensional reduction of a (masked) array by addition. | |
TAN(X) | EP | Tangent. |
TANH(X) | EP | Hyperbolic tangent. |
TINY(X) | I | Smallest model number for the kind of X . |
TRANSFER(SOURCE,MOLD,SIZE) | Copy internal representation. | |
TRANSPOSE(MATRIX) | Transpose an array. | |
TRIM(STRING) | Character string with trailing blanks removed. | |
UBOUND(ARRAY,DIM) | I | Upper bound(s) of an array. |
UNPACK(VECTOR,MASK,FIELD) | Unpack a vector into an array. | |
VERIFY(STRING,SET,BACK) | E | Look for characters not in set. |
Subroutine Name | Flags | Description |
CPU_TIME(TIME) | CPU execution time. | |
DATE_AND_TIME(DATE,TIME,ZONE,VALUES) | Date and time information. | |
MVBITS(FROM,FROMPOS,LEN,TO,TOPOS) | E | Move or copy bitfield. |
RANDOM_NUMBER(HARVEST) | Return pseudo-random number(s). | |
RANDOM_SEED(SIZE,PUT,GET) | Control pseudo-random number generator. | |
SYSTEM_CLOCK(COUNT,COUNT_RATE,COUNT_MAX) | Real-time clock information. |