NetCDF-3 Error Codes
#define NC_NOERR 0 // No Error
#define NC_EBADID (-33) // Not a netcdf id
#define NC_ENFILE (-34) // Too many netcdfs open
#define NC_EEXIST (-35) // netcdf file exists && NC_NOCLOBBER
#define NC_EINVAL (-36) // Invalid Argument
#define NC_EPERM (-37) // Write to read only
#define NC_ENOTINDEFINE (-38) // Operation not allowed in data mode
#define NC_EINDEFINE (-39) // Operation not allowed in define mode
#define NC_EINVALCOORDS (-40) // Index exceeds dimension bound
#define NC_EMAXDIMS (-41) // NC_MAX_DIMS exceeded [not enforced after 4.5.0]
#define NC_ENAMEINUSE (-42) // String match to name in use
#define NC_ENOTATT (-43) // Attribute not found
#define NC_EMAXATTS (-44) // NC_MAX_ATTRS exceeded [not enforced after 4.5.0]
#define NC_EBADTYPE (-45) // Not a netcdf data type
#define NC_EBADDIM (-46) // Invalid dimension id or name
#define NC_EUNLIMPOS (-47) // NC_UNLIMITED in the wrong index
#define NC_EMAXVARS (-48) // NC_MAX_VARS exceeded [not enforced after 4.5.0]
#define NC_ENOTVAR (-49) // Variable not found
#define NC_EGLOBAL (-50) // Action prohibited on NC_GLOBAL varid
#define NC_ENOTNC (-51) // Not a netcdf file
#define NC_ESTS (-52) // In Fortran, string too short
#define NC_EMAXNAME (-53) // NC_MAX_NAME exceeded
#define NC_EUNLIMIT (-54) // NC_UNLIMITED size already in use
#define NC_ENORECVARS (-55) // nc_rec op when there are no record vars
#define NC_ECHAR (-56) // Attempt to convert between text & numbers
#define NC_EEDGE (-57) // Edge+start exceeds dimension bound
#define NC_ESTRIDE (-58) // Illegal stride
#define NC_EBADNAME (-59) // Attribute or variable name contains illegal characters
// N.B. following must match value in ncx.h
#define NC_ERANGE (-60) // Math result not representable
#define NC_ENOMEM (-61) // Memory allocation (malloc) failure
#define NC_EVARSIZE (-62) // One or more variable sizes violate format constraints
#define NC_EDIMSIZE (-63) // Invalid dimension size
#define NC_ETRUNC (-64) // File likely truncated or possibly corrupted
#define NC_EAXISTYPE (-65) // Unknown axis type
DAP Error Codes
If the DAP client is enabled, then the following additional error codes may occur.
#define NC_EDAP (-66) // Generic DAP error
#define NC_ECURL (-67) // Generic libcurl error
#define NC_EIO (-68) // Generic IO error
#define NC_ENODATA (-69) // Attempt to access variable with no data
#define NC_EDAPSVC (-70) // DAP Server side error
#define NC_EDAS (-71) // Malformed or inaccessible DAS
#define NC_EDDS (-72) // Malformed or inaccessible DDS
#define NC_EDATADDS (-73) // Malformed or inaccessible DATADDS
#define NC_EDAPURL (-74) // Malformed DAP URL
#define NC_EDAPCONSTRAINT (-75) // Malformed DAP Constraint
#define NC_ETRANSLATION (-76) // Untranslatable construct
#define NC_EACCESS (-77) // Access Failure
#define NC_EAUTH (-78) // Authorization Failure
Misc. additional errors
#define NC_ENOTFOUND (-90) // No such file
#define NC_ECANTREMOVE (-91) // Cannot remove file
#define NC_EINTERNAL (-92) // NetCDF Library Internal Error
#define NC_EPNETCDF (-93) // Error at PnetCDF layer
NetCDF-4 Error Codes
NetCDF-4 uses all error codes from NetCDF-3 (see section NetCDF-3 Error Codes). The following additional error codes were added for new errors unique to netCDF-4.
#define NC_EHDFERR (-101) // Error at HDF5 layer.
#define NC_ECANTREAD (-102) // Cannot read.
#define NC_ECANTWRITE (-103) // Cannot write.
#define NC_ECANTCREATE (-104) // Cannot create.
#define NC_EFILEMETA (-105) // Problem with file metadata.
#define NC_EDIMMETA (-106) // Problem with dimension metadata.
#define NC_EATTMETA (-107) // Problem with attribute metadata.
#define NC_EVARMETA (-108) // Problem with variable metadata.
#define NC_ENOCOMPOUND (-109) // Not a compound type.
#define NC_EATTEXISTS (-110) // Attribute already exists.
#define NC_ENOTNC4 (-111) // Attempting netcdf-4 operation on netcdf-3 file.
#define NC_ESTRICTNC3 (-112) // Attempting netcdf-4 operation on strict nc3 netcdf-4 file.
#define NC_ENOTNC3 (-113) // Attempting netcdf-3 operation on netcdf-4 file.
#define NC_ENOPAR (-114) // Parallel operation on file opened for non-parallel access.
#define NC_EPARINIT (-115) // Error initializing for parallel access.
#define NC_EBADGRPID (-116) // Bad group ID.
#define NC_EBADTYPID (-117) // Bad type ID.
#define NC_ETYPDEFINED (-118) // Type has already been defined and may not be edited.
#define NC_EBADFIELD (-119) // Bad field ID.
#define NC_EBADCLASS (-120) // Bad class.
#define NC_EMAPTYPE (-121) // Mapped access for atomic types only.
#define NC_ELATEFILL (-122) // Attempt to define fill value when data already exists.
#define NC_ELATEDEF (-123) // Attempt to define var properties, like deflate, after enddef.
#define NC_EDIMSCALE (-124) // Problem with HDF5 dimscales.
#define NC_ENOGRP (-125) // No group found.
#define NC_ESTORAGE (-126) // Cannot specify both contiguous and chunking.
#define NC_EBADCHUNK (-127) // Bad chunksize.
#define NC_ENOTBUILT (-128) // Attempt to use feature that was not turned on when netCDF was built.
#define NC_EDISKLESS (-129) // Error in using diskless access.
#define NC_ECANTEXTEND (-130) // Attempt to extend dataset during ind. I/O operation.
#define NC_EMPI (-131) // MPI operation failed.
#define NC_EFILTER (-132) // Filter operation failed.
#define NC_ERCFILE (-133) // RC file failure
#define NC_ENULLPAD (-134) // Header Bytes not Null-Byte padded
#define NC_EINMEMORY (-135) // In-memory file error
PnetCDF Error Codes
#define NC_ESMALL (-201) // size of MPI_Offset too small for format
#define NC_ENOTINDEP (-202) // Operation not allowed in collective data mode
#define NC_EINDEP (-203) // Operation not allowed in independent data mode
#define NC_EFILE (-204) // Unknown error in file operation
#define NC_EREAD (-205) // Unknown error in reading file
#define NC_EWRITE (-206) // Unknown error in writing to file
#define NC_EOFILE (-207) // file open/creation failed
#define NC_EMULTITYPES (-208) // Multiple etypes used in MPI datatype
#define NC_EIOMISMATCH (-209) // Input/Output data amount mismatch
#define NC_ENEGATIVECNT (-210) // Negative count is specified
#define NC_EUNSPTETYPE (-211) // Unsupported etype in memory MPI datatype
#define NC_EINVAL_REQUEST (-212) // invalid nonblocking request ID
#define NC_EAINT_TOO_SMALL (-213) // MPI_Aint not large enough to hold requested value
#define NC_ENOTSUPPORT (-214) // feature is not yet supported
#define NC_ENULLBUF (-215) // trying to attach a NULL buffer
#define NC_EPREVATTACHBUF (-216) // previous attached buffer is found
#define NC_ENULLABUF (-217) // no attached buffer is found
#define NC_EPENDINGBPUT (-218) // pending bput is found, cannot detach buffer
#define NC_EINSUFFBUF (-219) // attached buffer is too small
#define NC_ENOENT (-220) // File does not exist
#define NC_EINTOVERFLOW (-221) // Overflow when type cast to 4-byte integer
#define NC_ENOTENABLED (-222) // feature is not enabled
#define NC_EBAD_FILE (-223) // Invalid file name (e.g., path name too long)
#define NC_ENO_SPACE (-224) // Not enough space
#define NC_EQUOTA (-225) // Quota exceeded
#define NC_ENULLSTART (-226) // argument start is a NULL pointer
#define NC_ENULLCOUNT (-227) // argument count is a NULL pointer
#define NC_EINVAL_CMODE (-228) // Invalid file create mode
#define NC_ETYPESIZE (-229) // MPI derived data type size error (bigger than the variable size)
#define NC_ETYPE_MISMATCH (-230) // element type of the MPI derived data type mismatches the variable type
#define NC_ETYPESIZE_MISMATCH (-231) // file type size mismatches buffer type size
#define NC_ESTRICTCDF2 (-232) // Attempting CDF-5 operation on CDF-2 file
#define NC_ENOTRECVAR (-233) // Attempting operation only for record variables
#define NC_ENOTFILL (-234) // Attempting to fill a variable when its fill mode is off
#define NC_EINVAL_OMODE (-235) // Invalid file open mode
#define NC_EPENDING (-236) // Pending nonblocking request is found at file close
#define NC_EMAX_REQ (-237) // Size of I/O request exceeds INT_MAX
#define NC_EBADLOG (-238) // Unrecognized log file format
#define NC_EFLUSHED (-239) // Nonblocking request has already been flushed to the PFS. It is too late to cancel
#define NC_EMULTIDEFINE (-250) // NC definitions inconsistent among processes
#define NC_EMULTIDEFINE_OMODE (-251) // inconsistent file open modes among processes
#define NC_EMULTIDEFINE_DIM_NUM (-252) // inconsistent number of dimensions
#define NC_EMULTIDEFINE_DIM_SIZE (-253) // inconsistent size of dimension
#define NC_EMULTIDEFINE_DIM_NAME (-254) // inconsistent dimension names
#define NC_EMULTIDEFINE_VAR_NUM (-255) // inconsistent number of variables
#define NC_EMULTIDEFINE_VAR_NAME (-256) // inconsistent variable name
#define NC_EMULTIDEFINE_VAR_NDIMS (-257) // inconsistent variable number of dimensions
#define NC_EMULTIDEFINE_VAR_DIMIDS (-258) // inconsistent variable dimension IDs
#define NC_EMULTIDEFINE_VAR_TYPE (-259) // inconsistent variable data type
#define NC_EMULTIDEFINE_VAR_LEN (-260) // inconsistent variable size
#define NC_EMULTIDEFINE_NUMRECS (-261) // inconsistent number of records
#define NC_EMULTIDEFINE_VAR_BEGIN (-262) // inconsistent variable file begin offset (internal use)
#define NC_EMULTIDEFINE_ATTR_NUM (-263) // inconsistent number of attributes
#define NC_EMULTIDEFINE_ATTR_SIZE (-264) // inconsistent memory space used by attribute (internal use)
#define NC_EMULTIDEFINE_ATTR_NAME (-265) // inconsistent attribute name
#define NC_EMULTIDEFINE_ATTR_TYPE (-266) // inconsistent attribute type
#define NC_EMULTIDEFINE_ATTR_LEN (-267) // inconsistent attribute length
#define NC_EMULTIDEFINE_ATTR_VAL (-268) // inconsistent attribute value
#define NC_EMULTIDEFINE_FNC_ARGS (-269) // inconsistent function arguments used in collective API
#define NC_EMULTIDEFINE_FILL_MODE (-270) // inconsistent dataset fill mode
#define NC_EMULTIDEFINE_VAR_FILL_MODE (-271) // inconsistent variable fill mode
#define NC_EMULTIDEFINE_VAR_FILL_VALUE (-272) // inconsistent variable fill value
#define NC_EMULTIDEFINE_CMODE (-273) // inconsistent file create modes among processes