奇怪的Fortran指针语法

时间:2013-01-08 16:24:53

标签: syntax fortran fortran77

在我必须处理的一些Fortran 77代码中,有一些指针以非常奇怪的方式声明,

 pointer  (iuu     , uu      ), (ivv     , vv      ),
 $        (it      , t       ), (iq      , q       ), (ips     , ps      ),
 $        (ittm    , ttm     ), (itqm    , tqm     ), (ipsm    , psm     ),

这里的括号是什么意思?什么?

1 个答案:

答案 0 :(得分:7)

这些是Cray pointers,一种非标准类型的指针,它使用常规integer变量来存储目标的内存地址,这可能是另一个变量或过程。引入它们是因为程序员想要这个功能而Fortran 77没有本机指针功能。

代码中的括号是Cray指针的赋值语句:pointer (iptr, target) [, ...]

如果可能的话,你应该考虑将它们更改为标准的Fortran指针,因为它们的使用受限于较少的限制和假设,并且所有实现Fortran 90的编译器显然都支持它们。