WRF模式運(yùn)行指南82頁(yè)_第1頁(yè)
WRF模式運(yùn)行指南82頁(yè)_第2頁(yè)
WRF模式運(yùn)行指南82頁(yè)_第3頁(yè)
WRF模式運(yùn)行指南82頁(yè)_第4頁(yè)
WRF模式運(yùn)行指南82頁(yè)_第5頁(yè)
已閱讀5頁(yè),還剩78頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、WRF 模式運(yùn)行指南(2007.8.242007.8.30)國(guó)家氣象中心數(shù)值預(yù)報(bào)室 (內(nèi)部資料 請(qǐng)勿擴(kuò)散)二七年八月二十四日 目錄1. WRF模式簡(jiǎn)介 .12. WRF模式的安裝 .2 2.1 安裝環(huán)境 .2 2.2 模式源程序.2 2.3 NetCDF函數(shù)庫(kù)的安裝2 2.4 WRF模式的安裝6 2.5資料前處理系統(tǒng)(WPS)的安裝.93. WRF模式與T213模式連接.17 3.1 連接方案 .17 3.2 連接程序設(shè)計(jì) .17 3.3編譯連接程序 .21 3.4 連接的實(shí)現(xiàn) .224. WRF模式系統(tǒng)的運(yùn)行.29 4.1 理想大氣方案.29 4.2 真實(shí)大氣方案 .325. WRF模式系統(tǒng)

2、作業(yè)卡.47 5.1 源程序.47 5.2 真實(shí)大氣方案 .486. 模式結(jié)果的顯示處理 .61 6.1 Vis5D格式 .61 6.2 MICAPS格式.62 6.2 GrADS格式 .65附錄1. WRF模式參數(shù)配置說(shuō)明 .68附錄2. T213場(chǎng)庫(kù)參數(shù)表 .78WRF模式系統(tǒng)安裝/調(diào)試技術(shù)報(bào)告數(shù)值預(yù)報(bào)室 鄧蓮堂1. WRF模式簡(jiǎn)介 WRF(Weather Research Forecast)模式系統(tǒng)是由許多美國(guó)研究部門及大學(xué)的科學(xué)家共同參與進(jìn)行開(kāi)發(fā)研究的新一代中尺度預(yù)報(bào)模式和同化系統(tǒng)。WRF模式系統(tǒng)的開(kāi)發(fā)計(jì)劃是在1997年由NCAR中小尺度氣象處、NCEP的環(huán)境模擬中心、FSL的預(yù)報(bào)研究

3、處和奧克拉荷馬大學(xué)的風(fēng)暴分析預(yù)報(bào)中心四部門聯(lián)合發(fā)起建立的,并由國(guó)家自然科學(xué)基金和NOAA共同支持。現(xiàn)在,這項(xiàng)計(jì)劃,得到了許多其他研究部門及大學(xué)的科學(xué)家共同參與進(jìn)行開(kāi)發(fā)研究。WRF模式系統(tǒng)具有可移植、易維護(hù)、可擴(kuò)充、高效率、方便的等諸多特性,將為新的科研成果運(yùn)用于業(yè)務(wù)預(yù)報(bào)模式更為便捷,并使得科技人員在大學(xué)、科研單位及業(yè)務(wù)部門之間的交流變得更加容易。 WRF模式系統(tǒng)將成為改進(jìn)從云尺度到天氣尺度等不同尺度重要天氣特征預(yù)報(bào)精度的工具。重點(diǎn)考慮110公里的水平網(wǎng)格。模式將結(jié)合先進(jìn)的數(shù)值方法和資料同化技術(shù),采用經(jīng)過(guò)改進(jìn)的物理過(guò)程方案,同時(shí)具有多重嵌套及易于定位于不同地理位置的能力。它將很好的適應(yīng)從理想化的

4、研究到業(yè)務(wù)預(yù)報(bào)等應(yīng)用的需要,并具有便于進(jìn)一步加強(qiáng)完善的靈活性。 WRF模式作為一個(gè)公共模式,由NCAR負(fù)責(zé)維護(hù)和技術(shù)支持,免費(fèi)對(duì)外發(fā)布。第一版的發(fā)布在2000年11月30日。隨后在2001年5月8日,第二次發(fā)布了WRF模式,版本號(hào)為1.1。2001年11月6日,很快進(jìn)行了模式的第三次發(fā)布,只是改了兩個(gè)錯(cuò)誤,沒(méi)有很大的改動(dòng),因此版本號(hào)定為1.1.1。直到2002年4月24日,才正式第四次發(fā)布,版本號(hào)為1.2。同樣,在稍微修改一些錯(cuò)誤后,2002年5月22日第五次版發(fā)布模式系統(tǒng),版本號(hào)為1.2.1。原定于2002年10月份左右的第六次發(fā)布,直到2003年3月20才推出,版本號(hào)為1.3。2003年1

5、1月21日進(jìn)行了更新。2004年5月21日推出了嵌套版本V2.0。2004年6月3日進(jìn)行了更新。2006年1月30日升級(jí)為新版本2.1.2。2006年11月22日升級(jí)為2.2版。2WRF模式的安裝2.1 硬件環(huán)境 WRF模式是一個(gè)多機(jī)型、跨平臺(tái)、標(biāo)準(zhǔn)化的模式。可以在IBM AIX,SGI IRIX,PC LINUX等機(jī)型上運(yùn)行。2.2 軟件環(huán)境 WRF模式的運(yùn)行系統(tǒng)中的一般需要的安裝軟件環(huán)境包括:UNIX(LINUX)操作系統(tǒng)Perl5.003以上Fortran程序編輯器(包括Fortran90和Fortran77編譯器)C程序編譯器NetCDF函數(shù)庫(kù),版本在3.3.1以上(必須包含F(xiàn)ortr

6、an77,Fortran90 以及C的程序調(diào)用接口)MICAPS圖形顯示系統(tǒng)、VIS5D圖形顯示系統(tǒng)、GrADS或者RIP等2.2.1 UNIX環(huán)境計(jì)算機(jī)系統(tǒng)是有計(jì)算機(jī)硬件和軟件構(gòu)成。操作系統(tǒng)是系統(tǒng)軟件的核心,它控制程序的執(zhí)行和提供資源分配、調(diào)度、輸入/輸出控制和數(shù)據(jù)管理服務(wù)。UN IX 系統(tǒng)是一種多用戶多任務(wù)的分時(shí)的操作系統(tǒng), 由于其安全可靠、開(kāi)放性和可移植性良好等優(yōu)點(diǎn), 迅速成為小型機(jī)和工作站上普遍使用的一種主流操作系統(tǒng)。UNIX系統(tǒng)大致分為三層:最里層是UNIX內(nèi)核,即UNIX操作系統(tǒng)常駐內(nèi)存部分,它直接附著在硬件上;中間層是shell,即命令解釋程序,這是用戶與系統(tǒng)和核心的接口;最外層

