CSDN博客

img yuanqingfei

Fortran 95 固定过程

发表于2004/7/10 17:14:00  2588人阅读

分类: 〖Fortran〗

FORTRAN 95把固有过程作为标准来提出,就意味着任何的FORTRAN 95的编译器实现版本,都必须能够提供它们:115个固有过程,其中包括109个固有函数和6个固有子例行程序。当然不排除很多的编译器还提供额外的固有过程。

14-1  种过程的过程名称以及相应的变元属性

类过程名称

种过程名称及其变元

种过程变元类型

ABS

ABS(A)

CABS(A)

DABS(A)

IABS(A)

默认实型

默认复型

双精度实型

默认整型

ACOS

ACOS(X)

DACOS(X)

默认实型

双精度实型

AIMAG

AIMAG(Z)

默认复型

AINT

AINT(A)

DINT(A)

默认实型

双精度实型

ANINT

ANINT(A)

DNINT(A)

默认实型

双精度实型

ASIN

ASIN(X)

DSIN(X)

默认实型

双精度实型

ATAN

ATAN(A)

DTAN(A)

默认实型

双精度实型

ATAN2

ATAN2(A)

DTAN2(A)

默认实型

双精度实型

CHAR

*CHAR(I)

默认整型

COS

COS(X)

CCOS(X)

DCOS(X)

默认实型

默认复型

双精度实型

CONJG

CONJG(X)

默认复型

COSH

COSH(X)

DCOSH(X)

默认实型

双精度实型

DIM

DIM(XY)

IDIM(XY)

默认实型

默认整型

DPROD

DPROD(XY)

默认实型

EXP

EXP(X)

CEXP(X)

DEXP(X)

默认实型

默认复型

双精度实型

ICHAR

*ICHAR(C)

默认字符型

INDEX

INDEX(STRINGSUBSTRING)

默认字符型

INT

*INT(A)

*IFIX(A)

*IDINT(A)

默认实型

默认实型

双精度实型

LEN

LEN(STRING)

默认字符型

LGE

*LGE(STRING_ASTRING_B)

默认字符型

LGT

*LGT(STRING_ASTRING_B)

默认字符型

LLE

*LLE(STRING_ASTRING_B)

默认字符型

LLT

*LLT(STRING_ASTRING_B)

默认字符型

LOG

ALOG(X)

CLOG(X)

DLOG(X)

默认实型

默认复型

双精度实型

LOG10

ALOG10(X)

DLOG10(X)

默认实型

双精度实型

MAX

 

 

1

2

*MAX0(A1A2A3…)

*AMAX1(A1A2A3…)

*DMAX1(A1A2A3…)

*MAX1(A1A2A3…)

*AMAX0(A1A2A3…)

默认整型

默认实型

双精度实型

默认实型

默认整型

MIN

 

 

1

2

*MIN0(A1A2A3…)

*AMIN1(A1A2A3…)

*DMIN1(A1A2A3…)

*MIN1(A1A2A3…)

*AMIN0(A1A2A3…)

默认整型

默认实型

双精度实型

默认实型

默认整型

MOD

MOD(AP)

AMOD(AP)

DMOD(AP)

默认整型

默认实型

双精度实型

NINT

NINT(A)

IDNINT(A)

默认实型

双精度实型

REAL

*REAL(A)

*FLOAT(A)

*SNGL(A)

默认整型

默认整型

双精度实型

SIGN

SIGN(AB)

DSIGN(AB)

ISIGN(AB)

默认实型

双精度实型

默认整型

SIN

SIN(X)

CSIN(X)

DSIN(X)

默认实型

默认复型

双精度实型

SINH

SINH(X)

DSINH(X)

默认实型

双精度实型

SQRT

SQRT(X)

CSQRT(X)

SDQRT(X)

默认实型

默认复型

双精度实型

TAN

TAN(X)

DTAN(X)

默认实型

双精度实型

TANH

TANH(X)

DTANH(X)

默认实型

双精度实型

