TOC PREV NEXT INDEX

Put your logo here!


7.10 単一のデータ値を読み取る: NF_GET_VAR1_ type


関数NF_GET_VAR1_ type はオープンされたデータモードにあるNetCDFファイルの変数から単一のデータ値を取得します。入力は NetCDF ID・変数ID・取得する値を指定する多次元のインデックス・データ値が読み込まれる位置のアドレスです。この値は必要に応じて変数の外部データ型から変換されます。

用法
INTEGER FUNCTION NF_PUT_VAR1_TEXT(INTEGER NCID, INTEGER VARID,
INTEGER INDEX(*), CHARACTER chval)
INTEGER FUNCTION NF_PUT_VAR1_INT1(INTEGER NCID, INTEGER VARID,
INTEGER INDEX(*), INTEGER*1 i1val)
INTEGER FUNCTION NF_PUT_VAR1_INT2(INTEGER NCID, INTEGER VARID,
INTEGER INDEX(*), INTEGER*2 i2val)
INTEGER FUNCTION NF_PUT_VAR1_INT (INTEGER NCID, INTEGER VARID,
INTEGER INDEX(*), INTEGER ival)
INTEGER FUNCTION NF_PUT_VAR1_REAL(INTEGER NCID, INTEGER VARID,
INTEGER INDEX(*), REAL rval)
INTEGER FUNCTION NF_PUT_VAR1_DOUBLE(INTEGER NCID, INTEGER VARID,
INTEGER INDEX(*), DOUBLE dval)
NCID 以前のNF_OPEN または NF_CREATE呼び出しで返されたNetCDF ID。
VARID 変数ID。
INDEX 読み込まれるデータ値のインデックス。インデックスは1に相対的であるので、2次元変数の最初のデータ値のインデックスは(1,1)になります。 index の要素は変数の次元に対応していなければなりません。よって、記録変数の場合には、最後のインデックスが記録番号になります。
chval, i1val, i2val, ival, rval, or dval
データ値が読み込まれる位置。数値変数から文字(CHARACTER)データを取得したり、文字変数から数値データを取得することは出来ません。数値データの場合には、データ型がNetCDF変数型と異なれば、型変換が行なわれます。詳細については 3.3節「型変換」(p.24)を参照して下さい。

エラー

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

・ 変数IDが指定されたNetCDFファイルに対して有効ではない。
・ 指定されたインデックスが指定された変数のランクの範囲外であった。例えば、負のインデックスや、対応する次元の長さより大きなインデックスを与えるとエラーを引き起こす。
・ 値が望まれるデータ型で表現可能な値の範囲外であった。
・ 指定されたNetCDFファイルがデータモードではなく定義モードにあった。
・ 指定されたNetCDF IDがオープンされたNetCDFファイルを参照しない。

この例では NF_GET_VAR1_DOUBLE を使用して、既存のNetCDFファイルfoo.ncから変数 rh(4,3,2) 要素を取得します。簡潔にするために、この例では rh の次元がlon, lat及びtime であることを既知とし、よって、取得したいのは rh の4番目の lon 値、3番目の lat 値、そして 2番目の time 値ということになります。

INCLUDE 'netcdf.inc'

INTEGER STATUS, NCID
INTEGER RHID ! 変数 ID
INTEGER RHINDX(3) ! 値を取得する場所
DOUBLE PRECISION RHVAL ! ここに置く
DATA RHINDX /4, 3, 2/

STATUS = NF_OPEN ('foo.nc', NF_NOWRITE, 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_GET_VAR1_DOUBLE (NCID, RHID, RHINDX, RHVAL)
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