附录A HPF 1.1子集 |
|
作为高性能Fortran语言前面版本的定义部分,HPF1.1在Fortran 77语言的基础上形式化地定义了一个子集语言。目标是允许更快地实现HPF的一个有用的子集,该子集不要求完全实现新的ANSI/ISO标准Fortran(“Fortran
90”)。
没有为当前版本HPF2.0定义子集语言。包含在HPF 2.0语言文档中的这个附录可作为HPF1.1子集的一个方便的摘要,可将它作为HPF实现的最小要求。
A.1 HPF1.1子集中的Fortran 90特征
下面列出了HPF1.1子集语言的特征:
- 除储存和顺序相联之外,所有的FORTRAN 77标准都符合特征。
- MIL-STD-1753特征的Fortran 90定义:
- DO WHILE 语句
- END DO 语句
- IMPLICIT NONE语句
- INCLUDE 行
- 标量位维护内部函数:IOR,IAND,NOT,IEOR,ISHFT,ISHFTC,BTEST,IBCLR,IBITS,MVBITS。
- 用于DATA语句中的二进制,十进制和十六进制常数。
- 算数和逻辑数组特征:
- 数组区域
- 限制在一层隐DO的数组构造器
- 对整个数组和数组区域的算数和逻辑操作
- 数组赋值
- 屏蔽数组赋值
- WHERE语句
- 块WHERE...ELSEWHERE结构
- 值数组外部函数
- 自动数组
- ALLOCATABLE数组以及ALLOCATE和DEALLOCATE语句
- 假定形状数组
- 内部过程:
下面列出的内部函数和子程序是一些例程的组合,这些例程或者对于Fortran 是全新的或者是Fortran的一部分,但以对后者扩展了新的参数和结果类型。这些例程新的或扩展的定义是子集的一部分。如果一个FORTRAN
77例程没有包含在这个列表中,则只有原始的FORTRAN 77定义是子集的一部分。
对于所有具有可选参数DIM的内部函数,只有对应于DIM的用于初始化的实参表达式是子集的一部分。具有这一约束的内部函数在下面的列表中用+标志。
- 参数存在查询函数:PRESENT
- 所有的数字基本函数:ABS,AIMAG,AINT,ANINT,CEILING,CMPLX,CONJG,DBLE,DIM,DPROD,FLOOR,INT,MAX,MIN,MOD,MODULO,NINT,REAL,SING
- 所有的算数基本函数:ACOS,ASIN,ATAN,ATAN2,COS,COSH,EXP,LOG,LOG10,SIN,SINH,SQRT,TAN,TANH
- 所有的位维护基本函数;BTEST,IAND,IBCLR,IBITS,IBSET,IEOR,IOR,ISHFT,ISHFTC,NOT
- 所有的向量和矩阵乘函数:DOT_PRODUCT,MATMUL
- 所有的数组归约函数:ALL+,ANY+,COUNT+,MAXVAL+,MINVAL+,PRODUCT+,SUM+
- 所有的数组查询函数:ALLOCATED,LBOUND+,SHAPE,SIZE+,UBOUND+
- 所有的数组构造函数:MERGE,PACK,SPREAD+,UNPACK
- 所有的数组重构形函数:RESHAPE
- 所有的数组维护函数:CSHIFT+,EOSHIFT+,TRANSPOSE
- 所有的数组定位函数:MAXLOC+,MINLOC+
- 所有的内部子程序:DATE_AND_TIME,MVBITS,RANDOM_NUMBER,RANDOM_SEED,SYSTEM_CLOCK
- 定义:
- 类型定义语句,具有除kind-selector和TYPE(类型名)之外的type-spec的所有形式,以及除access-spec,TARGET和POINTER之外的attr-spec的所有形式。
- 属性说明语句:ALLOCATABLE,INTENT,OPTIONAL,PARAMETER,SAVE。
- 过程特征:
- 不具有generic-spec或module-procedure-stmt的INTERFACE块
- 可选参数
- 关键字参数传递
- 语法增强
- 长(31个字符)名字
- 小写字母
- 名字中使用“-”
- 用!初始化整行和部分注释
A.2 HPF1.1子集中的HPF1.1指令和语言扩展
下列对于Fortran 90的HPF1.1指令和语言扩展包含在HPF1.1子集中:
- 基本的数据分配和对准指令:ALIGN,DISTRIBUTE,PROCESSORS和TEMPLATE。
- FORALL语句
- INDEPENDENT指令
- SEQUENCE和NO SEQUENCE指令
- 系统查询函数:NUMBER_OF_PROCESSORS和PROCESSORS_SHAPE
- 计算内部函数ILEN,以及HPF的扩展Fortran内部函数:MAXLOC和MINLOC,这些函数必须满足下列约束:对应与可选DIM参数的实参表达式必须是一个初始化表达式。
Copyright: NPACT |
|