7、是應(yīng)用層,它包含眾多的應(yīng)用軟件、實(shí)用程序和除UNIX操作系統(tǒng)之外的其他系統(tǒng)軟件。在UNIX操作系統(tǒng)中,通常提供三種不同的shell,即Bourne shell(簡(jiǎn)稱sh)、Cshell(簡(jiǎn)稱csh)和Korn shell(檢查ksh)。Bourne shell是AT&T Bell試驗(yàn)室的Slephen Bourne為AT&T的UNIX開(kāi)發(fā)的,它室其它shell的開(kāi)發(fā)基礎(chǔ),也是各種UNIX系統(tǒng)上最常用、最基本的shell。Cshell是加州伯克利大學(xué)的Bill Joy為BSD UNIX開(kāi)發(fā)的,它與sh不同,主要是模擬C語(yǔ)言。Korn shell是AT&T Bell實(shí)驗(yàn)室的David Korn開(kāi)發(fā)

8、的,它與sh兼容,但功能更強(qiáng)大。在Linux系統(tǒng)中使用的Bash(代表GNU的Bourne Again shell),他是由Bourne shell發(fā)展而來(lái)。Bash與sh稍有不同,它還包含了csh和ksh的特色。不過(guò),大多數(shù)sh腳本可以不加修改地在Bash上運(yùn)行。在UNIX系統(tǒng)的應(yīng)用層,通常可以提供十幾種常用的程序設(shè)計(jì)語(yǔ)言的編譯和解釋程序。如C、FORTRAN、BASIC、PASCAL、Ada、COBOL和Perl等。UNIX系統(tǒng)豐富的核外系統(tǒng)程序?yàn)橛脩籼峁┝艘粋€(gè)實(shí)用的軟件運(yùn)行和開(kāi)發(fā)環(huán)境。這正是目前中尺度數(shù)值模式大多數(shù)都運(yùn)行在UN IX 系統(tǒng)平臺(tái)上的主要原因之一。UNIX系統(tǒng)自從誕生到現(xiàn)在已

9、有三十多年的歷史了,產(chǎn)生了很種版本,如IBM公司的AIX、DEC公司的Ultrix、Sun Microsystems公司的SunOS/solaris等。值得一提的是自由軟件Linux近十年來(lái)得到迅速的發(fā)展。Linux系統(tǒng)是遵循UNIX相同的同一標(biāo)準(zhǔn)的操作系統(tǒng),它不僅可以在Intel、AMD及Cyrix系列個(gè)人機(jī)上,還可以用在許多工作站上。它繼承了UNIX系統(tǒng)的主要特征,使中尺度數(shù)值模式在個(gè)人微機(jī)上運(yùn)行成為可能。為了是數(shù)值模式本身的維護(hù)和發(fā)展,大多數(shù)數(shù)值模式開(kāi)發(fā)是都盡量保持程序的可移植性,使模式可以運(yùn)行在多種版本的UNIX操作系統(tǒng)上。例如,新一代中尺度天氣模式ARW就可以運(yùn)行在多種UNIX系統(tǒng)平

10、臺(tái)上,具體包括:開(kāi)發(fā)商 硬件平臺(tái) 操作系統(tǒng) 編譯器 Cray X1 UniCOS vendorHP/Compaq alpha Tru64 vendorHP/Compaq IA64 (Intel) Linux vendorHP/Compaq IA64 HPUX vendorIBM Power Series AIX xlfSGI IA64 Linux IntelSGI MIPSIrix vendorSun UltraSPARC SunOS vendorCOTS* IA32/AMD32 Linux Intel / PGICOTS IA64/Opteron Linux Intel / PGIMac G

11、5 Darwin xlf2.2.2 PERL環(huán)境Perl 是 Practical Extraction and Report Language的縮寫(xiě),是由 Larrt Wall 融合了 awk/sed/cut/grep等unix 上常見(jiàn)的工具與C language的語(yǔ)法所創(chuàng)造的一種 language。Perl 是一種解譯式的語(yǔ)言,在速度上并沒(méi)有 C 這類編譯式的語(yǔ)言來(lái)得快,不過(guò) Perl 在執(zhí)行時(shí)事實(shí)上是先將原始檔實(shí)時(shí)編譯后再執(zhí)行,所以速度其實(shí)并不慢。Perl 極為適合處理用來(lái)處理一些用 C 處理并不方便,用 shell 處理又嫌太復(fù)雜的工作. Perl 強(qiáng)大的文字處理能力,使得它極為適合作為

12、 CGI 程序所用的language。事實(shí)上,針對(duì)許多的應(yīng)用,已經(jīng)有現(xiàn)成的 Perl module 可供使用,因此 perl 也很適合作為應(yīng)用程序的發(fā)展語(yǔ)言。配合 Perl/Tk, Perl 也能用來(lái)發(fā)展窗口程序。Perl 目前支持極多種操作系統(tǒng),包含大部份的 Unix 操作系統(tǒng)及其它如 Mac. VMS,BeOS,OS2,Windows NT,Windows 95 甚至 MsDos。在不同的操作系統(tǒng)上,支持大部份相同的功能,因?yàn)?Perl 的創(chuàng)造者 Larry Wall堅(jiān)持 Perl 必須是“一種”語(yǔ)言。這意味著用Perl所寫(xiě)的程序有極佳的可移植性。 數(shù)值模式中,比如WRF模式,經(jīng)常用per

13、l來(lái)初始化模式運(yùn)行的參數(shù)環(huán)境,以及運(yùn)行一些程序。2.2.3 MPI并行環(huán)境MPI 是一種消息傳遞編程模型, 目的是實(shí)現(xiàn)進(jìn)程間的通信。MPI 不是一門語(yǔ)言, 而是一個(gè)運(yùn)行庫(kù), 可以由Fortran77/Fortran90/C/C+語(yǔ)言調(diào)用, 在語(yǔ)法上, 他完全以庫(kù)的形式呈現(xiàn), 因此很好地融入了宿主語(yǔ)言中。MPI 已經(jīng)在很多科研領(lǐng)域被廣泛地使用。作為一種消息傳遞式的并行編程環(huán)境, MPI 并行程序要求將任務(wù)分塊, 同時(shí)啟動(dòng)多個(gè)進(jìn)程并發(fā)執(zhí)行, 各進(jìn)程之間通過(guò)調(diào)用MPI 的庫(kù)函數(shù)實(shí)現(xiàn)消息傳遞。由于其消息傳遞并行編程模型的特點(diǎn), MPI 程序的各個(gè)參與計(jì)算的進(jìn)程可以被容易的分布在不同的計(jì)算節(jié)點(diǎn)上, 這使

