The functions NF_GET_VAR1_ type get a single data value from a variable of an open netCDF dataset that is in data mode. Inputs are the netCDF ID, the variable ID, a multidimensional index that specifies which value to get, and the address of a location into which the data value will be read. The value is converted from the external data type of the variable, if necessary.
INTEGER FUNCTION NF_GET_VAR1_TEXT(INTEGER NCID, INTEGER VARID, INTEGER INDEX(*), CHARACTER CHVAL) INTEGER FUNCTION NF_GET_VAR1_INT1(INTEGER NCID, INTEGER VARID, INTEGER INDEX(*), INTEGER*1 I1VAL) INTEGER FUNCTION NF_GET_VAR1_INT2(INTEGER NCID, INTEGER VARID, INTEGER INDEX(*), INTEGER*2 I2VAL) INTEGER FUNCTION NF_GET_VAR1_INT (INTEGER NCID, INTEGER VARID, INTEGER INDEX(*), INTEGER IVAL) INTEGER FUNCTION NF_GET_VAR1_REAL(INTEGER NCID, INTEGER VARID, INTEGER INDEX(*), REAL RVAL) INTEGER FUNCTION NF_GET_VAR1_DOUBLE(INTEGER NCID, INTEGER VARID, INTEGER INDEX(*), DOUBLE DVAL)
NCID
VARID
INDEX
chval
i1val
i2val
ival
rval
dval
NF_GET_VAR1_ type 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_GET_VAR1_DOUBLE to get the (4,3,2) element of the variable named rh in an existing netCDF dataset named foo.nc. For simplicity in this example, we assume that we know that rh is dimensioned with lon, lat, and time, so we want to get the value of rh that corresponds to the fourth lon value, the third lat value, and the second time value:
INCLUDE 'netcdf.inc' ... INTEGER STATUS, NCID INTEGER RHID ! variable ID INTEGER RHINDX(3) ! where to get value DOUBLE PRECISION RHVAL ! put it here DATA RHINDX /4, 3, 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_VAR1_DOUBLE (NCID, RHID, RHINDX, RHVAL) IF (STATUS .NE. NF_NOERR) CALL HANDLE_ERR(STATUS)