【发布时间】:2013-01-12 15:47:24
【问题描述】:
我正在向 Fortran 代码添加一个模块,并遇到了以下问题。我有一个派生数据类型Info,其中包含几个其他变量,其中一个 4D 指针数组(它是一个水文代码,所以它是 3 个空间分量和 1 个变量分量)。为了让我的子程序更容易阅读,我只是做了一个指针q,指向Info%q,如下:
real,pointer::q(:,:,:,:)
q=>Info%q
...
some work on q
我遇到的问题是:我应该在nullify(q) 之前使用deallocate(q) 吗?或者,由于q 指向代码中其他地方所需的数组,我应该只使用nullify吗?
感谢您的帮助。
【问题讨论】:
-
如果它只是为了可读性并且您的编译器支持它,那么请改用 F2003 的 ASSOCIATE 构造。在这种情况下使用指针可能会阻止编译器能够进行的一些优化。
-
我会进一步调查
associate,谢谢你的指点;)(我真的忍不住,抱歉)