# CGNS version 3.4.0

This document describes the difference between CGNS 3.3.1 and
CGNS 3.4.0, and contains information on known problems in CGNS 3.4.0.

Links to the CGNS 3.4.0 source code can be found at:

http://cgns.org/download.html

User documentation for the current release can be found at:

http://cgns.org/CGNS_docs_current/midlevel/index.html

For more information, see the CGNS home page:

http://cgns.org

# CONTENTS

New Features
Bug Fixes since CGNS 3.3.1
Known Problems
Supported platforms

# New Features
## Configuration:

    Enforce the HDF5 version >= 1.8 is used in building HDF5. (CGNS-150).
    Autotools: CGNS will find and link the compression libraries, szip and zlib, required by HDF5. This 
    occurs automatically if neither --with-zlib or --with-szip are not specified (CGNS-156).

## Library:

    Changed default CGNS to 1.8 HDF5 file format.
               -- only for HDF5 versions > 1.10.2.
    CPEX 40 Rind Plane Indexing (CGNS-87)
    CPEX 41 NGON modification proposal (CGNS-121)

## Parallel Library:

    None

## Fortran Library:

   Added support for NAG Fortran compilers (CGNS-107)

## Tools:

    None

# Bug Fixes since CGNS 3.3.1 Release

# Configuration:

    * Order include directives to get correct includes, cmake (PR 109) 
    * make clean does not remove executables in Test_UserGuideCode (CGNS-99)
    * Windows builds: CGNS_ENABLE_LFS is ignored (CGNS-117)
    * Sun's make implemenation fails to compile fortran (CGNS-28)
    * Some systems need to explicitly link to libdl (CGNS-128)
    * CGNS fails in fortran test with PGI 17 compiler (CGNS-127)
    * CGNS fails to find the lib64 HDF5 library (CGNS-123)
    * CGNS fails to compile on Windows with Fortran enabled (CGNS-148)
    * Can't compile using MSVC & IVF on windows (MSVS 14) (CGNS-146)
    * Fix szip linking (PR 97)
    * RPATH handling for MacOSX (Darwin) (PR 88)
    * fix tests failing when compiled for 64bit (PR 85)
    * remove variable length array to be able to build pcgnslib.c with VC (CGNS-147)
    * Build parallel CGNS on Windows (PR 69)
    * Cmake fixups (PR 58)
    * If check needs to link, then need library path (PR 52)
    * Specify STATIC when adding cgns_static lib (PR 46)
    * _stat32i64 is msvc-specific (PR 45)

# Library:

    * Eliminate potential integer overflow / undefined behavior (PR 106) 
    * Partial write of unstructured MIXED element sets fails with CGNS > 3.3.1 (CGNS-151)
    * If processor has no data, set end = start = 0 (CGNS-133)
    * Large files fail on 64-bit windows (CGNS-83)
    * mesh_dim may be exceed the limit of 32-bit integer (CGNS-131)
    * RUNPARALLEL is defined but never used. (CGNS-96)
    * typo in cgnscheck print_units cg_TemperatureUnitsName index (CGNS-126)
    * cgp_mpi_comm return value unclear (CGNS-111)
    * Changed ADFH_Read_Data and ADFH_Write_Data to honor the cgp_pio_mode (PR 98)
    * Support for std C on linux (PR 96)
    * Null check fix (PR 94)
    * Eliminate dead / unreachable code (PR 93)
    * Fix parallel write (PR 86)
    * Add missing argument to cgi_error call (PR 84)
    * Fix BC type string constant FamilySpecified_s (PR 83)
    * Remove double condition test (PR 82)
    * remove some gcc warnings (PR 78)
    * remove variable length array to be able to build pcgnslib.c with VC (PR 76)
    * Fix bad if test (PR 70)
    * Eliminate memory leaks in cgi_read_ziter (PR 68)
    * Improve error messages, fix error check (fixed) (PR 66)
    * Drop obsolete matherr hack (PR 55)

# Fortran:

    * Add missing dll export symbols from Fortran module. (PR 59)

# Tools:

    * Update cgnsutil.c (PR 89)
    * patch cgnscheck (PR 72)
    * Fix cgnsview linking to HDF5 libs. (PR 56)

## Known Problems

When building with PGI and gcc compilers it might be necessary to set the
environment variables:
FLIBS="-Wl,--no-as-needed -ldl"
LIBS="-Wl,--no-as-needed -ldl"

Misc. issues can be found at: https://cgnsorg.atlassian.net

