关于作者

 一个毕业于北京大学数学力学系,在中国科学院计算所、计算中心和网络中心工作过,在澳大利亚科工组织DMS、香港浸会学院数学系和中国21世纪议程管理中心等处工作过,多次获国家和中科院科技奖并享受政府特殊津贴的退休老头。现在在【中国科普博览】网“科学新语林”栏目里开设一个《数学与计算机》的个人专栏,愿和爱好数学与计算机的各界网友和青少年朋友,谈谈对数学与计算机的看法、想法。

数值计算语言Fortran

张建中
2014年05月04日

5. 数值计算语言Fortran

Fortran是英文FORmula TRANslation的缩写,直译是“公式翻译”,音译为“福传”,由美国IBM公司1956年研制,是世界上出现最早、仍在广为使用的计算机高级语言之一。
Fortran是一种分块并列结构、面向过程的可用于数值和工程技术计算的高级语言,具有接近数学公式、简单易用、计算速度快等特点,广泛应用于科学和工程计算领域,以其特有的功能在数值、科学和工程计算等领域发挥着重要作用。现已有Fortran66、Fortran77、Fortran90、Fortran95、Fortran2003、Fortran2008等多种版本。
至今已50多年过去了,Fortran在军事和科学应用中仍然是主要的编程语言,并在商业系统、企业管理系统中得到了广泛应用,是数值计算领域最强大的语言,其数值计算能力远远超过C语言,而且有最庞大的程序库,可以方便找到几乎所有计算类型的程序。可以说,Fortran语言改变了整个计算世界。
Fortran语言的研发历史
早在1951年,美国IBM公司约翰?巴库斯 (John Backus) 针对汇编语言的缺点着手研究开发 Fortran语言,并于1954年在纽约正式对外发布。约翰?巴库斯提出的Fortran语言后来被称为Fortran ,虽然功能简单,但它的开创性工作,在社会上引起了极大的反响。到1957年第一个Fortran 编译器在IBM704计算机上实现,并首次运行成功之后,Fortran语言得到了迅速发展,相继地,多种版本的Fortran语言在其它计算机上实现。
随着Fortran语言版本的不断更新和变化,语言不兼容性问题变得日益突出,因此语言标准化的工作也就提上了日程。1962年5月,美国标准化协会(American National Standards Institute,ANSI)着手进行Fortran语言标准化的研究工作,并于1966年正式公布了两个标准文本:美国国家标准Fortran (ANSI X3.9-1966)和美国国家标准基本Fortran(ANSI X3.10-1966),前者相当于Fortran 。基本Fortran,是美国国家标准Fortran的一个子集,从而实现了语言的向下兼容,初步解决了语言的兼容性问题。通常称美国国家标准Fortran为Fortran66。
Fortran66的推出在国际上产生了广泛影响,1972年国际标准化组织(International Organization for Standardization, ISO)在Fortran66的基础上制定了Fortran语言基本级、中间级和完全级的三级国际标准。
20世纪60代末,结构化程序设计方法提出后,具有结构化特征的程序设计语言开始出现。ANSI于1976年对Fortran 66进行了修订,吸收了计算机厂商扩充的一些行之有效的功能,同时增加了许多新内容,通常称新标准为Fortran77。Fortran77推出后,由于具有结构化特征,在社会上得到了广泛应用,同时由于扩充了字符处理功能,在非数值处理领域也能大显身手。
20世纪80年代末,Fortran77结构化和现代化的研究开始兴起,到1991年5月,ANSI公布了新的美国国家标准Fortran(ANSI 3.198-1991)。之后,ISO采纳该标准,并确定为国际标准ISO/IEC 1539-1:1991,新国际标准还采纳了我国提出的多字节字符集数据类型及相应的内部函数,为非英语国家使用计算机提供了极大的方便。通常称新标准为Fortran90,Fortran90向下兼容Fortran77。之后不久又出现了Fortran95。
Fortran 90的推出,使传统Fortran语言具有了现代气息。Fortran2003 的规则已经由ISO组织制定发布,后又推出了Fortran2008版本。
Fortran语言的语句
Fortran.是一种不断发展和改进、并极具发展潜力的语言,在全球流行过程中,Fortran语言不断吸收现代化编程语言的新特性、新标准,使其在科学与工程计算领域占有极其重要的地位。Fortran语言的语句,在其发展过程中,也在不断的变化和增强。最早的Fortran版本应用于IBM 704系统上,只含了32种语句,后不断变化、增强。这里,只能给出部分最基本常用语句,供参考。
MAIN SUBROUTINE(主程序),SUBROUTINE(子程序),FUNCTION(函数子程序)等程序类别语句;
INTEGER(整型数),REAL(实型数),DOUBLE PRECISION(双精度数), COMPLEX(复型数),CHARACTER(字符型数)和LOGICAL(逻辑型数)等数据类型语句;
COMMON,DIMENSION和EQUIVALENCE语句;
DATA用以指定初始值的数据语句;
内部和EXTERNAL(例如库)函数赋值语句;
GOTO,赋值GOTO和计算GOTO语句;
逻辑IF和算术(三态)IF语句;
DO循环语句;
READ,WRITE,BACKSPACE,REWIND和ENDFILE处理顺序读写的语句;
FORMAT格式语句;
CALL, RETURN,PAUSE和STOP语句;
DATA和FORMAT参数语句;
IF语句块,以及可选的ELSE和ELSE IF从句,提供改进了的对结构化编程的语言支持;
OPEN,CLOSE和INQUIRE语句以改进I/O能力等语句。
Fortran语言的特性
Fortran的最大特性是接近数学公式的自然描述,在计算机里具有很高的执行效率,易学,语法严谨,可以直接对矩阵和复数进行运算。
Fortran自诞生以来广泛地应用于数值计算领域,积累了大量高效而又可靠的源程序,形成了许多算法程序库。很多专用的大型数值运算计算机针对Fortran做了优化,大大提高了计算机的计算效率。
Fortran与时俱进,Fortran90,Fortran95,Fortran2003,Fortran2008的相继推出使Fortran语言具备了现代高级编程语言的一些特性,广泛用于并行计算和高性能计算领域。
Fortran是一种极具发展潜力的语言。在全球范围内流行过程中,Fortran语言的标准化和不断吸收现代化编程语言的新特性,使其在工程计算领域仍然占有重要地位。
Fortran语言的未来
Fortran与目前流行的Java,C等高级语言相比,显得创新力有些欠缺。但是,必须注意到,由于Fortran在科学和工程计算领域长期处于统治地位,很多优秀的数学和工程计算软件都是运用 Fortran语言编写,如IMSL(国际数学和统计链接库), BLAS(Basic Linear Algebra Subroutines),LAPACK(Linear Algebra PACKage,线性代数计算程序包),LINPACK (LINear system PACKage,线性系统软件包,国际上使用最广泛的测试高性能计算机系统浮点性能的基准测试软件),ANSYS(有限元分析软件),Marc(高级非线性有限性分析软件)等,为了能够使用这些科学计算和商业软件的高级功能,必须先学会Fortran语言,才能编写相应的应用程序接口。
在数值计算中,Fortran语言仍然不可替代。在数组运算时,Fortran能够自动进行并行运算,这是很多编程语言不具备的。Fortran90标准引入了数组计算等非常利于矩阵运算的功能。运用Fortran语言,能够利用很多现成的函数软件包,所以非常便利。在可见的未来一段时期内,Fortran 仍将是一种重要的不可不掌握的计算机编程语言。