Sun Studio 12:Fortran 库参考

3.1 算术和数学函数

本节详细介绍算术函数、类型转换函数、三角函数以及其他函数。“a”代表函数的单个参数,“a1”和“a2”代表两个参数函数的第一个参数和第二个参数,“ar”和“ai”代表函数的复数参数的实部和虚部。

3.1.1 算术函数

表 3–1 Fortran 77 算术函数

内函数 

定义 

参数 

数量 

通用 

名称 

专用 

名称 

参数 

类型 

函数类型 

绝对值 

请参见注释 (6)

|a| = 

(ar2+ai2)1/2

ABS

IABS

ABS

DABS

CABS

QABS ¤

ZABS ¤

CDABS ¤

CQABS ¤

INTEGER

REAL

DOUBLE

COMPLEX

REAL*16

DOUBLE COMPLEX

DOUBLE COMPLEX

COMPLEX*32

INTEGER

REAL

DOUBLE

REAL

REAL*16

DOUBLE

DOUBLE

REAL*16

截断 

请参见注释 (1)

int(a) 

AINT

AINT

DINT

QINT ¤

REAL

DOUBLE

REAL*16

REAL

DOUBLE

REAL*16

最近的整数 

如果 a ≥ 0,则为 int(a+.5) 

如果 a < 0,则为 int(a-.5) 

ANINT

ANINT

DNINT

QNINT ¤

REAL

DOUBLE

REAL*16

REAL

DOUBLE

REAL*16

最近的整数 

如果 a ≥ 0,则为 int(a+.5) 

如果 a < 0,则为 int(a-.5) 

NINT

NINT

IDNINT

IQNINT ¤

REAL

DOUBLE

REAL*16

INTEGER

INTEGER

INTEGER

余数 

请参见注释 (1)

a1-int(a1/a2)*a2 

MOD

MOD

AMOD

DMOD

QMOD ¤

INTEGER

REAL

DOUBLE

REAL*16

INTEGER

REAL

DOUBLE

REAL*16

符号传输 

如果 a2 ≥ 0,则为 |a1|  

如果 a2 < 0,则为 -|a1|  

SIGN

ISIGN

SIGN

DSIGN

QSIGN ¤

INTEGER

REAL

DOUBLE

REAL*16

INTEGER

REAL

DOUBLE

REAL*16

正偏差 

如果 a1 > a2,则为 a1-a2 

如果 a1≤ a2,则为 0 

DIM

IDIM

DIM

DDIM

QDIM ¤

INTEGER

REAL

DOUBLE

REAL*16

INTEGER

REAL

DOUBLE

REAL*16

两倍和四倍乘积 

a1 * a2 

-

DPROD

QPROD ¤

REAL

DOUBLE

DOUBLE

REAL*16

选择最大的值 

max(a1, a2, …) 

≥2 

MAX

MAX0

AMAX1

DMAX1

QMAX1 ¤

INTEGER

REAL

DOUBLE

REAL*16

INTEGER

REAL

DOUBLE

REAL*16

AMAX0

AMAX0

INTEGER

REAL

MAX1

MAX1

REAL

INTEGER

选择最小的值 

min(a1, a2, …) 

≥2 

MIN

MIN0

AMIN1

DMIN1

QMIN1 ¤

INTEGER

REAL

DOUBLE

REAL*16

INTEGER

REAL

DOUBLE

REAL*16

AMIN0

AMIN0

INTEGER

REAL

MIN1

MIN1

REAL

INTEGER

3.1.2 类型转换函数

表 3–2 Fortran 77 类型转换函数

转换为 

参数数量 

通用名称 

专用 

名称 

参数类型 

函数类型 

INTEGER


  请参见注释 (1)

INT

-

INT

IFIX

IDINT

-

-

-

IQINT ¤

INTEGER

REAL

REAL

DOUBLE

COMPLEX

COMPLEX*16

COMPLEX*32

REAL*16

INTEGER

INTEGER

INTEGER

INTEGER

INTEGER

INTEGER

INTEGER

INTEGER

REAL


  请参见注释 (2)

REAL

REAL

FLOAT

-

SNGL

SNGLQ ¤

-

-

-

FLOATK

INTEGER

INTEGER

REAL

DOUBLE

REAL*16

COMPLEX

COMPLEX*16

COMPLEX*32

INTEGER*8

REAL

REAL

REAL

REAL

REAL

REAL

REAL

REAL

REAL*4

DOUBLE


   请参见注释 (3)。

DBLE

DBLE

DFLOAT

DFLOATK

DREAL ¤

-

-

-

-

-

DBLEQ ¤-

INTEGER

INTEGER

INTEGER*8

REAL

DOUBLE

COMPLEX

COMPLEX*16

REAL*16

COMPLEX*32REAL*16COMPLEX*32

DOUBLE PRECISION

DOUBLE PRECISION

DOUBLE PRECISION

DOUBLE PRECISION

DOUBLE PRECISION

DOUBLE PRECISION

