Sun Studio 12:Fortran 库参考

2.1 标准 Fortran 95 的通用内函数

本节中介绍的 Fortran 95 通用内函数按其在 Fortran 95 标准中的功能进行分组。

所示参数是在采用关键字形式时可以用作参数关键字的名称,如 cmplx(Y=B, KIND=M, X=A) 中所示。

有关这些通用内过程的详细说明,请查阅 Fortran 95 标准。

2.1.1 参数存在查询函数

通用内函数名 

说明 

PRESENT

存在参数 

2.1.2 数值函数

通用内函数名 

说明 

ABS (A)

绝对值 

AIMAG (Z)

复数的虚部 

AINT (A [, KIND])

整数截尾 

ANINT (A [, KIND])

最近的整数 

CEILING (A [, KIND])

大于或等于数值的最小整数 

CMPLX (X [, Y, KIND])

转换为复数类型 

CONJG (Z)

共轭复数 

DBLE (A)

转换为双精度实数类型 

DIM (X, Y)

正偏差 

DPROD (X, Y)

双精度实数乘积 

FLOOR (A [, KIND])

小于或等于数值的最大整数 

INT (A [, KIND])

转换为整数类型 

MAX (A1, A2 [, A3,...])

最大值 

MIN (A1, A2 [, A3,...])

最小值 

MOD (A, P)

余数函数 

MODULO (A, P)

模数函数 

NINT (A [, KIND])

最近的整数 

REAL (A [, KIND])

转换为实数类型 

SIGN (A, B)

符号传输 

2.1.3 数学函数

通用内函数名 

说明 

ACOS (X)

反余弦 

ASIN (X)

反正弦 

ATAN (X)

反正切 

ATAN2 (Y, X)

反正切 

COS (X)

余弦 

COSH (X)

双曲余弦 

EXP (X)

指数 

LOG (X)

自然对数 

LOG10 (X)

常用对数(10 为基数) 

SIN (X)

正弦 

SINH (X)

双曲正弦 

SQRT (X)

平方根 

TAN (X)

正切 

TANH (X)

双曲正切 

2.1.4 字符函数

通用内函数名 

说明 

ACHAR (I)

按 ASCII 整理序列排列时给定位置的字符 

ADJUSTL (STRING)

齐左调整 

ADJUSTR (STRING)

齐右调整 

CHAR (I [, KIND])

按处理器整理序列排列时给定位置的字符 

IACHAR (C)

按 ASCII 整理序列排列时字符的位置 

ICHAR (C)

按处理器整理序列排列时字符的位置 

INDEX (STRING, SUBSTRING [, BACK])

子串的起始位置 

LEN_TRIM (STRING)

长度不包含结尾的空白字符 

LGE (STRING_A, STRING_B)

词法上大于或等于 

LGT (STRING_A, STRING_B)

词法上大于 

LLE (STRING_A, STRING_B)

词法上小于或等于 

LLT (STRING_A, STRING_B)

词法上小于 

REPEAT (STRING, NCOPIES)

重复并置 

SCAN (STRING, SET [, BACK])

扫描字符串以查找集中的某个字符 

TRIM (STRING)

删除结尾的空白字符 

VERIFY (STRING, SET [, BACK])

检验字符串中的字符集 

2.1.5 字符查询函数

通用内函数名 

说明 

LEN (STRING)

字符实体的长度 

2.1.6 种类函数

通用内函数名 

说明 

KIND (X)

种类类型参数值 

SELECTED_INT_KIND (R)

指定范围的整数种类类型参数 

SELECTED_REAL_KIND ([P, R])

指定精度和范围的实数种类类型参数值 

2.1.7 逻辑函数

通用内函数名 

说明 

LOGICAL (L [, KIND])

在种类类型参数不相同的逻辑类型对象之间转换 

2.1.8 数值查询函数

通用内函数名 

说明 

DIGITS (X)

模型的有效数字数 

