【发布时间】:2012-04-21 01:08:25
【问题描述】:
我正在使用有限元分析程序的 fortran 子例程。我必须在两个子例程之间共享变量,所以我使用的是 COMMON 块(编辑:模块更好)。问题是只有一些变量被传递给另一个子程序,其他的没有。
我的代码是这样的: 第一个子程序:
real knom, krot
COMMON /kVAR/ kmom, krot
SAVE /kVAR/
第二个子程序我使用相同的语法。我通过将每个子程序中的 kmom 和 krot 值写入 txt 文件来控制结果:
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这样你只需要一个声明。 -
好的,谢谢你的建议!
标签: fortran fortran-common-block