TOC PREV NEXT INDEX

Put your logo here!


7.11 全変数を読み取る: NF_GET_VAR_ type


関数NF_GET_VAR_ typeのファミリーはオープンされたNetCDFファイルの変数の値をすべて読みます。これは、スカラー変数や多次元変数の値をすべて一度で読むためには最も簡単なインターフェースです。変数は連続した位置に 最初の次元が最も早く変化するように 次々と書き込まれていきます。NetCDFファイルはデータモードになければなりません。

用法
INTEGER FUNCTION NF_GET_VAR_TEXT (INTEGER NCID, INTEGER VARID,
CHARACTER*(*) text)
INTEGER FUNCTION NF_GET_VAR_INT1 (INTEGER NCID, INTEGER VARID,
INTEGER*1 i1vals(*))
INTEGER FUNCTION NF_GET_VAR_INT2 (INTEGER NCID, INTEGER VARID,
INTEGER*2 i2vals(*))
INTEGER FUNCTION NF_GET_VAR_INT (INTEGER NCID, INTEGER VARID,
INTEGER ivals(*))
INTEGER FUNCTION NF_GET_VAR_REAL (INTEGER NCID, INTEGER VARID,
REAL rvals(*))
INTEGER FUNCTION NF_GET_VAR_DOUBLE(INTEGER NCID, INTEGER VARID,
DOUBLE dvals(*))

変数から値の配列を読むFORTRAN関数は6つあります。

NCID 以前のNF_OPEN または NF_CREATE呼び出しで返されたNetCDF ID。
VARID 変数ID。
text, i1vals, i2vals, ivals,rvals, dvals 読み込まれるデータ値のかたまり。。データの型は呼び出された関数に適当な型でなければなりません。文字(CHARACTER)データを数値変数から、または数値データを文字変数から読み取ることは出来ません。数値データについては、データ型がNetCDF変数型と異なる場合には型変換が行われます。 (詳細については3.3節「型変換」(p.24)を参照のして下さい。

エラー

エラーが発生していなければ、NF_GET_VAR_ typeNF_NOERR の値を返します。それ以外の場合には、返されたステータスがエラーを示します。エラーの原因としては下記が挙げられます。

・ 変数 ID が指定されたNetCDFファイルにおいて無効である。
・ 一つ、もしくは複数の値が、指定された型によって表わせる値の範囲を超えている。
・ 指定されたNetCDFファイルがデータモードではなく定義モードにある。
・ 指定されたNetCDF IDがオープンされたNetCDFファイルを参照しない。

この例では NF_GET_VAR_DOUBLE を使用して既存のNetCDF ファイル foo.ncの変数rh の値をすべて読み取ります。簡潔にするためにこの例では、変数 rh の次元は lon, lat, 及び timeであり、lon 値が10個、, lat 値が5個、そして, time 値が3個あることを既知とします。

INCLUDE 'netcdf.inc'

PARAMETER (TIMES=3, LATS=5, LONS=10) ! 次元長
INTEGER STATUS, NCID
INTEGER RHID ! 変数ID
DOUBLE RHVALS(LONS, LATS, TIMES)

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_VAR_DOUBLE (NCID, RHID, RHVALS)
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