Appendix A. Intrinsic Functions

This appendix summarizes the intrinsic functions that can be called from a Fortran program. Each function is also listed on a reference page; for example, AINT is listed on the aint(3f) reference page.

In addition to the standard intrinsic functions discussed here, MIPSpro Fortran 77 also supports extended intrinsic subroutines and a few extended intrinsic functions. See the MIPSpro Fortran 77 Programmer's Guide for documentation about these extended features.

This appendix discusses the following topics:

Generic and Specific Names

A generic name is the name given to a class of objects. Intrinsic functions that perform the same mathematical function, such as square root, are given a single name. For example, the generic name of the square root function is SQRT; this function has six specific names for different data types: SQRT, DSQRT, QSQRT, CSQRT, ZSQRT, and CQSQRT (see Table A-1). However, you can use the generic name SQRT regardless of the data type of the arguments.

An intrinsic function preceded by the letters CD is equivalent to the generic function with the same base name, except that the arguments must be of type DOUBLE COMPLEX.

Intrinsic functions starting with II are equivalent to generic functions with the same base name, except that the arguments must of type INTEGER*2. Similarly, arguments to intrinsic functions starting with JI must be type INTEGER*4: for example, IIAND, IIQINT, IIQNNT, JIQINT, JIQNNT.

A function reference can be used as a primary in an expression. The following example involves referencing an intrinsic function:

X = SQRT(B**2-4*A*C) 

The result of a function becomes undefined when its arguments are not mathematically defined or exceed the numeric range of the processor.

Operational Conventions and Restrictions

For most intrinsic functions, the data type of the result of the intrinsic function is the same as the arguments. If two or more arguments are required or permitted, then all arguments must be of the same type. An IMPLICIT statement does not change the data type of a specific or generic name of an intrinsic function.

If an intrinsic function name is used as an actual argument in an external procedure reference, the name must be one of the specific names and must appear in an INTRINSIC statement. However, names of intrinsic functions for type conversion, for lexical relationship, and for choosing the smallest or largest value cannot be used as actual arguments.

Table of Functions

Table A-1 lists the available intrinsic functions. Operational conventions and restrictions (other than those already given) are listed at the end of the table.

Table A-1. Intrinsic Functions

Function

Number of Arguments

Generic Name

Specific Name

Type of Argument

Type of Result

Conversion to INTEGER

1

INTa

--

--

--

--

--

--

--

--

IINT

JINT

KINT

IIDINT

JIDINT

KIDINT

INTEGER*1

INTEGER*1

INTEGER*1

INTEGER*2

INTEGER*2

INTEGER*4

INTEGER*4

INTEGER*8

REAL*4

REAL*4

REAL*4

REAL*8

REAL*8

REAL*8

INTEGER*2

INTEGER*4

INTEGER*8

INTEGER*4

INTEGER*8

INTEGER*4

INTEGER*8

INTEGER*8

INTEGER*2

INTEGER*4

INTEGER*8

INTEGER*2

INTEGER*4

INTEGER*8

 

 

 

IIQINT

JIQINT

REAL*16

REAL*16

INTEGER*2

INTEGER*4

 

 

 

--

--

--

--

--

--

--

--

--

COMPLEX*8

COMPLEX*8

COMPLEX*8

COMPLEX*16

COMPLEX*16

COMPLEX*16

COMPLEX*32

COMPLEX*32

COMPLEX*32

INTEGER*2

INTEGER*4

INTEGER*8

INTEGER*2

INTEGER*4

INTEGER*8

INTEGER*2

INTEGER*4

INTEGER*8

 

1

SHORT

--

--

--

--

--

--

--

--

--

INTEGER*1

INTEGER*2

INTEGER*4

REAL*4

REAL*8

REAL*16

COMPLEX*8

COMPLEX*16

COMPLEX*32

INTEGER*2

INTEGER*2

INTEGER*2

INTEGER*2

INTEGER*2

INTEGER*2

INTEGER*2

