Up|<<Prev|Next>>


7.13 部分サンプルされた配列の値を読み取る: NF_GET_VARS_ type

関数 NF_GET_VARS_ type のファミリーは開かれたNetCDFファイルから部分サンプルされた (ストライドした) NetCDF変数の配列断面 の値を読みます。部分サンプルされた配列断面は隅・縁の長さを示すベクトル・ ストライドベクトルを与えることによって指定されます。値はNetCDF変数の中で最後の次元が最も早く変化するように読まれます。NetCDFファイルはデータモードに無くてはなりません。

 

INTEGER FUNCTION NF_GET_VARS_TEXT (INTEGER NCID, INTEGER VARID,

INTEGER START(*), INTEGER COUNT(*),

INTEGER STRIDE(*),CHARACTER*(*) text)

INTEGER FUNCTION NF_GET_VARS_INT1 (INTEGER NCID, INTEGER VARID,

INTEGER START(*), INTEGER COUNT(*),

INTEGER STRIDE(*),INTEGER*1 i1vals(*))

INTEGER FUNCTION NF_GET_VARS_INT2 (INTEGER NCID, INTEGER VARID,

INTEGER START(*), INTEGER COUNT(*),

INTEGER STRIDE(*),INTEGER*2 i2vals(*))

INTEGER FUNCTION NF_GET_VARS_INT (INTEGER NCID, INTEGER VARID,

INTEGER START(*), INTEGER COUNT(*),

INTEGER STRIDE(*), INTEGER ivals(*))

INTEGER FUNCTION NF_GET_VARS_REAL (INTEGER NCID, INTEGER VARID,

INTEGER START(*), INTEGER COUNT(*),

INTEGER STRIDE(*), REAL rvals(*))

INTEGER FUNCTION NF_GET_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

各次元に沿って幾つのインデックスが選定されるかを指定するsize_t の整数ベクトル。 例えば単一の値を読み取る場合には、 count (1, 1, ... , 1) と指定すればよい。 count の要素は変数の次元に順番に対応する。よって、記録変数の場合には count の最初の要素が読み取る記録数の総計に対応する。

STRIDE

各次元で選定されたインデックスの間隔を示す整数ベクトル、もしくはゼロの値。ベクトルの要素は変数の次元に順番に対応する。値が1の場合には対応するNetCDF 変数の隣接した値にアクセスする。 値が2の場合には対応するNetCDF変数の値を一つおきにアクセスする。 引数 0 (1, 1, ..., 1) として扱われる。

text, i1vals,
i2vals, ivals,rvals, or dvals

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

 

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

 

この例では関数 NF_GET_VARS_DOUBLE を使用してNetCDFファイル foo.nc の変数 rh の各次元から一つおきに値を読み取ります。値はパラメータが2つ存在する配列と同じ次元ストライドを割り当てられています。 簡潔にするためこの例では、 rh の次元が lon , lat , と time であり、 lon 値は10個、 f lat 値は5個、そして time 値は3個存在することが既知のこととします。

INCLUDE 'netcdf.inc'
   ... 
PARAMETER (NDIMS=3)                  ! 次元数
PARAMETER (TIMES=3, LATS=5, LONS=10) ! 次元長
INTEGER STATUS, NCID
INTEGER RHID ! variable ID
INTEGER START(NDIMS), COUNT(NDIMS), STRIDE(NDIMS)
DOUBLE DATA(LONS, LATS, TIMES)
DATA START /1, 1, 1/                 ! 最初の値から開始
DATA COUNT /LONS, LATS, TIMES/
DATA STRIDE /2, 2, 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_VARS_DOUBLE(NCID,RHID,START,COUNT,STRIDE,DATA(1,1,1))
IF (STATUS .NE. NF_NOERR) CALL HANDLE_ERR(STATUS)

Up|<<Prev|Next>>