14、得MPI程序具有很強(qiáng)的可擴(kuò)展性。為了支持異構(gòu)環(huán)境編程, MPI 定義了一些數(shù)據(jù)類型, 使得進(jìn)程之間可以跨平臺(tái)交互。這些數(shù)據(jù)類型與語(yǔ)種中的數(shù)據(jù)類型對(duì)應(yīng), 但是又中立于語(yǔ)言。MPI 不同于PVM, 他的各個(gè)進(jìn)程運(yùn)行相同的源代碼,一般地,根據(jù)自己不同的進(jìn)程號(hào), 進(jìn)入到程序中的不同分支進(jìn)行運(yùn)行, 既可以使用對(duì)等模式來(lái)編程, 也可以使用主從模式來(lái)編程。對(duì)等模式中程序的各個(gè)部分使用相同的代碼來(lái)處理不同的數(shù)據(jù), 主從模式中則是由一個(gè)主進(jìn)程來(lái)控制其它進(jìn)程的運(yùn)行, 體現(xiàn)了依賴的關(guān)系。MPI-1 提供了128 個(gè)調(diào)用接口, MPI-2 提供了287 個(gè)調(diào)用接口, 但是最基本的MPI 調(diào)用只有6 個(gè)。用以下的6 個(gè)

15、函數(shù), 可以實(shí)現(xiàn)基本的并行編程:(1)MPI_Init(): 初始化MPI 程序(2)MPI_Finalize(): 結(jié)束MPI 程序, 做清理工作(3)MPI_COMM_Size(): 確定參與計(jì)算的進(jìn)程數(shù)(4)MPI_COMM_Rank(): 確定當(dāng)前進(jìn)程的進(jìn)程號(hào)(5)MPI_Send(): 發(fā)送消息( 阻塞式)(6)MPI_Recv(): 接受消息( 阻塞式)2.2.4 Open MP并行環(huán)境在常用的并行方法中,MPI要求程序員將數(shù)據(jù)結(jié)構(gòu)按不同的處理區(qū)分開(kāi),并且不支持增量并行,因而MPI編程較為困難。OpenMP 是由OpenMP 標(biāo)準(zhǔn)委員會(huì)( OpenMPARB , OpenMP Ar

16、chitecture Review Board) 于1997 年10 月推出的支持共享存儲(chǔ)并行編程的工業(yè)標(biāo)準(zhǔn)。OpenMP 標(biāo)準(zhǔn)通過(guò)定義編譯制導(dǎo)、庫(kù)例程和環(huán)境變量規(guī)范的方法,為程序員提供了支持Fortran 和C/ C + +語(yǔ)言的一組功能強(qiáng)大的高層并行結(jié)構(gòu),而且支持增量并行。OpenMP2 是共享存儲(chǔ)體系結(jié)構(gòu)的并行編程標(biāo)準(zhǔn),其特點(diǎn)是易于編程且支持增量并行,但是不易擴(kuò)展.OpenMP 應(yīng)用于共享內(nèi)存的并行計(jì)算平臺(tái),它是一組編譯指導(dǎo)語(yǔ)句和可調(diào)用運(yùn)行時(shí)庫(kù)函數(shù)的集合,可被直接嵌入源程序而無(wú)需作較大的修改,編程簡(jiǎn)單,適合將現(xiàn)有的程序并行化。OpenMP是一組編譯指導(dǎo)語(yǔ)句、一組庫(kù)函數(shù)和環(huán)境變量的集合,能

17、用來(lái)表示共享內(nèi)存并行,可支持粗、細(xì)粒度的并行。它包括3部分:控制結(jié)構(gòu)、數(shù)據(jù)環(huán)境和同步機(jī)制。另外還包括了一個(gè)可調(diào)用運(yùn)行時(shí)庫(kù)及相應(yīng)的環(huán)境變量。下面看一個(gè)簡(jiǎn)單的例子,了解一下OpenMP具體是如何工作的。program maininteger i, sum sum = 0 c1234567890 c$omp parallel do private(i)c$omp+reduction(+sum)do i=1,50 sum=sum+i+(100-i+1)enddoc$omp end parallel do print *, 1+2+3+ + 99+100=,sumstop end 上面的程序中以c$om

18、p開(kāi)頭的語(yǔ)句即為并行指導(dǎo)語(yǔ)句,一般串行編譯時(shí),被識(shí)別為注釋語(yǔ)句。程序首先以一個(gè)進(jìn)程開(kāi)始,當(dāng)我們第一次遇到PARALLEL語(yǔ)句時(shí),則產(chǎn)生一個(gè)或多個(gè)進(jìn)程,同時(shí)對(duì)應(yīng)于每一個(gè)進(jìn)程的數(shù)據(jù)環(huán)境也被產(chǎn)生。每一個(gè)進(jìn)程的數(shù)據(jù)環(huán)境包括一個(gè)私有變量i和一個(gè)歸約變量sum,在并行區(qū)中對(duì)i和sum的引用都是私有的。而歸約變量意味著在并行區(qū)結(jié)束時(shí),將各個(gè)進(jìn)程的sum變量以操作符歸約到主進(jìn)程的sum變量中。在程序的執(zhí)行過(guò)程中,處理器負(fù)責(zé)將任務(wù)分配到不同的進(jìn)程,編程者不需要知道到底能用多少各處理器。從上面的例子可以看到,用OpenMP實(shí)現(xiàn)并行,簡(jiǎn)單易行,基本上不必對(duì)原來(lái)的串行程序做額外的改動(dòng)。在應(yīng)用OpenMP并行程序時(shí),應(yīng)

