附加到3D数组;使第三维度的第一维度在长度上不同

时间:2018-03-15 16:06:27

标签: arrays multidimensional-array fortran append fortran90

想象一下,我有一个生成细胞的模型,每年它会在一年中产生不同的细胞。每年年底,我想在三维数组中捕获所有现有的单元格和属性,包括年份,单元格的信息以及其他一些属性,所以让我们说3列

我有几年的时间,我在开始时就知道的事情,让我说我有10年

我不知道在年底之前有多少个细胞,所以这是可变的。

,,'year 1']
   [,1][,2][,3]
[1]
[2]
[..]
[?]

[,,'year 2']
   [,1][,2][,3]
[1]
[2]
[..]

我想知道如何才能最好地动态创建并支持这个数组的第一个维度?!

我拥有所需的年终信息,目前位于向量中(例如): [,1] - 很容易,包含年份,例如2009年

Tor单元属性,我通过循环遍历包含这些属性的不同向量并将它们放入

来填充它
     [,1]  [,2][,3]
[1] 2009

[,2] - the position of the cell , taken from a pos_cell array at i =1
[,3] - a property of the cell, taken from the prop_cell array at i =1

所以我们有:

     [,1]  [,2]  [,3]
[1] 2009   1     0.4

现在,

[,2] - the position of the cell , taken from a pos_cell array at i =2
[,3] - a property of the cell, taken from the prop_cell array at i =2

     [,1]  [,2]  [,3]
[1] 2009   1     0.40
[2] 2009   2     0.44

我不认为这一切都是最有效的方式。目前我只需要比我目前使用的东西更好的东西,这是一个有3个预定义尺寸的数组,因为我不断为第一个维度命中新的最大值。

我在想这样的事情:

How to add new element to dynamical array in Fortran90

但我不确定它实际上是否允许有不同的尺寸,这是一个很好的前进方向吗?但首先,我将如何开始呢?

我看了

https://libatoms.github.io/QUIP/table.html但这太新了,仅适用于2D

我正在使用Fortran 90。

哦,请不要告诉我如何在新的堡垒中做得更好。在其他论坛关于这个主题的条目中,人们倾向于不回答这个问题,而只是说如何用新的fortran版本来完成。 期待您的建议。

0 个答案:

没有答案