我正在使用有限元分析程序的 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