本节中介绍的 Fortran 95 通用内函数按其在 Fortran 95 标准中的功能进行分组。
所示参数是在采用关键字形式时可以用作参数关键字的名称,如 cmplx(Y=B, KIND=M, X=A) 中所示。
有关这些通用内过程的详细说明,请查阅 Fortran 95 标准。
通用内函数名 |
说明 |
---|---|
PRESENT |
存在参数 |
通用内函数名 |
说明 |
---|---|
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) |
符号传输 |
通用内函数名 |
说明 |
---|---|
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) |
双曲正切 |
通用内函数名 |
说明 |
---|---|
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]) |
检验字符串中的字符集 |
通用内函数名 |
说明 |
---|---|
LEN (STRING) |
字符实体的长度 |
通用内函数名 |
说明 |
---|---|
KIND (X) |
种类类型参数值 |
SELECTED_INT_KIND (R) |
指定范围的整数种类类型参数 |
SELECTED_REAL_KIND ([P, R]) |
指定精度和范围的实数种类类型参数值 |
通用内函数名 |
说明 |
---|---|
LOGICAL (L [, KIND]) |
在种类类型参数不相同的逻辑类型对象之间转换 |
通用内函数名 |
说明 |
---|---|
DIGITS (X) |
模型的有效数字数 |
EPSILON (X) |
与此相比几乎可以忽略的数值 |
HUGE (X) |
模型中最大的数值 |
MAXEXPONENT (X) |
模型的最大指数 |
MINEXPONENT (X) |
模型的最小指数 |
PRECISION (X) |
十进制精度 |
RADIX (X) |
模型的基数 |
RANGE (X) |
十进制指数范围 |
TINY (X) |
模型中最小的正数 |
通用内函数名 |
说明 |
---|---|
BIT_SIZE (I) |
模型中的位数 |
通用内函数名 |
说明 |
---|---|
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) |
逻辑补充 |
通用内函数名 |
说明 |
---|---|
TRANSFER (SOURCE, MOLD [, SIZE]) |
处理第一个参数,就好象它与第二个参数属于同一种类型 |
通用内函数名 |
说明 |
---|---|
EXPONENT (X) |
型号的指数部分 |
FRACTION (X) |
数值的小数部分 |
NEAREST (X, S) |
指定的方向最近的不同处理器 |
RRSPACING (X) |
接近指定数值的型号相对间隔的倒数 |
SCALE (X, I) |
实数乘以基数得出整数幂 |
SET_EXPONENT (X, I) |
设置数值的指数部分 |
SPACING (X) |
接近指定数值的型号的绝对间隔 |
通用内函数名 |
说明 |
---|---|
DOT_PRODUCT (VECTOR_A, VECTOR_B) |
两个一级数组的点乘积 |
MATMUL (MATRIX_A, MATRIX_B) |
矩阵乘法 |
通用内函数名 |
说明 |
---|---|
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]) |
数组元素的求和 |
通用内函数名 |
说明 |
---|---|
ALLOCATED (ARRAY) |
数组分配状态 |
LBOUND (ARRAY [, DIM]) |
数组的维数下界 |
SHAPE (SOURCE) |
数组或标量的形式 |
SIZE (ARRAY [, DIM]) |
数组中的元素总数 |
UBOUND (ARRAY [, DIM]) |
数组的维数上界 |
通用内函数名 |
说明 |
---|---|
MERGE (TSOURCE, FSOURCE, MASK) |
在屏蔽下合并 |
PACK (ARRAY, MASK [, VECTOR]) |
在屏蔽下将数组压缩为一级数组 |
SPREAD (SOURCE, DIM, NCOPIES) |
增加维数以复制数组 |
UNPACK (VECTOR, MASK, FIELD) |
在屏蔽下将一级数组解压缩为数组 |
通用内函数名 |
说明 |
---|---|
RESHAPE (SOURCE, SHAPE[, PAD, ORDER]) |
数组整形 |
通用内函数名 |
说明 |
---|---|
CSHIFT (ARRAY, SHIFT [, DIM]) |
循环移位 |
EOSHIFT (ARRAY, SHIFT [, BOUNDARY, DIM] |
结束移位 |
TRANSPOSE (MATRIX) |
调换两级数组 |
通用内函数名 |
说明 |
---|---|
MAXLOC (ARRAY, DIM [, MASK]) 或 MAXLOC (ARRAY [, MASK]) |
数组中最大值的位置 |
MINLOC (ARRAY, DIM [, MASK]) 或 MINLOC (ARRAY [, MASK]) |
数组中最小值的位置 |
通用内函数名 |
说明 |
---|---|
ASSOCIATED (POINTER [, TARGET]) |
关联状态查询或比较 |
NULL ([MOLD]) |
返回分离的指针 |
通用内函数名 |
说明 |
---|---|
COMMAND_ARGUMENT_COUNT () |
返回命令参数的数目 |
GET_COMMAND ([COMMAND, LENGTH, STATUS]) |
返回调用程序的整个命令 |
GET_COMMAND_ARGUMENT (NUMBER [, VALUE, LENGTH, STATUS]) |
返回一个命令参数 |
GET_ENVIRONMENT_VARIABLE (NAME [, VALUE, LENGTH, STATUS, TRIM_NAME]) |
获得环境变量的值。 |
通用内函数名 |
说明 |
---|---|
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]) |
从系统时钟中获取数据 |
|
专用名称 |
通用名称 |
参数类型 |
---|---|---|---|
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) |
缺省实数 |
标有 # 号的函数不能用作实际参数。“双精度”表示双精度实数。
Fortran 2003 标准提供了一组内模块,它们定义了支持 IEEE 算术以及与 C 语言的互操作性所需的功能。
Fortran 2003 标准内模块 IEEE_EXCEPTIONS、IEEE_ARITHMETIC 和 IEEE_FEATURES 支持采用建议的语言标准的新功能,从而支持 IEEE 算术和 IEEE 异常处理。
草案标准定义了一组查询函数、基本函数、种类函数、基本子例程和非基本子例程。后面的表中列出了这些函数和子例程。
要访问这些函数和子例程,调用例程必须包括
USE, INTRINSIC :: IEEE_ARITHMETIC, IEEE_EXCEPTIONS
有关详细信息,请参见 Fortran 标准 (http://www.j3-fortran.org)。
模块 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 功能。 |
模块 IEEE_ARITHMETIC 包含参数为实数且满足特定条件(即下表中实数参数 X 和 Y 满足 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 无序函数。如果 X 或 Y 为 NaN,则为 true,否则为 false。 |
IEEE_VALUE(X,CLASS) |
生成 IEEE 值。 |
模块 IEEE_ARITHMETIC 包含以下转换函数:
功能 |
说明 |
IEEE_SELECTED_REAL_KIND([P,][R]) |
具有指定精度和范围的 IEEE 实数的种类类型参数值。 |
模块 IEEE_EXCEPTIONS 包含下列基本子例程。
子例程 |
说明 |
IEEE_GET_FLAG(FLAG,FLAG_VALUE) |
获取异常标志。 |
IEEE_GET_HALTING_MODE(FLAG,HALTING) |
获取异常的停止模式。 |
模块 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 舍入模式。 |
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_1 和 C_PTR_2 是否与同一个实体关联。 |
C_F_POINTER(CPTR, FPTR [, SHAPE]) |
将指针与 C 指针的目标关联并指定其形式。 |
有关 ISO_C_BINDING 内模块的详细信息,请参见 http://www.j3-fortran.org 上的 Fortran 2003 标准的第 15 章。
下列函数在 f95 编译器中视为内函数,但它们不属于 Fortran 95 标准。
在使用 -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 性能库用户指南》。
下表列出了在针对区间运算进行编译 (-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 |
|
|
|
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 内存函数。
Fortran 95 编译器可识别以下其他内函数:
MPI_SIZEOF( x, size, error) 返回指定变量 x 的机器表示形式的字节数大小。如果 x 是数组,它返回基本元素的大小,而不是整个数组的大小。 |
|
x |
输入;任意类型的变量或数组 |
size |
输出;整数;x 的字节数大小 |
error |
输出;整数;设置为如果检测到错误显示错误代码,否则为零。 |
内存分配、重新分配和解除分配函数 malloc()、realloc() 和 free() 均以 f95 内函数实现。有关详细信息,请参见1.4.35 malloc、malloc64、realloc 和 free:分配/重新分配/解除分配内存。