INTEGER*2

INTEGER*2

 

1

LONG

--

--

--

--

--

--

--

--

--

INTEGER*1

INTEGER*2

INTEGER*4

REAL*4

REAL*8

REAL*16

COMPLEX*8

COMPLEX*16

COMPLEX*32

INTEGER*4

INTEGER*4

INTEGER*4

INTEGER*4

INTEGER*4

INTEGER*4

INTEGER*4

INTEGER*4

INTEGER*4

 

1

IFIX

IIFIX

JIFIX

KIFIX

REAL*4

REAL*4

REAL*4

INTEGER*2

INTEGER*4

INTEGER*8

 

1

IDINT

IIDINT

JIDINT

KIDINT

REAL*8

REAL*8

REAL*8

INTEGER*2

INTEGER*4

INTEGER*8

 

1

IQINT

IIQINT

JIQINT

REAL*16

REAL*16

INTEGER*2

INTEGER*4

Truncation

1

AINT

AINT

DINT

QINT

REAL*4

REAL*8

REAL*16

REAL*4

REAL*8

REAL*16

Conversion to REAL

1

REAL

--

FLOATI

FLOATJ

FLOATK

--

SNGL

SNGLQ

--

--

--

INTEGER*1

INTEGER*2

INTEGER*4

INTEGER*8

REAL*4

REAL*8

REAL*16

COMPLEX*8

COMPLEX*16

COMPLEX*32

REAL*4

REAL*4

REAL*4

REAL*4

REAL*4

REAL*4

REAL*4

REAL*4

REAL*4

REAL*4

 

1

FLOAT

--

FLOATI

FLOATJ

FLOATK

INTEGER*1

INTEGER*2

INTEGER*4

INTEGER*8

REAL*4

REAL*4

REAL*4

REAL*4

 

1

SNGL

--

FLOATI

FLOATJ

FLOATK

REAL

--

SNGLQ

INTEGER*1

INTEGER*2

INTEGER*4

INTEGER*8

REAL*4

REAL*8

REAL*16

REAL*4

REAL*4

REAL*4

REAL*4

REAL*4

REAL*4

REAL*4

Conversion to DOUBLE PRECISION

1

DBLE

--

--

--

--

DBLE

--

DBLEQ

INTEGER*1

INTEGER*2

INTEGER*4

INTEGER*8

REAL*4

REAL*8

REAL*16

REAL*8

REAL*8

REAL*8

REAL*8

REAL*8

REAL*8

REAL*8

 

 

 

--

--

--

COMPLEX*8

COMPLEX*16

COMPLEX*32

REAL*8

REAL*8

REAL*8

 

1

DFLOAT

--

DFLOTI

DFLOTJ

DFLOTK

DFLOATK

INTEGER*1

INTEGER*2

INTEGER*4

INTEGER*8

INTEGER*8

REAL*8

REAL*8

REAL*8

REAL*8

REAL*8

Conversion to REAL*16

1

QEXT

 

 

--

--

--

QEXT

QEXTD

--

--

--

--

INTEGER*1

INTEGER*2

INTEGER*4

REAL*4

REAL*8

REAL*16

COMPLEX*8

COMPLEX*16

COMPLEX*32

REAL*16

REAL*16

REAL*16

REAL*16

REAL*16

REAL*16

REAL*16

REAL*16

REAL*16

Integer-to-

REAL*16 conversion

1

QFLOAT

--

--

--

INTEGER*2

INTEGER*4

INTEGER*8

REAL*16

REAL*16

REAL*16

Conversion to COMPLEX

1 or 2

1 or 2

1 or 2

1 or 2

1 or 2

1 or 2

1 or 2

1

1

1

CMPLX

--

--

--

--

--

--

--

--

--

--

INTEGER*1

INTEGER*2

INTEGER*4

INTEGER*8

REAL*4

REAL*8

REAL*16

COMPLEX*8

COMPLEX*16

COMPLEX*32

COMPLEX*8