EPSILON (X)

与此相比几乎可以忽略的数值 

HUGE (X)

模型中最大的数值 

MAXEXPONENT (X)

模型的最大指数 

MINEXPONENT (X)

模型的最小指数 

PRECISION (X)

十进制精度 

RADIX (X)

模型的基数 

RANGE (X)

十进制指数范围 

TINY (X)

模型中最小的正数 

2.1.9 位查询函数

通用内函数名 

说明 

BIT_SIZE (I)

模型中的位数 

2.1.10 位操作函数

通用内函数名 

说明 

BTEST (I, POS)

位测试 

IAND (I, J)

逻辑 AND 

IBCLR (I, POS)

清除位 

IBITS (I, POS, LEN)

提取位 

IBSET (I, POS)

设置位 

IEOR (I, J)

互斥 OR 

IOR (I, J)

包容 OR 

ISHFT (I, SHIFT)

逻辑移位 

ISHFTC (I, SHIFT [, SIZE])

循环移位 

NOT (I)

逻辑补充 

2.1.11 传送函数

通用内函数名 

说明 

TRANSFER (SOURCE, MOLD [, SIZE])

处理第一个参数,就好象它与第二个参数属于同一种类型 

2.1.12 浮点处理函数

通用内函数名 

说明 

EXPONENT (X)

型号的指数部分 

FRACTION (X)

数值的小数部分 

NEAREST (X, S)

指定的方向最近的不同处理器 

RRSPACING (X)

接近指定数值的型号相对间隔的倒数 

SCALE (X, I)

实数乘以基数得出整数幂 

SET_EXPONENT (X, I)

设置数值的指数部分 

SPACING (X)

接近指定数值的型号的绝对间隔 

2.1.13 向量和矩阵乘法函数

通用内函数名 

说明 

DOT_PRODUCT (VECTOR_A, VECTOR_B)

两个一级数组的点乘积 

MATMUL (MATRIX_A, MATRIX_B)

矩阵乘法 

2.1.14 约简数组函数

通用内函数名 

说明 

ALL (MASK [, DIM])

如果所有的值为 True 则为 True 

ANY (MASK [, DIM])

如果任意值为 True 则为 True 

COUNT (MASK [, DIM])

数组中 True 元素数 

MAXVAL (ARRAY, DIM [, MASK])

MAXVAL (ARRAY [, MASK])

数组中的最大值 

   

MINVAL (ARRAY, DIM [, MASK])

MINVAL (ARRAY [, MASK])

数组中的最小值 

   

PRODUCT (ARRAY, DIM [, MASK])

PRODUCT (ARRAY [, MASK])

数组元素的乘积 

   

SUM (ARRAY, DIM [, MASK])

SUM (ARRAY [, MASK])

数组元素的求和 

2.1.15 数组查询函数

通用内函数名 

说明 

ALLOCATED (ARRAY)

数组分配状态 

LBOUND (ARRAY [, DIM])

数组的维数下界 

SHAPE (SOURCE)

数组或标量的形式 

SIZE (ARRAY [, DIM])

数组中的元素总数 

UBOUND (ARRAY [, DIM])

数组的维数上界 

2.1.16 数组构造函数

通用内函数名 

说明 

MERGE (TSOURCE, FSOURCE, MASK)

在屏蔽下合并 

PACK (ARRAY, MASK [, VECTOR])

在屏蔽下将数组压缩为一级数组 

SPREAD (SOURCE, DIM, NCOPIES)

增加维数以复制数组 

UNPACK (VECTOR, MASK, FIELD)

在屏蔽下将一级数组解压缩为数组 

2.1.17 数组整形函数

通用内函数名 

说明 

RESHAPE (SOURCE, SHAPE[, PAD, ORDER])

数组整形 

2.1.18 数组处理函数

通用内函数名 

说明 

CSHIFT (ARRAY, SHIFT [, DIM])

循环移位 