19、用程序員往往缺乏對(duì)程序并行性的分析(如數(shù)據(jù)相關(guān)性分析和通信分析等),許多OpenMP 程序的性能也并不理想,并行效率較低;另一方面,如果要求程序員在編寫(xiě)并行程序時(shí)進(jìn)行深入的程序分析就會(huì)增加程序設(shè)計(jì)的難度,違背OpenMP的易用性原則,也是不現(xiàn)實(shí)的。因此,有時(shí)可以考慮在編譯過(guò)程中實(shí)現(xiàn)OpenMP 程序的優(yōu)化。(張平,2006 OpenMP 并行程序的編譯器優(yōu)化)2.3 數(shù)據(jù)接口2.3.1 NETCDF格式 近年來(lái),越來(lái)越多的氣象模式輸入輸出格式采用了NetCDF格式,如WRF模式,GRAPES模式等。在科研中比較常用的NCEP再分析資料也是采用NetCDF格式。所謂NetCDF(Network

20、Common Data Form)就是在美國(guó)國(guó)家自然科學(xué)基金為資助的計(jì)劃Unidata下開(kāi)發(fā)的一套軟件。NetCDF的軟件本質(zhì)是一個(gè)I/O函數(shù)庫(kù),現(xiàn)在NetCDF已經(jīng)可以應(yīng)用在從微型機(jī)到超級(jí)計(jì)算機(jī)的各種計(jì)算機(jī)平臺(tái)上。它提供了C、Fortran77、Fortran90、Java、C、Perl等語(yǔ)言的調(diào)用接口。利用NetCDF函數(shù)庫(kù),可以存儲(chǔ)和檢索具有自描述性,且不依賴于計(jì)算機(jī)的數(shù)據(jù)集。每個(gè)NetCDF數(shù)據(jù)集里可以包含多維的變量,每個(gè)變量都可以有輔助性數(shù)據(jù),例如變量的單位、數(shù)據(jù)類型等。它的優(yōu)點(diǎn)首先在于資料是自描述的,即在數(shù)據(jù)集中包含了描述這個(gè)數(shù)據(jù)集內(nèi)部數(shù)據(jù)的信息;其次,NetCDF數(shù)據(jù)集的數(shù)據(jù)可以

21、直接存取,可以省去很多不必要的讀取時(shí)間;另外,NetCDF數(shù)據(jù)集的文件格式可以跨平臺(tái)讀取,數(shù)據(jù)不依賴于機(jī)器,例如在UNIX平臺(tái)上用C創(chuàng)建的數(shù)據(jù)可以在另一臺(tái)Linux系統(tǒng)的計(jì)算機(jī)上用Fortran語(yǔ)言來(lái)讀取,中間不需要任何轉(zhuǎn)換。2.3.2 GRIB碼(GRIB1和GRIB2)隨著氣象科學(xué)的不斷發(fā)展,龐大的氣象數(shù)據(jù)不但對(duì)計(jì)算機(jī)提出更高的要求,而且國(guó)際間的數(shù)據(jù)交換也要求能形成一種有效的、統(tǒng)一的、標(biāo)準(zhǔn)的數(shù)據(jù)存儲(chǔ)和流通格式。因此,世界氣象組織(WMO)在1984年首先推薦并定義了GRIB(GRIdded Binary)碼數(shù)據(jù)格式。GRIB碼就是一種基于“位”的,與計(jì)算機(jī)無(wú)關(guān)的壓縮的網(wǎng)格二進(jìn)制編碼數(shù)據(jù)格式

22、,適用于表示各種數(shù)值天氣預(yù)報(bào)的分析和預(yù)報(bào)的格點(diǎn)場(chǎng)產(chǎn)品。GRIB通過(guò)把各種相關(guān)數(shù)據(jù)信息大包壓縮,是信息的組織方式比起基于字符的形式要緊湊得多,因此有利于資料得存儲(chǔ)和加快計(jì)算機(jī)之間得傳輸速度。現(xiàn)行的GRIB 碼版本有GRIB1 和GRIB2 兩種格式。GRIB是在1990年WMO確定得數(shù)據(jù)結(jié)構(gòu)相對(duì)穩(wěn)定的GRIB數(shù)據(jù)格式。GRIB的優(yōu)點(diǎn)主要表現(xiàn)為:1. 數(shù)據(jù)是二進(jìn)制格式,與計(jì)算機(jī)無(wú)關(guān);2. 數(shù)據(jù)壓縮效率高;3. 數(shù)據(jù)具有完整的描述信息,數(shù)據(jù)表示能力強(qiáng)。GRIB1碼格式也逐漸顯示出了它的不足:1. 缺乏對(duì)譜數(shù)據(jù)的支持和對(duì)圖象數(shù)據(jù)的有限支持;2. 不能對(duì)一些集合預(yù)報(bào)等新產(chǎn)品進(jìn)行處理;3. 只能定義一個(gè)產(chǎn)

23、品模版和網(wǎng)格描述模版。GRIB2是對(duì)GRIB1的功能擴(kuò)充版,彌補(bǔ)了GRIB的大部分不足:1. GRIB2碼能夠表達(dá)多個(gè)網(wǎng)格場(chǎng)數(shù)據(jù),也能描述在時(shí)間和空間方面的多維網(wǎng)格數(shù)據(jù);2. 提供更多的描述模版,可以表達(dá)集合預(yù)報(bào)系統(tǒng)產(chǎn)品等一些新的產(chǎn)品數(shù)據(jù),并維擴(kuò)展和增加新產(chǎn)品提供方便的途徑;3. 數(shù)據(jù)壓縮方式更多,并包含了JPEG2000和PNG等圖象壓縮方式;4. GRIB2碼有些數(shù)據(jù)可以采用了IEEE標(biāo)準(zhǔn)浮點(diǎn)表示方法。在了解了GRIB1碼和GRIB2碼資料的結(jié)構(gòu)后,即編寫(xiě)解碼程序進(jìn)行解碼工作。一般來(lái)說(shuō),如果數(shù)值模式產(chǎn)品包含了GRIB1碼或GRIB2碼格式的數(shù)據(jù),則模式的源代碼中必然有GRIB1碼或者GRI

24、B2碼的壓/解碼程序。2.3.3 T213場(chǎng)庫(kù)T213場(chǎng)庫(kù)是國(guó)家氣象中心新一代數(shù)值預(yù)報(bào)業(yè)務(wù)系統(tǒng)的重要組成部分之一。在實(shí)時(shí)業(yè)務(wù)運(yùn)行中,格點(diǎn)場(chǎng)庫(kù)系統(tǒng)存儲(chǔ)和管理數(shù)值預(yù)報(bào)的客觀分析、模式預(yù)報(bào)后處理所產(chǎn)生的結(jié)果數(shù)據(jù),以場(chǎng)(即一層資料)為單位,經(jīng)過(guò)處理和壓縮,按照一定的要求分門別類地保存,供繪圖、檢驗(yàn)、歸檔、遠(yuǎn)程網(wǎng)產(chǎn)品等實(shí)時(shí)預(yù)報(bào)業(yè)務(wù)和科研使用。 IBM SP機(jī)器中T213場(chǎng)庫(kù)的水平分辨率為0.5625*0.5625(度)。目前,由于T213場(chǎng)庫(kù)資料的檢索已經(jīng)模塊化,用戶根據(jù)檢索時(shí),可直接調(diào)用通用場(chǎng)庫(kù)(T213)檢索接口程序“gdbrck”。調(diào)用通用場(chǎng)庫(kù)接口程序時(shí),用戶只必須設(shè)置好程序的各個(gè)接口參數(shù)。具體各

