我需要声明一个类型a,其中包含一个类型为a的元素数组的成员。
我正在考虑类似的事情:
type:: a
type(pta), dimension(:), allocatable:: array
end type a
type:: pta
class(a), pointer:: p
end type pta
在Fortran中这样做的正确方法是什么?
答案 0 :(得分:4)
或者让自己成为Fortran 2008编译器,然后编写
type :: a
type(a), dimension(:), allocatable :: array
end type
虽然我很欣赏这个答案原始形式的代表,但我应该指出,据我所知,只有IBM和Cray Fortran编译器目前支持新兴标准的这一功能。 @ Stefan的答案可以在当前广泛使用的Fortran编译器中实现。
答案 1 :(得分:2)
您只需在类型中插入指针即可。这看起来像是:
type a
type(a), dimension(:), pointer :: array
end type
然后,您可以简单地按所需大小分配数组。