0
我正在使用這個常用塊的F77代碼,並且這些常用塊也用於C程序(名稱修改後)。如果foo(a,b,...)是Fortran代碼的主要例程,那麼是否有必要將公共塊設置爲foo()的局部變量,以便我可以執行類似下面的操作?在Fortran 77中本地化常見塊變量的範圍
program new_control_routine()
...
call foo(a1,b1,...)
...
call foo(a2,b2,...)
...
end
的一點是要有「富」與每個人有獨立公共塊的多個調用,即使他們這些塊具有相同的名稱。我所知道的唯一的辦法就是重新命名的「foo」的第二個呼叫公共塊和相關子,所以它成爲另一個例程「foo1」,所以我可以做:
programe new_control_routine()
...
call foo(a1,b1,...)
...
call foo1(a2,b2,...)
但這肯定是平凡而容易出錯。
不幸的是,這是一個遺留代碼,我沒有太多的選擇,只能按照過去二十年的工作。那裏有數百個常見的街區。並感謝您的索引想法。 – taki 2012-04-05 18:54:19
@taki - 除非有其他用戶使用您的代碼不願意因未知原因而改變,否則我沒有理由不能將其升級到更新的版本(至少F90)。現在堅持F77,即使是保守的觀點,也是不合理的。許多用戶歡迎圖書館升級到更新的版本。我沒有考慮重寫,但慢慢引入了語言的新功能... – Rook 2012-04-05 21:31:05
@ldigas - 謝謝。這可能是人們最終會做的事情。 – taki 2012-04-05 22:54:44