TOC PREV NEXT INDEX

Put your logo here!


8.3 属性に関する情報を取得する: NF_INQ_ATTのファミリー


この関数のファミリーはNetCDF属性に関する情報を返します。これらの関数は一つを除いてすべて変数IDと属性名を必要とします。例外はNF_INQ_ATTNAME関数です。属性に関する情報には型・長さ・名前・番号などが含まれます。属性値を取得する方法についてはNF_GET_ATTの節を参照してください。

関数NF_INQ_ATTNAMEは変数IDと番号を与えると、属性の名前を返します。この関数は、他のすべての属性関数において属性は番号ではなく名前によってアクセスされるために、変数に関連した属性の名前をすべて必要とする一般的なアプリケーションにおいて役に立ちます。属性の番号は名前よりも揮発性があり、同じ変数の属性が削除された時に変わることがあります。このため、属性の番号は属性IDとは呼ばれません。

関数NF_INQ_ATTは属性の型と長さを返します。他の関数はそれぞれ、属性の情報を一つだけ返します。

用法
INTEGER FUNCTION NF_INQ_ATT (INTEGER NCID, INTEGER VARID,
CHARACTER*(*) NAME, INTEGER xtype,
INTEGER len)
INTEGER FUNCTION NF_INQ_ATTTYPE(INTEGER NCID, INTEGER VARID,
CHARACTER*(*) NAME, INTEGER xtype)
INTEGER FUNCTION NF_INQ_ATTLEN (INTEGER NCID, INTEGER VARID,
CHARACTER*(*) NAME, INTEGER len)
INTEGER FUNCTION NF_INQ_ATTNAME(INTEGER NCID, INTEGER VARID,
INTEGER ATTNUM, CHARACTER*(*) name)
INTEGER FUNCTION NF_INQ_ATTID (INTEGER NCID, INTEGER VARID,
CHARACTER*(*) NAME, INTEGER attnum)
NCID 以前のNF_OPENまたはNF_CREATE呼び出しで返されたNetCDF ID
VARID 属性の変数の変数ID、またはグローバル属性の場合にはNF_GLOBAL
NAME 属性の名前。NF_INQ_ATTNAMEの場合を除いて、ここに属性名が返される。
xtype 返された属性の型。前もって定義されたNetCDF外部データ型の集合の一つ。有効なNetCDF外部データ型はNF_BYTE, NF_CHAR, NF_SHORT, NF_INT, NF_FLOAT, NF_DOUBLEです。
len 現在属性に格納されている値の数。記号列の値を持つ属性では、これは記号列に含まれる文字数です。
attnum NF_INQ_ATTNAMEに対しては入力された属性番号。NF_INQ_ATTIDに対しては、返された属性番号。各変数の属性は1(最初の属性)からNATTSまでの番号が振られています。(NATTSはその変数の属性の数で、NF_INQ_VARNATTSへの呼び出しで返されます。)属性の情報を取得するためには属性の名前が必要であるので、属性の名前が既知であれば、この番号はあまり役に立ちません。

エラー

各関数は、エラーが発生していなければNF_NOERRの値を返します。それ以外の場合には、返されたステータスがエラーを示します。エラーの原因として次のようなものが考えられます。

・ 変数IDが指定されたNetCDFファイルで無効である。
・ 指定された属性が存在しない。
・ 指定されたNetCDF IDがオープンされたNetCDFファイルを参照していない。
NF_INQ_ATTNAMEに対して、指定された属性番号が負であるか、もしくは指定された変数に定義されている属性の数よりも多い。

この例では、NF_INQ_ATTLENを使って、既存のfoo.ncという名前のNetCDFファイルにおいて、rhという名前の変数の属性valid_rangeの長さと、titleという名前のグローバル属性について問い合わせます。

INCLUDE 'netcdf.inc'

INTEGER STATUS, NCID
INTEGER RHID ! 変数 ID
INTEGER VRLEN, TLEN ! 属性の長さ

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_INQ_ATTLEN (NCID, RHID, 'valid_range', VRLEN)
IF (STATUS .NE. NF_NOERR) CALL HANDLE_ERR(STATUS)
STATUS = NF_INQ_ATTLEN (NCID, NF_GLOBAL, 'title', TLEN)
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