関数 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 FUNCTION NF_PUT_VAR1_DOUBLE(INTEGER NCID, INTEGER VARID,
INTEGER INDEX(*), DOUBLE dval)
読み込まれるデータ値のインデックス。インデックスは1に相対的であるので、2次元変数の最初のデータ値のインデックスは (1,1) になります。 index の要素は変数の次元に対応していなければなりません。よって、記録変数の場合には、最後のインデックスが記録番号になります。 |
|
データ値が読み込まれる位置。数値変数から文字(CHARACTER)データを取得したり、文字変数から数値データを取得することは出来ません。数値データの場合には、データ型がNetCDF変数型と異なれば、型変換が行なわれます。詳細については 型変換を参照のこと。 |
エラーが発生していない場合には関数 NF_GET_VAR1_ type は NF_NOERR の値を返します。それ以外の場合には、返されたステータスがエラーが発生したことを示します。エラーの原因としては:
この例では 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)