Sun Studio 12:Fortran 库参考

3.4 备注

以下备注适用于本章中的所有内函数表。

3.4.1 有关函数的注释

各表及注释 1 至 12 以《ANSI X3.9-1978 Programming Language FORTRAN》中的“Table of Intrinsic Functions”为基础,并增加了 Fortran 扩展。

(1) INT

如果 A 为整数类型,则 INT(A)A

如果 A 为实数或双精度类型:

如果 |A| < 1,则 INT(A) 为 0;如果 |A|1,则 INT(A) 是最大的整数,但是不超过 A 的幅度,并且它的符号与 A 的符号相同。(这样的数学整数值可能太大,无法符合计算机整数类型的要求。)

如果 A 为复数或双复数类型,则以上规则适用于 A 的实部。

如果 A 为实数类型,则 IFIX(A)INT(A) 相同。

(2) REAL

如果 A 为实数类型,则 REAL(A)A

如果 A 为整数或双精度类型,则 REAL(A)A 有效部分的精度与实数据具有的精度差不多。

如果 A 为复数类型,则 REAL(A)A 的实部。

如果 A 为双复数类型,则 REAL(A)A 实部中有效部分的精度与实数据具有的精度差不多。

(3) DBLE

如果 A 为双精度类型,则 DBLE(A)A

如果 A 为整数或实数类型,则 DBLE(A)A 有效部分的精度与双精度数据具有的精度差不多。

如果 A 为复数类型,则 DBLE(A)A 实部中有效部分的精度与双精度数据具有的精度差不多。

如果 ACOMPLEX*16 类型,则 DBLE(A)A 的实部。

(3’) QREAL

如果 AREAL*16 类型,则 QREAL(A)A

如果 A 为整数、实数或双精度类型,则 QREAL(A)A 有效部分的精度与 REAL*16 数据具有的精度差不多。

如果 A 为复数或双复数类型,则 QREAL(A)A 实部中有效部分的精度与 REAL*16 数据具有的精度差不多。

如果 ACOMPLEX*16COMPLEX*32 类型,则 QREAL(A)A 的实部。

(4) CMPLX

如果 A 为复数类型,则 CMPLX(A)A

如果 A 为整数、实数或双精度类型,则 CMPLX(A)REAL(A) + 0i

如果 A1 A2 为整数、实数或双精度类型,则 CMPLX(A1,A2)REAL(A1) + REAL(A2)*i

如果 A 为双复数类型,则 CMPLX(A)REAL( DBLE(A) ) + i*REAL( DIMAG(A) )

如果 CMPLX 有两个参数,则它们的类型必须相同,可以是整数、实数或双精度类型。

如果 CMPLX 有一个参数,则它可以是整数、实数、双精度、复数、COMPLEX*16 或 COMPLEX*32 类型。

(4’) DCMPLX

如果 ACOMPLEX*16 类型,则 DCMPLX(A)A

如果 A 为整数、实数或双精度类型,则 DCMPLX(A)DBLE(A) + 0i

如果 A1A2 为整数、实数或双精度类型,则 DCMPLX(A1,A2)DBLE(A1) + DBLE(A2)*i

如果 DCMPLX 有两个参数,则它们的类型必须相同,可以是整数、实数或双精度类型。

如果 DCMPLX 有一个参数,则它可以是整数、实数、双精度、复数、COMPLEX*16 或 COMPLEX*32 类型。

(5) ICHAR

ICHAR(A)A 在整理序列中的位置。

第一个位置为 0,最后一个位置为 N-1, 0ICHAR(A)N-1,其中 N 是整理序列中的字符数,A 属于长度为 1 的字符类型。

CHARICHAR 在以下几方面意义相反: