2011-01-10 62 views
0

我已经完成了为fortran 77程序制作gui的任务。为此,我使用Lahey Fujitsu编译器和wisk,它基本上是一个纯粹的winteracter骨骼版本。现在我编写了90年代的gui部分,说实话,现在我没有编写任何代码,只是使用了wisk向导吐出的代码,并且在gui部分与77部分交谈时出现问题。将Fortran 77程序编码为子程序

该程序由一个主程序和14个子程序文件组成。主程序调用所有其他子程序,处理计算并将最终结果写入文本文件。我想要做的是使主程序成为子程序,并从程序的gui或fortran 90部分调用它,从而使gui成为主程序。是否有可能做到这一点,因为大部分fortran 77被声明为隐式双精度,而fortran 90的代码是隐含的没有?更进一步,在gui部分,我将不得不调用所有的子程序,否则会将主程序转换为子程序,处理这个问题?

任何帮助/意见,将不胜感激。

如果有任何不明确的地方,我相信是这样,因为我的fortran技能仍然有限,请让我澄清我的意思。

感谢, 基督教

回答

0

我是一个团队是在Fortran 77的主要编写的程序工作的一部分,这使得利用丰富的隐真等也有,但是,模块文件已在该在稍后的阶段添加,这些是用Fortran 90编写的,他们使用implicit none。我不知道是否所有这些都可以被认为是好的做法,但至少它是有效的,迄今为止这两种Fortran方言的存在从来没有提出任何问题(或者我没有记得......)。所以我怀疑90和77的混合会让你头疼。 (仅供参考,我们使用英特尔编译器)

我现在可能忽略了一些明显的东西,但乍看之下,我并没有看到将当前主程序转换为GUI子程序的想法,用一些“告诉它做什么”的参数来调用它。如果沿着这条路走下去,尽可能多的旧代码尽可能保持原样 - 让旧的主程序执行子程序调用等。

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

+0

感谢您的回答,抱歉,我的回复有点晚。 – Christian 2011-01-19 20:42:17