2011-02-07 86 views
1

我收到了一个咨询任务,我将Fortran IV程序更新到Fortran 77.问题是我从来没有在Fortran中编码。你能告诉我关于Fortran的学习内容以及Fortran IV和77之间的区别吗?从Fortran IV更新到Fortran 77

编辑

要更新一个MODCOMP 9250运行(见图片here)该方案是在原来的编译器开发的程序。编译器在1990年前后更新为Fortran 77.我的客户希望对应用程序进行一些修改,并希望借此机会将代码更新到最新的编译器

+0

从侏罗纪向白垩纪升级。我强烈建议你拒绝这项任务。 – 2012-02-08 23:37:38

+0

我正在从事的这个项目的任务是管理几个瑞典核电站使用的这些计算机。我的同事可以编程Fortran,但我已经完成了这项任务,因为我也要教我。他们可以教我,但他们很忙。 – magol 2012-02-09 11:24:25

+0

所以我们很快就会有欧洲福岛? – 2012-02-09 13:59:40

回答

4

这似乎是一个非常奇怪的任务...教的目的是说,几十年来编程语言有所改进?如果是这样,为什么不转换成现代语言,如Fortran 95?

虽然我偶尔会遇到遗留的FORTRAN 77代码,但是从我使用真正的FORTRAN IV开始已经很长时间了 - 很难记住它们之间的差异。我认为最大的改进是IF语句,这使得编写更清晰的代码变得更容易。如果您正在使用gfortran出现在http://en.wikipedia.org/wiki/Fortran

的更改的列表,下列选项应编译FORTRAN 77程序:

gfortran -ffixed-form -ffixed-line-length-none -W -Wall -pedantic -o my_prog.exe my_prog.for 
0

使用Google搜索“fortran 77 tutorial”会引发不少命中这看起来像是对Fortran 77程序的结构和语法的合理介绍(我无法从个人经验中推荐任何东西,因为我在大学时就已经学会了这一点) - 对我而言,最受欢迎的内容看起来像是任何介绍:

http://www-teaching.physics.ox.ac.uk/Unix+Prog/hargrove/tutorial_77/

你可能还需要查找具体的细节上,你将要使用的编译器(gfortran见毫秒为Linux的标准版),如果只是为了找出正确的命令行如何编译你的代码。

如果你来形式更加现代语言的背景,然后重点了解是:

  • 标准Fortran 77不是自由格式的语言
  • 这是程序性和不支持面向对象(虽然这是在以后的语言版本可用)

但是它支持常用的基本编程结构,即if/else语句,循环等

希望这会有所帮助 - 祝你好运!

2

检查两者之间的差异的最好的地方就是FORTRAN标准草案(最新的草稿与已发布的标准几乎完全相同;只有它们可以免费下载)。

例如,f77 standard

然而,问题是,在FIV标准的时间并没有那么其次,几乎所有的(我甚至可以肯定地说所有)编译器包括各种供应商扩展的,其中有些是肯定在你的程序中发现以及。所以,如果你有一个编译器手册,也是如此。

“更新到f77”(Gawd,我从来没有想过我会这么说 - “更新到f77”)的过程对你来说是最好的选择。
a)在某处使用fortran简短教程(其中很多是互联网);只是为了看看什么样的堡垒看起来像
b)一旦你开始识别程序元素和结构,你可以开始翻译它。概率是,你将不得不翻译大量的TYPE(依赖)到WRITE或PRINT,修改一些IF语句,修改一些文件输入/输出操作,你可能还会遇到一些COMMON,你可以有或多或少的问题,......无论如何,试试吧,当遇到困难时,请在这里发帖。

你的任务有多大?

p.s.正如我在上面的一些评论中所说的,你翻译的课程不是真正的fIV,而是fIV,f66/77的混合体,甚至可能是f90的一些元素 - 但是你的教授/负责任的人不知道的差异。除非您只是从旧数据磁带复制它。我以前总是看到这样的例子。

1

大多数Fortran IV是Fortran 77的有效版本。如果您可以找到安装了g77(旧的GNU Fortran 77编译器)的平台,请打开标准遵从模式,并编译时不会出现警告或错误,您就完成了。如果教授们说这还不够,他需要更具体地说明他想要什么。

我不知道是否有任何Fortran 95编译器有一个选项可以让您检查Fortran 77的合规性。