【发布时间】:2014-09-12 18:24:27
【问题描述】:
我需要声明一个类型 a,其中包含一个成员,该成员是一个类型为 a 的元素的数组。
我正在考虑类似的事情:
type:: a
type(pta), dimension(:), allocatable:: array
end type a
type:: pta
class(a), pointer:: p
end type pta
在 Fortran 中这样做的正确方法是什么?
【问题讨论】:
我需要声明一个类型 a,其中包含一个成员,该成员是一个类型为 a 的元素的数组。
我正在考虑类似的事情:
type:: a
type(pta), dimension(:), allocatable:: array
end type a
type:: pta
class(a), pointer:: p
end type pta
在 Fortran 中这样做的正确方法是什么?
【问题讨论】:
或者给自己一个 Fortran 2008 编译器,然后你就可以编写
type :: a
type(a), dimension(:), allocatable :: array
end type
在欣赏这个答案的原始形式所获得的代表的同时,我应该指出,据我所知,目前只有 IBM 和 Cray Fortran 编译器支持新兴标准的这一特性。 @Stefan 的答案可以在当前所有广泛使用的 Fortran 编译器上实现。
【讨论】:
您可以简单地在您的类型中插入一个指针。这看起来像:
type a
type(a), dimension(:), pointer :: array
end type
然后您可以简单地按所需大小分配数组。
【讨论】: