/******************************************************************************
*
* NSSDC/CDF Header file for CDFcompare.
*
* Version 1.6a, 17-Nov-97, Hughes STX.
*
* Modification history:
*
* V1.0 23-Sep-91, J Love Original version (for CDF V2.1).
* V1.1 17-May-92, J Love IBM PC port.
* V1.2 28-Aug-92, J Love CDF V2.3 (shareable/NeXT/zVar).
* V1.3 26-Nov-93, J Love CDF V2.4.
* V1.4 27-Oct-94, J Love CDF V2.5.
* V1.4a 27-Feb-95, J Love `value' qualifier.
* V1.5 28-Mar-95, J Love POSIX.
* V1.5a 14-Sep-95, J Love Hyper groups.
* V1.6 2-Jul-96, J Love CDF V2.6.
* V1.6a 17-Nov-97, J Love Windows NT/Visual C++.
* V1.7 19-Jun-02, M Liu Added the default float/double tolerance
* values.
*
******************************************************************************/
#if !defined(CDFCMPh_INCLUDEd__)
#define CDFCMPh_INCLUDEd__
/******************************************************************************
* Include files.
******************************************************************************/
#include "cdftools.h"
#include "cdflib.h"
#include "cdflib64.h"
#if defined(mac)
# include "cdfcmp.rh"
#endif
/******************************************************************************
* Parameter/qualifier constants.
******************************************************************************/
#define CDFSPEC1parm 0
#define CDFSPEC2parm 1
#define LOGqual 0
#define NOLOGqual 1
#define ATTRSqual 2
#define NOATTRSqual 3
#define VARSqual 4
#define NOVARSqual 5
#define NUMBERSqual 6
#define NONUMBERSqual 7
#define PCTqual 8
#define NOPCTqual 9
#define ZMODESqual 10
#define ETCqual 11
#define NOETCqual 12
#define NEG2POSqual 13
#define NONEG2POSqual 14
#define LOCSqual 15
#define NOLOCSqual 16
#define REPORTqual 17
#define PAGEqual 18
#define NOPAGEqual 19
#define CACHEqual 20
#define STATSqual 21
#define NOSTATSqual 22
#define VALUESqual 23
#define NOVALUESqual 24
#define ABOUTqual 25
#define TOLERANCEqual 26
/******************************************************************************
* Macro constats.
******************************************************************************/
#define INDENT_CDF_STATUS 6
#define MAX_RECORD_INDICES_LEN 40
#define VAR_NAME_FIELD_LEN (CDF_VAR_NAME_LEN + 1 + 14)
#define ENTRY_NUM_FIELD_LEN 12
#define MINnHYPERS 5
#define DEFAULT_FLOAT_TOLERANCE 1.0E-06
#define DEFAULT_DOUBLE_TOLERANCE 1.0E-09
/******************************************************************************
* Function Prototypes.
******************************************************************************/
Logical CompareCDFs PROTOARGs((int argC, char *argV[]));
Logical CompareQOPs PROTOARGs((int *argC, char **argV[]));
Logical CompareTwoCDFs PROTOARGs((char *, char *));
Logical CompareTwoCDFx PROTOARGs((char *, char *));
Logical CompareGeneral PROTOARGs((void));
Logical CompareVscopeEntries PROTOARGs((char *, Logical));
Logical CompareEntry PROTOARGs((char *, long, long, char *, int));
Logical CompareAttributes PROTOARGs((void));
Logical CompareAttributeEntries PROTOARGs((long, long, char *));
Logical CompareZvsR PROTOARGs((void));
Logical CompareVariables PROTOARGs((Logical));
Logical CompareVariableValues PROTOARGs((long, long, char *, Logical));
Logical AttrNumberMatches PROTOARGs((void));
Logical VarNumberMatches PROTOARGs((Logical));
Logical EquivalentDataTypes PROTOARGs((long, long));
Logical SameVarys PROTOARGs((long, long, long, long *, long *));
void CalcIndicesFromOffset PROTOARGs((long vOffset, Logical rowMajor,
long numDims, long *dimSizes,
long *dimVarys, long *dimIndices));
Logical StatusHandlerCmp PROTOARGs((char *, CDFstatus));
void AtRecordIndices PROTOARGs((
struct HyperStruct *hyper, long valueN, Logical rowMajor, long numDims,
long nValuesPerRec, long nValuesPerDim[], long *recNumber, long dimIndices[]
));
void ReportValueDifference PROTOARGs((
long recNumber, long recVary, long numDims, long dimIndices[],
long dimVarys[], char *v, char *varName, Byte *value1, Byte *value2,
char *typeMsg, int lastPct
));
void ReportValueDifferenceTotals PROTOARGs((
long recordDiffCount, long valueDiffCount, char *varName, char *v
));
Logical ParseTolerances PROTOARGs((
char *, float *, Logical *, double *, Logical *
));
Logical ValuesCmp PROTOARGs((void *, void *, long, double, double));
/*****************************************************************************/
#endif
syntax highlighted by Code2HTML, v. 0.9.1