CGNS logo

CFD General Notation System
Latest News


CGNS site pages
What is CGNS?
Getting Started
Latest News 
Switch to HDF5
Steering Committee
Discussion Group
Contributed Utilities
Example CGNS Files
Proposed Extensions

Documentation pages
Documentation Home
Papers and Slides
Meeting Minutes
User's Guide
SIDS File Mapping
Mid-Level Library
CGIO User's Guide

January 25, 2016: Version 3.3.0 of the CGNS Software released. New features:

  • Example build scripts for supercomputer systems can be found in src/SampleScripts of the CGNS source code. They include scripts for building zlib, hdf5 (assuming the user does not already have them installed system wide) and a script for building CGNS. All the scripts use autotools; cmake remains untested.
  • The Fortran compiler environment variable can now be set with "FC", this is the preferred method.
  • The Fortran compiler flags can now be set with "FCFLAGS", this is the preferred method. If both FFLAGS (which predates FCFLAGS) and FCFLAGS are set then FCFLAGS is ignored.
  • Replaced the hid_t to double (and vice-versa) utilities to_HDF_ID and to_ADF_ID from a type cast to a function which uses memcpy for the conversion. This is needed for the upcomming release of HDF5 1.10 where hid_t was changed from a 32 bit integer to a 64 bit integer. Should be transparent to user.
  • Implemented CPEX0039 : To enable with CGNS_ENABLE_BASE_SCOPE
  • Implemented CPEX0038 : Quadratic Elements for High Order
  • In the parallel library, the default parallel input/output mode was changed from CGP_INDEPENDENT to CGP_COLLECTIVE.
  • In the parallel library, a new function was added for passing MPI info to the CGNS library: cgp_mpi_info (cgp_mpi_info_f).
  • In the parallel library, a new parallel example benchmark program, benchmark_hdf5.c, was added to directory ptests.
  • In the parallel library, the cgp_*_read/write_dataset APIs now excepts non-allocated arrays, or NULL, as valid parameters for the datasets. Additionally, the dimensional arrays, rmin and rmax, can also be NULL. If the data array is NULL and the dimensional arrays are not NULL, then the validity of the dimensional arrays, rmin and rmax, is not checked. For collective parallel IO, this is used as a mechanism to indicated that processes with NULL API parameters will not write any data to the file.
  • In the parallel library, cgp_queue_set and cgp_queue_flush were depreciated in this release.
  • Configure was changed to check if the Fortran compiler is Fortran 2003 compliant.
  • In the Fortran library, the predefined CGNS constant parameters data types were changed from INTEGER to ENUM, BIND(C) for better C interoperability. The users should use the predefined constants whenever possible and not the numerical value represented by the constants. A variable expecting an enum value returned from a Fortran API should be declared, INTEGER(cgenum_t).
  • In the Fortran library, INCLUDE "cgnslib_f.h" was removed in favor of using a module, USE CGNS. - This allows defining a KIND type for integers instead of the current way of using the preprocessor dependent cgsize_t.
  • The user should be sure to declare the arguments declared int in the C APIs as INTEGER in Fortran. The ONLY Fortran arguments declared as type cgsize_t should be the arguments which are also declared cgsize_t in the C APIs. This is very important when building with option --enable-64bit. The test programs were updated in order to conform to this convention.
  • Assuming the rules in step [enu:int64] were followed, users should not need to use parameter CG_BUILD_64BIT since Fortran's cgsize_t is now guaranteed to match C's cgsize_t.
  • Fortran programs defining CGNS data types with a default INTEGER size of 8 bytes also then need to compile the CGNS library with the default INTEGER size of 8 bytes. This is independent of whether or not --enable-64bit is being used. For clarification, using --enable-64bit allows for data types (i.e. those declared as cgsize_t) to be able to store values which are too large to be stored as 4 byte integers (i.e. numbers greater than 2,147,483,647). It is not necessary, or advisable (since it waste memory), to have CGNS INTEGER types (types declared int in C) to be 8 bytes; the variables declared as cgsize_t will automatically handle data types that can not be stored as 4 byte integers when --enable-64bit is being used. If the CGNS library was not compiled with a default INTEGER of 8 bytes, but the calling program was, then all integers passed to CGNS with C type int should be declared INTEGER(C_INT).
  • A new Fortran API was added for determining the CGNS data type of a variable which is interoperable with the C data type.

    Function cg_get_type(var)
    type, INTENT(IN) :: var
    INTEGER(KIND(enumvar)) :: cg_get_type

    An example of using the new function to automatically specify the CGNS type corresponding to the Fortran data type is,

    INTEGER, DIMENSION(1:10) :: Array_i
    CALL cgp_array_write_f("ArrayI",cg_get_type(Array_i(1)),1,INT(nijk(1),cgsize_t),Ai, err)

  • Removed all parallel flush/queue functions
  • Removed support of "include cgnslib_f.h", all examples and tests were updated to reflect these changes.

