Add a new set of APIs: CDFgetrVarsRecordData,
CDFgetzVarsRecordData, CDFputrVarsRecordData and
CDFputzVarsRecordData to allow a full single
record read/write for a group of r/zVariables.

26-Jan-02

Correct a bug in cdfcmp.c for showing dimension size
differences between two zVariables.

28-Jun-02

Add a new option in cdfcmp.c to allow tolerance checks
while comparing two unequal data values.

22-Jul-02

Handle f77 Fortran for Cygwin.

25-Nov-02

Add 64-bit mode for Solaris/sparc64 for sparcv9.

gcc for 64-bit is added.

V2.7.2

08-Apr-04

Change the way that current variable select is being
handled. Keep the current variable selected offset as a
reference for any following variable selection. Originally,
each time a selection of a variable or getting a variable's
field data will start the search for that variable ALWAYS
from the beginning of the variable list. It requires too
many I/Os for accessing a sequence of variables.

04-May-04

Corrected a bug that caused the f77 to fail under 64-bit
environment.

V3.0

07-Jan-05

Changed file offset from type long (32-bit) to off_t
(64-bit) for the platform on which the data type is
supported. Changed the file I/O functions accordingly.
The CDF internal file structures are changed. Made the
library backward compatible, meaning programs created
from V3.0 can still access (read/update) the CDF files
of older version.

Expanded the length of variable and attribute name from
64 to 256.

The CDF/Java was modified to ensure that concurrent
accessing a CDF would be thread-safe.

Added a new data type, CDF_EPOCH16, to
accommodate more refined time resolution within a
second. A new set of functions, similar to those
of CDF_EPOCH data type, was added.

Modified cdfdump tool program to be more efficient in
data reading.

25-Mar-05

Changed JNI and Java-CDF APIs to ensure proper operations
within the multiple-threaded environment.

V3.1.0

27-May-05

Added new sets of APIs to allow Standard Interface to
interact with zVariables and other CDF-related
information.

11-Jul-05

Added MingW port for PC.

05-Aug-05

Added new functions to allow creating CDF files in
older, V2.7, version, not just the default V3.1.

18-Jan-06

Modified code, including tools, to handle file path
that has ".cdf" or ".skt" extension while it is not
expected to be there.

30-Jan-06

Add FreeBSD port for PCs.

1-Feb-06

Added Intel C++ and Fortran compilers for Linux port on PCs.

22-Jun-06

Added support for HPUX and AIX for both 32 and 64-bit mode.

Allow Mac OS X to build code for PPC and i386.

V3.1.1

12-Oct-06

Modified to allow upper/lower case CDF name for Windows.

Changed Epoch to make 9999-12-31 23:59:999 as encoded date
for the filled value of -1.0E31. For EPOCH16, a pair of
-1.0E31 filled values is encoded as
9999-12-31 23:59:999:999:999:999.

V3.2.0

21-Oct-06

Added MD5 checksum feature for data integrity check of the
CDF. Modified tools to use the checksum feature.
Added a couple of new tool programs: cdfdump and cdfmerge.
Renamed the original cdfdump to cdfirsdump.

Enhanced READONLY mode to improve meta-data access
performance. When READONLY mode is selected, all meta-data
is read and stored in internal data structures which are
then accessed whenever meta-data is requested.

V3.2.1

24-Apr-08

Modified the library so a potential buffer overflow
vulnerability when reading specially-crafted (invalid) CDF
can be avoided.

V3.2.2

10-Aug-08

A maintenance release. Modified the Java tools so they can
handle CDF files with space(s) in the file path. cdfmerge
tool was modified to allow merging "Epoch" variable data
just like other variables. Also, corrected a couple of
bugs related to READONLY mode functions that cause memory
leak and fail to find attribute entries.

V3.2.3

24-Nov-08

Modified CDFdump to add a new output option.

V3.2.4

20-Jan-09

Bug fixed for checksum option running on 64-bit machines.

V3.3.0

10-Jun-09

Added an optional process to validate data fields in a CDF
when it is open. This process addresses a potential issue
of library becoming vulnerable when a compromised CDF is
accessed.

Added a new option to cdfdump tool for how to show the
floating-point values if FORMAT entry is missing.

Added support for Visual Basic on Windows.

Pad value is set when a variable is created.

Fixed code to save CDFid for 64-bit Fortran when a CDF is open/created, even only 4-byte of it is used in Fortran code.

Default pad values are set with rather invalid values, so they can be recognized easily.

31-Mar-14 (V3.5.0.2)

Use the latest open source zlib version 1.2.8.

Properly handle writing string typed pad value that could contain garbage if the length of value is less than the variable's defined number of elements.

Added support for NaN, INF, -INF for floating point values.

Minor bugs fixed.

V3.6.0

01-Mar-15 (V3.6.0.3)

Added a new leap second for 07-01-2015 in the leap second
table.

Added a new header field in a CDF to record the leap second
table the file is based upon. A set of get/set operations
were implemented in all APIs.

Added a new record delete option in the library, which
will rearrange remaining records for sparse record
variables.

Skipped checking the given CDF file name for ASCII for
reading. Only enforce the file name to be ASCII, but
not the directory portion, if provided, for creating
a CDF.

Tool cdfconvert has a few new options: 1. sort the keyed
variable, e.g., Epoch, for the output file, 2. globally reset
the blocking factor, 3. reset the leap second last updated
date, 4. adjust the TT2000 time.

Tool cdfdump was modified to detect whether a CDF is a valid
one, even at the variable data level.

Modified the library to handle string data that has a
shorter length than defined (number of elements) when
reading/writing. It will be filled with spaces,
starting from the NUL.

15-May-16 (V3.6.2.1)

Bug fixed for computing TT2000 time if only year/month/day
components are entered.

V3.6.3

5-Oct-16 (V3.6.3.0)

Added a new leap second for 1/1/2017.

Added a new set of CDFread C-based functions.

Added new features in cdfdump, cdfstats tool programs.

10-Jan-17 (V3.6.3.1)

Modified the data write functions for TT2000 data type
to update the leap second last updated header field from
the leap second table. This resolves a problem if a
master/template CDF is used for creating CDFs as its
header field value never changed.

V3.6.4

20-Mar-17 (V3.6.4.0)

Used C-based function to create the temporary files, in
"mycdftmp.XXXXXX" form, for compression/decompression.

Used a more orderly check for the directory to hold the
temporary files.