Cインターフェースの変更のまとめ
NetCDF-3版ではNetCDFライブラリが完全に書き直されています。このバージョンは以前のものより2倍は早くなっています。NetCDFファイルのフォーマットはそのままなので、3版で書かれたファイルは2版で読むことができ、また、逆も可能です。
ライブラリの中心部は現在、ANSI Cで書かれています。例えば、すべてを通じてプロトタイプ型が使用されており、更に適当な個所ではconst修飾子が使用されています。このバージョンをコンパイルするにはANSI Cコンパイラが必要です。
ライブラリを書き直すことによって、進歩したCやFORTRANのインターフェースを利用する機会が得られ、かなりの恩恵がありました。
・ 一般的なvoid*ポインタを使用する必要性が無くなることによる型の安全性。
・ 言語非依存型である外部NetCDF型(NC_BYTE, …, NC_DOUBLE)と言語依存型である内部データ型(char, …, double)との間の不適切なカップリングを排除することによる自動型変換。
・ 圧縮データ及びマルチスレッドのサポートを問題なく加えるための障害を取り除くことによる、将来の改正に対するサポート
・ 各関数の返し値の呼び出しプログラムにエラーステータスを一律に伝達することによるスタンダードなエラー動作の確立
2版のCインターフェースを使用しているプログラムは書き直す必要がありません。なぜならば、NetCDF-3ライブラリにはかつての関数・グローバル変数・動作をすべてサポートする後方互換性インターフェースが含まれているからです。この新しいインターフェースの恩恵がNetCDFのアプリケーション中でそれらを使用するきっかけになることを願います。NetCDF-2の呼び出しを一つ一つ対応するNetCDF-3の呼び出しに置き換えていくことで、旧アプリケーションを新しいインターフェースに徐々に変換していくことは可能です。アプリケーション中でNetCDF-3の呼び出しのみが使用されていることを確認するために、プリプロセッサマクロ(NO_NetCDF_2)が用意されています。
NetCDFの実行の変更は、ほとんどすべてのプラットフォーム上での携帯性、保全性、及びパフォーマンスの向上に繋がりました。I/Oと型層を完全に切り離すことによりプラットフォーム固有の最適化が簡単になりました。新しいライブラリは販売元が提供しているXDRライブラリを使用していないので、NetCDFを使用するプログラム同士をリンクすることが簡易になり、ほとんどの場合においてデータアクセスのスピードが速くなっています。
Quadralay Corporation http://www.webworks.com Voice: (512) 719-3399 Fax: (512) 719-3606 sales@webworks.com |