25、接口參數(shù)說(shuō)明如下: call gdbrck(ftype,idate,iftime,ielemcd,level,ii,jj,kk,record,data,index_dic,iret) ftype : character*4,場(chǎng)類型,例:暴雨系統(tǒng)為 BJLP,t213系統(tǒng)為 BJGL idate : integer idate(4), 日期數(shù)組,年(四位)、月、日、時(shí)次 iftime : integer, 時(shí)效 ielemcd : integer, 要素代碼 level : integer level(n+1), 層次數(shù)組,第一元為調(diào)用的總層數(shù)n, 2到n+1元為具體的調(diào)用層次,如level(3

26、), data level/2,500,700/ ii : integer,緯度格點(diǎn)數(shù) jj : integer, 經(jīng)度格點(diǎn)數(shù) kk : integer, 調(diào)用層數(shù)n record : integer,本場(chǎng)最大ii * jj。T213系統(tǒng)為: 640*321 data : real*8 dimension data(ii,jj,kk) ,符點(diǎn)數(shù)組,數(shù)據(jù)區(qū) index_dic : character*80, 字符串,模式字典文件全名 iret : integer,返回碼 0:正常 6:場(chǎng)沒(méi)生成或記錄不存在 9:其他錯(cuò) 值得注意的是,由于場(chǎng)庫(kù)資料中整數(shù)和浮點(diǎn)數(shù)都是以64位格式存儲(chǔ)的,也就是8個(gè)字節(jié)

27、。因此,在程序的聲明部分注意場(chǎng)庫(kù)調(diào)用參數(shù)的存儲(chǔ)長(zhǎng)度;或者在編譯程序的時(shí)候,選用64位編譯方式編譯。當(dāng)然,也可以在編譯的時(shí)候,用編譯選項(xiàng) -qintsize=8 和 -qrealsize=8兩個(gè)選項(xiàng)來(lái)進(jìn)行編譯。 index_dic是模式字典文件全名,在調(diào)用前必須指定。在IBM SP上,場(chǎng)庫(kù)在SP:/gpfs/fs2/nwp/gdbt213目錄下用index_dic(1:28)=/u/nwp/gdbt213/dic/index_dic;在場(chǎng)庫(kù)在盤(pán)陣庫(kù)/asm2/nwpgdb/t213gdb目錄下用index_dic(1:32)=/u/nwp/gdbt213 /dic/index_nfs_dic。2

28、.4 NetCDF函數(shù)庫(kù)的安裝2.4.1 文件獲取 目前,由于WRF模式的數(shù)據(jù)處理格式主要是應(yīng)用較為常見(jiàn)的NetCDF數(shù)據(jù)格式。因此,在安裝WRF模式的標(biāo)準(zhǔn)初始化以及WRF主模式前,必須在操作系統(tǒng)環(huán)境中先安裝NetCDF程序包,生成NetCDF函數(shù)庫(kù)。在運(yùn)行的系統(tǒng)環(huán)境中,如果沒(méi)有安裝NetCDF函數(shù)庫(kù),則必須自己安裝。NetCDF程序包的下載地址為 /packages/netcdf/ 從網(wǎng)站中,可以獲得NetCDF的壓縮程序包netcdf.zip或者netcdf.tar.Z。2.4.2 安裝環(huán)境 不同平臺(tái)要求也不一樣,但必需有25兆的可用空間

29、用來(lái)解壓、編譯和運(yùn)行測(cè)試。由于WRF模式的程序采用了C,F(xiàn)ortran77和Fortran90編寫(xiě),所以也要求操作平臺(tái)具有FORTRAN77,F(xiàn)ORTRAN90和標(biāo)準(zhǔn)C(或C)編譯器。 netCDF將會(huì)編譯并測(cè)試相應(yīng)的語(yǔ)言接口。2.4.3 指定編譯環(huán)境 首先要選擇并指定一個(gè)恰當(dāng)?shù)木幾g環(huán)境。如果需要,可設(shè)置CC,CFLAGS, FC, FFLAGS, CXX, CXXFLAGS, F90和F90FLAGS中任何環(huán)境變量,以指明相應(yīng)的編譯環(huán)境。環(huán)境變量也就是用戶外殼程序(shell)管理的參數(shù),并被shell程序用于運(yùn)行應(yīng)用程序(例如設(shè)置腳本程序)。一些環(huán)境變量的說(shuō)明可參見(jiàn)下表(表1)。表1 編譯

30、NetCDF的一些環(huán)境變量及其說(shuō)明變量描述NotesCCC編譯器如果未指定,設(shè)置腳本程序?qū)⒃噲D找出合適的C編譯器,如:cc, c89, xlc, or gcc。FCFortran編譯器(如果存在)如果未指定,設(shè)置腳本程序?qū)⒃噲D找出合適的Fortran 90 or Fortran 77 編譯器。 如果不需要Fortran接口,則可將FC設(shè)置為。 F90Fortran 90編譯器(如果存在)如果未指定,設(shè)置腳本程序?qū)⒃噲D找出合適的Fortran 90 編譯器。 如果指定了Fortran 90編譯器,則不需要FC參數(shù)。如果不需要Fortran 90接口,則可將F90設(shè)置為。 CXXC+編譯器如果未指

31、定,設(shè)置腳本程序?qū)⒃噲D找出合適的C+編譯器。 不需要C+接口時(shí),可將CXX 設(shè)置為 。CFLAGSC編譯器參數(shù)選項(xiàng)例如 -0 或 -gCPPFLAGSC 預(yù)處理參數(shù)選項(xiàng)例如-DNDEBUG 是忽略聲明部分的檢測(cè)(assertion)FFLAGSFortran 編譯器參數(shù)選項(xiàng)例如-O 或 -gF90FLAGSFortran 90 編譯器參數(shù)選項(xiàng)例如-O 或 -g。如果未指定,則采用FFLAGS的值。CXXFLAGSC+ 編譯器標(biāo)志例如-O 或 -gARFLAGSNMFLAGSFPPM4FLAGSLIBSFLIBS 混合參數(shù)選項(xiàng)在一些操作平臺(tái)中可能用到這些參數(shù)中的一個(gè)或幾個(gè)。 值得注意的是,如果不