1:该函数没有相应的类过程名称,它的结果为默认整型。

2:该函数没有相应的类过程名称,它的结果为默认实型。

3:标注星号*的函数不能用作实元。

4:某些种过程名称与其类过程名称一样。

14-2  数组查询函数的名称以及返回值

   

ALLOCATED

变元数组的分配状态

LBOUND

一个数组或数组的一个维度的下界

SHAPE

数组在每个维度上的元素的数目

SIZE

数组的尺度,即其全部元素的数目

UBOUND

一个数组或数组的一个维度的上界

14-3  数值模式查询函数的名称以及返回值

   

DIGITS

整数模式和实数模式公式里面的n

EPSILON

实变元的 的值

HUGE

按照整数模式和实数模式所能够表示的最大数值

MINEXPONENT

实变元所能够取得的最小的e

MAXEXPONENT

实变元所能够取得的最大的e

PRECISION

实数或复数的10进制精度

RADIX

整数模式和实数模式公式里面的基数值

RANGE

整数,实数或复数的10进制幂次范围

TINY

实变元所能够取得的最小的正数值

   

注意:

这些函数的变元都不需要预先定义。

它们都是类过程,因为它们都能够用于任意类型的实变元。

除了EPSILONMINEXPONENTMAXEXPONENT3个函数之外,它们都能够用于任意类型的整型变元。

14-4  数字操作函数的名称以及返回值

   

EXPONENT

实数值的实数模式表示公式里面的e

FRACTION

实数值的小数部分

NEAREST

系统所能够表示的在给定方向上最接近第一个变元的数值

RRSPACING

变元附近的最小间距的倒数

SCALE

用给定的值替换e

SET_EXPONENT

e值设置为给定的值

SPACING

变元附近的最小绝对间距

    

7个函数只能应用于实数环境,变元可以是任意类型的实数值,而且都是逐元函数。

14-5  转换函数的名称以及返回值

   

ACHAR

ASCII字符集的指定位置的字符

AIMAG

复数的虚部

AINT

把一个实数截断为实型整数

ANINT

把一个实数截断为最接近的实型整数

CHAR

在系统字符集的指定位置的字符

CMPLX

与变元相应的复数值

CONJG

复数变元的共轭复数

DBLE

与变元相应的双精度值

IACHAR

指定字符在ASCII字符集里面的位置

IBITS

以位表示的整型变元的指定子串

ICHAR

指定字符在系统字符集里面的位置

INT

变元被截断得到的整型值

LOGICAL

与变元相应的逻辑型值

NINT

把一个实数截断为最接近的整型值

REAL

与变元相应的实型值

14-6  数值计算函数的名称以及返回值

   

ABS

变元的绝对值

ACOS

变元的反余弦值

ASIN

变元的反正弦值

ATAN

变元的反正切值

ATAN2

复数变元(XY)的幅角弧度值

CEILING

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

COS

变元的余弦值

COSH

变元的双曲余弦值

DIM

如果2个变元的差为正数,则返回差值,否则返回0

DOT_PRODUCT

2个秩为1的数组的点积

DPROD

2个单精度数值的双精度乘积

EXP

自然指数函数

FLOOR

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

LOG

自然对数函数

LOG10

10为底的对数函数

MATMUL

矩阵乘积

MAX

一个值集合里面的最大值

MIN

一个值集合里面的最小值

MOD

求余函数,其符号与第一个变元的符号一致

MODULO

求余函数,其符号与第二个变元的符号一致

SIGN

赋予给定值给定的符号

SIN

变元的正弦值

SINH

变元的双曲正弦值

SQRT

变元的平方根

TAN

变元的正切值

TANH

变元的双曲正切值

 

14-7  字符计算函数的名称以及返回值

   

ADJUSTL

把字符串左边的空格移到它的右边

ADJUSTR

把字符串右边的空格移到它的左边

INDEX

一个子串在给定字符串里面的位置

LEN_TRIM

删除尾部空格后的字符串长度

LGE

