関数 nc_put_var1_ type は指定された型 ( type )の単一のデータ値を開かれた状態でデータモードにあるNetCDFファイルの変数に書きこみます。入力はNetCDF ID・変数ID・書き加え又は変更するインデックス・データ値です。必要な場合には、その値は変数の外部データタイプに変換されます。
int nc_put_var1_text (int ncid, int varid, const size_t index[],
const char *tp);
int nc_put_var1_uchar (int ncid, int varid, const size_t index[],
int nc_put_var1_schar (int ncid, int varid, const size_t index[],
int nc_put_var1_short (int ncid, int varid, const size_t index[],
int nc_put_var1_int (int ncid, int varid, const size_t index[],
int nc_put_var1_long (int ncid, int varid, const size_t index[],
int nc_put_var1_float (int ncid, int varid, const size_t index[],
int nc_put_var1_double(int ncid, int varid, const size_t index[],
書きこむデータ値のインデックス。インデックスは零に相対的なものであり、例えば2次元の変数の最初のデータ値のインデックスは(0,0)になります。 インデックスの要素は変数の次元に対応しなければなりません。よって、変数が無制限次元を使用していれば、最初のインデックスはその無制限次元に対応しています。 |
|
書きこまれるデータ値へのポインタ。データ値の型がNetCDF変数型と異なる場合には型の変換が行われます。詳細は タイプ変換にあります。 |
この 例は nc_put_var1_double を使用して、既存のNetCDFファイル foo.nc の変数 rh の (1,2,3) 要素 を0.5にします。簡潔にするためにこの例の中では変数 rh の次元が time , lat , lon であることを既知とします。よって、変数 rh に書きこむ値は2番目の time 値・3番目の lat 値・ 4番目の lon 値に対応します。
#include <netcdf.h>
...
int status; /* エラーステータス */
int ncid; /* NetCDF ID */
int rh_id; /* 変数 ID */
static size_t rh_index[] = {1, 2, 3}; /* 値の格納場所 */
static double rh_val = 0.5; /* 格納される値 */
...
status = nc_open("foo.nc", NC_WRITE, &ncid);
if (status != NC_NOERR) handle_error(status);
...
status = nc_inq_varid (ncid, "rh", &rh_id);
if (status != NC_NOERR) handle_error(status);
...
status = nc_put_var1_double(ncid, rh_id, rh_index, &rh_val);
if (status != NC_NOERR) handle_error(status);