WRF安装记录
WRF安裝
虛擬機 Ubuntu 22.04.1 LTS
aptitude,類似apt-get,但功能更強大
sudo apt-get install aptitudeWRF基礎依賴軟件及庫安裝(apt-get一鍵安裝)
安裝編譯器 ( #編譯c,c++,fottran語言統一使用一套編譯器,使用gun系列,對應gcc,g++,gfortran,使用intel系列,對應icc,i++,ifort,或者使用pgi系列對應的。編譯wrf和netcdf等要使用同一套系列,否則容易出錯,此次使用gun系列)
sudo apt-get install gcc g++ gfortransudo apt-get install make安裝WPS需要的庫libpng,zlib,jasper
sudo apt-get install libpng12*sudo apt-get install zlib*sudo apt-get install libjasper-dev安裝libjasper-dev報錯
解決方法:添加源
缺少公鑰報錯:
打開終端,下載公鑰:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5PS:后面那個40976EAF437D05B5換成缺少的密鑰,是什么就換成什么
安裝用于并行的mpich
sudo apt-get install mpich安裝用于圖形顯示的
sudo aptitude install xorg-dev安裝另外的shell語言
sudo apt-get install cshsudo apt-get install ksh安裝m4,暫時不知道用于啥,還沒具體查
sudo apt-get install m4HDF5與NECTCDF(手動編譯安裝)
前期準備,可以先設置HDF5和NETCDF的環境變量
例如把hdf5與netcdf安裝在/home/zzy/app這個目錄
在這兩個目錄建立hdf5和netcdf文件夾
設置環境變量
gedit ~/.bashrc在文件中添加這些內容
export APP_DIR=$HOME/app #app這個目錄用的頻繁,給設置一個環境變量 export NETCDF=$APP_DIR/netcdf #設置netcdf的環境變量 export HDF5=$APP_DIR/hdf5 export PATH=$PATH:$NETCDF/bin:$HDF5/bin #在PATH后面加上netcdf和hdf5的bin路徑 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$NETCDF/lib:$HDF5/lib #在 LD_LIBRARY_PATH后面加上netcdf和hdf5的lib路徑(PATH和LD_LIBRARY_PATH都是系統有的環境變量,新安裝軟件,在他們后面加上對應的bin和lib路徑就可)
修改完后,保存退出
執行 .bashrc腳本,使剛才設置的環境變量生效
HDF5下載:https://support.hdfgroup.org/ftp/HDF5/releases/
NETCDF下載:https://www.unidata.ucar.edu/downloads/netcdf/
HDF5
./configure --prefix=$HDF5 CC=gcc FC=gfortran CXX=g++ --enable-fortran --enable-fortran2003 --enable-cxx make #(或者make -j 4 并行編譯,4線程,線程數可根據自己的電腦選擇) make install注解:–prefix=$HDF5, $HDF5是安裝hdf5的路徑,換成自己的
NETCDF
NetCDF高版本的C\C++\Fortran部分需要分開編譯
先裝C版本
再裝Fortran版本
./configure --prefix=$NETCDF CC=gcc FC=gfortran F77=gfortran CXX=g++ CPPFLAGS="-I$NETCDF/include" LIBS="-L$NETCDF/lib" make #(或者make -j 4 # 并行編譯,4線程,線程數可根據自己的電腦選擇) make check (可忽略) make install注解:$NETCDF是netcdf的路徑,換成自己的
WRF與WPS
下載WRF和WPS,解壓后,WRF和WPS一定要在同一個父目錄
也可以用git clone(需要先安裝git)
git clone --recurse-submodules https://github.com/wrf-model/WRF git clone https://github.com/wrf-model/WPSWRF
定位到WRF文件夾,終端中運行
./configure根據使用的配置,即GNU編譯器(gfortran/gcc)+ dmpar(mpich)選擇33選項(34編譯不成功,還不知道原因)。
serial 表示串行計算;
smpar 表示內存共享并行計算(shared memory option),即使用openMP,大部分多核電腦都支持這項功能;
dmpar 表示分布式并行計算(distributed memory option),即使用MPI 進行并行計算,主要用在計算集群,單個電腦就沒必要用了;
dm+sm 表示同時使用openMP與MPI兩種并行方式.
嵌套方式:選擇1,即基礎嵌套即可。???????
若出現錯誤:
因為ubuntu默認的sh是連接到dash的,又因為dash跟bash的不兼容所以出錯了,執行時可以把sh換成 ’ bash 文件名.sh ’ 來執行,成功。
修改sh默認連接到bash的一種方法:
選擇no 即可!
export J="-j 4" #設置并行編譯的環境變量J ,4是核數,根據機器選(字面上設置的是核數,實際是線程) ./compile em_real >& compile_wrf.log編譯類型有以下幾種
WRF-Chem(WRF大氣化學模型)
em_real (3D真實情況)
em_quarter_ss (3D理想的情況下)
em_b_wave (3D理想的情況下)
em_les (3D理想的情況下)
em_heldsuarez (3D理想的情況下)
em_tropical_cyclone (3D理想的情況下)
em_hill2d_x (2D理想的情況下)
em_squall2d_x (2D理想的情況下)
em_squall2d_y ( 2d理想情況)
em_grav2d_x (2d理想情況)
em_seabreeze2d_x (2d理想情況)
em_scm_xy (1d理想情況)
真實情況編譯完成后,在main目錄下會出現ndown.exe,real.exe, tc.exe, wrf.exe這4個可執行程序;理想情況編譯后會生成wrf.exe,ideal.exe 這2個可執行程序。
ls main/*exe # 出現 ndown.exe real.exe tc.exe wrf.exe即成功WPS
先編譯WRF,再編譯WPS
WPS要和WRF在同一個父目錄下
定位到WPS目錄,終端執行:
選擇1
./compile>& complie_wps.log ls *exe # 出現geogrid.exe metgrid.exe ungrib.exe即成功出現問題:編譯后只生成了ungrib.exe。
解決方法:
修改./configure生成的configure.wps文件:
將“-lgomp”添加到configure.wps文件WRF_LIB變量中(只需將其附加到 -lnetcdf 之后)
重新執行
生成geogrid.exe metgrid.exe ungrib.exe,完成!
總結
- 上一篇: 常用SQL_数据库查询总结1
- 下一篇: matlab 读取脉冲数,已知一段波形,