COMPLEX*8

COMPLEX*8

COMPLEX*8

COMPLEX*8

COMPLEX*8

COMPLEX*8

COMPLEX*8

COMPLEX*8

COMPLEX*8

Complex conjugate

1

CONJG

CONJG

DCONJG

QCONJG

COMPLEX*8

COMPLEX*16

COMPLEX*32

COMPLEX*8

COMPLEX*16

COMPLEX*32

Conversion to double COMPLEX

1 or 2

1 or 2

1 or 2

1 or 2

1 or 2

1 or 2

1 or 2

1

1

1

DCMPLX

--

--

--

--

--

--

--

--

--

--

INTEGER*1

INTEGER*2

INTEGER*4

INTEGER*8

REAL*4

REAL*8

REAL*16

COMPLEX*8

COMPLEX*16

COMPLEX*32

COMPLEX*16

COMPLEX*16

COMPLEX*16

COMPLEX*16

COMPLEX*16

COMPLEX*16

COMPLEX*16

COMPLEX*16

COMPLEX*16

COMPLEX*16

Conversion to quad COMPLEX

1 or 2

1 or 2

1 or 2

1 or 2

1 or 2

1 or 2

1 or 2

1

1

1

QCMPLX

--

--

--

--

--

--

--

--

--

--

INTEGER*1

INTEGER*2

INTEGER*4

INTEGER*8

REAL*4

REAL*8

REAL*16

COMPLEX*8

COMPLEX*16

COMPLEX*32

COMPLEX*32

COMPLEX*32

COMPLEX*32

COMPLEX*32

COMPLEX*32

COMPLEX*32

COMPLEX*32

COMPLEX*32

COMPLEX*32

COMPLEX*32

Conversion to character

1

CHAR

--

--

--

--

--

LOGICAL*1

INTEGER*1

INTEGER*2

INTEGER*4

INTEGER*8

CHARACTER

CHARACTER

CHARACTER

CHARACTER

CHARACTER

Maximum value

2 or more

MAX

--

IMAX0

JMAX0

KMAX0

AMAX1

DMAX1

QMAX1

INTEGER*1

INTEGER*2

INTEGER*4

INTEGER*8

REAL*4

REAL*8

REAL*16

INTEGER*1

INTEGER*2

INTEGER*4

INTEGER*8

REAL*4

REAL*8

REAL*16

 

 

MAX0

--

IMAX0

JMAX0

KMAX0

INTEGER*1

INTEGER*2

INTEGER*4

INTEGER*8

INTEGER*1

INTEGER*2

INTEGER*4

INTEGER*8

 

 

MAX1

IMAX1

JMAX1

KMAX1

REAL*4

REAL*4

REAL*4

INTEGER*2

INTEGER*4

INTEGER*8

 

 

AMAX0

--

AIMAX0

AJMAX0

AKMAX0

INTEGER*1

INTEGER*2

INTEGER*4

INTEGER*8

REAL*4

REAL*4

REAL*4

REAL*4

Minimum value

2 or more

MIN

--

IMIN0

JMIN0

KMIN0

AMIN1

DMIN1

QMIN1

INTEGER*1

INTEGER*2

INTEGER*4

INTEGER*8

REAL*4

REAL*8

REAL*16

INTEGER*1

INTEGER*2

INTEGER*4

INTEGER*8

REAL*4

REAL*8

REAL*16

 

 

MIN0

--

IMIN0

JMIN0

KMIN0

INTEGER*1

INTEGER*2

INTEGER*4

INTEGER*8

INTEGER*1

INTEGER*2

INTEGER*4

INTEGER*8

 

 

MIN1

IMIN1

JMIN1

KMIN1

REAL*4

REAL*4

REAL*4

INTEGER*2

INTEGER*4

INTEGER*8

 

 

AMIN0

--

AIMIN0

AJMIN0

AKMIN0

INTEGER*1

INTEGER*2

INTEGER*4

INTEGER*8

REAL*4

REAL*4

