IVF較之CVF優(yōu)勢(shì): 我的戴爾Inspiron系列機(jī)子是64位,Windows 7系統(tǒng)也是64位的。在我的碩士研究生階段學(xué)習(xí)中需要用到Fortran程序設(shè)計(jì)語言,以前我習(xí)慣使用CVF來編寫、調(diào)試和運(yùn)行Fortran程序,但現(xiàn)在看來不行了。CVF不支持64位,因?yàn)?/span>2005年以前Fortran 90/95 的Win32 開發(fā)環(huán)境多采用Compaq Visual Fortran 6.x,但在2005年CVF 開發(fā)團(tuán)隊(duì)加盟到Intel 公司,HP 宣布其CVF6.6 截至2005年12月31日,IVF9.0 將作為其新一代后繼編譯器。 IVF是在CVF的基礎(chǔ)上開發(fā)的Fortran編譯器,它將CVF 前端與英特爾處理器后端相結(jié)合,擁有CVF 豐富的語言功能和英特爾處理器的代碼生成及優(yōu)化功能,使運(yùn)行在英特爾平臺(tái)上的程序能得到大幅度提高。而且隨著計(jì)算規(guī)模的增大,對(duì)計(jì)算內(nèi)存的要求必須采用64位的程序才能夠滿足我們的要求,但CVF沒有提供64位系統(tǒng)的編譯平臺(tái)。另外程序并行功能的實(shí)現(xiàn)可以用Intel的MKL所提供的函數(shù)庫,這些函數(shù)庫采用了共享內(nèi)存并行計(jì)算的OpenMP,但以前的CVF沒有提供對(duì)OpenMP的支持,所以無法調(diào)用MKL的并行函數(shù)庫。所以,從CVF6.x轉(zhuǎn)移到IVF9.0已是勢(shì)在必行,選用IVF來Fortran編譯程序也是很有必要的。 IVF相關(guān)軟件的安裝說明: 在使用CVF6.5/6.6編寫運(yùn)行Fortran程序時(shí),只需要安裝Compaq Visual Fortran6.5/6.6即可。這是因?yàn)樵谶@個(gè)安裝源程序中,Visual Fortran已經(jīng)被組合(集成)在Microsoft Visual Studio(以下簡稱VS)的圖形接口開發(fā)環(huán)境中了,所以可以直接安裝使用。這與VC/VC++類似,故用戶看到的CVF程序編寫界面與VC/VC++的基本是一致的。 而采用IVF來編寫運(yùn)行Fortran程序則稍微麻煩些。網(wǎng)上下載到的Intel Visual Fortran Compiler10/11版本都只是編譯器,它需要放到集成開發(fā)環(huán)境(Integrated Development Environment,以下簡稱IDE)中去才能使用。故而IVF Complier還需要VS6.6以上版本的IDE的支持,所以必須事先安裝好VS后,才能安裝編譯器。我就是在安裝VS2005后再安裝IVF10的。具體安裝方法參見本文后的鏈接部分說明。 IVF與CVF的兼容性: IVF 編譯器支持所有的CVF 語法,包括Digital Equipment Corporation(DEC) Fortran和Microsoft Fortran PowerStation 4.0 的語言擴(kuò)展;支持所有的CVF庫例程,包括可移植庫,QuickWin以及所有的系統(tǒng)接口模塊。 IVF 不支持的CVF特征有: (1)Compaq Extended Math Library(CXML)。可以使用Intel Math Kernel Library 或IMSL、NAG 等第三方數(shù)學(xué)庫來替換。 (2)跨引用的源代碼瀏覽器。 (3)COM服務(wù)器向?qū)?。假如要轉(zhuǎn)換由CVF的COM服務(wù)器向?qū)?chuàng)建的組件工程,需要在IV下重新構(gòu)建;假如要調(diào)整組件接口,比如增加新的接口,則需要在CVF下進(jìn)行。 從CVF向IVF的轉(zhuǎn)換: 由CVF 轉(zhuǎn)換到IVF,所有的Fortran源文件都需要在IVF下重新編譯。IVF編譯器不能直接使用CVF編譯的對(duì)象、模塊和靜態(tài)鏈接庫;但只要不在兩個(gè)環(huán)境下共享輸入/輸出單元,IVF編譯的應(yīng)用程序可以使用CVF 建造的動(dòng)態(tài)鏈接庫。 大多數(shù)情況下無須改變Fortran源文件,只在IVF下重新建造現(xiàn)存的CVF工程即可;但有些工程需要改變小量源代碼,有些則需要對(duì)建造方法做出適當(dāng)調(diào)整。 IVF編譯器提供有工程轉(zhuǎn)換向?qū)?,以方?/span>CVF向IVF的轉(zhuǎn)換。轉(zhuǎn)換可以分兩步進(jìn)行: (1)打開CVF項(xiàng)目空間??梢灾苯与p擊CVF項(xiàng)目空間(*.dsw)打開之(如圖1所示文件)。
在隨后出現(xiàn)消息框,如圖2,點(diǎn)擊“全是”按鈕,將CVF 項(xiàng)目空間下的每一項(xiàng)工程轉(zhuǎn)換為IVF 解決方案下對(duì)應(yīng)的Visual C++.NET 工程。
(2)提取Fortran 工程項(xiàng)目。在上一步執(zhí)行完畢,會(huì)展示Microsoft Visual Studio.NET開發(fā)環(huán)境,待轉(zhuǎn)換的CVF 工程作為Microsoft Visual C++ 工程出現(xiàn)在解決方案資源管理器中,如圖3所示。在每一個(gè)工程名上點(diǎn)擊右鍵,從彈出的上下文菜單中選擇執(zhí)行“ExtractCompaq Visual Fortran Project Items”,至此工程才算轉(zhuǎn)換完畢。
由于Microsoft Visual Studio.NET的一個(gè)工程只能使用一種語言,所以,若CVF工程中包含Fortran和C/C++兩種源文件,必須將CVF混合語言工程轉(zhuǎn)換成兩個(gè)單一語言工程:一個(gè)為Visual C++工程;另一個(gè)為Intel Fortran工程。而且,IVF向?qū)⑵渲械囊粋€(gè)工程改造成主工程。具體由哪一種語言建造主工程,由開發(fā)人員來決定,如圖4 所示。
在IVF下新建Fortran工程: 首先新建一個(gè)Fortran工程項(xiàng)目,在VS2005下執(zhí)行菜單命令“文件—新建—項(xiàng)目” (如圖5)即可。
在彈出的對(duì)話框中選擇“Intel(R)Fortran—Console Application—Empty Project”(如圖6),點(diǎn)擊確定即可創(chuàng)建一個(gè)新的Fortran工程項(xiàng)目。
向?qū)傻脑诮鉀Q方案中的工程項(xiàng)目,可以從IDE“項(xiàng)目”菜單或在解決方案資源管理器窗口點(diǎn)擊鼠標(biāo)右鍵彈出的上下文菜單中,選擇“添加新項(xiàng)”對(duì)話框,選擇“Source”,從而創(chuàng)建要插入工程的文件。于是一個(gè)擴(kuò)展名為.f90為文件被創(chuàng)建,詳見圖7~圖9。
在IVF下運(yùn)行Fortran程序: 在IVF下鏈接、編譯、調(diào)試和運(yùn)行Fortran程序都與CVF下有所不同。首先需要生成exe文件,點(diǎn)擊菜單中的“生成—生成***”,見圖10,編譯器即開始鏈接編譯Fortran程序。
若鏈接編譯沒有錯(cuò)誤,及表示exe文件已經(jīng)生成,如圖11。
此時(shí),查看運(yùn)行結(jié)果或者輸入相關(guān)信息,點(diǎn)擊菜單下“調(diào)試—開始執(zhí)行(不調(diào)試)”見圖12,于是即可見到如同CVF運(yùn)行時(shí)的界面,如圖13。
相關(guān)鏈接: 1、關(guān)于Microsoft Visual Studio 2005、Intel Visual Fortran和MKL(Math Kernel Library,是Intel為科學(xué)和工程計(jì)算設(shè)計(jì)的數(shù)學(xué)庫)的詳細(xì)安裝步驟,請(qǐng)參見河海大學(xué)牛志偉老師QQ空間《VS2005+IVF+MKL安裝及編譯環(huán)境配置方法》,地址如下:http://user.qzone.qq.com/793915?ptlang=2052 2、集成開發(fā)環(huán)境(Integrated Development Environment簡稱IDE)軟件是用于程序開發(fā)環(huán)境的應(yīng)用程序,一般包括代碼編輯器、編譯器、調(diào)試器和圖形用戶界面工具。就是集成了代碼編寫功能、分析功能、編譯功能、debug功能等一體化的開發(fā)軟件套。所有具備這一特性的軟件或者軟件套(組)都可以叫做IDE。如微軟的VisualStudio系列,Borland的C++Builder,Delphi系列等。該程序可以獨(dú)立運(yùn)行,也可以和其它程序并用。例如,BASIC語言在微軟辦公軟件中可以使用,可以在微軟Word文檔中編寫WordBasic程序。IDE為用戶使用VisualBasic、Java和PowerBuilder等現(xiàn)代編程語言提供了方便。不同的技術(shù)體系有不同的IDE。比如可以稱為C++、VB、C#等語言的集成開發(fā)環(huán)境,所以可以叫做IDE。同樣,Borland的JBuilder也是一個(gè)IDE,它是Java的IDE。zendstudio、editplus、ultraedit這些,每一個(gè)都具備基本的編碼、調(diào)試功能,所以每一個(gè)都可以稱作IDE。 |
|