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)
エラー
各関数は、エラーが発生していなければ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 |