【发布时间】:2012-04-19 12:16:02
【问题描述】:
我正在编写这个 F77 代码,大量使用了 COMMON BLOCKS,这些 COMMON BLOCKS 也用于 C 程序(在名称修改之后)。如果 foo(a, b, ...) 是 fortran 代码的主要例程,是否可以将 COMMON BLOCKS 设置为 foo() 本地,以便我可以执行以下操作?
program new_control_routine()
...
call foo(a1,b1,...)
...
call foo(a2,b2,...)
...
end
关键是要对“foo”进行多次调用,每个调用都有独立公共块,即使这些块具有相同的名称。我知道的唯一方法是在“foo”的第二次调用中重命名 COMMON BLOCKS 和相关子例程,使其成为另一个例程“foo1”,所以我可以这样做:
programe new_control_routine()
...
call foo(a1,b1,...)
...
call foo1(a2,b2,...)
但这肯定是平凡且容易出错的。
【问题讨论】:
标签: fortran fortran-common-block