我正在为Fortran代码添加一个模块,并遇到了以下问题。我有一个派生数据类型Info
,其中包含几个其他变量,其中包括一个4D指针数组(它是一个水文代码,所以它是3个空间组件和1个可变组件)。为了使我的子程序更容易阅读,我只需指针q
并指向Info%q
,如下所示:
real,pointer::q(:,:,:,:)
q=>Info%q
...
some work on q
我遇到的问题是:我应该在deallocate(q)
之前使用nullify(q)
吗?或者,由于q
指向代码中其他位置所必需的数组,我应该使用nullify
吗?
感谢您的帮助。
答案 0 :(得分:5)
只能取消!否则原始指针将是未定义的,并且数组将不再存在!