在我必须处理的一些Fortran 77代码中,有一些指针以非常奇怪的方式声明,
pointer (iuu , uu ), (ivv , vv ),
$ (it , t ), (iq , q ), (ips , ps ),
$ (ittm , ttm ), (itqm , tqm ), (ipsm , psm ),
这里的括号是什么意思?什么?
答案 0 :(得分:7)
这些是Cray pointers,一种非标准类型的指针,它使用常规integer
变量来存储目标的内存地址,这可能是另一个变量或过程。引入它们是因为程序员想要这个功能而Fortran 77没有本机指针功能。
代码中的括号是Cray指针的赋值语句:pointer (iptr, target) [, ...]
。
如果可能的话,你应该考虑将它们更改为标准的Fortran指针,因为它们的使用受限于较少的限制和假设,并且所有实现Fortran 90的编译器显然都支持它们。