返回介绍

1.1.2 Fortran 的新发展

发布于 2025-03-08 16:28:25 字数 2602 浏览 0 评论 0 收藏 0

随着其他程序设计语言的迅速发展,Fortran 语言不再是惟一适用的程序设计语言。然而,尽管在一些特殊领域,使用其他程序语言更为合适,但在数值计算、科学和工程技术领域,Fortran 仍具有强大的优势。其强大的生命力在于它能紧跟时代的发展,不断更新标准,每次新的文本推出都在功能上有一次突破性进展。Fortran90 不仅仅是将已有的语言进行标准化,更重要的是发展了 Fortran 语言,吸取了一些其他语言的优点。所以,虽然 Fortran 语言历史悠久,但仍在日新月异地发展。

随着巨型计算机(向量机和并行机) 的异军突起,出现了新的高性能 Fortran 语言(HPF),它是 Fortran90 的一个扩展子集,主要用于分布式内存计算机上的编程,以减轻用户编写消息传递程序的负担。HPF-1.0 的语言定义是在 1992 年的超级计算国际会议上作出的,正式文本是在 1993 年公布的。其后几年的会议上又对它进行了修改、重定义、注释等工作,于 1997 年发布了 HPF2.0 语言定义。Fortran95 包含了许多 HPF 的新功能。在 Fortran90 出现之前,在并行机上运行程序需要结合专门的矢量化子程序库,或者是依赖 Fortran 编译系统进行自动矢量化。而 Fortran90 之后,程序员在编程时可有目的的控制并行化。

在当前程序设计语言层出不穷的今天,学习 Fortran 语言的意义在于继承传统和紧跟时代。不仅一些爱好者推崇 Fortran 语言 [A Real Programmer] ,而且科学计算编程的专家也认为,科学与工程相关专业的学生应该采用 Fortran 而非 C 和 C++编程[ F90 for Science Student ]。这是因为,Fortran90 具有 C++所有的重要功能(尚不具备的预计将在 Fortran2k 版本中推出),然而 C 语言主要是用于微机上的廉价开发,而 Fortran 的目的是为了产生高效最优化运行的可执行程序,用 Fortran 编写的大型科学计算软件较 C 语言编写的通常要快一个量级,其程序编写更为自然和高效,且易学易懂。尤其是在高性能并行计算逐渐成为时代必然的今天,不仅巨型机而且微机和工作站也有了多处理器,其串行机上的线性内存模式已不再适用,而只有 Fortran 具备处理相应问题的标准并行化语言,其独特的数组操作充分体现了它的先进性。Fortran90 和 C++语言的比较可参看: http://csep1.phy.ornl.gov/csep.html

a) Fortran77 ?

既然已经有了 Fortran90,那么是否就不用学习 Fortran77 了?事实上,由于很多用户在 Fortran 程序上作了巨大的投资,许多大型科学计算 Fortran 程序(有些长达数十万条语句),如分子动力学模拟计算(C60-C240 的碰撞: 10eV100eV300eV ) 等程序仍在频繁地使用。在科技领域内某些标准程序库(International Mathematics and Statics Library, Numerical Algorithms Group)内有数千以上的子程序是用 Fortran 写的,特别是早期的程序都是用 Fortran77 编写的,这些程序库已通过长期使用验证了稳定性。科学研究经常需要使用或改编以前的程序,这时必须了解 Fortran77 的编程手法。

因此,本教程仍然将 Fortran77 作为基础,但随时与 Fortran90 比较不同之处。

b) Fortran90 !

Fortran90 并没有删去任何 Fortran77 的功能,而只是将某些功能看成是将要摒弃的。在 Fortran95 中则是已被删去的,但考虑到历史,厂家推出的 Fortran90/95 编译软件仍是支持这些功能的。在新编的程序中,应尽量避免使用过时的 F77 语句或功能。目前已有一些软件可将这些功能除去并自动转换成并行化的程序。Fortran90/95 是具有强烈现代特色的语言,总结了现代软件的要求与算法应用的发展,增加了许多现代特征的新概念、新功能、新结构、新形式。Fortran90 的现代特性表现在:

加强了程序的可读性、可维护性:淘汰所有转移语句,用新的控制结构实现选择分叉与重复操作,使程序结构化。同时增加了结构块、模块及过程的调用灵活形式,使程序易读易维护,新的模块装配取代了 Fortran77 的许多旧语句,使程序员更为清晰明确地定义全局数据。增加了新的数据种别说明,使得 Fortran 程序在不同计算机编译环境下有更自由的移植性。

发展了现代算法功能:加强了数组的算法功能,引进了多种数组操作功能与概念,使数组像一个变量一样自由操作,使数组的并行化运算成为可能。增加了适于操作数据结构的派生类型,提高了文字处理功能,胜任信息管理系统、办公自动化的任务。特别是动态存储功能的引进极大地加强了它在数值计算领域中应用的威力。

扩大与编程者的友好界面:新的编程形式减少了烦琐与格式束缚,接近自然语言与公式演算。允许在字符数据中选取不同种别,在字符串中可使用各国文字(例如汉字),还可任意使用化学、物理、数学的各种专业字符。

Fortran 程序简例

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文