NCAR Graphics (NCL)安裝筆記:
以下筆記是於Red Hat Enterprise Linux 4底下NCAR Graphics (NCL) 6.0.0的安裝紀錄(機器上已經安裝了ZLIB、JPEG、cairo與szip、HDF4、NETCDF),當初升級的原因是因為原本機器上的版本沒裝好,導致某些功能不能用。安裝時為了可用性所以一併安裝了其他軟體,如HDF5、HDF-EOS、udunits等。安裝步驟大致是依照官方網站上的文件進行的。
官方網站建議下載已經編譯好(pre-compiled)的版本來安裝,不過我是用source code來裝的,步驟如下:
UDUNITS-2
- 下載UDUNITS-2並解壓縮,這個用來做物理單位轉換的套件是選擇性安裝的,若你只要使用NCAR Graphics的功能就不用裝。
- 執行
[root@HPC ~] export PERL=""
[root@HPC ~] ./configure --prefix=/opt/app/udunits2 |
export PERL=""根據NCL的安裝說明,這是為了讓它不要安裝NCL所用不到的perl介面。
- 最後一樣下make all; make check; make install來安裝
參考資料:
NCAR NCL安裝說明 - UDUNITS2
GRIB 2
- 下載GRIB2後解壓縮,如果只需要NCAR Graphics的話這步也可以略過
- 修改makefile,將jasper的位置寫入後即可下make all進行編譯
- 最後會產生會產生grib2.h,複製到/usr/include就好,
而libgrib2c.a移到/usr/lib/下
參考資料:
NCAR NCL安裝說明 - GRIB2
HDF 5
- 下載HDF5並解壓縮,這套件也是選擇性的,如果想讓NCL支援HDF5-EOS的檔案,那就要先裝這個
- 執行
[root@HPC ~] CFLAGS=-m64 ./configure --prefix=/opt/app/hdf5 --enable-fortran --enable-cxx \
--with-szlib=/opt/app/szip --with-zlib=/usr/include,/usr/lib64 --disable-shared |
這裡CFLAGS的m64選項是要讓它啟動對64-bit的支援
--enable-fortran以及--enable-cxx分別是建立fortran以及C++對HDF函式的interface
最後指定szip與zlib的位置,並以--disable-shared要求它建立靜態函式庫即可
- 設定完後就可以開始安裝了
[root@HPC ~] make >& make.output-HDF5187
[root@HPC ~] make check >& make.check-HDF5187
[root@HPC ~] make install
[root@HPC ~] make check-install |
- 安裝完後請將以下設定寫入.bashrc或/etc/profile等環境設定檔中
export HDF5ROOT=/opt/app/hdf5
export HDF5DIR=$HDF5ROOT
export HDF5INC=$HDF5ROOT/include
export HDF5LIB=$HDF5ROOT/lib |
參考資料:HDF官方安裝說明
HDF-EOS2 v2.15
- 下載HDF EOS2以及Test Driver(make check時測試用),這套件也是不需要NCL的話可以不用裝
- 執行
[root@HPC ~] CC='/opt/app/hdf4/bin/h4cc -Df2cFortran' ./configure --prefix=/opt/app/hdfeos2 \
--with-szlib=/opt/app/szip |
因為HDF-EOS2需要HDF4,所以這邊C的編輯器選用HDF4底下的C Compiler,而-Df2cFortran這個選項是為了讓Fortran程式能夠跟HDF-EOS2函式庫一起編譯 - 進行安裝:make;make check;make install
- 接著將include資料夾中的.h檔全部複製到安裝路徑下的include資料夾(若不存在就新增一個吧)
- 最後將export LD_LIBRARY_PATH=/opt/app/hdfeos2/lib:$LD_LIBRARY_PATH寫入環境設定檔即可,如果不這樣做的話,就是要將libhdfeos.a複製到系統的lib資料夾底下
參考資料:HDFEOS2官方安裝說明
NCAR NCL官方安裝說明 - HDFEOS2
HDF-EOS5
- 下載HDF-EOS5以及TestDriver並解壓縮,這套件跟HDF-EOS2一樣不是必須的,若要灌這個就要先裝HDF5
- 執行
[root@HPC ~] ./configure --prefix=/opt/app/hdfeos5 --with-szlib=/opt/app/szip \
CC='/opt/app/hdf5/bin/h5cc -Df2cFortran' CFLAGS=-DH5_USE_16_API |
若HDF5的版本高於1.8的話,就要加
CFLAGS=-DH5_USE_16_API 以避免相容性問題(詳見官方說明)
其他就跟HDFEOS2大同小異囉
- 安裝:make; make check; make install
- 安裝完後將HE5_GctpFunc.h與HE5_HdfEosDef.h複製到安裝位置的include資料夾下
- 最後把export LD_LIBRARY_PATH=/opt/app/hdfeos5/lib:$LD_LIBRARY_PATH 寫入環境設定檔即可
參考資料:HDF-EOS5官方安裝說明
NCAR NCL官方安裝說明 - HDFEOS5
Triangle
- 下載Triangle,這個套件也不是必需的,如果想用有限元素法裡常見的三角形網格就要裝這個
- 不用安裝,只要將裡面的triangle.c以及triangle.h準備好,稍後複製到NCL的ni/src/lib/hlu資料夾即可
參考資料:NCAR NCL官方安裝說明 - Triangle
NCAR NCL 6.0.0
- 下載NCL 6.0.0並解壓縮
- 其實NCL/NCARG的安裝很簡單,只要跑../Configure -v即可,它會問你要灌什麼,並跟你說有缺什麼
- 安裝:先用make Info做設定的最後檢查,都正確就make Everything >& make.output-NCL600
如果遇上Can't find include file hdf/hdf.h,那麼請先確定HDF4的安裝正確,若是正確的,請於Configure在詢問local search include directory時加入HDF4的include位置,用空白分隔即可。
懶得每次都打的話,請到config/下修改對應的系統樣本檔(執行Configure後,下 grep SYSTEM_INCLUDE Makefile看看跳出什麼字樣,就知道是對應哪一個樣本檔)
遇上Can't find include file HdfEosDef.h或是HE5_HdfEosDef.h那很有可能是因為你沒有把這些檔案複製到對應的include資料夾裡
到此安裝就完成了!
參考資料:NCAR NCL官方安裝說明
<-Memo