December 8, 2015: Marc Poinot will be presenting a CGNS paper at AIAA SciTech in January: "CGNS test suites for CFD software components", Thursday January 7, 2016 at 2pm in session MVC-02.

December 7, 2015: Release candidate version 3.3.0-rc1 is now available and an be downloaded from: Updates since the v3.3.0-alpha.2 release:

  • Removed all parallel flush/queue functions (CGNS-9)
  • Removed support of “include cgnslib_f.h”, all examples and tests were updated to reflect these changes (CGNS-34)
  • Fixed parallel issue when not all processors involved in reading/writing (CGNS-51)
  • Fixed argument being passed to H5Pget_driver in ADFH.c (CGNS-50)
  • Added multiple Fortran and C tests to testing
  • Added a new PGI fortran compiler flag fix issue when passing to C varags (CGNS-40)

September 21, 2015: Pre-release version 3.3.0 of CGNS is available for testing. Fortran testing is particularly needed.

May 19, 2015: CGNS is making the move from SourceForge to GitHub. New download website is SourceForge still has old stable releases (for the time being), but up-to-date code (via git) and future releases are all on GitHub.

December 2, 2014: The CGNS Steering Committee voted to discontinue support for FORTRAN compilers that are not Fortran 2003 compliant.

February 7, 2014: The CGNS Steering Committee recently voted to take Version 3.2 off beta status. As of this date, Version 3.2 is the default available from SourceForge. This version integrates parallel I/O (using HDF5), and also implements CPEX 0033, 0034, and 0036.

July 16, 2013: Created Quick Guide to Upgrading from CGNS v2.5 to v3.x, also available from the download page.

July 15, 2013: Release 2 of Version 3.1.4 is now available. This release adds checks for an open file to routines that don't take a file number (suggestion from Marc Poinet), adds HTMLHelp interface to cmake scripts, fixes a compiler complaint about comparison between int and enum, and fixes Fortran detection and MPI path problems in the CMake scripts. Compatability with version 2.5 (file type CG_FILE_ADF2) is also fixed for both CG_MODE_WRITE and CG_MODE_MODIFY. The CGNStools documentation has been removed from the source distribution, and is now accessed from the NASA Glenn server or a local copy (as with Version 3.2).

July 15, 2013: Version 3.2.1 (beta) is now available. This release fixes a problem with IS_FIXED_SIZE macro for cubic elements and adds AdditionalFamilyName to UserDefinedData. This also implements the cmake script and MPI communicator changes proposed by Cambridge Flow Solutions. There are also numerous updates to the test, tools, and CGNStools utility programs.

