Sun Studio 12:Fortran 库参考

第 2 章 Fortran 95 内函数

本章列出了 f95 编译器可识别的内函数名称。

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)

缺省实数 

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

2.2 Fortran 2003 Module Routines

Fortran 2003 标准提供了一组内模块,它们定义了支持 IEEE 算术以及与 C 语言的互操作性所需的功能。

2.2.1 IEEE 算术和异常模块

Fortran 2003 标准内模块 IEEE_EXCEPTIONSIEEE_ARITHMETICIEEE_FEATURES 支持采用建议的语言标准的新功能,从而支持 IEEE 算术和 IEEE 异常处理。

草案标准定义了一组查询函数、基本函数、种类函数、基本子例程和非基本子例程。后面的表中列出了这些函数和子例程。

要访问这些函数和子例程,调用例程必须包括

USE, INTRINSIC :: IEEE_ARITHMETIC, IEEE_EXCEPTIONS

有关详细信息,请参见 Fortran 标准 (http://www.j3-fortran.org)。

2.2.1.1 查询函数

模块 IEEE_EXCEPTIONS 包含下列查询函数。

功能 

说明 

IEEE_SUPPORT_FLAG(FLAG[,X])

查询处理器是否支持异常。 

IEEE_SUPPORT_HALTING(FLAG)

查询处理器是否支持在出现异常后控制停止异常。 

模块 IEEE_ARITHMETIC 包含下列查询函数。

功能 

说明 

IEEE_SUPPORT_DATATYPE([X])

查询处理器是否支持 IEEE 算术。 

IEEE_SUPPORT_DENORMAL([X])

查询处理器是否支持非规范化的数值。 

IEEE_SUPPORT_DIVIDE([X])

查询处理器是否支持按 IEEE 标准规定的精度进行除法运算。 

IEEE_SUPPORT_INF([X])

查询处理器是否支持 IEEE 无穷大。 

IEEE_SUPPORT_IO([X])

查询处理器是否支持在格式化输入/输出期间进行 IEEE 基本转换舍入。 

IEEE_SUPPORT_NAN([X])

查询处理器是否支持 IEEE 非数值。 

IEEE_SUPPORT_ROUNDING(VAL[,X])

查询处理器是否支持特定的舍入模式。 

IEEE_SUPPORT_SQRT([X])

查询处理器是否支持 IEEE 平方根。 

IEEE_SUPPORT_STANDARD([X])

查询处理器是否支持所有的 IEEE 功能。 

2.2.1.2 基本函数

模块 IEEE_ARITHMETIC 包含参数为实数且满足特定条件(即下表中实数参数 XY 满足 IEEE_SUPPORT_DATATYPE(X)IEEE_SUPPORT_DATATYPE(Y) 为 true)的下列基本函数。

功能 

说明 

IEEE_CLASS(X)

IEEE 类 

IEEE_COPY_SIGN(X,Y)

IEEE 复制符号函数 

IEEE_IS_FINITE(X)

确定值是否为有限值。 

IEEE_IS_NAN(X)

确定值是否为 IEEE 非数值。 

IEEE_IS_NORMAL(X)

确定值是否正常。 

IEEE_IS_NEGATIVE(X)

确定值是否为负数。 

IEEE_LOGB(X)

采用 IEEE 浮点格式的无偏指数。 

IEEE_NEXT_AFTER(X,Y)

返回趋向 Y 的下一个可表示的 X 邻数。

IEEE_REM(X,Y)

IEEE REM 余数函数 X - Y*N,其中 N 是最接近 X/Y 精确值的整数。

IEEE_RINT(X)

根据当前的舍入模式舍入为整数值。 

IEEE_SCALB(X,I)

返回 X*2**I

IEEE_UNORDERED(X,Y)

IEEE 无序函数。如果 XY 为 NaN,则为 true,否则为 false。

IEEE_VALUE(X,CLASS)

生成 IEEE 值。 

2.2.1.3 种类函数

模块 IEEE_ARITHMETIC 包含以下转换函数:

功能 

说明 

IEEE_SELECTED_REAL_KIND([P,][R])

具有指定精度和范围的 IEEE 实数的种类类型参数值。 

2.2.1.4 基本子例程

模块 IEEE_EXCEPTIONS 包含下列基本子例程。

子例程 

说明 

IEEE_GET_FLAG(FLAG,FLAG_VALUE)

获取异常标志。 

IEEE_GET_HALTING_MODE(FLAG,HALTING)

获取异常的停止模式。 

2.2.1.5 非基本子例程

模块 IEEE_EXCEPTIONS 包含下列非基本子例程。

子例程 

说明 

IEEE_GET_STATUS(STATUS_VALUE)

获取浮点环境的当前状态。 

IEEE_SET_FLAG(FLAG,FLAG_VALUE)

设置异常标志。 

IEEE_SET_HALTING_MODE(FLAG,HALTING)

控制异常持续或停止。 

IEEE_SET_STATUS(STATUS_VALUE)

恢复浮点环境的状态。 

模块 IEEE_ARITHMETIC 包含下列非基本子例程。

子例程 

说明 

IEEE_GET_ROUNDING_MODE(ROUND_VAL)

获取当前的 IEEE 舍入模式。 

IEEE_SET_ROUNDING_MODE(ROUND_VAL)

设置当前的 IEEE 舍入模式。 

2.2.2 C 绑定模块

Fortran 2003 标准提供了一种引用 C 语言过程的方式。ISO_C_BINDING 模块按内模块函数形式定义了三个支持过程。访问这些函数需要在调用例程中使用

USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_LOC, C_PTR, C_ASSOCIATED

。该模块中定义的过程如下

功能 

说明 

C_LOC(X)

返回参数的 C 地址 

C_ASSOCIATED(C_PTR_1 [, C_PTR_2])

表示 C_PTR_1 的关联状态,或者表示 C_PTR_1C_PTR_2 是否与同一个实体关联。

C_F_POINTER(CPTR, FPTR [, SHAPE])

将指针与 C 指针的目标关联并指定其形式。 

有关 ISO_C_BINDING 内模块的详细信息,请参见 http://www.j3-fortran.org 上的 Fortran 2003 标准的第 15 章。

2.3 非标准 Fortran 95 内函数

下列函数f95 编译器中视为内函数,但它们不属于 Fortran 95 标准。

2.3.1 基本线性代数函数 (BLAS)

在使用 -xknown_lib=blas 进行编译时,编译器会将对下列例程的调用识别为内函数,并对其进行优化,然后将其链接到 Sun Performance Library 实现。编译器会忽略用户提供的这些例程版本。

表 2–2 BLAS 内函数

功能 

说明 

CAXPY

DAXPY

SAXPY

ZAXPY

标量和向量的乘积并加上向量 

CCOPY

DCOPY

SCOPY

ZCOPY

复制向量 

CDOTC

CDOTU

DDOT

SDOT

ZDOTC

ZDOTU

点乘积(内部乘积) 

CSCAL

DSCAL

SSCAL

ZSCAL

按比例缩放向量 

有关这些例程的更多信息,请参见《Sun 性能库用户指南》。

2.3.2 区间运算内函数

下表列出了在针对区间运算进行编译 (-xia) 时编译器可识别的内函数。有关详细信息,请参见《Fortran 95 Interval Arithmetic 编程参考》。

DINTERVAL

DIVIX

INF

INTERVAL

ISEMPTY

MAG

MID

MIG

NDIGITS

QINTERVAL

SINTERVAL

SUP

VDABS

VDACOS

VDASIN

VDATAN

VDATAN2

VDCEILING

VDCOS

VDCOSH

VDEXP

VDFLOOR

VDINF

VDINT

VDISEMPTY

VDLOG

VDLOG10

VDMAG

VDMID

VDMIG

VDMOD

VDNINT

VDSIGN

VDSIN

VDSINH

VDSQRT

VDSUP

VDTAN

VDTANH

VDWID

VQABS

VQCEILING

VQFLOOR

VQINF

VQINT

VQISEMPTY

VQMAG

VQMID

VQMIG

VQNINT

VQSUP

VQWID

VSABS

VSACOS

VSASIN

VSATAN

VSATAN2

VSCEILING

VSCOS

VSCOSH

VSEXP

VSFLOOR

VSINF

VSINT

VSISEMPTY

VSLOG

VSLOG10

VSMAG

VSMID

VSMIG

VSMOD

VSNINT

VSSIGN

VSSIN

VSSINH

VSSQRT

VSSUP

VSTAN

VSTANH

VSWID

WID

 

 

 

2.3.3 其他供应商的内函数

f95 编译器可识别许多由其他供应商(包括 Cray Research, Inc.)的 Fortran 编译器定义的传统内函数。这些内函数现已过时,应避免使用。

表 2–3 Cray CF90 和其他编译器的内函数

功能 

参数 

说明 

CLOC

([C=]c) 

获取字符对象的地址 

COMPL

([I=]i) 

逐位补充单词。使用 NOT(i)。 

COT

([X=]x) 

一般余切。(另外还有:DCOT、QCOT) 

CSMG

([I=]i,[J=]j,[K=]k) 

有条件的标量合并 

DSHIFTL

([I=]i,[J=]j,[K=]k) 

将双对象 i 和 j 向左移动 k 个位 

DSHIFTR

([I=]i,[J=]j,[K=]k) 

将双对象 i 和 j 向右移动 k 个位 

EQV

([I=]i,[J=]j) 

逻辑等价。使用 IOER(i,j)。 

FCD

([I=]i,[J=]j) 

构造字符指针。 

GETPOS

([I=]i) 

获取文件位置 

IBCHNG

([I=]i, [POS=]j) 

更改单词中指定位的通用函数。 

ISHA

([I=]i, [SHIFT=]j) 

一般算术移位 

ISHC

([I=]i, [SHIFT=]j) 

一般循环移位 

ISHL

([I=]i, [SHIFT=]j) 

一般左移位 

LEADZ

([I=]i) 

统计前导 0 位的数量 

LENGTH

([I=]i) 

返回成功传送的 Cray 单词数 

LOC

([I=]i) 

返回变量的地址(请参见1.4.32 loc:返回对象的地址

NEQV

([I=]i,[J=]j) 

逻辑非等价。使用 IOER(i,j)。 

POPCNT

([I=]i) 

统计设为 1 的位数。 

POPPAR

([I=]i) 

计算位总体的奇偶校验 

SHIFT

([I=]i,[J=]j) 

循环式左移。使用 ISHFT(i,j) 或 ISHFTC(i,j,k)。 

SHIFTA

([I=]i,[J=]j) 

带符号扩展的算术移位。 

SHIFTL

([I=]i,[J=]j) 

补零式左移。使用 ISHFT(i,j) 或 ISHFTC(i,j,k)。 

SHIFTR

([I=]i,[J=]j) 

补零式右移。使用 ISHFT(i,j) 或 ISHFTC(i,j,k)。 

TIMEF

() 

返回自第一次调用后经过的时间 

UNIT

([I=]i) 

返回 BUFFERIN 或 BUFFEROUT 的状态 

XOR

([I=]i,[J=]j) 

逻辑互斥 OR。使用 IOER(i,j)。 

有关 VMS Fortran 77 内函数列表,另请参见2.3.4.2 内存函数

2.3.4 其他扩展

Fortran 95 编译器可识别以下其他内函数:

2.3.4.1 MPI_SIZEOF

MPI_SIZEOF( x, size, error)

返回指定变量 x 的机器表示形式的字节数大小。如果 x 是数组,它返回基本元素的大小,而不是整个数组的大小。

输入;任意类型的变量或数组 

size

输出;整数;x 的字节数大小

error

输出;整数;设置为如果检测到错误显示错误代码,否则为零。 

2.3.4.2 内存函数

内存分配、重新分配和解除分配函数 malloc()realloc()free() 均以 f95 内函数实现。有关详细信息,请参见1.4.35 mallocmalloc64reallocfree:分配/重新分配/解除分配内存