関数 NF_PUT_VARS_ type のファミリーに属するものは各々部分サンプルされた(ストライドされた)配列断面を開かれたNetCDFファイルの変数に書き込みます。部分サンプルされた配列断面は隅、カウントのベクトル、そして ストライドベクトルを与えることによって指定します。NetCDFファイルはデータモードになっていなければなりません。
INTEGER FUNCTION NF_PUT_VARS_TEXT (INTEGER NCID, INTEGER VARID,
INTEGER START(*), INTEGER COUNT(*),
INTEGER STRIDE(*),CHARACTER*(*) TEXT)
INTEGER FUNCTION NF_PUT_VARS_INT1 (INTEGER NCID, INTEGER VARID,
INTEGER START(*), INTEGER COUNT(*),
INTEGER STRIDE(*),INTEGER*1 I1VALS(*))
INTEGER FUNCTION NF_PUT_VARS_INT2 (INTEGER NCID, INTEGER VARID,
INTEGER START(*), INTEGER COUNT(*),
INTEGER STRIDE(*),INTEGER*2 I2VALS(*))
INTEGER FUNCTION NF_PUT_VARS_INT (INTEGER NCID, INTEGER VARID,
INTEGER START(*), INTEGER COUNT(*),
INTEGER STRIDE(*), INTEGER IVALS(*))
INTEGER FUNCTION NF_PUT_VARS_REAL (INTEGER NCID, INTEGER VARID,
INTEGER START(*), INTEGER COUNT(*),
INTEGER STRIDE(*), REAL RVALS(*))
INTEGER FUNCTION NF_PUT_VARS_DOUBLE(INTEGER NCID, INTEGER VARID,
INTEGER START(*), INTEGER COUNT(*),
INTEGER STRIDE(*), DOUBLE DVALS(*))
最初にデータ値が書きこまれる変数内のインデックスを指定する整数のベクトル。インデックスは1に相対的なので、変数の最初のデータ値のインデックスは (1, 1, ..., 1) となります。 START の要素は変数の次元と順番に対応していなければなりません。従って、 記録変数の場合には、最後のインデックスがデータ値を書き込む開始記録番号となります。 |
|
各次元に沿って選ばれたインデックスの数を指定する指定する整数のベクトル。単一のデータ値を書き込む場合には、 COUNT を (1, 1, ..., 1) と指定します。 COUNT の要素は変数の次元に順番に対応します。 従って、記録変数の場合には、 COUNT の最後の要素が書き込む記録数の総計に対応します。 |
|
NetCDF変数の各次元に対してのサンプリング間隔を指定する整数のベクトル。 ストライドベクトルの要素はNetCDF変数の次元に順番に対応します。(STRIDE(1) はNetCDF変数の次元の中で最も早く変化する次元のサンプリング間隔を与えます。)サンプリング間隔は型独立の要素の単位 で示されています。(値が1の場合には対応する次元に沿って隣接するNetCDF変数をアクセスし、値が2の場合には対応する次元の1つおきの値にアクセスします。 |
|
書き込まれるデータ値の塊。データの型は呼び出された関数に適当な型でなければなりません。 文字(CHARACTER) データを数値変数に、又は数値データを文字変数に入れることは出来ません。数値データについては、データ型がNetCDF変数型と異なる場合には型変換が行われます。 (詳細については型変換を参照してください。 |
この例は NF_PUT_VARS_REAL を使用して、内部配列から、 rh と言う名のNetCDF変数を一つおきに書き込んでいく例です。変数 rh はFORTRAN宣言文 REAL RH(6,4) において定義されています。(次元の大きさに注目してください。)
INCLUDE 'netcdf.inc'
...
PARAMETER (NDIM=2) ! NetCDF変数のランク
INTEGER NCID ! NetCDFファイルID
INTEGER STATUS ! 返しコード
INTEGER RHID ! 変数 ID
INTEGER START(NDIM) ! NetCDF 変数のスタート地点
INTEGER COUNT(NDIM) ! 内部配列のサイズ
INTEGER STRIDE(NDIM) ! NetCDF変数の部分サンプル間隔
REAL RH(3,2) ! NetCDF変数の次元の部分サンプルのサイズを記録
! 次元
DATA START /1, 1/ ! 最初の NetCDF変数から開始
DATA COUNT /3, 2/ ! 内部配列のサイズ: 全体(部分サンプル)
! NetCDF 変数
DATA STRIDE /2, 2/ ! NetCDF要素に一つおきにアクセス
...
STATUS = NF_OPEN('foo.nc', NF_WRITE, NCID)
IF (STATUS .NE. NF_NOERR) CALL HANDLE_ERR(STATUS)
...
STATUS = NF_INQ_VARID(NCID, 'rh', RHID)
IF (STATUS .NE. NF_NOERR) CALL HANDLE_ERR(STATUS)
...
STATUS = NF_PUT_VARS_REAL(NCID, RHID, START, COUNT, STRIDE, RH)
IF (STATUS .NE. NF_NOERR) CALL HANDLE_ERR(STATUS)