Up|<<Prev|Next>>


5.4 NetCDFファイルの生成: nc_create

この関数によって新規のNetCDFファイルが生成されます。これによって返されたNetCDF IDは他のNetCDF関数呼び出しにおいてこのファイルファイルを参照するために使用できます。書き込みアクセス用に開かれ、定義モードになっているNetCDFファイルファイルに、新しい次元・変数・属性などを加えることが出来ます。

生成モードのフラグによって、既存の同一名のファイルを上書きするか、及びファイルへのアクセスが共有されるかなどを指定できます。

 

int nc_create (const char* path, int cmode, int *ncidp);

 

path

新しいNetCDFファイルの名前

cmode

生成モード。零値 (又は NC_CLOBBER )はデフォルト状態を指定します:既存の同一名のファイルは上書き、及び効率のためにアクセスをバッファー・キャッシュする。

それ以外の場合は、生成モードは NC_NOCLOBBER NC_SHARE 、 又は NC_NOCLOBBER|NC_SHARE にあります。 NC_NOCLOBBER フラグを立てることによって 既存のファイルを上書きしないことを表明できます。既に指定されたファイルが存在する場合には、エラー ( NC_EEXIST )が返されます。 NC_SHARE フラグはファイルに書き込む処理とファイルを読み取る処理が一つもしくは複数行なわれている場合に適切です。 これによって、ファイルへのアクセスはバッファーされず、キャッシュも制限されます。バッファー機構は連続アクセスに対して最適化されているので、データを連続的にアクセスしないプログラムにおいては NC_SHARE フラグを設定することによりパフォーマンスの向上が望めます。

ncidp

出力NetCF IDが格納される場所へのポインタ

 

エラーが発生していない場合には、 nc_create NC_NOERR の値を返します。 エラーの原因として下記が挙げられます。

 

この例では、 foo.nc と言う名前のNetCDFファイルを生成します。現行のディレクトリに同一名のファイルが存在しない場合に限り、新しいファイルを生成します。

#include <netcdf.h>
   ... 
int status;
int ncid;
   ... 
status = nc_create("foo.nc", NC_NOCLOBBER, &ncid);
if (status != NC_NOERR) handle_error(status);

Up|<<Prev|Next>>