32、設(shè)置環(huán)境變量,那么配置腳本程序?qū)?huì)試圖找出相應(yīng)合理的設(shè)置值。但在IBM SP機(jī)器上,如果用戶不設(shè)置Fortran90的編譯和編譯選項(xiàng),那么配置腳本往往找不到正確的Fortran90編譯器和編譯選項(xiàng),從而造成NetCDF函數(shù)庫(kù)中沒(méi)有Fortran90的程序接口。環(huán)境變量也就是用戶外殼程序(shell)管理的參數(shù),并被shell程序用于運(yùn)行應(yīng)用程序(例如設(shè)置腳本程序)。典型的環(huán)境變量有:環(huán)境變量名變量值USER dengltHOME /home/dengltPATH /bin:/usr/bin:/home/steve/bin 執(zhí)行命令行命令“env”,可得到當(dāng)前環(huán)境中的環(huán)境變量列表。定義和設(shè)置環(huán)境

33、變量的方式取決于用戶所用的外殼(Shell)類型。Csh類shell(如csh、tcsh)用戶設(shè)置方式如下: setenv CC c89 setenv CPPFLAGS “-0 -DNDEBUG”而標(biāo)準(zhǔn)UNIX shell(例如sh、ksh、bash)用戶要設(shè)置上面同樣的環(huán)境變量,可如下設(shè)置: export CC=c89 export CPPFLAGS=”-0 -DNDEBUG”以上兩種方式中,參數(shù)值中帶有將值的各部分分開(kāi)的空格分隔符時(shí),雙引號(hào)不能省略。否則,參數(shù)值只是設(shè)置為所要取值得一部分。標(biāo)準(zhǔn)shell用戶還有一種額外的快捷方式為單一命令定義和設(shè)置環(huán)境變量。環(huán)境變量可在命令行中定義和設(shè)置,

34、并只在這一行中生效。例如: export FOO=foo env | grep FOO FOO=foo FOO=bar env | grep FOO FOO=bar env | grep FOO FOO=foo 測(cè)試系統(tǒng)時(shí),環(huán)境變量及其賦值可列表式給出。標(biāo)準(zhǔn)UNIX shell用戶可直接使用標(biāo)準(zhǔn)語(yǔ)法。例如,標(biāo)準(zhǔn)shell用戶可以用(以IBM SP AIX為例): export CC=xlc CPPFLAGS=-DNDEBUG CFLAGS=-O FC=f77 FFLAGS=-O CXX=xlC F90=xlf90 F90FLAGS=-qsuffix=f=f90 在IBM AIX SP環(huán)境下,編

35、譯NetCDF所需要的一些相應(yīng)的系統(tǒng)環(huán)境變量有: CC=/bin/xlc CPPFLAGS=-DNDEBUG CFLAGS=-O FC=/bin/xlf FFLAGS=-O F90=/bin/xlf90 F90FLAGS=-qsuffix=f=f90 # Note: no -O option CXX=/bin/xlC CXXFLAGS=-O因?yàn)橛行C(jī)器的AIX系統(tǒng)在用F90編譯器編譯時(shí),選用“-O”優(yōu)化編譯會(huì)產(chǎn)生錯(cuò)誤信息為“1501-229 Compilation ended due to lack of space”的錯(cuò)誤。通常是由于編譯時(shí)優(yōu)化消耗內(nèi)存太多,以至于超出計(jì)算機(jī)內(nèi)存。解決方法之一

36、是用ulimit命令將數(shù)據(jù)段(data)、堆棧段(stack)以及內(nèi)存段(memory)設(shè)置成足夠大或者設(shè)置成無(wú)限制(unlimited)。另一種解決方法就是,在設(shè)置F90編譯選項(xiàng)時(shí),不要用“-O”優(yōu)化選項(xiàng)。另外,如果要用64位模式編譯程序,則除了在C和Fortran編譯選項(xiàng)中添加“-q64”外,還要設(shè)置以下環(huán)境變量: ARFLAGS=-X 64 cru NMFLAGS=-X 642.4.4 編譯和安裝NetCDF 要生成編譯netCDF所需的Makefile文件,必須先運(yùn)行配置腳本程序(configure)。 它存放在netCDF目錄的src子目錄中。 首先,選擇安裝的目錄。用這個(gè)目錄作為配

37、置腳本程序參數(shù)“prefix”的指定值。程序默認(rèn)的安裝目錄(prefix參數(shù)值)是“. .”,即將程序包安裝在 . . /bin,. ./lib和. ./man,這些目錄是相對(duì)于netCDF的src/目錄。 執(zhí)行設(shè)置腳本格式如下: ./configure -prefix=目錄名這里“- - prefix = . . .”是可選的;如果省略的話,程序?qū)⒛J(rèn)地將當(dāng)前目錄的父目錄“. . ”設(shè)為安裝目錄。 運(yùn)行配置腳本程序時(shí),程序會(huì)檢測(cè)系統(tǒng)的與編譯netCDF程序包相關(guān)的屬性設(shè)置。檢測(cè)結(jié)果將會(huì)顯示在標(biāo)準(zhǔn)輸出設(shè)備上(如顯示器)。 配置腳本程序還會(huì)創(chuàng)建一個(gè)記錄文件“config.log”。它包含了配置腳