REAL*4

REAL*4

Nearest integer

1

NINTb

ININT

JNINT

KNINT

IIDNNT

JIDNNT

KIDNNT

IIQNNT

JIQNNT

KIQNNT

REAL*4

REAL*4

REAL*4

REAL*8

REAL*8

REAL*8

REAL*16

REAL*16

REAL*16

INTEGER*2

INTEGER*4

INTEGER*8

INTEGER*2

INTEGER*4

INTEGER*8

INTEGER*2

INTEGER*4

INTEGER*8

 

 

ANINT

ANINT

DNINT

QNINT

REAL*4

REAL*8

REAL*16

REAL*4

REAL*8

REAL*16

 

 

IDNINT

IIDNNT

JIDNNT

KIDNNT

REAL*8

REAL*8

REAL*8

INTEGER*2

INTEGER*4

INTEGER*8

 

 

IQNINT

IIQNNT

JIQNNT

KIQNNT

REAL*16

REAL*16

REAL*16

INTEGER*2

INTEGER*4

INTEGER*8

Zero-Extend functions

1

ZEXT

IZEXT

--

--

--

JZEXT

--

--

--

--

--

KZEXT

--

--

--

--

--

--

--

LOGICAL*1

LOGICAL*2

INTEGER*1

INTEGER*2

LOGICAL*1

LOGICAL*2

LOGICAL*4

INTEGER*1

INTEGER*2

INTEGER*4

LOGICAL*1

LOGICAL*2

LOGICAL*4

LOGICAL*8

INTEGER*1

INTEGER*2

INTEGER*4

INTEGER*8

INTEGER*2

INTEGER*2

INTEGER*2

INTEGER*2

INTEGER*4

INTEGER*4

INTEGER*4

INTEGER*4

INTEGER*4

INTEGER*4

INTEGER*8

INTEGER*8

INTEGER*8

INTEGER*8

INTEGER*8

INTEGER*8

INTEGER*8

INTEGER*8

Absolute value

1

ABS

--

IIABS

JIABS

KIABS

ABS

DABS

QABS

CABS

CDABS

ZABS

CQABS

INTEGER*1

INTEGER*2

INTEGER*4

INTEGER*8

REAL*4

REAL*8

REAL*16

COMPLEX*8

COMPLEX*16

COMPLEX*16

COMPLEX*32

INTEGER*1

INTEGER*2

INTEGER*4

INTEGER*8

REAL*4

REAL*8

REAL*16

COMPLEX*8

COMPLEX*16

COMPLEX*16

COMPLEX*32

 

1

IABSc

--

IIABS

JIABS

KIABS

INTEGER*1

INTEGER*2

INTEGER*4

INTEGER*8

INTEGER*1

INTEGER*2

INTEGER*4

INTEGER*8

Remaindering

2

MODd

--

IMOD

JMOD

KMOD

AMOD

DMOD

QMOD

INTEGER*1

INTEGER*2

INTEGER*4

INTEGER*8

REAL*4

REAL*8

REAL*16

INTEGER*1

INTEGER*2

INTEGER*4

INTEGER*8

REAL*4

REAL*8

REAL*16

Transfer of sign

2

SIGN

--

IISIGN

JISIGN

KISIGN

SIGN

DSIGN

QSIGN

INTEGER*1

INTEGER*2

INTEGER*4

INTEGER*8

REAL*4

REAL*8

REAL*16

INTEGER*1

INTEGER*2

INTEGER*4

INTEGER*8

REAL*4

REAL*8

REAL*16

 

2

ISIGNe

--

IISIGN

JISIGN

KISIGN

INTEGER*1

INTEGER*2

INTEGER*4

INTEGER*8

INTEGER*1

INTEGER*2

INTEGER*4

INTEGER*8

Positive difference

2

DIM

--

IIDIM

JIDIM

KIDIM

DIM

DDIM

QDIM

INTEGER*1

INTEGER*2

INTEGER*4

INTEGER*8

