2013-01-08 54 views
3

在一些Fortran 77的代碼,我不得不面對,也有一個很奇怪的方式宣告指針,奇的Fortran指針語法

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

什麼這裏的括號是什麼意思?什麼?

回答

7

這些是Cray pointers,一種非標準類型的指針,它使用常規的integer變量來存儲目標的內存地址,這可能是另一個變量或過程。因爲程序員需要這個功能而引入了它們,Fortran 77沒有本地指針功能。

代碼中的圓括號是Cray指針的賦值語句:pointer (iptr, target) [, ...]

如果可能的話,你應該考慮改變這些標準Fortran指針,因爲它們的使用是受限制較少和假設,他們顯然是由實現的Fortran 90

+0

感謝所有的編譯器的支持!谷歌搜索奇怪的語法(神祕括號)並沒有幫助 – Matt

+0

不幸的是,它是40年前的政府書面代碼的一部分,我必須建立和使用幾乎沒有支持,使用而不用更新它。 :( – Matt

+0

@Matt:我很害怕這個......我認爲這是一個擁有如此悠久歷史的語言的缺點,哦,如果它沒有被破壞......至少gfortran是一個免費的編譯器幸運的是,它支持許多這些非標準/遺留功能 – sigma