从COMPAQ VISUAL FORTRAN到INTEL VISUAL FORTRAN的过渡

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

从CompaqVisualFortran到IntelVisualFortran的过渡现在64位的计算机已经越来越普遍了,Intel公司的CORE处理器也从酷睿双核升级为i3、i5直到现在的主流i7,微软的Windows7系列的64位系统用起来感觉也挺不错的。但正是这64位,最近给我但来了些许的纠结。本文结合今天自己学习IntelVisualFortran(以下简称IVF)的内容,分析了IVF的优势、相关软件的安装要求、从CompaqVisualFortran(以下简称CVF)向IVF的转换以及IVF下简单Fortran计算程序的编译执行的操作过程,以期能对碰到类似情况者提供点思路。IVF较之CVF优势:我的戴尔Inspiron系列机子是64位,Windows7系统也是64位的。在我的硕士研究生阶段学习中需要用到Fortran程序设计语言,以前我习惯使用CVF来编写、调试和运行Fortran程序,但现在看来不行了。CVF不支持64位,因为2005年以前Fortran90/95的Win32开发环境多采用CompaqVisualFortran6.x,但在2005年CVF开发团队加盟到Intel公司,HP宣布其CVF6.6截至2005年12月31日,IVF9.0将作为其新一代后继编译器。IVF是在CVF的基础上开发的Fortran编译器,它将CVF前端与英特尔处理器后端相结合,拥有CVF丰富的语言功能和英特尔处理器的代码生成及优化功能,使运行在英特尔平台上的程序能得到大幅度提高。而且随着计算规模的增大,对计算内存的要求必须采用64位的程序才能够满足我们的要求,但CVF没有提供64位系统的编译平台。另外程序并行功能的实现可以用Intel的MKL所提供的函数库,这些函数库采用了共享内存并行计算的OpenMP,但以前的CVF没有提供对OpenMP的支持,所以无法调用MKL的并行函数库。所以,从CVF6.x转移到IVF9.0已是势在必行,选用IVF来Fortran编译程序也是很有必要的。IVF相关软件的安装说明:在使用CVF6.5/6.6编写运行Fortran程序时,只需要安装CompaqVisualFortran6.5/6.6即可。这是因为在这个安装源程序中,VisualFortran已经被组合(集成)在MicrosoftVisualStudio(以下简称VS)的图形接口开发环境中了,所以可以直接安装使用。这与VC/VC++类似,故用户看到的CVF程序编写界面与VC/VC++的基本是一致的。而采用IVF来编写运行Fortran程序则稍微麻烦些。网上下载到的IntelVisualFortranCompiler10/11版本都只是编译器,它需要放到集成开发环境(IntegratedDevelopmentEnvironment,以下简称IDE)中去才能使用。故而IVFComplier还需要VS6.6以上版本的IDE的支持,所以必须事先安装好VS后,才能安装编译器。我就是在安装VS2005后再安装IVF10的。具体安装方法参见本文后的链接部分说明。IVF与CVF的兼容性:IVF编译器支持所有的CVF语法,包括DigitalEquipmentCorporation(DEC)Fortran和MicrosoftFortranPowerStation4.0的语言扩展;支持所有的CVF库例程,包括可移植库,QuickWin以及所有的系统接口模块。IVF不支持的CVF特征有:(1)CompaqExtendedMathLibrary(CXML)。可以使用IntelMathKernelLibrary或IMSL、NAG等第三方数学库来替换。(2)跨引用的源代码浏览器。(3)COM服务器向导。假如要转换由CVF的COM服务器向导创建的组件工程,需要在IV下重新构建;假如要调整组件接口,比如增加新的接口,则需要在CVF下进行。从CVF向IVF的转换:由CVF转换到IVF,所有的Fortran源文件都需要在IVF下重新编译。IVF编译器不能直接使用CVF编译的对象、模块和静态链接库;但只要不在两个环境下共享输入/输出单元,IVF编译的应用程序可以使用CVF建造的动态链接库。大多数情况下无须改变Fortran源文件,只在IVF下重新建造现存的CVF工程即可;但有些工程需要改变小量源代码,有些则需要对建造方法做出适当调整。IVF编译器提供有工程转换向导,以方便CVF向IVF的转换。转换可以分两步进行:(1)打开CVF项目空间。可以直接双击CVF项目空间(*.dsw)打开之(如图1所示文件)。图1在随后出现消息框,如图2,点击“全是”按钮,将CVF项目空间下的每一项工程转换为IVF解决方案下对应的VisualC++.NET工程。图2(2)提取Fortran工程项目。在上一步执行完毕,会展示MicrosoftVisualStudio.NET开发环境,待转换的CVF工程作为MicrosoftVisualC++工程出现在解决方案资源管理器中,如图3所示。在每一个工程名上点击右键,从弹出的上下文菜单中选择执行“ExtractCompaqVisualFortranProjectItems”,至此工程才算转换完毕。图3由于MicrosoftVisualStudio.NET的一个工程只能使用一种语言,所以,若CVF工程中包含Fortran和C/C++两种源文件,必须将CVF混合语言工程转换成两个单一语言工程:一个为VisualC++工程;另一个为IntelFortran工程。而且,IVF向导将其中的一个工程改造成主工程。具体由哪一种语言建造主工程,由开发人员来决定,如图4所示。图4在IVF下新建Fortran工程:首先新建一个Fortran工程项目,在VS2005下执行菜单命令“文件—新建—项目”(如图5)即可。图5在弹出的对话框中选择“Intel(R)Fortran—ConsoleApplication—EmptyProject”(如图6),点击确定即可创建一个新的Fortran工程项目。图6向导生成的在解决方案中的工程项目,可以从IDE“项目”菜单或在解决方案资源管理器窗口点击鼠标右键弹出的上下文菜单中,选择“添加新项”对话框,选择“Source”,从而创建要插入工程的文件。于是一个扩展名为.f90为文件被创建,详见图7~图9。图7图8图9在IVF下运行Fortran程序:在IVF下链接、编译、调试和运行Fortran程序都与CVF下有所不同。首先需要生成exe文件,点击菜单中的“生成—生成***”,见图10,编译器即开始链接编译Fortran程序。图10若链接编译没有错误,及表示exe文件已经生成,如图11。图11此时,查看运行结果或者输入相关信息,点击菜单下“调试—开始执行(不调试)”见图12,于是即可见到如同CVF运行时的界面,如图13。图12图13相关链接:1、关于MicrosoftVisualStudio2005、IntelVisualFortran和MKL(MathKernelLibrary,是Intel为科学和工程计算设计的数学库)的详细安装步骤,请参见河海大学牛志伟老师QQ空间《VS2005+IVF+MKL安装及编译环境配置方法》,地址如下:=20522、集成开发环境(IntegratedDevelopmentEnvironment简称IDE)软件是用于程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面工具。就是集成了代码编写功能、分析功能、编译功能、debug功能等一体化的开发软件套。所有具备这一特性的软件或者软件套(组)都可以叫做IDE。如微软的VisualStudio系列,Borland的C++Builder,Delphi系列等。该程序可以独立运行,也可以和其它程序并用。例如,BASIC语言在微软办公软件中可以使用,可以在微软Word文档中编写WordBasic程序。IDE为用户使用VisualBasic、Java和PowerBuilder等现代编程语言提供了方便。不同的技术体系有不同的IDE。比如可以称为C++、VB、C#等语言的集成开发环境,所以可以叫做IDE。同样,Borland的JBuilder也是一个IDE,它是Java的IDE。zendstudio、editplus、ultraedit这些,每一个都具备基本的编码、调试功能,所以每一个都可以称作IDE。1、IMSL下载地址:x86_64://ftp.vni.com/pub/imsl/fnldownload/fnl60_10593.zip2、安装:安装过程中会提示你输入的序列号:201111仅有以上是不够的,还需要license.lic(附件)license放置位置:你在运行的时候会提示未注册,你就按提示,选择license所在文件3、配置:工具--选项Libraries:C:\ProgramFiles\VNI\imsl\fnl600\IA32\libIncludes:C:\ProgramFiles\VNI\imsl\fnl600\IA32\include\dll4、使用方法:和CVF中带的IMSL使用方法不同,这点是需要注意的附件中给了4个例子,在我的电脑上都能成功运行PS:我用的IntelVisualFortranv11.1.038(电驴有下)+visualstudio2008如果觉得对大家有用的话,一定多多顶贴呀!

1 / 8
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功