NASA Logo, National Aeronautics and Space Administration

CDF Change Logs - CDF V3.9.0

Version Date Change Note
V2.0.0 11-Feb-91 Release of CDF V2.0.
V2.1.0 7-Jun-91 Release of CDF V2.1.
V2.2.0 20-May-92 Release of CDF V2.2.
V2.3.0 1-Oct-92 Release of CDF V2.3.
V2.4.0 26-Jan-94 Release of CDF V2.4.
V2.5.0 21-Dec-94 Release of CDF V2.5.
V2.6.0* 23-Feb-96 Alpha release of CDF V2.6.
V2.6.0# 5-Apr-96 Beta release of CDF V2.6.
V2.6.0& 13-Jun-96 Beta release of CDF V2.6.
V2.6.0$ 17-Jun-96 Beta release of CDF V2.6.
V2.6.0@ 15-Aug-96 Beta release of CDF V2.6.
V2.6.0 10-Oct-96 Release of CDF V2.6.
V2.7.0 27-Sep-99 Release of CDF V2.7.
V2.7.1 16-May-01
  • Add new ports: Solaris on PC, MacOS X and Linux on DEC/Alpha.
  • Correct bugs in CDFDump program.
  • Correct and enhance CDF-Java APIs and Java Native Interface (JNI).
  • Add new Java-based tool programs for CDFEdit and CDFExport.
  • Add variable name checking in CDFconvert for compression option.
  • Add Cygwin port for win32 on PC. Create individual tool programs for Windows using Cygwin libraries.
05-Dec-01 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.
  • 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.
  • 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.
25-Apr-07 Changed the default size of cache buffers from 512 to 10240 bytes to improve data access performance.
18-Jun-07 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.
  • A new tool, cdfvalidate, is added.
  • All CDF tools, except cdfconvert, will have sanity checks on.
  • Added Linux running on PPC.
  • Modified CDF-Java code and JNI to properly handle multi-dimensional variables in COLUMN-major file, and preserve variable's dimensionality if a non-variant dimension exists.
V3.3.1 5-May-11
  • Added several new features to cdfexport tool program.
  • Bug fixed in Java-CDF APIs and a couple of new methods were added.
  • New features were added to cdfdump to allow selected variables and a range of records to be dumped.
  • MingW port was revised to handle 'pdcurses', if installed, for the curses-based tools.
  • Fixed cdf validation to allow some V2.0 files to be valid.
  • Bugs fixed in the core library, Java-CDF APIs and tools.
1-Sep-11 (V3.3.1.1) Fixed 64-bit Fortran on Solaris/Intel port. Changed release sub-increment from an character to an alphanumeric number. Fixed Java and C# APIs. Fixed library bug.
V3.3.2 5-Sep-11 (V3.3.2.1-2)
  • Added CDF_INT8 and CDF_TIME_TT2000 data types.
  • Implemented leap seconds into CDF_TIME_TT2000.
  • New features were added to handle epoch values in/to CDF_TIME_TT2000: including encoding, decoding, parsing, computing and breakdown.
  • Bugs fixed in the core library.
9-Jan-12 (V3.3.2.3)
  • Email address changed for cdfsupport.
  • Bugs fixed in the core library and other APIs.
V3.4.0 1-Mar-12 (V3.4.0.0)
  • Convert V3.3.2.3 to new version.
  • Reset pad values for INT8 and TT2000 data types.
V3.4.1 10-May-12 (V3.4.1.0)
  • Bugs fixed in core library.
  • Minor changes in skt2cdf tool program and cdfdump help.
  • Fixed cdfmerge while using text file for input files control.
  • Modified Java CDF class's open method to delay collecting variable and attribute data.
V3.5.0 10-Oct-12 (V3.5.0.0 beta)
  • Bugs fixed in core library and tool programs.
  • Used open source zlib source code to replace CDF's modified GZIP compression/decompression from original code by Jean-loup Gailly and Mark Adler.
  • Modified the default blocking factor for compressed variable data to improve performance.
15-Sep-13 (V3.5.0.1)
  • Fixed minor memory leaks in core library and JNI.
  • 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.
  • Minor bugs fixed.
10-Jun-15 (V3.6.0.4)
  • Modified the cdfjava jar file. Extended the CDF status message length.