EOSHIFT (ARRAY, SHIFT [, BOUNDARY, DIM]

结束移位 

TRANSPOSE (MATRIX)

调换两级数组 

2.1.19 数组位置函数

通用内函数名 

说明 

MAXLOC (ARRAY, DIM [, MASK])

MAXLOC (ARRAY [, MASK])

数组中最大值的位置 

   

MINLOC (ARRAY, DIM [, MASK])

MINLOC (ARRAY [, MASK])

数组中最小值的位置 

2.1.20 指针关联状态函数

通用内函数名 

说明 

ASSOCIATED (POINTER [, TARGET])

关联状态查询或比较 

NULL ([MOLD])

返回分离的指针 

2.1.21 系统环境调节过程

通用内函数名 

说明 

COMMAND_ARGUMENT_COUNT ()

返回命令参数的数目 

GET_COMMAND ([COMMAND, LENGTH, STATUS])

返回调用程序的整个命令 

GET_COMMAND_ARGUMENT (NUMBER [, VALUE, LENGTH, STATUS]) 

返回一个命令参数 

GET_ENVIRONMENT_VARIABLE (NAME [, VALUE, LENGTH, STATUS, TRIM_NAME]) 

获得环境变量的值。 

2.1.22 内子例程

通用内函数名 

说明 

CPU_TIME (TIME)

获取处理器的时间 

DATE_AND_TIME ([DATE, TIME,

ZONE, VALUES])

获取日期和时间 

   

MVBITS (FROM, FROMPOS,

LEN, TO, TOPOS)

将位从一个整数复制到另一个整数 

   

RANDOM_NUMBER (HARVEST)

返回伪随机数值 

RANDOM_SEED ([SIZE, PUT, GET])

初始化或重新启动伪随机数据产生器 

SYSTEM_CLOCK ([COUNT,

COUNT_RATE, COUNT_MAX])

从系统时钟中获取数据 

2.1.23 内函数的专用名称

表 2–1 Fortran 95 内函数的专用名称和通用名称

 

专用名称 

通用名称 

参数类型 

 

ABS (A)

ABS (A)

缺省实数 

 

ACOS (X)

ACOS (X)

缺省实数 

 

AIMAG (Z)

AIMAG (Z)

缺省复数 

 

AINT (A)

AINT (A)

缺省实数 

 

ALOG (X)

LOG (X)

缺省实数 

 

ALOG10 (X)

LOG10 (X)

缺省实数 

AMAX0 (A1, A2 [, A3,...])

REAL (MAX (A1, A2 [, A3,...]))

缺省整数 

AMAX1 (A1, A2 [, A3,...])

MAX (A1, A2 [, A3,...])

缺省实数 

AMIN0 (A1, A2 [, A3,...])

REAL (MIN (A1, A2 [, A3,...]))

缺省整数 

AMIN1 (A1, A2 [, A3,...])

MIN (A1, A2 [, A3,...])

缺省实数 

 

AMOD (A, P)

MOD (A, P)

缺省实数 

 

ANINT (A)

ANINT (A)

缺省实数 

 

ASIN (X)

ASIN (X)

缺省实数 

 

ATAN (X)

ATAN (X)

缺省实数 

 

ATAN2 (Y, X)

ATAN2 (Y, X)

缺省实数 

 

CABS (A)

ABS (A)

缺省复数 

 

CCOS (X)

COS (X)

缺省复数 

 

CEXP (X)

EXP (X)

缺省复数 

CHAR (I)

CHAR (I)

缺省整数 

 

CLOG (X)

LOG (X)

缺省复数 

 

CONJG (Z)

CONJG (Z)

缺省复数 

 

COS (X)

COS (X)

缺省实数 

 

COSH (X)

COSH (X)

缺省实数 

 

CSIN (X)

SIN (X)

缺省复数 

 

CSQRT (X)

SQRT (X)

缺省复数 

 

DABS (A)

ABS (A)

双精度 

 

DACOS (X)

ACOS (X)

双精度 

 

DASIN (X)

ASIN (X)

双精度 

 

DATAN (X)

ATAN (X)

双精度 

 

DATAN2 (Y, X)

ATAN2 (Y, X)

双精度 

 

DCOS (X)

COS (X)

双精度 

 

DCOSH (X)

COSH (X)

双精度 

 

DDIM (X, Y)

DIM (X, Y)

双精度 

 

DEXP (X)

EXP (X)

双精度 

 

DIM (X, Y)

DIM (X, Y)

缺省实数 

 

DINT (A)

AINT (A)

双精度 

 

DLOG (X)

LOG (X)

双精度 

 

DLOG10 (X)

LOG10 (X)

双精度 

DMAX1 (A1, A2 [, A3,...])

MAX (A1, A2 [, A3,...])

双精度 

DMIN1 (A1, A2 [, A3,...])

MIN (A1, A2 [, A3,...])

双精度 

 

DMOD (A, P)

MOD (A, P)

双精度 

 

DNINT (A)

ANINT (A)

双精度 

 

DPROD (X, Y)

DPROD (X, Y)

缺省实数 

 

DSIGN (A, B)

SIGN (A, B)

双精度 

 

DSIN (X)

SIN (X)

双精度 

 

DSINH (X)

SINH (X)

双精度 

 

DSQRT (X)

SQRT (X)

双精度 

 

DTAN (X)

TAN (X)

双精度 

 

DTANH (X)

TANH (X)

双精度 

 

EXP (X)

EXP (X)

缺省实数 

FLOAT (A)

REAL (A)

缺省整数 

 

IABS (A)

ABS (A)

缺省整数 

ICHAR (C)

ICHAR (C)

缺省字符 

 

IDIM (X, Y)

DIM (X, Y)

缺省整数 

IDINT (A)

INT (A)

双精度 

 

IDNINT (A)

NINT (A)

双精度 

IFIX (A)

INT (A)

缺省实数 

 

INDEX (STRING, SUBSTRING)

INDEX (STRING, SUBSTRING)

缺省字符 

INT (A)

INT (A)

缺省实数 

 

ISIGN (A, B)

SIGN (A, B)

缺省整数 

 

LEN (STRING)

LEN (STRING)

缺省字符 

LGE (STRING_A, STRING_B)

LGE (STRING_A, STRING_B)

缺省字符 

LGT (STRING_A, STRING_B)

LGT (STRING_A, STRING_B)

缺省字符 

LLE (STRING_A, STRING_B)

LLE (STRING_A, STRING_B)

缺省字符 

LLT (STRING_A, STRING_B)

LLT (STRING_A, STRING_B)

缺省字符 

MAX0 (A1, A2 [, A3,...])

MAX (A1, A2 [, A3,...])

缺省整数 

MAX1 (A1, A2 [, A3,...])

INT (MAX (A1, A2 [, A3,...]))

缺省实数 

MIN0 (A1, A2 [, A3,...])

MIN (A1, A2 [, A3,...])

缺省整数 

MIN1 (A1, A2 [, A3,...])

INT (MIN (A1, A2 [, A3,...]))

缺省实数 

 

MOD (A, P)

MOD (A, P)

缺省整数 

 

NINT (A)

NINT (A)

缺省实数 

REAL (A)

REAL (A)

缺省整数 

 

SIGN (A, B)

SIGN (A, B)

缺省实数 

 

SIN (X)

SIN (X)

缺省实数 

 

SINH (X)

SINH (X)

缺省实数 

SNGL (A)

REAL (A)

双精度 

 

SQRT (X)

SQRT (X)

缺省实数 

 

TAN (X)

TAN (X)

缺省实数 

 

TANH (X)

TANH (X)

缺省实数 

标有 # 号的函数不能用作实际参数。“双精度”表示双精度实数。