在新发布的Intel Fortran Composer XE 2015中英特尔编译器加入了对Fortran 2003标准中引入的参数化派生类型(Parameterized Derived Types)的支持。所谓参数化派生类型就是允许程序员创建一个派生类型的模板,该模板可以拥有延迟定义的KIND和length参数。在使用参数化派生类型是,KIND参数必须是编译时常量,而length参数可以在运行时确定。
考虑下面的例子:
TYPE humongous_matrix(k, d)
INTEGER, KIND :: k = kind(0.0)
INTEGER(selected_int_kind(12)), LEN :: d
REAL(k) :: element(d,d))
END TYPE
TYPE(humongous_matrix(8,10000000)) :: giant
这里首先创建了一个拥有两个参数”k”和”d”的派生类型模板”humongous_matrix”,其中”k”是”KIND”参数,并且拥有和浮点常数”0.0”相同KIND的缺省值;”d”是”length”参数。随后又使用该模板声明了变量”giant”,其中两个参数都使用了编译时常量。通过这种方式定义的变量包含的成员”element”是一个元素类型为”real(8)”的二维数组,其两个维度的长度都是”10000000”。
更多关于如何通过英特尔编译器使用参数化派生类型的信息请参见英特尔编译器用户参考手册的相关内容。
Theme Zone:
IDZone