在Linux下搭建Fortran开发环境
Fortran是最早的计算机高级语言之一,至今已经有40年左右的历史了,其中经历了Fortran 66、Fortran 77、Fortran 90和Fortran 95。Fortran 200x目前还在草案过程中。在科学计算领域,Fortran具有十分强大的生命力,例如在大型科学计算中还有HPF(High Performance Fortran)等。 主流的Fortran 90/95编译器有PGI Fortran、HP Fortran Compiler(由Fortran PowerStation进化过来的)和Intel Fortran Compiler等。 本文主要介绍其中的两款软件在Linux下的安装,即Intel Fortran Compiler 8.0和F Compiler。选取它们的原因是,前者是一个Intel提供的免费的Non-Commercial版本;后者则是Fortran 90/95的一个子集的实现,学习起来非常容易。 生命的怒放
Intel Fortran Compiler 8.0
Intel Fortran Compiler这个编译器性能极佳。它的发行版有Windows和Linux两种。这两种都分别提供Non-Commercial版免费下载,但不提供技术支持。下面介绍整个的安装过程。
1.下载Non-commercial版Fortran编译器,有两种方式。一是登录www.intel/software/products/global/eval.htm,选择 Intel(r) Fortran Compiler for Linux*下的第二项Non-Commercial Unsupported Version,点击进入。二是直接登陆www.intel/software/products/compilers/flin/noncom.htm。整个下载过程需要好几步。首先单击“Continue”按钮进入下一页;第二页有个调查表,填好之后进入下一页;第三页是软件协议页面,看过之后单击“Accept”按钮进入下一页;第四页是注册页面,其中E-mail栏一定要填好,填完后单击“Submit”按钮进入下一页;这是最后一页,说明已经注册成功,Intel会给用户发一封,其中包含一个协议附件。
剩下的工作是收取邮件,然后根据邮件中提供的地址下载软件。这里下载的软件是l_fc_p_8.0.,大约84MB。另外用户需要把邮件中的附件另存在刚才下载的软件的同一目录下,这里的文件名是l_for_70909049.lic。每个人的文件名可能不同,它是一个协议文件。
接下来以root用户进行以下的安装工作,假设前面的两个文件存放在/usr/src/intel目录下,这也是笔者的工作目录。
2.解压安装文件,命令如下:
#tar xzvf l_fc_p_8.0.
3.安装并指定协议。编译器是安装在/opt/intel_fc_80目录下,协议则在该目录下的licenses文件夹中。最后还要指定licenses的位置。具体命令如下:
dormicum #mkdir -p /opt/intel_fc_80/licenses #cp /usr/src/intel/*.lic /opt/intel_fc_80/licenses # export INTEL_LICENSE_FILE=opt/intel_fc_80/licenses |
|
4.安装程序,命令如下:
#cd /usr/src/intel/l_fc_p_8.0.034 #./install.sh |
|
如果正确就会看到下面的提示:
The following Intel(R) products and related products are installed. Intel(R) Fortran Compiler for 32-bit applications, Version 8.0 Linux Application Debugger for 32-bit applications, Version 7.3.1 Which of the following would you like to install? 1. Intel(R) Fortran Compiler for 32-bit applications, Version 8.0 2. Linux Application Debugger for 32-bit applications, Version 7.3.1 x. Exit |
|
先选择“1”,安装Intel Fortran Compiler,默认安装即可,默认目录就是/opt/intel_fc_80。
安装编译器完成之后,继续可以安装Linux Application Debugger for 32-bit applications, Version 7.3.1,选择“2”即可,它默认安装在/opt/intel_idb_73下。最后选择“x”退出安装程序。
5.安装完成可以删掉安装文件。命令如下:
#cd /usr/src #rm -rf intel |
|
6.以一般用户登录,登录以后修改用户根目录下的.bash_profile文件,在最后一行加入下面一行:
. /opt/intel_fc_80/bin/ifortvars.sh
注意,上面的语句中点号之后有空格。然后重新登录或执行下面的命令:
$source .bash_profile
这样一切安装与配置就完成了,可以简单的测试一下。编辑一个简单的源文件first.f90,内容如下:
program first print *, "Hello World!" print *, sin(123.4) end program first |
|
然后编译,编译命令与以前版本的Intel Fortran Compiler不同,以前采用的是“ifc”命令,从这个版本开始将使用下面的命令:
#ifort first.f90 -o first
或者运行下面的命令:
#./first
3gpp 这时显示如下:
Hello World!hanyiying -0.7693915 |
|
上面显示说明一切正常,已经可以正常使用该编译器了。“ifort”的具体使用可以用“ifort -help”获得详细帮助。在/opt/intel_fc_80/doc下有详细的使用文档。
F编译器
F编译器是Fortran Company / NAGWare F Compiler。它是Fortran 90/95的一个子集的实现,支持Fortran 95和HPF的一些新的概念。对于Fortran 77程序员来说,F可以直接调用Fortran 77程序,支持与鼓励面向对象编程。关于F的详细资料可以到www.fortran/F查看。
安装F非常简单,F有Windows、Linux和Solaris三种发行版。这三种都需要GCC才可以工作,因此首先要保证系统安装了GCC环境。
首先下载安装文件。这里下载的是Linux版,下载地址是ftp://ftp.swcp/pub/walt/F,文件是f_linux_,大约2MB左右。文件下载后存放到/usr/src目录下准备安装。以下的工作需要root用户权限。解压文件,进入解压后文件的目录,安装编译执行文件、库文件和手册,具体命令如下:
#tar xzvf f_linux_ # cd F_031017 # cp bin/* /usr/local/bin # mkdir /usr/local/lib/F # cp -d -p lib/* /usr/local/lib/F #mkdir /usr/local/man/man1 #cp doc/*.1 /usr/local/man/man1 |
|
安装完成后,进入examples目录进行测试,命令如下:
#cd examples #F sieve.f95 -o sieve |
|
公共基础设施建设
如果成功,则会产生一个目标执行文件sieve,执行下面的命令,结果如下:
#./sieve There are 25 prime numbers less than 100 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 …… |
|
上面显示说明已经安装成功,可以正确使用了。另外,在examples目录下还有众多的例子用户可以查看。在doc目录下还有其它的相关文档,包括F的编译选项等。
写在最后
至此本文已经详细介绍了Intel Fortran Compiler和F Compiler的安装。在安装了这些编译器之后,用户就可以进行Fortran的开发工作了。若想进一步配置诸如HPF系统的话,可以参考相关文档。
FORTRAN
FORTRAN是英文“FORmula TRANslator”的缩写,译为“公式翻译器”,它是世界上最早出现的计算机高级程序设计语言,广泛应用于科学和工程计算领域。FORTRAN语言以其特有的功能在数值、科学和工程计算领域发挥着重要作用。
早在1951年,美国IBM公司约翰·贝克斯(John Backus)针对汇编语言的缺点着手研究开发FORTRAN语言,并于1954年在纽约正式对外发布。称约翰·贝克斯提出的FORTRAN语言为FORTRANⅠ,FORTRANⅠ虽然功能简单,但它的开创性工作,在社会上引起了极大的反响。到1957年第一个FORTRAN编译器在IBM704计算机上实现,并首次成功运行了FORTRAN程序。
在1958年,对FORTRANⅠ进行了扩充和完善,引进了子函数等概念,推出了商业化的FORTRANⅡ版本。之后,FORTRAN语言发展迅速,多种版本相继在其它计算机上实现。
交通参与者
在1962年,推出了FORTRAN Ⅳ。FORTRAN Ⅳ没有充分考虑兼容性,导致FORTRANⅡ程序不能在FORTRAN Ⅳ系统中运行,使其应用受到了很大限制,这时语言不兼容性问题和影响被突出表现出来。此前也出现过FORTRAN Ⅲ,但由于存在严重缺陷,没有在计算机上实现。
随着FORTRAN语言版本的不断更新和变化,语言不兼容性问题日益突出,语言标准化工作被提上了日程。1962年5月,美国标准化协会(简称ANSI)成立相关机构着手进行FORTRAN语言标准化的研究工作,并于1966年正式公布了两个标准文本:美国国家标准FORTRAN(ANSI X3.9-1966)和美国国家标准基本FORTRAN(ANSI X3.10-1966),前者相当于FORTRAN Ⅳ,后者相当于FORTRANⅡ。基本FORTRAN是美国国家标准FORTRAN的一个子集,从而实现了语言的向下兼容,初步解决了语言的兼容性问题。通常称美国国家标准FORTRAN为FORTRAN 66。FORTRAN 66的推出在国际上产生了广泛影响,1972年国际标准化组织(简称ISO)在FORTRAN 66基础上制定了FORTRAN语言三级国际标准:基本级、中间级和完全级。
20世纪60代末,结构化程序设计方法提出后,具有结构化特征的程序设计语言开始出现,如:
ALGOL、PASCAL、MODULA、C等。如何将结构化特征引入FORTRAN 66引起计算机厂商和研究机构的高度重视,许多计算机厂商开始对FORTRAN 66进行不同程度的扩充,引入了结构化特征。针对这种情况,ANSI于1976年对FORTRAN 66(ANSI X3.9-1966)进行了修订,吸收了计算机厂商所扩充的一些行之有效的功能,同时增加了许多新内容。ANSI于1978年4月正式公布了新的美国国家标准(程序设计语言FORTRAN ANSI X3.9-1978),同时宣布撤消ANSI FORTRAN 3.9-1966,通常称新标准为FORTRAN 77(该版本原计划1977年公布)。FORTRAN 77向下兼容FORTRAN 66。在1980年,FORTRAN 77被ISO正式确定为国际标准ISO 1539-1980,该标准分全集和子集。FORTRAN 77推出后,由于具有结构化特征,在社会上得到了广泛应用,同时由于扩充了字符处理功能,在非数值处理领域也能大显身手。
20世纪80年代末,FORTRAN 77结构化和现代化的研究开始兴起,到1991年5月,ANSI公布了新的美国国家标准FORTRAN(ANSI 3.198-1991)。之后,ISO采纳该标准,并确定为国际标准ISO/IEC 1539-1:1991,新国际标准还采纳了我国计算机和信息处理标准化技术委员会程序设计分会提出的多字节字符集数据类型及相应的内部函数,为非英语国家使用计算机提供了极大的方便。通常称新标准为FORTRAN 90,FORTRAN 90向下兼容FORTRAN 77。之后不久又出现了FORTRAN 95。
FORTRAN 90的推出,使传统FORTRAN语言具有了现代气息。
Windows平台下,微软公司将FORTRAN 90无缝集成在Developer Studio集成开发环境之中,推出了Microsoft FORTRAN PowerStation 4.0,使FORTRAN 90真正实现了可视化编程,彻底告别了传统DOS环境(字符界面),转到了现代Windows环境(视窗界面),共享微软公司Windows平台的丰富资源。在1997年3月,微软公司和数据设备公司(Digital Equipment Corp,简称DEC)强强联合,合作研究、开发和推出了功能更强的FORTRAN语言新版本:Digital Visual FORTRAN 5.0,它是Microsoft FORTRAN PowerStation 4.0的升级换代产品。DEC公司在高性能科学和工程计算方面拥有世界领先技术,其高质量的FORTRAN编译器遍及全球。1998年1月,DEC与Compag公司合并,DEC成为Compag公司的全资子公司,于是Digital Visual FORTRAN更名为Compag Visual FORTRAN,其最新版本为Compag Visual FORTRAN 6.6。Compaq和HP合并之后,Compaq的Fortran小组和Intel的Fortran开发小组合并,开发出来Intel Fotran编译器9,有linux和window2个版本,其windows版本为Intel Visual Fortran, 可以和微软的Visual Studio集成。Windows平台下还有PGI,Absoft,Intel等多个商业公司的Fortran编译器,还有大量小公司的免费Fortran编译器。
Linux平台下,其gcc编译器默认支持fortran,另外有PGI,Intel,Absoft,Sun Studio,lachy等多个版本的商业编译器和共享编译器。支持Fortran 2003标准的编译器推出。