我正在使用有限元分析程序的fortran子例程。我必須在兩個子程序之間共享變量,所以我使用COMMON塊(編輯:模塊更好)。問題是隻有一些變量被傳遞給另一個子程序,而另一些則不是。在Fortran中使用常見塊的問題
我的代碼是這樣的:首先 子程序:
real knom, krot
COMMON /kVAR/ kmom, krot
SAVE /kVAR/
二子程序我使用相同的語法。我在每個子程序到一個txt文件中寫入kmom和Krot的值來控制結果:
write(6,*) 'I am in URDFIL', or 'I am in UFIELD'
1 KINC, kmom, krot
的結果是:
I am in URDFIL 1 -16700 -2.3857285E-03
I am in UFIELD 2 -16700 -1155769886
所以Krot的值丟失。任何建議是最受歡迎的。
若昂
解決:
module shared_var
implicit none
real*8 kmom, krot
save
end module shared_var
而且在每個子程序:
use shared_var
爲什麼不使用'module'而不是'common',以便只需要_one_聲明。 – ja72 2012-04-08 06:52:31
是的,謝謝你的建議! – jpcgandre 2012-04-08 12:25:13