将fortran 77程序编码为子程序

时间:2011-01-10 18:54:14

标签: user-interface fortran mixing fujitsu-fortran

我被赋予了为一个fortran 77程序制作gui的任务。为此,我使用的是Lahey Fujitsu编译器和wisk,它本质上是winteracter的简单版本。现在我正在编写90的gui部分,说实话,我现在没有编码,只是使用wisk向导吐出的代码,并且我对gui部分与77部分交谈有问题。

该程序由一个主程序和14个子程序文件组成。主程序调用所有其他子例程,处理计算并将最终结果写入文本文件。我想要做的是使主程序成为子程序,并从程序的gui或fortran 90部分调用它,从而使gui成为主程序。是否有可能这样做,因为fortran 77的大部分被声明为隐式双精度而fortran 90代码是隐式的无?在gui部分还有更多的东西,我必须调用所有的子程序,还是主程序,它将被转换成子程序,处理这个?

任何帮助/建议都将不胜感激。

如果其中任何一项不明确,我确信是因为我的技能仍然有限,请让我澄清一下我的意思。

谢谢, 基督教

1 个答案:

答案 0 :(得分:0)

我是一个团队的成员,该团队主要使用Fortran 77编写的程序,并且大量使用隐式实际等。但是,模块文件已经在稍后阶段添加,这些是用Fortran 90编写,他们使用implicit none。我不知道所有这些是否都可以被认为是好的做法,但至少它是有效的,并且这两个Fortran方言的存在到目前为止从未提出过任何问题(或者我都记不起......)。因此,我怀疑90和77的混合会让你头疼。 (仅供参考,我们使用英特尔编译器)

我现在可能忽略了一些显而易见的事情,但乍看之下我没有看到你将当前的主程序转换为GUI的子程序的想法有什么不妥,并且用一些“告诉它”的参数来调用它。该怎么办”。如果你走这条路,最好尽可能多地保留旧代码 - 让旧的主程序执行子程序调用等。

但是,为旧程序构造某种包装器是不可能的,即保持原样,创建一个单独的GUI,并让GUI使用适当的参数调用程序?我在GUI编程和包装器创建方面没有太多经验,所以我不能告诉你哪种方法更可取,但这听起来像你必须修改最少的路线,旧的程序可以仍然可以用作独立的命令行工具,在某些情况下可能更好。