Arrays Fortran:包含此类型元素数组成员的类型

Arrays Fortran:包含此类型元素数组成员的类型,arrays,pointers,fortran,Arrays,Pointers,Fortran,我需要声明一个类型a,其中包含一个成员,该成员是类型a的元素数组 我在想这样的事情: type:: a type(pta), dimension(:), allocatable:: array end type a type:: pta class(a), pointer:: p end type pta 在Fortran中,正确的方法是什么?只需在类型中插入指针即可。这看起来像: type a type(a), dimension(:), pointer :: array end

我需要声明一个类型a,其中包含一个成员,该成员是类型a的元素数组

我在想这样的事情:

type:: a
type(pta), dimension(:), allocatable:: array
end type a

type:: pta
class(a), pointer:: p
end type pta  

在Fortran中,正确的方法是什么?

只需在类型中插入指针即可。这看起来像:

type a
  type(a), dimension(:), pointer :: array
end type

然后,您只需按所需大小分配数组。

您只需在类型中插入指针即可。这看起来像:

type a
  type(a), dimension(:), pointer :: array
end type

然后,您只需按所需大小分配数组。

或者为自己准备一个Fortran 2008编译器,就可以编写

type :: a
  type(a), dimension(:), allocatable :: array
end type

在欣赏这个答案的原始形式所获得的代表性的同时,我应该指出,据我所知,目前只有IBM和Cray Fortran编译器支持这个新兴标准的特性@Stefan的答案可以在当前所有广泛使用的Fortran编译器上实现。

或者给自己买一个Fortran 2008编译器,您就可以编写

type :: a
  type(a), dimension(:), allocatable :: array
end type
在欣赏这个答案的原始形式所获得的代表性的同时,我应该指出,据我所知,目前只有IBM和Cray Fortran编译器支持这个新兴标准的特性@Stefan的答案可以在当前所有广泛使用的Fortran编译器上实现