-1

我的任务是为 fortran 77 程序制作 gui。为此,我使用了 Lahey Fujitsu 编译器和 wisk,它本质上是 Winteracter 的基本版本。现在我正在用 90 编写 gui 部分,老实说,现在我什么都没有编码,只是使用 wisk 向导吐出的代码,并且在 gui 部分与 77 部分交谈时遇到问题。

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

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

如果其中任何一个不清楚,我确信是这种情况,因为我的 fortran 技能仍然有限,请让我澄清我的意思。

谢谢,克里斯蒂安

4

1 回答 1

0

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

我现在可能忽略了一些明显的事情,但乍一看,我认为您将当前主程序转换为 GUI 的子例程并使用一些“告诉它要做什么”的参数调用它的想法没有任何问题”。如果你走这条路,最好尽可能多地保留旧代码 - 让旧的主程序执行子程序调用等。

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

于 2011-01-10T19:40:24.550 回答