REAL*4

REAL*8

REAL*16

INTEGER*1

INTEGER*2

INTEGER*4

INTEGER*8

REAL*4

REAL*8

REAL*16

 

2

IDIM

--

IIDIM

JIDIM

KIDIM

INTEGER*1

INTEGER*2

INTEGER*4

INTEGER*8

INTEGER*1

INTEGER*2

INTEGER*4

INTEGER*8

DOUBLE PRECISION product of REALs

2

 

DPROD

REAL*4

REAL*8

REAL*16 product of two REAL*8

2

 

QPROD

REAL*8

REAL*16

Length of character entry

1

 

LEN

CHARACTER

INTEGER*4

Index of a substring

2

 

INDEXf

CHARACTER

INTEGER*4

Character (ASCII value of 1-byte character argument)

1

ICHAR

 

--

--

--

CHARACTER

CHARACTER

CHARACTER

INTEGER*2

INTEGER*4

INTEGER*8

Logically greater than or equal

2

 

LGE

CHARACTER

LOGICAL*4

Logically greater than

2

 

LGT

CHARACTER

LOGICAL*4

Logically less than or equal

2

 

LLE

CHARACTER

LOGICAL*4

Logically less than

2

 

LLTg

CHARACTER

LOGICAL*4

Imaginary part of complex number

1

IMAG

AIMAG

DIMAG

QIMAG

COMPLEX*8

COMPLEX*16

COMPLEX*32

REAL*4

REAL*8

REAL*16

Real part of complex number

1

REAL

REAL

DREAL

QREAL

COMPLEX*8

COMPLEX*16

COMPLEX*32

REAL*4

REAL*8

REAL*16

Square root

1

SQRT

SQRTh

DSQRT

QSQRT

CSQRT

CDSQRT

ZSQRT

CQSQRT

REAL*4

REAL*8

REAL*16

COMPLEX*8

COMPLEX*16

COMPLEX*16

COMPLEX*32

REAL*4

REAL*8

REAL*16

COMPLEX*8

COMPLEX*16

COMPLEX*16

COMPLEX*32

Exponential

1

EXP

EXP

DEXP

QEXP

CEXP

CDEXP

ZEXP

CQEXP

REAL*4

REAL*8

REAL*16

COMPLEX*8

COMPLEX*16

COMPLEX*16

COMPLEX*32

REAL*4

REAL*8

REAL*16

COMPLEX*8

COMPLEX*16

COMPLEX*16

COMPLEX*32

Natural logarithm

1

LOG

ALOGi

DLOG

QLOG

CLOG

CDLOG

ZLOG

CQLOG

REAL*4

REAL*8

REAL*16

COMPLEX*8

COMPLEX*16

COMPLEX*16

COMPLEX*32

REAL*4

REAL*8

REAL*16

COMPLEX*8

COMPLEX*16

COMPLEX*16

COMPLEX*32

Common logarithm

1

LOG10

ALOG10

DLOG10

QLOG10

REAL*4

REAL*8

REAL*16

REAL*4

REAL*8

REAL*16

Sine

1

SIN

SIN

DSIN

QSIN

CSIN

CDSIN

ZSIN

CQSIN

REAL*4

REAL*8

REAL*16

COMPLEX*8

COMPLEX*16

COMPLEX*16

COMPLEX*32

REAL*4

REAL*8

REAL*16

COMPLEX*8

COMPLEX*16

COMPLEX*16

COMPLEX*32

Sine (degree)

1

SINDj

SIND

DSIND

QSIND

REAL*4

REAL*8

REAL*16

REAL*4

REAL*8

REAL*16

Cosine

1

COS

COS

DCOS

QCOS

CCOS

CDCOS

ZCOS

CQCOS

REAL*4

REAL*8

REAL*16

COMPLEX*8

COMPLEX*16

COMPLEX*16

COMPLEX*32

REAL*4

REAL*8

REAL*16

COMPLEX*8

COMPLEX*16

