netCDF, HDF を使う: SFC CNSでの使いかた

netCDFはUCAR (University Corporation for Atmospheric Research)、 HDFはNCSA (National Center for Supercomputing Applications)で それぞれ開発された「自己記述型」データ形式である [別ページ参照]。 それぞれを読み書きするためのプログラムを、 SFC CNSのSunおよびLinux上にインストールした。 netCDFのバージョンは3.6.1-beta3、HDFのバージョンは4.2r1である。

所在は、 /pub/sfc/earthobs/prog/{netcdf,hdf}/{sun,linux}/ の下のbin (実行プログラム), man (マニュアル), include (ユーザープログラムコンパイル時に参照されるヘッダファイル) lib (ユーザープログラムとリンクされるライブラリ) の中である。 (波かっこはその中の両方がそれぞれあることを示す。)

ログインシェルとしてtcshを使っている場合、 次のような形で準備すると、 それぞれのライブラリに属する実行プログラムのコマンドパスおよび manコマンドで見られるマニュアルのパスが設定されるようにしてある。

SunのマシンでnetCDFを使う
source /pub/sfc/earthobs/prog/cshsun/netcdf
LinuxのマシンでnetCDFを使う
source /pub/sfc/earthobs/prog/cshlinux/netcdf
SunのマシンでHDFを使う
source /pub/sfc/earthobs/prog/cshsun/hdf
LinuxのマシンでHDFを使う
source /pub/sfc/earthobs/prog/cshlinux/hdf

tcshの初期設定ファイルに

alias  usesun   'source /pub/sfc/earthobs/prog/cshsun/use $*'
alias  uselinux 'source /pub/sfc/earthobs/prog/cshlinux/use $*'
という定義をすることにより、 usesun netcdfuselinux hdf などの形で上記のsourceコマンドが実行されるようにしておくこともできる。

ログインシェルがbashなどsh系の場合についての設定ファイルは用意して いないが、tcshの場合と同様にPATHその他の環境変数を設定すればよい。

ただし、HDFの実行プログラムにはnetCDFの実行プログラムと同じ名前のものがある (機能もほぼ同じだが、netCDF形式ではなくHDF形式のファイルを読み書きする)。 両方を使うようにpath指定しても、たまたま先に見つかったほうが実行されて しまうことに注意。

netCDFは、C, C++, Fortran 77, Fortran 90に対応しているが、 CNSのSun上では、CとFortran 77 (f2c)だけ(C++対応部分がうまくコンパイルできなかった)、 Linux上では、C、C++、Fortran 77 (g77)に対応する形でインストールした。 HDF (version 4)は、C、Fortran 77 (Sunではf2c、Linuxではg77)に対応している。 なお、いずれもLinux用は教室マシンでコンパイルしたもので、 ccx00での動作は未確認である。

netCDF, HDFそれぞれのGMTドキュメント(英語, PDF形式)のローカルコピーは、 /pub/sfc/earthobs/prog/{netcdf,hdf}/pdf/の下にある。 また、HDFのUsers' Guideの例文は /pub/sfc/earthobs/prog/hdf/example/UG_examples/の下にある。


2005-10-13, 2005-11-13 (暫定)
増田 耕一: 慶応義塾大学 環境情報学部 非常勤講師
[コンピュータ関係の教材目次へ]