关于FORTRAN77中COMMON的问题
在两个子程序之间进行数据交互,且每个增量步后都需要把数据传递给另一个子程序,通过COMMON进行数据交换时,会出现数据混乱,温度传递过去的云图如下图所示,在数据传递过程中,子程序1计算的数据传递给子程序2,子程序2计算后的数据在通过common传递给子程序1中,参与子程序1中的计算。子程序1中:COMMON X, Y, Z, H, I, J, W, B, BA
REAL X, Y, Z, H, I, J, W, B, BA
其中:
X,K,W,B,BA为子程序1传递给子程序2
子程序2中:
COMMON L, G, K, O, P, Q, S, NN, BBA
REAL L, G, K, O, P, Q, S, NN, BBA
其中:
G,O,P,Q为子程序2传递给子程序1
子程序中的相关变量已经一一对应。
改用module就解决了。 七星彩 发表于 2020-10-8 23:41
改用module就解决了。
module是90/95引入的吧 77可以用么
如果不换module 只是在common的基础上进行改动 需要怎么改呢 是什么让你把自己禁锢在F77的古老世界里? fcode 发表于 2020-10-9 10:09
是什么让你把自己禁锢在F77的古老世界里?
来自导师的压力 916115735 发表于 2020-10-9 10:42
来自导师的压力
注意区分F77和固定格式,现在应该没有只支持F77的编译器 Transpose 发表于 2020-10-9 16:37
注意区分F77和固定格式,现在应该没有只支持F77的编译器
因为课题组都是Abaqus+Fortran77 所以就都只能一样了 abaqus 也可以用90啊~~注意固定格式并不代表F77。
F90也可以用固定格式~~
PS:其实abaqus有可以用自由格式~~ 916115735 发表于 2020-10-9 19:52
因为课题组都是Abaqus+Fortran77 所以就都只能一样了
看来你并没有区分清楚固定格式和F77。Fortran文件格式有固定格式和自由格式,语法标准有77,90,95,2003,2008。固定格式是以for,f结尾的文件(需要满足开头空6列,标签的位置,续行的要求等等),并不影响使用哪一种标准的语法,在固定格式里面也可以使用90的语法。 Transpose 发表于 2020-10-10 12:07
看来你并没有区分清楚固定格式和F77。Fortran文件格式有固定格式和自由格式,语法标准有77,90,95,2003 ...
好的 谢谢指点
页:
[1]
2