COMPLEX*16

COMPLEX*32

Cosine (degree)

1

COSD

COSD

DCOSD

QCOSD

REAL*4

REAL*8

REAL*16

REAL*4

REAL*8

REAL*16

Tangent

1

TAN

TAN

DTAN

QTAN

REAL*4

REAL*8

REAL*16

REAL*4

REAL*8

REAL*16

Tangent (degree)

1

TAND

TAND

DTAND

QTAND

REAL*4

REAL*8

REAL*16

REAL*4

REAL*8

REAL*16

Arcsine

1

ASINk,l,m

ASIN

DASIN

QASIN

REAL*4

REAL*8

REAL*16

REAL*4

REAL*8

REAL*16

Arcsine (degree)

1

ASINDn

ASIND

DASIND

QASIND

REAL*4

REAL*8

REAL*16

REAL*4

REAL*8

REAL*16

Arccosine

1

ACOS

ACOS

DACOS

QACOS

REAL*4

REAL*8

REAL*16

REAL*4

REAL*8

REAL*16

Arccocsine (degree)

1

ACOSD

ACOSD

DACOSD

QACOSD

REAL*4

REAL*8

REAL*16

REAL*4

REAL*8

REAL*16

Arctangent

1

ATANo

ATAN

DATAN

QATAN

REAL*4

REAL*8

REAL*16

REAL*4

REAL*8

REAL*16

Arctangent (degree)

1

ATANDp

ATAND

DATAND

QATAND

REAL*4

REAL*8

REAL*16

REAL*4

REAL*8

REAL*16

Arctangent

2

ATAN2q,r

ATAN2

DATAN2

QATAN2

REAL*4

REAL*8

REAL*16

REAL*4

REAL*8

REAL*16

Arctangent

(degree)

2

ATAN2D

ATAN2D

DATAN2D

QATAN2D

REAL*4

REAL*8

REAL*16

REAL*4

REAL*8

REAL*16

Hyperbolic

sine

1

SINH

SINH

DSINH

QSINH

REAL*4

REAL*8

REAL*16

REAL*4

REAL*8

REAL*16

Hyperbolic

cosine

1

COSH

COSH

DCOSH

QCOSH

REAL*4

REAL*8

REAL*16

REAL*4

REAL*8

REAL*16

Hyperbolic tangent

1

TANH

TANH

DTANH

QTANH

REAL*4

REAL*8

REAL*16

REAL*4

REAL*8

REAL*16

Bitwise AND

2

IAND

--

IIAND

JIAND

KIAND

INTEGER*1

INTEGER*2

INTEGER*4

INTEGER*8

INTEGER*1

INTEGER*2

INTEGER*4

INTEGER*8

Bitwise inclusive OR

2

IOR

--

IIOR

JIOR

KIOR

INTEGER*1

INTEGER*2

INTEGER*4

INTEGER*8

INTEGER*1

INTEGER*2

INTEGER*4

INTEGER*8

Bitwise complement

1

NOT

--

INOT

JNOT

KNOT

INTEGER*1

INTEGER*2

INTEGER*4

INTEGER*8

INTEGER*1

INTEGER*2

INTEGER*4

INTEGER*8

Bitwise exclusive OR

2

IEOR

--

IIEOR

JIEOR

KIEOR

INTEGER*1

INTEGER*2

INTEGER*4

INTEGER*8

INTEGER*1

INTEGER*2

INTEGER*4

INTEGER*8

Bitwise logical shift

2

ISHFT

--

IISHFT

JISHFT

KISHFT

INTEGER*1

INTEGER*2

INTEGER*4

INTEGER*8

INTEGER*1

INTEGER*2

INTEGER*4

INTEGER*8

Bitwise circular shift

2

ISHFTC

--

IISHFTC

JISHFTC

KISHFTC

INTEGER*1

INTEGER*2

INTEGER*4

INTEGER*8

INTEGER*1

INTEGER*2

INTEGER*4

INTEGER*8

Bit extraction