Supported Platforms
======================
The following platforms are supported and have been tested for this release.
They are built with the configure process unless specified otherwise.


    Linux 2.6.32-573.22.1.el6     GNU C (gcc), Fortran (gfortran), C++ (g++)
    #1 SMP x86_64 GNU/Linux       compilers:
                                 Version 4.4.7 20120313
                                     Versions 4.9.3, 5.2.0, 6.2.0
                                  PGI C, Fortran, C++ for 64-bit target on
                                  x86-64;
                                      Version 16.10-0
                                  Intel(R) C (icc), C++ (icpc), Fortran (icc)
                                  compilers:
                                     Version 17.0.0.098 Build 20160721
                                  MPICH 3.1.4 compiled with GCC 4.9.3
                                  OpenMPI 2.0.1 compiled with GCC 4.9.3

    Linux 2.6.32-573.18.1.el6     gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-16)
    #1 SMP ppc64 GNU/Linux        g++ (GCC) 4.4.7 20120313 (Red Hat 4.4.7-16)
                                  GNU Fortran (GCC) 4.4.7 20120313 (Red Hat 4.4.7-16)
                                  IBM XL C/C++ V13.1
                                  IBM XL Fortran V15.1

    Linux 3.10.0-327.10.1.el7     GNU C (gcc), Fortran (gfortran), C++ (g++)
    #1 SMP x86_64 GNU/Linux       compilers:
                                   Version 4.8.5 20150623 (Red Hat 4.8.5-4)
                                    Versions 4.9.3, 5.3.0, 6.2.0
                                  Intel(R) C (icc), C++ (icpc), Fortran (icc)
                                  compilers:
                                     Version 17.0.4.196 Build 20170411
                                  MPICH 3.1.4 compiled with GCC 4.9.3

    SunOS 5.11 32- and 64-bit     Sun C 5.12 SunOS_sparc
                                  Sun Fortran 95 8.6 SunOS_sparc
                                  Sun C++ 5.12 SunOS_sparc

    Windows 10 x64                Visual Studio 2015 w/ Intel Fortran 16 (cmake)

    Mac OS X Mt. Lion 10.8.5      Apple LLVM version 5.1 (clang-503.0.40)
    64-bit                        gfortran GNU Fortran (GCC) 4.8.2
                               Intel icc/icpc/ifort version 15.0.3

    Mac OS X Mavericks 10.9.5     Apple LLVM version 6.0 (clang-600.0.57)
    64-bit                        gfortran GNU Fortran (GCC) 4.9.2
                                   Intel icc/icpc/ifort version 15.0.3

    Mac OS X Yosemite 10.10.5     Apple LLVM version 6.1 (clang-602.0.53)
    64-bit                        gfortran GNU Fortran (GCC) 4.9.2
                                  Intel icc/icpc/ifort version 15.0.3

    Mac OS X El Capitan 10.11.4   Apple LLVM version 7.3.0 (clang-703.0.29)
    64-bit                        gfortran GNU Fortran (GCC) 5.2.0
                                  Intel icc/icpc/ifort version 16.0.2

Tested Configuration Features Summary
=====================================

    In the table below
          y   = tested
          n   = not tested in this release
          x   = not working in this release
          dna = does not apply

Platform                             |  C        | Fortran |  Fortran     
                                     |  parallel |         |  parallel
-------------------------------------|-----------|---------|----------
SunOS 5.11 32-bit                    |   n       |  y      |     n      
SunOS 5.11 64-bit                    |   n       |  y      |     n
Windows 7                            |   n       |  n      |     n
Windows 7 x64                        |   n       |  n      |     n
Windows 7 Cygwin                     |   n       |  n      |     n  
Windows 8.1                          |   n       |  n      |     n
Windows 8.1 x64                      |   n       |  n      |     n
Windows 10                           |   n       |  n      |     n
Windows 10  x64                      |   n       |  n      |     n
Mac OS X Yosemeti 10.10.5 64-bit     |   n       |  y      |     n
Mac OS X El Capitan 10.11.6 64-bit   |   n       |  y      |     n
MacOS High Sierra 10.13.6 64-bit     |   n       |  y      |     n
AIX 6.1 32- and 64-bit               |   n       |  y      |     n
CentOS 7.1 Linux 3.10.0 x86_64 PGI   |   n       |  y      |     n  
CentOS 7.1 Linux 3.10.0 x86_64 GNU   |   y       |  y      |     y
CentOS 7.1 Linux 3.10.0 x86_64 Intel |   n       |  y      |     n  
Linux 2.6.32-431.11.2.el6.ppc64      |   n       |  y      |     n
