FORTRAN 77 provides a variety of intrinsic functions which may be used
in any program unit. They are subject neither to type declarations nor
IMPLICIT
statements. Their names are not reserved keywords
but to avoid confusion, it is inadvisable to use these names as arrays,
constants, variables or userdefined external subprograms. If, however, it
is desirable to use the name of an intrinsic function as the name of a
userdefined external subprogram, then the name must be declared in an
EXTERNAL
statement in the program unit which invokes it.
If an intrinsic function
appears in the actual argument list of an
external function reference or CALL
statement, then its
specific name must be declared in an
INTRINSIC
statement.
The following table outlines the generic forms of these functions.
C stands for CHARACTER
data,
D for DOUBLE PRECISION
,
I for INTEGER
,
L for LOGICAL
,
R for REAL
(single precision)
and X for COMPLEX
(single precision). Note that the MAX
and
MIN
intrinsic functions may take any number of arguments but
the rest take either one or two arguments.
Function  Argument Type  Return Type  Description 

ABS 
X  R  modulus of a complex number 
ABS 
DIR  DIR  absolute value of a number 
ACOS 
DR  DR  arccosine of a number 
AIMAG 
X  R  imaginary part of a complex number 
AINT 
DR  DR  truncates fractional part but preserves data type 
ANINT 
DR  DR  rounds to nearest whole number but preserves data type 
ASIN 
DR  DR  arcsine of a number 
ATAN 
DR  DR  arctangent of a number 
ATAN2 
DR,DR  DR  arctangent of arg_{1} divided by arg_{2} resolved into the correct quadrant 
CHAR 
I  C  returns n^{th} character in character code table 
CMPLX 
DIRX  X  converts to the COMPLEX data type 
CMPLX 
DIR,DIR  X  converts to the COMPLEX data type
arg_{1} + i arg_{2} 
CONJG 
X  X  complex conjugate of a complex number 
COS 
DRX  DRX  cosine of an angle in radians 
COSH 
DR  DR  hyperbolic cosine 
DBLE 
DIRX  D  converts to the DOUBLE PRECISION data type 
DIM 
DIR,DIR  DIR  if arg_{1} > arg_{2}, then returns arg_{1}  arg_{2}; otherwise 0 
DPROD 
R,R  D  double precision product of two single precision numbers 
EXP 
DRX  DRX  exponential 
ICHAR 
C  I  position of first character in string in the character code table 
INDEX 
C,C  I  searches first string and returns position of second string within it 
INT 
DIRX  I  converts to the INTEGER data type by truncation 
LEN 
C  I  length of character argument 
LGE 
C,C  L  lexical comparison; true if arg_{1} >= arg_{2} in ASCII character code 
LGT 
C,C  L  lexical comparison; true if arg_{1} > arg_{2} in ASCII character code 
LLE 
C,C  L  lexical comparison; true if arg_{1} <= arg_{2} in ASCII character code 
LLT 
C,C  L  lexical comparison; true if arg_{1} < arg_{2} in ASCII character code 
LOG 
DRX  DRX  natural logarithm 
LOG10 
DRX  DRX  common logarithm 
MAX 
DIR,DIR,...  DIR  maximum value of arguments 
MIN 
DIR,DIR,...  DIR  minimum value of arguments 
MOD 
DIR,DIR  DIR,DIR  arg_{1} modulo arg_{2} 
NINT 
DR  I  converts to the INTEGER data type by rounding 
REAL 
X  R  real part of a complex number 
REAL 
DIR  R  converts to the REAL data type 
SIGN 
DIR,DIR  DIR  if arg_{2} < 0, then returns arg_{1}; else +arg_{1} 
SIN 
DRX  DRX  sine of an angle in radians 
SINH 
DR  DR  hyperbolic sine 
SQRT 
DRX  DRX  square root 
TAN 
DR  DR  tangent of an angle in radians 
TANH 
DR  DR  hyperbolic tangent 
Specific names must be used when intrinsic function names are used as
actual arguments in a procedure call. The specific name must be declared
in the INTRINSIC
statement of the calling program unit. The
following generic functions have specific names for different data types.
Generic Name  Specific Name  

Complex  Double Precision  Integer  Real  
ABS 
CABS 
DABS 
IABS 
ABS 
ACOS 
DACOS 
ACOS 

AINT 
DINT 
AINT 

ANINT 
DNINT 
ANINT 

ASIN 
DASIN 
ASIN 

ATAN 
DATAN 
ATAN 

ATAN2 
DATAN2 
ATAN2 

COS 
CCOS 
DCOS 
COS 

COSH 
DCOSH 
COSH 

DIM 
DDIM 
IDIM 
DIM 

EXP 
CEXP 
DEXP 
EXP 

LOG 
CLOG 
DLOG 
ALOG 

LOG10 
DLOG10 
ALOG10 

MOD 
DMOD 
MOD 
AMOD 

NINT 
IDNINT 
NINT 

SIGN 
DSIGN 
ISIGN 
SIGN 

SIN 
CSIN 
DSIN 
SIN 

SINH 
DSINH 
SINH 

SQRT 
CSQRT 
DSQRT 
SQRT 

TAN 
DTAN 
TAN 

TANH 
DTANH 
TANH 