TOC PREV NEXT INDEX

Put your logo here!


6.1 次元を生成する: nc_def_dim


関数nc_def_dim 等は定義モード中であれば、新しい次元をオープンされたNetCDFファイルに加えることができます。NetCDFのID、次元名、次元長を与えると、(引数として)次元IDを返します。最大で一つの無制限次元(記録次元)がNetCDFファイルごとに定義できます。

用法

int nc_def_dim (int ncid, const char *name, size_t len, int *dimidp);
ncid 以前のnc_open または nc_create呼び出しで返されたNetCDF ID
name 次元名。アルファベットの文字で始まり、次にアンダースコア(‘_’)を含む0個以上の英数字が続きます。大文字小文字は区別されます。
len 次元長。この次元をインデックスとして使用する変数に対して、この次元が持ちうる値の数。正の整数(size_t型)もしくは事前に定義された定数 NC_UNLIMITED
dimidp 返された次元IDの位置を示すポインタ

エラー

エラーが発生していなければ、nc_def_dimNC_NOERR の値を返します。それ以外の場合には返されたステータスがエラーの発生を示します。エラーの原因としては:

・ NetCDFファイルが定義モードにない。
・ 指定された次元名は別の既存の次元名である。
・ 指定された次元長が零より大きくない。
・ 指定された次元長は無制限であるが、そのNetCDFファイル内に既に無制限の次元長を持つ次元が定義されている。
・ 指定されたNetCDF IDがオープンされているNetCDFファイルを参照しない。

これはnc_def_dim 機能を使用して次元名lat・次元長18、そして次元名 rec・次元長 無制限の二つの次元を持つ新しい foo.ncというNetCDFファイルを生成する例です:

#include <netcdf.h>

int status, ncid, latid, recid;

status = nc_create("foo.nc", NC_NOCLOBBER, &ncid);
if (status != NC_NOERR) handle_error(status);

status = nc_def_dim(ncid, "lat", 18L, &latid);
if (status != NC_NOERR) handle_error(status);
status = nc_def_dim(ncid, "rec", NC_UNLIMITED, &recid);
if (status != NC_NOERR) handle_error(status);



Quadralay Corporation
http://www.webworks.com
Voice: (512) 719-3399
Fax: (512) 719-3606
sales@webworks.com
TOC PREV NEXT INDEX