TOC PREV NEXT INDEX

Put your logo here!


7.8 部分サンプルされた配列の値を書き込む: NF_PUT_VARS_ type


関数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(*))
NCID 以前のNF_OPEN または NF_CREATE呼び出しで返されたNetCDF ID
VARID 変数ID
START 最初にデータ値が書きこまれる変数内のインデックスを指定する整数のベクトル。インデックスは1に相対的なので、変数の最初のデータ値のインデックスは(1, 1, …, 1)となります。START の要素は変数の次元と順番に対応していなければなりません。従って、記録変数の場合には、最後のインデックスがデータ値を書き込む開始記録番号となります。
COUNT 各次元に沿って選ばれたインデックスの数を指定する指定する整数のベクトル。単一のデータ値を書き込む場合には、COUNT(1, 1, …, 1)と指定します。 COUNT の要素は変数の次元に順番に対応します。従って、記録変数の場合には、COUNT の最後の要素が書き込む記録数の総計に対応します。
STRIDE NetCDF変数の各次元に対してのサンプリング間隔を指定する整数のベクトル。ストライドベクトルの要素はNetCDF変数の次元に順番に対応します。(STRIDE(1) はNetCDF変数の次元の中で最も早く変化する次元のサンプリング間隔を与えます。)サンプリング間隔は型独立の要素の単位 で示されています。(値が1の場合には対応する次元に沿って隣接するNetCDF変数をアクセスし、値が2の場合には対応する次元の1つおきの値にアクセスします。)
TEXT, I1VALS, I2VALS, IVALS,RVALS, DVALS 書き込まれるデータ値のかたまり。データの型は呼び出された関数に適当な型でなければなりません。文字(CHARACTER)データを数値変数に、または数値データを文字変数に入れることは出来ません。数値データについては、データ型がNetCDF変数型と異なる場合には型変換が行われます。 (詳細については3.3節「型変換」(p.24)を参照して下さい。

エラー

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

・ 変数IDが指定されたNetCDFファイルに対して有効ではない。
・ 指定されたstart・count・strideが領域外のインデックスを生成してしまう。
・ 指定された値のうち、少なくとも一つが変数の外部データ型で表現可能な値の範囲外である。
・ 指定されたNetCDFファイルがデータモードではなく定義モードになっている。
・ 指定されたNetCDF IDがオープンされた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)



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