Feb 26, 2013: Version 3.2 (beta) is now available. This release provides full integration of parallel I/O using HDF5 with MPI. It also implements the Hierarchy of families (CPEX 0033), Multiple families (CPEX 0034), and Cubic elements (CPEX 0036). Compression (rewriting) of modified CGNS files is no longer automatically done, since this may interfere with parallel I/O. This may be reenabled within an application with the cg_set_compress function, or done later through the CGNSview GUI or with the cgnscompress program in the tools subdirectory. Conversion programs to and from AFLR3, FAST, and TetGen have also been added to CGNStools.

Feb 13, 2013: Version 3.1.4 is now available. This release fixes some issues with goto for FamilyBCDataset for UserData, .etc; fixes cmake and configure scripts to allow MPI with HDF5 and some bugs in those scripts; updates CGNSplot to handle all element types and 1-d and 2-d cases; updates to cgnscheck; adds cgnsBuild.defs Makefile include to installation; allows CellCenter for BCs; and adds cg_precision and cg_precision_f functions to get integer size used to create the file (32 or 64).
Note: CGNStools no longer built automatically, you need to set the configure flag, --enable-cgnstools if using configure.

January 15, 2012: Release 4 of Version 3.1.3 is now available. This release fixes an issue with descriptors under FamilyBCDataSet_t nodes; changes NormalIndexFlag to NormalIndexSize for cg_boco_info; and adds a new Fortran routine cg_exit_on_error_f. This function allows a Fortran application to set a flag which will cause the program to print an error message and exit automatically if an error is encountered.

December 19, 2011: Release 3 of Version 3.1.3 is now available. This release adds a HDF5 CRT_ORDER fix and corrects the directory search order for linked files. Also newly available are complete V2.5 or V3.1 documentation in the form of Windows compiled HTML files (chm). If you are using Windows or have a CHM viewer on Linux you can download these from the download page on the CGNS website or directly from SourceForge.

April 25, 2011: Version 3.1.3 released. This release includes a fix to return HDF5 children in creation order. It also includes the implementation of CPEX 0027 (Time-dependent Connectivities), CPEX 0030 (Zone Sub-Regions) and CPEX 0031 (General SIDS Improvements), along with the alpha release of Parallel CGNS. These are described in the online documentation.

March 30, 2011: Version 3.1 updated and released as Version 3.1-2. This release implements the bug fixes by Xiangmin Jiao (Jim), and adds two new functions to more easily read and write GridLocation data for boundary conditions, cg_boco_gridlocation_read and cg_boco_gridlocation_write.

March 13, 2011: Version 3.1 updated and released as Version 3.1-1. This release fixes a bug with relative path names for ADF links and some cmake configuration options related to non-standard X installations and warning messages. Also, the configure script no longer supports multiple machine builds in the same directory due to the machine-dependent header files that are created.

March 1, 2011: Version 3.1 has been officially released. This release includes 64-bit capability. The changes from version 3.0 beta is the reordering of the element types to put PYRA_13 after MIXED and the 64-bit support. Most of the documentation has been updated to identify the changes.

Feb 1, 2011: Version 3.1 has recently been committed to the SVN repository on SourceForge. It has not been bundled up for release yet, but interested users can access it from the SVN repository. This version has true 64-bit capabilities, which overcomes the previous 32-bit integer limitation and allows the writing of very large grids. UserGuide example codes have also been updated to V3.1, to be able to take advantage of the 64-bit capability.

May 25, 2010: Version 3.0.8 (Beta) has been released as a tarred source release on SourceForge. Parallel CGNS Version 0.2.0 (Alpha) is now available as well. A CGNS MediaWiki page has been created.

August 26, 2009: Version 3.0.5 (Beta) released. This Beta version is intended for users to perform preliminary testing. Many changes have been made from 2.5, but a few of the more noticeable ones include the following: (1) Build system has been changed from autotools to CMake, (2) Moving forward the HDF5 back-end will have preference, (3) cgnscalc and cgnssh have been disabled since they do not currently work. The new beta can be downloaded from the subversion repository at SourceForge.

