Up|<<Prev|Next>>


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, or dvals

読み込まれるデータ値の塊。。データの型は呼び出された関数に適当な型でなければなりません。 文字(CHARACTER) データを数値変数から、又は数値データを文字変数から読み取ることは出来ません。数値データについては、データ型がNetCDF変数型と異なる場合には型変換が行われます。 (詳細については型変換を参照のこと。

 

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

 

この例では 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)

 


Up|<<Prev|Next>>