我希望创建一个派生的数据类型,其中包含一个表格和该表格的长度。理想情况下,我希望将其声明如下:
什么是管理这些情况的最佳方法?
type mydata
integer :: ndata
real, dimension(ndata) :: x
end type mydata
但是在开始时,ndata是未知的,因此x是一个动态表。
我是否需要对x使用allocatable
,并在ndata已知时进行分配?
type mydata
integer :: ndata
real, dimension(:), allocatable :: x
end type mydata
....
type(mydata) :: var
var % ndata = 10
allocate(var % x(10))
什么是管理这些情况的最佳方法?
ndata
和x
的长度绑定在一起是一个好主意,但我应该如何定义这些过程呢?它们只是与结构体在同一模块中的标准子程序吗? - Gerobject = mydata(2,[0.3,0.4])
;你需要定义一个名为mydata
的接口及实现该接口的例程。像其他过程一样定义getSize
和setSize
,并探索pass
绑定属性。如果遇到问题,请进一步提问。 - High Performance Mark