基于ASCII序列的大于或等于的比较

LGT

基于ASCII序列的大于的比较

LLE

基于ASCII序列的小于或等于的比较

LLT

基于ASCII序列的小于的比较

REPEAT

重复连接字符串

SCAN

扫描一个字符串以获得给定字符串在其中的位置

TRIM

删除尾部空格后得到的字符串

VERIFY

给出不属于指定字符集里面的字符在字符串里面出现的位置

 

14-8  位计算函数的名称以及返回值

   

BTEST

整型变元在指定的位上面的值

IAND

2个整型变元的逻辑AND运算的结果

IBCLR

把一个整型变元的指定的位上的值清0

IBSET

把一个整型变元的指定的位上的值设置为1

IEOR

2个整型变元的逻辑排除OR运算的结果

IOR

2个整型变元的逻辑包含OR运算的结果

ISHFT

对变元进行逻辑移位

ISHFTC

对变元进行逻辑循环移位

NOT

变元的逻辑补

 

注意:

计算函数当中除了LGELGTLLELLT之外都是类过程。

计算函数当中除了DOT_PRODUCTMATMULREPEAT之外都是逐元过程。

● 位计算函数的结果不可移植。

14-9  数组简化函数的名称以及返回值

   

ALL

如果变元数组的所有元素都是真则取真值

ANY

如果变元数组的元素当中存在一个真值则取真值

COUNT

变元数组的元素当中取真值的元素的数目

MAXVAL

变元数组的元素当中的最大值

MINVAL

变元数组的元素当中的最小值

PRODUCT

变元数组的元素的乘积

SUM

变元数组的元素的和

14-10  数组构造函数的名称以及返回值

   

MERGE

在过滤器的控制下组合2个合适的数组

PACK

把一个过滤了的数组封装为一个向量

SPREAD

通过复制某个维度而得到增加维度的数组

UNPACK

从一个向量还原为一个过滤了的数组

3. 数组重组函数

数组重组函数只包含一个固有函数RESHAPE,它的功能是把一个秩为1的数组的元素重组为一个给定形状的数组。

4. 数组操作函数

数组操作函数对变元数组的元素进行重新排列,它们的的名称以及返回值见表14-11

14-11  数组操作函数的名称以及返回值

   

CSHIFT

数组元素的循环移位

EOSHIFT

数组元素的移位

TRANSPOSE

变元数组的矩阵转置

 

5. 数组定位函数

数组定位函数给出数组元素里面的最大值或最小值在数组当中,或在数组的某个维度当中的位置,它们的的名称以及返回值见表14-12

14-12  数组定位函数的名称以及返回值

   

MAXLOC

包含最大元素的秩为1的数组

MINLOC

包含最小元素的秩为1的数组

    CPU_TIME

该固有子例行程序返回以秒为单位的处理器时间,它不包含具有INTENT(OUT)属性的变元。

    DATE_AND_TIME

该固有子例行程序返回日期与时间信息作为一些具有INTENT(OUT)属性的变元的值。

    MVBITS

该固有子例行程序把一个二进制码序列从一个整型数据对象复制到另一个整型数据对象。

该固有子例行程序是唯一的逐元固有子例行程序。

    RANDOM_NUMBER

该固有子例行程序返回一个伪随机数值或伪随机数组作为变元的取值。表面看来它应该可以作为一个函数,但是实际上它具有后效,即它每产生一个伪随机数结果,都会影响它底下的伪随机数生成器的变量的取值,因此它不是纯过程,而固有函数必须是纯过程。

    RANDOM_SEED

该固有子例行程序同样返回一个伪随机数值或伪随机数组作为变元的取值。但它还允许对它底下的伪随机数生成器的变量进行特定的初始化或恢复原来的取值。

    SYSTEM_CLOCK

该固有子例行程序以整数形式返回处理器时钟信息,可以有几种格式,并且可以作为具有INTENT(OUT)属性的变元的值。

 

0 0

相关博文

我的热门文章

img
取 消
img