This family of functions returns information about a netCDF attribute. All but one of these functions require the variable ID and attribute name; the exception is NF_INQ_ATTNAME. Information about an attribute includes its type, length, name, and number. See the NF_GET_ATT family for getting attribute values.
The function NF_INQ_ATTNAME gets the name of an attribute, given its variable ID and number. This function is useful in generic applications that need to get the names of all the attributes associated with a variable, since attributes are accessed by name rather than number in all other attribute functions. The number of an attribute is more volatile than the name, since it can change when other attributes of the same variable are deleted. This is why an attribute number is not called an attribute ID.
The function NF_INQ_ATT returns the attribute's type and length. The other functions each return just one item of information about an attribute.
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
VARID
NAME
xtype
len
attnum
(If you already know an attribute name, knowing its number is not very useful, because accessing information about an attribute requires its name.)
Each function returns the value NF_NOERR if no errors occurred. Otherwise, the returned status indicates an error. Possible causes of errors include:
Here is an example using NF_INQ_ATT to find out the type and length of a variable attribute named valid_range for a netCDF variable named rh and a global attribute named title in an existing netCDF dataset named foo.nc:
INCLUDE 'netcdf.inc' ... INTEGER STATUS, NCID INTEGER RHID ! variable ID INTEGER VRLEN, TLEN ! attribute lengths ... 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)