我正在将几个模拟代码耦合在一起。目前,有 3 个代码,但将来可能会更多。您可以在下图中考虑信息交换:
sim1 <====> sim_main <=====> sim2
信息交换是通过每一侧的有限接口完成的。
我最近诊断出一个问题,sim1 中的一个公共块与 sim2 中的子程序同名,这导致了分段错误。简单的解决方案是更改 sim1 中公共块的名称,但这并不理想,因为如果 sim1 的开发人员推出 sim1-2.0,那么我将不得不再次挖掘并更改该公共块的名称。由于接口相对有限,我想知道是否更好的解决方案是编写一个简单的模块:
module sim2_mod
contains
include "sim2.f90"
end
因为这应该将 sim2 中的所有例程放入 sim2_mod 命名空间,这可以use
在有限的基础上进行。这是一个好主意吗?一个坏主意?有没有这行不通的情况?sim2 中使用的通用块是否仍然具有全局范围?