3

IBITS

--

IIBITS

JIBITS

KIBITS

INTEGER*1

INTEGER*2

INTEGER*4

INTEGER*8

INTEGER*1

INTEGER*2

INTEGER*4

INTEGER*8

Bit set

2

IBSET

--

IIBSET

JIBSET

KIBSET

INTEGER*1

INTEGER*2

INTEGER*4

INTEGER*8

INTEGER*1

INTEGER*2

INTEGER*4

INTEGER*8

Bit test

2

BTEST

--

BITEST

BJTEST

BKTEST

INTEGER*1

INTEGER*2

INTEGER*4

INTEGER*8

LOGICAL*4

LOGICAL*2

LOGICAL*4

LOGICAL*8

Bit clear

2

IBCLR

--

IIBCLR

JIBCLR

KIBCLR

INTEGER*1

INTEGER*2

INTEGER*4

INTEGER*8

INTEGER*1

INTEGER*2

INTEGER*4

INTEGER*8

The following notes apply to this table:

  • a INT, IFIX, IDINT and IQINT return the default INTEGER precision, which can then be assigned to any integer type.

  • b When NINT or IDNINT is specified as an argument in a subroutine call or function reference, the compiler supplies either an INTEGER*2 or an INTEGER*4 function depending on the -i2 command line option. See the MIPSpro Fortran 77 Programmer's Guide for details.

  • c The IABS, ISIGN, IDIM, and integer MOD intrinsics accept either INTEGER*2 arguments or INTEGER*4 arguments, and the result is the same type.

  • d The result for MOD, AMOD, and DMOD is undefined when the value of the second argument is zero.

  • e If the value of the first argument of ISIGN, SIGN, or DSIGN is zero, the result is zero.

  • f The result of INDEX is an integer value indicating the position in the first argument of the first substring which is identical to the second argument. The result of INDEX('ABCDEF', 'CD'), for example, would be 3. If no substring of the first argument matches the second argument, the result is zero. INDEX and ICHAR return the result type INTEGER*2 if the -i2 compile option is in effect; otherwise, the result type is INTEGER*4.

  • g The character relational intrinsics (LLT, LGT, LEE, and LGE) return result type LOGICAL*2 if the $log2 compile option is in effect; otherwise, the result type is LOGICAL*4.

  • h The value of the argument of SQRT and DSQRT must be greater than or equal to zero. The result of CSQRT is the principal value with the real part greater than or equal to zero. When the real part is zero, the imaginary part is greater than or equal to zero.

  • i The argument of ALOG and DLOG must be greater than zero. The argument of CLOG must not be (0.,0.). The range of the imaginary part of the result of CLOG is: -p <imaginary part <p.

  • j The argument for SIND, COSD, or TAND must be in degrees and is treated as modulo 360.

  • k The absolute value of the arguments of ASIN, DASIN, ASIND, DASIND, ACOS, DACOS, ACOSD, and DACSOD must be less than or equal to 1.

  • l The range of the result for ASIN and DASIN is -π/2 <result < π/2; the range of the result for DASIN is 0 < result <π ; and the range of the result of acos and dacos is less than or equal to one.

  • m The result of ASIN, DASIN, ACOS, and DACOS is in radians.

  • n The result of ASIND, DASIND, ACOS, DACOSD is in degrees.

  • o The result of ATAN, DATAN, ATAN2, and DTAN2 is in radians.

  • p The result of ATAND, DATAND, ATAN2D, and DATAN2D is in degrees.

  • q If the value of the first argument of ATAN2 or DATAN2 is positive, the result is positive. When the value of the first argument is zero, the result is zero if the second argumemt is positive and P if the second argument is negative. If the value of the first argument is negative, the result is negative. If the value of the second argument is zero, the aboslute value of the result is P/2. Both arguments must not have the value zero.

  • r Note 3 on this page also applies to ATAN2 and DTAN2D, except for the range of the result, which is: -180 degrees << result << 180 degrees.