Next: Combined Index, Previous: Summary of Fortran 90 Interface, Up: Top [Index]
All PnetCDF APIs return an integer value, an error code indicating the error status. NC_NOERR, NF_NOERR, and NF90_NOERR mean the API ran successfully. All error codes are non-positive integral values, constants defined in header file pnetcdf.h. One can call APIs ncmpi_strerror/nfmpi_strerror/nf90mpi_strerror to turn an error code into a human readable string. For example, NC_EBADID becomes "NetCDF: Not a valid ID". The code fragment below shows a way to check for error and prints the error message.
err = ncmpi_create(comm, path, cmode, info, &ncid); if (err != NC_NOERR) { int rank; MPI_Comm_rank(comm, &rank); printf("Error at rank %d: %s\n", rank, ncmpi_strerror(err)); }
PnetCDF reports the error codes that are recognizable by netCDF. NetCDF-3, netCDF-4 and PnetCDF each defines a disjoined range of negative values corresponding to their 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 or file format violates CDF specification */ #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 */ #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 */ #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 */ #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 */ #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. */ #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 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 */ #define NC_ENOTFOUND (-90) /* No such file */ #define NC_ECANTREMOVE (-91) /* Can't remove file */ #define NC_EINTERNAL (-92) /* NetCDF Library Internal Error */
#define NC4_FIRST_ERROR (-100) #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 file 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 */ #define NC4_LAST_ERROR (-136) /* internal All netCDF errors > this. */
#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 types used in memory data */ #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 when calling ncmpi_open() */ #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 */ /* header inconsistency errors start from -250 */ #define NC_EMULTIDEFINE (-250) /* NC definitions on multiprocesses conflict */ #define NC_EMULTIDEFINE_OMODE (-251) /* inconsistent file open mode */ #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's number of dimensions */ #define NC_EMULTIDEFINE_VAR_DIMIDS (-258) /* inconsistent variable's dimid */ #define NC_EMULTIDEFINE_VAR_TYPE (-259) /* inconsistent variable's data type */ #define NC_EMULTIDEFINE_VAR_LEN (-260) /* inconsistent variable's 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 file 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 */
Next: Combined Index, Previous: Summary of Fortran 90 Interface, Up: Top [Index]