奇怪的Fortran指针语法

Mat*_*att 3 syntax fortran fortran77

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

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

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

sig*_*gma 7

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

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

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