この 関数のファミリーは変数のIDを与えるとそのNetCDF変数に関する情報を返します。 変数にに関する情報にはその名前・型・次元の数・変数の形を表す変数IDのリスト・変数に割り当てられている変数属性の数等です。
関数 nc_inq_var はある変数のIDを与えるとNetCDF関数に関する情報をすべて返します。その他の関数はある変数に関する一つの情報を返します。
このほかの関数とは nc_inq_varname , nc_inq_vartype , nc_inq_varndims , nc_inq_vardimid , nc_inq_varnatts . 等です。
int nc_inq_var (int ncid, int varid, char *name, nc_type *xtypep,
int *ndimsp, int dimids[], int *nattsp);
int nc_inq_varname (int ncid, int varid, char *name);
int nc_inq_vartype (int ncid, int varid, nc_type *xtypep);
int nc_inq_varndims (int ncid, int varid, int *ndimsp);
int nc_inq_vardimid (int ncid, int varid, int dimids[]);
int nc_inq_varnatts (int ncid, int varid, int *nattsp);
これは nc_inq_var を使用してNetCDFファイル foo.nc の中の rh という変数に関しての情報を探す例です。
#include <netcdf.h>
...
int status /* エラーステータス */
int ncid; /* NetCDF ID */
int rh_id; /* 変数 ID */
nc_type rh_type; /* 変数型 */
int rh_ndims; /* 次元の数 */
int rh_dims[NC_MAX_VAR_DIMS]; /* 変数の形 */
int rh_natts /* 属性の数 */
...
status = nc_open ("foo.nc", NC_NOWRITE, &ncid);
if (status != NC_NOERR) handle_error(status);
...
status = nc_inq_varid (ncid, "rh", &rh_id);
if (status != NC_NOERR) handle_error(status);
/* we don't need name, since we already know it */
status = nc_inq_var (ncid, rh_id, 0, &rh_type, &rh_ndims, rh_dims, &rh_natts);
if (status != NC_NOERR) handle_error(status);