NetCDF Tips

NetCDFライブラリ のインストール

NetCDFライブラリを,環境:Vine 3.1 & Intel fortran 8.1にインストールした例を紹介します.

1. NetCDFのホームページ http://www.unidata.ucar.edu/software/netcdf/で,netcdf.tar.Z (ver. 3.6.0)をダウンロードする.
2. 展開する.(以下の作業はrootで行った)
 # tar -xzvf netcdf.tar.Z できたディレクトリに移動する.
 # cd netcdf-3.6.0-p1/src/
3. 環境変数の設定をする.ここではhttp://www.unidata.ucar.edu/software/netcdf/docs/other-builds.htmlの「Linux x86 with Intel ifort 8.1 fortran compiler」 を参考にした.
 # export FC=ifort
 # export F90=ifort
 # export FFLAGS="-O -mp"
 # export CPPFLAGS="-DNDEBUG -DpgiFortran"
4. configureを実行する./usr/local/netcdf-3.6.0はインストールする場所.
 # ./configure --prefix=/usr/local/netcdf-3.6.0
5. makeでインストールする.
 # make
 # mkdir /usr/local/netcdf-3.6.0
 # make install
6. 再び,環境変数の設定をする./etc/profileに以下を書き込む.
 PATH="$PATH:/usr/local/netcdf-3.6.0/bin/"
 LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/netcdf-3.6.0/lib"
 export PATH LD_LIBRARY_PATH

FortranでのNetCDF のファイル読み込みの初歩

変数情報の取得

NetCDFのファイルを読み込んだ例を紹介します. ここではAvisoのFTPサイト ftp://ftp.cls.fr/pub/oceano/AVISO/SSH/duacs/global/dt/msla/merged/にある, 海表面高度偏差データファイル「hh_msla_oer_merged_h_15627.nc」を読み込みます.

まず,ファイルについての情報を得るために,
 $ ncdump -c hh_msla_oer_merged_h_15627.nc | less
とします.すると出力の初めの内容は以下の通りになっています.

海表面高度偏差を得るのに必要な情報は,赤で囲んだ2箇所の部分にあります.
まず,上の四角で囲んだ部分から,緯度方向のグリッド数(NbLatitudes)が915, 経度方向のグリッド数(NbLongitudes)が1080であることが判ります.
次に,下の四角で囲んだ部分から,データの型が単精度(float)で, 変数名が「Grid_0001」でグリッド数が(1080×915), 欠損値が1.8446744e+19f,正確な変数名は「H」,単位が「cm」 であることが判ります.

最小限のNetCDFライブラリ

Fortranの読み込みプログラム例 netcdf_example.f90 を示します. 重要なことはinclude文によるnetcdf.incの読み込みと,NetCDFライブラリの使い方です.


このプログラム中で使用されているNetCDFライブラリは次の5つです.

このプログラムをコンパイルするには,
 $ ifort netcdf_example.f90 -L/usr/local/netcdf-3.6.0/lib -lnetcdf
とします.指定するディレクトリはインストールした場所により異なります.

リンク

netCDFユーザガイド日本語版 @地球流体電脳倶楽部

研究用ソフトウェア に戻る