The functions NF_PUT_VAR1_type (for various types) put a single data value of the specified type into a variable of an open netCDF dataset that is in data mode. Inputs are the netCDF ID, the variable ID, an index that specifies which value to add or alter, and the data value. The value is converted to the external data type of the variable, if necessary.
INTEGER FUNCTION NF_PUT_VAR1_TEXT(INTEGER NCID, INTEGER VARID,
INTEGER INDEX(*), CHARACTER CHVAL)
INTEGER FUNCTION NF_PUT_VAR1_INT1(INTEGER NCID, INTEGER VARID,
INTEGER INDEX(*), INTEGER*1 I1VAL)
INTEGER FUNCTION NF_PUT_VAR1_INT2(INTEGER NCID, INTEGER VARID,
INTEGER INDEX(*), INTEGER*2 I2VAL)
INTEGER FUNCTION NF_PUT_VAR1_INT (INTEGER NCID, INTEGER VARID,
INTEGER INDEX(*), INTEGER IVAL)
INTEGER FUNCTION NF_PUT_VAR1_REAL(INTEGER NCID, INTEGER VARID,
INTEGER INDEX(*), REAL RVAL)
INTEGER FUNCTION NF_PUT_VAR1_DOUBLE(INTEGER NCID, INTEGER VARID,
INTEGER INDEX(*), DOUBLE DVAL)
INTEGER FUNCTION NF_PUT_VAR1(INTEGER NCID, INTEGER VARID,
INTEGER INDEX(*), *)
NCIDVARIDINDEXCHVALI1VALI2VALIVALRVALDVALNF_PUT_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_PUT_VAR1_DOUBLE to set the (4,3,2) element of the variable named rh to 0.5 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 set 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 ! error status
INTEGER NCID
INTEGER RHID ! variable ID
INTEGER RHINDX(3) ! where to put value
DATA RHINDX /4, 3, 2/
...
STATUS = NF_OPEN ('foo.nc', NF_WRITE, NCID)
IF (STATUS .NE. NF_NOERR) CALL HANDLE_ERR(STATUS)
...
STATUS = NF_INQ_VARID (NCID, 'rh', RHID) ! get ID
IF (STATUS .NE. NF_NOERR) CALL HANDLE_ERR(STATUS)
STATUS = NF_PUT_VAR1_DOUBLE (NCID, RHID, RHINDX, 0.5)
IF (STATUS .NE. NF_NOERR) CALL HANDLE_ERR(STATUS)