August 22, 2009: Version 2.5.4 released. This release fixes a long standing issue of memory leakage in the CGNS library when closing a file or deleting a node. It also removes the internal storage of element data when reading and writing, and uses the user supplied buffer instead. In the case of partial reads and writes however, the element data is currently reloaded into memory to do the operations.

March 11, 2007: Version 2.5.3 released. This version changes the mispelled Celcius to Celsius, fixes handling of soft links when rewriting the CGNS file, and fixes a number of gcc compiler warnings.

September 11, 2007: A new instructor-led AIAA short course is being offered starting at the Aerospace Sciences Meeting in Reno, NV, January 5-6, 2008: "Effective Use of the CFD General Notation System (CGNS) for Commercial and Research Applications." A description can be found by going to: Click on "Courses & Training", then "Schedule". The CGNS course is listed under the Heading: January 2008. Or go directly to: Summary of Short Course.

September 7, 2007: Version 2.5 taken off beta status. This new release adds "CG_" prefixes to the C preprocessor defines MODE_xxx, Null, and UserDefined. For example, MODE_READ is now CG_MODE_READ and Null is now CG_Null. The old defines are still currently supported. Support has been added to build the cgns library as a DLL under Windows. The NormalIndex arguments to cg_boco_info, cg_boco_normal_write are now optional (pass as 0 or NULL to ignore). Moved some of the CGNS utility programs, such as cgnscheck, to the subdirectory 'tools' in the cgns distribution. This may now be built without building cgnstools. Also, final release of cgnsib_2.4 made (primarily an update of version number from 2.42 to 2.46, and some minor bug fixes). The last digit on the version number is now ignored when reporting that a file was created with a newer version than the current library. Finally, in cgnstools, changed cgnsplot to use a tree layout instead of lists, and added a cutting plane for viewing mesh cross-sections. Fixed a long standing bug in cgns_interpolate which was causing that program to work incorrectly or crash. Also added a VTK file export routine for CGNS files.

October 5, 2006: Version 2.5 (beta) of the CGNS library has been released (cgnslib_2.5-1.tar.gz). This fixes problems with partial read and writes, and adds some additional capabilities (goto operation enhancements, type names, new cgns file checker, setting path to search for links, and new routine for configuring CGNS). Documentation is not available yet. Look in the "tests" subdirectory at "test_partial.c" and "test_goto.c" for examples of the use of these routines. In addition, there are 2 other new releases for download from SourceForge: (1) cgnslib_2.4-5.tar.gz: This release fixes some problems with ADF on Windows 64 bit machines, and adds a -64 option to the configure.bat file. (2) cgnstools-2-5-1.tar.gz: Adds support for CGNS version 2.5. Configures the Tcl/Tk GUI to use the current color scheme rather than a "Windows" type color scheme. Fixes some minor bugs and adds some improvement to the cgnscheck program. Allows reading of both HDF5 and ADF - based CGNS files (requires the adf2hdf and hdf2adf convertor programs).

Spring, 2006: There are two special CGNS "events" planned for the American Institute of Aeronautics and Astronautics (AIAA) meeting being held 5-8 June 2006 in San Francisco. The first is a Panel discussion, tentatively titled "CGNS Practical Applications in CFD". This will occur during the regular AIAA sessions at the conference. The second is a "CGNS Tutorial Session", currently scheduled for Wednsday, 7 June 2006 in the evening. This session will be conducted in two parts: (1) Basic usage of CGNS (including examples for structured and unstructured grids), and (2) Advanced topics (tentatively including HDF-5 usage, parallel implementation, and SIDS high level representation). The tutorial session will be taught by five experienced users/developers of CGNS and will be a great way to either get a basic introduction or to refine your knowledge of CGNS. Note that AIAA charges a registration fee for conference attendance, but there is no additional fee to attend the CGNS events. More information about the AIAA conference can be found at: Click on "Conferences & Events", then click on "36th AIAA Fluid Dynamics Conference and Exhibit".

