Next: , Previous: NF_INQ_VAR_SZIP, Up: Variables


6.13 Define Checksum Parameters for a Variable: NF_DEF_VAR_FLETCHER32

The function NF_DEF_VAR_FLETCHER32 sets the checksum property for a variable in a netCDF-4 file.

This function may only be called after the variable is defined, but before NF_ENDDEF is called.

Usage

     NF_DEF_VAR_FLETCHER32(INTEGER NCID, INTEGER VARID, INTEGER CHECKSUM);
NCID
NetCDF ID, from a previous call to NF_OPEN or NF_CREATE.
VARID
Variable ID.
CHECKSUM
If this is NF_FLETCHER32, fletcher32 checksums will be turned on for this variable.

Errors

NF_DEF_VAR_FLETCHER32 returns the value NF_NOERR if no errors occurred. Otherwise, the returned status indicates an error.

Possible return codes include:

NF_NOERR
No error.
NF_BADID
Bad ncid.
NF_ENOTNC4
Not a netCDF-4 file.
NF_ENOTVAR
Can't find this variable.
NF_ELATEDEF
This variable has already been the subject of a NF_ENDDEF call. In netCDF-4 files NF_ENDDEF will be called automatically for any data read or write. Once enddef has been called, it is impossible to set the checksum property for a variable.
NF_ENOTINDEFINE
Not in define mode. This is returned for netCDF classic or 64-bit offset files, or for netCDF-4 files, when they were been created with NF_STRICT_NC3 flag. (see NF_CREATE).
NF_EPERM
Attempt to create object in read-only file.

Example

In this example from nf_test/ftst_vars.F, the variable in a file has the Fletcher32 checksum filter turned on.

     
     C     Create the netCDF file.
           retval = nf_create(FILE_NAME, NF_NETCDF4, ncid)
           if (retval .ne. nf_noerr) call handle_err(retval)
     
     C     Define the dimensions.
           retval = nf_def_dim(ncid, "x", NX, x_dimid)
           if (retval .ne. nf_noerr) call handle_err(retval)
           retval = nf_def_dim(ncid, "y", NY, y_dimid)
           if (retval .ne. nf_noerr) call handle_err(retval)
     
     C     Define the variable.
           dimids(1) = y_dimid
           dimids(2) = x_dimid
           retval = NF_DEF_VAR(ncid, "data", NF_INT, NDIMS, dimids, varid)
           if (retval .ne. nf_noerr) call handle_err(retval)
     
     C     Turn on chunking.
           chunks(1) = NY
           chunks(2) = NX
           retval = NF_DEF_VAR_CHUNKING(ncid, varid, NF_CHUNKED, chunks)
           if (retval .ne. nf_noerr) call handle_err(retval)
     
     C     Turn on deflate compression, fletcher32 checksums.
           retval = NF_DEF_VAR_DEFLATE(ncid, varid, 0, 1, 4)
           if (retval .ne. nf_noerr) call handle_err(retval)
           retval = NF_DEF_VAR_FLETCHER32(ncid, varid, NF_FLETCHER32)
           if (retval .ne. nf_noerr) call handle_err(retval)