38、本程序檢測(cè)系統(tǒng)屬性設(shè)置時(shí)發(fā)現(xiàn)的錯(cuò)誤信息。由于系統(tǒng)檢測(cè)可能會(huì)導(dǎo)致一些錯(cuò)誤,因此在記錄文件中可能會(huì)記錄一些錯(cuò)誤信息。這些錯(cuò)誤信息未必表明是有問(wèn)題(嚴(yán)重的錯(cuò)誤標(biāo)志會(huì)導(dǎo)致下一步編譯“make”程序失?。?。不過(guò),記錄文件中的編譯器不能啟動(dòng)的錯(cuò)誤信息例外,這是一個(gè)編譯環(huán)境的嚴(yán)重錯(cuò)誤,必須改正,否則不會(huì)產(chǎn)生相應(yīng)編譯環(huán)境的程序接口。 運(yùn)行編譯命令“make”。此命令將創(chuàng)建一個(gè)或多個(gè)netCDF庫(kù)。它包括基本的netCDF庫(kù)“l(fā)ibsrc/libnetcdf.a”。如果系統(tǒng)有Fortran 77或者Fortran 90編譯器,那么Fortran接口程序會(huì)包含在此庫(kù)中。如果系統(tǒng)有C編譯器,那么C接口程序會(huì)創(chuàng)建在庫(kù)

39、“cxx/libnetcdf_c+.a”中。命令創(chuàng)建的庫(kù)還包括netCDF應(yīng)用程序庫(kù)ncgen和ncdump。 如果第一步的編譯通過(guò),則可以用命令“make test (3.5.x或更早版本)”或者“make check” (3.6.2版本) 來(lái)檢驗(yàn)netCDF庫(kù)和可執(zhí)行程序創(chuàng)建得正確與否。系統(tǒng)會(huì)建立和運(yùn)行各種測(cè)試C、Fortran和C的程序,以及應(yīng)用程序“ncdump”和“ncgen”。以“*”開(kāi)頭的輸出顯示行中,列出了測(cè)試成功與否的信息。任何錯(cuò)誤都會(huì)明確列出,并終止程序的運(yùn)行。測(cè)試過(guò)程中的編譯器和連接器警告會(huì)被忽略掉。 如果編譯和測(cè)試都正確,這時(shí)就可以安裝程序庫(kù)和可執(zhí)行程序了。安裝時(shí),運(yùn)行

40、命令“make install”即可,它將連接系統(tǒng)的函數(shù)庫(kù)和應(yīng)用程序,安裝到指定的目錄中。在進(jìn)行編譯安裝的時(shí)候,可以編寫(xiě)一個(gè)shell腳本程序。這樣,在安裝的時(shí)候,只需執(zhí)行這個(gè)批處理命令就行。這里給出一個(gè)在AIX系統(tǒng)上編譯安裝的例子,比如取名為install.nc:make distclean export CC=/usr/bin/xlc export CPPFLAGS=-DNDEBUG export CFLAGS=-O export FC=/usr/bin/xlf90 export FFLAGS=-O3 -qfixed export F90FLAGS=-O3 -qfree -qsuffix=

41、f=f90 export F90=/usr/bin/xlf90 export CXX=/usr/bin/xlC export CXXFLAGS=-O configure -prefix=/u/wrf_xp/netcdfmake make test ( 或者make check)make install2.4.5 問(wèn)題處理 (1) 詳細(xì)閱讀本安裝文檔。 (2) 轉(zhuǎn)到netCDF的頂級(jí)目錄下的源程序目錄SRC。 (3) 執(zhí)行命令“make distclean”,即使執(zhí)行失敗也不會(huì)造成什么錯(cuò)誤。 (4) 如果存在“config.cache”文件,則將它刪除。 (5) 按上面描述的方法設(shè)置相應(yīng)的環(huán)境變

42、量。 (6) 重新執(zhí)行配置腳本程序。 (7) 執(zhí)行命令“make”。 (8) 執(zhí)行命令“make test” 或者 “make check”。 (9) 執(zhí)行命令“make install”。 值得注意的是,設(shè)置和編譯系統(tǒng)應(yīng)該具有較新的“sh”shell、“make”程序以及C和Fortran編譯器。在曙光機(jī)器上,就存在Fortran90編譯器版本比較陳舊,不能編譯后綴名為“.F90”的程序,導(dǎo)致運(yùn)行配置腳本時(shí),無(wú)法通過(guò)對(duì)Fortran90編譯器的檢測(cè),故不能生成Fortran90程序接口。2.5 WRF模式的安裝2.5.1 安裝環(huán)境編譯時(shí),要求系統(tǒng)裝有Perl(5.003以上的版本)和make

43、(3.75以上的版本)。由于WRF SI模式的程序采用了C,F(xiàn)ortran77和Fortran90編寫(xiě),所以也要求操作平臺(tái)具有FORTRAN77,F(xiàn)ORTRAN90和標(biāo)準(zhǔn)C(或C)編譯器。SI的數(shù)據(jù)格式采用了NetCDF的格式,要求系統(tǒng)安裝了NetCDF函數(shù)庫(kù)。 因此,在編譯WRF代碼之前,應(yīng)檢查一下系統(tǒng)有沒(méi)有安裝netCDF。WRF輸入/輸出(I/O)模塊需要使用netCDF的數(shù)據(jù)格式。如果netCDF安裝的目錄不是常用的系統(tǒng)目錄(如 /usr/local/),則必須指明netCDF函數(shù)庫(kù)以及引用(include/)函數(shù)庫(kù)的路徑。如果未安裝,則必須先下載安裝netCDF。2.5.2 安裝程序

44、的獲取 WRF模式的安裝程序是一個(gè)壓縮程序包,可從WRF模式網(wǎng)站獲得()。1.2版的WRF壓縮程序包名稱為WRFV1.TAR.gz;2.1.2版的WRF壓縮程序包名稱為WRFV2.1.2.TAR.gz;2.2版本的WRF壓縮程序包名稱為WRFV2.2.TAR.gz。 壓縮程序包包括兩部分,一部分是將輸入數(shù)據(jù)生成WRF模式的輸入場(chǎng)(real.exe或ideal.exe);另一部分則是模式的積分計(jì)算(wrf.exe)。2.5.3 編譯環(huán)境配置WRF模式的頂級(jí)目錄中包含配置腳本文件“configure”(使用標(biāo)準(zhǔn)shell:sh)和一個(gè)編譯腳本“comp

45、ile”(使用Csh類shell:csh)。配置腳本在配置系統(tǒng)的時(shí)候,也用到在arch目錄中的Perl腳本(arch/Configure.pl),還用到了UNIX系統(tǒng)的應(yīng)用程序“make”。在arch子目錄中包含了大量不同結(jié)構(gòu)和設(shè)置選項(xiàng)的設(shè)置模板文件“configure.defaults”。這些配置模板在配置腳本運(yùn)行時(shí)用于在不同的運(yùn)行平臺(tái)上創(chuàng)建“configure.wrf”文件。在IBM AIX SP機(jī)器上,會(huì)啟用設(shè)置模板文件中的關(guān)于AIX的十一個(gè)配置模塊。這十一個(gè)配置模塊分別對(duì)應(yīng)著不可嵌套串行編譯、不可嵌套OpenMP并行編譯、可嵌套帶RSL_LITE庫(kù)MPI方式并行編譯、可嵌套帶RSL庫(kù)M

46、PI方式并行編譯、帶RSL和HDF5庫(kù)可嵌套MPI方式并行編譯、帶RSL庫(kù)可嵌套MPI和OpenMP方式并存的并行編譯、帶RSL和MCEL庫(kù)MPI并行編譯、帶RSL庫(kù)與ESMF耦合不可嵌套MPI方式編譯、不用MPI但帶RSL庫(kù)可嵌套串行編譯以及帶RSL庫(kù)可嵌套OpenMP方式并行編譯。每一個(gè)模塊都設(shè)置了對(duì)應(yīng)的WRF模式的編譯器配置、編譯選項(xiàng)、編譯規(guī)則等。進(jìn)行WRF的編譯環(huán)境配置時(shí),進(jìn)入WRF模式的頂級(jí)目錄中,鍵入“./configure”。假設(shè)設(shè)置腳本可以找到相應(yīng)版本(5.004或更高版本)的Perl程序,那么設(shè)置文件“arch/configure.defaults”中的模板將會(huì)被掃描檢測(cè),提

47、取相應(yīng)的配置模塊信息,并且會(huì)列出一個(gè)選擇菜單共用戶選擇:$ configurechecking for perl5. nochecking for perl. found /usr/bin/perl (perl)Will use NETCDF in dir: /usr/local/netcdf-Please select from among the following supported platforms. 1. AIX (single-threaded, no nesting) 2. AIX SM (OpenMP, no nesting) 3. AIX DM-Parallel (RSL_

48、LITE, IBM-MPI, Allows nesting) 4. AIX DM-Parallel (RSL, IBM-MPI, allows nesting) 5. AIX DM-Parallel (RSL, IBM-MPI, allows nesting )(PARALLEL HDF5) 6. AIX DM-Parallel (RSL_LITE, IBM-MPI, Allows nesting )(PARALLEL HDF5) 7. AIX DM-Parallel/SM-Parallel (not recommended) (RSL, IBM-MPI, OpenMP, allows nes

49、ting) 8. AIX DM-Parallel (RSL, IBM-MPI, MCEL) May 2003, EXPERIMENTAL 9. AIX DM-Parallel ESMF (RSL, IBM-MPI, ESMF coupling, no nesting) EXPERIMENTAL 10. AIX (single-threaded, nesting using RSL without MPI) 11. AIX (OpenMP, nesting using RSL without MPI)Enter selection 1-11 :用戶輸入一個(gè)111的整數(shù),然后按回車。如果選擇有效,

50、則所作的選擇和提示符會(huì)顯示出來(lái)。用戶選擇結(jié)束后,正常運(yùn)行腳本程序時(shí),會(huì)在頂級(jí)目錄中創(chuàng)建文件“configure.wrf”,并退出程序,回到操作系統(tǒng)。如果在選擇時(shí)要退出設(shè)置腳本程序,用shell的中斷命令即可(如按“Control-C”)。配置腳本“configure”會(huì)試圖在編譯主機(jī)上查找netCDF函數(shù)庫(kù)以及引用文件。也可通過(guò)設(shè)置環(huán)境變量NETCDF來(lái)強(qiáng)制定義到系統(tǒng)中安裝netCDF的正確目錄。如果沒(méi)有設(shè)置環(huán)境變量,而設(shè)置腳本也沒(méi)有找到netCDF,那么程序?qū)?huì)要求用戶輸入一個(gè)路徑。如果所有這些嘗試都失敗的話,程序?qū)L試以沒(méi)有netCDF的狀態(tài)來(lái)進(jìn)行編譯;不過(guò),由于當(dāng)前版本的程序只能用net

