cdfdiff(1)

NAME
cdfdiff - compares two classic netCDF files in parallel

SYNOPSIS

cdfdiff [-b] [-q] [-h] [-v var1,...,varn] [-t diff,ratio] file1 file2

DESCRIPTION
cdfdiff, a sequential version of ncmpidiff, compares the contents of the two classic netCDF files and reports the first difference found to the standard output. The classic file formats include CDF-1, CDF-2, and CDF-5. For variables and attributes, it reports the array indices of the first element found different when option -t is not used. When option -t is used, it reports the element with the largest difference that fails to meet the tolerance requirements. If neither argument -v nor -h is given besides the two file names, the entire files are compared. When comparing two files entirely, the difference between cdfdiff and the Unix command diff is that cdfdiff skips the gaps between variables. The gaps may occur when the alignment feature is used to create a new file. This alignment allows to allocate a larger space for the file header and align the starting file offsets of fixed-size variables (see API ncmpi__enddef and PnetCDF hints). Oftentimes, the contents of gaps are non-zero arbitrary bytes. Thus, two netCDF files (of same or different sizes) can be reported identical by cdfdiff but not by diff.

OPTIONS

-b  Verbose mode - print results (same or different) for all components (file, header, or variables) in comparison

-q  Quiet mode - print nothing on the command-line output. This also disables verbose mode. When in quiet mode, users should check exit status. See below in "EXIT STATUS".

-h  Compare file header only

-v var1,...,varn
    Compare only the given list of variables (names separated by comma without space).

-t diff,ratio
    Compare variables element-wisely with tolerance (diff and ratio separated by comma without space). diff is the absolute value of element-wise difference of two variables with the same name but stored in the two input files. ratio is the relative element-wise difference ratio defined as |x - y|/max(|x|, |y|), where x is an array element from a variable in the first file and y is the corresponding array element of the same variable in the second file. |x| represents the absolute value of x. Note when this option is used, the output reports only the first array element that fails to meet both tolerance requirements.

EXIT STATUS
An exit status of 0 means no differences were found, and 1 means some differences were found. Note on VMS-based system, the exit status values are reversed.

SEE ALSO

ncmpidiff(1), ncmpidump(1), diff(1), pnetcdf(3)

DATE
July 1, 2026