August 23, 2005: New releases of Version 2.3 and 2.4 of the CGNS library and CGNStools. This is the final release for Version 2.3 - Version 2.4 is now the official version. The CGNS library releases fixed a bug in cg_family_write and others where the wrong file (when multiple are open) might be accessed or a segfault occur. Added unstructured mesh rind to Version 2.4, and support for that in CGNSplot and cgnscheck. Improved the Fortran to C interface, particularly under Windows, Also fixed some minor bugs in the CGNStools and improved the cgnscheck program.

August 8, 2005: CGNStalk discussion list moved from to

May 14, 2005: Version 2.4 (Revision 2) of the CGNS library released. The HDF5 interface (ADFH) may now be selected at build time with the configuration script. Fixed some bugs.

December 2, 2004: Version 2.4 (beta) of the CGNS library has been released. This version includes the extensions by Intelligent Light. These extensions include 8 base units, partial read/write, Electromagnetics, 1tot1 connectivity properties, and extensions to the FamilyBC, BCDataSet and UserDefinedData. Preliminary documentation for these extensions in the form of PDF files is also available for download. 

October 1, 2004: Released an update to Version 2.3 of the CGNS library. This update fixes some problems with MLL routines returning the wrong error code (or terminating prematurely). Also, checks are now performed when creating a CGNS file to prevent writing a file which fails to read. A new version of cgnstools has also been released with improvements to both adfviewer and cgnsplot. The cgnscheck program has been significantly improved. It should now check the validity of all CGNS 2.3 nodes. 

March 22, 2004: ADFH has been released as beta. This is a complete implementation of CGNS using HDF5 instead of ADF. 

January 22, 2004: Version 2.3 of the CGNS library has been released. The major changes in this version over that of 2.2 is a significant speedup in reading and writing when dealing with a large number of zones and the reimplementation of ElementList and ElementRange for specifying boundary conditions. 

December 13, 2003: An initial prototype has been released which replaces ADF with HDF5. Thanks to Marc Poinot at Onera and Greg Power's group at Arnold. The source is currently only available with CVS as module adfh

September 28, 2003: CGNS library Version 2.3 beta release. This version currently adds no additional functionality to that of Version 2.2, but speeds up read/write times by orders of magnitude when a large number of zones are present. 

May 10, 2003: CGNS Version 2.2 has been released.

May 3, 2003: The CGNS source code is now available as a download of the latest release or anonymous CVS access to the current beta version at There is now a GNU configure script for configuring compiler options.

January 23, 2003: The CGNS documentation and Technical Papers link now points to a single website location at NASA Glenn. All documentation, papers and the minutes of the CGNS Steering Committee meetings are available there.

September 18, 2002:  Minutes of the CGNS Steering Committee meetings and teleconferences are available at the NASA Glenn website

January 16, 2002: AIAA 2002-0752, "CFD General Notation System (CGNS): Status and Future Directions" presented at the 40th Aerospace Sciences Meeting & Exhibit, Reno, Nevada.

December 1, 2000: Release of Version 2.0 beta 2 which supports grid motion and iterative or time accurate data.

October 31, 2001: Review the new "User's Guide to CGNS" created by Chris Rumsey of NASA Langley Research Center.

October 18, 2000: CGNS has now its own discussion group. Users can exchange opinions and experiences via CGNS Talk.

March 15, 2000: Added support for MIXED element sections.

January 10, 2000: The CGNS Steering Committee becomes a sub-committee of the AIAA Committee
on Standards.

January 12, 2000: AIAA 2000-0681, "Advances in the CGNS Database Standard for Aerodynamics and
CFD." presented at the 38th Aerospace Sciences Meeting & Exhibit, Reno, Nevada.

October 14, 1999: The CGNS Steering Committee Charter has been unanimously adopted at the CGNS Meeting at UTRC, East Hartford.

September 1999: The CGNS Library and the ADF File Browser are now available on Windows NT and Linux !!!