从Fortran IV更新到Fortran 77

时间:2011-02-07 10:16:53

标签: fortran fortran77

我收到了一份咨询任务,我将把Fortran IV程序更新到Fortran 77.问题是我从未在Fortran中编码。你能给我一些我可以学习Fortran的技巧吗?Fortran IV和77之间的区别是什么?

修改

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

4 个答案:

答案 0 :(得分:5)

这似乎是一个非常奇怪的任务......教导编程语言在过去几十年中有所改进的目的是什么?如果是这样,为什么不翻译成现代语言,比如Fortran 95?

虽然我偶尔会遇到遗留的FORTRAN 77代码,但自从我使用真正的FORTRAN IV以来已经很长时间了 - 很难记住差异。我认为最大的是改进的IF语句,这使得编写更清晰的代码变得更容易。更改列表显示在http://en.wikipedia.org/wiki/Fortran

如果您使用gfortran,以下选项应编译FORTRAN 77程序:

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

答案 1 :(得分:3)

检查两者之间差异的最佳位置是fortran标准草案(最新草案几乎与公布的标准相同;只有它们可以免费下载)。

例如,f77 standard

然而问题是,在fIV标准时并没有如此遵循,几乎所有(我甚至可以安全地说所有)编译器包括各种供应商扩展,其中一些肯定是也可以在你的程序中找到。所以,如果你有一本编译器手册,也可以参考。

“更新到f77”的过程(Gawd,我从未想过我会这么说 - “更新到f77”)对你来说是最好的选择。 a)在某处(其中很多都在互联网上)接受一个fortran简短的教程;只是为了看看fortran的样子 b)一旦开始识别程序元素和结构,就可以开始翻译它。概率是你必须翻译很多TYPE(依赖)到WRITE或PRINT,修改一些IF语句,修改一些文件输入/输出操作,你可能也会遇到一些常规,你可以或多或少地使用它们问题,...无论如何,尝试,当卡住时,请在这里发布。

你的任务有多大?

P.S。正如我在上面的一些评论中所说的那样,你翻译的程序很可能不是fIV,而是fIV,f66 / 77的混合,甚至可能是f90的一些元素 - 但你的教授/执行作业的人并不知道差异。除非您只是从旧数据磁带复制它。我曾经一直看到这样的例子。

答案 2 :(得分:2)

大多数Fortran IV都是有效的Fortran 77.如果你能找到一个安装了g77(旧的GNU Fortran 77编译器)的平台,打开标准兼容模式,编译时没有警告或错误,你就完成了。如果教授说这还不够,他需要更具体地说明他想要的东西。

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

答案 3 :(得分:1)

谷歌搜索“fortran 77教程”引发了不少热门歌曲,看起来像是对Fortran 77程序的结构和语法的合理介绍(我不能从个人经验中推荐任何东西,因为我在大学时就学会了这一点) - 对我来说,最热门的打击看起来像任何一个好的介绍:

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

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

如果您要从更现代语言的背景出发,那么要知道的关键点是:

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

然而,它确实支持通常的基本编程结构,即if / else,loops等。

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