DOUBLE PRECISION

DOUBLE PRECISION

DOUBLE PRECISIONDOUBLE PRECISION

DOUBLE PRECISION


REAL*16
   请参见注释 (3’)。

QREAL¤

QEXT ¤

QREAL ¤

QFLOAT ¤

-

QEXT ¤

QEXTD ¤

-

-

-

-

INTEGER

INTEGER

REAL

INTEGER

DOUBLE

REAL*16

COMPLEX

COMPLEX*16

COMPLEX*32

REAL*16

REAL*16

REAL*16

REAL*16

REAL*16

REAL*16

REAL*16

REAL*16

REAL*16


COMPLEX
  请参见注释 (4) 和 (8)。

1 个或 2 个 


CMPLX

-

-

-

-

-

-

-

INTEGER

REAL

DOUBLE

REAL*16

COMPLEX

COMPLEX*16

COMPLEX*32

COMPLEX

COMPLEX

COMPLEX

COMPLEX

COMPLEX

COMPLEX

COMPLEX


DOUBLE COMPLEX
   请参见注释 (8)。

1 个或 2 个 


DCMPLX@

-

-

-

-

-

-

-

INTEGER

REAL

DOUBLE

REAL*16

COMPLEX

COMPLEX*16

COMPLEX*32

DOUBLE COMPLEX

DOUBLE COMPLEX

DOUBLE COMPLEX

DOUBLE COMPLEX

DOUBLE COMPLEX

DOUBLE COMPLEX

DOUBLE COMPLEX


COMPLEX*32
   请参见注释 (8)。

1 个或 2 个 


QCMPLX@

-

-

-

-

-

-

-

INTEGER

REAL

DOUBLE

REAL*16

COMPLEX

COMPLEX*16

COMPLEX*32

COMPLEX*32

COMPLEX*32

COMPLEX*32

COMPLEX*32

COMPLEX*32

COMPLEX*32

COMPLEX*32


INTEGER
   请参见注释 (5)。


-
-

ICHAR

IACHAR ¤

CHARACTER

INTEGER


CHARACTER
   请参见注释 (5)。


-
-

CHAR

ACHAR ¤

INTEGER

CHARACTER

在 ASCII 平台上(包括 Sun 系统):

在非 ASCII 平台上,ACHARIACHAR 专门用于提供一种直接处理 ASCII 的方法。

3.1.3 三角函数

表 3–3 Fortran 77 三角函数

内函数 

定义 

参数数量 

通用名称 

专用 

名称 

参数类型 

函数类型 

正弦 

请参见注释 (7)。

sin(a) 

SIN

SIN

DSIN

QSIN ¤

CSIN

ZSIN ¤

CDSIN ¤

CQSIN ¤

REAL

DOUBLE

REAL*16

COMPLEX

DOUBLE COMPLEX

DOUBLE COMPLEX

COMPLEX*32

REAL

DOUBLE

REAL*16

COMPLEX

DOUBLE COMPLEX

DOUBLE COMPLEX

COMPLEX*32

正弦(度数) 

请参见注释 (7)。

sin(a) 

SIND ¤

SIND ¤

DSIND ¤

QSIND ¤

REAL

DOUBLE

REAL*16

REAL

DOUBLE

REAL*16

余弦 

请参见注释 (7)。

cos(a) 

COS

COS

DCOS

QCOS ¤

CCOS

ZCOS ¤

CDCOS ¤

CQCOS ¤

REAL

DOUBLE

REAL*16

COMPLEX

DOUBLE COMPLEX

DOUBLE COMPLEX

COMPLEX*32

REAL

DOUBLE

REAL*16

COMPLEX

DOUBLE COMPLEX

DOUBLE COMPLEX

COMPLEX*32

余弦(度数) 

请参见注释 (7)。

cos(a) 

COSD ¤

COSD ¤

DCOSD ¤

QCOSD ¤

REAL

DOUBLE

REAL*16

REAL

DOUBLE

REAL*16

正切 

请参见注释 (7)。

tan(a) 

TAN

TAN

DTAN

QTAN ¤

REAL

DOUBLE

REAL*16

REAL

DOUBLE

REAL*16

正切(度数) 

请参见注释 (7)。

tan(a) 

TAND ¤

TAND ¤

DTAND ¤

QTAND ¤

REAL

DOUBLE

REAL*16

REAL

DOUBLE

REAL*16

反正弦 

请参见注释 (7)。

arcsin(a) 

ASIN

ASIN

DASIN

QASIN ¤

REAL

DOUBLE

REAL*16

REAL

DOUBLE

REAL*16

反正弦(度数) 

请参见注释 (7)。

arcsin(a) 

ASIND ¤

ASIND ¤

DASIND ¤

QASIND ¤

REAL

DOUBLE

REAL*16

REAL

DOUBLE

REAL*16

反余弦 

请参见注释 (7)。

arccos(a) 

ACOS

ACOS

DACOS

QACOS ¤

