首先,我知道在 fortran(和一般编程)中使用公共块是一个坏主意。但是,我正在更新别人的代码,我不想弄乱已知有效的东西。
其次,我知道我应该发布一些更具体的内容。如果我知道如何将其减少为小东西,我会的。但是,由于我知道,而且我认为您不会欣赏 2500 行代码,因此我无法发布具体示例。
考虑到这一点,我无法描述我的问题。
我正在更新别人的 fortran 代码。这家伙使用了几 (4) 个通用块来设置全局变量。出于某种原因,当我调用使用这样一个块的函数时,它的所有值都是 0。以前有人遇到过吗?有谁知道为什么会发生这种情况?如何重现这个?检查这一点的任何起点都会有所帮助。
对于它的价值,所述公共块被声明为
common /set/ block,x,y,z,llx,lly,llz,ilx,ily,ilz,third,third2
block
是一个 4D 数组。x
, y
, 和z
是一维数组。llx
, lly
, 和llz
, 是double precision
类型。其余的都是integer
类型。
在调用任何函数之前,在主程序中声明和初始化公共块。