【问题标题】:Nullifying Pointers in FortranFortran 中的空指针
【发布时间】: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,谢谢你的指点;)(我真的忍不住,抱歉)

标签: pointers fortran


【解决方案1】:

只作废!否则原始指针将未定义,数组将不再存在!

【讨论】:

  • 这就是我认为会发生的事情,但不是 100% 肯定的。感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 2018-11-15
  • 2021-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多