V3.6.1 20-Sep-15 (V3.6.1.0)
  • Used the preserved system temporary folder, e.g. /tmp for Linux/Unix/MacOSX, to hold the temporary file(s) while doing compression/decompression.
  • Set temporary file name using the random number generator with process id and current time as the seed.
  • Added support for computing TT2000 from UTC if the passed day is DOY (day of the year from January 1st).
  • Added a few options to cdfconvert tool program.
V3.6.2 20-Mar-16 (V3.6.2.0)
  • Modified to Makefile and installation process to support Mac OS X El Captain (10.11).
  • 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.
  • Modified cdfexport to not truncate variable name for output.
  • Have a separate patch for supporting IDL 8.6.
V3.7.0 20-Apr-18 (V3.7.0.0)
  • Allowed Null-terminating string for variable data and attribute entries.
  • Allowed multiple strings for variable attribute entry. A special 3-character delimiter "\N " is used for storing the strings in CDF. A data string contains such characters will be mis-interpreted as multi-strings by the CDF.
  • Added support for ARM architecture.
  • Added Itanium IA64 on OpenVMS.
  • Added pure Java package, cdfj.jar, for CDF read/write.
  • Enhanced the CDF XML schema.
V3.7.1 29-May-19 (V3.7.1.0)
  • Added a set of more generalized CDF epoch data encoding and parsing functions. Modified the default encoded epoch data to be of ISO 8601 form.
  • Added a new set of CDF epoch data conversion to/from Unix time.
  • Modified cdfconvert tool program to set the rVariables' dimension to zero (0), when converting a CDF with zMode 2. Simialar change is also applied to cdfexport tool program.
  • Enhanced the CDF XML schema.
  • Bugs fixed.
V3.8.0 6-Mar-20 (V3.8.0.0)
  • Modified the code to use a variable's FILLVAL, replacing its PAD value, for all variable's missing data if it exists, provided its data type being equivalent to its variable's.
  • String typed variable's pad value is filled with a single space and followed by NUL(s), instead of multiple spaces.
  • Changed skt2cdf tool program to allow handling a skeleton table directly from Windows (with \r\n at the end in each line) on non-Windows systems.
  • Added new options to cdfconvert tool program to
    • Remove non-varying dimension(s) from the source zVariable(s) if it does not have DEPEND_* attribute defined to the destination variable.
    • Replace any pad value(s) in a variable's data by its FILLVAL value, if FILLVAL attribute exists and has an equivalent data type as variable's.
  • Modified the tool programs to use FORMAT attribute to encode both data and metadata if the format is to be used. These include all C-based and Java-based tools.
  • A new option is added to cdf2skt tool to allow users to choose how to display variable's metadata and data, either with or witout format.
  • Modified the default encoded epoch data to be of ISO 8601 form.
  • Bugs fixed.
9-Jul-20 (V3.8.0.1)
  • Modified the CDF epoch breakdown functions that might cause incorrect day being returned.
V3.8.1 22-Mar-22 (V3.8.1.0)
  • Extended support for Unicode in UTF-8 encoding.
  • Added ARM processor support for Apple Silicone Macs (M1) and other platforms.
  • Modified the dynamic allocation by not placing the space in a linked list.
  • Added a suite of easy-to-use functions for Java/Perl/C#/IDL to read the CDF in a single call with the information in key/value pair form.
  • Added CDF-Json converters.
  • Allowed JNI library to be built in the same process as building the core CDF library. It will combine both libraries into a single fat one.
  • Modified the TT2000 epoch handling to include reverse leap second (from second 58 to second 0).
  • Enhanced the netCDF-CDF converters.
  • Revised the documents for the supported languages.
  • Replaced the commercial package maker, InstallMate, for Windows binary installer by Microsoft Visual Studio and WinZip.
V3.9.0 07-feb-23 (V3.9.0.0)
  • Bugs fixed.
  • Increased the regular cache buffer size to improve the performace of getting the requested information.
  • Modified the operations that deals with compressed variable data to avoid using a temporary file(s). The number of staging cache buffer is increasedi to hold more data. Added effective caches managing operations by flushing out the old data and freeing up the used buffers when the compressing operarions reach a point that not enough caches are available for further processing of the compressed data and a temporary file will be created.
  • The compressed variable's blocking factor is limited to a value that will not be over the maximum caches allowed to prevent creating a temporary file(s).
  • Added the data validation option to the tool programs. Modified cdfconvert program to place any variable's data after all CDF's metadata and variables have been created to increase its read efficiency.
  • Moved src/tests directory to cdf_tests directly under the CDF home directory to make the test programs there more visible.