回 帖 发 新 帖 刷新版面

主题:[讨论]fortran如何设置动态数组?

我初学者,想请问各位高手如何设置动态数组。

 我想定义这么一个数组(一维数组),在每一次循环之后,数组的大小都增加1位,用来存数据。因为循环是时间步的累计循环,所以之前的循环得到的数据我都需要。所以数组的大小是递增的。

 我这么做的目的是,每循环一次就会得到一个结果,我想把这个结果存到一个数组中,所以这个数组的大小是 递增的。最后我要用这个存数据的数组画图,画跟时间的曲线。

谢谢!!

回复列表 (共3个回复)

沙发

如果开始计算的时候无法预知数组大小, 按照你问题的描述会挺麻烦.

板凳


其实可以预知,就看你想要循环多少次,数组就有多大。
比如我先让它循环50步,我从键盘输入50,然后程序读取。等50次结束后,程序不会跳出,它会问我还需要继续输入循环么?然后我可以再输入一个循环次数,比我如我再从键盘输入200,那一共程序就循环了250次。而且之前的50次数据不会被覆盖或丢弃。那当250次结束后,那数组大小就是250.是这个意思

3 楼

动态数组allocate一次它的大小就定下来了. 你要改它的大小就要先删除在重新分配空间. 所以每次都能预知大小就能在运算前分配空间.
按你的意思是分步实现最终结果的. 我建议使用两个动态数组来实现. 可以利用其中一个作为交换临时数组. 也可以奇数次的时候使用1号动态数组进行储存偶数次的时候用2号. 具体怎么实现可以发挥一下创意.

我来回复

您尚未登录,请登录后再回复。点此登录或注册