【问题标题】:Fortran: Type containing a member that is an array of elements of this typeFortran:包含一个成员的类型,该成员是该类型元素的数组
【发布时间】: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 中这样做的正确方法是什么?

【问题讨论】:

    标签: arrays pointers fortran


    【解决方案1】:

    或者给自己一个 Fortran 2008 编译器,然后你就可以编写

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

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

    【讨论】:

      【解决方案2】:

      您可以简单地在您的类型中插入一个指针。这看起来像:

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

      然后您可以简单地按所需大小分配数组。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多