const char * nc_strerror(int err) { #ifdef vms if(err == EVMSERR) { return vms_strerror(err); } /* else */ #endif /* vms */ if(NC_ISSYSERR(err)) { const char *cp = (const char *) strerror(err); if(cp == NULL) return unknown; /* else */ return cp; } /* else */ switch (err) { case NC_NOERR: return "No error"; case NC_EBADID: return "NetCDF: Not a valid ID"; case NC_ENFILE: return "NetCDF: Too many files open"; case NC_EEXIST: return "NetCDF: File exists && NC_NOCLOBBER"; case NC_EINVAL: return "NetCDF: Invalid argument"; case NC_EPERM: return "NetCDF: Write to read only"; case NC_ENOTINDEFINE: return "NetCDF: Operation not allowed in data mode"; case NC_EINDEFINE: return "NetCDF: Operation not allowed in define mode"; case NC_EINVALCOORDS: return "NetCDF: Index exceeds dimension bound"; case NC_EMAXDIMS: return "NetCDF: NC_MAX_DIMS exceeded"; case NC_ENAMEINUSE: return "NetCDF: String match to name in use"; case NC_ENOTATT: return "NetCDF: Attribute not found"; case NC_EMAXATTS: return "NetCDF: NC_MAX_ATTRS exceeded"; case NC_EBADTYPE: return "NetCDF: Not a valid data type or _FillValue type mismatch"; case NC_EBADDIM: return "NetCDF: Invalid dimension ID or name"; case NC_EUNLIMPOS: return "NetCDF: NC_UNLIMITED in the wrong index"; case NC_EMAXVARS: return "NetCDF: NC_MAX_VARS exceeded"; case NC_ENOTVAR: return "NetCDF: Variable not found"; case NC_EGLOBAL: return "NetCDF: Action prohibited on NC_GLOBAL varid"; case NC_ENOTNC: return "NetCDF: Unknown file format"; case NC_ESTS: return "NetCDF: In Fortran, string too short"; case NC_EMAXNAME: return "NetCDF: NC_MAX_NAME exceeded"; case NC_EUNLIMIT: return "NetCDF: NC_UNLIMITED size already in use"; case NC_ENORECVARS: return "NetCDF: nc_rec op when there are no record vars"; case NC_ECHAR: return "NetCDF: Attempt to convert between text & numbers"; case NC_EEDGE: return "NetCDF: Start+count exceeds dimension bound"; case NC_ESTRIDE: return "NetCDF: Illegal stride"; case NC_EBADNAME: return "NetCDF: Name contains illegal characters"; case NC_ERANGE: return "NetCDF: Numeric conversion not representable"; case NC_ENOMEM: return "NetCDF: Memory allocation (malloc) failure"; case NC_EVARSIZE: return "NetCDF: One or more variable sizes violate format constraints"; case NC_EDIMSIZE: return "NetCDF: Invalid dimension size"; case NC_ETRUNC: return "NetCDF: File likely truncated or possibly corrupted"; case NC_EAXISTYPE: return "NetCDF: Illegal axis type"; case NC_EDAP: return "NetCDF: DAP failure"; case NC_ECURL: return "NetCDF: libcurl failure"; case NC_EIO: return "NetCDF: I/O failure"; case NC_ENODATA: return "NetCDF: Variable has no data in DAP request"; case NC_EDAPSVC: return "NetCDF: DAP server error"; case NC_EDAS: return "NetCDF: Malformed or inaccessible DAP DAS"; case NC_EDDS: return "NetCDF: Malformed or inaccessible DAP DDS"; case NC_EDATADDS: return "NetCDF: Malformed or inaccessible DAP DATADDS"; case NC_EDAPURL: return "NetCDF: Malformed DAP URL"; case NC_EDAPCONSTRAINT: return "NetCDF: Malformed DAP Constraint"; } /* default */ return unknown; }
const char * nc_strerror(int err) { #ifdef vms if(err == EVMSERR) { return vms_strerror(err); } /* else */ #endif /* vms */ if(NC_ISSYSERR(err)) { const char *cp = (const char *) strerror(err); if(cp == NULL) return unknown; /* else */ return cp; } /* else */ switch (err) { case NC_NOERR: return "No error"; case NC_EBADID: return "Not a netCDF id"; case NC_ENFILE: return "Too many netCDF files open"; case NC_EEXIST: return "netCDF file exists && NC_NOCLOBBER"; case NC_EINVAL: return "Invalid argument"; case NC_EPERM: return "Write to read only"; case NC_ENOTINDEFINE: return "Operation not allowed in data mode"; case NC_EINDEFINE: return "Operation not allowed in define mode"; case NC_EINVALCOORDS: return "Index exceeds dimension bound"; case NC_EMAXDIMS: return "NC_MAX_DIMS exceeded"; case NC_ENAMEINUSE: return "String match to name in use"; case NC_ENOTATT: return "Attribute not found"; case NC_EMAXATTS: return "NC_MAX_ATTRS exceeded"; case NC_EBADTYPE: return "Not a netCDF data type or _FillValue type mismatch"; case NC_EBADDIM: return "Invalid dimension id or name"; case NC_EUNLIMPOS: return "NC_UNLIMITED in the wrong index"; case NC_EMAXVARS: return "NC_MAX_VARS exceeded"; case NC_ENOTVAR: return "Variable not found"; case NC_EGLOBAL: return "Action prohibited on NC_GLOBAL varid"; case NC_ENOTNC: return "Not a netCDF file"; case NC_ESTS: return "In Fortran, string too short"; case NC_EMAXNAME: return "NC_MAX_NAME exceeded"; case NC_EUNLIMIT: return "NC_UNLIMITED size already in use"; case NC_ENORECVARS: return "nc_rec op when there are no record vars"; case NC_ECHAR: return "Attempt to convert between text & numbers"; case NC_EEDGE: return "Start+count exceeds dimension bound"; case NC_ESTRIDE: return "Illegal stride"; case NC_EBADNAME: return "Attribute or variable name contains illegal characters"; case NC_ERANGE: return "Numeric conversion not representable"; case NC_ENOMEM: return "Memory allocation (malloc) failure"; case NC_EVARSIZE: return "One or more variable sizes violate format constraints"; case NC_EDIMSIZE: return "Invalid dimension size"; case NC_ETRUNC: return "File likely truncated or possibly corrupted"; } /* default */ return unknown; }