REAL

DOUBLE

REAL*16

REAL

DOUBLE

REAL*16

反余弦(度数) 

请参见注释 (7)。

arccos(a) 

ACOSD ¤

ACOSD ¤

DACOSD ¤

QACOSD ¤

REAL

DOUBLE

REAL*16

REAL

DOUBLE

REAL*16

反正切 

请参见注释 (7)。

arctan(a) 

ATAN

ATAN

DATAN

QATAN ¤

REAL

DOUBLE

REAL*16

REAL

DOUBLE

REAL*16

arctan 

(a1/a2) 

ATAN2

ATAN2

DATAN2

QATAN2 ¤

REAL

DOUBLE

REAL*16

REAL

DOUBLE

REAL*16

反正切(度数) 

请参见注释 (7)。

arctan(a) 

ATAND ¤

ATAND ¤

DATAND ¤

QATAND ¤

REAL

DOUBLE

REAL*16

REAL

DOUBLE

REAL*16

arctan 

(a1/a2) 

ATAN2D¤

ATAN2D ¤

DATAN2D ¤

QATAN2D ¤

REAL

DOUBLE

REAL*16

REAL

DOUBLE

REAL*16

双曲正弦 

请参见注释 (7)。

sinh(a) 

SINH

SINH

DSINH

QSINH ¤

REAL

DOUBLE

REAL*16

REAL

DOUBLE

REAL*16

双曲余弦 

请参见注释 (7)。

cosh(a) 

COSH

COSH

DCOSH

QCOSH ¤

REAL

DOUBLE

REAL*16

REAL

DOUBLE

REAL*16

双曲正切 

请参见注释 (7)。

tanh(a) 

TANH

TANH

DTANH

QTANH ¤

REAL

DOUBLE

REAL*16

REAL

DOUBLE

REAL*16

3.1.4 其他数学函数

表 3–4 其他 Fortran 77 数学函数

内函数 

定义 

参数数量 

通用名称 

专用名称 

参数类型 

函数类型 

复数的虚部 

请参见注释 (6)。

ai 

IMAG

AIMAG

DIMAG ¤

QIMAG ¤

COMPLEX

DOUBLE COMPLEX

COMPLEX*32

REAL

DOUBLE

REAL*16

共轭复数 

请参见注释 (6)。

(ar, -ai) 

CONJG

CONJG

DCONJG ¤

QCONJG ¤

COMPLEX

DOUBLE COMPLEX

COMPLEX*32

COMPLEX

DOUBLE COMPLEX

COMPLEX*32

平方根 

a**(1/2) 

SQRT

SQRT

DSQRT

QSQRT ¤

CSQRT

ZSQRT ¤

CDSQRT ¤

CQSQRT ¤

REAL

DOUBLE

REAL*16

COMPLEX

DOUBLE COMPLEX

DOUBLE COMPLEX

COMPLEX*32

REAL

DOUBLE

REAL*16

COMPLEX

DOUBLE COMPLEX

DOUBLE COMPLEX

COMPLEX*32

立方根 

请参见注释 (8’)

a**(1/3) 

CBRT

CBRT ¤

DCBRT ¤

QCBRT ¤

CCBRT ¤

ZCBRT ¤

CDCBRT ¤

CQCBRT ¤

REAL

DOUBLE

REAL*16

COMPLEX

DOUBLE COMPLEX

DOUBLE COMPLEX

COMPLEX*32

REAL

DOUBLE

REAL*16

COMPLEX

DOUBLE COMPLEX

DOUBLE COMPLEX

COMPLEX*32

指数 

e**a 

EXP

EXP

DEXP

QEXP ¤

CEXP

ZEXP ¤

CDEXP ¤

CQEXP ¤

REAL

DOUBLE

REAL*16

COMPLEX

DOUBLE COMPLEX

DOUBLE COMPLEX

COMPLEX*32

REAL

DOUBLE

REAL*16

COMPLEX

DOUBLE COMPLEX

DOUBLE COMPLEX

COMPLEX*32

自然对数 

log(a) 

LOG

ALOG

DLOG

QLOG ¤

CLOG

ZLOG ¤

CDLOG ¤

CQLOG ¤

REAL

DOUBLE

REAL*16

COMPLEX

DOUBLE COMPLEX

DOUBLE COMPLEX

COMPLEX*32

REAL

DOUBLE

REAL*16

COMPLEX

DOUBLE COMPLEX

DOUBLE COMPLEX

COMPLEX*32

常用对数 

log10(a) 

LOG10

ALOG10

DLOG10

QLOG10 ¤

REAL

DOUBLE

REAL*16

REAL

DOUBLE

REAL*16

误差函数 

(请参见下面的注释)

erf(a) 

ERF

ERF ¤

DERF ¤

REAL

DOUBLE

REAL

DOUBLE

误差函数 

1.0 - erf(a) 

ERFC

ERFC ¤

DERFC ¤

REAL

DOUBLE

REAL

DOUBLE