Sun Studio 12: Fortran ライブラリ・リファレンス

3.1 算術関数と数学関数

算術関数、型変換関数、三角関数、およびその他の数学関数について説明します。a は、関数の 1 つの引数を表わします。 a1 および a2 はそれぞれ、関数の 1 つ目の引数、2 つ目の引数を表わしています。 ar および ai はそれぞれ、関数の複素の引数の実部と虚部を表わしています。

3.1.1 算術関数

表 3–1 算術関数

組み込み関数 

定義 

引数 

の数 

総称 

名 

個別 

名 

引数の 

型 

関数の型 

絶対値 

注 (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

倍精度化または 4 倍精度化乗算 

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 システムも含む) では、次のようになります。

ACHARIACHAR は、ASCII 以外のプラットフォームで 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