/******************************************************************************
*
* NSSDC/CDF Get CDF status code explanation text.
*
* Version 1.3a, 2-Sep-97, Hughes STX.
*
* Modification history:
*
* V1.0 21-Sep-92, J Love Original version.
* V1.1 12-Jan-94, J Love CDF V2.4.
* V1.1a 4-Feb-94, J Love DEC Alpha/OpenVMS port.
* V1.2 24-Oct-94, J Love CDF V2.5.
* V1.2a 10-Jan-95, J Love Incremental release in 1995.
* V1.2b 23-Jan-95, J Love NSI/DECnet -> DECnet.
* V1.2c 24-Feb-95, J Love Solaris 2.3 IDL i/f.
* V1.3 9-Sep-96, J Love CDF V2.6.
* V1.3a 2-Sep-97, J Love Incremental release in 1997.
* V1.4 21-Jun-04, M Liu Added a new error, NOT_A_CDF_OR_NOT_SUPPORTED.
*
******************************************************************************/
#include "cdflib.h"
/******************************************************************************
* CDFcopyRight.
* `\012' is used to indicate a newline character because MPW C seems to map
* newline characters to carriage returns (`\015').
******************************************************************************/
STATICforIDL void CDFcopyRight (copyRight)
char *copyRight;
{
strcpyX (copyRight,
"\012\
Common Data Format (CDF)\012\
(C) Copyright 1990-2006 NASA/GSFC\012\
Space Physics Data Facility\012\
NASA/Goddard Space Flight Center\012\
Greenbelt, Maryland 20771 USA\012\
(Internet -- CDFSUPPORT@LISTSERV.GSFC.NASA.GOV)\012", CDF_COPYRIGHT_LEN);
return;
}
/******************************************************************************
* CDFstatusText.
******************************************************************************/
STATICforIDL CDFstatus CDFstatusText (status, textPtr)
CDFstatus status;
char *textPtr;
{
#if INCLUDE_STATUS_TEXT
switch (status) {
case ATTR_EXISTS:
strcpyX (textPtr,
"ATTR_EXISTS: Named attribute already exists.",
CDF_STATUSTEXT_LEN);
break;
case ATTR_NAME_TRUNC:
strcpyX (textPtr,
"ATTR_NAME_TRUNC: Attribute name truncated.",
CDF_STATUSTEXT_LEN);
break;
case BAD_ALLOCATE_RECS:
strcpyX (textPtr,
"BAD_ALLOCATE_RECS: Illegal number of records to allocate specified.",
CDF_STATUSTEXT_LEN);
break;
case BAD_ARGUMENT:
strcpyX (textPtr,
"BAD_ARGUMENT: Illegal/undefined argument specified.",
CDF_STATUSTEXT_LEN);
break;
case BAD_ATTR_NAME:
strcpyX (textPtr,
"BAD_ATTR_NAME: Illegal attribute name specified.",
CDF_STATUSTEXT_LEN);
break;
case BAD_ATTR_NUM:
strcpyX (textPtr,
"BAD_ATTR_NUM: Illegal attribute number specified.",
CDF_STATUSTEXT_LEN);
break;
case BAD_CACHE_SIZE:
strcpyX (textPtr,
"BAD_CACHE_SIZE: Illegal number of cache buffers specified.",
CDF_STATUSTEXT_LEN);
break;
case BAD_CDF_EXTENSION:
strcpyX (textPtr,
"BAD_CDF_EXTENSION: Illegal/missing extension for multi-file CDF.",
CDF_STATUSTEXT_LEN);
break;
case BAD_CDF_ID:
strcpyX (textPtr,
"BAD_CDF_ID: CDF identifier is unknown or invalid.",
CDF_STATUSTEXT_LEN);
break;
case BAD_CDF_NAME:
strcpyX (textPtr,
"BAD_CDF_NAME: Illegal CDF name specified.",
CDF_STATUSTEXT_LEN);
break;
case BAD_CDFSTATUS:
strcpyX (textPtr,
"BAD_CDFSTATUS: Unknown CDF status code specified.",
CDF_STATUSTEXT_LEN);
break;
case BAD_COMPRESSION_PARM:
strcpyX (textPtr,
"BAD_COMPRESSION_PARM: An illegal compression parameter was specified.",
CDF_STATUSTEXT_LEN);
break;
case BAD_DATA_TYPE:
strcpyX (textPtr,
"BAD_DATA_TYPE: Unknown data type specified or encountered.",
CDF_STATUSTEXT_LEN);
break;
case BAD_DECODING:
strcpyX (textPtr,
"BAD_DECODING: Unknown or unsupported data decoding specified.",
CDF_STATUSTEXT_LEN);
break;
case BAD_DIM_COUNT:
strcpyX (textPtr,
"BAD_DIM_COUNT: Illegal dimension count specified.",
CDF_STATUSTEXT_LEN);
break;
case BAD_DIM_INDEX:
strcpyX (textPtr,
"BAD_DIM_INDEX: Dimension index out of range.",
CDF_STATUSTEXT_LEN);
break;
case BAD_DIM_INTERVAL:
strcpyX (textPtr,
"BAD_DIM_INTERVAL: Illegal dimension interval specified.",
CDF_STATUSTEXT_LEN);
break;
case BAD_DIM_SIZE:
strcpyX (textPtr,
"BAD_DIM_SIZE: Dimension size specified as zero or less.",
CDF_STATUSTEXT_LEN);
break;
case BAD_ENCODING:
strcpyX (textPtr,
"BAD_ENCODING: Unknown or unsupported data encoding.",
CDF_STATUSTEXT_LEN);
break;
case BAD_ENTRY_NUM:
strcpyX (textPtr,
"BAD_ENTRY_NUM: Illegal attribute entry number specified.",
CDF_STATUSTEXT_LEN);
break;
case BAD_BLOCKING_FACTOR:
strcpyX (textPtr,
"BAD_BLOCKING_FACTOR: Illegal blocking factor specified (less than zero).",
CDF_STATUSTEXT_LEN);
break;
case BAD_FNC_OR_ITEM:
strcpyX (textPtr,
"BAD_FNC_OR_ITEM: The specified function or item is illegal.",
CDF_STATUSTEXT_LEN);
break;
case BAD_FORMAT:
strcpyX (textPtr,
"BAD_FORMAT: Unknown CDF format specified.",
CDF_STATUSTEXT_LEN);
break;
case BAD_INITIAL_RECS:
strcpyX (textPtr,
"BAD_INITIAL_RECS: Illegal number of initial records.",
CDF_STATUSTEXT_LEN);
break;
case BAD_MAJORITY:
strcpyX (textPtr,
"BAD_MAJORITY: Unknown variable majority specified.",
CDF_STATUSTEXT_LEN);
break;
case BAD_MALLOC:
strcpyX (textPtr,
"BAD_MALLOC: Unable to allocate dynamic memory.",
CDF_STATUSTEXT_LEN);
break;
case BAD_NEGtoPOSfp0_MODE:
strcpyX (textPtr,
"BAD_NEGtoPOSfp0_MODE: Illegal negative to positive floating point zero mode.",
CDF_STATUSTEXT_LEN);
break;
case BAD_NUM_DIMS:
strcpyX (textPtr,
"BAD_NUM_DIMS: Illegal number of dimensions.",
CDF_STATUSTEXT_LEN);
break;
case BAD_NUM_ELEMS:
strcpyX (textPtr,
"BAD_NUM_ELEMS: Illegal number of elements (for data type).",
CDF_STATUSTEXT_LEN);
break;
case BAD_NUM_VARS:
strcpyX (textPtr,
"BAD_NUM_VARS: Illegal number of variables specified.",
CDF_STATUSTEXT_LEN);
break;
case BAD_READONLY_MODE:
strcpyX (textPtr,
"BAD_READONLY_MODE: Illegal read-only mode specified.",
CDF_STATUSTEXT_LEN);
break;
case BAD_REC_COUNT:
strcpyX (textPtr,
"BAD_REC_COUNT: Illegal record count specified.",
CDF_STATUSTEXT_LEN);
break;
case BAD_REC_INTERVAL:
strcpyX (textPtr,
"BAD_REC_INTERVAL: Illegal record interval specified.",
CDF_STATUSTEXT_LEN);
break;
case BAD_REC_NUM:
strcpyX (textPtr,
"BAD_REC_NUM: Record number is out of range.",
CDF_STATUSTEXT_LEN);
break;
case BAD_SCOPE:
strcpyX (textPtr,
"BAD_SCOPE: Unrecognized attribute scope.",
CDF_STATUSTEXT_LEN);
break;
case BAD_SPARSEARRAYS_PARM:
strcpyX (textPtr,
"BAD_SPARSEARRAYS_PARM: An illegal sparse arrays parameter was specified.",
CDF_STATUSTEXT_LEN);
break;
case BAD_SCRATCH_DIR:
strcpyX (textPtr,
"BAD_SCRATCH_DIR: An illegal scratch directory was specified.",
CDF_STATUSTEXT_LEN);
break;
case BAD_VAR_NAME:
strcpyX (textPtr,
"BAD_VAR_NAME: Illegal variable name specified.",
CDF_STATUSTEXT_LEN);
break;
case BAD_VAR_NUM:
strcpyX (textPtr,
"BAD_VAR_NUM: Illegal variable number specified.",
CDF_STATUSTEXT_LEN);
break;
case BAD_zMODE:
strcpyX (textPtr,
"BAD_zMODE: Illegal zMode specified.",
CDF_STATUSTEXT_LEN);
break;
case CANNOT_ALLOCATE_RECORDS:
strcpyX (textPtr,
"CANNOT_ALLOCATE_RECORDS: Records can't be allocated at this time.",
CDF_STATUSTEXT_LEN);
break;
case CANNOT_CHANGE:
strcpyX (textPtr,
"CANNOT_CHANGE: The parameter/value can't be set/changed.",
CDF_STATUSTEXT_LEN);
break;
case CANNOT_COMPRESS:
strcpyX (textPtr,
"CANNOT_COMPRESS: The compression for the CDF/variable can't be set/modified.",
CDF_STATUSTEXT_LEN);
break;
case CANNOT_SPARSEARRAYS:
strcpyX (textPtr,
"CANNOT_SPARSEARRAYS: Sparse arrays can't be set/modified for the variable.",
CDF_STATUSTEXT_LEN);
break;
case CANNOT_SPARSERECORDS:
strcpyX (textPtr,
"CANNOT_SPARSERECORDS: Sparse records can't be set/modified for the variable.",
CDF_STATUSTEXT_LEN);
break;
case CDF_CLOSE_ERROR:
strcpyX (textPtr,
"CDF_CLOSE_ERROR: Close failed - error from file system.",
CDF_STATUSTEXT_LEN);
break;
case CDF_CREATE_ERROR:
strcpyX (textPtr,
"CDF_CREATE_ERROR: Creation failed - error from file system.",
CDF_STATUSTEXT_LEN);
break;
case CDF_DELETE_ERROR:
strcpyX (textPtr,
"CDF_DELETE_ERROR: Deletion failed - error from file system.",
CDF_STATUSTEXT_LEN);
break;
case CDF_EXISTS:
strcpyX (textPtr,
"CDF_EXISTS: The CDF named already exists.",
CDF_STATUSTEXT_LEN);
break;
case CDF_INTERNAL_ERROR:
strcpyX (textPtr,
"CDF_INTERNAL_ERROR: An internal error has occurred in the CDF library.",
CDF_STATUSTEXT_LEN);
break;
case CDF_NAME_TRUNC:
strcpyX (textPtr,
"CDF_NAME_TRUNC: CDF pathname truncated.",
CDF_STATUSTEXT_LEN);
break;
case CDF_OK:
strcpyX (textPtr,
"CDF_OK: Function completed successfully.",
CDF_STATUSTEXT_LEN);
break;
case CDF_OPEN_ERROR:
strcpyX (textPtr,
"CDF_OPEN_ERROR: Open failed - error from file system.",
CDF_STATUSTEXT_LEN);
break;
case CDF_READ_ERROR:
strcpyX (textPtr,
"CDF_READ_ERROR: Read failed - error from file system.",
CDF_STATUSTEXT_LEN);
break;
case CDF_WRITE_ERROR:
strcpyX (textPtr,
"CDF_WRITE_ERROR: Write failed - error from file system.",
CDF_STATUSTEXT_LEN);
break;
case CORRUPTED_V2_CDF:
strcpyX (textPtr,
"CORRUPTED_V2_CDF: Version 2 CDF is corrupted.",
CDF_STATUSTEXT_LEN);
break;
case CORRUPTED_V3_CDF:
strcpyX (textPtr,
"CORRUPTED_V3_CDF: Version 3 CDF is corrupted.",
CDF_STATUSTEXT_LEN);
break;
case DECOMPRESSION_ERROR:
strcpyX (textPtr,
"DECOMPRESSION_ERROR: An error was detected in the compressed data.",
CDF_STATUSTEXT_LEN);
break;
case DID_NOT_COMPRESS:
strcpyX (textPtr,
"DID_NOT_COMPRESS: The CDF or variable values did not compress.",
CDF_STATUSTEXT_LEN);
break;
case EMPTY_COMPRESSED_CDF:
strcpyX (textPtr,
"EMPTY_COMPRESSED_CDF: No internal records in a compressed CDF.",
CDF_STATUSTEXT_LEN);
break;
case END_OF_VAR:
strcpyX (textPtr,
"END_OF_VAR: Current position is at the end of the variable.",
CDF_STATUSTEXT_LEN);
break;
case FORCED_PARAMETER:
strcpyX (textPtr,
"FORCED_PARAMETER: A specified parameter was changed to a different value.",
CDF_STATUSTEXT_LEN);
break;
case IBM_PC_OVERFLOW:
strcpyX (textPtr,
"PC_OVERFLOW: Greater than 64Kb of memory required.",
CDF_STATUSTEXT_LEN);
break;
case ILLEGAL_FOR_SCOPE:
strcpyX (textPtr,
"ILLEGAL_FOR_SCOPE: The operation is illegal for the attribute's scope.",
CDF_STATUSTEXT_LEN);
break;
case ILLEGAL_IN_zMODE:
strcpyX (textPtr,
"ILLEGAL_IN_zMODE: Operation is illegal while in zMode.",
CDF_STATUSTEXT_LEN);
break;
case ILLEGAL_ON_V1_CDF:
strcpyX (textPtr,
"ILLEGAL_ON_V1_CDF: Operation not allowed on Version 1 CDFs.",
CDF_STATUSTEXT_LEN);
break;
case MULTI_FILE_FORMAT:
strcpyX (textPtr,
"MULTI_FILE_FORMAT: Operation n/a when multi-file format.",
CDF_STATUSTEXT_LEN);
break;
case NA_FOR_VARIABLE:
strcpyX (textPtr,
"NA_FOR_VARIABLE: Operation n/a for the type of variable.",
CDF_STATUSTEXT_LEN);
break;
case NEGATIVE_FP_ZERO:
strcpyX (textPtr,
"NEGATIVE_FP_ZERO: A negative floating point zero (-0.0) was detected.",
CDF_STATUSTEXT_LEN);
break;
case NO_ATTR_SELECTED:
strcpyX (textPtr,
"NO_ATTR_SELECTED: An attribute has not been selected.",
CDF_STATUSTEXT_LEN);
break;
case NO_CDF_SELECTED:
strcpyX (textPtr,
"NO_CDF_SELECTED: A CDF has not been selected.",
CDF_STATUSTEXT_LEN);
break;
case NO_DELETE_ACCESS:
strcpyX (textPtr,
"NO_DELETE_ACCESS: Deleting is not allowed (read only).",
CDF_STATUSTEXT_LEN);
break;
case NO_ENTRY_SELECTED:
strcpyX (textPtr,
"NO_ENTRY_SELECTED: An attribute entry has not been selected.",
CDF_STATUSTEXT_LEN);
break;
case NO_MORE_ACCESS:
strcpyX (textPtr,
"NO_MORE_ACCESS: No more access to the CDF due to a severe error.",
CDF_STATUSTEXT_LEN);
break;
case NO_PADVALUE_SPECIFIED:
strcpyX (textPtr,
"NO_PADVALUE_SPECIFIED: A pad value has not been specified.",
CDF_STATUSTEXT_LEN);
break;
case NO_STATUS_SELECTED:
strcpyX (textPtr,
"NO_STATUS_SELECTED: A CDF status code has not been selected.",
CDF_STATUSTEXT_LEN);
break;
case NO_SUCH_ATTR:
strcpyX (textPtr,
"NO_SUCH_ATTR: Named attribute not found in this CDF.",
CDF_STATUSTEXT_LEN);
break;
case NO_SUCH_CDF:
strcpyX (textPtr,
"NO_SUCH_CDF: The specified CDF does not exist.",
CDF_STATUSTEXT_LEN);
break;
case NO_SUCH_ENTRY:
strcpyX (textPtr,
"NO_SUCH_ENTRY: No such entry for specified attribute.",
CDF_STATUSTEXT_LEN);
break;
case NO_SUCH_RECORD:
strcpyX (textPtr,
"NO_SUCH_RECORD: The specified record does not exist.",
CDF_STATUSTEXT_LEN);
break;
case NO_SUCH_VAR:
strcpyX (textPtr,
"NO_SUCH_VAR: Named variable not found in this CDF.",
CDF_STATUSTEXT_LEN);
break;
case NO_VAR_SELECTED:
strcpyX (textPtr,
"NO_VAR_SELECTED: A variable has not been selected.",
CDF_STATUSTEXT_LEN);
break;
case NO_VARS_IN_CDF:
strcpyX (textPtr,
"NO_VARS_IN_CDF: CDF contains no rVariables.",
CDF_STATUSTEXT_LEN);
break;
case NO_WRITE_ACCESS:
strcpyX (textPtr,
"NO_WRITE_ACCESS: Write access is not allowed on the CDF file(s).",
CDF_STATUSTEXT_LEN);
break;
case NOT_A_CDF:
strcpyX (textPtr,
"NOT_A_CDF: Named CDF is corrupted or not actually a CDF.",
CDF_STATUSTEXT_LEN);
break;
case NOT_A_CDF_OR_NOT_SUPPORTED:
strcpyX (textPtr,
"NOT_A_CDF_OR_NOT_SUPPORTED: Named CDF is corrupted or not supported by the current library version.",
CDF_STATUSTEXT_LEN);
break;
case PRECEEDING_RECORDS_ALLOCATED:
strcpyX (textPtr,
"PRECEEDING_RECORDS_ALLOCATED: The preceeding records were also allocated.",
CDF_STATUSTEXT_LEN);
break;
case READ_ONLY_DISTRIBUTION:
strcpyX (textPtr,
"READ_ONLY_DISTRIBUTION: Writing/deleting is illegal.",
CDF_STATUSTEXT_LEN);
break;
case READ_ONLY_MODE:
strcpyX (textPtr,
"READ_ONLY_MODE: CDF is in read-only mode.",
CDF_STATUSTEXT_LEN);
break;
case SCRATCH_CREATE_ERROR:
strcpyX (textPtr,
"SCRATCH_CREATE_ERROR: Scratch file creation failed - error from file system.",
CDF_STATUSTEXT_LEN);
break;
case SCRATCH_DELETE_ERROR:
strcpyX (textPtr,
"SCRATCH_DELETE_ERROR: Scratch file deletion failed - error from file system.",
CDF_STATUSTEXT_LEN);
break;
case SCRATCH_READ_ERROR:
strcpyX (textPtr,
"SCRATCH_READ_ERROR: Scratch file read failed - error from file system.",
CDF_STATUSTEXT_LEN);
break;
case SCRATCH_WRITE_ERROR:
strcpyX (textPtr,
"SCRATCH_WRITE_ERROR: Scratch file write failed - error from file system.",
CDF_STATUSTEXT_LEN);
break;
case SINGLE_FILE_FORMAT:
strcpyX (textPtr,
"SINGLE_FILE_FORMAT: Operation n/a when single-file format.",
CDF_STATUSTEXT_LEN);
break;
case SOME_ALREADY_ALLOCATED:
strcpyX (textPtr,
"SOME_ALREADY_ALLOCATED: One or more of the records were already allocated.",
CDF_STATUSTEXT_LEN);
break;
case TOO_MANY_PARMS:
strcpyX (textPtr,
"TOO_MANY_PARMS: Too many parameters were encountered.",
CDF_STATUSTEXT_LEN);
break;
case TOO_MANY_VARS:
strcpyX (textPtr,
"TOO_MANY_VARS: Only a limited number of variables may exist in this CDF.",
CDF_STATUSTEXT_LEN);
break;
case UNKNOWN_COMPRESSION:
strcpyX (textPtr,
"UNKNOWN_COMPRESSION: An unknown type of compression was encountered.",
CDF_STATUSTEXT_LEN);
break;
case UNKNOWN_SPARSENESS:
strcpyX (textPtr,
"UNKNOWN_SPARSENESS: An unknown sparseness was encountered.",
CDF_STATUSTEXT_LEN);
break;
case UNSUPPORTED_OPERATION:
strcpyX (textPtr,
"UNSUPPORTED_OPERATION: The attempted operation isn't supported at this time.",
CDF_STATUSTEXT_LEN);
break;
case VAR_ALREADY_CLOSED:
strcpyX (textPtr,
"VAR_ALREADY_CLOSED: Variable is already closed.",
CDF_STATUSTEXT_LEN);
break;
case VAR_CLOSE_ERROR:
strcpyX (textPtr,
"VAR_CLOSE_ERROR: Close failed - error from file system.",
CDF_STATUSTEXT_LEN);
break;
case VAR_CREATE_ERROR:
strcpyX (textPtr,
"VAR_CREATE_ERROR: Creation failed - error from file system.",
CDF_STATUSTEXT_LEN);
break;
case VAR_DELETE_ERROR:
strcpyX (textPtr,
"VAR_DELETE_ERROR: Deletion failed - error from file system.",
CDF_STATUSTEXT_LEN);
break;
case VAR_EXISTS:
strcpyX (textPtr,
"VAR_EXISTS: Named variable already exists.",
CDF_STATUSTEXT_LEN);
break;
case VAR_NAME_TRUNC:
strcpyX (textPtr,
"VAR_NAME_TRUNC: Variable name truncated.",
CDF_STATUSTEXT_LEN);
break;
case VAR_OPEN_ERROR:
strcpyX (textPtr,
"VAR_OPEN_ERROR: Open failed - error from file system.",
CDF_STATUSTEXT_LEN);
break;
case VAR_READ_ERROR:
strcpyX (textPtr,
"VAR_READ_ERROR: Read failed - error from file system.",
CDF_STATUSTEXT_LEN);
break;
case VAR_WRITE_ERROR:
strcpyX (textPtr,
"VAR_WRITE_ERROR: Write failed - error from file system.",
CDF_STATUSTEXT_LEN);
break;
case VIRTUAL_RECORD_DATA:
strcpyX (textPtr,
"VIRTUAL_RECORD_DATA: One or more of the records are virtual.",
CDF_STATUSTEXT_LEN);
break;
case BAD_CHECKSUM:
strcpyX (textPtr,
"BAD_CHECKSUM: The specified checksum method is not currently supported.",
CDF_STATUSTEXT_LEN);
break;
case CHECKSUM_ERROR:
strcpyX (textPtr,
"CHECKSUM_ERROR: The data integrity verification through the checksum failed.",
CDF_STATUSTEXT_LEN);
break;
case CHECKSUM_NOT_ALLOWED:
strcpyX (textPtr,
"CHECKSUM_NOT_ALLOWED: The checksum is not allowed for old versioned files.",
CDF_STATUSTEXT_LEN);
break;
/*
case ZLIB_COMPRESSION_ERROR:
strcpyX (textPtr,
"ZLIB_COMPRESSION_ERROR: Error during Zlib compression/decompressing.",
CDF_STATUSTEXT_LEN);
break;
*/
case ILLEGAL_EPOCH_FIELD:
strcpyX (textPtr,
"ILLEGAL_EPOCH_FIELD: One or more of the date/time fields is out of valid range.",
CDF_STATUSTEXT_LEN);
break;
default:
sprintf (textPtr, "Text not found - unknown CDF status code (%ld).", status);
return BAD_CDFSTATUS;
}
#else
sprintf (textPtr,
"Explanation text not available (%ld).", (long) status);
#endif
return CDF_OK;
}
syntax highlighted by Code2HTML, v. 0.9.1