Appendix VII - Intrinsics & Generics¶
Intrinsic Functions¶
If a specific intrinsic is related to the integer\*8
data type, its name in the .IN
line is prefixed with
an =
(equals sign).
The utility determines whether on not to include this intrinsic
in the predefined portion of the symbol table.
sptr name pcnt atyp dtype ILM pname
.SQRT
1
R
R
SQRT
ftn_sqrt
DSQRT
1
D
D
DSQRT
ftn_dsqrt
CSQRT
1
C
C
CSQRT
ftn_csqrt
CDSQRT
1
CD
CD
CDSQRT
ftn_cdsqrt
QSQRT
1
Q
Q
QSQRT
ftn_qsqrt
ALOG
1
R
R
ALOG
ftn_alog
DLOG
1
D
D
DLOG
ftn_dlog
CLOG
1
C
C
CLOG
ftn_clog
CDLOG
1
CD
CD
CDLOG
ftn_cdlog
QLOG
1
Q
Q
QLOG
ftn_qlog
ALOG10
1
R
R
ALOG10
ftn_alog10
DLOG10
1
D
D
DLOG10
ftn_dlog10
.EXP
1
R
R
EXP
ftn_exp
DEXP
1
D
D
DEXP
ftn_dexp
CEXP
1
C
C
CEXP
ftn_cexp
CDEXP
1
CD
CD
CDEXP
ftn_cdexp
QEXP
1
Q
Q
QEXP
ftn_qexp
.SIN
1
R
R
SIN
ftn_sin
DSIN
1
D
D
DSIN
ftn_dsin
CSIN
1
C
C
CSIN
ftn_csin
CDSIN
1
CD
CD
CDSIN
ftn_cdsin
QSIN
1
Q
Q
QSIN
ftn_qsin
.SIND
1
R
R
SIND
ftn_sind
DSIND
1
D
D
DSIND
ftn_dsind
QSIND
1
Q
Q
QSIND
ftn_qsind
.COS
1
R
R
COS
ftn_cos
DCOS
1
D
D
DCOS
ftn_dcos
CCOS
1
C
C
CCOS
ftn_ccos
QCOS
1
Q
Q
QCOS
ftn_qcos
CDCOS
1
CD
CD
CDCOS
ftn_cdcos
.COSD
1
R
R
COSD
ftn_cosd
DCOSD
1
D
D
DCOSD
ftn_dcosd
QCOSD
1
Q
Q
QCOSD
ftn_qcosd
.TAN
1
R
R
TAN
ftn_tan
DTAN
1
D
D
DTAN
ftn_dtan
QTAN
1
Q
Q
QTAN
ftn_qtan
.TAND
1
R
R
TAND
ftn_tand
DTAND
1
D
D
DTAND
ftn_dtand
QTAND
1
Q
Q
QTAND
ftn_qtand
.ASIN
1
R
R
ASIN
ftn_asin
DASIN
1
D
D
DASIN
ftn_dasin
QASIN
1
Q
Q
QASIN
ftn_qasin
.ASIND
1
R
R
ASIND
ftn_asind
DASIND
1
D
D
DASIND
ftn_dasind
QASIND
1
Q
Q
QASIND
ftn_qasind
.ACOS
1
R
R
ACOS
ftn_acos
DACOS
1
D
D
DACOS
ftn_dacos
QACOS
1
Q
Q
QACOS
ftn_qacos
.ACOSD
1
R
R
ACOSD
ftn_acosd
DACOSD
1
D
D
DACOSD
ftn_dacosd
QACOSD
1
Q
Q
QACOSD
ftn_qacosd
.ATAN
1
R
R
ATAN
ftn_atan
DATAN
1
D
D
DATAN
ftn_datan
QATAN
1
Q
Q
QATAN
ftn_qatan
.ATAND
1
R
R
ATAND
ftn_atand
DATAND
1
D
D
DATAND
ftn_datand
QATAND
1
Q
Q
QATAND
ftn_qatand
.ATAN2
2
R
R
ATAN2
ftn_atan2
DATAN2
2
D
D
DATAN2
ftn_datan2
QATAN2
2
Q
Q
QATAN2
ftn_qatan2
.ATAN2D
2
R
R
ATAN2D
ftn_atan2d
DATAN2D
2
D
D
DATAN2D
ftn_datan2d
QATAN2D
2
Q
Q
QATAN2D
ftn_qatan2d
.SINH
1
R
R
SINH
ftn_sinh
DSINH
1
D
D
DSINH
ftn_dsinh
.COSH
1
R
R
COSH
ftn_cosh
DCOSH
1
D
D
DCOSH
ftn_dcosh
.TANH
1
R
R
TANH
ftn_tanh
DTANH
1
D
D
DTANH
ftn_dtanh
IABS
1
I
I
IABS
ftn_iabs
IIABS
1
SI
SI
IABS
ftn_iiabs
JIABS
1
I
I
IABS
ftn_iabs
=KIABS
1
I8
I8
KABS
ftn_kabs
.ABS
1
R
R
ABS
ftn_abs
DABS
1
D
D
DABS
ftn_dabs
QABS
1
Q
Q
QABS
ftn_qabs
CABS
1
C
R
CABS
ftn_cabs
CDABS
1
CD
D
CDABS
ftn_cdabs
.INT
1
R
I
tc
IFIX
1
R
I
tc
Same as the INT intrinsic.
IIFIX
1
R
SI
tc
JIFIX
1
R
I
tc
=KIFIX
1
R
I8
tc
IDINT
1
D
I
tc
.IINT
1
R
SI
tc
Conversion to short integer.
IIDINT
1
D
SI
tc
Conversion to short integer.
.JINT
1
R
I
tc
JIDINT
1
D
I
tc
=.INT8
1
R
I8
tc
Conversion to integer*8.
=.IDINT8
1
D
I8
tc
Conversion to integer*8.
.2I
1
N
I
tc
Converts any numeric data type to integer.
.2SI
1
N
SI
tc
Converts any numeric data type to short integer.
=.2KI
1
N
I8
tc
Converts any numeric data type to integer*8.
.AINT
1
R
R
AINT
ftn_aint
DINT
1
D
D
DINT
ftn_dint
QINT
1
Q
Q
QINT
ftn_qint
.ANINT
1
R
R
ANINT
ftn_anint
QQANINT
1
Q
Q
QQANINT
ftn_qanint
DQANINT
1
D
Q
DQANINT
ftn_dqanint
AQANINT
1
R
Q
AQANINT
ftn_aqanint
DNINT
1
D
D
DNINT
ftn_dnint
.ININT
1
R
SI
NINT
ftn_inint
.NINT
1
R
I
NINT
ftn_nint
IDNINT
1
D
I
IDNINT
ftn_idnint
IQNINT
1
Q
I
IQNINT
ftn_iqnint
IIDNNT
1
D
SI
IDNINT
ftn_iidnnt
.JNINT
1
R
I
NINT
ftn_inint
JIDNNT
1
D
I
IDNINT
ftn_idnint
=.KNINT
1
R
I8
KNINT
ftn_knint
=KIDNNT
1
D
I8
KDNINT
ftn_kidnnt
=KIQNNT
1
Q
I8
KQNINT
ftn_kiqnnt
FLOATI
1
SI
R
tc
Converts integer*2 to real.
FLOATJ
1
I
R
tc
=.FLOATK
1
I8
R
tc
Converts integer*8 to real.
.REAL
1
I
R
tc
Converts integer to real.
FLOAT
1
I
R
tc
Same as REAL intrinsic.
SNGL
1
D
R
tc
.2R
1
N
R
tc
Converts any numeric data type to real.
DFLOTI
1
SI
D
tc
Converts integer*2 to double.
DFLOAT
1
I
D
tc
Extension to Fortran-77.
DFLOTJ
1
I
D
tc
=.DFLOTK
1
I8
D
tc
Converts integer*8 to double.
DREAL
1
CD
D
tc
Converts complex*16 to double.
.2D
1
N
D
tc
Convert any numeric data type to double precision.
.2C
11
N
C
tc
Convert any numeric data type to complex.
.2CD
11
N
CD
tc
Convert any numeric data type to double complex.
.AIMAG
1
C
R
IMAG
ftn_aimag
DIMAG
1
CD
D
DIMAG
ftn_dimag
.CONJG
1
C
C
CONJG
ftn_conjg
DCONJG
1
CD
CD
DCONJG
ftn_dconjg
QCONJG
1
CQ
CQ
QCONJG
ftn_qconjg
DPROD
2
R
D
DPROD
ftn_dprod
IMAX0
12
SI
SI
IMAX
-
MAX0
12
I
I
IMAX
-
=.KMAX0
12
I8
I8
KMAX
-
AMAX1
12
R
R
RMAX
-
DMAX1
12
D
D
DMAX
-
JMAX0
12
I
I
IMAX
-
IMAX
AIMAX0
13
SI
R
IMAX
-
AMAX0
13
I
R
IMAX
-
=AKMAX0
13
I8
R
KMAX
-
MAX1
13
R
I
RMAX
-
IMAX1
13
R
SI
RMAX
-
JMAX1
13
R
I
RMAX
-
=KMAX1
13
R
I8
RMAX
-
AJMAX0
13
I
R
IMAX
-
MIN0
12
I
I
IMIN
-
IMIN0
12
SI
SI
IMIN
-
=.KMIN0
12
I8
I8
KMIN
-
AMIN1
12
R
R
RMIN
-
DMIN1
12
D
D
DMIN
-
JMIN0
12
I
I
IMIN
-
AMIN0
13
I
R
IMIN
-
AIMIN0
13
SI
R
IMIN
-
=AKMIN0
13
I8
R
KMIN
-
MIN1
13
R
I
RMIN
-
IMIN1
13
R
SI
RMIN
-
JMIN1
13
R
I
RMIN
-
=KMIN1
13
R
I8
RMIN
-
AJMIN0
13
I
R
IMIN
-
IIDIM
2
SI
SI
IDIM
ftn_iidim
JIDIM
2
I
I
IDIM
ftn_idim
=KIDIM
2
I8
I8
KDIM
ftn_kidim
IDIM
2
I
I
IDIM
ftn_idim
.DIM
2
R
R
DIM
ftn_dim
DDIM
2
D
D
DDIM
ftn_ddim
QDIM
2
Q
Q
QDIM
ftn_qdim
IMOD
2
SI
SI
MOD
ftn_imod
JMOD
2
I
I
MOD
ftn_mod
=KMOD
2
I8
I8
KMOD
ftn_kmod
.MOD
2
I
I
MOD
ftn_mod
AMOD
2
R
R
AMOD
ftn_amod
DMOD
2
D
D
DMOD
ftn_dmod
IISIGN
2
SI
SI
ISIGN
ftn_iisign
JISIGN
2
I
I
ISIGN
ftn_isign
=KISIGN
2
I8
I8
KSIGN
ftn_kisign
ISIGN
2
I
I
ISIGN
ftn_isign
.SIGN
2
R
R
SIGN
ftn_sign
DSIGN
2
D
D
DSIGN
ftn_dsign
QSIGN
2
Q
Q
QSIGN
ftn_qsign
IIAND
2
SI
SI
AND
-
JIAND
2
I
I
AND
-
=.KIAND
2
I8
I8
KAND
-
IIOR
2
SI
SI
OR
-
JIOR
2
I
I
OR
-
=.KIOR
2
I8
I8
KOR
-
IIEOR
2
SI
SI
XOR
-
JIEOR
2
I
I
XOR
-
=.KIEOR
2
I8
I8
KXOR
-
INOT
1
SI
SI
NOT
-
JNOT
1
I
I
NOT
-
=.KNOT
1
I8
I8
KNOT
-
IISHFT
2
SI
SI
IISHFT
ftn_iishft
JISHFT
2
I
I
JISHFT
ftn_jishft
=KISHFT
2
I8
I8
KISHFT
ftn_kishft
ICHAR
1
H
I
ICHAR
LEN
1
H
I
LEN
ftn_str_len
=KLEN
1
H
I8
KLEN
ftn_str_klen
INDEX
2
H
I
INDEX
ftn_index
=KINDEX
2
H
I8
KINDEX
ftn_kindex
LGE
2
H
L
GE
LGT
2
H
L
GT
LLE
2
H
L
LE
LLT
2
H
L
LT
LOC
1
A
PI
LOC
IIBITS
3
SI
SI
IBITS
ftn_iibits
JIBITS
3
I
I
IBITS
ftn_jibits
=KIBITS
3
I8
I8
KBITS
ftn_kibits
IIBSET
2
SI
SI
IBSET
ftn_iibset
JIBSET
2
I
I
IBSET
ftn_jibset
=KIBSET
2
I8
I8
KBSET
ftn_kibset
BITEST
2
SI
SL
BTEST
ftn_bitest
BJTEST
2
I
L
BTEST
ftn_bjtest
=BKTEST
2
I8
L8
KBTEST
ftn_bktest
IIBCLR
2
SI
SI
IBCLR
ftn_iibclr
JIBCLR
2
I
I
IBCLR
ftn_jibclr
=KIBCLR
2
I8
I8
KBCLR
ftn_kibclr
IISHFTC
3
SI
SI
IISHFTC
ftn_iishftc
JISHFTC
3
I
I
ISHFTC
ftn_jishftc
=KISHFTC
3
I8
I8
KSHFTC
ftn_kishftc
.ILSHIFT
2
SI
SI
ULSHIFT
.JLSHIFT
2
I
I
ULSHIFT
=.KLSHIFT
2
I8
I8
KULSHIFT
.IRSHIFT
2
SI
SI
URSHIFT
.JRSHIFT
2
I
I
URSHIFT
=.KRSHIFT
2
I8
I8
KURSHIFT
.2SCH
1
SI
H
CHAR
.CHAR
1
I
H
CHAR
=.2KCH
1
I8
H
CHAR
NCHAR
1
I
K
NCHAR
Convert integer to Kanji string of length 1.
NLEN
1
K
I
NLEN
Compute length of Kanji string.
NINDEX
2
K
I
NINDEX
=.LGE8
2
H
L8
GE8
=.LGT8
2
H
L8
GT8
=.LLE8
2
H
L8
LE8
=.LLT8
2
H
L8
LT8
Generic Names¶
If a generic intrinsic is related to the integer\*8
data type, its name in the .GN
line is prefixed with
an =
(equals sign).
The utility determines whether on not to include this intrinsic
in the predefined portion of the symbol table.
Also, the utility may choose to ignore the entries in the i8name
fields.
sptr name siname iname rname dname cname cdname i8name qname cqname
IAND
IIAND
JIAND
-
-
-
-
.KIAND
IOR
IIOR
JIOR
-
-
-
-
.KIOR
IEOR
IIEOR
JIEOR
-
-
-
-
.KIEOR
XOR
IIEOR
JIEOR
-
-
-
-
.KIEOR
NOT
INOT
JNOT
-
-
-
-
.KNOT
ISHFT
IISHFT
JISHFT
-
-
-
-
KISHFT
IINT
.2SI
.2SI
.IINT
IIDINT
.2SI
.2SI
.2SI
INT
.2I
.2I
.INT
IDINT
.2I
.2I
.2I
JINT
.2I
.2I
.JINT
JIDINT
.2I
.2I
.2I
=INT8
.2KI
.2KI
.INT8
.IDINT8
.2KI
.2KI
.2KI
REAL
FLOATI
.REAL
.2R
SNGL
.2R
.2R
.FLOATK
DBLE
DFLOTI
DFLOAT
.2D
.2D
.2D
DREAL
.DFLOTK
CMPLX
.2C
.2C
.2C
.2C
.2C
.2C
.2C
DCMPLX
.2CD
.2CD
.2CD
.2CD
.2CD
.2CD
.2CD
AIMAG
-
-
-
-
.AIMAG
DIMAG
-
CONJG
-
-
-
-
.CONJG
DCONJG
QCONJG
-
AINT
-
-
.AINT
DINT
-
-
-
QINT
ANINT
-
-
.ANINT
DNINT
-
-
-
QANINT
ININT
-
-
.ININT
IIDNNT
-
-
-
JNINT
-
-
.JNINT
JIDNNT
-
-
-
NINT
-
-
.NINT
IDNINT
-
-
-
IQNINT
=KNINT
-
-
.KNINT
KIDNNT
-
-
-
KIQNNT
ABS
IIABS
IABS
.ABS
DABS
CABS
CDABS
KIABS
QABS
-
MOD
IMOD
.MOD
AMOD
DMOD
-
-
KMOD
SIGN
IISIGN
ISIGN
.SIGN
DSIGN
-
-
KISIGN
QSIGN
-
DIM
IIDIM
IDIM
.DIM
DDIM
-
-
KIDIM
QDIM
-
MAX
IMAX0
MAX0
AMAX1
DMAX1
-
-
.KMAX0
MIN
IMIN0
MIN0
AMIN1
DMIN1
-
-
.KMIN0
SQRT
-
-
.SQRT
DSQRT
CSQRT
CDSQRT
-
QSQRT
-
EXP
-
-
.EXP
DEXP
CEXP
CDEXP
-
QEXP
-
LOG
-
-
ALOG
DLOG
CLOG
CDLOG
-
QLOG
-
LOG10
-
-
ALOG10
DLOG10
-
-
-
SIN
-
-
.SIN
DSIN
CSIN
CDSIN
-
QSIN
-
SIND
-
-
.SIND
DSIND
-
-
-
QSIND
-
COS
-
-
.COS
DCOS
CCOS
CDCOS
-
QCOS
-
COSD
-
-
.COSD
DCOSD
-
-
-
QCOSD
-
TAN
-
-
.TAN
DTAN
-
-
-
TAND
-
-
.TAND
DTAND
-
-
-
QTAND
-
ASIN
-
-
.ASIN
DASIN
-
-
-
ASIND
-
-
.ASIND
DASIND
-
-
-
QASIND
-
ACOS
-
-
.ACOS
DACOS
-
-
-
QACOS
-
ACOSD
-
-
.ACOSD
DACOSD
-
-
-
QACOSD
-
ATAN
-
-
.ATAN
DATAN
-
-
-
QATAN
-
ATAND
-
-
.ATAND
DATAND
-
-
-
QATAND
-
ATAN2
-
-
.ATAN2
DATAN2
-
-
-
QATAN2
-
ATAN2D
-
-
.ATAN2D
DATAN2D
-
-
-
QATAN2D
-
SINH
-
-
.SINH
DSINH
-
-
-
COSH
-
-
.COSH
DCOSH
-
-
-
TANH
-
-
.TANH
DTANH
-
-
-
IBITS
IIBITS
JIBITS
-
-
-
-
KIBITS
IBSET
IIBSET
JIBSET
-
-
-
-
KIBSET
BTEST
BITEST
BJTEST
-
-
-
-
BKTEST
IBCLR
IIBCLR
JIBCLR
-
-
-
-
KIBCLR
ISHFTC
IISHFTC
JISHFTC
-
-
-
-
KISHFTC
LSHIFT
.ILSHIFT
.JLSHIFT
-
-
-
-
.KLSHIFT
RSHIFT
.IRSHIFT
.JRSHIFT
-
-
-
-
.KRSHIFT
CHAR
.2SCH
.CHAR
-
-
-
-
.2KCH
Predeclared Names¶
sptr pd name call type
DATE
subroutine
-
.cw “ CALL DATE( buf )”Returns the current date in
buf
, which is a 9-byte variable, array, array element, or character substring. The date is returned as a 9-byte ASCII character string in the formdd-mmm-yy
.
EXIT
subroutine
-The CALL EXIT statement; optional argument is type integer.
IDATE
subroutine
-
.cw “ CALL IDATE( i, j, k )”Returns three integer values representing the current month, day, and year in
i
,j
, andk
, respectively. All arguments must be integer*2 variables or array elements or integer*4 variables or array elements.
TIME
subroutine
-
.cw “ CALL TIME( buf )”Returns the current system time in
buf
, which is an 8-byte variable, array, array element, or character substring. The time is returned as an 8-byte ASCII character string of the formhh:mm:ss
.
MVBITS
subroutine
-
.cw “ CALL MVBITS(a1, a2, a3, a4, a5)”Transfers
a3
bits beginning at bita2
ofa1
toa4
beginning at bita5
. All arguments are either integer*2 or integer*4;a4
must be a variable or array element. Translates to a call to eitherftn_imvbits
orftn_jmvbits
.
ZEXT
generic
scalarThe ZEXT intrinsic; result is integer*4, arg is any logical or integer.
IZEXT
specific
scalarThe IZEXT intrinsic; result is integer*2, arg is a logical*1, logical*2, or integer*2.
JZEXT
specific
scalarThe JZEXT intrinsic; result is integer*4, arg is any logical or integer.
AND
generic
scalar
COMPL
generic
scalar
EQV
generic
scalar
NEQV
generic
scalar
OR
generic
scalar
RAN
specific
scalarThe
RAN
function is a general random number generator which requires a single argument which is either an integer*4 variable or array element.SECNDS
specific
scalarThe
SECNDS
function returns the system time in seconds as a single-precision (double-precision) value minus the value of its single-precision (double-precision) argument.
SHIFT
specific
scalar