51、CDF的輸出/輸入接口,所以必然會(huì)造成程序的運(yùn)行失敗。模式目錄中還提供了用于卸載的清除程序clean(Csh類shell腳本)。安裝失敗時(shí),可以使用這一程序來(lái)恢復(fù)到最初的狀態(tài)。當(dāng)未指定任何參數(shù)時(shí),清除程序“clean”將刪除src目錄中的目標(biāo)文件(*.o)以及編譯時(shí)產(chǎn)生的一些中間文件,文件“configure.wrf”會(huì)保留。當(dāng)指定“-a”為“clean”的參數(shù)時(shí),則會(huì)連同文件“configure”以及一些在“external”目錄中的庫(kù)函數(shù)一起刪除。所以,用帶參數(shù)“-a”的清除命令,則會(huì)將模式恢復(fù)到模式的安裝最原始的狀態(tài),而文件“configure.wrf”中的一些修改信息都會(huì)丟失。(注意,

52、清除程序并不會(huì)將run或test子目錄中的數(shù)據(jù)文件或可執(zhí)行文件刪除掉)。在“configure.wrf”創(chuàng)建后,還可以根據(jù)需要來(lái)修改編譯選項(xiàng)。值得注意的是,WRF模式可實(shí)時(shí)配置計(jì)算范圍大小,處理器數(shù)量,以及其他選項(xiàng),并且僅需要在運(yùn)行程序之前通過(guò)修改文件“namelist.input”即可。而針對(duì)這些選項(xiàng)設(shè)置,并沒(méi)有修改文件“configure.wrf”的必要。只是在編譯器、編譯選項(xiàng)或者編譯規(guī)則需要變動(dòng)時(shí),才有必要對(duì)“configure.wrf”文件進(jìn)行修改。在WRF模式調(diào)試運(yùn)行過(guò)程中,發(fā)現(xiàn)由于WRF模式采用動(dòng)態(tài)分配數(shù)組的方式來(lái)分配模式中的數(shù)組單元,因此對(duì)計(jì)算機(jī)的邏輯內(nèi)存、堆棧段內(nèi)存以及數(shù)據(jù)段內(nèi)

53、存開(kāi)銷較大。在IBM SP 上編譯時(shí),默認(rèn)的內(nèi)存設(shè)置可能滿足不了模式計(jì)算時(shí)的內(nèi)存需求。而“configure.wrf”中沒(méi)有設(shè)置內(nèi)存編譯選項(xiàng)(-bmaxdata, -bmaxstack 和-qmaxmem),這就需要用戶對(duì)其進(jìn)行修改。通常將他們的限制值設(shè)置的稍微大些比較好。例如,可以將“configure.wrf”的原始設(shè)置:FCBASEOPTS = -qarch=auto -qfree=f90 -qzerosize -qnosave -qmaxmem=-1 -qspill=20000 $(FCDEBUG) $(OMP)LDFLAGS = wrfio_nf : ( cd ./external/io_netcdf ; make NETCDFPATH=/u/denglt/netcdf FC=$(SFC) $(FCDEBUG) -qarch=auto -qfree=f90 -qzerosize -qnosave ; /bin/cp wrf_io_flags.h wrf_status_codes.h ././inc )wrfio_int : (

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論