[hdf5] 01/01: Imported Upstream version 1.8.14+docs

Gilles Filippini pini at moszumanska.debian.org
Mon Dec 22 10:45:38 UTC 2014


This is an automated email from the git hooks/post-receive script.

pini pushed a commit to branch upstream
in repository hdf5.

commit eb6a32d9d47066e392467576db8caec513dca5ea
Author: Gilles Filippini <pini at debian.org>
Date:   Sun Dec 21 11:21:12 2014 +0100

    Imported Upstream version 1.8.14+docs
---
 CMakeFilters.cmake                                 |     6 +-
 CMakeInstallation.cmake                            |   103 +-
 CMakeLists.txt                                     |    32 +-
 MANIFEST                                           |    59 +-
 Makefile.in                                        |     1 -
 README.txt                                         |     2 +-
 bin/cmakehdf5                                      |    20 +-
 bin/trace                                          |     2 +
 c++/CMakeLists.txt                                 |     4 +-
 c++/Makefile.in                                    |     1 -
 c++/examples/Makefile.in                           |     1 -
 c++/src/CMakeLists.txt                             |     2 +-
 c++/src/H5ArrayType.cpp                            |    53 +-
 c++/src/H5Attribute.cpp                            |    12 +-
 c++/src/H5CommonFG.cpp                             |    17 +
 c++/src/H5CppDoc.h                                 |    53 +-
 c++/src/H5DataSet.cpp                              |    10 +-
 c++/src/H5DataSpace.cpp                            |     2 +-
 c++/src/H5DataSpace.h                              |    12 +-
 c++/src/H5DataType.cpp                             |    10 +-
 c++/src/H5EnumType.cpp                             |     1 +
 c++/src/H5Exception.cpp                            |     6 +
 c++/src/H5File.cpp                                 |    18 +-
 c++/src/H5Group.cpp                                |     8 +-
 c++/src/H5IdComponent.cpp                          |     5 +-
 c++/src/H5Location.cpp                             |     6 +-
 c++/src/H5PropList.cpp                             |     7 +-
 c++/src/H5StrType.cpp                              |    14 +
 c++/src/Makefile.in                                |     7 +-
 c++/src/cpp_doc_config                             |     6 +-
 c++/test/CMakeTests.cmake                          |     3 +-
 c++/test/Makefile.in                               |     1 -
 c++/test/dsets.cpp                                 |     1 +
 c++/test/tfile.cpp                                 |     4 +-
 c++/test/th5s.cpp                                  |     4 +-
 c++/test/tlinks.cpp                                |     2 +-
 config/apple                                       |    24 +
 config/cmake/ConfigureChecks.cmake                 |   778 +-
 config/cmake/ConversionTests.c                     |   466 +-
 config/cmake/FindHDF5.cmake.in                     |   172 +-
 config/cmake/H5pubconf.h.in                        |    15 +-
 config/cmake/HDF518_Examples.cmake.in              |   233 +-
 config/cmake/HDF5Macros.cmake                      |     2 +-
 config/cmake/README.txt.cmake.in                   |   107 +-
 config/cmake/cacheinit.cmake                       |   148 +-
 config/cmake/hdf5-config-version.cmake.in          |    54 +-
 config/cmake/hdf5-config.cmake.build.in            |   146 +-
 config/cmake/hdf5-config.cmake.install.in          |   162 +-
 config/cmake/libhdf5.settings.cmake.in             |     2 +-
 config/cmake/mccacheinit.cmake                     |   155 +-
 .../{cmake => cmake_ext_mod}/CPack.Info.plist.in   |     0
 config/cmake_ext_mod/CTestCustom.cmake             |    16 +
 .../{cmake => cmake_ext_mod}/CheckTypeSize.cmake   |    12 +-
 config/cmake_ext_mod/ConfigureChecks.cmake         |   751 ++
 config/{cmake => cmake_ext_mod}/FindMPI.cmake      |     0
 config/{cmake => cmake_ext_mod}/FindSZIP.cmake     |     6 +-
 .../{cmake => cmake_ext_mod}/GetTimeOfDayTest.cpp  |     0
 .../HDFCXXTests.cpp}                               |     8 +-
 config/{cmake => cmake_ext_mod}/HDFLibMacros.cmake |   247 +-
 config/{cmake => cmake_ext_mod}/HDFMacros.cmake    |   131 +-
 .../HDF5Tests.c => cmake_ext_mod/HDFTests.c}       |     0
 .../HDFUseFortran.cmake}                           |    28 +
 .../NSIS.InstallOptions.ini.in                     |     2 +-
 config/{cmake => cmake_ext_mod}/NSIS.template.in   |     0
 config/{cmake => cmake_ext_mod}/grepTest.cmake     |     0
 config/{cmake => cmake_ext_mod}/hdf.bmp            |   Bin
 config/{cmake => cmake_ext_mod}/hdf.icns           |   Bin
 config/{cmake => cmake_ext_mod}/hdf.ico            |   Bin
 config/{cmake => cmake_ext_mod}/prunTest.cmake     |     0
 config/{cmake => cmake_ext_mod}/runTest.cmake      |    34 +-
 config/{cmake => cmake_ext_mod}/version.plist.in   |     0
 config/gnu-flags                                   |    82 +-
 config/lt_vers.am                                  |     6 +-
 configure                                          |   203 +-
 configure.ac                                       |   101 +-
 examples/CMakeLists.txt                            |     2 +-
 examples/Makefile.in                               |     1 -
 examples/h5_cmprss.c                               |   250 +-
 examples/h5_crtatt.c                               |   126 +-
 examples/h5_crtdat.c                               |   102 +-
 examples/h5_crtgrp.c                               |    80 +-
 examples/h5_crtgrpar.c                             |    96 +-
 examples/h5_crtgrpd.c                              |   182 +-
 examples/h5_rdwt.c                                 |   106 +-
 examples/h5_reference.c                            |     4 +-
 fortran/Makefile.in                                |     1 -
 fortran/examples/Makefile.in                       |     1 -
 fortran/examples/h5_cmprss.f90                     |   262 +-
 fortran/src/CMakeLists.txt                         |    49 +-
 fortran/src/H5Pf.c                                 |    58 +-
 fortran/src/H5Rf.c                                 |     2 +-
 fortran/src/H5Tf.c                                 |    35 +-
 fortran/src/H5Tff.f90                              |    71 +-
 fortran/src/H5_f.c                                 |    14 +-
 fortran/src/H5test_kind.f90                        |    24 +-
 fortran/src/H5test_kind_SIZEOF.f90                 |    24 +-
 ...ind_SIZEOF.f90 => H5test_kind_STORAGE_SIZE.f90} |    70 +-
 fortran/src/Makefile.am                            |     6 +-
 fortran/src/Makefile.in                            |    24 +-
 fortran/src/hdf5_fortrandll.def.in                 |  1144 +-
 fortran/test/CMakeLists.txt                        |    15 +-
 fortran/test/Makefile.am                           |    22 +-
 fortran/test/Makefile.in                           |    64 +-
 fortran/test/fortranlib_test_1_8.f90               |     8 +-
 fortran/test/tH5L_F03.f90                          |     2 +-
 fortran/test/tH5MISC_1_8.f90                       |     2 +-
 fortran/test/tH5O_F03.f90                          |     2 +-
 fortran/test/tH5P_F03.f90                          |    86 +-
 fortran/test/tH5T_F03.f90                          |    13 +-
 fortran/test/tHDF5_1_8.f90                         |     1 -
 fortran/test/tf.f90                                |     4 +-
 fortran/test/tf_F03.f90                            |   128 +
 fortran/test/tf_F08.f90                            |   128 +
 fortran/test/{tHDF5_1_8.f90 => tf_F90.f90}         |    27 +-
 fortran/testpar/Makefile.in                        |     1 -
 hl/CMakeLists.txt                                  |     2 +-
 hl/Makefile.in                                     |     1 -
 hl/c++/Makefile.in                                 |     1 -
 hl/c++/examples/Makefile.in                        |     1 -
 hl/c++/src/Makefile.in                             |     7 +-
 hl/c++/test/Makefile.in                            |     1 -
 hl/examples/Makefile.in                            |     1 -
 hl/fortran/Makefile.in                             |     1 -
 hl/fortran/examples/Makefile.in                    |     1 -
 hl/fortran/src/Makefile.am                         |     2 +-
 hl/fortran/src/Makefile.in                         |     9 +-
 hl/fortran/test/Makefile.in                        |     1 -
 hl/fortran/test/tsttable.f90                       |    21 +-
 hl/src/H5DS.c                                      |   170 +-
 hl/src/H5DSprivate.h                               |     2 -
 hl/src/H5HLprivate2.h                              |    40 +-
 hl/src/H5IM.c                                      |   145 +-
 hl/src/H5LT.c                                      |   107 +-
 hl/src/H5LTanalyze.c                               |  1792 +--
 hl/src/H5LTanalyze.l                               |    75 +-
 hl/src/H5LTparse.c                                 |  3087 +++--
 hl/src/H5LTparse.h                                 |   201 +-
 hl/src/H5LTparse.y                                 |   141 +-
 hl/src/H5LTprivate.h                               |     2 +-
 hl/src/H5PT.c                                      |    51 +-
 hl/src/H5TB.c                                      |  3143 +++---
 hl/src/Makefile.am                                 |     2 +-
 hl/src/Makefile.in                                 |     9 +-
 hl/test/Makefile.in                                |     1 -
 hl/test/gen_test_ds.c                              |     4 +-
 hl/test/test_ds.c                                  |    10 +-
 hl/test/test_dset_opt.c                            |    14 +-
 hl/test/test_file_image.c                          |    10 +-
 hl/test/test_image.c                               |     4 +-
 hl/test/test_lite.c                                |    39 +-
 hl/test/test_table.c                               |     9 +-
 hl/tools/Makefile.in                               |     1 -
 hl/tools/gif2h5/Makefile.in                        |     1 -
 html/ADGuide.html                                  |   389 +-
 html/ADGuide/Changes.html                          | 11200 +------------------
 html/ADGuide/Changes_1_4-1_6.html                  |  3401 ++++++
 html/ADGuide/{Changes.html => Changes_1_8_x.html}  |  3442 +-----
 html/ADGuide/CompatFormat180.html                  |    24 +-
 html/ADGuide/Compatibility_Report/CR_1.8.14.html   |  1176 ++
 html/ADGuide/ImageSpec.html                        |    26 +-
 html/Advanced.html                                 |    28 +-
 html/Advanced/Chunking/index.html                  |    29 +-
 html/Advanced/DirectChunkWrite/index.html          |    23 +-
 html/Advanced/HDF5_Metadata/index.html             |    23 +-
 html/Advanced/MetadataCache/index.html             |    25 +-
 html/Advanced/UsingIdentifiers/index.html          |    95 +-
 html/Advanced/UsingUnicode/index.html              |    23 +-
 html/Copyright.html                                |    23 +-
 html/Glossary.html                                 |    26 +-
 html/Graphics/favicon.ico                          |   Bin 0 -> 805 bytes
 html/H5.format.html                                |  3103 +++--
 html/H5.intro.html                                 |    24 +-
 html/HL/H5TB_Spec.html                             |     6 +-
 html/HL/RM_H5DS.html                               |     7 +-
 html/HL/RM_H5IM.html                               |     7 +-
 html/HL/RM_H5LT.html                               |     7 +-
 html/HL/RM_H5PT.html                               |     7 +-
 html/HL/RM_H5PT_c++.html                           |     7 +-
 html/HL/RM_H5TB.html                               |    47 +-
 html/HL/RM_HDF5Optimized.html                      |     4 +-
 html/HL/index.html                                 |     7 +-
 html/Intro/IntroExamples.html                      |    24 +-
 html/RM/APICompatMacros.html                       |    24 +-
 html/RM/CollectiveCalls.html                       |    24 +-
 html/RM/H5A/H5Acreate.htm                          |    12 +-
 html/RM/H5A/H5Acreate2.htm                         |    13 +-
 html/RM/H5A/H5Acreate_by_name.htm                  |    16 +-
 html/RM/H5A/H5Aget_type.htm                        |    38 +-
 html/RM/H5A/H5Aopen.htm                            |    10 +-
 html/RM/H5A/H5Aopen_by_idx.htm                     |    11 +-
 html/RM/H5A/H5Aopen_by_name.htm                    |    16 +-
 html/RM/H5A/H5Aread.htm                            |    11 +-
 html/RM/H5A/H5Awrite.htm                           |    15 +-
 html/RM/H5D/H5Dcreate.htm                          |    13 +-
 html/RM/H5D/H5Dcreate2.htm                         |    32 +-
 html/RM/H5D/H5Dcreate_anon.htm                     |    13 +-
 html/RM/H5D/H5Dget_access_plist.htm                |     8 +-
 html/RM/H5D/H5Dget_create_plist.htm                |    40 +-
 html/RM/H5D/H5Dget_space.htm                       |    12 +-
 html/RM/H5D/H5Dget_type.htm                        |    13 +-
 html/RM/H5D/H5Dopen.htm                            |    11 +-
 html/RM/H5D/H5Dopen2.htm                           |    47 +-
 html/RM/H5D/H5Dread.htm                            |    16 +-
 html/RM/H5D/H5Dwrite.htm                           |    16 +-
 html/RM/H5E/H5Ecreate_msg.htm                      |    13 +-
 html/RM/H5E/H5Ecreate_stack.htm                    |    40 +-
 html/RM/H5F/H5Fcreate.htm                          |    13 +-
 html/RM/H5F/H5Fget_access_plist.htm                |    18 +-
 html/RM/H5F/H5Fget_create_plist.htm                |    18 +-
 html/RM/H5F/H5Fopen.htm                            |    14 +-
 html/RM/H5F/H5Freopen.htm                          |    44 +-
 html/RM/H5G/H5Gcreate.htm                          |    18 +-
 html/RM/H5G/H5Gcreate2.htm                         |    22 +-
 html/RM/H5G/H5Gcreate_anon.htm                     |    16 +-
 html/RM/H5G/H5Gget_objinfo.htm                     |     2 +-
 html/RM/H5G/H5Gopen.htm                            |    12 +-
 html/RM/H5G/H5Gopen2.htm                           |    21 +-
 html/RM/H5I/H5Isearch.htm                          |    32 +-
 html/RM/H5L/H5Ldelete.htm                          |    12 +-
 html/RM/H5L/H5Lget_info.htm                        |     5 +-
 html/RM/H5L/H5Literate.htm                         |    15 +-
 html/RM/H5L/H5Literate_by_name.htm                 |    15 +-
 html/RM/H5O/H5Oget_info.htm                        |     7 +-
 html/RM/H5O/H5Oopen.htm                            |    19 +-
 html/RM/H5O/H5Oopen_by_addr.htm                    |    20 +-
 html/RM/H5O/H5Oopen_by_idx.htm                     |    12 +-
 html/RM/H5P/H5Pcreate.htm                          |    44 +-
 html/RM/H5P/H5Pget_char_encoding.htm               |    17 +-
 html/RM/H5P/H5Pget_core_write_tracking.htm         |     8 +-
 html/RM/H5P/H5Pset_cache.htm                       |   194 +-
 html/RM/H5P/H5Pset_char_encoding.htm               |    20 +-
 html/RM/H5P/H5Pset_chunk_cache.htm                 |    94 +-
 html/RM/H5P/H5Pset_core_write_tracking.htm         |   169 +-
 html/RM/H5P/H5Pset_fapl_multi.htm                  |    26 +-
 html/RM/H5R/H5Rdereference.htm                     |    16 +-
 html/RM/H5R/H5Rget_region.htm                      |    14 +-
 html/RM/H5S/H5Screate.htm                          |     9 +-
 html/RM/H5S/H5Screate_simple.htm                   |    14 +-
 html/RM/H5T/H5Tarray_create2.htm                   |     2 +-
 html/RM/H5T/H5Tcopy.htm                            |    13 +-
 html/RM/H5T/H5Tcreate.htm                          |    15 +-
 html/RM/H5T/H5Tdecode.htm                          |    11 +-
 html/RM/H5T/H5Tget_class.htm                       |    13 +-
 html/RM/H5T/H5Tget_cset.htm                        |    15 +-
 html/RM/H5T/H5Tget_member_type.htm                 |    16 +-
 html/RM/H5T/H5Tget_size.htm                        |    28 +-
 html/RM/H5T/H5Tget_super.htm                       |    11 +-
 html/RM/H5T/H5Topen.htm                            |    15 +-
 html/RM/H5T/H5Topen2.htm                           |    41 +-
 html/RM/H5T/H5Tregister.htm                        |     9 +-
 html/RM/H5T/H5Tset_cset.htm                        |    22 +-
 html/RM/PredefDTypes.html                          |    26 +-
 html/RM/RM_H5.html                                 |    29 +-
 html/RM/RM_H5A.html                                |    33 +-
 html/RM/RM_H5D.html                                |    28 +-
 html/RM/RM_H5E.html                                |    28 +-
 html/RM/RM_H5F.html                                |    28 +-
 html/RM/RM_H5Front.html                            |    28 +-
 html/RM/RM_H5G.html                                |    28 +-
 html/RM/RM_H5I.html                                |    28 +-
 html/RM/RM_H5L.html                                |    28 +-
 html/RM/RM_H5O.html                                |    28 +-
 html/RM/RM_H5P.html                                |    28 +-
 html/RM/RM_H5R.html                                |    28 +-
 html/RM/RM_H5S.html                                |    28 +-
 html/RM/RM_H5T.html                                |    35 +-
 html/RM/RM_H5Z.html                                |    26 +-
 html/RM/Tools.html                                 |    29 +-
 html/RM/Tools/h5diff.htm                           |     2 +-
 html/TechNotes.html                                |    73 +-
 html/TechNotes/VFL.html                            |     7 +-
 html/TechNotes/VFLfunc.html                        |     4 +-
 html/TechNotes/Version.html                        |    83 +-
 html/UG/13_Attributes.html                         |     4 +-
 html/UG/14_PropertyLists.html                      |   650 +-
 html/UG/17_Additional.html                         |     6 +-
 html/UG/UG_UpdateStatus.html                       |    30 +-
 html/UG/UG_front.html                              |     4 +-
 html/UG/UG_nav00.html                              |   186 +-
 html/UG/UG_nav03DataModel.html                     |   191 +-
 html/UG/UG_nav04ProgModel.html                     |   211 +-
 html/UG/UG_nav08TheFile.html                       |   203 +-
 html/UG/UG_nav09Groups.html                        |   184 +-
 html/UG/UG_nav10Datasets.html                      |   199 +-
 html/UG/UG_nav11Datatypes.html                     |   205 +-
 html/UG/UG_nav12Dataspaces.html                    |   197 +-
 html/UG/UG_nav13Attributes.html                    |   191 +-
 html/UG/UG_nav13ErrorHandling.html                 |   197 +-
 html/UG/UG_nav14PropertyLists.html                 |   197 +-
 html/UG/UG_nav17SpecialTopics.html                 |   181 +-
 html/UG/UG_navObjectsIdentifiers.html              |   174 +-
 html/UG/ed_libs/Footer.lbi                         |     5 -
 html/_topic/Chunking/index.html                    |    23 +-
 html/cpplus/CppInterfaces.html                     |    22 +-
 html/ddl.html                                      |    27 +-
 html/doc-info.html                                 |    10 +-
 html/ed_libs/Footer-THGonly.htm                    |    23 +
 html/ed_libs/Footer-THGonly.lbi                    |     2 +-
 html/ed_libs/{Footer.lbi => Footer-THGonly2.htm}   |     9 +-
 html/ed_libs/Footer-THGonly3.htm                   |    23 +
 html/ed_libs/{Footer.lbi => Footer.htm}            |    11 +-
 html/ed_libs/Footer.lbi                            |     2 +-
 html/ed_libs/{Footer.lbi => Footer2.htm}           |     7 +-
 html/ed_libs/{Footer.lbi => Footer3.htm}           |    11 +-
 html/ed_libs/Footer_Null.htm                       |    15 +
 html/ed_libs/Footer_Null.lbi                       |     3 +-
 html/fortran/FortranFlags.html                     |    29 +-
 html/fortran/index.html                            |     9 +-
 html/index.html                                    |     6 +-
 perform/CMakeLists.txt                             |     2 +-
 perform/Makefile.in                                |     1 -
 perform/sio_standalone.h                           |     1 +
 perform/sio_timer.c                                |   394 +-
 release_docs/HISTORY-1_8.txt                       |   764 ++
 release_docs/INSTALL                               |    28 +-
 release_docs/INSTALL_CMake.txt                     |    20 +-
 release_docs/INSTALL_Cygwin.txt                    |    81 +-
 release_docs/INSTALL_parallel                      |    25 +-
 release_docs/RELEASE.txt                           |   776 +-
 release_docs/USING_CMake_Examples.txt              |   162 +-
 release_docs/USING_HDF5_CMake.txt                  |    10 +-
 release_docs/USING_HDF5_VS.txt                     |     6 +-
 src/CMakeLists.txt                                 |    60 +-
 src/H5.c                                           |     5 +-
 src/H5A.c                                          |  1096 +-
 src/H5AC.c                                         |    70 +-
 src/H5ACpkg.h                                      |     2 -
 src/H5ACprivate.h                                  |     2 +
 src/H5Adeprec.c                                    |     9 +-
 src/H5Aint.c                                       |  1155 ++
 src/H5Apkg.h                                       |    14 +-
 src/H5B.c                                          |     2 +-
 src/H5C.c                                          |    58 +-
 src/H5Cprivate.h                                   |    16 +-
 src/H5D.c                                          |   200 +-
 src/H5Dchunk.c                                     |   270 +-
 src/H5Dint.c                                       |   302 +-
 src/H5Dio.c                                        |   111 +-
 src/H5Dmpio.c                                      |    10 +-
 src/H5Dprivate.h                                   |     3 +
 src/H5Dpublic.h                                    |     4 +-
 src/H5E.c                                          |   127 +-
 src/H5Epublic.h                                    |     2 +-
 src/H5F.c                                          |  2350 +---
 src/H5FD.c                                         |    53 +-
 src/H5FDint.c                                      |    79 +-
 src/H5FDmpio.c                                     |    39 +-
 src/H5FDmulti.c                                    |     2 +-
 src/H5FDprivate.h                                  |     6 +-
 src/H5FDwindows.h                                  |    98 +-
 src/H5Faccum.c                                     |   519 +-
 src/H5Fefc.c                                       |     7 +-
 src/{H5F.c => H5Fint.c}                            |  1688 +--
 src/H5Fio.c                                        |    17 +-
 src/H5Fpkg.h                                       |    21 +-
 src/H5Fprivate.h                                   |    52 +-
 src/H5Fsuper.c                                     |    71 +-
 src/H5Fsuper_cache.c                               |    28 +-
 src/H5G.c                                          |    13 +-
 src/H5Gint.c                                       |     2 +-
 src/H5Gname.c                                      |     4 +-
 src/H5Gtraverse.c                                  |     2 +-
 src/H5HG.c                                         |     2 +-
 src/H5I.c                                          |   101 +-
 src/H5Ipkg.h                                       |     8 +-
 src/H5Ipublic.h                                    |     4 +-
 src/H5Lpublic.h                                    |     4 +-
 src/H5MF.c                                         |    13 +-
 src/H5PL.c                                         |     1 +
 src/H5PLextern.h                                   |    40 +-
 src/H5PLprivate.h                                  |    14 +-
 src/H5Pacpl.c                                      |     9 +-
 src/H5Pdapl.c                                      |    11 +-
 src/H5Pdcpl.c                                      |    11 +-
 src/H5Pdeprec.c                                    |     1 +
 src/H5Pdxpl.c                                      |     9 +-
 src/H5Pfapl.c                                      |    21 +-
 src/H5Pfcpl.c                                      |     9 +-
 src/H5Pfmpl.c                                      |    10 +-
 src/H5Pgcpl.c                                      |    11 +-
 src/H5Pint.c                                       |   330 +-
 src/H5Plapl.c                                      |     9 +-
 src/H5Plcpl.c                                      |     9 +-
 src/H5Pocpl.c                                      |     7 +-
 src/H5Pocpypl.c                                    |    10 +-
 src/H5Ppkg.h                                       |    13 +-
 src/H5Pprivate.h                                   |    42 +-
 src/H5Ppublic.h                                    |   127 +-
 src/H5Pstrcpl.c                                    |     8 +-
 src/H5R.c                                          |    23 +-
 src/H5S.c                                          |    14 +-
 src/H5Smpio.c                                      |    60 +-
 src/H5Spublic.h                                    |     2 +-
 src/H5T.c                                          |    41 +-
 src/H5Tbit.c                                       |    16 +-
 src/H5Tcommit.c                                    |     2 +-
 src/H5Z.c                                          |    34 +-
 src/H5Zprivate.h                                   |     2 +-
 src/H5Zszip.c                                      |     2 +-
 src/H5config.h.in                                  |    10 +-
 src/H5private.h                                    |     3 +
 src/H5public.h                                     |     7 +-
 src/H5trace.c                                      |     2 +-
 src/Makefile.am                                    |     2 +-
 src/Makefile.in                                    |    16 +-
 test/CMakeLists.txt                                |     6 +-
 test/CMakeTests.cmake                              |    89 +-
 test/Makefile.in                                   |     1 -
 test/accum.c                                       |   199 +-
 test/cache_api.c                                   |    14 +-
 test/cmpd_dset.c                                   |    34 +-
 test/dsets.c                                       |    88 +-
 test/dt_arith.c                                    |    96 +-
 test/dtypes.c                                      |    88 +-
 test/dynlib2.c                                     |     3 +
 test/dynlib3.c                                     |     3 +
 test/err_compat.c                                  |     2 +-
 test/error_test.c                                  |     2 +-
 test/file_image.c                                  |     2 +-
 test/fillval.c                                     |    28 +-
 test/filter_fail.c                                 |     5 +-
 test/gen_bogus.c                                   |     2 +-
 test/getname.c                                     |    16 +-
 test/h5test.c                                      |     6 +-
 test/links.c                                       |   129 +-
 test/ntypes.c                                      |     6 +-
 test/objcopy.c                                     |    16 +-
 test/tarray.c                                      |     6 +-
 test/tattr.c                                       |    18 +-
 test/tconfig.c                                     |     4 +-
 test/tcoords.c                                     |    22 +-
 test/testfiles/err_compat_1                        |     5 +-
 test/testframe.c                                   |    23 +-
 test/testhdf5.c                                    |     6 +-
 test/tfile.c                                       |    22 +-
 test/tgenprop.c                                    |     2 +-
 test/tid.c                                         |   160 +-
 test/tmisc.c                                       |     4 +-
 test/trefer.c                                      |   107 +-
 test/tselect.c                                     |   447 +-
 test/ttsafe.c                                      |    80 +-
 test/ttsafe_acreate.c                              |     4 +-
 test/ttsafe_cancel.c                               |     4 +-
 test/tunicode.c                                    |     2 +-
 testpar/CMakeLists.txt                             |     7 +-
 testpar/CMakeTests.cmake                           |     7 +-
 testpar/Makefile.in                                |     1 -
 testpar/t_cache.c                                  |     2 +-
 testpar/t_chunk_alloc.c                            |    16 +-
 testpar/t_coll_chunk.c                             |     8 +-
 testpar/t_dset.c                                   |   124 +-
 testpar/t_filter_read.c                            |     4 +-
 testpar/t_mdset.c                                  |    57 +
 testpar/t_mpi.c                                    |   922 +-
 testpar/testphdf5.c                                |   393 +-
 testpar/testphdf5.h                                |     1 +
 tools/CMakeLists.txt                               |     2 +-
 tools/Makefile.in                                  |     1 -
 tools/h5copy/CMakeLists.txt                        |     6 +-
 tools/h5copy/CMakeTests.cmake                      |     2 +-
 tools/h5copy/Makefile.in                           |     1 -
 tools/h5copy/h5copygentest.c                       |    20 +-
 tools/h5diff/CMakeLists.txt                        |     6 +-
 tools/h5diff/CMakeTests.cmake                      |     4 +-
 tools/h5diff/Makefile.in                           |     1 -
 tools/h5diff/h5diffgentest.c                       |    50 +-
 tools/h5diff/ph5diff_main.c                        |     5 +-
 tools/h5diff/testfiles/h5diff_101w.txt             |    22 +-
 tools/h5diff/testfiles/h5diff_102w.txt             |    20 +-
 tools/h5diff/testh5diff.sh.in                      |     7 +-
 tools/h5diff/testph5diff.sh.in                     |     0
 tools/h5dump/CMakeLists.txt                        |     6 +-
 tools/h5dump/CMakeTests.cmake                      |    24 +-
 tools/h5dump/CMakeTestsPBITS.cmake                 |     2 +-
 tools/h5dump/CMakeTestsXML.cmake                   |     2 +-
 tools/h5dump/Makefile.in                           |     1 -
 tools/h5dump/h5dump_xml.c                          |     2 +-
 tools/h5dump/h5dumpgentest.c                       |    28 +-
 tools/h5import/CMakeLists.txt                      |     6 +-
 tools/h5import/CMakeTests.cmake                    |    14 +-
 tools/h5import/Makefile.in                         |     1 -
 tools/h5import/h5import.c                          |     9 +-
 tools/h5jam/CMakeLists.txt                         |     6 +-
 tools/h5jam/CMakeTests.cmake                       |    18 +-
 tools/h5jam/Makefile.in                            |     1 -
 tools/h5jam/getub.c                                |     4 +-
 tools/h5ls/CMakeLists.txt                          |     6 +-
 tools/h5ls/CMakeTests.cmake                        |     2 +-
 tools/h5ls/Makefile.in                             |     1 -
 tools/h5ls/h5ls.c                                  |    11 +-
 tools/h5repack/CMakeLists.txt                      |     8 +-
 tools/h5repack/CMakeTests.cmake                    |    16 +-
 tools/h5repack/Makefile.in                         |     1 -
 tools/h5repack/h5repack_copy.c                     |     2 +-
 tools/h5repack/h5repack_main.c                     |     3 +-
 tools/h5repack/h5repack_refs.c                     |     2 +-
 tools/h5repack/h5repacktst.c                       |    72 +-
 tools/h5stat/CMakeLists.txt                        |     6 +-
 tools/h5stat/CMakeTests.cmake                      |     2 +-
 tools/h5stat/Makefile.in                           |     1 -
 tools/h5stat/h5stat.c                              |    16 +-
 tools/lib/CMakeLists.txt                           |    17 +-
 tools/lib/Makefile.in                              |     1 -
 tools/lib/h5diff.c                                 |   293 +-
 tools/lib/h5diff_dset.c                            |     6 +-
 tools/lib/h5tools.c                                |    24 +-
 tools/lib/h5tools_dump.c                           |    49 +-
 tools/lib/h5tools_dump.h                           |     2 +-
 tools/lib/h5tools_str.c                            |     4 +-
 tools/misc/CMakeLists.txt                          |     6 +-
 tools/misc/CMakeTests.cmake                        |     4 +-
 tools/misc/Makefile.in                             |     1 -
 tools/misc/h5debug.c                               |    54 +-
 tools/misc/h5repart.c                              |     4 +-
 tools/misc/talign.c                                |     4 +-
 vms/c++/test/H5srcdir_str.h                        |    46 +-
 vms/src/h5pubconf.h                                |    16 +-
 vms/test/H5srcdir_str.h                            |    44 +-
 518 files changed, 27115 insertions(+), 34954 deletions(-)

diff --git a/CMakeFilters.cmake b/CMakeFilters.cmake
index 1a74460..f52b99b 100644
--- a/CMakeFilters.cmake
+++ b/CMakeFilters.cmake
@@ -17,7 +17,9 @@ HDF5_SETUP_FILTERS (NBIT)
 HDF5_SETUP_FILTERS (SCALEOFFSET)
 
 include (ExternalProject)
-option (HDF5_ALLOW_EXTERNAL_SUPPORT "Allow External Library Building (NO SVN TGZ)" "NO")
+#option (HDF5_ALLOW_EXTERNAL_SUPPORT "Allow External Library Building (NO SVN TGZ)" "NO")
+set (HDF5_ALLOW_EXTERNAL_SUPPORT "NO" CACHE STRING "Allow External Library Building (NO SVN TGZ)")
+set_property (CACHE HDF5_ALLOW_EXTERNAL_SUPPORT PROPERTY STRINGS NO SVN TGZ)
 if (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
   option (ZLIB_USE_EXTERNAL "Use External Library Building for ZLIB" 1)
   option (SZIP_USE_EXTERNAL "Use External Library Building for SZIP" 1)
@@ -110,7 +112,7 @@ if (HDF5_ENABLE_SZIP_SUPPORT)
     endif (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
   endif (SZIP_FOUND)
   set (LINK_LIBS ${LINK_LIBS} ${SZIP_LIBRARIES})
-  INCLUDE_DIRECTORIES (${SZIP_INCLUDE_DIR})
+  INCLUDE_DIRECTORIES (${SZIP_INCLUDE_DIRS})
   message (STATUS "Filter SZIP is ON")
   if (H5_HAVE_FILTER_SZIP)
     set (EXTERNAL_FILTERS "${EXTERNAL_FILTERS} DECODE")
diff --git a/CMakeInstallation.cmake b/CMakeInstallation.cmake
index 84aedb6..1e6a5bf 100644
--- a/CMakeInstallation.cmake
+++ b/CMakeInstallation.cmake
@@ -26,7 +26,7 @@ endif (NOT HDF5_EXTERNALLY_CONFIGURED)
 # Export all exported targets to the build tree for use by parent project
 #-----------------------------------------------------------------------------
 if (NOT HDF5_EXTERNALLY_CONFIGURED)
-  EXPORT (
+  export (
       TARGETS ${HDF5_LIBRARIES_TO_EXPORT} ${HDF5_LIB_DEPENDENCIES}
       FILE ${HDF5_PACKAGE}${HDF_PACKAGE_EXT}-targets.cmake
   )
@@ -39,12 +39,12 @@ set (HDF5_INCLUDES_BUILD_TIME
     ${HDF5_SRC_DIR} ${HDF5_CPP_SRC_DIR} ${HDF5_HL_SRC_DIR}
     ${HDF5_TOOLS_SRC_DIR} ${HDF5_BINARY_DIR}
 )
-set (HDF5_VERSION_STRING @HDF5_PACKAGE_VERSION@)
-set (HDF5_VERSION_MAJOR  @HDF5_PACKAGE_VERSION_MAJOR@)
-set (HDF5_VERSION_MINOR  @HDF5_PACKAGE_VERSION_MINOR@)
+set (HDF5_VERSION_STRING ${HDF5_PACKAGE_VERSION})
+set (HDF5_VERSION_MAJOR  ${HDF5_PACKAGE_VERSION_MAJOR})
+set (HDF5_VERSION_MINOR  ${HDF5_PACKAGE_VERSION_MINOR})
 
 configure_file (
-    ${HDF5_RESOURCES_DIR}/hdf5-config.cmake.build.in 
+    ${HDF_RESOURCES_DIR}/hdf5-config.cmake.build.in 
     ${HDF5_BINARY_DIR}/${HDF5_PACKAGE}${HDF_PACKAGE_EXT}-config.cmake @ONLY
 )
 
@@ -53,7 +53,7 @@ configure_file (
 #-----------------------------------------------------------------------------
 if (NOT HDF5_EXTERNALLY_CONFIGURED)
   configure_file (
-      ${HDF5_RESOURCES_DIR}/FindHDF5.cmake.in 
+      ${HDF_RESOURCES_DIR}/FindHDF5.cmake.in 
       ${HDF5_BINARY_DIR}/CMakeFiles/FindHDF5${HDF_PACKAGE_EXT}.cmake @ONLY
   )
   install (
@@ -68,7 +68,7 @@ endif (NOT HDF5_EXTERNALLY_CONFIGURED)
 #-----------------------------------------------------------------------------
 if (NOT HDF5_EXTERNALLY_CONFIGURED)
   configure_file (
-      ${HDF5_RESOURCES_DIR}/hdf5-config.cmake.install.in
+      ${HDF_RESOURCES_DIR}/hdf5-config.cmake.install.in
       ${HDF5_BINARY_DIR}/CMakeFiles/${HDF5_PACKAGE}${HDF_PACKAGE_EXT}-config.cmake @ONLY
   )
   install (
@@ -83,7 +83,7 @@ endif (NOT HDF5_EXTERNALLY_CONFIGURED)
 #-----------------------------------------------------------------------------
 if (NOT HDF5_EXTERNALLY_CONFIGURED)
   configure_file (
-      ${HDF5_RESOURCES_DIR}/hdf5-config-version.cmake.in
+      ${HDF_RESOURCES_DIR}/hdf5-config-version.cmake.in
       ${HDF5_BINARY_DIR}/CMakeFiles/${HDF5_PACKAGE}${HDF_PACKAGE_EXT}-config-version.cmake @ONLY
   )
   install (
@@ -102,7 +102,7 @@ else (H5_WORDS_BIGENDIAN)
   set (BYTESEX little-endian)
 endif (H5_WORDS_BIGENDIAN)
 configure_file (
-    ${HDF5_RESOURCES_DIR}/libhdf5.settings.cmake.in 
+    ${HDF_RESOURCES_DIR}/libhdf5.settings.cmake.in 
     ${HDF5_BINARY_DIR}/libhdf5.settings @ONLY
 )
 install (
@@ -117,7 +117,7 @@ install (
 option (HDF5_PACK_EXAMPLES  "Package the HDF5 Library Examples Compressed File" OFF)
 if (HDF5_PACK_EXAMPLES)
   configure_file (
-      ${HDF5_RESOURCES_DIR}/HDF518_Examples.cmake.in 
+      ${HDF_RESOURCES_DIR}/HDF518_Examples.cmake.in 
       ${HDF5_BINARY_DIR}/HDF518_Examples.cmake @ONLY
   )
   install (
@@ -139,50 +139,7 @@ endif (HDF5_PACK_EXAMPLES)
 #-----------------------------------------------------------------------------
 # Configure the README.txt file for the binary package
 #-----------------------------------------------------------------------------
-set (BINARY_SYSTEM_NAME ${CMAKE_SYSTEM_NAME})
-set (BINARY_PLATFORM "${CMAKE_SYSTEM_NAME}")
-if (WIN32)
-  set (BINARY_EXAMPLE_ENDING "zip")
-  set (BINARY_INSTALL_ENDING "exe")
-  if (CMAKE_CL_64)
-    set (BINARY_SYSTEM_NAME "win64")
-  else (CMAKE_CL_64)
-    set (BINARY_SYSTEM_NAME "win32")
-  endif (CMAKE_CL_64)
-  if (${CMAKE_SYSTEM_VERSION} MATCHES "6.1")
-    set (BINARY_PLATFORM "${BINARY_PLATFORM} 7")
-  elseif (${CMAKE_SYSTEM_VERSION} MATCHES "6.2")
-    set (BINARY_PLATFORM "${BINARY_PLATFORM} 8")
-  endif (${CMAKE_SYSTEM_VERSION} MATCHES "6.1")
-  set (BINARY_PLATFORM "${BINARY_PLATFORM} ${MSVC_C_ARCHITECTURE_ID}")
-  if (${CMAKE_C_COMPILER_VERSION} MATCHES "16.*")
-    set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO 2010")
-  elseif (${CMAKE_C_COMPILER_VERSION} MATCHES "15.*")
-    set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO 2008")
-  elseif (${CMAKE_C_COMPILER_VERSION} MATCHES "17.*")
-    set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO 2012")
-  else (${CMAKE_C_COMPILER_VERSION} MATCHES "16.*")
-    set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO ${CMAKE_C_COMPILER_VERSION}")
-  endif (${CMAKE_C_COMPILER_VERSION} MATCHES "16.*")
-elseif (APPLE)
-  set (BINARY_EXAMPLE_ENDING "tar.gz")
-  set (BINARY_INSTALL_ENDING "dmg")
-  set (BINARY_PLATFORM "${BINARY_PLATFORM} ${CMAKE_SYSTEM_VERSION} ${CMAKE_SYSTEM_PROCESSOR}")
-  set (BINARY_PLATFORM "${BINARY_PLATFORM}, using ${CMAKE_C_COMPILER_ID} C ${CMAKE_C_COMPILER_VERSION}")
-else (WIN32)
-  set (BINARY_EXAMPLE_ENDING "tar.gz")
-  set (BINARY_INSTALL_ENDING "sh")
-  set (BINARY_PLATFORM "${BINARY_PLATFORM} ${CMAKE_SYSTEM_VERSION} ${CMAKE_SYSTEM_PROCESSOR}")
-  set (BINARY_PLATFORM "${BINARY_PLATFORM}, using ${CMAKE_C_COMPILER_ID} C ${CMAKE_C_COMPILER_VERSION}")
-endif (WIN32)
-if (HDF4_BUILD_FORTRAN)
-  set (BINARY_PLATFORM "${BINARY_PLATFORM} / ${CMAKE_Fortran_COMPILER_ID} Fortran")
-endif (HDF4_BUILD_FORTRAN)
-
-configure_file (
-    ${HDF5_RESOURCES_DIR}/README.txt.cmake.in 
-    ${HDF5_BINARY_DIR}/README.txt @ONLY
-)
+HDF_README_PROPERTIES(HDF5_BUILD_FORTRAN)
 
 #-----------------------------------------------------------------------------
 # Add Document File(s) to CMake Install
@@ -261,11 +218,11 @@ if (NOT HDF5_EXTERNALLY_CONFIGURED AND NOT HDF5_NO_PACKAGES)
   endif (EXISTS "${HDF5_SOURCE_DIR}/release_docs")
   set (CPACK_PACKAGE_RELOCATABLE TRUE)
   set (CPACK_PACKAGE_INSTALL_DIRECTORY "${CPACK_PACKAGE_VENDOR}/${CPACK_PACKAGE_NAME}/${CPACK_PACKAGE_VERSION}")
-  set (CPACK_PACKAGE_ICON "${HDF5_RESOURCES_DIR}/hdf.bmp")
+  set (CPACK_PACKAGE_ICON "${HDF_RESOURCES_EXT_DIR}/hdf.bmp")
 
   set (CPACK_GENERATOR "TGZ") 
   if (WIN32)
-    LIST (APPEND CPACK_GENERATOR "NSIS") 
+    list (APPEND CPACK_GENERATOR "NSIS") 
     # Installers for 32- vs. 64-bit CMake:
     #  - Root install directory (displayed to end user at installer-run time)
     #  - "NSIS package/display name" (text used in the installer GUI)
@@ -280,27 +237,27 @@ if (NOT HDF5_EXTERNALLY_CONFIGURED AND NOT HDF5_NO_PACKAGES)
     endif (CMAKE_CL_64)
     # set the install/unistall icon used for the installer itself
     # There is a bug in NSI that does not handle full unix paths properly.
-    set (CPACK_NSIS_MUI_ICON "${HDF5_RESOURCES_DIR}\\\\hdf.ico")
-    set (CPACK_NSIS_MUI_UNIICON "${HDF5_RESOURCES_DIR}\\\\hdf.ico")
+    set (CPACK_NSIS_MUI_ICON "${HDF_RESOURCES_EXT_DIR}\\\\hdf.ico")
+    set (CPACK_NSIS_MUI_UNIICON "${HDF_RESOURCES_EXT_DIR}\\\\hdf.ico")
     # set the package header icon for MUI
-    set (CPACK_PACKAGE_ICON "${HDF5_RESOURCES_DIR}\\\\hdf.bmp")
-    set (CPACK_NSIS_DISPLAY_NAME "@CPACK_NSIS_PACKAGE_NAME@")
+    set (CPACK_PACKAGE_ICON "${HDF_RESOURCES_EXT_DIR}\\\\hdf.bmp")
+    set (CPACK_NSIS_DISPLAY_NAME "${CPACK_NSIS_PACKAGE_NAME}")
     set (CPACK_PACKAGE_INSTALL_DIRECTORY "${CPACK_PACKAGE_VENDOR}\\\\${CPACK_PACKAGE_NAME}\\\\${CPACK_PACKAGE_VERSION}")
     set (CPACK_MONOLITHIC_INSTALL ON)
     set (CPACK_NSIS_CONTACT "${HDF5_PACKAGE_BUGREPORT}")
     set (CPACK_NSIS_MODIFY_PATH ON)
   elseif (APPLE)
-    LIST (APPEND CPACK_GENERATOR "DragNDrop") 
+    list (APPEND CPACK_GENERATOR "DragNDrop") 
     set (CPACK_COMPONENTS_ALL_IN_ONE_PACKAGE ON)
     set (CPACK_PACKAGING_INSTALL_PREFIX "/${CPACK_PACKAGE_INSTALL_DIRECTORY}")
-    set (CPACK_PACKAGE_ICON "${HDF5_RESOURCES_DIR}/hdf.icns")
-    
+    set (CPACK_PACKAGE_ICON "${HDF_RESOURCES_EXT_DIR}/hdf.icns")
+
     if (HDF5_PACK_MACOSX_BUNDLE)
-      LIST (APPEND CPACK_GENERATOR "Bundle")
+      list (APPEND CPACK_GENERATOR "Bundle")
       set (CPACK_BUNDLE_NAME "${HDF5_PACKAGE_STRING}")
       set (CPACK_BUNDLE_LOCATION "/")    # make sure CMAKE_INSTALL_PREFIX ends in /
       set (CMAKE_INSTALL_PREFIX "/${CPACK_BUNDLE_NAME}.framework/Versions/${CPACK_PACKAGE_VERSION}/${CPACK_PACKAGE_NAME}/")
-      set (CPACK_BUNDLE_ICON "${HDF5_RESOURCES_DIR}/hdf.icns")
+      set (CPACK_BUNDLE_ICON "${HDF_RESOURCES_EXT_DIR}/hdf.icns")
       set (CPACK_BUNDLE_PLIST "${HDF5_BINARY_DIR}/CMakeFiles/Info.plist")
       set (CPACK_APPLE_GUI_INFO_STRING "HDF5 (Hierarchical Data Format 5) Software Library and Utilities")
       set (CPACK_APPLE_GUI_COPYRIGHT "Copyright © 2006-2014 by The HDF Group. All rights reserved.")
@@ -312,15 +269,15 @@ if (NOT HDF5_EXTERNALLY_CONFIGURED AND NOT HDF5_NO_PACKAGES)
       # Configure the Info.plist file for the install bundle
       #-----------------------------------------------------------------------------
       configure_file (
-          ${HDF5_RESOURCES_DIR}/CPack.Info.plist.in
+          ${HDF_RESOURCES_EXT_DIR}/CPack.Info.plist.in
           ${HDF5_BINARY_DIR}/CMakeFiles/Info.plist @ONLY
       )
       configure_file (
-          ${HDF5_RESOURCES_DIR}/PkgInfo.in
+          ${HDF_RESOURCES_DIR}/PkgInfo.in
           ${HDF5_BINARY_DIR}/CMakeFiles/PkgInfo @ONLY
       )
       configure_file (
-          ${HDF5_RESOURCES_DIR}/version.plist.in
+          ${HDF_RESOURCES_EXT_DIR}/version.plist.in
           ${HDF5_BINARY_DIR}/CMakeFiles/version.plist @ONLY
       )
       install (
@@ -328,16 +285,16 @@ if (NOT HDF5_EXTERNALLY_CONFIGURED AND NOT HDF5_NO_PACKAGES)
                 ${HDF5_BINARY_DIR}/CMakeFiles/version.plist
           DESTINATION ..
       )
-    ENDIF(HDF5_PACK_MACOSX_BUNDLE)
+    endif (HDF5_PACK_MACOSX_BUNDLE)
   else (WIN32)
-    LIST (APPEND CPACK_GENERATOR "STGZ") 
+    list (APPEND CPACK_GENERATOR "STGZ") 
     set (CPACK_PACKAGING_INSTALL_PREFIX "/${CPACK_PACKAGE_INSTALL_DIRECTORY}")
     set (CPACK_COMPONENTS_ALL_IN_ONE_PACKAGE ON)
 
     set (CPACK_DEBIAN_PACKAGE_SECTION "Libraries")
     set (CPACK_DEBIAN_PACKAGE_MAINTAINER "${HDF5_PACKAGE_BUGREPORT}")
 
-#    LIST (APPEND CPACK_GENERATOR "RPM") 
+#    list (APPEND CPACK_GENERATOR "RPM") 
     set (CPACK_RPM_PACKAGE_RELEASE "1")
     set (CPACK_RPM_COMPONENT_INSTALL ON)
     set (CPACK_RPM_PACKAGE_RELOCATABLE ON)
@@ -372,8 +329,8 @@ The HDF5 data model, file format, API, library, and tools are open and distribut
   # By default, do not warn when built on machines using only VS Express:
   if (NOT DEFINED CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS)
     set (CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS ON)
-  ENDIF(NOT DEFINED CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS)
-  INCLUDE(InstallRequiredSystemLibraries)
+  endif (NOT DEFINED CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS)
+  include (InstallRequiredSystemLibraries)
 
   set (CPACK_INSTALL_CMAKE_PROJECTS "${HDF5_BINARY_DIR};HDF5;ALL;/")
   
diff --git a/CMakeLists.txt b/CMakeLists.txt
index a82dcfa..8b8d5c7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -136,7 +136,8 @@ set (HDF5_HL_F90_C_LIB_TARGET     ${HDF5_HL_F90_C_LIB_CORENAME})
 #-----------------------------------------------------------------------------
 # Define some CMake variables for use later in the project
 #-----------------------------------------------------------------------------
-set (HDF5_RESOURCES_DIR      ${HDF5_SOURCE_DIR}/config/cmake)
+set (HDF_RESOURCES_DIR       ${HDF5_SOURCE_DIR}/config/cmake)
+set (HDF_RESOURCES_EXT_DIR   ${HDF5_SOURCE_DIR}/config/cmake_ext_mod)
 set (HDF5_SRC_DIR            ${HDF5_SOURCE_DIR}/src)
 set (HDF5_TEST_SRC_DIR       ${HDF5_SOURCE_DIR}/test)
 set (HDF5_CPP_SRC_DIR        ${HDF5_SOURCE_DIR}/c++)
@@ -215,9 +216,9 @@ set (HDF5_PACKAGE_BUGREPORT "help at hdfgroup.org")
 #-----------------------------------------------------------------------------
 # Include some macros for reusable code
 #-----------------------------------------------------------------------------
-include (${HDF5_RESOURCES_DIR}/HDFMacros.cmake)
-include (${HDF5_RESOURCES_DIR}/HDFLibMacros.cmake)
-include (${HDF5_RESOURCES_DIR}/HDF5Macros.cmake)
+include (${HDF_RESOURCES_EXT_DIR}/HDFMacros.cmake)
+include (${HDF_RESOURCES_EXT_DIR}/HDFLibMacros.cmake)
+include (${HDF_RESOURCES_DIR}/HDF5Macros.cmake)
 
 #-----------------------------------------------------------------------------
 # Setup output Directories
@@ -264,7 +265,7 @@ set (EXTERNAL_LIBRARYDLL_LIST "")
 #-----------------------------------------------------------------------------
 # Run all the CMake configuration tests for our build environment
 #-----------------------------------------------------------------------------
-include (${HDF5_RESOURCES_DIR}/ConfigureChecks.cmake)
+include (${HDF_RESOURCES_DIR}/ConfigureChecks.cmake)
 
 set (CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE ON)
 
@@ -632,7 +633,7 @@ INCLUDE_DIRECTORIES (${HDF5_BINARY_DIR} ${HDF5_SRC_DIR} ${CMAKE_RUNTIME_OUTPUT_D
 #-----------------------------------------------------------------------------
 # Option to Enable MPI Parallel
 #-----------------------------------------------------------------------------
-set (CMAKE_MODULE_PATH ${HDF5_RESOURCES_DIR} ${CMAKE_MODULE_PATH})
+set (CMAKE_MODULE_PATH ${HDF_RESOURCES_DIR} ${HDF_RESOURCES_EXT_DIR} ${CMAKE_MODULE_PATH})
 option (HDF5_ENABLE_PARALLEL "Enable parallel build (requires MPI)" OFF)
 if (HDF5_ENABLE_PARALLEL)
   include (FindMPI)
@@ -642,8 +643,6 @@ if (HDF5_ENABLE_PARALLEL)
     # MPI checks, only do these if MPI_C_FOUND is true, otherwise they always fail
     # and once set, they are cached as false and not regenerated
     set (CMAKE_REQUIRED_LIBRARIES "${MPI_C_LIBRARIES}" )
-    CHECK_FUNCTION_EXISTS (MPI_File_get_size H5_HAVE_MPI_GET_SIZE) 
-    set (H5_MPI_FILE_SET_SIZE_BIG 1)
     # Used by Fortran + MPI
     CHECK_SYMBOL_EXISTS (MPI_Comm_c2f "${MPI_C_INCLUDE_PATH}/mpi.h"  H5_HAVE_MPI_MULTI_LANG_Comm)
     CHECK_SYMBOL_EXISTS (MPI_Info_c2f "${MPI_C_INCLUDE_PATH}/mpi.h"  H5_HAVE_MPI_MULTI_LANG_Info)
@@ -694,7 +693,6 @@ if (NOT HDF5_EXTERNALLY_CONFIGURED)
     endif (HDF5_ENABLE_SZIP_SUPPORT AND SZIP_FOUND)
   endif (HDF5_PACKAGE_EXTLIBS)
 endif (NOT HDF5_EXTERNALLY_CONFIGURED)
-
 #-----------------------------------------------------------------------------
 # Option to use threadsafe
 # Note: Currently CMake only allows configuring of threadsafe on 
@@ -777,7 +775,7 @@ if (BUILD_TESTING)
   endif (HDF5_TEST_VFD)
   
   include (${HDF5_SOURCE_DIR}/CTestConfig.cmake)
-  configure_file (${HDF5_RESOURCES_DIR}/CTestCustom.cmake ${HDF5_BINARY_DIR}/CTestCustom.ctest @ONLY)
+  configure_file (${HDF_RESOURCES_DIR}/CTestCustom.cmake ${HDF5_BINARY_DIR}/CTestCustom.ctest @ONLY)
 endif (BUILD_TESTING)
 
 #-----------------------------------------------------------------------------
@@ -795,7 +793,7 @@ if (EXISTS "${HDF5_SOURCE_DIR}/fortran" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/for
       message (FATAL_ERROR " **** Shared FORTRAN libraries are unsupported **** ")
     endif (BUILD_SHARED_LIBS AND APPLE)
     option (HDF5_ENABLE_F2003 "Enable FORTRAN 2003 Standard" OFF)
-    include (${HDF5_RESOURCES_DIR}/HDF5UseFortran.cmake)
+    include (${HDF_RESOURCES_EXT_DIR}/HDFUseFortran.cmake)
     if (HDF5_ENABLE_F2003)
       if (NOT FORTRAN_HAVE_ISO_C_BINDING)
         set (HDF5_ENABLE_F2003 OFF)
@@ -861,8 +859,18 @@ if (EXISTS "${HDF5_SOURCE_DIR}/hl" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/hl")
 endif (EXISTS "${HDF5_SOURCE_DIR}/hl" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/hl")
 
 #-----------------------------------------------------------------------------
+# Check if Fortran's default real is double precision. If it is and HL is 
+# being built then configure should fail due to bug HDFFV-889.
+#-----------------------------------------------------------------------------
+ if (HDF5_BUILD_FORTRAN AND HDF5_BUILD_HL_LIB )
+   if (NOT FORTRAN_DEFAULT_REAL_NOT_DOUBLE)
+     message (FATAL_ERROR " **** Fortran high-level routines are not supported when the default REAL is DOUBLE PRECISION, use HDF5_BUILD_HL_LIB:BOOL=OFF **** ")
+   endif (NOT FORTRAN_DEFAULT_REAL_NOT_DOUBLE)
+ endif (HDF5_BUILD_FORTRAN AND HDF5_BUILD_HL_LIB )
+
+#-----------------------------------------------------------------------------
 # Generate the H5pubconf.h file containing user settings needed by compilation
 #-----------------------------------------------------------------------------
-configure_file (${HDF5_RESOURCES_DIR}/H5pubconf.h.in ${HDF5_BINARY_DIR}/H5pubconf.h @ONLY)
+configure_file (${HDF_RESOURCES_DIR}/H5pubconf.h.in ${HDF5_BINARY_DIR}/H5pubconf.h @ONLY)
 
 include (CMakeInstallation.cmake)
diff --git a/MANIFEST b/MANIFEST
index ae83f44..3944ffa 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -57,6 +57,7 @@
 ./bin/distdep
 ./bin/errors              _DO_NOT_DISTRIBUTE_
 ./bin/gcov_script            _DO_NOT_DISTRIBUTE_
+./bin/genltanalyze      _DO_NOT_DISTRIBUTE_
 ./bin/h5vers
 ./bin/install-sh
 ./bin/iostats
@@ -248,6 +249,7 @@
 ./fortran/src/H5f90proto.h
 ./fortran/src/H5test_kind.f90
 ./fortran/src/H5test_kind_SIZEOF.f90
+./fortran/src/H5test_kind_STORAGE_SIZE.f90
 ./fortran/src/H5match_types.c
 ./fortran/src/HDF5.f90
 ./fortran/src/HDF5mpio.f90
@@ -268,6 +270,9 @@
 ./fortran/test/t.c
 ./fortran/test/t.h
 ./fortran/test/tf.f90
+./fortran/test/tf_F90.f90
+./fortran/test/tf_F03.f90
+./fortran/test/tf_F08.f90
 ./fortran/test/tH5A.f90
 ./fortran/test/tH5A_1_8.f90
 ./fortran/test/tH5D.f90
@@ -570,6 +575,7 @@
 ./src/H5Fdbg.c
 ./src/H5Fefc.c
 ./src/H5Ffake.c
+./src/H5Fint.c
 ./src/H5Fio.c
 ./src/H5Fmount.c
 ./src/H5Fmpi.c
@@ -2281,42 +2287,45 @@
 ./vms/tools/testfiles/tperror.ddl
 
 # CMake-specific Files
-./config/cmake/FindSZIP.cmake
+./config/cmake/cacheinit.cmake
 ./config/cmake/ConversionTests.c
-./config/cmake/GetTimeOfDayTest.cpp
-./config/cmake/HDF5CXXTests.cpp
-./config/cmake/HDF5Tests.c
-./config/cmake/CheckTypeSize.cmake
+./config/cmake/ConfigureChecks.cmake
+./config/cmake/CTestCustom.cmake
+./config/cmake/FindHDF5.cmake.in
 ./config/cmake/H5cxx_config.h.in
 ./config/cmake/H5pubconf.h.in
-./config/cmake/FindHDF5.cmake.in
-./config/cmake/FindMPI.cmake
 ./config/cmake/hdf5-config.cmake.build.in
 ./config/cmake/hdf5-config.cmake.install.in
 ./config/cmake/hdf5-config-version.cmake.in
-./config/cmake/HDFMacros.cmake
-./config/cmake/HDFLibMacros.cmake
 ./config/cmake/HDF5Macros.cmake
-./config/cmake/HDF5UseFortran.cmake
 ./config/cmake/libhdf5.settings.cmake.in
-./config/cmake/cacheinit.cmake
 ./config/cmake/mccacheinit.cmake
-./config/cmake/grepTest.cmake
-./config/cmake/prunTest.cmake
-./config/cmake/runTest.cmake
-./config/cmake/userblockTest.cmake
-./config/cmake/vfdTest.cmake
-./config/cmake/CTestCustom.cmake
-./config/cmake/ConfigureChecks.cmake
-./config/cmake/CPack.Info.plist.in
-./config/cmake/hdf.bmp
-./config/cmake/hdf.icns
-./config/cmake/hdf.ico
 ./config/cmake/PkgInfo.in
-./config/cmake/version.plist.in
-./config/cmake/NSIS.template.in
-./config/cmake/NSIS.InstallOptions.ini.in
 ./config/cmake/README.txt.cmake.in
+./config/cmake/userblockTest.cmake
+./config/cmake/vfdTest.cmake
+
+./config/cmake_ext_mod/CheckTypeSize.cmake
+./config/cmake_ext_mod/ConfigureChecks.cmake
+./config/cmake_ext_mod/CPack.Info.plist.in
+./config/cmake_ext_mod/CTestCustom.cmake
+./config/cmake_ext_mod/FindMPI.cmake
+./config/cmake_ext_mod/FindSZIP.cmake
+./config/cmake_ext_mod/GetTimeOfDayTest.cpp
+./config/cmake_ext_mod/grepTest.cmake
+./config/cmake_ext_mod/hdf.bmp
+./config/cmake_ext_mod/hdf.icns
+./config/cmake_ext_mod/hdf.ico
+./config/cmake_ext_mod/HDFCXXTests.cpp
+./config/cmake_ext_mod/HDFLibMacros.cmake
+./config/cmake_ext_mod/HDFMacros.cmake
+./config/cmake_ext_mod/HDFTests.c
+./config/cmake_ext_mod/HDFUseFortran.cmake
+./config/cmake_ext_mod/NSIS.InstallOptions.ini.in
+./config/cmake_ext_mod/NSIS.template.in
+./config/cmake_ext_mod/prunTest.cmake
+./config/cmake_ext_mod/runTest.cmake
+./config/cmake_ext_mod/version.plist.in
 
 # CMake-specific User Files
 ./config/cmake/UserMacros/Windows_MT.cmake
diff --git a/Makefile.in b/Makefile.in
index 9343560..a8e0b61 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -344,7 +344,6 @@ MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MPE = @MPE@
-MPI_GET_SIZE = @MPI_GET_SIZE@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
diff --git a/README.txt b/README.txt
index 7da8038..4850f47 100644
--- a/README.txt
+++ b/README.txt
@@ -1,4 +1,4 @@
-HDF5 version 1.8.13 released on 2014-05-05
+HDF5 version 1.8.14 released on 2014-11-12
 Please refer to the release_docs/INSTALL file for installation instructions.
 ------------------------------------------------------------------------------
 
diff --git a/bin/cmakehdf5 b/bin/cmakehdf5
index 5da3cca..68a550e 100755
--- a/bin/cmakehdf5
+++ b/bin/cmakehdf5
@@ -26,6 +26,16 @@ installlog="#${progname}_5install.log"
 srcdir="../hdf5"	# expected source directory
 exit_code=0
 
+# Cmake build options
+hdf5_src=../hdf5
+cacheinit=$hdf5_src/config/cmake/cacheinit.cmake
+build_cpp_lib=-DHDF5_BUILD_CPP_LIB:BOOL=ON	# C++ interface default on
+build_fortran=-DHDF5_BUILD_FORTRAN:BOOL=ON	# Fortran interface default on
+build_hl_lib=-DHDF5_BUILD_HL_LIB:BOOL=ON	# High Level interface default on
+build_testing=-DBUILD_TESTING:BOOL=ON		# Build tests default on
+build_tools=-DHDF5_BUILD_TOOLS:BOOL=ON		# Build tools default on
+
+
 #=============
 # Function definitions
 #=============
@@ -99,7 +109,13 @@ fi
 echo Running Cmake for HDF5-${version} ...
 
 #      4. Configure the C library, tools and tests with this command:
-STEP "Configure..." "cmake -G 'Unix Makefiles' -DBUILD_TESTING:BOOL=ON -DHDF5_BUILD_TOOLS:BOOL=ON ../hdf5" $configlog
+STEP "Configure..." "cmake \
+    $build_cpp_lib \
+    $build_fortran \
+    $build_hl_lib \
+    $build_testing \
+    $build_tools \
+    $hdf5_src" $configlog
       
 #      5. Build the C library, tools and tests with this command:
 STEP "Build the library, tools and tests, ..." "cmake --build . --config Release" $makelog
@@ -197,7 +213,7 @@ set (SITE_BUILDNAME_SUFFIX "cmakehdf5")
 
 # -- URL set for internal check, default is to not update
 set (LOCAL_SKIP_UPDATE TRUE)
-set (REPOSITORY_URL "http://svn.hdfgroup.uiuc.edu/hdf5/branches/hdf5_1_8")
+set (REPOSITORY_URL "http://svn.${hdfgroup_url}/hdf5/branches/hdf5_1_8")
 # -- Standard build options  
 set (ADD_BUILD_OPTIONS "-DCMAKE_INSTALL_PREFIX:PATH=${CTEST_BINARY_DIRECTORY} -DHDF5_ALLOW_EXTERNAL_SUPPORT:STRING=\"SVN\" -DHDF5_PACKAGE_EXTLIBS:BOOL=ON")
 
diff --git a/bin/trace b/bin/trace
index a42d2e3..4720680 100755
--- a/bin/trace
+++ b/bin/trace
@@ -75,6 +75,7 @@ $Source = "";
 	       "hobj_ref_t"		    => "r",
                "H5R_type_t"                 => "Rt",
                "char"                       => "s",
+               "unsigned char"              => "s",
                "H5S_class_t"                => "Sc",
                "H5S_seloper_t"              => "Ss",
                "H5S_sel_type"               => "St",
@@ -138,6 +139,7 @@ $Source = "";
                "H5T_conv_except_func_t"     => "x",
                "H5Z_func_t"                 => "x",
                "H5Z_filter_func_t"          => "x",
+               "va_list"                    => "x",
                "size_t"                     => "z",
                "H5Z_SO_scale_type_t"        => "Za",
                "H5Z_class_t"                => "Zc",
diff --git a/c++/CMakeLists.txt b/c++/CMakeLists.txt
index 89426c5..63fc083 100644
--- a/c++/CMakeLists.txt
+++ b/c++/CMakeLists.txt
@@ -4,7 +4,7 @@ PROJECT (HDF5_CPP)
 #-----------------------------------------------------------------------------
 # Apply Definitions to compiler in this directory and below
 #-----------------------------------------------------------------------------
-add_definitions (${HDF5_EXTRA_C_FLAGS})
+add_definitions (${HDF_EXTRA_C_FLAGS})
 
 #-----------------------------------------------------------------------------
 # Shared/Static Libs
@@ -18,7 +18,7 @@ endif (BUILD_SHARED_LIBS)
 #-----------------------------------------------------------------------------
 # Generate configure file
 #-----------------------------------------------------------------------------
-configure_file (${HDF5_RESOURCES_DIR}/H5cxx_config.h.in
+configure_file (${HDF_RESOURCES_DIR}/H5cxx_config.h.in
                 ${HDF5_BINARY_DIR}/H5cxx_pubconf.h
 )
 
diff --git a/c++/Makefile.in b/c++/Makefile.in
index c56cfc4..de87fa5 100644
--- a/c++/Makefile.in
+++ b/c++/Makefile.in
@@ -504,7 +504,6 @@ MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MPE = @MPE@
-MPI_GET_SIZE = @MPI_GET_SIZE@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
diff --git a/c++/examples/Makefile.in b/c++/examples/Makefile.in
index eb74609..90dfed3 100644
--- a/c++/examples/Makefile.in
+++ b/c++/examples/Makefile.in
@@ -452,7 +452,6 @@ MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MPE = @MPE@
-MPI_GET_SIZE = @MPI_GET_SIZE@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
diff --git a/c++/src/CMakeLists.txt b/c++/src/CMakeLists.txt
index 7a48260..b07ab2b 100644
--- a/c++/src/CMakeLists.txt
+++ b/c++/src/CMakeLists.txt
@@ -11,7 +11,7 @@ endif (BUILD_SHARED_LIBS)
 #-----------------------------------------------------------------------------
 # Generate configure file
 #-----------------------------------------------------------------------------
-configure_file (${HDF5_RESOURCES_DIR}/H5cxx_config.h.in
+configure_file (${HDF_RESOURCES_DIR}/H5cxx_config.h.in
                 ${HDF5_BINARY_DIR}/H5cxx_pubconf.h
 )
 
diff --git a/c++/src/H5ArrayType.cpp b/c++/src/H5ArrayType.cpp
index 852658b..8807dca 100644
--- a/c++/src/H5ArrayType.cpp
+++ b/c++/src/H5ArrayType.cpp
@@ -54,15 +54,16 @@ ArrayType::ArrayType( const hid_t existing_id ) : DataType( existing_id )
    rank = H5Tget_array_ndims(existing_id);
    if (rank < 0)
    {
-      throw DataTypeIException("ArrayType overloaded constructor", "H5Tget_array_ndims failed");
+      throw DataTypeIException("ArrayType constructor (existing id)", "H5Tget_array_ndims failed");
    }
 
-   // Get the dimensions of the existing array and store it in this array
-   dimensions = new hsize_t[rank];
-   //hsize_t rdims2[H5S_MAX_RANK];
-   int ret_value = H5Tget_array_dims2(id, dimensions);
-   if (ret_value < 0)
-      throw DataTypeIException("ArrayType::getArrayDims", "H5Tget_array_dims2 failed");
+    // Allocate space for the dimensions
+    dimensions = new hsize_t[rank];
+
+    // Get the dimensions of the existing array and store it in this array
+    int ret_value = H5Tget_array_dims2(id, dimensions);
+    if (ret_value < 0)
+	throw DataTypeIException("ArrayType constructor (existing id)", "H5Tget_array_dims2 failed");
 }
 
 //--------------------------------------------------------------------------
@@ -72,10 +73,13 @@ ArrayType::ArrayType( const hid_t existing_id ) : DataType( existing_id )
 //--------------------------------------------------------------------------
 ArrayType::ArrayType( const ArrayType& original ) : DataType( original )
 {
-   rank = original.rank;
-   dimensions = new hsize_t[rank];
-   for (int i = 0; i < rank; i++)
-      dimensions[i] = original.dimensions[i];
+    // Copy the rank of the original array
+    rank = original.rank;
+
+    // Allocate space then copy the dimensions from the original array
+    dimensions = new hsize_t[rank];
+    for (int i = 0; i < rank; i++)
+	dimensions[i] = original.dimensions[i];
 }
 
 //--------------------------------------------------------------------------
@@ -90,14 +94,19 @@ ArrayType::ArrayType( const ArrayType& original ) : DataType( original )
 //--------------------------------------------------------------------------
 ArrayType::ArrayType(const DataType& base_type, int ndims, const hsize_t* dims) : DataType()
 {
-   hid_t new_type_id = H5Tarray_create2(base_type.getId(), ndims, dims);
-   if (new_type_id < 0)
-      throw DataTypeIException("ArrayType constructor", "H5Tarray_create2 failed");
-   id = new_type_id;
-   rank = ndims;
-   dimensions = new hsize_t[rank];
-   for (int i = 0; i < rank; i++)
-      dimensions[i] = dims[i];
+    // Call C API to create an array data type
+    hid_t new_type_id = H5Tarray_create2(base_type.getId(), ndims, dims);
+    if (new_type_id < 0)
+	throw DataTypeIException("ArrayType constructor", "H5Tarray_create2 failed");
+
+    // Set the id and rank for this object
+    id = new_type_id;
+    rank = ndims;
+
+    // Allocate space then set the dimensions as provided by caller
+    dimensions = new hsize_t[rank];
+    for (int i = 0; i < rank; i++)
+	dimensions[i] = dims[i];
 }
 
 //--------------------------------------------------------------------------
@@ -132,19 +141,19 @@ int ArrayType::getArrayNDims()
 //--------------------------------------------------------------------------
 int ArrayType::getArrayDims(hsize_t* dims)
 {
-   // if the array's dimensions have not been stored, retrieve them via C API
+   // If the array's dimensions have not been stored, retrieve them via C API
    if (dimensions == NULL)
    {
       int ndims = H5Tget_array_dims2(id, dims);
       if (ndims < 0)
          throw DataTypeIException("ArrayType::getArrayDims", "H5Tget_array_dims2 failed");
-      // store the array's info in memory
+      // Store the array's info in memory
       rank = ndims;
       dimensions = new hsize_t[rank];
       for (int i = 0; i < rank; i++)
          dimensions[i] = dims[i];
    }
-   // otherwise, simply copy what's in 'dimensions' to 'dims'
+   // Otherwise, simply copy what's in 'dimensions' to 'dims'
    for (int i = 0; i < rank; i++)
       dims[i] = dimensions[i];
    return(rank);
diff --git a/c++/src/H5Attribute.cpp b/c++/src/H5Attribute.cpp
index 1182b69..0c135a9 100644
--- a/c++/src/H5Attribute.cpp
+++ b/c++/src/H5Attribute.cpp
@@ -50,7 +50,7 @@ class H5_DLLCPP H5Object;  // forward declaration for UserData4Aiterate
 ///\brief	Default constructor: Creates a stub attribute
 // Programmer	Binh-Minh Ribler - May, 2004
 //--------------------------------------------------------------------------
-Attribute::Attribute() : AbstractDs(), IdComponent(), id(0) {}
+Attribute::Attribute() : AbstractDs(), IdComponent(), id(H5I_INVALID_HID) {}
 
 //--------------------------------------------------------------------------
 // Function:	Attribute copy constructor
@@ -162,13 +162,13 @@ void Attribute::read( const DataType& mem_type, void *buf ) const
 //	Mar 2008
 //		Corrected a misunderstanding that H5Aread would allocate
 //		space for the buffer.  Obtained the attribute size and
-//		allocated memory properly. - BMR
+//		allocated memory properly. -BMR
 //	Apr 2009
-//		Used getInMemDataSize to get attribute data size. - BMR
+//		Used getInMemDataSize to get attribute data size. -BMR
 //	Jul 2009
 //		Divided into specific private functions for fixed- and
 //		variable-len string data: p_read_fixed_len and
-//		p_read_variable_len.  This should improve readability.
+//		p_read_variable_len.  This should improve readability. -BMR
 //--------------------------------------------------------------------------
 void Attribute::read(const DataType& mem_type, H5std_string& strg) const
 {
@@ -586,7 +586,7 @@ void Attribute::p_read_fixed_len(const DataType& mem_type, H5std_string& strg) c
 // Modification
 //	Jul 2009
 //		Separated the variable length case from the original
-//		Attribute::read
+//		Attribute::read. -BMR
 //--------------------------------------------------------------------------
 void Attribute::p_read_variable_len(const DataType& mem_type, H5std_string& strg) const
 {
@@ -648,7 +648,7 @@ void Attribute::close()
 	    throw AttributeIException("Attribute::close", "H5Aclose failed");
 	}
 	// reset the id
-	id = 0;
+	id = H5I_INVALID_HID;
     }
 }
 
diff --git a/c++/src/H5CommonFG.cpp b/c++/src/H5CommonFG.cpp
index d296db4..3aa0386 100644
--- a/c++/src/H5CommonFG.cpp
+++ b/c++/src/H5CommonFG.cpp
@@ -33,6 +33,9 @@
 #include "H5Alltypes.h"
 #include "H5private.h"		// for HDstrcpy
 
+#include <iostream>
+using namespace std;
+
 // There are a few comments that are common to most of the functions
 // defined in this file so they are listed here.
 // - getLocId is called by all functions, that call a C API, to get
@@ -440,7 +443,10 @@ H5std_string CommonFG::getLinkval( const char* name, size_t size ) const
 
 	ret_value = H5Lget_val(getLocId(), name, value_C, val_size, H5P_DEFAULT);
 	if( ret_value < 0 )
+	{
+	    delete []value_C;
 	    throwException("getLinkval", "H5Lget_val failed");
+	}
 
 	value = H5std_string(value_C);
 	delete []value_C;
@@ -913,6 +919,12 @@ H5std_string CommonFG::getObjnameByIdx(hsize_t idx) const
 
     name_len = H5Lget_name_by_idx(getLocId(), ".", H5_INDEX_NAME, H5_ITER_INC, idx, name_C, name_len+1, H5P_DEFAULT);
 
+    if (name_len < 0)
+    {
+	delete []name_C;
+	throwException("getObjnameByIdx", "H5Lget_name_by_idx failed");
+    }
+
     // clean up and return the string
     H5std_string name = H5std_string(name_C);
     delete []name_C;
@@ -957,10 +969,15 @@ ssize_t CommonFG::getObjnameByIdx(hsize_t idx, H5std_string& name, size_t size)
    char* name_C = new char[size+1]; // temporary C-string for object name
    HDmemset(name_C, 0, size+1); // clear buffer
 
+   // call overloaded function to get the name
    ssize_t name_len = getObjnameByIdx(idx, name_C, size+1);
    if(name_len < 0)
+   {
+      delete []name_C;
       throwException("getObjnameByIdx", "H5Lget_name_by_idx failed");
+   }
 
+   // clean up and return the string
    name = H5std_string(name_C);
    delete []name_C;
    return (name_len);
diff --git a/c++/src/H5CppDoc.h b/c++/src/H5CppDoc.h
index 8ab2531..388fc25 100644
--- a/c++/src/H5CppDoc.h
+++ b/c++/src/H5CppDoc.h
@@ -23,39 +23,48 @@
 // ------------------------------------------------------------------------
 
 /*! \mainpage notitle
- *
+ * <br />
  * \section intro_sec Introduction
  *
- * The C++ API provides C++ wrappers for the HDF5 C library.
- * It is assumed that the user has knowledge of the HDF5 file format
- * and its components.  If you are not familiar with HDF5 file format,
- * and would like to find out more, please refer to the HDF5 documentation
- * at http://www.hdfgroup.org/HDF5/doc/index.html
+ * The C++ API provides C++ wrappers for the HDF5 C Library.
+ * 
+ * It is assumed that the user has knowledge of the 
+ * <a href="http://www.hdfgroup.org/HDF5/doc/H5.format.html">
+ * HDF5 file format</a> and its components. 
+ * For more information on the HDF5 C Library, see the 
+ * <a href="http://www.hdfgroup.org/HDF5/doc/index.html"> 
+ * HDF5 Software Documentation</a> page.
  *
- * Because the HDF5 library maps very well to
+ * Because the HDF5 C Library maps very well to
  * the object oriented design approach, classes in the C++ API can
- * closely represent the interfaces of the HDF5 APIs, as followed:
+ * closely represent the interfaces of the C APIs as follows:
  *
  * \verbatim
- 	HDF5 C APIs                       C++ Classes
- 	-----------                       -----------
- 	Attribute Interface (H5A)         Attribute
- 	Datasets Interface (H5D)          DataSet
- 	Error Interface (H5E)             Exception
- 	File Interface (H5F)              H5File
- 	Group Interface (H5G)             Group
- 	Identifier Interface (H5I)        IdComponent
- 	Property List Interface (H5P)     PropList and subclasses
- 	Dataspace Interface (H5S)         DataSpace
- 	Datatype Interface (H5T)          DataType and subclasses
+    HDF5 C APIs                       C++ Classes
+    -----------                       -----------
+    Attribute Interface (H5A)         Attribute
+    Datasets Interface (H5D)          DataSet
+    Error Interface (H5E)             Exception
+    File Interface (H5F)              H5File
+    Group Interface (H5G)             Group
+    Identifier Interface (H5I)        IdComponent
+    Property List Interface (H5P)     PropList and subclasses
+    Dataspace Interface (H5S)         DataSpace
+    Datatype Interface (H5T)          DataType and subclasses
   \endverbatim
+ * <br />
  * \section install_sec Installation
  *
- * Please refer to the file release_docs/INSTALL_Windows.txt
- * under the top directory for information about installing, building,
+ * The HDF5 C++ API is included with the HDF5 source code and can 
+ * be obtained from 
+ * <a href="http://www.hdfgroup.org/HDF5/release/obtainsrc.html">
+ * http://www.hdfgroup.org/HDF5/release/obtainsrc.html</a>.
+ * 
+ * Please refer to the release_docs/INSTALL file under the top directory 
+ * of the HDF5 source code for information about installing, building, 
  * and testing the C++ API.
  *
- *
+ * <br />
  */
 
 ///	This example shows how to create datasets.
diff --git a/c++/src/H5DataSet.cpp b/c++/src/H5DataSet.cpp
index 12ea455..83621f5 100644
--- a/c++/src/H5DataSet.cpp
+++ b/c++/src/H5DataSet.cpp
@@ -52,7 +52,7 @@ namespace H5 {
 ///\brief	Default constructor: creates a stub DataSet.
 // Programmer	Binh-Minh Ribler - 2000
 //--------------------------------------------------------------------------
-DataSet::DataSet() : AbstractDs(), H5Object(), id(0) {}
+DataSet::DataSet() : AbstractDs(), H5Object(), id(H5I_INVALID_HID) {}
 
 //--------------------------------------------------------------------------
 // Function:	DataSet overloaded constructor
@@ -85,7 +85,6 @@ DataSet::DataSet(const DataSet& original) : AbstractDs(original), H5Object(origi
 ///			  object that the dataset is located within.
 ///\param	ref - IN: Reference pointer
 ///\param	ref_type - IN: Reference type - default to H5R_OBJECT
-///\param	plist - IN: Property list - default to PropList::DEFAULT
 ///\exception	H5::DataSetIException
 ///\par Description
 ///		\c loc can be DataSet, Group, H5File, or named DataType, that
@@ -95,7 +94,7 @@ DataSet::DataSet(const DataSet& original) : AbstractDs(original), H5Object(origi
 //	Jul, 2008
 //		Added for application convenience.
 //--------------------------------------------------------------------------
-DataSet::DataSet(const H5Location& loc, const void* ref, H5R_type_t ref_type) : AbstractDs(), H5Object(), id(0)
+DataSet::DataSet(const H5Location& loc, const void* ref, H5R_type_t ref_type) : AbstractDs(), H5Object(), id(H5I_INVALID_HID)
 {
     id = H5Location::p_dereference(loc.getId(), ref, ref_type, "constructor - by dereferenced");
 }
@@ -107,14 +106,13 @@ DataSet::DataSet(const H5Location& loc, const void* ref, H5R_type_t ref_type) :
 ///\param	attr - IN: Specifying location where the referenced object is in
 ///\param	ref - IN: Reference pointer
 ///\param	ref_type - IN: Reference type - default to H5R_OBJECT
-///\param	plist - IN: Property list - default to PropList::DEFAULT
 ///\exception	H5::ReferenceException
 // Programmer	Binh-Minh Ribler - Oct, 2006
 // Modification
 //	Jul, 2008
 //		Added for application convenience.
 //--------------------------------------------------------------------------
-DataSet::DataSet(const Attribute& attr, const void* ref, H5R_type_t ref_type) : AbstractDs(), H5Object(), id(0)
+DataSet::DataSet(const Attribute& attr, const void* ref, H5R_type_t ref_type) : AbstractDs(), H5Object(), id(H5I_INVALID_HID)
 {
     id = H5Location::p_dereference(attr.getId(), ref, ref_type, "constructor - by dereference");
 }
@@ -788,7 +786,7 @@ void DataSet::close()
 	    throw DataSetIException("DataSet::close", "H5Dclose failed");
 	}
 	// reset the id
-	id = 0;
+	id = H5I_INVALID_HID;
     }
 }
 
diff --git a/c++/src/H5DataSpace.cpp b/c++/src/H5DataSpace.cpp
index 6ad8c8d..20b4e5e 100644
--- a/c++/src/H5DataSpace.cpp
+++ b/c++/src/H5DataSpace.cpp
@@ -630,7 +630,7 @@ void DataSpace::close()
 	    throw DataSpaceIException("DataSpace::close", "H5Sclose failed");
 	}
 	// reset the id
-	id = 0;
+	id = H5I_INVALID_HID;
     }
 }
 
diff --git a/c++/src/H5DataSpace.h b/c++/src/H5DataSpace.h
index 75d4ff8..fd4b1d6 100644
--- a/c++/src/H5DataSpace.h
+++ b/c++/src/H5DataSpace.h
@@ -33,6 +33,12 @@ class H5_DLLCPP DataSpace : public IdComponent {
 	// Creates a simple dataspace
 	DataSpace(int rank, const hsize_t * dims, const hsize_t * maxdims = NULL);
 
+	// Creates a DataSpace object using an existing dataspace id.
+	DataSpace(const hid_t space_id);
+
+	// Copy constructor: makes a copy of the original DataSpace object.
+	DataSpace(const DataSpace& original);
+
 	// Assignment operator
 	DataSpace& operator=( const DataSpace& rhs );
 
@@ -109,12 +115,6 @@ class H5_DLLCPP DataSpace : public IdComponent {
 	///\brief Returns this class name.
 	virtual H5std_string fromClass () const { return("DataSpace"); }
 
-	// Creates a DataSpace object using an existing dataspace id.
-	DataSpace(const hid_t space_id);
-
-	// Copy constructor: makes a copy of the original DataSpace object.
-	DataSpace(const DataSpace& original);
-
 	// Gets the dataspace id.
 	virtual hid_t getId() const;
 
diff --git a/c++/src/H5DataType.cpp b/c++/src/H5DataType.cpp
index 016a3d5..0d7d61b 100644
--- a/c++/src/H5DataType.cpp
+++ b/c++/src/H5DataType.cpp
@@ -53,7 +53,7 @@ namespace H5 {
 ///\brief	Default constructor: Creates a stub datatype
 // Programmer	Binh-Minh Ribler - 2000
 //--------------------------------------------------------------------------
-DataType::DataType() : H5Object(), id(0) {}
+DataType::DataType() : H5Object(), id(H5I_INVALID_HID) {}
 
 //--------------------------------------------------------------------------
 // Function:	DataType overloaded constructor
@@ -98,14 +98,13 @@ DataType::DataType( const H5T_class_t type_class, size_t size ) : H5Object()
 ///\param       loc - IN: Location referenced object is in
 ///\param	ref - IN: Reference pointer
 ///\param	ref_type - IN: Reference type - default to H5R_OBJECT
-///\param	plist - IN: Property list - default to PropList::DEFAULT
 ///\exception	H5::ReferenceException
 // Programmer	Binh-Minh Ribler - Oct, 2006
 // Modification
 //	Jul, 2008
 //		Added for application convenience.
 //--------------------------------------------------------------------------
-DataType::DataType(const H5Location& loc, const void* ref, H5R_type_t ref_type) : H5Object(), id(0)
+DataType::DataType(const H5Location& loc, const void* ref, H5R_type_t ref_type) : H5Object(), id(H5I_INVALID_HID)
 {
     id = H5Location::p_dereference(loc.getId(), ref, ref_type, "constructor - by dereference");
 }
@@ -117,14 +116,13 @@ DataType::DataType(const H5Location& loc, const void* ref, H5R_type_t ref_type)
 ///\param       attr - IN: Specifying location where the referenced object is in
 ///\param	ref - IN: Reference pointer
 ///\param	ref_type - IN: Reference type - default to H5R_OBJECT
-///\param	plist - IN: Property list - default to PropList::DEFAULT
 ///\exception	H5::ReferenceException
 // Programmer	Binh-Minh Ribler - Oct, 2006
 // Modification
 //	Jul, 2008
 //		Added for application convenience.
 //--------------------------------------------------------------------------
-DataType::DataType(const Attribute& attr, const void* ref, H5R_type_t ref_type) : H5Object(), id(0)
+DataType::DataType(const Attribute& attr, const void* ref, H5R_type_t ref_type) : H5Object(), id(H5I_INVALID_HID)
 {
     id = H5Location::p_dereference(attr.getId(), ref, ref_type, "constructor - by dereference");
 }
@@ -710,7 +708,7 @@ void DataType::close()
 	    throw DataTypeIException(inMemFunc("close"), "H5Tclose failed");
 	}
 	// reset the id
-	id = 0;
+	id = H5I_INVALID_HID;
     }
 }
 
diff --git a/c++/src/H5EnumType.cpp b/c++/src/H5EnumType.cpp
index 04bb9e0..a91c053 100644
--- a/c++/src/H5EnumType.cpp
+++ b/c++/src/H5EnumType.cpp
@@ -159,6 +159,7 @@ H5std_string EnumType::nameOf( void *value, size_t size ) const
    // If H5Tenum_nameof returns a negative value, raise an exception,
    if( ret_value < 0 )
    {
+      delete []name_C;
       throw DataTypeIException("EnumType::nameOf", "H5Tenum_nameof failed");
    }
    // otherwise, create the string to hold the datatype name and return it
diff --git a/c++/src/H5Exception.cpp b/c++/src/H5Exception.cpp
index 2d18825..daf6a74 100644
--- a/c++/src/H5Exception.cpp
+++ b/c++/src/H5Exception.cpp
@@ -80,8 +80,11 @@ H5std_string Exception::getMajorString( hid_t err_major ) const
 
    // Check for failure again
    if( mesg_size < 0 )
+   {
+      delete []mesg_C;
       throw IdComponentException("Exception::getMajorString",
 				"H5Eget_msg failed");
+   }
 
    // Convert the C error description and return
    H5std_string major_str(mesg_C);
@@ -116,8 +119,11 @@ H5std_string Exception::getMinorString( hid_t err_minor ) const
 
    // Check for failure again
    if( mesg_size < 0 )
+   {
+      delete []mesg_C;
       throw IdComponentException("Exception::getMinorString",
 				"H5Eget_msg failed");
+   }
 
    // Convert the C error description and return
    H5std_string minor_str(mesg_C);
diff --git a/c++/src/H5File.cpp b/c++/src/H5File.cpp
index 6e04fc1..0620070 100644
--- a/c++/src/H5File.cpp
+++ b/c++/src/H5File.cpp
@@ -50,7 +50,7 @@ namespace H5 {
 ///\brief	Default constructor: creates a stub H5File object.
 // Programmer	Binh-Minh Ribler - 2000
 //--------------------------------------------------------------------------
-H5File::H5File() : H5Location(), id(0) {}
+H5File::H5File() : H5Location(), id(H5I_INVALID_HID) {}
 
 //--------------------------------------------------------------------------
 // Function:	H5File overloaded constructor
@@ -69,6 +69,10 @@ H5File::H5File() : H5Location(), id(0) {}
 ///				       the file.
 ///		\li \c H5F_ACC_EXCL - Fail if file already exists.
 ///			\c H5F_ACC_TRUNC and \c H5F_ACC_EXCL are mutually exclusive
+///		\li \c H5F_ACC_RDONLY - Open file as read-only, if it already
+///					exists, and fail, otherwise
+///		\li \c H5F_ACC_RDWR - Open file for read/write, if it already
+///					exists, and fail, otherwise
 ///		\li \c H5F_ACC_DEBUG - print debug information. This flag is
 ///			used only by HDF5 library developers; it is neither
 ///			tested nor supported for use in applications.
@@ -82,7 +86,7 @@ H5File::H5File() : H5Location(), id(0) {}
 //		to catch then re-throw it. -BMR 2013/03/21
 // Programmer	Binh-Minh Ribler - 2000
 //--------------------------------------------------------------------------
-H5File::H5File( const char* name, unsigned int flags, const FileCreatPropList& create_plist, const FileAccPropList& access_plist ) : H5Location(), id(0)
+H5File::H5File( const char* name, unsigned int flags, const FileCreatPropList& create_plist, const FileAccPropList& access_plist ) : H5Location(), id(H5I_INVALID_HID)
 {
     try {
 	p_get_file(name, flags, create_plist, access_plist);
@@ -107,7 +111,7 @@ H5File::H5File( const char* name, unsigned int flags, const FileCreatPropList& c
 //		to catch then re-throw it. -BMR 2013/03/21
 // Programmer	Binh-Minh Ribler - 2000
 //--------------------------------------------------------------------------
-H5File::H5File( const H5std_string& name, unsigned int flags, const FileCreatPropList& create_plist, const FileAccPropList& access_plist ) : H5Location(), id(0)
+H5File::H5File( const H5std_string& name, unsigned int flags, const FileCreatPropList& create_plist, const FileAccPropList& access_plist ) : H5Location(), id(H5I_INVALID_HID)
 {
     try {
 	p_get_file(name.c_str(), flags, create_plist, access_plist);
@@ -121,12 +125,15 @@ H5File::H5File( const H5std_string& name, unsigned int flags, const FileCreatPro
 // This function is private and contains common code between the
 // constructors taking a string or a char*
 // Programmer	Binh-Minh Ribler - 2000
+// Modification
+//		- removed H5F_ACC_CREAT because H5Fcreate will fail with
+//		H5F_ACC_CREAT. - BMR, Sep 17, 2014
 //--------------------------------------------------------------------------
 void H5File::p_get_file(const char* name, unsigned int flags, const FileCreatPropList& create_plist, const FileAccPropList& access_plist)
 {
     // These bits only set for creation, so if any of them are set,
     // create the file.
-    if( flags & (H5F_ACC_CREAT|H5F_ACC_EXCL|H5F_ACC_TRUNC|H5F_ACC_DEBUG))
+    if( flags & (H5F_ACC_EXCL|H5F_ACC_TRUNC|H5F_ACC_DEBUG))
     {
 	hid_t create_plist_id = create_plist.getId();
 	hid_t access_plist_id = access_plist.getId();
@@ -147,6 +154,7 @@ void H5File::p_get_file(const char* name, unsigned int flags, const FileCreatPro
 	}
     }
 }
+
 #endif // DOXYGEN_SHOULD_SKIP_THIS
 
 //--------------------------------------------------------------------------
@@ -598,7 +606,7 @@ void H5File::close()
 	    throw FileIException("H5File::close", "H5Fclose failed");
 	}
 	// reset the id
-	id = 0;
+	id = H5I_INVALID_HID;
     }
 }
 
diff --git a/c++/src/H5Group.cpp b/c++/src/H5Group.cpp
index 38f8b9f..41e7fc6 100644
--- a/c++/src/H5Group.cpp
+++ b/c++/src/H5Group.cpp
@@ -51,7 +51,7 @@ namespace H5 {
 ///\brief	Default constructor: creates a stub Group.
 // Programmer	Binh-Minh Ribler - 2000
 //--------------------------------------------------------------------------
-Group::Group() : H5Object(), id(0) {}
+Group::Group() : H5Object(), id(H5I_INVALID_HID) {}
 
 //--------------------------------------------------------------------------
 // Function:	Group copy constructor
@@ -99,7 +99,7 @@ Group::Group(const hid_t existing_id) : H5Object()
 ///		is a datatype that has been named by DataType::commit.
 // Programmer	Binh-Minh Ribler - Oct, 2006
 //--------------------------------------------------------------------------
-Group::Group(const H5Location& loc, const void* ref, H5R_type_t ref_type) : H5Object(), id(0)
+Group::Group(const H5Location& loc, const void* ref, H5R_type_t ref_type) : H5Object(), id(H5I_INVALID_HID)
 {
     id = H5Location::p_dereference(loc.getId(), ref, ref_type, "constructor - by dereference");
 }
@@ -113,7 +113,7 @@ Group::Group(const H5Location& loc, const void* ref, H5R_type_t ref_type) : H5Ob
 ///\exception	H5::ReferenceException
 // Programmer	Binh-Minh Ribler - Oct, 2006
 //--------------------------------------------------------------------------
-Group::Group(const Attribute& attr, const void* ref, H5R_type_t ref_type) : H5Object(), id(0)
+Group::Group(const Attribute& attr, const void* ref, H5R_type_t ref_type) : H5Object(), id(H5I_INVALID_HID)
 {
     id = H5Location::p_dereference(attr.getId(), ref, ref_type, "constructor - by dereference");
 }
@@ -179,7 +179,7 @@ void Group::close()
 	    throw GroupIException("Group::close", "H5Gclose failed");
 	}
 	// reset the id
-	id = 0;
+	id = H5I_INVALID_HID;
     }
 }
 
diff --git a/c++/src/H5IdComponent.cpp b/c++/src/H5IdComponent.cpp
index 99a8dc4..4a9dcac 100644
--- a/c++/src/H5IdComponent.cpp
+++ b/c++/src/H5IdComponent.cpp
@@ -145,7 +145,7 @@ int IdComponent::getCounter() const
 //--------------------------------------------------------------------------
 H5I_type_t IdComponent::getHDFObjType(const hid_t obj_id)
 {
-    if (obj_id == 0)
+    if (obj_id <= 0)
 	return H5I_BADID; // invalid
     H5I_type_t id_type = H5Iget_type(obj_id);
     if (id_type <= H5I_BADID || id_type >= H5I_NTYPES)
@@ -317,6 +317,7 @@ H5std_string IdComponent::p_get_file_name() const
    // Check for failure again
    if( name_size < 0 )
    {
+      delete []name_C;
       throw IdComponentException("", "H5Fget_name failed");
    }
 
@@ -339,7 +340,7 @@ H5std_string IdComponent::p_get_file_name() const
 //--------------------------------------------------------------------------
 bool IdComponent::p_valid_id(const hid_t obj_id)
 {
-    if (obj_id == 0)
+    if (obj_id <= 0)
 	return false;
 
     H5I_type_t id_type = H5Iget_type(obj_id);
diff --git a/c++/src/H5Location.cpp b/c++/src/H5Location.cpp
index 42aa99a..70be5bf 100644
--- a/c++/src/H5Location.cpp
+++ b/c++/src/H5Location.cpp
@@ -33,6 +33,9 @@
 #include "H5DataSet.h"
 #include "H5Attribute.h"
 #include "H5private.h"		// for HDmemset
+#include <iostream>
+using namespace std;
+
 
 #ifndef H5_NO_NAMESPACE
 namespace H5 {
@@ -551,6 +554,7 @@ H5std_string H5Location::getComment(const char* name, size_t buf_size) const
 	ssize_t comment_len = getComment(name, tmp_len+1, comment_C);
 	if (comment_len < 0)
 	{
+	    delete []comment_C;
 	    throw LocationException("H5Location::getComment", "H5Oget_comment_by_name failed");
 	}
 
@@ -724,7 +728,6 @@ hid_t H5Location::p_dereference(hid_t loc_id, const void* ref, H5R_type_t ref_ty
 ///\param	loc - IN: Location of the referenced object
 ///\param	ref - IN: Reference pointer
 ///\param	ref_type - IN: Reference type
-///\param	plist - IN: Property list - default to PropList::DEFAULT
 ///\exception	H5::ReferenceException
 // Programmer	Binh-Minh Ribler - Oct, 2006
 // Modification
@@ -742,7 +745,6 @@ void H5Location::dereference(const H5Location& loc, const void* ref, H5R_type_t
 ///\param	attr - IN: Attribute specifying the location of the referenced object
 ///\param	ref - IN: Reference pointer
 ///\param	ref_type - IN: Reference type
-///\param	plist - IN: Property list - default to PropList::DEFAULT
 ///\exception	H5::ReferenceException
 // Programmer	Binh-Minh Ribler - Oct, 2006
 // Modification
diff --git a/c++/src/H5PropList.cpp b/c++/src/H5PropList.cpp
index 0b740d8..5afe80f 100644
--- a/c++/src/H5PropList.cpp
+++ b/c++/src/H5PropList.cpp
@@ -46,7 +46,7 @@ const PropList PropList::DEFAULT;
 ///\brief	Default constructor: creates a stub property list object.
 // Programmer	Binh-Minh Ribler - 2000
 //--------------------------------------------------------------------------
-PropList::PropList() : IdComponent(), id(0) {}
+PropList::PropList() : IdComponent(), id(H5P_DEFAULT) {}
 
 //--------------------------------------------------------------------------
 // Function:	PropList copy constructor
@@ -74,7 +74,7 @@ PropList::PropList(const PropList& original) : IdComponent(original)
 //--------------------------------------------------------------------------
 PropList::PropList( const hid_t plist_id ) : IdComponent()
 {
-    if (plist_id == 0)
+    if (plist_id <= 0)
 	id = H5P_DEFAULT;
 
     H5I_type_t id_type = H5Iget_type(plist_id);
@@ -277,7 +277,7 @@ void PropList::close()
 	    throw PropListIException(inMemFunc("close"), "H5Pclose failed");
 	}
 	// reset the id
-	id = 0;
+	id = H5I_INVALID_HID;
     }
 }
 
@@ -402,6 +402,7 @@ H5std_string PropList::getProperty(const char* name) const
    // Throw exception if H5Pget returns failure
    if (ret_value < 0)
    {
+      delete []prop_strg_C;
       throw PropListIException(inMemFunc("getProperty"), "H5Pget failed");
    }
 
diff --git a/c++/src/H5StrType.cpp b/c++/src/H5StrType.cpp
index a906b72..0593a47 100644
--- a/c++/src/H5StrType.cpp
+++ b/c++/src/H5StrType.cpp
@@ -146,6 +146,13 @@ StrType::StrType( const DataSet& dataset ) : AtomType ()
 ///\brief	Retrieves the character set type of this string datatype.
 ///\return	Character set type, which can be:
 ///		\li \c H5T_CSET_ASCII (0) - Character set is US ASCII.
+///\note
+///	ASCII and UTF-8 Unicode are the only currently supported character 
+///	encodings. Extended ASCII encodings (for example, ISO 8859) are not 
+///	supported. This encoding policy is not enforced by the HDF5 Library. 
+///	Using encodings other than ASCII and UTF-8 can lead to compatibility 
+///	and usability problems. See the C API entry H5Pset_char_encoding for
+///	more information.
 ///\exception	H5::DataTypeIException
 // Programmer	Binh-Minh Ribler - 2000
 //--------------------------------------------------------------------------
@@ -166,6 +173,13 @@ H5T_cset_t StrType::getCset() const
 ///\brief	Sets character set to be used.
 ///\param	cset - IN: character set type, which can be:
 ///		\li \c H5T_CSET_ASCII (0) - Character set is US ASCII.
+///\note
+///	ASCII and UTF-8 Unicode are the only currently supported character 
+///	encodings. Extended ASCII encodings (for example, ISO 8859) are not 
+///	supported. This encoding policy is not enforced by the HDF5 Library. 
+///	Using encodings other than ASCII and UTF-8 can lead to compatibility 
+///	and usability problems. See the C API entry H5Pset_char_encoding for
+///	more information.
 ///\exception	H5::DataTypeIException
 // Programmer	Binh-Minh Ribler - 2000
 //--------------------------------------------------------------------------
diff --git a/c++/src/Makefile.in b/c++/src/Makefile.in
index 719b608..f056075 100644
--- a/c++/src/Makefile.in
+++ b/c++/src/Makefile.in
@@ -518,7 +518,6 @@ MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MPE = @MPE@
-MPI_GET_SIZE = @MPI_GET_SIZE@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -681,8 +680,10 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog
 
 # Add libtool shared library version numbers to the HDF5 library
 # See libtool versioning documentation online.
-LT_VERS_INTERFACE = 8
-LT_VERS_REVISION = 2 
+# After making changes, run bin/reconfigure to update other configure related
+# files like Makefile.in.
+LT_VERS_INTERFACE = 9
+LT_VERS_REVISION = 0
 LT_VERS_AGE = 0
 
 # This is our main target
diff --git a/c++/src/cpp_doc_config b/c++/src/cpp_doc_config
index ea10b04..4ebd796 100644
--- a/c++/src/cpp_doc_config
+++ b/c++/src/cpp_doc_config
@@ -38,7 +38,7 @@ PROJECT_NAME           = "HDF5 C++ API"
 # could be handy for archiving the generated documentation or if some version
 # control system is used.
 
-PROJECT_NUMBER         = 1.8.13
+PROJECT_NUMBER         = 1.8.14
 
 # Using the PROJECT_BRIEF tag one can provide an optional one line description
 # for a project that appears at the top of each page and should give viewer a
@@ -58,7 +58,7 @@ PROJECT_LOGO           = ./header_files/hdf_logo.jpg
 # entered, it will be relative to the location where doxygen was started. If
 # left blank the current directory will be used.
 
-OUTPUT_DIRECTORY       = HTML
+OUTPUT_DIRECTORY       = cpplus_RM
 
 # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 4096 sub-
 # directories (in 2 levels) under the output directory of each output format and
@@ -1069,7 +1069,7 @@ GENERATE_HTML          = YES
 # The default directory is: html.
 # This tag requires that the tag GENERATE_HTML is set to YES.
 
-HTML_OUTPUT            = HTML
+HTML_OUTPUT            = .
 
 # The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
 # generated HTML page (for example: .htm, .php, .asp).
diff --git a/c++/test/CMakeTests.cmake b/c++/test/CMakeTests.cmake
index 147972f..c725f69 100644
--- a/c++/test/CMakeTests.cmake
+++ b/c++/test/CMakeTests.cmake
@@ -57,9 +57,10 @@ if (HDF5_TEST_VFD)
             -D "TEST_EXPECT=${resultcode}"
             -D "TEST_OUTPUT=cpp_testhdf5"
             -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
-            -P "${HDF5_RESOURCES_DIR}/vfdTest.cmake"
+            -P "${HDF_RESOURCES_DIR}/vfdTest.cmake"
       )
       set_tests_properties (CPP_VFD-${vfdname}-cpp_testhdf5 PROPERTIES DEPENDS CPP_VFD-${vfdname}-cpp_testhdf5-clear-objects)
+      set_tests_properties (CPP_VFD-${vfdname}-cpp_testhdf5 PROPERTIES TIMEOUT 30)
     endif (NOT HDF5_ENABLE_USING_MEMCHECKER)
   ENDMACRO (ADD_VFD_TEST)
   
diff --git a/c++/test/Makefile.in b/c++/test/Makefile.in
index 621618e..49c08e4 100644
--- a/c++/test/Makefile.in
+++ b/c++/test/Makefile.in
@@ -509,7 +509,6 @@ MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MPE = @MPE@
-MPI_GET_SIZE = @MPI_GET_SIZE@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
diff --git a/c++/test/dsets.cpp b/c++/test/dsets.cpp
index d1ced1d..fc0ea3a 100644
--- a/c++/test/dsets.cpp
+++ b/c++/test/dsets.cpp
@@ -1083,6 +1083,7 @@ void test_dset()
 
 	// Close the file before testing data size.
 	file.close();
+
 	nerrors += test_datasize(fapl) <0 ? 1:0;
     }
     catch (Exception E)
diff --git a/c++/test/tfile.cpp b/c++/test/tfile.cpp
index 0f4ea33..e4e8d34 100644
--- a/c++/test/tfile.cpp
+++ b/c++/test/tfile.cpp
@@ -598,7 +598,7 @@ static void test_file_attribute()
     }   // end of try block
 
     catch (Exception E) {
-        issue_fail_msg("test_file_name()", __LINE__, __FILE__, E.getCDetailMsg());
+        issue_fail_msg("test_file_attribute()", __LINE__, __FILE__, E.getCDetailMsg());
     }
 }   // test_file_attribute()
 

@@ -622,7 +622,7 @@ extern "C"
 void test_file()
 {
     // Output message about test being performed
-    MESSAGE(5, ("Testing File I/O operations\n"));
+    MESSAGE(5, ("Testing File I/O Operations\n"));
 
     test_file_create();	// Test file creation (also creation templates)
     test_file_open();	// Test file opening
diff --git a/c++/test/th5s.cpp b/c++/test/th5s.cpp
index cfdeb1f..b7a39b4 100644
--- a/c++/test/th5s.cpp
+++ b/c++/test/th5s.cpp
@@ -317,7 +317,7 @@ static void test_h5s_scalar_read()
     SUBTEST("Scalar Dataspace Reading");
 
     try {
-	// Create file
+	// Open file
 	H5File fid1(DATAFILE, H5F_ACC_RDWR);
 
 	// Create a dataset
@@ -506,7 +506,7 @@ static void test_h5s_compound_scalar_read()
     // Output message about test being performed
     SUBTEST("Compound Dataspace Reading");
     try {
-	// Create file
+	// Open file
 	H5File fid1(DATAFILE, H5F_ACC_RDWR);
 
 	// Create a dataset
diff --git a/c++/test/tlinks.cpp b/c++/test/tlinks.cpp
index fca5918..291b649 100644
--- a/c++/test/tlinks.cpp
+++ b/c++/test/tlinks.cpp
@@ -15,7 +15,7 @@
 /*****************************************************************************
    FILE
    tlinks.cpp - HDF5 C++ testing functionalities associated with the
-        C attribute interface (H5L)
+        C link interface (H5L)
 
  ***************************************************************************/
 
diff --git a/config/apple b/config/apple
index ac93ea5..5203695 100644
--- a/config/apple
+++ b/config/apple
@@ -31,6 +31,20 @@ if test "X-" = "X-$CC"; then
 	*)
 	    CC=clang
 	    CC_BASENAME=clang
+
+	    # Production
+	    PROD_CFLAGS="-O3" 
+	    PROD_CPPFLAGS=
+
+	    # Debug
+	    DEBUG_CFLAGS="-g -O0"
+	    DEBUG_CPPFLAGS=
+
+	    # Profile
+	    # Use this for profiling with gprof
+	    # Just "-g" for now. More later.
+	    PROFILE_CFLAGS="-g"
+	    PROFILE_CPPFLAGS=
 	    ;;
     esac
 fi
@@ -89,6 +103,16 @@ if test "X-" = "X-$CXX"; then
     esac
 fi
 
+case $CXX_BASENAME in
+    clang++)
+	PROD_CXXFLAGS="-O3"
+	DEBUG_CXXFLAGS="-g -O0"
+	# Use this for profiling with gprof
+	# Just "-g" for now. More later.
+	PROFILE_CXXFLAGS="-g"
+	;;
+esac
+
 # compiler version strings
 case $CC in
     clang)
diff --git a/config/cmake/ConfigureChecks.cmake b/config/cmake/ConfigureChecks.cmake
index 9816755..444ce0b 100644
--- a/config/cmake/ConfigureChecks.cmake
+++ b/config/cmake/ConfigureChecks.cmake
@@ -1,44 +1,11 @@
 #-----------------------------------------------------------------------------
 # Include all the necessary files for macros
 #-----------------------------------------------------------------------------
-include (${CMAKE_ROOT}/Modules/CheckFunctionExists.cmake)
-include (${CMAKE_ROOT}/Modules/CheckIncludeFile.cmake)
-include (${CMAKE_ROOT}/Modules/CheckIncludeFileCXX.cmake)
-include (${CMAKE_ROOT}/Modules/CheckIncludeFiles.cmake)
-include (${CMAKE_ROOT}/Modules/CheckLibraryExists.cmake)
-include (${CMAKE_ROOT}/Modules/CheckSymbolExists.cmake)
-include (${CMAKE_ROOT}/Modules/CheckTypeSize.cmake)
-include (${CMAKE_ROOT}/Modules/CheckVariableExists.cmake)
-include (${CMAKE_ROOT}/Modules/CheckFortranFunctionExists.cmake)
-include (${CMAKE_ROOT}/Modules/TestBigEndian.cmake)
+set (HDF_PREFIX "H5")
+include (${HDF_RESOURCES_EXT_DIR}/ConfigureChecks.cmake)
 include (${CMAKE_ROOT}/Modules/TestForSTDNamespace.cmake)
 
 #-----------------------------------------------------------------------------
-# APPLE/Darwin setup
-#-----------------------------------------------------------------------------
-if (APPLE)
-  list (LENGTH CMAKE_OSX_ARCHITECTURES ARCH_LENGTH)
-  if (ARCH_LENGTH GREATER 1)
-    set (CMAKE_OSX_ARCHITECTURES "" CACHE STRING "" FORCE)
-    message(FATAL_ERROR "Building Universal Binaries on OS X is NOT supported by the HDF5 project. This is"
-    "due to technical reasons. The best approach would be build each architecture in separate directories"
-    "and use the 'lipo' tool to combine them into a single executable or library. The 'CMAKE_OSX_ARCHITECTURES'"
-    "variable has been set to a blank value which will build the default architecture for this system.")
-  endif ()
-  set (H5_AC_APPLE_UNIVERSAL_BUILD 0)
-endif (APPLE)
-
-# Check for Darwin (not just Apple - we also want to catch OpenDarwin)
-if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") 
-    set (H5_HAVE_DARWIN 1) 
-endif (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
-
-# Check for Solaris
-if (${CMAKE_SYSTEM_NAME} MATCHES "SunOS") 
-    set (H5_HAVE_SOLARIS 1) 
-endif (${CMAKE_SYSTEM_NAME} MATCHES "SunOS")
-
-#-----------------------------------------------------------------------------
 # Option to Clear File Buffers before write --enable-clear-file-buffers
 #-----------------------------------------------------------------------------
 option (HDF5_Enable_Clear_File_Buffers "Securely clear file buffers before writing to file" ON)
@@ -98,7 +65,13 @@ if (HDF5_ENABLE_CODESTACK)
 endif (HDF5_ENABLE_CODESTACK)
 MARK_AS_ADVANCED (HDF5_ENABLE_CODESTACK)
 
+#-----------------------------------------------------------------------------
+#  Are we going to use HSIZE_T
+#-----------------------------------------------------------------------------
 option (HDF5_ENABLE_HSIZET "Enable datasets larger than memory" ON)
+if (HDF5_ENABLE_HSIZET)
+  set (${HDF_PREFIX}_HAVE_LARGE_HSIZET 1)
+endif (HDF5_ENABLE_HSIZET)
 
 # ----------------------------------------------------------------------
 # Set the flag to indicate that the machine can handle converting
@@ -110,40 +83,6 @@ option (HDF5_ENABLE_HSIZET "Enable datasets larger than memory" ON)
 # so far we have no check for this
 set (H5_HAVE_TMPFILE 1)
 
-#-----------------------------------------------------------------------------
-# This MACRO checks IF the symbol exists in the library and IF it
-# does, it appends library to the list.
-#-----------------------------------------------------------------------------
-set (LINK_LIBS "")
-MACRO (CHECK_LIBRARY_EXISTS_CONCAT LIBRARY SYMBOL VARIABLE)
-  CHECK_LIBRARY_EXISTS ("${LIBRARY};${LINK_LIBS}" ${SYMBOL} "" ${VARIABLE})
-  if (${VARIABLE})
-    set (LINK_LIBS ${LINK_LIBS} ${LIBRARY})
-  endif (${VARIABLE})
-ENDMACRO (CHECK_LIBRARY_EXISTS_CONCAT)
-
-# ----------------------------------------------------------------------
-# WINDOWS Hard code Values
-# ----------------------------------------------------------------------
-
-set (WINDOWS)
-if (WIN32)
-  if (MINGW)
-    set (H5_HAVE_MINGW 1)
-    set (WINDOWS 1) # MinGW tries to imitate Windows
-    set (CMAKE_REQUIRED_FLAGS "-DWIN32_LEAN_AND_MEAN=1 -DNOGDI=1")
-  endif (MINGW)
-  set (H5_HAVE_WIN32_API 1)
-  set (CMAKE_REQUIRED_LIBRARIES "ws2_32.lib;wsock32.lib")
-  if (NOT UNIX AND NOT CYGWIN AND NOT MINGW)
-    set (WINDOWS 1)
-    set (CMAKE_REQUIRED_FLAGS "/DWIN32_LEAN_AND_MEAN=1 /DNOGDI=1")
-    if (MSVC)
-      set (H5_HAVE_VISUAL_STUDIO 1)
-    endif (MSVC)
-  endif (NOT UNIX AND NOT CYGWIN AND NOT MINGW)
-endif (WIN32)
-
 # TODO --------------------------------------------------------------------------
 # Should the Default Virtual File Driver be compiled?
 # This is hard-coded now but option should added to match configure
@@ -152,7 +91,7 @@ set (H5_DEFAULT_VFD H5FD_SEC2)
 
 if (NOT DEFINED "H5_DEFAULT_PLUGINDIR")
   if (WINDOWS)
-    set (H5_DEFAULT_PLUGINDIR "%ALLUSERSPROFILE%/hdf5/lib/plugin")
+    set (H5_DEFAULT_PLUGINDIR "%ALLUSERSPROFILE%\\\\hdf5\\\\lib\\\\plugin")
   else (WINDOWS)
     set (H5_DEFAULT_PLUGINDIR "/usr/local/hdf5/lib/plugin")
   endif (WINDOWS)
@@ -168,30 +107,6 @@ if (WINDOWS)
 endif (WINDOWS)
 
 if (WINDOWS)
-  set (H5_HAVE_STDDEF_H 1)
-  set (H5_HAVE_SYS_STAT_H 1)
-  set (H5_HAVE_SYS_TYPES_H 1)
-  set (H5_HAVE_LIBM 1)
-  set (H5_HAVE_STRDUP 1)
-  set (H5_HAVE_SYSTEM 1)
-  set (H5_HAVE_LONGJMP 1)
-  if (NOT MINGW)
-    set (H5_HAVE_GETHOSTNAME 1)
-  endif (NOT MINGW)
-  if (NOT UNIX AND NOT CYGWIN AND NOT MINGW)
-    set (H5_HAVE_GETCONSOLESCREENBUFFERINFO 1)
-  endif (NOT UNIX AND NOT CYGWIN AND NOT MINGW)
-  set (H5_HAVE_FUNCTION 1)
-  set (H5_GETTIMEOFDAY_GIVES_TZ 1)
-  set (H5_HAVE_TIMEZONE 1)
-  set (H5_HAVE_GETTIMEOFDAY 1)
-  set (H5_LONE_COLON 0)
-  if (MINGW)
-    set (H5_HAVE_WINSOCK2_H 1)
-  endif (MINGW)
-  set (H5_HAVE_LIBWS2_32 1)
-  set (H5_HAVE_LIBWSOCK32 1)
-
   #-----------------------------------------------------------------------------
   # These tests need to be manually SET for windows since there is currently
   # something not quite correct with the actual test implementation. This affects
@@ -204,97 +119,6 @@ endif (WINDOWS)
 # END of WINDOWS Hard code Values
 # ----------------------------------------------------------------------
 
-if (CYGWIN)
-  set (H5_HAVE_LSEEK64 0)
-endif (CYGWIN)
-
-#-----------------------------------------------------------------------------
-#  Check for the math library "m"
-#-----------------------------------------------------------------------------
-if (NOT WINDOWS)
-  CHECK_LIBRARY_EXISTS_CONCAT ("m" ceil     H5_HAVE_LIBM)
-  CHECK_LIBRARY_EXISTS_CONCAT ("dl" dlopen     H5_HAVE_LIBDL)
-  CHECK_LIBRARY_EXISTS_CONCAT ("ws2_32" WSAStartup  H5_HAVE_LIBWS2_32)
-  CHECK_LIBRARY_EXISTS_CONCAT ("wsock32" gethostbyname H5_HAVE_LIBWSOCK32)
-endif (NOT WINDOWS)
-
-CHECK_LIBRARY_EXISTS_CONCAT ("ucb"    gethostname  H5_HAVE_LIBUCB)
-CHECK_LIBRARY_EXISTS_CONCAT ("socket" connect      H5_HAVE_LIBSOCKET)
-CHECK_LIBRARY_EXISTS ("c" gethostbyname "" NOT_NEED_LIBNSL)
-
-if (NOT NOT_NEED_LIBNSL)
-  CHECK_LIBRARY_EXISTS_CONCAT ("nsl"    gethostbyname  H5_HAVE_LIBNSL)
-endif (NOT NOT_NEED_LIBNSL)
-
-# For other tests to use the same libraries
-set (CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${LINK_LIBS})
-
-set (USE_INCLUDES "")
-if (WINDOWS)
-  set (USE_INCLUDES ${USE_INCLUDES} "windows.h")
-endif (WINDOWS)
-
-if (NOT WINDOWS)
-  TEST_BIG_ENDIAN (H5_WORDS_BIGENDIAN)
-endif (NOT WINDOWS)
-
-# For other specific tests, use this MACRO.
-MACRO (HDF5_FUNCTION_TEST OTHER_TEST)
-  if ("H5_${OTHER_TEST}" MATCHES "^H5_${OTHER_TEST}$")
-    set (MACRO_CHECK_FUNCTION_DEFINITIONS "-D${OTHER_TEST} ${CMAKE_REQUIRED_FLAGS}")
-    set (OTHER_TEST_ADD_LIBRARIES)
-    if (CMAKE_REQUIRED_LIBRARIES)
-      set (OTHER_TEST_ADD_LIBRARIES "-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}")
-    endif (CMAKE_REQUIRED_LIBRARIES)
-
-    foreach (def ${HDF5_EXTRA_TEST_DEFINITIONS})
-      set (MACRO_CHECK_FUNCTION_DEFINITIONS "${MACRO_CHECK_FUNCTION_DEFINITIONS} -D${def}=${${def}}")
-    endforeach (def)
-
-    foreach (def
-        HAVE_SYS_TIME_H
-        HAVE_UNISTD_H
-        HAVE_SYS_TYPES_H
-        HAVE_SYS_SOCKET_H
-    )
-      if ("${H5_${def}}")
-        set (MACRO_CHECK_FUNCTION_DEFINITIONS "${MACRO_CHECK_FUNCTION_DEFINITIONS} -D${def}")
-      endif ("${H5_${def}}")
-    endforeach (def)
-
-    if (LARGEFILE)
-      set (MACRO_CHECK_FUNCTION_DEFINITIONS
-          "${MACRO_CHECK_FUNCTION_DEFINITIONS} -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE"
-      )
-    endif (LARGEFILE)
-
-    #message (STATUS "Performing ${OTHER_TEST}")
-    TRY_COMPILE (${OTHER_TEST}
-        ${CMAKE_BINARY_DIR}
-        ${HDF5_RESOURCES_DIR}/HDF5Tests.c
-        CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS}
-        "${OTHER_TEST_ADD_LIBRARIES}"
-        OUTPUT_VARIABLE OUTPUT
-    )
-    if (${OTHER_TEST})
-      set (H5_${OTHER_TEST} 1 CACHE INTERNAL "Other test ${FUNCTION}")
-      message (STATUS "Performing Other Test ${OTHER_TEST} - Success")
-    else (${OTHER_TEST})
-      message (STATUS "Performing Other Test ${OTHER_TEST} - Failed")
-      set (H5_${OTHER_TEST} "" CACHE INTERNAL "Other test ${FUNCTION}")
-      file (APPEND ${CMAKE_BINARY_DIR}/CMakeFiles/CMakeError.log
-          "Performing Other Test ${OTHER_TEST} failed with the following output:\n"
-          "${OUTPUT}\n"
-      )
-    endif (${OTHER_TEST})
-  endif ("H5_${OTHER_TEST}" MATCHES "^H5_${OTHER_TEST}$")
-ENDMACRO (HDF5_FUNCTION_TEST)
-
-#-----------------------------------------------------------------------------
-# Check for these functions before the time headers are checked
-#-----------------------------------------------------------------------------
-HDF5_FUNCTION_TEST (STDC_HEADERS)
-
 CHECK_FUNCTION_EXISTS (difftime          H5_HAVE_DIFFTIME)
 #CHECK_FUNCTION_EXISTS (gettimeofday      H5_HAVE_GETTIMEOFDAY)
 #  Since gettimeofday is not defined any where standard, lets look in all the
@@ -303,7 +127,7 @@ if (NOT MSVC)
   if ("H5_HAVE_TIME_GETTIMEOFDAY" MATCHES "^H5_HAVE_TIME_GETTIMEOFDAY$")
     TRY_COMPILE (HAVE_TIME_GETTIMEOFDAY
         ${CMAKE_BINARY_DIR}
-        ${HDF5_RESOURCES_DIR}/GetTimeOfDayTest.cpp
+        ${HDF_RESOURCES_EXT_DIR}/GetTimeOfDayTest.cpp
         COMPILE_DEFINITIONS -DTRY_TIME_H
         OUTPUT_VARIABLE OUTPUT
     )
@@ -316,7 +140,7 @@ if (NOT MSVC)
   if ("H5_HAVE_SYS_TIME_GETTIMEOFDAY" MATCHES "^H5_HAVE_SYS_TIME_GETTIMEOFDAY$")
     TRY_COMPILE (HAVE_SYS_TIME_GETTIMEOFDAY
         ${CMAKE_BINARY_DIR}
-        ${HDF5_RESOURCES_DIR}/GetTimeOfDayTest.cpp
+        ${HDF_RESOURCES_EXT_DIR}/GetTimeOfDayTest.cpp
         COMPILE_DEFINITIONS -DTRY_SYS_TIME_H
         OUTPUT_VARIABLE OUTPUT
     )
@@ -354,426 +178,6 @@ endif (NOT WINDOWS)
 #-----------------------------------------------------------------------------
 
 #-----------------------------------------------------------------------------
-# Check IF header file exists and add it to the list.
-#-----------------------------------------------------------------------------
-MACRO (CHECK_INCLUDE_FILE_CONCAT FILE VARIABLE)
-  CHECK_INCLUDE_FILES ("${USE_INCLUDES};${FILE}" ${VARIABLE})
-  if (${VARIABLE})
-    set (USE_INCLUDES ${USE_INCLUDES} ${FILE})
-  endif (${VARIABLE})
-ENDMACRO (CHECK_INCLUDE_FILE_CONCAT)
-
-#-----------------------------------------------------------------------------
-#  Check for the existence of certain header files
-#-----------------------------------------------------------------------------
-CHECK_INCLUDE_FILE_CONCAT ("sys/resource.h"  H5_HAVE_SYS_RESOURCE_H)
-CHECK_INCLUDE_FILE_CONCAT ("sys/time.h"      H5_HAVE_SYS_TIME_H)
-CHECK_INCLUDE_FILE_CONCAT ("unistd.h"        H5_HAVE_UNISTD_H)
-CHECK_INCLUDE_FILE_CONCAT ("sys/ioctl.h"     H5_HAVE_SYS_IOCTL_H)
-CHECK_INCLUDE_FILE_CONCAT ("sys/stat.h"      H5_HAVE_SYS_STAT_H)
-CHECK_INCLUDE_FILE_CONCAT ("sys/socket.h"    H5_HAVE_SYS_SOCKET_H)
-CHECK_INCLUDE_FILE_CONCAT ("sys/types.h"     H5_HAVE_SYS_TYPES_H)
-CHECK_INCLUDE_FILE_CONCAT ("stddef.h"        H5_HAVE_STDDEF_H)
-CHECK_INCLUDE_FILE_CONCAT ("setjmp.h"        H5_HAVE_SETJMP_H)
-CHECK_INCLUDE_FILE_CONCAT ("features.h"      H5_HAVE_FEATURES_H)
-CHECK_INCLUDE_FILE_CONCAT ("dirent.h"        H5_HAVE_DIRENT_H)
-CHECK_INCLUDE_FILE_CONCAT ("stdint.h"        H5_HAVE_STDINT_H)
-
-# IF the c compiler found stdint, check the C++ as well. On some systems this
-# file will be found by C but not C++, only do this test IF the C++ compiler
-# has been initialized (e.g. the project also includes some c++)
-if (H5_HAVE_STDINT_H AND CMAKE_CXX_COMPILER_LOADED)
-  CHECK_INCLUDE_FILE_CXX ("stdint.h" H5_HAVE_STDINT_H_CXX)
-  if (NOT H5_HAVE_STDINT_H_CXX)
-    set (H5_HAVE_STDINT_H "" CACHE INTERNAL "Have includes HAVE_STDINT_H")
-    set (USE_INCLUDES ${USE_INCLUDES} "stdint.h")
-  endif (NOT H5_HAVE_STDINT_H_CXX)
-endif (H5_HAVE_STDINT_H AND CMAKE_CXX_COMPILER_LOADED)
-
-# Darwin
-CHECK_INCLUDE_FILE_CONCAT ("mach/mach_time.h" H5_HAVE_MACH_MACH_TIME_H)
-
-# Windows
-CHECK_INCLUDE_FILE_CONCAT ("io.h"            H5_HAVE_IO_H)
-if (NOT CYGWIN)
-  CHECK_INCLUDE_FILE_CONCAT ("winsock2.h"      H5_HAVE_WINSOCK2_H)
-endif (NOT CYGWIN)
-CHECK_INCLUDE_FILE_CONCAT ("sys/timeb.h"     H5_HAVE_SYS_TIMEB_H)
-
-if (CMAKE_SYSTEM_NAME MATCHES "OSF")
-  CHECK_INCLUDE_FILE_CONCAT ("sys/sysinfo.h" H5_HAVE_SYS_SYSINFO_H)
-  CHECK_INCLUDE_FILE_CONCAT ("sys/proc.h"    H5_HAVE_SYS_PROC_H)
-else (CMAKE_SYSTEM_NAME MATCHES "OSF")
-  set (H5_HAVE_SYS_SYSINFO_H "" CACHE INTERNAL "" FORCE)
-  set (H5_HAVE_SYS_PROC_H    "" CACHE INTERNAL "" FORCE)
-endif (CMAKE_SYSTEM_NAME MATCHES "OSF")
-
-CHECK_INCLUDE_FILE_CONCAT ("globus/common.h" H5_HAVE_GLOBUS_COMMON_H)
-CHECK_INCLUDE_FILE_CONCAT ("pdb.h"           H5_HAVE_PDB_H)
-CHECK_INCLUDE_FILE_CONCAT ("pthread.h"       H5_HAVE_PTHREAD_H)
-CHECK_INCLUDE_FILE_CONCAT ("srbclient.h"     H5_HAVE_SRBCLIENT_H)
-CHECK_INCLUDE_FILE_CONCAT ("string.h"        H5_HAVE_STRING_H)
-CHECK_INCLUDE_FILE_CONCAT ("strings.h"       H5_HAVE_STRINGS_H)
-CHECK_INCLUDE_FILE_CONCAT ("time.h"          H5_HAVE_TIME_H)
-CHECK_INCLUDE_FILE_CONCAT ("stdlib.h"        H5_HAVE_STDLIB_H)
-CHECK_INCLUDE_FILE_CONCAT ("memory.h"        H5_HAVE_MEMORY_H)
-CHECK_INCLUDE_FILE_CONCAT ("dlfcn.h"         H5_HAVE_DLFCN_H)
-CHECK_INCLUDE_FILE_CONCAT ("inttypes.h"      H5_HAVE_INTTYPES_H)
-CHECK_INCLUDE_FILE_CONCAT ("netinet/in.h"    H5_HAVE_NETINET_IN_H)
-
-#-----------------------------------------------------------------------------
-#  Check for large file support
-#-----------------------------------------------------------------------------
-
-# The linux-lfs option is deprecated.
-set (LINUX_LFS 0)
-
-set (HDF5_EXTRA_C_FLAGS)
-set (HDF5_EXTRA_FLAGS)
-if (NOT WINDOWS)
-  if (NOT H5_HAVE_SOLARIS)
-  # Linux Specific flags
-  # This was originally defined as _POSIX_SOURCE which was updated to
-  # _POSIX_C_SOURCE=199506L to expose a greater amount of POSIX
-  # functionality so clock_gettime and CLOCK_MONOTONIC are defined
-  # correctly.
-  # POSIX feature information can be found in the gcc manual at:
-  # http://www.gnu.org/s/libc/manual/html_node/Feature-Test-Macros.html
-  set (HDF5_EXTRA_C_FLAGS -D_POSIX_C_SOURCE=199506L)
-  set (HDF5_EXTRA_FLAGS -D_BSD_SOURCE)
-  
-  option (HDF5_ENABLE_LARGE_FILE "Enable support for large (64-bit) files on Linux." ON)
-  if (HDF5_ENABLE_LARGE_FILE)
-    set (msg "Performing TEST_LFS_WORKS")
-    TRY_RUN (TEST_LFS_WORKS_RUN   TEST_LFS_WORKS_COMPILE
-        ${HDF5_BINARY_DIR}/CMake
-        ${HDF5_RESOURCES_DIR}/HDF5Tests.c
-        CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=-DTEST_LFS_WORKS
-        OUTPUT_VARIABLE OUTPUT
-    )
-    if (TEST_LFS_WORKS_COMPILE)
-      if (TEST_LFS_WORKS_RUN  MATCHES 0)
-        set (TEST_LFS_WORKS 1 CACHE INTERNAL ${msg})
-        set (LARGEFILE 1)
-        set (HDF5_EXTRA_FLAGS ${HDF5_EXTRA_FLAGS} -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE)
-        message (STATUS "${msg}... yes")
-      else (TEST_LFS_WORKS_RUN  MATCHES 0)
-        set (TEST_LFS_WORKS "" CACHE INTERNAL ${msg})
-        message (STATUS "${msg}... no")
-        file (APPEND ${CMAKE_BINARY_DIR}/CMakeFiles/CMakeError.log
-              "Test TEST_LFS_WORKS Run failed with the following output and exit code:\n ${OUTPUT}\n"
-        )
-      endif (TEST_LFS_WORKS_RUN  MATCHES 0)
-    else (TEST_LFS_WORKS_COMPILE )
-      set (TEST_LFS_WORKS "" CACHE INTERNAL ${msg})
-      message (STATUS "${msg}... no")
-      file (APPEND ${CMAKE_BINARY_DIR}/CMakeFiles/CMakeError.log
-          "Test TEST_LFS_WORKS Compile failed with the following output:\n ${OUTPUT}\n"
-      )
-    endif (TEST_LFS_WORKS_COMPILE)
-  endif (HDF5_ENABLE_LARGE_FILE)
-  set (CMAKE_REQUIRED_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS} ${HDF5_EXTRA_FLAGS})
-  endif (NOT H5_HAVE_SOLARIS)
-endif (NOT WINDOWS)
-
-add_definitions (${HDF5_EXTRA_FLAGS})
-
-#-----------------------------------------------------------------------------
-# Check for HAVE_OFF64_T functionality
-#-----------------------------------------------------------------------------
-if (NOT WINDOWS OR MINGW)
-  HDF5_FUNCTION_TEST (HAVE_OFF64_T)
-  if (H5_HAVE_OFF64_T)
-    CHECK_FUNCTION_EXISTS (lseek64            H5_HAVE_LSEEK64)
-    CHECK_FUNCTION_EXISTS (fseeko64           H5_HAVE_FSEEKO64)
-    CHECK_FUNCTION_EXISTS (ftello64           H5_HAVE_FTELLO64)
-    CHECK_FUNCTION_EXISTS (ftruncate64        H5_HAVE_FTRUNCATE64)
-  endif (H5_HAVE_OFF64_T)
-
-  CHECK_FUNCTION_EXISTS (fseeko               H5_HAVE_FSEEKO)
-  CHECK_FUNCTION_EXISTS (ftello               H5_HAVE_FTELLO)
-
-  HDF5_FUNCTION_TEST (HAVE_STAT64_STRUCT)
-  if (HAVE_STAT64_STRUCT)
-    CHECK_FUNCTION_EXISTS (fstat64            H5_HAVE_FSTAT64)
-    CHECK_FUNCTION_EXISTS (stat64             H5_HAVE_STAT64)
-  endif (HAVE_STAT64_STRUCT)
-endif (NOT WINDOWS OR MINGW)
-
-#-----------------------------------------------------------------------------
-#  Check the size in bytes of all the int and float types
-#-----------------------------------------------------------------------------
-MACRO (H5_CHECK_TYPE_SIZE type var)
-  set (aType ${type})
-  set (aVar  ${var})
-#  message (STATUS "Checking size of ${aType} and storing into ${aVar}")
-  CHECK_TYPE_SIZE (${aType}   ${aVar})
-  if (NOT ${aVar})
-    set (${aVar} 0 CACHE INTERNAL "SizeOf for ${aType}")
-#    message (STATUS "Size of ${aType} was NOT Found")
-  endif (NOT ${aVar})
-ENDMACRO (H5_CHECK_TYPE_SIZE)
-
-H5_CHECK_TYPE_SIZE (char           H5_SIZEOF_CHAR)
-H5_CHECK_TYPE_SIZE (short          H5_SIZEOF_SHORT)
-H5_CHECK_TYPE_SIZE (int            H5_SIZEOF_INT)
-H5_CHECK_TYPE_SIZE (unsigned       H5_SIZEOF_UNSIGNED)
-if (NOT APPLE)
-  H5_CHECK_TYPE_SIZE (long         H5_SIZEOF_LONG)
-endif (NOT APPLE)
-H5_CHECK_TYPE_SIZE ("long long"    H5_SIZEOF_LONG_LONG)
-H5_CHECK_TYPE_SIZE (__int64        H5_SIZEOF___INT64)
-if (NOT H5_SIZEOF___INT64)
-  set (H5_SIZEOF___INT64 0)
-endif (NOT H5_SIZEOF___INT64)
-
-H5_CHECK_TYPE_SIZE (float          H5_SIZEOF_FLOAT)
-H5_CHECK_TYPE_SIZE (double         H5_SIZEOF_DOUBLE)
-H5_CHECK_TYPE_SIZE ("long double"  H5_SIZEOF_LONG_DOUBLE)
-
-H5_CHECK_TYPE_SIZE (int8_t         H5_SIZEOF_INT8_T)
-H5_CHECK_TYPE_SIZE (uint8_t        H5_SIZEOF_UINT8_T)
-H5_CHECK_TYPE_SIZE (int_least8_t   H5_SIZEOF_INT_LEAST8_T)
-H5_CHECK_TYPE_SIZE (uint_least8_t  H5_SIZEOF_UINT_LEAST8_T)
-H5_CHECK_TYPE_SIZE (int_fast8_t    H5_SIZEOF_INT_FAST8_T)
-H5_CHECK_TYPE_SIZE (uint_fast8_t   H5_SIZEOF_UINT_FAST8_T)
-
-H5_CHECK_TYPE_SIZE (int16_t        H5_SIZEOF_INT16_T)
-H5_CHECK_TYPE_SIZE (uint16_t       H5_SIZEOF_UINT16_T)
-H5_CHECK_TYPE_SIZE (int_least16_t  H5_SIZEOF_INT_LEAST16_T)
-H5_CHECK_TYPE_SIZE (uint_least16_t H5_SIZEOF_UINT_LEAST16_T)
-H5_CHECK_TYPE_SIZE (int_fast16_t   H5_SIZEOF_INT_FAST16_T)
-H5_CHECK_TYPE_SIZE (uint_fast16_t  H5_SIZEOF_UINT_FAST16_T)
-
-H5_CHECK_TYPE_SIZE (int32_t        H5_SIZEOF_INT32_T)
-H5_CHECK_TYPE_SIZE (uint32_t       H5_SIZEOF_UINT32_T)
-H5_CHECK_TYPE_SIZE (int_least32_t  H5_SIZEOF_INT_LEAST32_T)
-H5_CHECK_TYPE_SIZE (uint_least32_t H5_SIZEOF_UINT_LEAST32_T)
-H5_CHECK_TYPE_SIZE (int_fast32_t   H5_SIZEOF_INT_FAST32_T)
-H5_CHECK_TYPE_SIZE (uint_fast32_t  H5_SIZEOF_UINT_FAST32_T)
-
-H5_CHECK_TYPE_SIZE (int64_t        H5_SIZEOF_INT64_T)
-H5_CHECK_TYPE_SIZE (uint64_t       H5_SIZEOF_UINT64_T)
-H5_CHECK_TYPE_SIZE (int_least64_t  H5_SIZEOF_INT_LEAST64_T)
-H5_CHECK_TYPE_SIZE (uint_least64_t H5_SIZEOF_UINT_LEAST64_T)
-H5_CHECK_TYPE_SIZE (int_fast64_t   H5_SIZEOF_INT_FAST64_T)
-H5_CHECK_TYPE_SIZE (uint_fast64_t  H5_SIZEOF_UINT_FAST64_T)
-
-if (NOT APPLE)
-  H5_CHECK_TYPE_SIZE (size_t       H5_SIZEOF_SIZE_T)
-  H5_CHECK_TYPE_SIZE (ssize_t      H5_SIZEOF_SSIZE_T)
-  if (NOT H5_SIZEOF_SSIZE_T)
-    set (H5_SIZEOF_SSIZE_T 0)
-  endif (NOT H5_SIZEOF_SSIZE_T)
-  if (NOT WINDOWS)
-    H5_CHECK_TYPE_SIZE (ptrdiff_t    H5_SIZEOF_PTRDIFF_T)
-  endif (NOT WINDOWS)
-endif (NOT APPLE)
-
-H5_CHECK_TYPE_SIZE (off_t          H5_SIZEOF_OFF_T)
-H5_CHECK_TYPE_SIZE (off64_t        H5_SIZEOF_OFF64_T)
-if (NOT H5_SIZEOF_OFF64_T)
-  set (H5_SIZEOF_OFF64_T 0)
-endif (NOT H5_SIZEOF_OFF64_T)
-
-if (NOT WINDOWS)
-  #-----------------------------------------------------------------------------
-  # Check if the dev_t type is a scalar type
-  #-----------------------------------------------------------------------------
-  HDF5_FUNCTION_TEST (DEV_T_IS_SCALAR)
-
-  # ----------------------------------------------------------------------
-  # Check for MONOTONIC_TIMER support (used in clock_gettime).  This has
-  # to be done after any POSIX/BSD defines to ensure that the test gets
-  # the correct POSIX level on linux.
-  CHECK_VARIABLE_EXISTS (CLOCK_MONOTONIC HAVE_CLOCK_MONOTONIC)
-
-  #-----------------------------------------------------------------------------
-  # Check a bunch of time functions
-  #-----------------------------------------------------------------------------
-  foreach (test
-      HAVE_TM_GMTOFF
-      HAVE___TM_GMTOFF
-#      HAVE_TIMEZONE
-      HAVE_STRUCT_TIMEZONE
-      GETTIMEOFDAY_GIVES_TZ
-      TIME_WITH_SYS_TIME
-      HAVE_TM_ZONE
-      HAVE_STRUCT_TM_TM_ZONE
-  )
-    HDF5_FUNCTION_TEST (${test})
-  endforeach (test)
-  if (NOT CYGWIN AND NOT MINGW)
-      HDF5_FUNCTION_TEST (HAVE_TIMEZONE)
-#      HDF5_FUNCTION_TEST (HAVE_STAT_ST_BLOCKS)
-  endif (NOT CYGWIN AND NOT MINGW)
-
-  # ----------------------------------------------------------------------
-  # Does the struct stat have the st_blocks field?  This field is not Posix.
-  #
-  HDF5_FUNCTION_TEST (HAVE_STAT_ST_BLOCKS)
-
-  # ----------------------------------------------------------------------
-  # How do we figure out the width of a tty in characters?
-  #
-  CHECK_FUNCTION_EXISTS (ioctl             H5_HAVE_IOCTL)
-  HDF5_FUNCTION_TEST (HAVE_STRUCT_VIDEOCONFIG)
-  HDF5_FUNCTION_TEST (HAVE_STRUCT_TEXT_INFO)
-  CHECK_FUNCTION_EXISTS (_getvideoconfig   H5_HAVE__GETVIDEOCONFIG)
-  CHECK_FUNCTION_EXISTS (gettextinfo       H5_HAVE_GETTEXTINFO)
-  CHECK_FUNCTION_EXISTS (_scrsize          H5_HAVE__SCRSIZE)
-  if (NOT CYGWIN AND NOT MINGW)
-    CHECK_FUNCTION_EXISTS (GetConsoleScreenBufferInfo    H5_HAVE_GETCONSOLESCREENBUFFERINFO)
-  endif (NOT CYGWIN AND NOT MINGW)
-  CHECK_SYMBOL_EXISTS (TIOCGWINSZ "sys/ioctl.h" H5_HAVE_TIOCGWINSZ)
-  CHECK_SYMBOL_EXISTS (TIOCGETD   "sys/ioctl.h" H5_HAVE_TIOCGETD)
-endif (NOT WINDOWS)
-
-#-----------------------------------------------------------------------------
-# Check for some functions that are used
-#
-CHECK_FUNCTION_EXISTS (alarm             H5_HAVE_ALARM)
-#CHECK_FUNCTION_EXISTS (BSDgettimeofday   H5_HAVE_BSDGETTIMEOFDAY)
-CHECK_FUNCTION_EXISTS (fork              H5_HAVE_FORK)
-CHECK_FUNCTION_EXISTS (frexpf            H5_HAVE_FREXPF)
-CHECK_FUNCTION_EXISTS (frexpl            H5_HAVE_FREXPL)
-
-CHECK_FUNCTION_EXISTS (gethostname       H5_HAVE_GETHOSTNAME)
-CHECK_FUNCTION_EXISTS (getpwuid          H5_HAVE_GETPWUID)
-CHECK_FUNCTION_EXISTS (getrusage         H5_HAVE_GETRUSAGE)
-CHECK_FUNCTION_EXISTS (lstat             H5_HAVE_LSTAT)
-
-CHECK_FUNCTION_EXISTS (rand_r            H5_HAVE_RAND_R)
-CHECK_FUNCTION_EXISTS (random            H5_HAVE_RANDOM)
-CHECK_FUNCTION_EXISTS (setsysinfo        H5_HAVE_SETSYSINFO)
-
-CHECK_FUNCTION_EXISTS (signal            H5_HAVE_SIGNAL)
-CHECK_FUNCTION_EXISTS (longjmp           H5_HAVE_LONGJMP)
-CHECK_FUNCTION_EXISTS (setjmp            H5_HAVE_SETJMP)
-CHECK_FUNCTION_EXISTS (siglongjmp        H5_HAVE_SIGLONGJMP)
-CHECK_FUNCTION_EXISTS (sigsetjmp         H5_HAVE_SIGSETJMP)
-CHECK_FUNCTION_EXISTS (sigaction         H5_HAVE_SIGACTION)
-CHECK_FUNCTION_EXISTS (sigprocmask       H5_HAVE_SIGPROCMASK)
-
-CHECK_FUNCTION_EXISTS (snprintf          H5_HAVE_SNPRINTF)
-CHECK_FUNCTION_EXISTS (srandom           H5_HAVE_SRANDOM)
-CHECK_FUNCTION_EXISTS (strdup            H5_HAVE_STRDUP)
-CHECK_FUNCTION_EXISTS (symlink           H5_HAVE_SYMLINK)
-CHECK_FUNCTION_EXISTS (system            H5_HAVE_SYSTEM)
-
-CHECK_FUNCTION_EXISTS (tmpfile           H5_HAVE_TMPFILE)
-CHECK_FUNCTION_EXISTS (vasprintf         H5_HAVE_VASPRINTF)
-CHECK_FUNCTION_EXISTS (waitpid           H5_HAVE_WAITPID)
-
-CHECK_FUNCTION_EXISTS (vsnprintf         H5_HAVE_VSNPRINTF)
-if (NOT WINDOWS)
-  if (H5_HAVE_VSNPRINTF)
-    HDF5_FUNCTION_TEST (VSNPRINTF_WORKS)
-  endif (H5_HAVE_VSNPRINTF)
-endif (NOT WINDOWS)
-
-#-----------------------------------------------------------------------------
-# sigsetjmp is special; may actually be a macro
-#-----------------------------------------------------------------------------
-if (NOT H5_HAVE_SIGSETJMP)
-  if (H5_HAVE_SETJMP_H)
-    CHECK_SYMBOL_EXISTS (sigsetjmp "setjmp.h" H5_HAVE_MACRO_SIGSETJMP)
-    if (H5_HAVE_MACRO_SIGSETJMP)
-      set (H5_HAVE_SIGSETJMP 1)
-    endif (H5_HAVE_MACRO_SIGSETJMP)
-  endif (H5_HAVE_SETJMP_H)
-endif (NOT H5_HAVE_SIGSETJMP)
-
-#-----------------------------------------------------------------------------
-# Check for Symbols
-CHECK_SYMBOL_EXISTS (tzname "time.h" H5_HAVE_DECL_TZNAME)
-
-#-----------------------------------------------------------------------------
-# Check a bunch of other functions
-#-----------------------------------------------------------------------------
-if (NOT WINDOWS)
-  foreach (test
-      LONE_COLON
-      HAVE_ATTRIBUTE
-      HAVE_C99_FUNC
-      HAVE_FUNCTION
-      HAVE_C99_DESIGNATED_INITIALIZER
-      SYSTEM_SCOPE_THREADS
-      HAVE_SOCKLEN_T
-      CXX_HAVE_OFFSETOF
-  )
-    HDF5_FUNCTION_TEST (${test})
-  endforeach (test)
-endif (NOT WINDOWS)
-
-# For other CXX specific tests, use this MACRO.
-MACRO (HDF5_CXX_FUNCTION_TEST OTHER_TEST)
-  if ("${OTHER_TEST}" MATCHES "^${OTHER_TEST}$")
-    set (MACRO_CHECK_FUNCTION_DEFINITIONS "-D${OTHER_TEST} ${CMAKE_REQUIRED_FLAGS}")
-    set (OTHER_TEST_ADD_LIBRARIES)
-    if (CMAKE_REQUIRED_LIBRARIES)
-      set (OTHER_TEST_ADD_LIBRARIES "-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}")
-    endif (CMAKE_REQUIRED_LIBRARIES)
-
-    foreach (def ${HDF5_EXTRA_TEST_DEFINITIONS})
-      set (MACRO_CHECK_FUNCTION_DEFINITIONS "${MACRO_CHECK_FUNCTION_DEFINITIONS} -D${def}=${${def}}")
-    endforeach (def)
-
-    foreach (def
-        HAVE_SYS_TIME_H
-        HAVE_UNISTD_H
-        HAVE_SYS_TYPES_H
-        HAVE_SYS_SOCKET_H
-    )
-      if ("${H5_${def}}")
-        set (MACRO_CHECK_FUNCTION_DEFINITIONS "${MACRO_CHECK_FUNCTION_DEFINITIONS} -D${def}")
-      endif ("${H5_${def}}")
-    endforeach (def)
-
-    if (LARGEFILE)
-      set (MACRO_CHECK_FUNCTION_DEFINITIONS
-          "${MACRO_CHECK_FUNCTION_DEFINITIONS} -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE"
-      )
-    endif (LARGEFILE)
-
-    #message (STATUS "Performing ${OTHER_TEST}")
-    TRY_COMPILE (${OTHER_TEST}
-        ${CMAKE_BINARY_DIR}
-        ${HDF5_RESOURCES_DIR}/HDF5CXXTests.cpp
-        CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS}
-        "${OTHER_TEST_ADD_LIBRARIES}"
-        OUTPUT_VARIABLE OUTPUT
-    )
-    if ("${OTHER_TEST}" EQUAL 0)
-      set (${OTHER_TEST} 1 CACHE INTERNAL "CXX test ${FUNCTION}")
-      message (STATUS "Performing CXX Test ${OTHER_TEST} - Success")
-    else ("${OTHER_TEST}" EQUAL 0)
-      message (STATUS "Performing CXX Test ${OTHER_TEST} - Failed")
-      set (${OTHER_TEST} "" CACHE INTERNAL "CXX test ${FUNCTION}")
-      file (APPEND ${CMAKE_BINARY_DIR}/CMakeFiles/CMakeError.log
-          "Performing CXX Test ${OTHER_TEST} failed with the following output:\n"
-          "${OUTPUT}\n"
-      )
-    endif ("${OTHER_TEST}" EQUAL 0)
-  endif ("${OTHER_TEST}" MATCHES "^${OTHER_TEST}$")
-ENDMACRO (HDF5_CXX_FUNCTION_TEST)
-
-#-----------------------------------------------------------------------------
-# Check a bunch of cxx functions
-#-----------------------------------------------------------------------------
-if (CMAKE_CXX_COMPILER_LOADED)
-  foreach (test
-      OLD_HEADER_FILENAME
-      H5_NO_NAMESPACE
-      H5_NO_STD
-      BOOL_NOTDEFINED
-      NO_STATIC_CAST
-  )
-    HDF5_CXX_FUNCTION_TEST (${test})
-  endforeach (test)
-endif (CMAKE_CXX_COMPILER_LOADED)
-
-#-----------------------------------------------------------------------------
 #  Check if Direct I/O driver works
 #-----------------------------------------------------------------------------
 if (NOT WINDOWS)
@@ -782,14 +186,14 @@ if (NOT WINDOWS)
     set (msg "Performing TEST_DIRECT_VFD_WORKS")
     set (MACRO_CHECK_FUNCTION_DEFINITIONS "-DTEST_DIRECT_VFD_WORKS -D_GNU_SOURCE ${CMAKE_REQUIRED_FLAGS}")
     TRY_RUN (TEST_DIRECT_VFD_WORKS_RUN   TEST_DIRECT_VFD_WORKS_COMPILE
-        ${HDF5_BINARY_DIR}/CMake
-        ${HDF5_RESOURCES_DIR}/HDF5Tests.c
+        ${CMAKE_BINARY_DIR}
+        ${HDF_RESOURCES_EXT_DIR}/HDFTests.c
         CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS}
         OUTPUT_VARIABLE OUTPUT
     )
     if (TEST_DIRECT_VFD_WORKS_COMPILE)
       if (TEST_DIRECT_VFD_WORKS_RUN  MATCHES 0)
-        HDF5_FUNCTION_TEST (HAVE_DIRECT)
+        HDF_FUNCTION_TEST (HAVE_DIRECT)
         set (CMAKE_REQUIRED_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS} -D_GNU_SOURCE")
         add_definitions ("-D_GNU_SOURCE")
       else (TEST_DIRECT_VFD_WORKS_RUN  MATCHES 0)
@@ -809,148 +213,6 @@ if (NOT WINDOWS)
   endif (HDF5_ENABLE_DIRECT_VFD)
 endif (NOT WINDOWS)
 
-#-----------------------------------------------------------------------------
-# Check if InitOnceExecuteOnce is available
-#-----------------------------------------------------------------------------
-if (WINDOWS)
-  if (NOT HDF5_NO_IOEO_TEST)
-  message (STATUS "Checking for InitOnceExecuteOnce:")
-  if ("${H5_HAVE_IOEO}" MATCHES "^${H5_HAVE_IOEO}$")
-    if (LARGEFILE)
-      set (CMAKE_REQUIRED_DEFINITIONS
-          "${CURRENT_TEST_DEFINITIONS} -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE"
-      )
-    endif (LARGEFILE)
-    set (MACRO_CHECK_FUNCTION_DEFINITIONS 
-      "-DHAVE_IOEO ${CMAKE_REQUIRED_FLAGS}")
-    if (CMAKE_REQUIRED_LIBRARIES)
-      set (CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES
-        "-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}")
-    else (CMAKE_REQUIRED_LIBRARIES)
-      set (CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES)
-    endif (CMAKE_REQUIRED_LIBRARIES)
-    if (CMAKE_REQUIRED_INCLUDES)
-      set (CHECK_C_SOURCE_COMPILES_ADD_INCLUDES
-        "-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}")
-    else (CMAKE_REQUIRED_INCLUDES)
-      set (CHECK_C_SOURCE_COMPILES_ADD_INCLUDES)
-    endif (CMAKE_REQUIRED_INCLUDES)
-
-    TRY_RUN(HAVE_IOEO_EXITCODE HAVE_IOEO_COMPILED
-      ${CMAKE_BINARY_DIR}
-      ${HDF5_RESOURCES_DIR}/HDF5Tests.c
-      COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
-      CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS}
-      -DCMAKE_SKIP_RPATH:BOOL=${CMAKE_SKIP_RPATH}
-      "${CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES}"
-      "${CHECK_C_SOURCE_COMPILES_ADD_INCLUDES}"
-      COMPILE_OUTPUT_VARIABLE OUTPUT)
-    # if it did not compile make the return value fail code of 1
-    if (NOT HAVE_IOEO_COMPILED)
-      set (HAVE_IOEO_EXITCODE 1)
-    endif (NOT HAVE_IOEO_COMPILED)
-    # if the return value was 0 then it worked
-    if ("${HAVE_IOEO_EXITCODE}" EQUAL 0)
-      set (H5_HAVE_IOEO 1 CACHE INTERNAL "Test InitOnceExecuteOnce")
-      message (STATUS "Performing Test InitOnceExecuteOnce - Success")
-      file (APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log 
-        "Performing C SOURCE FILE Test InitOnceExecuteOnce succeded with the following output:\n"
-        "${OUTPUT}\n"
-        "Return value: ${HAVE_IOEO}\n")
-    else ("${HAVE_IOEO_EXITCODE}" EQUAL 0)
-      if (CMAKE_CROSSCOMPILING AND "${HAVE_IOEO_EXITCODE}" MATCHES  "FAILED_TO_RUN")
-        set (H5_HAVE_IOEO "${HAVE_IOEO_EXITCODE}")
-      else (CMAKE_CROSSCOMPILING AND "${HAVE_IOEO_EXITCODE}" MATCHES  "FAILED_TO_RUN")
-        set (H5_HAVE_IOEO "" CACHE INTERNAL "Test InitOnceExecuteOnce")
-      endif (CMAKE_CROSSCOMPILING AND "${HAVE_IOEO_EXITCODE}" MATCHES  "FAILED_TO_RUN")
-
-      message (STATUS "Performing Test InitOnceExecuteOnce - Failed")
-      file (APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log 
-        "Performing InitOnceExecuteOnce Test  failed with the following output:\n"
-        "${OUTPUT}\n"
-        "Return value: ${HAVE_IOEO_EXITCODE}\n")
-    endif ("${HAVE_IOEO_EXITCODE}" EQUAL 0)
-  endif ("${H5_HAVE_IOEO}" MATCHES "^${H5_HAVE_IOEO}$")
-  endif (NOT HDF5_NO_IOEO_TEST)
-endif (WINDOWS)
-
-#-----------------------------------------------------------------------------
-# Determine how 'inline' is used
-#-----------------------------------------------------------------------------
-set (HDF5_EXTRA_TEST_DEFINITIONS INLINE_TEST_INLINE)
-foreach (inline_test inline __inline__ __inline)
-  set (INLINE_TEST_INLINE ${inline_test})
-  HDF5_FUNCTION_TEST (INLINE_TEST_${inline_test})
-endforeach (inline_test)
-
-set (HDF5_EXTRA_TEST_DEFINITIONS)
-if (INLINE_TEST___inline__)
-  set (H5_inline __inline__)
-else (INLINE_TEST___inline__)
-  if (INLINE_TEST___inline)
-    set (H5_inline __inline)
-  else (INLINE_TEST___inline)
-    if (INLINE_TEST_inline)
-      set (H5_inline inline)
-    endif (INLINE_TEST_inline)
-  endif (INLINE_TEST___inline)
-endif (INLINE_TEST___inline__)
-
-#-----------------------------------------------------------------------------
-# Check how to print a Long Long integer
-#-----------------------------------------------------------------------------
-if (NOT H5_PRINTF_LL_WIDTH OR H5_PRINTF_LL_WIDTH MATCHES "unknown")
-  set (PRINT_LL_FOUND 0)
-  message (STATUS "Checking for appropriate format for 64 bit long:")
-  foreach (HDF5_PRINTF_LL l64 l L q I64 ll)
-    set (CURRENT_TEST_DEFINITIONS "-DPRINTF_LL_WIDTH=${HDF5_PRINTF_LL}")
-    if (H5_SIZEOF_LONG_LONG)
-      set (CURRENT_TEST_DEFINITIONS "${CURRENT_TEST_DEFINITIONS} -DHAVE_LONG_LONG")
-    endif (H5_SIZEOF_LONG_LONG)
-    TRY_RUN (HDF5_PRINTF_LL_TEST_RUN   HDF5_PRINTF_LL_TEST_COMPILE
-        ${HDF5_BINARY_DIR}/CMake
-        ${HDF5_RESOURCES_DIR}/HDF5Tests.c
-        CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${CURRENT_TEST_DEFINITIONS}
-        OUTPUT_VARIABLE OUTPUT
-    )
-    if (HDF5_PRINTF_LL_TEST_COMPILE)
-      if (HDF5_PRINTF_LL_TEST_RUN MATCHES 0)
-        set (H5_PRINTF_LL_WIDTH "\"${HDF5_PRINTF_LL}\"" CACHE INTERNAL "Width for printf for type `long long' or `__int64', us. `ll")
-        set (PRINT_LL_FOUND 1)
-      else (HDF5_PRINTF_LL_TEST_RUN MATCHES 0)
-        message ("Width with ${HDF5_PRINTF_LL} failed with result: ${HDF5_PRINTF_LL_TEST_RUN}")
-      endif (HDF5_PRINTF_LL_TEST_RUN MATCHES 0)
-    else (HDF5_PRINTF_LL_TEST_COMPILE)
-      file (APPEND ${CMAKE_BINARY_DIR}/CMakeFiles/CMakeError.log
-          "Test H5_PRINTF_LL_WIDTH for ${HDF5_PRINTF_LL} failed with the following output:\n ${OUTPUT}\n"
-      )
-    endif (HDF5_PRINTF_LL_TEST_COMPILE)
-  endforeach (HDF5_PRINTF_LL)
-
-  if (PRINT_LL_FOUND)
-    message (STATUS "Checking for apropriate format for 64 bit long: found ${H5_PRINTF_LL_WIDTH}")
-  else (PRINT_LL_FOUND)
-    message (STATUS "Checking for apropriate format for 64 bit long: not found")
-    set (H5_PRINTF_LL_WIDTH "\"unknown\"" CACHE INTERNAL
-        "Width for printf for type `long long' or `__int64', us. `ll"
-    )
-  endif (PRINT_LL_FOUND)
-endif (NOT H5_PRINTF_LL_WIDTH OR H5_PRINTF_LL_WIDTH MATCHES "unknown")
-
-# ----------------------------------------------------------------------
-# Set the flag to indicate that the machine can handle converting
-# denormalized floating-point values.
-# (This flag should be set for all machines, except for the Crays, where
-# the cache value is set in it's config file)
-#
-set (H5_CONVERT_DENORMAL_FLOAT 1)
-
-#-----------------------------------------------------------------------------
-#  Are we going to use HSIZE_T
-#-----------------------------------------------------------------------------
-if (HDF5_ENABLE_HSIZET)
-  set (H5_HAVE_LARGE_HSIZET 1)
-endif (HDF5_ENABLE_HSIZET)
 
 #-----------------------------------------------------------------------------
 # Macro to determine the various conversion capabilities
@@ -959,8 +221,8 @@ MACRO (H5ConversionTests TEST msg)
   if ("${TEST}" MATCHES "^${TEST}$")
    # message (STATUS "===> ${TEST}")
     TRY_RUN (${TEST}_RUN   ${TEST}_COMPILE
-        ${HDF5_BINARY_DIR}/CMake
-        ${HDF5_RESOURCES_DIR}/ConversionTests.c
+        ${CMAKE_BINARY_DIR}
+        ${HDF_RESOURCES_DIR}/ConversionTests.c
         CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=-D${TEST}_TEST
         OUTPUT_VARIABLE OUTPUT
     )
@@ -1021,9 +283,7 @@ H5MiscConversionTest (H5_SIZEOF_LONG_DOUBLE H5_LDOUBLE_TO_INTEGER_ACCURATE "chec
 # integers except 'unsigned long long'.  Other HP-UX systems are unknown
 # yet. (1/8/05 - SLU)
 #
-if (NOT MSVC)
-  H5ConversionTests (H5_LDOUBLE_TO_INTEGER_WORKS "Checking IF converting from long double to integers works")
-endif (NOT MSVC)
+H5ConversionTests (H5_LDOUBLE_TO_INTEGER_WORKS "Checking IF converting from long double to integers works")
 # -----------------------------------------------------------------------
 # Set flag to indicate that the machine can handle conversion from
 # integers to long double.  (This flag should be set "yes" for all
@@ -1101,9 +361,7 @@ endif (H5_LLONG_TO_FP_CAST_WORKS MATCHES ^H5_LLONG_TO_FP_CAST_WORKS$)
 # where the last 2 bytes of mantissa are lost when compiler tries to do
 # the conversion, and Cygwin where compiler doesn't do rounding correctly.)
 #
-if (NOT MSVC)
-  H5ConversionTests (H5_ULLONG_TO_LDOUBLE_PRECISION "Checking IF converting unsigned long long to long double with precision")
-endif (NOT MSVC)
+H5ConversionTests (H5_ULLONG_TO_LDOUBLE_PRECISION "Checking IF converting unsigned long long to long double with precision")
 # ----------------------------------------------------------------------
 # Set the flag to indicate that the machine can handle overflow converting
 # all floating-point to all integer types.
diff --git a/config/cmake/ConversionTests.c b/config/cmake/ConversionTests.c
index 0e24954..1ee9842 100644
--- a/config/cmake/ConversionTests.c
+++ b/config/cmake/ConversionTests.c
@@ -2,13 +2,13 @@
 
 int main(void)
 {
-  float f = 2147483648.0f;
-  int i;
+    float  f = 2147483648.0f;
+    int    i;
 
-  i = (int)f;
+    i = (int)f;
 
-  done:
-  exit(0);
+done:
+    exit(0);
 }
 
 #endif
@@ -17,19 +17,19 @@ int main(void)
 
 int main(void)
 {
-  float f = 111.60f;
-  double d = 222.55L;
-  unsigned long long l1 = (unsigned long long)f;
-  unsigned long long l2 = (unsigned long long)d;
-  int ret = 0;
-
-  if(l1 == 112)
-  ret = 1;
-  if(l2 == 223)
-  ret = 1;
-
-  done:
-  exit(ret);
+    float  f = 111.60f;
+    double d = 222.55L;
+    unsigned long long l1 = (unsigned long long)f;
+    unsigned long long l2 = (unsigned long long)d;
+    int           ret = 0;
+
+    if(l1 == 112)
+        ret = 1;
+    if(l2 == 223)
+        ret = 1;
+
+done:
+    exit(ret);
 }
 
 #endif
@@ -37,50 +37,55 @@ int main(void)
 #ifdef H5_FP_TO_ULLONG_RIGHT_MAXIMUM_TEST
 int main(void)
 {
-  float f =        9701917572145405952.00f;
-  double d1 =      9701917572145405952.00L;
-  long double d2 = 9701917572145405952.00L;
-  double d3 = 2e40L;
-  unsigned long long l1 = (unsigned long long)f;
-  unsigned long long l2 = (unsigned long long)d1;
-  unsigned long long l3 = (unsigned long long)d2;
-  unsigned long long l4;
-  unsigned long long l5 = 0x7fffffffffffffffULL;
-  int ret = 0;
-
-  if(l1 <= l5 || l2 <= l5 || l3 <= l5)
-  ret = 1;
-
-  l4 = (unsigned long long)d3;
-  if(l4 <= l5)
-  ret = 1;
-
-  done:
-  exit(ret);
+    float  f = 9701917572145405952.00f;
+    double d1 = 9701917572145405952.00L;
+    long double d2 = 9701917572145405952.00L;
+    double d3 = 2e40L;
+    unsigned long long l1 = (unsigned long long)f;
+    unsigned long long l2 = (unsigned long long)d1;
+    unsigned long long l3 = (unsigned long long)d2;
+    unsigned long long l4;
+    unsigned long long l5 = 0x7fffffffffffffffULL;
+    int           ret = 0;
+
+    if(l1 <= l5 || l2 <= l5 || l3 <= l5)
+        ret = 1;
+
+    l4 = (unsigned long long)d3;
+    if(l4 <= l5)
+        ret = 1;
+
+done:
+    exit(ret);
 }
 
 #endif
 
 #ifdef H5_LDOUBLE_TO_INTEGER_WORKS_TEST
+
+#include <stdlib.h>
+#include <string.h>
+
 int main(void)
 {
-  void *align;
-  long double ld = 9701917572145405952.00L;
-  unsigned char v1;
-  short v2;
-  unsigned int v3;
-  int ret = 0;
-
-  align = (void*) malloc(sizeof(long double));
-  memcpy(align, &ld, sizeof(long double));
-
-  /*For HU-UX11.00, there's floating exception(core dump) when doing some of casting
-   *from 'long double' to integers*/
-  v1 = (unsigned char) (*((long double*) align));
-  v2 = (short) (*((long double*) align));
-  v3 = (unsigned int) (*((long double*) align));
-
-  done: exit(ret);
+    void *align;
+    long double ld= 9701917572145405952.00L;
+    unsigned char v1;
+    short v2;
+    unsigned int v3;
+    int  ret = 0;
+
+    align = (void*)malloc(sizeof(long double));
+    memcpy(align, &ld, sizeof(long double));
+
+    /*For HU-UX11.00, there's floating exception(core dump) when doing some of casting
+     *from 'long double' to integers*/
+    v1=(unsigned char)(*((long double*)align));
+    v2=(short)(*((long double*)align));
+    v3=(unsigned int)(*((long double*)align));
+
+done:
+    exit(ret);
 }
 
 #endif
@@ -88,103 +93,98 @@ int main(void)
 #ifdef H5_LDOUBLE_TO_LLONG_ACCURATE_TEST
 int main(void)
 {
-  long double ld = 20041683600089727.779961L;
-  long long ll;
-  unsigned long long ull;
-  unsigned char s[16];
-  int ret = 0;
-
-  if(sizeof(long double) == 16)
-  {
-    /*make sure the long double type is the same as the failing type
-     *which has 16 bytes in size and 11 bits of exponent.  If it is,
-     *the bit sequence should be like below.  It's not
-     *a decent way to check but this info isn't available. */
-    memcpy(s, &ld, 16);
-    if(s[0]==0x43 && s[1]==0x51 && s[2]==0xcc && s[3]==0xf3 &&
-        s[4]==0x85 && s[5]==0xeb && s[6]==0xc8 && s[7]==0xa0 &&
-        s[8]==0xbf && s[9]==0xcc && s[10]==0x2a && s[11]==0x3c)
-    {
-
-      /*slightly adjust the bit sequence (s[8]=0xdf).  The converted
-       *values will go wild on Mac OS 10.4 and IRIX64 6.5.*/
-      s[0]=0x43; s[1]=0x51; s[2]=0xcc; s[3]=0xf3;
-      s[4]=0x85; s[5]=0xeb; s[6]=0xc8; s[7]=0xa0;
-      s[8]=0xdf; s[9]=0xcc; s[10]=0x2a; s[11]=0x3c;
-      s[12]=0x3d; s[13]=0x85; s[14]=0x56; s[15]=0x20;
-
-      memcpy(&ld, s, 16);
-      ll = (long long)ld;
-      ull = (unsigned long long)ld;
-
-      if(ll != 20041683600089728 || ull != 20041683600089728)
-      ret = 1;
+    long double         ld = 20041683600089727.779961L;
+    long long           ll;
+    unsigned long long  ull;
+    unsigned char       s[16];
+    int                 ret = 0;
+
+    if(sizeof(long double) == 16) {
+        /*make sure the long double type is the same as the failing type
+         *which has 16 bytes in size and 11 bits of exponent.  If it is,
+         *the bit sequence should be like below.  It's not
+         *a decent way to check but this info isn't available. */
+        memcpy(s, &ld, 16);
+        if(s[0]==0x43 && s[1]==0x51 && s[2]==0xcc && s[3]==0xf3 &&
+            s[4]==0x85 && s[5]==0xeb && s[6]==0xc8 && s[7]==0xa0 &&
+            s[8]==0xbf && s[9]==0xcc && s[10]==0x2a && s[11]==0x3c) {
+
+            /*slightly adjust the bit sequence (s[8]=0xdf).  The converted
+             *values will go wild on Mac OS 10.4 and IRIX64 6.5.*/
+            s[0]=0x43; s[1]=0x51; s[2]=0xcc; s[3]=0xf3;
+            s[4]=0x85; s[5]=0xeb; s[6]=0xc8; s[7]=0xa0;
+            s[8]=0xdf; s[9]=0xcc; s[10]=0x2a; s[11]=0x3c;
+            s[12]=0x3d; s[13]=0x85; s[14]=0x56; s[15]=0x20;
+
+            memcpy(&ld, s, 16);
+            ll = (long long)ld;
+            ull = (unsigned long long)ld;
+
+            if(ll != 20041683600089728 || ull != 20041683600089728)
+                ret = 1;
+        }
     }
-  }
-  done:
-  exit(ret);
+done:
+    exit(ret);
 }
 #endif
 
 #ifdef H5_LDOUBLE_TO_UINT_ACCURATE_TEST
 int main(void)
 {
-  long double ld = 2733248032.9183987530L;
-  unsigned int i;
-  int ret = 0;
+    long double ld = 2733248032.9183987530L;
+    unsigned int i;
+    int           ret = 0;
 
-  i = (unsigned int)ld;
-  if(i!=2733248032 && i!=2733248031 && i!=2733248033)
-  ret = 1;
+    i = (unsigned int)ld;
+    if(i!=2733248032 && i!=2733248031 && i!=2733248033)
+        ret = 1;
 
-  done:
-  exit(ret);
+done:
+    exit(ret);
 }
 #endif
 
 #ifdef H5_LLONG_TO_LDOUBLE_CORRECT_TEST
 int main(void)
 {
-  long double ld;
-  long long ll;
-  unsigned long long ull;
-  unsigned char s[16];
-  int flag=0, ret=0;
-
-  /*Determine if long double has 16 byte in size, 11 bit exponent, and
-   *the bias is 0x3ff */
-  if(sizeof(long double) == 16)
-  {
-    ld = 1.0L;
-    memcpy(s, &ld, 16);
-    if(s[0]==0x3f && s[1]==0xf0 && s[2]==0x00 && s[3]==0x00 &&
-        s[4]==0x00 && s[5]==0x00 && s[6]==0x00 && s[7]==0x00)
-    flag = 1;
-  }
-
-  if(flag==1 && sizeof(long long)==8)
-  {
-    ll = 0x01ffffffffffffffLL;
-    ld = (long double)ll;
-    memcpy(s, &ld, 16);
-    /*Check if the bit sequence is as supposed to be*/
-    if(s[0]!=0x43 || s[1]!=0x7f || s[2]!=0xff || s[3]!=0xff ||
-        s[4]!=0xff || s[5]!=0xff || s[6]!=0xff || s[7]!=0xff ||
-        s[8]!=0xf0 || s[9]!=0x00 || s[10]!=0x00 || s[11]!=0x00)
-    ret = 1;
-  }
-  if(flag==1 && sizeof(unsigned long long)==8)
-  {
-    ull = 0x01ffffffffffffffULL;
-    ld = (long double)ull;
-    memcpy(s, &ld, 16);
-    if(s[0]!=0x43 || s[1]!=0x7f || s[2]!=0xff || s[3]!=0xff ||
-        s[4]!=0xff || s[5]!=0xff || s[6]!=0xff || s[7]!=0xff ||
-        s[8]!=0xf0 || s[9]!=0x00 || s[10]!=0x00 || s[11]!=0x00)
-    ret = 1;
-  }
-  done:
-  exit(ret);
+    long double         ld;
+    long long           ll;
+    unsigned long long  ull;
+    unsigned char       s[16];
+    int                 flag=0, ret=0;
+
+    /*Determine if long double has 16 byte in size, 11 bit exponent, and
+     *the bias is 0x3ff */
+    if(sizeof(long double) == 16) {
+        ld = 1.0L;
+        memcpy(s, &ld, 16);
+        if(s[0]==0x3f && s[1]==0xf0 && s[2]==0x00 && s[3]==0x00 &&
+            s[4]==0x00 && s[5]==0x00 && s[6]==0x00 && s[7]==0x00)
+            flag = 1;
+    }
+
+    if(flag==1 && sizeof(long long)==8) {
+        ll = 0x01ffffffffffffffLL;
+        ld = (long double)ll;
+        memcpy(s, &ld, 16);
+        /*Check if the bit sequence is as supposed to be*/
+        if(s[0]!=0x43 || s[1]!=0x7f || s[2]!=0xff || s[3]!=0xff ||
+            s[4]!=0xff || s[5]!=0xff || s[6]!=0xff || s[7]!=0xff ||
+            s[8]!=0xf0 || s[9]!=0x00 || s[10]!=0x00 || s[11]!=0x00)
+            ret = 1;
+    }
+    if(flag==1 && sizeof(unsigned long long)==8) {
+        ull = 0x01ffffffffffffffULL;
+        ld = (long double)ull;
+        memcpy(s, &ld, 16);
+        if(s[0]!=0x43 || s[1]!=0x7f || s[2]!=0xff || s[3]!=0xff ||
+            s[4]!=0xff || s[5]!=0xff || s[6]!=0xff || s[7]!=0xff ||
+            s[8]!=0xf0 || s[9]!=0x00 || s[10]!=0x00 || s[11]!=0x00)
+            ret = 1;
+    }
+done:
+    exit(ret);
 }
 #endif
 
@@ -193,11 +193,10 @@ int main(void)
 #include <stdlib.h>
 #include <string.h>
 
-typedef struct
-{
-  size_t len;
-  void *p;
-}hvl_t;
+typedef struct {
+    size_t len;
+    void *p;
+} hvl_t;
 
 #ifdef FC_DUMMY_MAIN
 #ifndef FC_DUMMY_MAIN_EQ_F77
@@ -212,32 +211,29 @@ int
 main ()
 {
 
-  char *chp = "beefs";
-  char **chpp = malloc (2 * sizeof (char *));
-  char **chpp2;
-  hvl_t vl =
-  { 12345, (void *) chp};
-  hvl_t *vlp;
-  hvl_t *vlp2;
-
-  memcpy ((void *) ((char *) chpp + 1), &chp, sizeof (char *));
-  chpp2 = (char **) ((char *) chpp + 1);
-  if (strcmp (*chpp2, chp))
-  {
+    char *chp = "beefs";
+    char **chpp = malloc (2 * sizeof (char *));
+    char **chpp2;
+    hvl_t vl = { 12345, (void *) chp };
+    hvl_t *vlp;
+    hvl_t *vlp2;
+
+    memcpy ((void *) ((char *) chpp + 1), &chp, sizeof (char *));
+    chpp2 = (char **) ((char *) chpp + 1);
+    if (strcmp (*chpp2, chp)) {
+        free (chpp);
+        return 1;
+    }
     free (chpp);
-    return 1;
-  }
-  free (chpp);
-
-  vlp = malloc (2 * sizeof (hvl_t));
-  memcpy ((void *) ((char *) vlp + 1), &vl, sizeof (hvl_t));
-  vlp2 = (hvl_t *) ((char *) vlp + 1);
-  if (vlp2->len != vl.len || vlp2->p != vl.p)
-  {
+
+    vlp = malloc (2 * sizeof (hvl_t));
+    memcpy ((void *) ((char *) vlp + 1), &vl, sizeof (hvl_t));
+    vlp2 = (hvl_t *) ((char *) vlp + 1);
+    if (vlp2->len != vl.len || vlp2->p != vl.p) {
+        free (vlp);
+        return 1;
+    }
     free (vlp);
-    return 1;
-  }
-  free (vlp);
 
   ;
   return 0;
@@ -248,77 +244,78 @@ main ()
 #ifdef H5_ULLONG_TO_LDOUBLE_PRECISION_TEST
 
 #include <stddef.h>
-
+#include <stdlib.h>
+#include <string.h>
 
 int main(void)
 {
-  /* General variables */
-  int endian;
-  int tst_value = 1;
-  int ret = 0;
-
-  /* For FreeBSD */
-  unsigned long long l = 0xa601e80bda85fcefULL;
-  long double ld;
-  unsigned char *c1, *c2;
-  size_t size;
-
-  /* For Cygwin */
-  unsigned long long l_cyg = 0xfffffffffffffff0ULL;
-  long double ld_cyg;
-  unsigned char *c2_cyg;
-  size_t size_cyg;
-
-  /* Determine this system's endianess */
-  c1 = (unsigned char*)calloc(1, sizeof(int));
-  memcpy((void*)c1, &tst_value, sizeof(int));
-  if(c1[0]==1)
-  endian = 0; /* little endian */
-  else
-  endian = 1; /* big endian */
-
-  /* For FreeBSD */
-  size = sizeof(long double);
-  memset(&ld, 0, size);
-  ld = (long double)l;
-
-  c2 = (unsigned char*)calloc(1, size);
-  memcpy((void*)c2, &ld, size);
-
-  /* Test if the last 2 bytes of mantissa are lost.  Mainly for FreeBSD on Intel
-   * architecture(sleipnir) where it happens. */
-  /*if(endian==0 && c2[0]==0 && c2[1]==0)*//*little endian*/
-  if(endian==0 && c2[0]==0)
-  { /*little endian*/
-    ret = 1;
-    goto done;
-  }
-
-  /* For Cygwin */
-  size_cyg = sizeof(long double);
-  memset(&ld_cyg, 0, size);
-  ld_cyg = (long double)l_cyg;
-
-  c2_cyg = (unsigned char*)calloc(1, size_cyg);
-  memcpy((void*)c2_cyg, &ld_cyg, size_cyg);
-
-  /* Test if the last 4 bytes(roughly) of mantissa are rounded up.  Mainly for Cygwin
-   * where the values like 0xffffffffffffffff,  0xfffffffffffffffe, ...,
-   * 0xfffffffffffff000 ... are rounded up as 0x0000403f8000000000000000
-   * instead of 0x0000403effffffffffffffff, 0x0000403efffffffffffffffe, ...,
-   * 0x0000403efffffffffffff000 ...
-   */
-  if(endian==0 && c2_cyg[0]==0 && c2_cyg[1]==0 && c2_cyg[2]==0 && c2_cyg[3]==0)
-  ret = 1;
-
-  done:
-  if(c1)
-  free(c1);
-  if(c2)
-  free(c2);
-  if(c2_cyg)
-  free(c2_cyg);
-  exit(ret);
+    /* General variables */
+    int endian;
+    int tst_value = 1;
+    int ret = 0;
+
+    /* For FreeBSD */
+    unsigned long long l = 0xa601e80bda85fcefULL;
+    long double ld;
+    unsigned char *c1, *c2;
+    size_t size;
+
+    /* For Cygwin */
+    unsigned long long l_cyg = 0xfffffffffffffff0ULL;
+    long double ld_cyg;
+    unsigned char *c2_cyg;
+    size_t size_cyg;
+
+
+    /* Determine this system's endianess */
+    c1 = (unsigned char*)calloc(1, sizeof(int));
+    memcpy((void*)c1, &tst_value, sizeof(int));
+    if(c1[0]==1)
+        endian = 0;  /* little endian */
+    else
+        endian = 1;  /* big endian */
+
+    /* For FreeBSD */
+    size = sizeof(long double);
+    memset(&ld, 0, size);
+    ld = (long double)l;
+
+    c2 = (unsigned char*)calloc(1, size);
+    memcpy((void*)c2, &ld, size);
+
+    /* Test if the last 2 bytes of mantissa are lost.  Mainly for FreeBSD on Intel
+     * architecture(sleipnir) where it happens. */
+    /*if(endian==0 && c2[0]==0 && c2[1]==0)*/ /*little endian*/
+    if(endian==0 && c2[0]==0) { /*little endian*/
+        ret = 1;
+        goto done;
+    }
+
+    /* For Cygwin */
+    size_cyg = sizeof(long double);
+    memset(&ld_cyg, 0, size);
+    ld_cyg = (long double)l_cyg;
+
+    c2_cyg = (unsigned char*)calloc(1, size_cyg);
+    memcpy((void*)c2_cyg, &ld_cyg, size_cyg);
+
+    /* Test if the last 4 bytes(roughly) of mantissa are rounded up.  Mainly for Cygwin
+     * where the values like 0xffffffffffffffff,  0xfffffffffffffffe, ...,
+     * 0xfffffffffffff000 ... are rounded up as 0x0000403f8000000000000000
+     * instead of 0x0000403effffffffffffffff, 0x0000403efffffffffffffffe, ...,
+     * 0x0000403efffffffffffff000 ...
+     */
+    if(endian==0 && c2_cyg[0]==0 && c2_cyg[1]==0 && c2_cyg[2]==0 && c2_cyg[3]==0)
+        ret = 1;
+
+done:
+    if(c1)
+        free(c1);
+    if(c2)
+        free(c2);
+    if(c2_cyg)
+        free(c2_cyg);
+    exit(ret);
 }
 
 #endif
@@ -419,4 +416,5 @@ int main(void)
 done:
     exit(ret);
 }
+}
 #endif
diff --git a/config/cmake/FindHDF5.cmake.in b/config/cmake/FindHDF5.cmake.in
index 0ac8bc9..fbc49f1 100644
--- a/config/cmake/FindHDF5.cmake.in
+++ b/config/cmake/FindHDF5.cmake.in
@@ -1,86 +1,86 @@
-#
-# To be used by projects that make use of Cmakeified hdf5- at HDF5_PACKAGE_VERSION@
-#
-
-#
-# Find the HDF5 includes and get all installed hdf5 library settings from
-# HDF5-config.cmake file : Requires a CMake compatible hdf5-1.8.5 or later 
-# for this feature to work. The following vars are set if hdf5 is found.
-#
-# HDF5_FOUND               - True if found, otherwise all other vars are undefined
-# HDF5_INCLUDE_DIR         - The include dir for main *.h files
-# HDF5_FORTRAN_INCLUDE_DIR - The include dir for fortran modules and headers
-# HDF5_VERSION_STRING      - full version (e.g. @HDF5_PACKAGE_VERSION@)
-# HDF5_VERSION_MAJOR       - major part of version (e.g. @HDF5_PACKAGE_VERSION_MAJOR@)
-# HDF5_VERSION_MINOR       - minor part (e.g. @HDF5_PACKAGE_VERSION_MINOR@)
-# 
-# The following boolean vars will be defined
-# HDF5_ENABLE_PARALLEL  - 1 if HDF5 parallel supported
-# HDF5_BUILD_FORTRAN    - 1 if HDF5 was compiled with fortran on
-# HDF5_BUILD_CPP_LIB    - 1 if HDF5 was compiled with cpp on
-# HDF5_BUILD_TOOLS      - 1 if HDF5 was compiled with tools on
-# HDF5_BUILD_HL_LIB     - 1 if HDF5 was compiled with high level on
-# HDF5_BUILD_HL_CPP_LIB - 1 if HDF5 was compiled with high level and cpp on
-# 
-# Target names that are valid (depending on enabled options)
-# will be the following
-#
-# hdf5              : HDF5 C library
-# hdf5_tools        : the tools library
-# hdf5_f90cstub     : used by Fortran to C interface
-# hdf5_fortran      : Fortran HDF5 library
-# hdf5_cpp          : HDF5 cpp interface library
-# hdf5_hl           : High Level library
-# hdf5_hl_f90cstub  : used by Fortran to C interface to High Level library
-# hdf5_hl_fortran   : Fortran High Level library
-# hdf5_hl_cpp       : High Level cpp interface library
-# 
-# To aid in finding HDF5 as part of a subproject set
-# HDF5_ROOT_DIR_HINT to the location where @HDF5_PACKAGE@@HDF_PACKAGE_EXT at -config.cmake lies
-
-include (SelectLibraryConfigurations)
-include (FindPackageHandleStandardArgs)
-
-# The HINTS option should only be used for values computed from the system.
-set (_HDF5_HINTS
-    $ENV{HOME}/.local
-    $ENV{HDF5_ROOT}
-    $ENV{HDF5_ROOT_DIR_HINT}
-)
-# Hard-coded guesses should still go in PATHS. This ensures that the user
-# environment can always override hard guesses.
-set (_HDF5_PATHS
-    $ENV{HOME}/.local
-    $ENV{HDF5_ROOT}
-    $ENV{HDF5_ROOT_DIR_HINT}
-    /usr/lib/@HDF5_PACKAGE@
-    /usr/share/@HDF5_PACKAGE@
-    /usr/local/@HDF5_PACKAGE@
-    /usr/local/@HDF5_PACKAGE@/share
-)
-
-FIND_PATH (HDF5_ROOT_DIR "@HDF5_PACKAGE@@HDF_PACKAGE_EXT at -config.cmake"
-    HINTS ${_HDF5_HINTS}
-    PATHS ${_HDF5_PATHS}
-    PATH_SUFFIXES
-        cmake/@HDF5_PACKAGE@
-        lib/cmake/@HDF5_PACKAGE@
-        share/cmake/@HDF5_PACKAGE@
-)
-
-FIND_PATH (HDF5_INCLUDE_DIRS "H5public.h"
-    HINTS ${_HDF5_HINTS}
-    PATHS ${_HDF5_PATHS}
-    PATH_SUFFIXES
-        include
-        Include
-)
-
-# For backwards compatibility we set HDF5_INCLUDE_DIR to the value of
-# HDF5_INCLUDE_DIRS
-set ( HDF5_INCLUDE_DIR "${HDF5_INCLUDE_DIRS}" )
-
-if (HDF5_INCLUDE_DIR)
-  set (HDF5_FOUND "YES")
-  include (${HDF5_ROOT_DIR}/@HDF5_PACKAGE@@HDF_PACKAGE_EXT at -config.cmake)
-endif (HDF5_INCLUDE_DIR)
+#
+# To be used by projects that make use of Cmakeified hdf5- at HDF5_PACKAGE_VERSION@
+#
+
+#
+# Find the HDF5 includes and get all installed hdf5 library settings from
+# HDF5-config.cmake file : Requires a CMake compatible hdf5-1.8.5 or later 
+# for this feature to work. The following vars are set if hdf5 is found.
+#
+# HDF5_FOUND               - True if found, otherwise all other vars are undefined
+# HDF5_INCLUDE_DIR         - The include dir for main *.h files
+# HDF5_FORTRAN_INCLUDE_DIR - The include dir for fortran modules and headers
+# HDF5_VERSION_STRING      - full version (e.g. @HDF5_PACKAGE_VERSION@)
+# HDF5_VERSION_MAJOR       - major part of version (e.g. @HDF5_PACKAGE_VERSION_MAJOR@)
+# HDF5_VERSION_MINOR       - minor part (e.g. @HDF5_PACKAGE_VERSION_MINOR@)
+# 
+# The following boolean vars will be defined
+# HDF5_ENABLE_PARALLEL  - 1 if HDF5 parallel supported
+# HDF5_BUILD_FORTRAN    - 1 if HDF5 was compiled with fortran on
+# HDF5_BUILD_CPP_LIB    - 1 if HDF5 was compiled with cpp on
+# HDF5_BUILD_TOOLS      - 1 if HDF5 was compiled with tools on
+# HDF5_BUILD_HL_LIB     - 1 if HDF5 was compiled with high level on
+# HDF5_BUILD_HL_CPP_LIB - 1 if HDF5 was compiled with high level and cpp on
+# 
+# Target names that are valid (depending on enabled options)
+# will be the following
+#
+# hdf5              : HDF5 C library
+# hdf5_tools        : the tools library
+# hdf5_f90cstub     : used by Fortran to C interface
+# hdf5_fortran      : Fortran HDF5 library
+# hdf5_cpp          : HDF5 cpp interface library
+# hdf5_hl           : High Level library
+# hdf5_hl_f90cstub  : used by Fortran to C interface to High Level library
+# hdf5_hl_fortran   : Fortran High Level library
+# hdf5_hl_cpp       : High Level cpp interface library
+# 
+# To aid in finding HDF5 as part of a subproject set
+# HDF5_ROOT_DIR_HINT to the location where @HDF5_PACKAGE@@HDF_PACKAGE_EXT at -config.cmake lies
+
+include (SelectLibraryConfigurations)
+include (FindPackageHandleStandardArgs)
+
+# The HINTS option should only be used for values computed from the system.
+set (_HDF5_HINTS
+    $ENV{HOME}/.local
+    $ENV{HDF5_ROOT}
+    $ENV{HDF5_ROOT_DIR_HINT}
+)
+# Hard-coded guesses should still go in PATHS. This ensures that the user
+# environment can always override hard guesses.
+set (_HDF5_PATHS
+    $ENV{HOME}/.local
+    $ENV{HDF5_ROOT}
+    $ENV{HDF5_ROOT_DIR_HINT}
+    /usr/lib/@HDF5_PACKAGE@
+    /usr/share/@HDF5_PACKAGE@
+    /usr/local/@HDF5_PACKAGE@
+    /usr/local/@HDF5_PACKAGE@/share
+)
+
+FIND_PATH (HDF5_ROOT_DIR "@HDF5_PACKAGE@@HDF_PACKAGE_EXT at -config.cmake"
+    HINTS ${_HDF5_HINTS}
+    PATHS ${_HDF5_PATHS}
+    PATH_SUFFIXES
+        cmake/@HDF5_PACKAGE@
+        lib/cmake/@HDF5_PACKAGE@
+        share/cmake/@HDF5_PACKAGE@
+)
+
+FIND_PATH (HDF5_INCLUDE_DIRS "H5public.h"
+    HINTS ${_HDF5_HINTS}
+    PATHS ${_HDF5_PATHS}
+    PATH_SUFFIXES
+        include
+        Include
+)
+
+# For backwards compatibility we set HDF5_INCLUDE_DIR to the value of
+# HDF5_INCLUDE_DIRS
+set ( HDF5_INCLUDE_DIR "${HDF5_INCLUDE_DIRS}" )
+
+if (HDF5_INCLUDE_DIR)
+  set (HDF5_FOUND "YES")
+  include (${HDF5_ROOT_DIR}/@HDF5_PACKAGE@@HDF_PACKAGE_EXT at -config.cmake)
+endif (HDF5_INCLUDE_DIR)
diff --git a/config/cmake/H5pubconf.h.in b/config/cmake/H5pubconf.h.in
index 9f5206d..79c6c1a 100644
--- a/config/cmake/H5pubconf.h.in
+++ b/config/cmake/H5pubconf.h.in
@@ -91,6 +91,9 @@
 /* Define to 1 if you have the `alarm' function. */
 #cmakedefine H5_HAVE_ALARM @H5_HAVE_ALARM@
 
+/* Define to 1 if you have the `asprintf' function. */
+#cmakedefine H5_HAVE_ASPRINTF @H5_HAVE_ASPRINTF@
+
 /* Define if the __attribute__(()) extension is present */
 #cmakedefine H5_HAVE_ATTRIBUTE @H5_HAVE_ATTRIBUTE@
 
@@ -289,9 +292,6 @@
 /* Define to 1 if you have the <mpe.h> header file. */
 #cmakedefine H5_HAVE_MPE_H @H5_HAVE_MPE_H@
 
-/* Define if MPI_File_get_size works correctly */
-#cmakedefine H5_HAVE_MPI_GET_SIZE @H5_HAVE_MPI_GET_SIZE@
-
 /* Define if `MPI_Comm_c2f' and `MPI_Comm_f2c' exists */
 #cmakedefine H5_HAVE_MPI_MULTI_LANG_Comm @H5_HAVE_MPI_MULTI_LANG_Comm@
 
@@ -313,7 +313,7 @@
 /* Define to 1 if you have the `rand_r' function. */
 #cmakedefine H5_HAVE_RAND_R @H5_HAVE_RAND_R@
 
-/* Define to 1 if you have the `sigsetjmp' function. */
+/* Define to 1 if you have the `setjmp' function. */
 #cmakedefine H5_HAVE_SETJMP @H5_HAVE_SETJMP@
 
 /* Define to 1 if you have the <setjmp.h> header file. */
@@ -453,6 +453,9 @@
 /* Define to 1 if you have the <unistd.h> header file. */
 #cmakedefine H5_HAVE_UNISTD_H @H5_HAVE_UNISTD_H@
 
+/* Define to 1 if you have the `asprintf' function. */
+#cmakedefine H5_HAVE_ASPRINTF @H5_HAVE_ASPRINTF@
+
 /* Define to 1 if you have the `vasprintf' function. */
 #cmakedefine H5_HAVE_VASPRINTF @H5_HAVE_VASPRINTF@
 
@@ -527,10 +530,6 @@
 /* Define if the metadata trace file code is to be compiled in */
 #cmakedefine H5_METADATA_TRACE_FILE @H5_METADATA_TRACE_FILE@
 
-/* Define if your system's `MPI_File_set_size' function works for files over
-   2GB. */
-#cmakedefine H5_MPI_FILE_SET_SIZE_BIG @H5_MPI_FILE_SET_SIZE_BIG@
-
 /* Define if we can violate pointer alignment restrictions */
 #cmakedefine H5_NO_ALIGNMENT_RESTRICTIONS @H5_NO_ALIGNMENT_RESTRICTIONS@
 
diff --git a/config/cmake/HDF518_Examples.cmake.in b/config/cmake/HDF518_Examples.cmake.in
index 075920e..48c2b56 100644
--- a/config/cmake/HDF518_Examples.cmake.in
+++ b/config/cmake/HDF518_Examples.cmake.in
@@ -1,119 +1,116 @@
-cmake_minimum_required(VERSION 2.8.10 FATAL_ERROR)
-###############################################################################################################
-# This script will build and run the examples from a compressed file
-# Execute from a command line:
-#     ctest -S HDF518_Examples.cmake,HDF5Examples-0.1.1-Source -C Release -O test.log
-###############################################################################################################
-
-set(INSTALLDIR "@CMAKE_INSTALL_PREFIX@")
-set(CTEST_CMAKE_GENERATOR "@CMAKE_GENERATOR@")
-set(STATICLIBRARIES "@H5_ENABLE_STATIC_LIB@")
-set(CTEST_SOURCE_NAME ${CTEST_SCRIPT_ARG})
-set(CTEST_DASHBOARD_ROOT ${CTEST_SCRIPT_DIRECTORY})
-set(CTEST_BUILD_CONFIGURATION "Release")
-#set(NO_MAC_FORTRAN "true")
-#set(BUILD_OPTIONS ""${BUILD_OPTIONS} -DHDF_BUILD_FORTRAN:BOOL=OFF")
-#set(BUILD_OPTIONS "${BUILD_OPTIONS} -DHDF_ENABLE_F2003:BOOL=ON)
-
-###############################################################################################################
-#     Adjust the following SET Commands as needed
-###############################################################################################################
-if(WIN32)
-  if(STATICLIBRARIES)
-    set(BUILD_OPTIONS "${BUILD_OPTIONS} -DUSE_SHARED_LIBS:BOOL=OFF")
-  endif(STATICLIBRARIES)
-  set(ENV{HDF5_DIR} "${INSTALLDIR}/cmake/hdf5")
-  set(CTEST_BINARY_NAME ${CTEST_SOURCE_NAME}\\build)
-  set(CTEST_SOURCE_DIRECTORY "${CTEST_DASHBOARD_ROOT}\\${CTEST_SOURCE_NAME}")
-  set(CTEST_BINARY_DIRECTORY "${CTEST_DASHBOARD_ROOT}\\${CTEST_BINARY_NAME}")
-else(WIN32)
-  if(STATICLIBRARIES)
-    set(BUILD_OPTIONS "${BUILD_OPTIONS} -DUSE_SHARED_LIBS:BOOL=OFF -DCMAKE_ANSI_CFLAGS:STRING=-fPIC")
-  endif(STATICLIBRARIES)
-  set(ENV{HDF5_DIR} "${INSTALLDIR}/share/cmake/hdf5")
-  set(ENV{LD_LIBRARY_PATH} "${INSTALLDIR}/lib")
-  set(CTEST_BINARY_NAME ${CTEST_SOURCE_NAME}/build)
-  set(CTEST_SOURCE_DIRECTORY "${CTEST_DASHBOARD_ROOT}/${CTEST_SOURCE_NAME}")
-  set(CTEST_BINARY_DIRECTORY "${CTEST_DASHBOARD_ROOT}/${CTEST_BINARY_NAME}")
-endif(WIN32)
-
-###############################################################################################################
-# For any comments please contact cdashhelp at hdfgroup.org
-#
-###############################################################################################################
- 
-#-----------------------------------------------------------------------------
-# MAC machines need special option
-#-----------------------------------------------------------------------------
-if(APPLE)
-  # Compiler choice
-  execute_process(COMMAND xcrun --find cc OUTPUT_VARIABLE XCODE_CC OUTPUT_STRIP_TRAILING_WHITESPACE)
-  execute_process(COMMAND xcrun --find c++ OUTPUT_VARIABLE XCODE_CXX OUTPUT_STRIP_TRAILING_WHITESPACE)
-  set(ENV{CC} "${XCODE_CC}")
-  set(ENV{CXX} "${XCODE_CXX}")
-  if(NOT NO_MAC_FORTRAN)
-    # Shared fortran is not supported, build static 
-    set(BUILD_OPTIONS "${BUILD_OPTIONS} -DBUILD_SHARED_LIBS:BOOL=OFF -DCMAKE_ANSI_CFLAGS:STRING=-fPIC")
-  else(NOT NO_MAC_FORTRAN)
-    set(BUILD_OPTIONS "${BUILD_OPTIONS} -DHDF5_BUILD_FORTRAN:BOOL=OFF")
-  endif(NOT NO_MAC_FORTRAN)
-  set(BUILD_OPTIONS "${BUILD_OPTIONS} -DCTEST_USE_LAUNCHERS:BOOL=ON -DCMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=OFF")
-endif(APPLE)
- 
-#-----------------------------------------------------------------------------
-set(CTEST_CMAKE_COMMAND "\"${CMAKE_COMMAND}\"")
-## Uncompress source in tar file provided
-## --------------------------
-if(WIN32)
-  set(CTEST_7Z_COMMAND "C:/Program Files/7-Zip/7z.exe")
-  message("extracting... [${CTEST_7Z_COMMAND} x ${CTEST_SOURCE_NAME}.zip]")
-  execute_process(COMMAND ${CTEST_7Z_COMMAND} x ${CTEST_SOURCE_NAME}.zip RESULT_VARIABLE rv)
-else(WIN32)
-  message("extracting... [${CTEST_CMAKE_COMMAND} -E tar -xvf ${CTEST_SOURCE_NAME}.tar.gz]")
-  execute_process(COMMAND tar -xvf ${CTEST_SOURCE_NAME}.tar.gz RESULT_VARIABLE rv)
-endif(WIN32)
- 
-if(NOT rv EQUAL 0)
-  message("extracting... [error-(${rv}) clean up]")
-  file(REMOVE_RECURSE "${CTEST_SOURCE_DIRECTORY}")
-  message(FATAL_ERROR "error: extract of ${CTEST_SOURCE_NAME} failed")
-endif(NOT rv EQUAL 0)
- 
-#-----------------------------------------------------------------------------
-## Clear the build directory
-## --------------------------
-set(CTEST_START_WITH_EMPTY_BINARY_DIRECTORY TRUE)
-file(MAKE_DIRECTORY "${CTEST_BINARY_DIRECTORY}")
-ctest_empty_binary_directory(${CTEST_BINARY_DIRECTORY})
-
-# Use multiple CPU cores to build
-include(ProcessorCount)
-ProcessorCount(N)
-if(NOT N EQUAL 0)
-  if(NOT WIN32)
-    set(CTEST_BUILD_FLAGS -j${N})
-  endif(NOT WIN32)
-  set(ctest_test_args ${ctest_test_args} PARALLEL_LEVEL ${N})
-endif()
-set (CTEST_CONFIGURE_COMMAND
-    "${CTEST_CMAKE_COMMAND} -C \"${CTEST_SOURCE_DIRECTORY}/config/cmake/cacheinit.cmake\" -DCMAKE_BUILD_TYPE:STRING=${CTEST_BUILD_CONFIGURATION} ${BUILD_OPTIONS} \"-G${CTEST_CMAKE_GENERATOR}\" \"${CTEST_SOURCE_DIRECTORY}\""
-)
- 
-#-----------------------------------------------------------------------------
-## -- set output to english
-set($ENV{LC_MESSAGES}  "en_EN")
- 
-#-----------------------------------------------------------------------------
-  ## NORMAL process
-  ## --------------------------
-  CTEST_START (Experimental)
-  CTEST_CONFIGURE (BUILD "${CTEST_BINARY_DIRECTORY}")
-  CTEST_READ_CUSTOM_FILES ("${CTEST_BINARY_DIRECTORY}")
-  CTEST_BUILD (BUILD "${CTEST_BINARY_DIRECTORY}" APPEND)
-  CTEST_TEST (BUILD "${CTEST_BINARY_DIRECTORY}" APPEND ${ctest_test_args} RETURN_VALUE res)
-  if(res GREATER 0)
-    message (FATAL_ERROR "tests FAILED")
-  endif(res GREATER 0)
-#-----------------------------------------------------------------------------
-############################################################################################################## 
+cmake_minimum_required(VERSION 2.8.10 FATAL_ERROR)
+###############################################################################################################
+# This script will build and run the examples from a compressed file
+# Execute from a command line:
+#     ctest -S HDF518_Examples.cmake,HDF5Examples-0.1.1-Source -C Release -VV -O test.log
+###############################################################################################################
+
+set(INSTALLDIR "@CMAKE_INSTALL_PREFIX@")
+set(CTEST_CMAKE_GENERATOR "@CMAKE_GENERATOR@")
+set(STATICLIBRARIES "@H5_ENABLE_STATIC_LIB@")
+set(CTEST_SOURCE_NAME ${CTEST_SCRIPT_ARG})
+set(CTEST_DASHBOARD_ROOT ${CTEST_SCRIPT_DIRECTORY})
+set(CTEST_BUILD_CONFIGURATION "Release")
+#set(BUILD_OPTIONS ""${BUILD_OPTIONS} -DHDF_BUILD_FORTRAN:BOOL=ON")
+#set(BUILD_OPTIONS "${BUILD_OPTIONS} -DHDF_ENABLE_F2003:BOOL=ON)
+
+###############################################################################################################
+#     Adjust the following SET Commands as needed
+###############################################################################################################
+if(WIN32)
+  if(STATICLIBRARIES)
+    set(BUILD_OPTIONS "${BUILD_OPTIONS} -DUSE_SHARED_LIBS:BOOL=OFF")
+  endif(STATICLIBRARIES)
+  set(ENV{HDF5_DIR} "${INSTALLDIR}/cmake/hdf5")
+  set(CTEST_BINARY_NAME ${CTEST_SOURCE_NAME}\\build)
+  set(CTEST_SOURCE_DIRECTORY "${CTEST_DASHBOARD_ROOT}\\${CTEST_SOURCE_NAME}")
+  set(CTEST_BINARY_DIRECTORY "${CTEST_DASHBOARD_ROOT}\\${CTEST_BINARY_NAME}")
+else(WIN32)
+  if(STATICLIBRARIES)
+    set(BUILD_OPTIONS "${BUILD_OPTIONS} -DUSE_SHARED_LIBS:BOOL=OFF -DCMAKE_ANSI_CFLAGS:STRING=-fPIC")
+  endif(STATICLIBRARIES)
+  set(ENV{HDF5_DIR} "${INSTALLDIR}/share/cmake/hdf5")
+  set(ENV{LD_LIBRARY_PATH} "${INSTALLDIR}/lib")
+  set(CTEST_BINARY_NAME ${CTEST_SOURCE_NAME}/build)
+  set(CTEST_SOURCE_DIRECTORY "${CTEST_DASHBOARD_ROOT}/${CTEST_SOURCE_NAME}")
+  set(CTEST_BINARY_DIRECTORY "${CTEST_DASHBOARD_ROOT}/${CTEST_BINARY_NAME}")
+endif(WIN32)
+
+###############################################################################################################
+# For any comments please contact cdashhelp at hdfgroup.org
+#
+###############################################################################################################
+ 
+#-----------------------------------------------------------------------------
+# MAC machines need special option
+#-----------------------------------------------------------------------------
+if(APPLE)
+  # Compiler choice
+  execute_process(COMMAND xcrun --find cc OUTPUT_VARIABLE XCODE_CC OUTPUT_STRIP_TRAILING_WHITESPACE)
+  execute_process(COMMAND xcrun --find c++ OUTPUT_VARIABLE XCODE_CXX OUTPUT_STRIP_TRAILING_WHITESPACE)
+  set(ENV{CC} "${XCODE_CC}")
+  set(ENV{CXX} "${XCODE_CXX}")
+  if(HDF_BUILD_FORTRAN AND BUILD_SHARED_LIBS)
+    message(FATAL_ERROR "error: Shared fortran is not supported, build static") 
+    #set(BUILD_OPTIONS "${BUILD_OPTIONS} -DBUILD_SHARED_LIBS:BOOL=OFF -DCMAKE_ANSI_CFLAGS:STRING=-fPIC")
+  endif(HDF_BUILD_FORTRAN AND BUILD_SHARED_LIBS)
+  set(BUILD_OPTIONS "${BUILD_OPTIONS} -DCTEST_USE_LAUNCHERS:BOOL=ON -DCMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=OFF")
+endif(APPLE)
+ 
+#-----------------------------------------------------------------------------
+set(CTEST_CMAKE_COMMAND "\"${CMAKE_COMMAND}\"")
+## Uncompress source in tar file provided
+## --------------------------
+if(WIN32)
+  set(CTEST_7Z_COMMAND "C:/Program Files/7-Zip/7z.exe")
+  message("extracting... [${CTEST_7Z_COMMAND} x ${CTEST_SOURCE_NAME}.zip]")
+  execute_process(COMMAND ${CTEST_7Z_COMMAND} x ${CTEST_SOURCE_NAME}.zip RESULT_VARIABLE rv)
+else(WIN32)
+  message("extracting... [${CTEST_CMAKE_COMMAND} -E tar -xvf ${CTEST_SOURCE_NAME}.tar.gz]")
+  execute_process(COMMAND tar -xvf ${CTEST_SOURCE_NAME}.tar.gz RESULT_VARIABLE rv)
+endif(WIN32)
+ 
+if(NOT rv EQUAL 0)
+  message("extracting... [error-(${rv}) clean up]")
+  file(REMOVE_RECURSE "${CTEST_SOURCE_DIRECTORY}")
+  message(FATAL_ERROR "error: extract of ${CTEST_SOURCE_NAME} failed")
+endif(NOT rv EQUAL 0)
+ 
+#-----------------------------------------------------------------------------
+## Clear the build directory
+## --------------------------
+set(CTEST_START_WITH_EMPTY_BINARY_DIRECTORY TRUE)
+file(MAKE_DIRECTORY "${CTEST_BINARY_DIRECTORY}")
+ctest_empty_binary_directory(${CTEST_BINARY_DIRECTORY})
+
+# Use multiple CPU cores to build
+include(ProcessorCount)
+ProcessorCount(N)
+if(NOT N EQUAL 0)
+  if(NOT WIN32)
+    set(CTEST_BUILD_FLAGS -j${N})
+  endif(NOT WIN32)
+  set(ctest_test_args ${ctest_test_args} PARALLEL_LEVEL ${N})
+endif()
+set (CTEST_CONFIGURE_COMMAND
+    "${CTEST_CMAKE_COMMAND} -C \"${CTEST_SOURCE_DIRECTORY}/config/cmake/cacheinit.cmake\" -DCMAKE_BUILD_TYPE:STRING=${CTEST_BUILD_CONFIGURATION} ${BUILD_OPTIONS} \"-G${CTEST_CMAKE_GENERATOR}\" \"${CTEST_SOURCE_DIRECTORY}\""
+)
+ 
+#-----------------------------------------------------------------------------
+## -- set output to english
+set($ENV{LC_MESSAGES}  "en_EN")
+ 
+#-----------------------------------------------------------------------------
+  ## NORMAL process
+  ## --------------------------
+  CTEST_START (Experimental)
+  CTEST_CONFIGURE (BUILD "${CTEST_BINARY_DIRECTORY}")
+  CTEST_READ_CUSTOM_FILES ("${CTEST_BINARY_DIRECTORY}")
+  CTEST_BUILD (BUILD "${CTEST_BINARY_DIRECTORY}" APPEND)
+  CTEST_TEST (BUILD "${CTEST_BINARY_DIRECTORY}" APPEND ${ctest_test_args} RETURN_VALUE res)
+  if(res GREATER 0)
+    message (FATAL_ERROR "tests FAILED")
+  endif(res GREATER 0)
+#-----------------------------------------------------------------------------
+############################################################################################################## 
 message("DONE")
\ No newline at end of file
diff --git a/config/cmake/HDF5Macros.cmake b/config/cmake/HDF5Macros.cmake
index d0379db..baa18c0 100644
--- a/config/cmake/HDF5Macros.cmake
+++ b/config/cmake/HDF5Macros.cmake
@@ -20,7 +20,7 @@ MACRO (H5_SET_LIB_OPTIONS libtarget libname libtype)
   if (APPLE)
     option (HDF5_BUILD_WITH_INSTALL_NAME "Build with library install_name set to the installation path" OFF)
     if (HDF5_BUILD_WITH_INSTALL_NAME)
-      SET_TARGET_PROPERTIES(${libtarget} PROPERTIES
+      set_target_properties (${libtarget} PROPERTIES
           LINK_FLAGS "-current_version ${HDF5_PACKAGE_VERSION} -compatibility_version ${HDF5_PACKAGE_VERSION}"
           INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib"
           BUILD_WITH_INSTALL_RPATH ${HDF5_BUILD_WITH_INSTALL_NAME}
diff --git a/config/cmake/README.txt.cmake.in b/config/cmake/README.txt.cmake.in
index 4d3ab3d..04a166c 100644
--- a/config/cmake/README.txt.cmake.in
+++ b/config/cmake/README.txt.cmake.in
@@ -1,53 +1,54 @@
- at HDF5_PACKAGE_NAME@ version @HDF5_PACKAGE_VERSION_STRING@
-------------------------------------------------------------------------------
-
-This directory contains the binary (release) distribution of 
- at HDF5_PACKAGE_NAME@ @HDF5_PACKAGE_VERSION_MAJOR@ that was compiled on;
-    @BINARY_PLATFORM at . 
-
-It was built with the following options: 
-    -- @LIB_TYPE@ C/C++/Fortran libraries
-    -- SZIP (encoder enabled) and ZLIB
-    -- @LIB_TYPE@ HDF5 tools
-
-The contents of this directory are:
-
-    COPYING                 - Copyright notice
-    README.txt              - This file
-    @HDF5_PACKAGE_NAME at -@HDF5_PACKAGE_VERSION at -@BINARY_SYSTEM_NAME at .@BINARY_INSTALL_ENDING@    - HDF5 Install Package
-
-Installation
-===========================================================================
-1. Execute @HDF5_PACKAGE_NAME at -@HDF5_PACKAGE_VERSION at -@BINARY_SYSTEM_NAME at .@BINARY_INSTALL_ENDING@
-2. Follow prompts
-===========================================================================
-
-After Installation
-===========================================================================
-The compressed examples file HDF5Examples-0.1.1-Source. at BINARY_EXAMPLE_ENDING@, located in the 
-HDF5 install folder, can be built and tested with CMake and the supplied
-HDF518_Examples.cmake file. The HDF518_Examples.cmake expects HDF5 to have
-been installed in the default location with above compilers.
-
-To test the installation with the examples;
-    Create a directory to run the examples.
-    Copy HDF5Examples-0.1.1-Source. at BINARY_EXAMPLE_ENDING@ to this directory, do NOT unzip.
-    Copy HDF518_Examples.cmake to this directory.
-    Edit HDF518_Examples.cmake line 8 to set INSTALLDIR to where HDF5 is installed.
-    Execute from this directory: 
-        ctest -S HDF518_Examples.cmake,HDF5Examples-0.1.1-Source -C Release -O test.log
-
-When executed, the ctest script will save the results to the log file, test.log, as
-indicated by the ctest command. If you wish the to see more build and test information, 
-add "-VV" to the ctest command.
-
-For more information see USING_CMake_Examples.txt in the install folder. 
-===========================================================================
-
-Documentation for this release can be found at the following URL:
-    http://www.hdfgroup.org/HDF5/doc/.
-
-See the HDF5 home page for further details:
-    http://hdfgroup.org/HDF5/
-
-Bugs should be reported to help at hdfgroup.org.
+ at HDF5_PACKAGE_NAME@ version @HDF5_PACKAGE_VERSION_STRING@
+------------------------------------------------------------------------------
+
+This directory contains the binary (release) distribution of 
+ at HDF5_PACKAGE_NAME@ @HDF5_PACKAGE_VERSION_MAJOR@ that was compiled on;
+    @BINARY_PLATFORM at . 
+
+It was built with the following options: 
+    -- @LIB_TYPE@ C/C++/Fortran libraries
+    -- SZIP (encoder enabled) and ZLIB
+    -- @LIB_TYPE@ HDF5 tools
+
+The contents of this directory are:
+
+    COPYING                 - Copyright notice
+    README.txt              - This file
+    @HDF5_PACKAGE_NAME at -@HDF5_PACKAGE_VERSION at -@BINARY_SYSTEM_NAME at .@BINARY_INSTALL_ENDING@    - HDF5 Install Package
+
+Installation
+===========================================================================
+1. Execute @HDF5_PACKAGE_NAME at -@HDF5_PACKAGE_VERSION at -@BINARY_SYSTEM_NAME at .@BINARY_INSTALL_ENDING@
+2. Follow prompts
+===========================================================================
+
+After Installation
+===========================================================================
+The compressed examples file HDF5Examples-0.1.1-Source. at BINARY_EXAMPLE_ENDING@, located in the 
+HDF5 install folder, can be built and tested with CMake and the supplied
+HDF518_Examples.cmake file. The HDF518_Examples.cmake expects HDF5 to have
+been installed in the default location with above compilers.
+
+To test the installation with the examples;
+    Create a directory to run the examples.
+    Copy HDF5Examples-0.1.1-Source. at BINARY_EXAMPLE_ENDING@ to this directory, do NOT unzip.
+    Copy HDF518_Examples.cmake to this directory.
+    Edit HDF518_Examples.cmake line 8 to set INSTALLDIR to where HDF5 is installed.
+       (The default should be correct unless you installed into a different folder.)
+    Execute from this directory: 
+        ctest -S HDF518_Examples.cmake,HDF5Examples-0.1.1-Source -C Release -V -O test.log
+
+When executed, the ctest script will save the results to the log file, test.log, as
+indicated by the ctest command. If you wish the to see more build and test information, 
+add "-VV" to the ctest command.
+
+For more information see USING_CMake_Examples.txt in the install folder. 
+===========================================================================
+
+Documentation for this release can be found at the following URL:
+    http://www.hdfgroup.org/HDF5/doc/.
+
+See the HDF5 home page for further details:
+    http://hdfgroup.org/HDF5/
+
+Bugs should be reported to help at hdfgroup.org.
diff --git a/config/cmake/cacheinit.cmake b/config/cmake/cacheinit.cmake
index eb99f5d..5ec5568 100644
--- a/config/cmake/cacheinit.cmake
+++ b/config/cmake/cacheinit.cmake
@@ -1,76 +1,72 @@
-# This is the CMakeCache file.
-
-########################
-# EXTERNAL cache entries
-########################
-
-set (BUILD_SHARED_LIBS ON CACHE BOOL "Build Shared Libraries" FORCE)
-
-set (BUILD_TESTING ON CACHE BOOL "Build HDF5 Unit Testing" FORCE)
-
-set (HDF_PACKAGE_EXT "" CACHE STRING "Name of HDF package extension" FORCE)
-
-set (HDF5_BUILD_CPP_LIB ON CACHE BOOL "Build HDF5 C++ Library" FORCE)
-
-set (HDF5_BUILD_EXAMPLES ON CACHE BOOL "Build HDF5 Library Examples" FORCE)
-
-set (HDF5_BUILD_FORTRAN ON CACHE BOOL "Build FORTRAN support" FORCE)
-
-set (HDF5_ENABLE_F2003 OFF CACHE BOOL "Enable FORTRAN 2003 Standard" FORCE)
-
-set (HDF5_BUILD_HL_LIB ON CACHE BOOL "Build HIGH Level HDF5 Library" FORCE)
-
-set (HDF5_BUILD_TOOLS ON CACHE BOOL "Build HDF5 Tools" FORCE)
-
-set (HDF5_BUILD_GENERATORS OFF CACHE BOOL "Build Test Generators" FORCE)
-
-set (HDF5_ENABLE_Z_LIB_SUPPORT ON CACHE BOOL "Enable Zlib Filters" FORCE)
-
-set (HDF5_ENABLE_SZIP_SUPPORT ON CACHE BOOL "Use SZip Filter" FORCE)
-
-set (HDF5_ENABLE_SZIP_ENCODING ON CACHE BOOL "Use SZip Encoding" FORCE)
-
-set (HDF5_ENABLE_HSIZET ON CACHE BOOL "Enable datasets larger than memory" FORCE)
-
-set (HDF5_ENABLE_UNSUPPORTED OFF CACHE BOOL "Enable unsupported combinations of configuration options" FORCE)
-
-set (HDF5_ENABLE_DEPRECATED_SYMBOLS ON CACHE BOOL "Enable deprecated public API symbols" FORCE)
-
-set (HDF5_ENABLE_DIRECT_VFD OFF CACHE BOOL "Build the Direct I/O Virtual File Driver" FORCE)
-
-set (HDF5_ENABLE_PARALLEL OFF CACHE BOOL "Enable parallel build (requires MPI)" FORCE)
-
-set (MPIEXEC_MAX_NUMPROCS "3" CACHE STRING "Minimum number of processes for HDF parallel tests" FORCE)
-
-set (HDF5_BUILD_PARALLEL_ALL OFF CACHE BOOL "Build Parallel Programs" FORCE)
-
-set (HDF5_ENABLE_COVERAGE OFF CACHE BOOL "Enable code coverage for Libraries and Programs" FORCE)
-
-set (HDF5_ENABLE_USING_MEMCHECKER OFF CACHE BOOL "Indicate that a memory checker is used" FORCE)
-
-set (HDF5_DISABLE_COMPILER_WARNINGS OFF CACHE BOOL "Disable compiler warnings" FORCE)
-
-set (HDF5_USE_FOLDERS ON CACHE BOOL "Enable folder grouping of projects in IDEs." FORCE)
-
-set (HDF5_USE_16_API_DEFAULT OFF CACHE BOOL "Use the HDF5 1.6.x API by default" FORCE)
-
-set (HDF5_ENABLE_THREADSAFE OFF CACHE BOOL "(WINDOWS)Enable Threadsafety" FORCE)
-
-set (HDF5_PACKAGE_EXTLIBS OFF CACHE BOOL "(WINDOWS)CPACK - include external libraries" FORCE)
-
-set (HDF5_NO_PACKAGES OFF CACHE BOOL "CPACK - Disable packaging" FORCE)
-
-set (HDF5_ALLOW_EXTERNAL_SUPPORT "NO" CACHE STRING "Allow External Library Building (NO SVN TGZ)" FORCE)
-SET_PROPERTY(CACHE HDF5_ALLOW_EXTERNAL_SUPPORT PROPERTY STRINGS NO SVN TGZ)
-
-set (ZLIB_SVN_URL "http://svn.hdfgroup.uiuc.edu/zlib/trunk" CACHE STRING "Use ZLib from HDF repository" FORCE)
-
-set (SZIP_SVN_URL "http://svn.hdfgroup.uiuc.edu/szip/trunk" CACHE STRING "Use SZip from HDF repository" FORCE)
-
-set (ZLIB_TGZ_NAME "ZLib.tar.gz" CACHE STRING "Use ZLib from compressed file" FORCE)
-
-set (SZIP_TGZ_NAME "SZip.tar.gz" CACHE STRING "Use SZip from compressed file" FORCE)
-
-set (ZLIB_PACKAGE_NAME "zlib" CACHE STRING "Name of ZLIB package" FORCE)
-
-set (SZIP_PACKAGE_NAME "szip" CACHE STRING "Name of SZIP package" FORCE)
+# This is the CMakeCache file.
+
+########################
+# EXTERNAL cache entries
+########################
+
+set (BUILD_SHARED_LIBS ON CACHE BOOL "Build Shared Libraries" FORCE)
+
+set (BUILD_TESTING ON CACHE BOOL "Build HDF5 Unit Testing" FORCE)
+
+set (HDF_PACKAGE_EXT "" CACHE STRING "Name of HDF package extension" FORCE)
+
+set (HDF5_BUILD_CPP_LIB ON CACHE BOOL "Build HDF5 C++ Library" FORCE)
+
+set (HDF5_BUILD_EXAMPLES ON CACHE BOOL "Build HDF5 Library Examples" FORCE)
+
+set (HDF5_BUILD_FORTRAN ON CACHE BOOL "Build FORTRAN support" FORCE)
+
+set (HDF5_ENABLE_F2003 OFF CACHE BOOL "Enable FORTRAN 2003 Standard" FORCE)
+
+set (HDF5_BUILD_HL_LIB ON CACHE BOOL "Build HIGH Level HDF5 Library" FORCE)
+
+set (HDF5_BUILD_TOOLS ON CACHE BOOL "Build HDF5 Tools" FORCE)
+
+set (HDF5_BUILD_GENERATORS OFF CACHE BOOL "Build Test Generators" FORCE)
+
+set (HDF5_ENABLE_Z_LIB_SUPPORT ON CACHE BOOL "Enable Zlib Filters" FORCE)
+
+set (HDF5_ENABLE_SZIP_SUPPORT ON CACHE BOOL "Use SZip Filter" FORCE)
+
+set (HDF5_ENABLE_SZIP_ENCODING ON CACHE BOOL "Use SZip Encoding" FORCE)
+
+set (HDF5_ENABLE_HSIZET ON CACHE BOOL "Enable datasets larger than memory" FORCE)
+
+set (HDF5_ENABLE_UNSUPPORTED OFF CACHE BOOL "Enable unsupported combinations of configuration options" FORCE)
+
+set (HDF5_ENABLE_DEPRECATED_SYMBOLS ON CACHE BOOL "Enable deprecated public API symbols" FORCE)
+
+set (HDF5_ENABLE_DIRECT_VFD OFF CACHE BOOL "Build the Direct I/O Virtual File Driver" FORCE)
+
+set (HDF5_ENABLE_PARALLEL OFF CACHE BOOL "Enable parallel build (requires MPI)" FORCE)
+
+set (MPIEXEC_MAX_NUMPROCS "3" CACHE STRING "Minimum number of processes for HDF parallel tests" FORCE)
+
+set (HDF5_BUILD_PARALLEL_ALL OFF CACHE BOOL "Build Parallel Programs" FORCE)
+
+set (HDF5_ENABLE_COVERAGE OFF CACHE BOOL "Enable code coverage for Libraries and Programs" FORCE)
+
+set (HDF5_ENABLE_USING_MEMCHECKER OFF CACHE BOOL "Indicate that a memory checker is used" FORCE)
+
+set (HDF5_DISABLE_COMPILER_WARNINGS OFF CACHE BOOL "Disable compiler warnings" FORCE)
+
+set (HDF5_USE_FOLDERS ON CACHE BOOL "Enable folder grouping of projects in IDEs." FORCE)
+
+set (HDF5_USE_16_API_DEFAULT OFF CACHE BOOL "Use the HDF5 1.6.x API by default" FORCE)
+
+set (HDF5_ENABLE_THREADSAFE OFF CACHE BOOL "(WINDOWS)Enable Threadsafety" FORCE)
+
+set (HDF5_PACKAGE_EXTLIBS OFF CACHE BOOL "(WINDOWS)CPACK - include external libraries" FORCE)
+
+set (HDF5_NO_PACKAGES OFF CACHE BOOL "CPACK - Disable packaging" FORCE)
+
+set (HDF5_ALLOW_EXTERNAL_SUPPORT "NO" CACHE STRING "Allow External Library Building (NO SVN TGZ)" FORCE)
+set_property (CACHE HDF5_ALLOW_EXTERNAL_SUPPORT PROPERTY STRINGS NO SVN TGZ)
+
+set (ZLIB_TGZ_NAME "ZLib.tar.gz" CACHE STRING "Use ZLib from compressed file" FORCE)
+
+set (SZIP_TGZ_NAME "SZip.tar.gz" CACHE STRING "Use SZip from compressed file" FORCE)
+
+set (ZLIB_PACKAGE_NAME "zlib" CACHE STRING "Name of ZLIB package" FORCE)
+
+set (SZIP_PACKAGE_NAME "szip" CACHE STRING "Name of SZIP package" FORCE)
diff --git a/config/cmake/hdf5-config-version.cmake.in b/config/cmake/hdf5-config-version.cmake.in
index c3d0811..148a659 100644
--- a/config/cmake/hdf5-config-version.cmake.in
+++ b/config/cmake/hdf5-config-version.cmake.in
@@ -1,27 +1,27 @@
-#-----------------------------------------------------------------------------
-# HDF5 Version file for install directory
-#-----------------------------------------------------------------------------
-
-set (PACKAGE_VERSION @HDF5_VERSION_STRING@)
-
-if ("${PACKAGE_FIND_VERSION_MAJOR}" EQUAL @H5_VERS_MAJOR@)
-
-  # exact match for version @H5_VERS_MAJOR at .@H5_VERS_MINOR@
-  if ("${PACKAGE_FIND_VERSION_MINOR}" EQUAL @H5_VERS_MINOR@)
-
-    # compatible with any version @H5_VERS_MAJOR at .@H5_VERS_MINOR at .x
-    set (PACKAGE_VERSION_COMPATIBLE 1) 
-    
-    if ("${PACKAGE_FIND_VERSION_PATCH}" EQUAL @H5_VERS_RELEASE@)
-      set (PACKAGE_VERSION_EXACT 1)    
-
-      if ("${PACKAGE_FIND_VERSION_TWEAK}" EQUAL @H5_VERS_SUBRELEASE@)
-        # not using this yet
-      endif ("${PACKAGE_FIND_VERSION_TWEAK}" EQUAL @H5_VERS_SUBRELEASE@)
-      
-    endif ("${PACKAGE_FIND_VERSION_PATCH}" EQUAL @H5_VERS_RELEASE@)
-    
-  endif ("${PACKAGE_FIND_VERSION_MINOR}" EQUAL @H5_VERS_MINOR@)
-endif ("${PACKAGE_FIND_VERSION_MAJOR}" EQUAL @H5_VERS_MAJOR@)
-
-
+#-----------------------------------------------------------------------------
+# HDF5 Version file for install directory
+#-----------------------------------------------------------------------------
+
+set (PACKAGE_VERSION @HDF5_VERSION_STRING@)
+
+if ("${PACKAGE_FIND_VERSION_MAJOR}" EQUAL @H5_VERS_MAJOR@)
+
+  # exact match for version @H5_VERS_MAJOR at .@H5_VERS_MINOR@
+  if ("${PACKAGE_FIND_VERSION_MINOR}" EQUAL @H5_VERS_MINOR@)
+
+    # compatible with any version @H5_VERS_MAJOR at .@H5_VERS_MINOR at .x
+    set (PACKAGE_VERSION_COMPATIBLE 1) 
+    
+    if ("${PACKAGE_FIND_VERSION_PATCH}" EQUAL @H5_VERS_RELEASE@)
+      set (PACKAGE_VERSION_EXACT 1)    
+
+      if ("${PACKAGE_FIND_VERSION_TWEAK}" EQUAL @H5_VERS_SUBRELEASE@)
+        # not using this yet
+      endif ("${PACKAGE_FIND_VERSION_TWEAK}" EQUAL @H5_VERS_SUBRELEASE@)
+      
+    endif ("${PACKAGE_FIND_VERSION_PATCH}" EQUAL @H5_VERS_RELEASE@)
+    
+  endif ("${PACKAGE_FIND_VERSION_MINOR}" EQUAL @H5_VERS_MINOR@)
+endif ("${PACKAGE_FIND_VERSION_MAJOR}" EQUAL @H5_VERS_MAJOR@)
+
+
diff --git a/config/cmake/hdf5-config.cmake.build.in b/config/cmake/hdf5-config.cmake.build.in
index 60888c8..0276ea7 100644
--- a/config/cmake/hdf5-config.cmake.build.in
+++ b/config/cmake/hdf5-config.cmake.build.in
@@ -1,73 +1,73 @@
-#-----------------------------------------------------------------------------
-# HDF5 Config file for compiling against hdf5 build directory
-#-----------------------------------------------------------------------------
-GET_FILENAME_COMPONENT (SELF_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
-
-#-----------------------------------------------------------------------------
-# User Options
-#-----------------------------------------------------------------------------
-set (HDF5_ENABLE_PARALLEL @HDF5_ENABLE_PARALLEL@)
-set (HDF5_BUILD_FORTRAN   @HDF5_BUILD_FORTRAN@)
-set (HDF5_ENABLE_F2003    @HDF5_ENABLE_F2003@)
-set (HDF5_BUILD_CPP_LIB   @HDF5_BUILD_CPP_LIB@)
-set (HDF5_BUILD_TOOLS     @HDF5_BUILD_TOOLS@)
-set (HDF5_BUILD_HL_LIB    @HDF5_BUILD_HL_LIB@)
-set (HDF5_ENABLE_Z_LIB_SUPPORT @HDF5_ENABLE_Z_LIB_SUPPORT@)
-set (HDF5_ENABLE_SZIP_SUPPORT  @HDF5_ENABLE_SZIP_SUPPORT@)
-set (HDF5_ENABLE_SZIP_ENCODING @HDF5_ENABLE_SZIP_ENCODING@)
-set (HDF5_BUILD_SHARED_LIBS    @BUILD_SHARED_LIBS@)
-
-#-----------------------------------------------------------------------------
-# Dependencies
-#-----------------------------------------------------------------------------
-IF(HDF5_ENABLE_PARALLEL)
-  SET(HDF5_MPI_C_INCLUDE_PATH "@MPI_C_INCLUDE_PATH@")
-  SET(HDF5_MPI_C_LIBRARIES    "@MPI_C_LIBRARIES@")
-ENDIF(HDF5_ENABLE_PARALLEL)
-
-#-----------------------------------------------------------------------------
-# Directories
-#-----------------------------------------------------------------------------
-set (HDF5_INCLUDE_DIR "@HDF5_INCLUDES_BUILD_TIME@" "${HDF5_MPI_C_INCLUDE_PATH}" )
-
-if (HDF5_BUILD_FORTRAN)
-  set (HDF5_INCLUDE_DIR_FORTRAN "@CMAKE_Fortran_MODULE_DIRECTORY@" )
-endif (HDF5_BUILD_FORTRAN)
-  
-if (HDF5_BUILD_CPP_LIB)
-  set (HDF5_INCLUDE_DIR_CPP ${HDF5_INCLUDE_DIR} )
-endif (HDF5_BUILD_CPP_LIB)
-
-if (HDF5_BUILD_HL_LIB)
-  set (HDF5_INCLUDE_DIR_HL ${HDF5_INCLUDE_DIR} )
-endif (HDF5_BUILD_HL_LIB)
-
-if (HDF5_BUILD_HL_LIB AND HDF5_BUILD_CPP_LIB)
-  set (HDF5_INCLUDE_DIR_HL_CPP ${HDF5_INCLUDE_DIR} )
-endif (HDF5_BUILD_HL_LIB AND HDF5_BUILD_CPP_LIB)
-
-if (HDF5_BUILD_TOOLS)
-  set (HDF5_INCLUDE_DIR_TOOLS ${HDF5_INCLUDE_DIR} )
-endif (HDF5_BUILD_TOOLS)
-
-if (HDF5_BUILD_SHARED_LIBS)
-  set (H5_BUILT_AS_DYNAMIC_LIB 1 )
-else (HDF5_BUILD_SHARED_LIBS)
-  set (H5_BUILT_AS_STATIC_LIB 1 )
-endif (HDF5_BUILD_SHARED_LIBS)
-
-#-----------------------------------------------------------------------------
-# Version Strings
-#-----------------------------------------------------------------------------
-set (HDF5_VERSION_STRING @HDF5_VERSION_STRING@)
-set (HDF5_VERSION_MAJOR  @HDF5_VERSION_MAJOR@)
-set (HDF5_VERSION_MINOR  @HDF5_VERSION_MINOR@)
-
-#-----------------------------------------------------------------------------
-# Don't include targets if this file is being picked up by another
-# project which has already build hdf5 as a subproject
-#-----------------------------------------------------------------------------
-if (NOT TARGET "@HDF5_PACKAGE@")
-  include (${SELF_DIR}/@HDF5_PACKAGE@@HDF_PACKAGE_EXT at -targets.cmake)
-  set (HDF5_LIBRARIES "@HDF5_LIBRARIES_TO_EXPORT@")
-endif (NOT TARGET "@HDF5_PACKAGE@")
+#-----------------------------------------------------------------------------
+# HDF5 Config file for compiling against hdf5 build directory
+#-----------------------------------------------------------------------------
+GET_FILENAME_COMPONENT (SELF_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
+
+#-----------------------------------------------------------------------------
+# User Options
+#-----------------------------------------------------------------------------
+set (HDF5_ENABLE_PARALLEL @HDF5_ENABLE_PARALLEL@)
+set (HDF5_BUILD_FORTRAN   @HDF5_BUILD_FORTRAN@)
+set (HDF5_ENABLE_F2003    @HDF5_ENABLE_F2003@)
+set (HDF5_BUILD_CPP_LIB   @HDF5_BUILD_CPP_LIB@)
+set (HDF5_BUILD_TOOLS     @HDF5_BUILD_TOOLS@)
+set (HDF5_BUILD_HL_LIB    @HDF5_BUILD_HL_LIB@)
+set (HDF5_ENABLE_Z_LIB_SUPPORT @HDF5_ENABLE_Z_LIB_SUPPORT@)
+set (HDF5_ENABLE_SZIP_SUPPORT  @HDF5_ENABLE_SZIP_SUPPORT@)
+set (HDF5_ENABLE_SZIP_ENCODING @HDF5_ENABLE_SZIP_ENCODING@)
+set (HDF5_BUILD_SHARED_LIBS    @BUILD_SHARED_LIBS@)
+
+#-----------------------------------------------------------------------------
+# Dependencies
+#-----------------------------------------------------------------------------
+IF(HDF5_ENABLE_PARALLEL)
+  SET(HDF5_MPI_C_INCLUDE_PATH "@MPI_C_INCLUDE_PATH@")
+  SET(HDF5_MPI_C_LIBRARIES    "@MPI_C_LIBRARIES@")
+ENDIF(HDF5_ENABLE_PARALLEL)
+
+#-----------------------------------------------------------------------------
+# Directories
+#-----------------------------------------------------------------------------
+set (HDF5_INCLUDE_DIR "@HDF5_INCLUDES_BUILD_TIME@" "${HDF5_MPI_C_INCLUDE_PATH}" )
+
+if (HDF5_BUILD_FORTRAN)
+  set (HDF5_INCLUDE_DIR_FORTRAN "@CMAKE_Fortran_MODULE_DIRECTORY@" )
+endif (HDF5_BUILD_FORTRAN)
+  
+if (HDF5_BUILD_CPP_LIB)
+  set (HDF5_INCLUDE_DIR_CPP ${HDF5_INCLUDE_DIR} )
+endif (HDF5_BUILD_CPP_LIB)
+
+if (HDF5_BUILD_HL_LIB)
+  set (HDF5_INCLUDE_DIR_HL ${HDF5_INCLUDE_DIR} )
+endif (HDF5_BUILD_HL_LIB)
+
+if (HDF5_BUILD_HL_LIB AND HDF5_BUILD_CPP_LIB)
+  set (HDF5_INCLUDE_DIR_HL_CPP ${HDF5_INCLUDE_DIR} )
+endif (HDF5_BUILD_HL_LIB AND HDF5_BUILD_CPP_LIB)
+
+if (HDF5_BUILD_TOOLS)
+  set (HDF5_INCLUDE_DIR_TOOLS ${HDF5_INCLUDE_DIR} )
+endif (HDF5_BUILD_TOOLS)
+
+if (HDF5_BUILD_SHARED_LIBS)
+  set (H5_BUILT_AS_DYNAMIC_LIB 1 )
+else (HDF5_BUILD_SHARED_LIBS)
+  set (H5_BUILT_AS_STATIC_LIB 1 )
+endif (HDF5_BUILD_SHARED_LIBS)
+
+#-----------------------------------------------------------------------------
+# Version Strings
+#-----------------------------------------------------------------------------
+set (HDF5_VERSION_STRING @HDF5_VERSION_STRING@)
+set (HDF5_VERSION_MAJOR  @HDF5_VERSION_MAJOR@)
+set (HDF5_VERSION_MINOR  @HDF5_VERSION_MINOR@)
+
+#-----------------------------------------------------------------------------
+# Don't include targets if this file is being picked up by another
+# project which has already build hdf5 as a subproject
+#-----------------------------------------------------------------------------
+if (NOT TARGET "@HDF5_PACKAGE@")
+  include (${SELF_DIR}/@HDF5_PACKAGE@@HDF_PACKAGE_EXT at -targets.cmake)
+  set (HDF5_LIBRARIES "@HDF5_LIBRARIES_TO_EXPORT@")
+endif (NOT TARGET "@HDF5_PACKAGE@")
diff --git a/config/cmake/hdf5-config.cmake.install.in b/config/cmake/hdf5-config.cmake.install.in
index 799ff9d..c1c4498 100644
--- a/config/cmake/hdf5-config.cmake.install.in
+++ b/config/cmake/hdf5-config.cmake.install.in
@@ -1,81 +1,81 @@
-#-----------------------------------------------------------------------------
-# HDF5 Config file for compiling against hdf5 install directory
-#-----------------------------------------------------------------------------
-GET_FILENAME_COMPONENT (SELF_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
-GET_FILENAME_COMPONENT(_IMPORT_PREFIX "${SELF_DIR}" PATH)
-GET_FILENAME_COMPONENT(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
-if (NOT WIN32)
-  GET_FILENAME_COMPONENT(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
-endif (NOT WIN32)
-
-#-----------------------------------------------------------------------------
-# User Options
-#-----------------------------------------------------------------------------
-set (HDF5_ENABLE_PARALLEL @HDF5_ENABLE_PARALLEL@)
-set (HDF5_BUILD_FORTRAN   @HDF5_BUILD_FORTRAN@)
-set (HDF5_ENABLE_F2003    @HDF5_ENABLE_F2003@)
-set (HDF5_BUILD_CPP_LIB   @HDF5_BUILD_CPP_LIB@)
-set (HDF5_BUILD_TOOLS     @HDF5_BUILD_TOOLS@)
-set (HDF5_BUILD_HL_LIB    @HDF5_BUILD_HL_LIB@)
-set (HDF5_ENABLE_Z_LIB_SUPPORT @HDF5_ENABLE_Z_LIB_SUPPORT@)
-set (HDF5_ENABLE_SZIP_SUPPORT  @HDF5_ENABLE_SZIP_SUPPORT@)
-set (HDF5_ENABLE_SZIP_ENCODING @HDF5_ENABLE_SZIP_ENCODING@)
-set (HDF5_BUILD_SHARED_LIBS    @BUILD_SHARED_LIBS@)
-set (HDF5_PACKAGE_EXTLIBS      @HDF5_PACKAGE_EXTLIBS@)
-
-#-----------------------------------------------------------------------------
-# Dependencies
-#-----------------------------------------------------------------------------
-IF(HDF5_ENABLE_PARALLEL)
-  SET(HDF5_MPI_C_INCLUDE_PATH "@MPI_C_INCLUDE_PATH@")
-  SET(HDF5_MPI_C_LIBRARIES    "@MPI_C_LIBRARIES@")
-ENDIF(HDF5_ENABLE_PARALLEL)
-
-#-----------------------------------------------------------------------------
-# Directories
-#-----------------------------------------------------------------------------
-set (HDF5_INCLUDE_DIR "${_IMPORT_PREFIX}/include" "${HDF5_MPI_C_INCLUDE_PATH}" )
-
-if (HDF5_BUILD_FORTRAN)
-  set (HDF5_INCLUDE_DIR_FORTRAN "${_IMPORT_PREFIX}/include/fortran" )
-endif (HDF5_BUILD_FORTRAN)
-  
-if (HDF5_BUILD_CPP_LIB)
-  set (HDF5_INCLUDE_DIR_CPP "${_IMPORT_PREFIX}/include/cpp" )
-endif (HDF5_BUILD_CPP_LIB)
-
-if (HDF5_BUILD_HL_LIB)
-  set (HDF5_INCLUDE_DIR_HL "${_IMPORT_PREFIX}/include/hl" )
-endif (HDF5_BUILD_HL_LIB)
-
-if (HDF5_BUILD_HL_LIB AND HDF5_BUILD_CPP_LIB)
-  set (HDF5_INCLUDE_DIR_HL_CPP "${_IMPORT_PREFIX}/include/hl/cpp" )
-endif (HDF5_BUILD_HL_LIB AND HDF5_BUILD_CPP_LIB)
-
-if (HDF5_BUILD_TOOLS)
-  set (HDF5_INCLUDE_DIR_TOOLS "${_IMPORT_PREFIX}/include" )
-  set (HDF5_TOOLS_DIR "${_IMPORT_PREFIX}/bin" )
-endif (HDF5_BUILD_TOOLS)
-
-#-----------------------------------------------------------------------------
-# Version Strings
-#-----------------------------------------------------------------------------
-set (HDF5_VERSION_STRING @HDF5_VERSION_STRING@)
-set (HDF5_VERSION_MAJOR  @HDF5_VERSION_MAJOR@)
-set (HDF5_VERSION_MINOR  @HDF5_VERSION_MINOR@)
-
-#-----------------------------------------------------------------------------
-# Don't include targets if this file is being picked up by another
-# project which has already built hdf5 as a subproject
-#-----------------------------------------------------------------------------
-if (NOT TARGET "@HDF5_PACKAGE@")
-  if (HDF5_ENABLE_Z_LIB_SUPPORT AND HDF5_PACKAGE_EXTLIBS AND NOT TARGET "zlib")
-    include (${SELF_DIR}/../ZLIB/@ZLIB_PACKAGE_NAME@@HDF_PACKAGE_EXT at -targets.cmake)
-  endif (HDF5_ENABLE_Z_LIB_SUPPORT AND HDF5_PACKAGE_EXTLIBS AND NOT TARGET "zlib")
-  if (HDF5_ENABLE_SZIP_SUPPORT AND HDF5_PACKAGE_EXTLIBS AND NOT TARGET "szip")
-    include (${SELF_DIR}/../SZIP/@SZIP_PACKAGE_NAME@@HDF_PACKAGE_EXT at -targets.cmake)
-  endif (HDF5_ENABLE_SZIP_SUPPORT AND HDF5_PACKAGE_EXTLIBS AND NOT TARGET "szip")
-  include (${SELF_DIR}/@HDF5_PACKAGE@@HDF_PACKAGE_EXT at -targets.cmake)
-  set (HDF5_LIBRARIES "@HDF5_LIBRARIES_TO_EXPORT@")
-endif (NOT TARGET "@HDF5_PACKAGE@")
-
+#-----------------------------------------------------------------------------
+# HDF5 Config file for compiling against hdf5 install directory
+#-----------------------------------------------------------------------------
+GET_FILENAME_COMPONENT (SELF_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
+GET_FILENAME_COMPONENT(_IMPORT_PREFIX "${SELF_DIR}" PATH)
+GET_FILENAME_COMPONENT(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
+if (NOT WIN32)
+  GET_FILENAME_COMPONENT(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
+endif (NOT WIN32)
+
+#-----------------------------------------------------------------------------
+# User Options
+#-----------------------------------------------------------------------------
+set (HDF5_ENABLE_PARALLEL @HDF5_ENABLE_PARALLEL@)
+set (HDF5_BUILD_FORTRAN   @HDF5_BUILD_FORTRAN@)
+set (HDF5_ENABLE_F2003    @HDF5_ENABLE_F2003@)
+set (HDF5_BUILD_CPP_LIB   @HDF5_BUILD_CPP_LIB@)
+set (HDF5_BUILD_TOOLS     @HDF5_BUILD_TOOLS@)
+set (HDF5_BUILD_HL_LIB    @HDF5_BUILD_HL_LIB@)
+set (HDF5_ENABLE_Z_LIB_SUPPORT @HDF5_ENABLE_Z_LIB_SUPPORT@)
+set (HDF5_ENABLE_SZIP_SUPPORT  @HDF5_ENABLE_SZIP_SUPPORT@)
+set (HDF5_ENABLE_SZIP_ENCODING @HDF5_ENABLE_SZIP_ENCODING@)
+set (HDF5_BUILD_SHARED_LIBS    @BUILD_SHARED_LIBS@)
+set (HDF5_PACKAGE_EXTLIBS      @HDF5_PACKAGE_EXTLIBS@)
+
+#-----------------------------------------------------------------------------
+# Dependencies
+#-----------------------------------------------------------------------------
+IF(HDF5_ENABLE_PARALLEL)
+  SET(HDF5_MPI_C_INCLUDE_PATH "@MPI_C_INCLUDE_PATH@")
+  SET(HDF5_MPI_C_LIBRARIES    "@MPI_C_LIBRARIES@")
+ENDIF(HDF5_ENABLE_PARALLEL)
+
+#-----------------------------------------------------------------------------
+# Directories
+#-----------------------------------------------------------------------------
+set (HDF5_INCLUDE_DIR "${_IMPORT_PREFIX}/include" "${HDF5_MPI_C_INCLUDE_PATH}" )
+
+if (HDF5_BUILD_FORTRAN)
+  set (HDF5_INCLUDE_DIR_FORTRAN "${_IMPORT_PREFIX}/include" )
+endif (HDF5_BUILD_FORTRAN)
+  
+if (HDF5_BUILD_CPP_LIB)
+  set (HDF5_INCLUDE_DIR_CPP "${_IMPORT_PREFIX}/include" )
+endif (HDF5_BUILD_CPP_LIB)
+
+if (HDF5_BUILD_HL_LIB)
+  set (HDF5_INCLUDE_DIR_HL "${_IMPORT_PREFIX}/include" )
+endif (HDF5_BUILD_HL_LIB)
+
+if (HDF5_BUILD_HL_LIB AND HDF5_BUILD_CPP_LIB)
+  set (HDF5_INCLUDE_DIR_HL_CPP "${_IMPORT_PREFIX}/include" )
+endif (HDF5_BUILD_HL_LIB AND HDF5_BUILD_CPP_LIB)
+
+if (HDF5_BUILD_TOOLS)
+  set (HDF5_INCLUDE_DIR_TOOLS "${_IMPORT_PREFIX}/include" )
+  set (HDF5_TOOLS_DIR "${_IMPORT_PREFIX}/bin" )
+endif (HDF5_BUILD_TOOLS)
+
+#-----------------------------------------------------------------------------
+# Version Strings
+#-----------------------------------------------------------------------------
+set (HDF5_VERSION_STRING @HDF5_VERSION_STRING@)
+set (HDF5_VERSION_MAJOR  @HDF5_VERSION_MAJOR@)
+set (HDF5_VERSION_MINOR  @HDF5_VERSION_MINOR@)
+
+#-----------------------------------------------------------------------------
+# Don't include targets if this file is being picked up by another
+# project which has already built hdf5 as a subproject
+#-----------------------------------------------------------------------------
+if (NOT TARGET "@HDF5_PACKAGE@")
+  if (HDF5_ENABLE_Z_LIB_SUPPORT AND HDF5_PACKAGE_EXTLIBS AND NOT TARGET "zlib")
+    include (${SELF_DIR}/../ZLIB/@ZLIB_PACKAGE_NAME@@HDF_PACKAGE_EXT at -targets.cmake)
+  endif (HDF5_ENABLE_Z_LIB_SUPPORT AND HDF5_PACKAGE_EXTLIBS AND NOT TARGET "zlib")
+  if (HDF5_ENABLE_SZIP_SUPPORT AND HDF5_PACKAGE_EXTLIBS AND NOT TARGET "szip")
+    include (${SELF_DIR}/../SZIP/@SZIP_PACKAGE_NAME@@HDF_PACKAGE_EXT at -targets.cmake)
+  endif (HDF5_ENABLE_SZIP_SUPPORT AND HDF5_PACKAGE_EXTLIBS AND NOT TARGET "szip")
+  include (${SELF_DIR}/@HDF5_PACKAGE@@HDF_PACKAGE_EXT at -targets.cmake)
+  set (HDF5_LIBRARIES "@HDF5_LIBRARIES_TO_EXPORT@")
+endif (NOT TARGET "@HDF5_PACKAGE@")
+
diff --git a/config/cmake/libhdf5.settings.cmake.in b/config/cmake/libhdf5.settings.cmake.in
index 418a6cf..0c0befa 100644
--- a/config/cmake/libhdf5.settings.cmake.in
+++ b/config/cmake/libhdf5.settings.cmake.in
@@ -20,7 +20,7 @@ Compiling Options:
                          CFLAGS: @CMAKE_C_FLAGS@
                       H5_CFLAGS: @H5_CFLAGS@
                       AM_CFLAGS: @AM_CFLAGS@
-                       CPPFLAGS: @CMAKE_CXX_FLAGS@
+                       CPPFLAGS: @CPPFLAGS@
                     H5_CPPFLAGS: @H5_CPPFLAGS@
                     AM_CPPFLAGS: @AM_CPPFLAGS@
                Shared Libraries: @H5_ENABLE_SHARED_LIB@
diff --git a/config/cmake/mccacheinit.cmake b/config/cmake/mccacheinit.cmake
index c30d70d..0aba85a 100644
--- a/config/cmake/mccacheinit.cmake
+++ b/config/cmake/mccacheinit.cmake
@@ -1,79 +1,76 @@
-# This is the CMakeCache file.
-
-########################
-# EXTERNAL cache entries
-########################
-
-set (BUILD_SHARED_LIBS OFF CACHE BOOL "Build Shared Libraries" FORCE)
-
-set (BUILD_TESTING ON CACHE BOOL "Build HDF5 Unit Testing" FORCE)
-
-set (HDF_PACKAGE_EXT "" CACHE STRING "Name of HDF package extension" FORCE)
-
-set (HDF5_BUILD_CPP_LIB ON CACHE BOOL "Build HDF5 C++ Library" FORCE)
-
-set (HDF5_BUILD_EXAMPLES ON CACHE BOOL "Build HDF5 Library Examples" FORCE)
-
-set (HDF5_BUILD_FORTRAN ON CACHE BOOL "Build FORTRAN support" FORCE)
-
-set (HDF5_ENABLE_F2003 OFF CACHE BOOL "Enable FORTRAN 2003 Standard" FORCE)
-
-set (HDF5_BUILD_HL_LIB ON CACHE BOOL "Build HIGH Level HDF5 Library" FORCE)
-
-set (HDF5_BUILD_TOOLS ON CACHE BOOL "Build HDF5 Tools" FORCE)
-
-set (HDF5_BUILD_GENERATORS OFF CACHE BOOL "Build Test Generators" FORCE)
-
-set (HDF5_ENABLE_Z_LIB_SUPPORT ON CACHE BOOL "Enable Zlib Filters" FORCE)
-
-set (HDF5_ENABLE_SZIP_SUPPORT ON CACHE BOOL "Use SZip Filter" FORCE)
-
-set (HDF5_ENABLE_SZIP_ENCODING ON CACHE BOOL "Use SZip Encoding" FORCE)
-
-set (HDF5_ENABLE_HSIZET ON CACHE BOOL "Enable datasets larger than memory" FORCE)
-
-set (HDF5_ENABLE_UNSUPPORTED OFF CACHE BOOL "Enable unsupported combinations of configuration options" FORCE)
-
-set (HDF5_ENABLE_DEPRECATED_SYMBOLS ON CACHE BOOL "Enable deprecated public API symbols" FORCE)
-
-set (HDF5_ENABLE_DIRECT_VFD OFF CACHE BOOL "Build the Direct I/O Virtual File Driver" FORCE)
-
-set (HDF5_ENABLE_PARALLEL OFF CACHE BOOL "Enable parallel build (requires MPI)" FORCE)
-
-set (MPIEXEC_MAX_NUMPROCS "3" CACHE STRING "Minimum number of processes for HDF parallel tests" FORCE)
-
-set (HDF5_BUILD_PARALLEL_ALL OFF CACHE BOOL "Build Parallel Programs" FORCE)
-
-set (HDF5_ENABLE_COVERAGE OFF CACHE BOOL "Enable code coverage for Libraries and Programs" FORCE)
-
-set (HDF5_ENABLE_USING_MEMCHECKER ON CACHE BOOL "Indicate that a memory checker is used" FORCE)
-
-set (HDF5_DISABLE_COMPILER_WARNINGS OFF CACHE BOOL "Disable compiler warnings" FORCE)
-
-set (HDF5_USE_FOLDERS ON CACHE BOOL "Enable folder grouping of projects in IDEs." FORCE)
-
-set (HDF5_USE_16_API_DEFAULT OFF CACHE BOOL "Use the HDF5 1.6.x API by default" FORCE)
-
-set (HDF5_ENABLE_THREADSAFE OFF CACHE BOOL "(WINDOWS)Enable Threadsafety" FORCE)
-
-set (HDF5_PACKAGE_EXTLIBS OFF CACHE BOOL "(WINDOWS)CPACK - include external libraries" FORCE)
-
-set (HDF5_NO_PACKAGES ON CACHE BOOL "CPACK - Disable packaging" FORCE)
-
-set (HDF5_ALLOW_EXTERNAL_SUPPORT "NO" CACHE STRING "Allow External Library Building" FORCE)
-
-set (ZLIB_SVN_URL "http://svn.hdfgroup.uiuc.edu/zlib/trunk" CACHE STRING "Use ZLib from HDF repository" FORCE)
-
-set (SZIP_SVN_URL "http://svn.hdfgroup.uiuc.edu/szip/trunk" CACHE STRING "Use SZip from HDF repository" FORCE)
-
-set (ZLIB_TGZ_NAME "ZLib.tar.gz" CACHE STRING "Use ZLib from compressed file" FORCE)
-
-set (SZIP_TGZ_NAME "SZip.tar.gz" CACHE STRING "Use SZip from compressed file" FORCE)
-
-set (CMAKE_BUILD_TYPE "Debug" CACHE STRING "Build Debug" FORCE)
-
-set (CTEST_BUILD_CONFIGURATION "Debug" CACHE STRING "Build Debug" FORCE)
-
-set (ZLIB_PACKAGE_NAME "zlib" CACHE STRING "Name of ZLIB package" FORCE)
-
-set (SZIP_PACKAGE_NAME "szip" CACHE STRING "Name of SZIP package" FORCE)
+# This is the CMakeCache file.
+
+########################
+# EXTERNAL cache entries
+########################
+
+set (BUILD_SHARED_LIBS OFF CACHE BOOL "Build Shared Libraries" FORCE)
+
+set (BUILD_TESTING ON CACHE BOOL "Build HDF5 Unit Testing" FORCE)
+
+set (HDF_PACKAGE_EXT "" CACHE STRING "Name of HDF package extension" FORCE)
+
+set (HDF5_BUILD_CPP_LIB ON CACHE BOOL "Build HDF5 C++ Library" FORCE)
+
+set (HDF5_BUILD_EXAMPLES ON CACHE BOOL "Build HDF5 Library Examples" FORCE)
+
+set (HDF5_BUILD_FORTRAN ON CACHE BOOL "Build FORTRAN support" FORCE)
+
+set (HDF5_ENABLE_F2003 OFF CACHE BOOL "Enable FORTRAN 2003 Standard" FORCE)
+
+set (HDF5_BUILD_HL_LIB ON CACHE BOOL "Build HIGH Level HDF5 Library" FORCE)
+
+set (HDF5_BUILD_TOOLS ON CACHE BOOL "Build HDF5 Tools" FORCE)
+
+set (HDF5_BUILD_GENERATORS OFF CACHE BOOL "Build Test Generators" FORCE)
+
+set (HDF5_ENABLE_Z_LIB_SUPPORT ON CACHE BOOL "Enable Zlib Filters" FORCE)
+
+set (HDF5_ENABLE_SZIP_SUPPORT ON CACHE BOOL "Use SZip Filter" FORCE)
+
+set (HDF5_ENABLE_SZIP_ENCODING ON CACHE BOOL "Use SZip Encoding" FORCE)
+
+set (HDF5_ENABLE_HSIZET ON CACHE BOOL "Enable datasets larger than memory" FORCE)
+
+set (HDF5_ENABLE_UNSUPPORTED OFF CACHE BOOL "Enable unsupported combinations of configuration options" FORCE)
+
+set (HDF5_ENABLE_DEPRECATED_SYMBOLS ON CACHE BOOL "Enable deprecated public API symbols" FORCE)
+
+set (HDF5_ENABLE_DIRECT_VFD OFF CACHE BOOL "Build the Direct I/O Virtual File Driver" FORCE)
+
+set (HDF5_ENABLE_PARALLEL OFF CACHE BOOL "Enable parallel build (requires MPI)" FORCE)
+
+set (MPIEXEC_MAX_NUMPROCS "3" CACHE STRING "Minimum number of processes for HDF parallel tests" FORCE)
+
+set (HDF5_BUILD_PARALLEL_ALL OFF CACHE BOOL "Build Parallel Programs" FORCE)
+
+set (HDF5_ENABLE_COVERAGE OFF CACHE BOOL "Enable code coverage for Libraries and Programs" FORCE)
+
+set (HDF5_ENABLE_USING_MEMCHECKER ON CACHE BOOL "Indicate that a memory checker is used" FORCE)
+
+set (HDF5_DISABLE_COMPILER_WARNINGS OFF CACHE BOOL "Disable compiler warnings" FORCE)
+
+set (HDF5_USE_FOLDERS ON CACHE BOOL "Enable folder grouping of projects in IDEs." FORCE)
+
+set (HDF5_USE_16_API_DEFAULT OFF CACHE BOOL "Use the HDF5 1.6.x API by default" FORCE)
+
+set (HDF5_ENABLE_THREADSAFE OFF CACHE BOOL "(WINDOWS)Enable Threadsafety" FORCE)
+
+set (HDF5_PACKAGE_EXTLIBS OFF CACHE BOOL "(WINDOWS)CPACK - include external libraries" FORCE)
+
+set (HDF5_NO_PACKAGES ON CACHE BOOL "CPACK - Disable packaging" FORCE)
+
+set (HDF5_ALLOW_EXTERNAL_SUPPORT "NO" CACHE STRING "Allow External Library Building (NO SVN TGZ)" FORCE)
+set_property (CACHE HDF5_ALLOW_EXTERNAL_SUPPORT PROPERTY STRINGS NO SVN TGZ)
+
+set (ZLIB_TGZ_NAME "ZLib.tar.gz" CACHE STRING "Use ZLib from compressed file" FORCE)
+
+set (SZIP_TGZ_NAME "SZip.tar.gz" CACHE STRING "Use SZip from compressed file" FORCE)
+
+set (CMAKE_BUILD_TYPE "Debug" CACHE STRING "Build Debug" FORCE)
+
+set (CTEST_BUILD_CONFIGURATION "Debug" CACHE STRING "Build Debug" FORCE)
+
+set (ZLIB_PACKAGE_NAME "zlib" CACHE STRING "Name of ZLIB package" FORCE)
+
+set (SZIP_PACKAGE_NAME "szip" CACHE STRING "Name of SZIP package" FORCE)
diff --git a/config/cmake/CPack.Info.plist.in b/config/cmake_ext_mod/CPack.Info.plist.in
similarity index 100%
rename from config/cmake/CPack.Info.plist.in
rename to config/cmake_ext_mod/CPack.Info.plist.in
diff --git a/config/cmake_ext_mod/CTestCustom.cmake b/config/cmake_ext_mod/CTestCustom.cmake
new file mode 100644
index 0000000..025bce4
--- /dev/null
+++ b/config/cmake_ext_mod/CTestCustom.cmake
@@ -0,0 +1,16 @@
+set (CTEST_CUSTOM_MAXIMUM_NUMBER_OF_WARNINGS 3000)
+ 
+set (CTEST_CUSTOM_WARNING_EXCEPTION
+    ${CTEST_CUSTOM_WARNING_EXCEPTION}
+    "note.*expected.*void.*but argument is of type.*volatile"
+    "SZIP.src.*:[ \t]*warning"
+    "jpeg.src.*:[ \t]*warning"
+    "POSIX name for this item is deprecated"
+    "disabling jobserver mode"
+    "warning.*implicit declaration of function"
+    "note: expanded from macro"
+)
+ 
+set (CTEST_CUSTOM_MEMCHECK_IGNORE
+    ${CTEST_CUSTOM_MEMCHECK_IGNORE}
+)
diff --git a/config/cmake/CheckTypeSize.cmake b/config/cmake_ext_mod/CheckTypeSize.cmake
similarity index 86%
rename from config/cmake/CheckTypeSize.cmake
rename to config/cmake_ext_mod/CheckTypeSize.cmake
index 4af5741..5095a27 100644
--- a/config/cmake/CheckTypeSize.cmake
+++ b/config/cmake_ext_mod/CheckTypeSize.cmake
@@ -16,7 +16,7 @@ MACRO (HDF_CHECK_TYPE_SIZE TYPE VARIABLE)
     foreach (def HAVE_SYS_TYPES_H HAVE_STDINT_H HAVE_STDDEF_H HAVE_INTTYPES_H)
       if ("${def}")
         set (MACRO_CHECK_TYPE_SIZE_FLAGS "${MACRO_CHECK_TYPE_SIZE_FLAGS} -D${def}")
-      ENDIF("${def}")
+      endif ("${def}")
     endforeach (def)
 
     message (STATUS "Check size of ${TYPE}")
@@ -25,21 +25,23 @@ MACRO (HDF_CHECK_TYPE_SIZE TYPE VARIABLE)
           "-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}"
       )
     endif (CMAKE_REQUIRED_LIBRARIES)
-    TRY_RUN (${VARIABLE} HAVE_${VARIABLE}
+    try_run (${VARIABLE} HAVE_${VARIABLE}
         ${CMAKE_BINARY_DIR}
-        ${HDF5_RESOURCES_DIR}/CheckTypeSize.c
+        ${HDF_RESOURCES_EXT_DIR}/CheckTypeSize.c
         CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_TYPE_SIZE_FLAGS}
         "${CHECK_TYPE_SIZE_ADD_LIBRARIES}"
         OUTPUT_VARIABLE OUTPUT
     )
     if (HAVE_${VARIABLE})
       message (STATUS "Check size of ${TYPE} - done")
-      file (APPEND ${CMAKE_BINARY_DIR}/CMakeFiles/CMakeOutput.log 
+      file (APPEND
+          ${CMAKE_BINARY_DIR}/CMakeFiles/CMakeOutput.log 
           "Determining size of ${TYPE} passed with the following output:\n${OUTPUT}\n\n"
       )
     else (HAVE_${VARIABLE})
       message (STATUS "Check size of ${TYPE} - failed")
-      file (APPEND ${CMAKE_BINARY_DIR}/CMakeFiles/CMakeError.log 
+      file (APPEND
+          ${CMAKE_BINARY_DIR}/CMakeFiles/CMakeError.log 
           "Determining size of ${TYPE} failed with the following output:\n${OUTPUT}\n\n"
       )
     endif (HAVE_${VARIABLE})
diff --git a/config/cmake_ext_mod/ConfigureChecks.cmake b/config/cmake_ext_mod/ConfigureChecks.cmake
new file mode 100644
index 0000000..a402736
--- /dev/null
+++ b/config/cmake_ext_mod/ConfigureChecks.cmake
@@ -0,0 +1,751 @@
+#-----------------------------------------------------------------------------
+# Include all the necessary files for macros
+#-----------------------------------------------------------------------------
+include (${CMAKE_ROOT}/Modules/CheckFunctionExists.cmake)
+include (${CMAKE_ROOT}/Modules/CheckIncludeFile.cmake)
+include (${CMAKE_ROOT}/Modules/CheckIncludeFileCXX.cmake)
+include (${CMAKE_ROOT}/Modules/CheckIncludeFiles.cmake)
+include (${CMAKE_ROOT}/Modules/CheckLibraryExists.cmake)
+include (${CMAKE_ROOT}/Modules/CheckSymbolExists.cmake)
+include (${CMAKE_ROOT}/Modules/CheckTypeSize.cmake)
+include (${CMAKE_ROOT}/Modules/CheckVariableExists.cmake)
+include (${CMAKE_ROOT}/Modules/CheckFortranFunctionExists.cmake)
+include (${CMAKE_ROOT}/Modules/TestBigEndian.cmake)
+include (${CMAKE_ROOT}/Modules/TestForSTDNamespace.cmake)
+
+#-----------------------------------------------------------------------------
+# APPLE/Darwin setup
+#-----------------------------------------------------------------------------
+if (APPLE)
+  list (LENGTH CMAKE_OSX_ARCHITECTURES ARCH_LENGTH)
+  if (ARCH_LENGTH GREATER 1)
+    set (CMAKE_OSX_ARCHITECTURES "" CACHE STRING "" FORCE)
+    message(FATAL_ERROR "Building Universal Binaries on OS X is NOT supported by the HDF5 project. This is"
+    "due to technical reasons. The best approach would be build each architecture in separate directories"
+    "and use the 'lipo' tool to combine them into a single executable or library. The 'CMAKE_OSX_ARCHITECTURES'"
+    "variable has been set to a blank value which will build the default architecture for this system.")
+  endif ()
+  set (${HDF_PREFIX}_AC_APPLE_UNIVERSAL_BUILD 0)
+endif (APPLE)
+
+# Check for Darwin (not just Apple - we also want to catch OpenDarwin)
+if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") 
+    set (${HDF_PREFIX}_HAVE_DARWIN 1) 
+endif (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
+
+# Check for Solaris
+if (${CMAKE_SYSTEM_NAME} MATCHES "SunOS") 
+    set (${HDF_PREFIX}_HAVE_SOLARIS 1) 
+endif (${CMAKE_SYSTEM_NAME} MATCHES "SunOS")
+
+#-----------------------------------------------------------------------------
+# This MACRO checks IF the symbol exists in the library and IF it
+# does, it appends library to the list.
+#-----------------------------------------------------------------------------
+set (LINK_LIBS "")
+MACRO (CHECK_LIBRARY_EXISTS_CONCAT LIBRARY SYMBOL VARIABLE)
+  CHECK_LIBRARY_EXISTS ("${LIBRARY};${LINK_LIBS}" ${SYMBOL} "" ${VARIABLE})
+  if (${VARIABLE})
+    set (LINK_LIBS ${LINK_LIBS} ${LIBRARY})
+  endif (${VARIABLE})
+ENDMACRO (CHECK_LIBRARY_EXISTS_CONCAT)
+
+# ----------------------------------------------------------------------
+# WINDOWS Hard code Values
+# ----------------------------------------------------------------------
+
+set (WINDOWS)
+if (WIN32)
+  if (MINGW)
+    set (${HDF_PREFIX}_HAVE_MINGW 1)
+    set (WINDOWS 1) # MinGW tries to imitate Windows
+    set (CMAKE_REQUIRED_FLAGS "-DWIN32_LEAN_AND_MEAN=1 -DNOGDI=1")
+  endif (MINGW)
+  set (${HDF_PREFIX}_HAVE_WIN32_API 1)
+  set (CMAKE_REQUIRED_LIBRARIES "ws2_32.lib;wsock32.lib")
+  if (NOT UNIX AND NOT MINGW)
+    set (WINDOWS 1)
+    set (CMAKE_REQUIRED_FLAGS "/DWIN32_LEAN_AND_MEAN=1 /DNOGDI=1")
+    if (MSVC)
+      set (${HDF_PREFIX}_HAVE_VISUAL_STUDIO 1)
+    endif (MSVC)
+  endif (NOT UNIX AND NOT MINGW)
+endif (WIN32)
+
+if (WINDOWS)
+  set (${HDF_PREFIX}_HAVE_STDDEF_H 1)
+  set (${HDF_PREFIX}_HAVE_SYS_STAT_H 1)
+  set (${HDF_PREFIX}_HAVE_SYS_TYPES_H 1)
+  set (${HDF_PREFIX}_HAVE_LIBM 1)
+  set (${HDF_PREFIX}_HAVE_STRDUP 1)
+  set (${HDF_PREFIX}_HAVE_SYSTEM 1)
+  set (${HDF_PREFIX}_HAVE_LONGJMP 1)
+  if (NOT MINGW)
+    set (${HDF_PREFIX}_HAVE_GETHOSTNAME 1)
+  endif (NOT MINGW)
+  if (NOT UNIX AND NOT CYGWIN AND NOT MINGW)
+    set (${HDF_PREFIX}_HAVE_GETCONSOLESCREENBUFFERINFO 1)
+  endif (NOT UNIX AND NOT CYGWIN AND NOT MINGW)
+  set (${HDF_PREFIX}_HAVE_FUNCTION 1)
+  set (${HDF_PREFIX}_GETTIMEOFDAY_GIVES_TZ 1)
+  set (${HDF_PREFIX}_HAVE_TIMEZONE 1)
+  set (${HDF_PREFIX}_HAVE_GETTIMEOFDAY 1)
+  set (${HDF_PREFIX}_LONE_COLON 0)
+  if (MINGW)
+    set (${HDF_PREFIX}_HAVE_WINSOCK2_H 1)
+  endif (MINGW)
+  set (${HDF_PREFIX}_HAVE_LIBWS2_32 1)
+  set (${HDF_PREFIX}_HAVE_LIBWSOCK32 1)
+endif (WINDOWS)
+
+# ----------------------------------------------------------------------
+# END of WINDOWS Hard code Values
+# ----------------------------------------------------------------------
+
+if (CYGWIN)
+  set (${HDF_PREFIX}_HAVE_LSEEK64 0)
+endif (CYGWIN)
+
+#-----------------------------------------------------------------------------
+#  Check for the math library "m"
+#-----------------------------------------------------------------------------
+if (NOT WINDOWS)
+  CHECK_LIBRARY_EXISTS_CONCAT ("m" ceil     ${HDF_PREFIX}_HAVE_LIBM)
+  CHECK_LIBRARY_EXISTS_CONCAT ("dl" dlopen     ${HDF_PREFIX}_HAVE_LIBDL)
+  CHECK_LIBRARY_EXISTS_CONCAT ("ws2_32" WSAStartup  ${HDF_PREFIX}_HAVE_LIBWS2_32)
+  CHECK_LIBRARY_EXISTS_CONCAT ("wsock32" gethostbyname ${HDF_PREFIX}_HAVE_LIBWSOCK32)
+endif (NOT WINDOWS)
+
+CHECK_LIBRARY_EXISTS_CONCAT ("ucb"    gethostname  ${HDF_PREFIX}_HAVE_LIBUCB)
+CHECK_LIBRARY_EXISTS_CONCAT ("socket" connect      ${HDF_PREFIX}_HAVE_LIBSOCKET)
+CHECK_LIBRARY_EXISTS ("c" gethostbyname "" NOT_NEED_LIBNSL)
+
+if (NOT NOT_NEED_LIBNSL)
+  CHECK_LIBRARY_EXISTS_CONCAT ("nsl"    gethostbyname  ${HDF_PREFIX}_HAVE_LIBNSL)
+endif (NOT NOT_NEED_LIBNSL)
+
+# For other tests to use the same libraries
+set (CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${LINK_LIBS})
+
+set (USE_INCLUDES "")
+if (WINDOWS)
+  set (USE_INCLUDES ${USE_INCLUDES} "windows.h")
+endif (WINDOWS)
+
+if (NOT WINDOWS)
+  TEST_BIG_ENDIAN (${HDF_PREFIX}_WORDS_BIGENDIAN)
+endif (NOT WINDOWS)
+
+# For other specific tests, use this MACRO.
+MACRO (HDF_FUNCTION_TEST OTHER_TEST)
+  if ("${HDF_PREFIX}_${OTHER_TEST}" MATCHES "^${HDF_PREFIX}_${OTHER_TEST}$")
+    set (MACRO_CHECK_FUNCTION_DEFINITIONS "-D${OTHER_TEST} ${CMAKE_REQUIRED_FLAGS}")
+    set (OTHER_TEST_ADD_LIBRARIES)
+    if (CMAKE_REQUIRED_LIBRARIES)
+      set (OTHER_TEST_ADD_LIBRARIES "-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}")
+    endif (CMAKE_REQUIRED_LIBRARIES)
+
+    foreach (def ${HDF_EXTRA_TEST_DEFINITIONS})
+      set (MACRO_CHECK_FUNCTION_DEFINITIONS "${MACRO_CHECK_FUNCTION_DEFINITIONS} -D${def}=${${def}}")
+    endforeach (def)
+
+    foreach (def
+        HAVE_SYS_TIME_H
+        HAVE_UNISTD_H
+        HAVE_SYS_TYPES_H
+        HAVE_SYS_SOCKET_H
+    )
+      if ("${${HDF_PREFIX}_${def}}")
+        set (MACRO_CHECK_FUNCTION_DEFINITIONS "${MACRO_CHECK_FUNCTION_DEFINITIONS} -D${def}")
+      endif ("${${HDF_PREFIX}_${def}}")
+    endforeach (def)
+
+    if (LARGEFILE)
+      set (MACRO_CHECK_FUNCTION_DEFINITIONS
+          "${MACRO_CHECK_FUNCTION_DEFINITIONS} -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE"
+      )
+    endif (LARGEFILE)
+
+    #message (STATUS "Performing ${OTHER_TEST}")
+    TRY_COMPILE (${OTHER_TEST}
+        ${CMAKE_BINARY_DIR}
+        ${HDF_RESOURCES_EXT_DIR}/HDFTests.c
+        CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS}
+        "${OTHER_TEST_ADD_LIBRARIES}"
+        OUTPUT_VARIABLE OUTPUT
+    )
+    if (${OTHER_TEST})
+      set (${HDF_PREFIX}_${OTHER_TEST} 1 CACHE INTERNAL "Other test ${FUNCTION}")
+      message (STATUS "Performing Other Test ${OTHER_TEST} - Success")
+    else (${OTHER_TEST})
+      message (STATUS "Performing Other Test ${OTHER_TEST} - Failed")
+      set (${HDF_PREFIX}_${OTHER_TEST} "" CACHE INTERNAL "Other test ${FUNCTION}")
+      file (APPEND ${CMAKE_BINARY_DIR}/CMakeFiles/CMakeError.log
+          "Performing Other Test ${OTHER_TEST} failed with the following output:\n"
+          "${OUTPUT}\n"
+      )
+    endif (${OTHER_TEST})
+  endif ("${HDF_PREFIX}_${OTHER_TEST}" MATCHES "^${HDF_PREFIX}_${OTHER_TEST}$")
+ENDMACRO (HDF_FUNCTION_TEST)
+
+#-----------------------------------------------------------------------------
+# Check for these functions before the time headers are checked
+#-----------------------------------------------------------------------------
+HDF_FUNCTION_TEST (STDC_HEADERS)
+
+#-----------------------------------------------------------------------------
+# Check IF header file exists and add it to the list.
+#-----------------------------------------------------------------------------
+MACRO (CHECK_INCLUDE_FILE_CONCAT FILE VARIABLE)
+  CHECK_INCLUDE_FILES ("${USE_INCLUDES};${FILE}" ${VARIABLE})
+  if (${VARIABLE})
+    set (USE_INCLUDES ${USE_INCLUDES} ${FILE})
+  endif (${VARIABLE})
+ENDMACRO (CHECK_INCLUDE_FILE_CONCAT)
+
+#-----------------------------------------------------------------------------
+#  Check for the existence of certain header files
+#-----------------------------------------------------------------------------
+CHECK_INCLUDE_FILE_CONCAT ("sys/resource.h"  ${HDF_PREFIX}_HAVE_SYS_RESOURCE_H)
+CHECK_INCLUDE_FILE_CONCAT ("sys/time.h"      ${HDF_PREFIX}_HAVE_SYS_TIME_H)
+CHECK_INCLUDE_FILE_CONCAT ("unistd.h"        ${HDF_PREFIX}_HAVE_UNISTD_H)
+CHECK_INCLUDE_FILE_CONCAT ("sys/ioctl.h"     ${HDF_PREFIX}_HAVE_SYS_IOCTL_H)
+CHECK_INCLUDE_FILE_CONCAT ("sys/stat.h"      ${HDF_PREFIX}_HAVE_SYS_STAT_H)
+CHECK_INCLUDE_FILE_CONCAT ("sys/socket.h"    ${HDF_PREFIX}_HAVE_SYS_SOCKET_H)
+CHECK_INCLUDE_FILE_CONCAT ("sys/types.h"     ${HDF_PREFIX}_HAVE_SYS_TYPES_H)
+CHECK_INCLUDE_FILE_CONCAT ("stddef.h"        ${HDF_PREFIX}_HAVE_STDDEF_H)
+CHECK_INCLUDE_FILE_CONCAT ("setjmp.h"        ${HDF_PREFIX}_HAVE_SETJMP_H)
+CHECK_INCLUDE_FILE_CONCAT ("features.h"      ${HDF_PREFIX}_HAVE_FEATURES_H)
+CHECK_INCLUDE_FILE_CONCAT ("dirent.h"        ${HDF_PREFIX}_HAVE_DIRENT_H)
+CHECK_INCLUDE_FILE_CONCAT ("stdint.h"        ${HDF_PREFIX}_HAVE_STDINT_H)
+
+# IF the c compiler found stdint, check the C++ as well. On some systems this
+# file will be found by C but not C++, only do this test IF the C++ compiler
+# has been initialized (e.g. the project also includes some c++)
+if (${HDF_PREFIX}_HAVE_STDINT_H AND CMAKE_CXX_COMPILER_LOADED)
+  CHECK_INCLUDE_FILE_CXX ("stdint.h" ${HDF_PREFIX}_HAVE_STDINT_H_CXX)
+  if (NOT ${HDF_PREFIX}_HAVE_STDINT_H_CXX)
+    set (${HDF_PREFIX}_HAVE_STDINT_H "" CACHE INTERNAL "Have includes HAVE_STDINT_H")
+    set (USE_INCLUDES ${USE_INCLUDES} "stdint.h")
+  endif (NOT ${HDF_PREFIX}_HAVE_STDINT_H_CXX)
+endif (${HDF_PREFIX}_HAVE_STDINT_H AND CMAKE_CXX_COMPILER_LOADED)
+
+# Darwin
+CHECK_INCLUDE_FILE_CONCAT ("mach/mach_time.h" ${HDF_PREFIX}_HAVE_MACH_MACH_TIME_H)
+
+# Windows
+CHECK_INCLUDE_FILE_CONCAT ("io.h"            ${HDF_PREFIX}_HAVE_IO_H)
+if (NOT CYGWIN)
+  CHECK_INCLUDE_FILE_CONCAT ("winsock2.h"      ${HDF_PREFIX}_HAVE_WINSOCK2_H)
+endif (NOT CYGWIN)
+CHECK_INCLUDE_FILE_CONCAT ("sys/timeb.h"     ${HDF_PREFIX}_HAVE_SYS_TIMEB_H)
+
+if (CMAKE_SYSTEM_NAME MATCHES "OSF")
+  CHECK_INCLUDE_FILE_CONCAT ("sys/sysinfo.h" ${HDF_PREFIX}_HAVE_SYS_SYSINFO_H)
+  CHECK_INCLUDE_FILE_CONCAT ("sys/proc.h"    ${HDF_PREFIX}_HAVE_SYS_PROC_H)
+else (CMAKE_SYSTEM_NAME MATCHES "OSF")
+  set (${HDF_PREFIX}_HAVE_SYS_SYSINFO_H "" CACHE INTERNAL "" FORCE)
+  set (${HDF_PREFIX}_HAVE_SYS_PROC_H    "" CACHE INTERNAL "" FORCE)
+endif (CMAKE_SYSTEM_NAME MATCHES "OSF")
+
+CHECK_INCLUDE_FILE_CONCAT ("globus/common.h" ${HDF_PREFIX}_HAVE_GLOBUS_COMMON_H)
+CHECK_INCLUDE_FILE_CONCAT ("pdb.h"           ${HDF_PREFIX}_HAVE_PDB_H)
+CHECK_INCLUDE_FILE_CONCAT ("pthread.h"       ${HDF_PREFIX}_HAVE_PTHREAD_H)
+CHECK_INCLUDE_FILE_CONCAT ("srbclient.h"     ${HDF_PREFIX}_HAVE_SRBCLIENT_H)
+CHECK_INCLUDE_FILE_CONCAT ("string.h"        ${HDF_PREFIX}_HAVE_STRING_H)
+CHECK_INCLUDE_FILE_CONCAT ("strings.h"       ${HDF_PREFIX}_HAVE_STRINGS_H)
+CHECK_INCLUDE_FILE_CONCAT ("time.h"          ${HDF_PREFIX}_HAVE_TIME_H)
+CHECK_INCLUDE_FILE_CONCAT ("stdlib.h"        ${HDF_PREFIX}_HAVE_STDLIB_H)
+CHECK_INCLUDE_FILE_CONCAT ("memory.h"        ${HDF_PREFIX}_HAVE_MEMORY_H)
+CHECK_INCLUDE_FILE_CONCAT ("dlfcn.h"         ${HDF_PREFIX}_HAVE_DLFCN_H)
+CHECK_INCLUDE_FILE_CONCAT ("inttypes.h"      ${HDF_PREFIX}_HAVE_INTTYPES_H)
+CHECK_INCLUDE_FILE_CONCAT ("netinet/in.h"    ${HDF_PREFIX}_HAVE_NETINET_IN_H)
+
+#-----------------------------------------------------------------------------
+#  Check for large file support
+#-----------------------------------------------------------------------------
+
+# The linux-lfs option is deprecated.
+set (LINUX_LFS 0)
+
+set (HDF_EXTRA_C_FLAGS)
+set (HDF_EXTRA_FLAGS)
+if (NOT WINDOWS)
+  if (NOT ${HDF_PREFIX}_HAVE_SOLARIS)
+  # Linux Specific flags
+  # This was originally defined as _POSIX_SOURCE which was updated to
+  # _POSIX_C_SOURCE=199506L to expose a greater amount of POSIX
+  # functionality so clock_gettime and CLOCK_MONOTONIC are defined
+  # correctly.
+  # POSIX feature information can be found in the gcc manual at:
+  # http://www.gnu.org/s/libc/manual/html_node/Feature-Test-Macros.html
+  set (HDF_EXTRA_C_FLAGS -D_POSIX_C_SOURCE=199506L)
+  set (HDF_EXTRA_FLAGS -D_BSD_SOURCE)
+  
+  option (HDF_ENABLE_LARGE_FILE "Enable support for large (64-bit) files on Linux." ON)
+  if (HDF_ENABLE_LARGE_FILE)
+    set (msg "Performing TEST_LFS_WORKS")
+    TRY_RUN (TEST_LFS_WORKS_RUN   TEST_LFS_WORKS_COMPILE
+        ${CMAKE_BINARY_DIR}
+        ${HDF_RESOURCES_EXT_DIR}/HDFTests.c
+        CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=-DTEST_LFS_WORKS
+        OUTPUT_VARIABLE OUTPUT
+    )
+    if (TEST_LFS_WORKS_COMPILE)
+      if (TEST_LFS_WORKS_RUN  MATCHES 0)
+        set (TEST_LFS_WORKS 1 CACHE INTERNAL ${msg})
+        set (LARGEFILE 1)
+        set (HDF_EXTRA_FLAGS ${HDF_EXTRA_FLAGS} -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE)
+        message (STATUS "${msg}... yes")
+      else (TEST_LFS_WORKS_RUN  MATCHES 0)
+        set (TEST_LFS_WORKS "" CACHE INTERNAL ${msg})
+        message (STATUS "${msg}... no")
+        file (APPEND ${CMAKE_BINARY_DIR}/CMakeFiles/CMakeError.log
+              "Test TEST_LFS_WORKS Run failed with the following output and exit code:\n ${OUTPUT}\n"
+        )
+      endif (TEST_LFS_WORKS_RUN  MATCHES 0)
+    else (TEST_LFS_WORKS_COMPILE )
+      set (TEST_LFS_WORKS "" CACHE INTERNAL ${msg})
+      message (STATUS "${msg}... no")
+      file (APPEND ${CMAKE_BINARY_DIR}/CMakeFiles/CMakeError.log
+          "Test TEST_LFS_WORKS Compile failed with the following output:\n ${OUTPUT}\n"
+      )
+    endif (TEST_LFS_WORKS_COMPILE)
+  endif (HDF_ENABLE_LARGE_FILE)
+  set (CMAKE_REQUIRED_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS} ${HDF_EXTRA_FLAGS})
+  endif (NOT ${HDF_PREFIX}_HAVE_SOLARIS)
+endif (NOT WINDOWS)
+
+add_definitions (${HDF_EXTRA_FLAGS})
+
+#-----------------------------------------------------------------------------
+# Check for HAVE_OFF64_T functionality
+#-----------------------------------------------------------------------------
+if (NOT WINDOWS OR MINGW)
+  HDF_FUNCTION_TEST (HAVE_OFF64_T)
+  if (${HDF_PREFIX}_HAVE_OFF64_T)
+    CHECK_FUNCTION_EXISTS (lseek64            ${HDF_PREFIX}_HAVE_LSEEK64)
+    CHECK_FUNCTION_EXISTS (fseeko64           ${HDF_PREFIX}_HAVE_FSEEKO64)
+    CHECK_FUNCTION_EXISTS (ftello64           ${HDF_PREFIX}_HAVE_FTELLO64)
+    CHECK_FUNCTION_EXISTS (ftruncate64        ${HDF_PREFIX}_HAVE_FTRUNCATE64)
+  endif (${HDF_PREFIX}_HAVE_OFF64_T)
+
+  CHECK_FUNCTION_EXISTS (fseeko               ${HDF_PREFIX}_HAVE_FSEEKO)
+  CHECK_FUNCTION_EXISTS (ftello               ${HDF_PREFIX}_HAVE_FTELLO)
+
+  HDF_FUNCTION_TEST (HAVE_STAT64_STRUCT)
+  if (HAVE_STAT64_STRUCT)
+    CHECK_FUNCTION_EXISTS (fstat64            ${HDF_PREFIX}_HAVE_FSTAT64)
+    CHECK_FUNCTION_EXISTS (stat64             ${HDF_PREFIX}_HAVE_STAT64)
+  endif (HAVE_STAT64_STRUCT)
+endif (NOT WINDOWS OR MINGW)
+
+#-----------------------------------------------------------------------------
+#  Check the size in bytes of all the int and float types
+#-----------------------------------------------------------------------------
+MACRO (HDF_CHECK_TYPE_SIZE type var)
+  set (aType ${type})
+  set (aVar  ${var})
+#  message (STATUS "Checking size of ${aType} and storing into ${aVar}")
+  CHECK_TYPE_SIZE (${aType}   ${aVar})
+  if (NOT ${aVar})
+    set (${aVar} 0 CACHE INTERNAL "SizeOf for ${aType}")
+#    message (STATUS "Size of ${aType} was NOT Found")
+  endif (NOT ${aVar})
+ENDMACRO (HDF_CHECK_TYPE_SIZE)
+
+HDF_CHECK_TYPE_SIZE (char           ${HDF_PREFIX}_SIZEOF_CHAR)
+HDF_CHECK_TYPE_SIZE (short          ${HDF_PREFIX}_SIZEOF_SHORT)
+HDF_CHECK_TYPE_SIZE (int            ${HDF_PREFIX}_SIZEOF_INT)
+HDF_CHECK_TYPE_SIZE (unsigned       ${HDF_PREFIX}_SIZEOF_UNSIGNED)
+if (NOT APPLE)
+  HDF_CHECK_TYPE_SIZE (long         ${HDF_PREFIX}_SIZEOF_LONG)
+endif (NOT APPLE)
+HDF_CHECK_TYPE_SIZE ("long long"    ${HDF_PREFIX}_SIZEOF_LONG_LONG)
+HDF_CHECK_TYPE_SIZE (__int64        ${HDF_PREFIX}_SIZEOF___INT64)
+if (NOT ${HDF_PREFIX}_SIZEOF___INT64)
+  set (${HDF_PREFIX}_SIZEOF___INT64 0)
+endif (NOT ${HDF_PREFIX}_SIZEOF___INT64)
+
+HDF_CHECK_TYPE_SIZE (float          ${HDF_PREFIX}_SIZEOF_FLOAT)
+HDF_CHECK_TYPE_SIZE (double         ${HDF_PREFIX}_SIZEOF_DOUBLE)
+HDF_CHECK_TYPE_SIZE ("long double"  ${HDF_PREFIX}_SIZEOF_LONG_DOUBLE)
+
+HDF_CHECK_TYPE_SIZE (int8_t         ${HDF_PREFIX}_SIZEOF_INT8_T)
+HDF_CHECK_TYPE_SIZE (uint8_t        ${HDF_PREFIX}_SIZEOF_UINT8_T)
+HDF_CHECK_TYPE_SIZE (int_least8_t   ${HDF_PREFIX}_SIZEOF_INT_LEAST8_T)
+HDF_CHECK_TYPE_SIZE (uint_least8_t  ${HDF_PREFIX}_SIZEOF_UINT_LEAST8_T)
+HDF_CHECK_TYPE_SIZE (int_fast8_t    ${HDF_PREFIX}_SIZEOF_INT_FAST8_T)
+HDF_CHECK_TYPE_SIZE (uint_fast8_t   ${HDF_PREFIX}_SIZEOF_UINT_FAST8_T)
+
+HDF_CHECK_TYPE_SIZE (int16_t        ${HDF_PREFIX}_SIZEOF_INT16_T)
+HDF_CHECK_TYPE_SIZE (uint16_t       ${HDF_PREFIX}_SIZEOF_UINT16_T)
+HDF_CHECK_TYPE_SIZE (int_least16_t  ${HDF_PREFIX}_SIZEOF_INT_LEAST16_T)
+HDF_CHECK_TYPE_SIZE (uint_least16_t ${HDF_PREFIX}_SIZEOF_UINT_LEAST16_T)
+HDF_CHECK_TYPE_SIZE (int_fast16_t   ${HDF_PREFIX}_SIZEOF_INT_FAST16_T)
+HDF_CHECK_TYPE_SIZE (uint_fast16_t  ${HDF_PREFIX}_SIZEOF_UINT_FAST16_T)
+
+HDF_CHECK_TYPE_SIZE (int32_t        ${HDF_PREFIX}_SIZEOF_INT32_T)
+HDF_CHECK_TYPE_SIZE (uint32_t       ${HDF_PREFIX}_SIZEOF_UINT32_T)
+HDF_CHECK_TYPE_SIZE (int_least32_t  ${HDF_PREFIX}_SIZEOF_INT_LEAST32_T)
+HDF_CHECK_TYPE_SIZE (uint_least32_t ${HDF_PREFIX}_SIZEOF_UINT_LEAST32_T)
+HDF_CHECK_TYPE_SIZE (int_fast32_t   ${HDF_PREFIX}_SIZEOF_INT_FAST32_T)
+HDF_CHECK_TYPE_SIZE (uint_fast32_t  ${HDF_PREFIX}_SIZEOF_UINT_FAST32_T)
+
+HDF_CHECK_TYPE_SIZE (int64_t        ${HDF_PREFIX}_SIZEOF_INT64_T)
+HDF_CHECK_TYPE_SIZE (uint64_t       ${HDF_PREFIX}_SIZEOF_UINT64_T)
+HDF_CHECK_TYPE_SIZE (int_least64_t  ${HDF_PREFIX}_SIZEOF_INT_LEAST64_T)
+HDF_CHECK_TYPE_SIZE (uint_least64_t ${HDF_PREFIX}_SIZEOF_UINT_LEAST64_T)
+HDF_CHECK_TYPE_SIZE (int_fast64_t   ${HDF_PREFIX}_SIZEOF_INT_FAST64_T)
+HDF_CHECK_TYPE_SIZE (uint_fast64_t  ${HDF_PREFIX}_SIZEOF_UINT_FAST64_T)
+
+if (NOT APPLE)
+  HDF_CHECK_TYPE_SIZE (size_t       ${HDF_PREFIX}_SIZEOF_SIZE_T)
+  HDF_CHECK_TYPE_SIZE (ssize_t      ${HDF_PREFIX}_SIZEOF_SSIZE_T)
+  if (NOT ${HDF_PREFIX}_SIZEOF_SSIZE_T)
+    set (${HDF_PREFIX}_SIZEOF_SSIZE_T 0)
+  endif (NOT ${HDF_PREFIX}_SIZEOF_SSIZE_T)
+  if (NOT WINDOWS)
+    HDF_CHECK_TYPE_SIZE (ptrdiff_t    ${HDF_PREFIX}_SIZEOF_PTRDIFF_T)
+  endif (NOT WINDOWS)
+endif (NOT APPLE)
+
+HDF_CHECK_TYPE_SIZE (off_t          ${HDF_PREFIX}_SIZEOF_OFF_T)
+HDF_CHECK_TYPE_SIZE (off64_t        ${HDF_PREFIX}_SIZEOF_OFF64_T)
+if (NOT ${HDF_PREFIX}_SIZEOF_OFF64_T)
+  set (${HDF_PREFIX}_SIZEOF_OFF64_T 0)
+endif (NOT ${HDF_PREFIX}_SIZEOF_OFF64_T)
+
+if (NOT WINDOWS)
+  #-----------------------------------------------------------------------------
+  # Check if the dev_t type is a scalar type
+  #-----------------------------------------------------------------------------
+  HDF_FUNCTION_TEST (DEV_T_IS_SCALAR)
+
+  # ----------------------------------------------------------------------
+  # Check for MONOTONIC_TIMER support (used in clock_gettime).  This has
+  # to be done after any POSIX/BSD defines to ensure that the test gets
+  # the correct POSIX level on linux.
+  CHECK_VARIABLE_EXISTS (CLOCK_MONOTONIC HAVE_CLOCK_MONOTONIC)
+
+  #-----------------------------------------------------------------------------
+  # Check a bunch of time functions
+  #-----------------------------------------------------------------------------
+  foreach (test
+      HAVE_TM_GMTOFF
+      HAVE___TM_GMTOFF
+#      HAVE_TIMEZONE
+      HAVE_STRUCT_TIMEZONE
+      GETTIMEOFDAY_GIVES_TZ
+      TIME_WITH_SYS_TIME
+      HAVE_TM_ZONE
+      HAVE_STRUCT_TM_TM_ZONE
+  )
+    HDF_FUNCTION_TEST (${test})
+  endforeach (test)
+  if (NOT CYGWIN AND NOT MINGW)
+      HDF_FUNCTION_TEST (HAVE_TIMEZONE)
+#      HDF_FUNCTION_TEST (HAVE_STAT_ST_BLOCKS)
+  endif (NOT CYGWIN AND NOT MINGW)
+
+  # ----------------------------------------------------------------------
+  # Does the struct stat have the st_blocks field?  This field is not Posix.
+  #
+  HDF_FUNCTION_TEST (HAVE_STAT_ST_BLOCKS)
+
+  # ----------------------------------------------------------------------
+  # How do we figure out the width of a tty in characters?
+  #
+  CHECK_FUNCTION_EXISTS (ioctl             ${HDF_PREFIX}_HAVE_IOCTL)
+  HDF_FUNCTION_TEST (HAVE_STRUCT_VIDEOCONFIG)
+  HDF_FUNCTION_TEST (HAVE_STRUCT_TEXT_INFO)
+  CHECK_FUNCTION_EXISTS (_getvideoconfig   ${HDF_PREFIX}_HAVE__GETVIDEOCONFIG)
+  CHECK_FUNCTION_EXISTS (gettextinfo       ${HDF_PREFIX}_HAVE_GETTEXTINFO)
+  CHECK_FUNCTION_EXISTS (_scrsize          ${HDF_PREFIX}_HAVE__SCRSIZE)
+  if (NOT CYGWIN AND NOT MINGW)
+    CHECK_FUNCTION_EXISTS (GetConsoleScreenBufferInfo    ${HDF_PREFIX}_HAVE_GETCONSOLESCREENBUFFERINFO)
+  endif (NOT CYGWIN AND NOT MINGW)
+  CHECK_SYMBOL_EXISTS (TIOCGWINSZ "sys/ioctl.h" ${HDF_PREFIX}_HAVE_TIOCGWINSZ)
+  CHECK_SYMBOL_EXISTS (TIOCGETD   "sys/ioctl.h" ${HDF_PREFIX}_HAVE_TIOCGETD)
+endif (NOT WINDOWS)
+
+#-----------------------------------------------------------------------------
+# Check for some functions that are used
+#
+CHECK_FUNCTION_EXISTS (alarm             ${HDF_PREFIX}_HAVE_ALARM)
+CHECK_FUNCTION_EXISTS (fork              ${HDF_PREFIX}_HAVE_FORK)
+CHECK_FUNCTION_EXISTS (frexpf            ${HDF_PREFIX}_HAVE_FREXPF)
+CHECK_FUNCTION_EXISTS (frexpl            ${HDF_PREFIX}_HAVE_FREXPL)
+
+CHECK_FUNCTION_EXISTS (gethostname       ${HDF_PREFIX}_HAVE_GETHOSTNAME)
+CHECK_FUNCTION_EXISTS (getpwuid          ${HDF_PREFIX}_HAVE_GETPWUID)
+CHECK_FUNCTION_EXISTS (getrusage         ${HDF_PREFIX}_HAVE_GETRUSAGE)
+CHECK_FUNCTION_EXISTS (lstat             ${HDF_PREFIX}_HAVE_LSTAT)
+
+CHECK_FUNCTION_EXISTS (rand_r            ${HDF_PREFIX}_HAVE_RAND_R)
+CHECK_FUNCTION_EXISTS (random            ${HDF_PREFIX}_HAVE_RANDOM)
+CHECK_FUNCTION_EXISTS (setsysinfo        ${HDF_PREFIX}_HAVE_SETSYSINFO)
+
+CHECK_FUNCTION_EXISTS (signal            ${HDF_PREFIX}_HAVE_SIGNAL)
+CHECK_FUNCTION_EXISTS (longjmp           ${HDF_PREFIX}_HAVE_LONGJMP)
+CHECK_FUNCTION_EXISTS (setjmp            ${HDF_PREFIX}_HAVE_SETJMP)
+CHECK_FUNCTION_EXISTS (siglongjmp        ${HDF_PREFIX}_HAVE_SIGLONGJMP)
+CHECK_FUNCTION_EXISTS (sigsetjmp         ${HDF_PREFIX}_HAVE_SIGSETJMP)
+CHECK_FUNCTION_EXISTS (sigaction         ${HDF_PREFIX}_HAVE_SIGACTION)
+CHECK_FUNCTION_EXISTS (sigprocmask       ${HDF_PREFIX}_HAVE_SIGPROCMASK)
+
+CHECK_FUNCTION_EXISTS (snprintf          ${HDF_PREFIX}_HAVE_SNPRINTF)
+CHECK_FUNCTION_EXISTS (srandom           ${HDF_PREFIX}_HAVE_SRANDOM)
+CHECK_FUNCTION_EXISTS (strdup            ${HDF_PREFIX}_HAVE_STRDUP)
+CHECK_FUNCTION_EXISTS (symlink           ${HDF_PREFIX}_HAVE_SYMLINK)
+CHECK_FUNCTION_EXISTS (system            ${HDF_PREFIX}_HAVE_SYSTEM)
+
+CHECK_FUNCTION_EXISTS (tmpfile           ${HDF_PREFIX}_HAVE_TMPFILE)
+CHECK_FUNCTION_EXISTS (asprintf          ${HDF_PREFIX}_HAVE_ASPRINTF)
+CHECK_FUNCTION_EXISTS (vasprintf         ${HDF_PREFIX}_HAVE_VASPRINTF)
+CHECK_FUNCTION_EXISTS (waitpid           ${HDF_PREFIX}_HAVE_WAITPID)
+
+CHECK_FUNCTION_EXISTS (vsnprintf         ${HDF_PREFIX}_HAVE_VSNPRINTF)
+if (NOT WINDOWS)
+  if (${HDF_PREFIX}_HAVE_VSNPRINTF)
+    HDF_FUNCTION_TEST (VSNPRINTF_WORKS)
+  endif (${HDF_PREFIX}_HAVE_VSNPRINTF)
+endif (NOT WINDOWS)
+
+#-----------------------------------------------------------------------------
+# sigsetjmp is special; may actually be a macro
+#-----------------------------------------------------------------------------
+if (NOT ${HDF_PREFIX}_HAVE_SIGSETJMP)
+  if (${HDF_PREFIX}_HAVE_SETJMP_H)
+    CHECK_SYMBOL_EXISTS (sigsetjmp "setjmp.h" ${HDF_PREFIX}_HAVE_MACRO_SIGSETJMP)
+    if (${HDF_PREFIX}_HAVE_MACRO_SIGSETJMP)
+      set (${HDF_PREFIX}_HAVE_SIGSETJMP 1)
+    endif (${HDF_PREFIX}_HAVE_MACRO_SIGSETJMP)
+  endif (${HDF_PREFIX}_HAVE_SETJMP_H)
+endif (NOT ${HDF_PREFIX}_HAVE_SIGSETJMP)
+
+#-----------------------------------------------------------------------------
+# Check for Symbols
+CHECK_SYMBOL_EXISTS (tzname "time.h" ${HDF_PREFIX}_HAVE_DECL_TZNAME)
+
+#-----------------------------------------------------------------------------
+# Check a bunch of other functions
+#-----------------------------------------------------------------------------
+if (NOT WINDOWS)
+  foreach (test
+      LONE_COLON
+      HAVE_ATTRIBUTE
+      HAVE_C99_FUNC
+#      STDC_HEADERS
+      HAVE_FUNCTION
+      HAVE_C99_DESIGNATED_INITIALIZER
+      SYSTEM_SCOPE_THREADS
+      HAVE_SOCKLEN_T
+      CXX_HAVE_OFFSETOF
+  )
+    HDF_FUNCTION_TEST (${test})
+  endforeach (test)
+endif (NOT WINDOWS)
+
+# For other CXX specific tests, use this MACRO.
+MACRO (HDF_CXX_FUNCTION_TEST OTHER_TEST)
+  if ("${OTHER_TEST}" MATCHES "^${OTHER_TEST}$")
+    set (MACRO_CHECK_FUNCTION_DEFINITIONS "-D${OTHER_TEST} ${CMAKE_REQUIRED_FLAGS}")
+    set (OTHER_TEST_ADD_LIBRARIES)
+    if (CMAKE_REQUIRED_LIBRARIES)
+      set (OTHER_TEST_ADD_LIBRARIES "-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}")
+    endif (CMAKE_REQUIRED_LIBRARIES)
+
+    foreach (def ${HDF_EXTRA_TEST_DEFINITIONS})
+      set (MACRO_CHECK_FUNCTION_DEFINITIONS "${MACRO_CHECK_FUNCTION_DEFINITIONS} -D${def}=${${def}}")
+    endforeach (def)
+
+    foreach (def
+        HAVE_SYS_TIME_H
+        HAVE_UNISTD_H
+        HAVE_SYS_TYPES_H
+        HAVE_SYS_SOCKET_H
+    )
+      if ("${${HDF_PREFIX}_${def}}")
+        set (MACRO_CHECK_FUNCTION_DEFINITIONS "${MACRO_CHECK_FUNCTION_DEFINITIONS} -D${def}")
+      endif ("${${HDF_PREFIX}_${def}}")
+    endforeach (def)
+
+    if (LARGEFILE)
+      set (MACRO_CHECK_FUNCTION_DEFINITIONS
+          "${MACRO_CHECK_FUNCTION_DEFINITIONS} -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE"
+      )
+    endif (LARGEFILE)
+
+    #message (STATUS "Performing ${OTHER_TEST}")
+    TRY_COMPILE (${OTHER_TEST}
+        ${CMAKE_BINARY_DIR}
+        ${HDF_RESOURCES_EXT_DIR}/HDFCXXTests.cpp
+        CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS}
+        "${OTHER_TEST_ADD_LIBRARIES}"
+        OUTPUT_VARIABLE OUTPUT
+    )
+    if ("${OTHER_TEST}" EQUAL 0)
+      set (${OTHER_TEST} 1 CACHE INTERNAL "CXX test ${FUNCTION}")
+      message (STATUS "Performing CXX Test ${OTHER_TEST} - Success")
+    else ("${OTHER_TEST}" EQUAL 0)
+      message (STATUS "Performing CXX Test ${OTHER_TEST} - Failed")
+      set (${OTHER_TEST} "" CACHE INTERNAL "CXX test ${FUNCTION}")
+      file (APPEND ${CMAKE_BINARY_DIR}/CMakeFiles/CMakeError.log
+          "Performing CXX Test ${OTHER_TEST} failed with the following output:\n"
+          "${OUTPUT}\n"
+      )
+    endif ("${OTHER_TEST}" EQUAL 0)
+  endif ("${OTHER_TEST}" MATCHES "^${OTHER_TEST}$")
+ENDMACRO (HDF_CXX_FUNCTION_TEST)
+
+#-----------------------------------------------------------------------------
+# Check a bunch of cxx functions
+#-----------------------------------------------------------------------------
+if (CMAKE_CXX_COMPILER_LOADED)
+  foreach (test
+      OLD_HEADER_FILENAME
+      ${HDF_PREFIX}_NO_NAMESPACE
+      ${HDF_PREFIX}_NO_STD
+      BOOL_NOTDEFINED
+      NO_STATIC_CAST
+  )
+    HDF_CXX_FUNCTION_TEST (${test})
+  endforeach (test)
+endif (CMAKE_CXX_COMPILER_LOADED)
+
+#-----------------------------------------------------------------------------
+# Check if InitOnceExecuteOnce is available
+#-----------------------------------------------------------------------------
+if (WINDOWS)
+  if (NOT HDF_NO_IOEO_TEST)
+  message (STATUS "Checking for InitOnceExecuteOnce:")
+  if ("${${HDF_PREFIX}_HAVE_IOEO}" MATCHES "^${${HDF_PREFIX}_HAVE_IOEO}$")
+    if (LARGEFILE)
+      set (CMAKE_REQUIRED_DEFINITIONS
+          "${CURRENT_TEST_DEFINITIONS} -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE"
+      )
+    endif (LARGEFILE)
+    set (MACRO_CHECK_FUNCTION_DEFINITIONS 
+      "-DHAVE_IOEO ${CMAKE_REQUIRED_FLAGS}")
+    if (CMAKE_REQUIRED_LIBRARIES)
+      set (CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES
+        "-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}")
+    else (CMAKE_REQUIRED_LIBRARIES)
+      set (CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES)
+    endif (CMAKE_REQUIRED_LIBRARIES)
+    if (CMAKE_REQUIRED_INCLUDES)
+      set (CHECK_C_SOURCE_COMPILES_ADD_INCLUDES
+        "-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}")
+    else (CMAKE_REQUIRED_INCLUDES)
+      set (CHECK_C_SOURCE_COMPILES_ADD_INCLUDES)
+    endif (CMAKE_REQUIRED_INCLUDES)
+
+    TRY_RUN(HAVE_IOEO_EXITCODE HAVE_IOEO_COMPILED
+      ${CMAKE_BINARY_DIR}
+      ${HDF_RESOURCES_EXT_DIR}/HDFTests.c
+      COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
+      CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS}
+      -DCMAKE_SKIP_RPATH:BOOL=${CMAKE_SKIP_RPATH}
+      "${CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES}"
+      "${CHECK_C_SOURCE_COMPILES_ADD_INCLUDES}"
+      COMPILE_OUTPUT_VARIABLE OUTPUT)
+    # if it did not compile make the return value fail code of 1
+    if (NOT HAVE_IOEO_COMPILED)
+      set (HAVE_IOEO_EXITCODE 1)
+    endif (NOT HAVE_IOEO_COMPILED)
+    # if the return value was 0 then it worked
+    if ("${HAVE_IOEO_EXITCODE}" EQUAL 0)
+      set (${HDF_PREFIX}_HAVE_IOEO 1 CACHE INTERNAL "Test InitOnceExecuteOnce")
+      message (STATUS "Performing Test InitOnceExecuteOnce - Success")
+      file (APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log 
+        "Performing C SOURCE FILE Test InitOnceExecuteOnce succeded with the following output:\n"
+        "${OUTPUT}\n"
+        "Return value: ${HAVE_IOEO}\n")
+    else ("${HAVE_IOEO_EXITCODE}" EQUAL 0)
+      if (CMAKE_CROSSCOMPILING AND "${HAVE_IOEO_EXITCODE}" MATCHES  "FAILED_TO_RUN")
+        set (${HDF_PREFIX}_HAVE_IOEO "${HAVE_IOEO_EXITCODE}")
+      else (CMAKE_CROSSCOMPILING AND "${HAVE_IOEO_EXITCODE}" MATCHES  "FAILED_TO_RUN")
+        set (${HDF_PREFIX}_HAVE_IOEO "" CACHE INTERNAL "Test InitOnceExecuteOnce")
+      endif (CMAKE_CROSSCOMPILING AND "${HAVE_IOEO_EXITCODE}" MATCHES  "FAILED_TO_RUN")
+
+      message (STATUS "Performing Test InitOnceExecuteOnce - Failed")
+      file (APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log 
+        "Performing InitOnceExecuteOnce Test  failed with the following output:\n"
+        "${OUTPUT}\n"
+        "Return value: ${HAVE_IOEO_EXITCODE}\n")
+    endif ("${HAVE_IOEO_EXITCODE}" EQUAL 0)
+  endif ("${${HDF_PREFIX}_HAVE_IOEO}" MATCHES "^${${HDF_PREFIX}_HAVE_IOEO}$")
+  endif (NOT HDF_NO_IOEO_TEST)
+endif (WINDOWS)
+
+#-----------------------------------------------------------------------------
+# Determine how 'inline' is used
+#-----------------------------------------------------------------------------
+set (HDF_EXTRA_TEST_DEFINITIONS INLINE_TEST_INLINE)
+foreach (inline_test inline __inline__ __inline)
+  set (INLINE_TEST_INLINE ${inline_test})
+  HDF_FUNCTION_TEST (INLINE_TEST_${inline_test})
+endforeach (inline_test)
+
+set (HDF_EXTRA_TEST_DEFINITIONS)
+if (INLINE_TEST___inline__)
+  set (${HDF_PREFIX}_inline __inline__)
+else (INLINE_TEST___inline__)
+  if (INLINE_TEST___inline)
+    set (${HDF_PREFIX}_inline __inline)
+  else (INLINE_TEST___inline)
+    if (INLINE_TEST_inline)
+      set (${HDF_PREFIX}_inline inline)
+    endif (INLINE_TEST_inline)
+  endif (INLINE_TEST___inline)
+endif (INLINE_TEST___inline__)
+
+#-----------------------------------------------------------------------------
+# Check how to print a Long Long integer
+#-----------------------------------------------------------------------------
+if (NOT ${HDF_PREFIX}_PRINTF_LL_WIDTH OR ${HDF_PREFIX}_PRINTF_LL_WIDTH MATCHES "unknown")
+  set (PRINT_LL_FOUND 0)
+  message (STATUS "Checking for appropriate format for 64 bit long:")
+  foreach (HDF5_PRINTF_LL l64 l L q I64 ll)
+    set (CURRENT_TEST_DEFINITIONS "-DPRINTF_LL_WIDTH=${HDF5_PRINTF_LL}")
+    if (${HDF_PREFIX}_SIZEOF_LONG_LONG)
+      set (CURRENT_TEST_DEFINITIONS "${CURRENT_TEST_DEFINITIONS} -DHAVE_LONG_LONG")
+    endif (${HDF_PREFIX}_SIZEOF_LONG_LONG)
+    TRY_RUN (HDF5_PRINTF_LL_TEST_RUN   HDF5_PRINTF_LL_TEST_COMPILE
+        ${CMAKE_BINARY_DIR}
+        ${HDF_RESOURCES_EXT_DIR}/HDFTests.c
+        CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${CURRENT_TEST_DEFINITIONS}
+        OUTPUT_VARIABLE OUTPUT
+    )
+    if (HDF5_PRINTF_LL_TEST_COMPILE)
+      if (HDF5_PRINTF_LL_TEST_RUN MATCHES 0)
+        set (${HDF_PREFIX}_PRINTF_LL_WIDTH "\"${HDF5_PRINTF_LL}\"" CACHE INTERNAL "Width for printf for type `long long' or `__int64', us. `ll")
+        set (PRINT_LL_FOUND 1)
+      else (HDF5_PRINTF_LL_TEST_RUN MATCHES 0)
+        message ("Width with ${HDF5_PRINTF_LL} failed with result: ${HDF5_PRINTF_LL_TEST_RUN}")
+      endif (HDF5_PRINTF_LL_TEST_RUN MATCHES 0)
+    else (HDF5_PRINTF_LL_TEST_COMPILE)
+      file (APPEND ${CMAKE_BINARY_DIR}/CMakeFiles/CMakeError.log
+          "Test ${HDF_PREFIX}_PRINTF_LL_WIDTH for ${HDF5_PRINTF_LL} failed with the following output:\n ${OUTPUT}\n"
+      )
+    endif (HDF5_PRINTF_LL_TEST_COMPILE)
+  endforeach (HDF5_PRINTF_LL)
+
+  if (PRINT_LL_FOUND)
+    message (STATUS "Checking for apropriate format for 64 bit long: found ${${HDF_PREFIX}_PRINTF_LL_WIDTH}")
+  else (PRINT_LL_FOUND)
+    message (STATUS "Checking for apropriate format for 64 bit long: not found")
+    set (${HDF_PREFIX}_PRINTF_LL_WIDTH "\"unknown\"" CACHE INTERNAL
+        "Width for printf for type `long long' or `__int64', us. `ll"
+    )
+  endif (PRINT_LL_FOUND)
+endif (NOT ${HDF_PREFIX}_PRINTF_LL_WIDTH OR ${HDF_PREFIX}_PRINTF_LL_WIDTH MATCHES "unknown")
+
+# ----------------------------------------------------------------------
+# Set the flag to indicate that the machine can handle converting
+# denormalized floating-point values.
+# (This flag should be set for all machines, except for the Crays, where
+# the cache value is set in it's config file)
+#
+set (${HDF_PREFIX}_CONVERT_DENORMAL_FLOAT 1)
diff --git a/config/cmake/FindMPI.cmake b/config/cmake_ext_mod/FindMPI.cmake
similarity index 100%
rename from config/cmake/FindMPI.cmake
rename to config/cmake_ext_mod/FindMPI.cmake
diff --git a/config/cmake/FindSZIP.cmake b/config/cmake_ext_mod/FindSZIP.cmake
similarity index 97%
rename from config/cmake/FindSZIP.cmake
rename to config/cmake_ext_mod/FindSZIP.cmake
index f657cfa..e8e7f9f 100644
--- a/config/cmake/FindSZIP.cmake
+++ b/config/cmake_ext_mod/FindSZIP.cmake
@@ -45,7 +45,7 @@ MACRO (SZIP_ADJUST_LIB_VARS basename)
       # optimized and debug libraries, or if the CMAKE_BUILD_TYPE has a value
       if (CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE)
         set (${basename}_LIBRARY       optimized ${${basename}_LIBRARY_RELEASE} debug ${${basename}_LIBRARY_DEBUG})
-      ELSE(CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE)
+      else (CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE)
         # if there are no configuration types and CMAKE_BUILD_TYPE has no value
         # then just use the release libraries
         set (${basename}_LIBRARY       ${${basename}_LIBRARY_RELEASE} )
@@ -118,10 +118,10 @@ if (SZIP_INCLUDE_DIR AND SZIP_LIBRARY)
   set (SZIP_LIBRARIES ${SZIP_LIBRARY})
   set (SZIP_INCLUDE_DIRS ${SZIP_INCLUDE_DIR})
   if (SZIP_LIBRARY_DEBUG)
-    GET_FILENAME_COMPONENT (SZIP_LIBRARY_PATH ${SZIP_LIBRARY_DEBUG} PATH)
+    get_filename_component (SZIP_LIBRARY_PATH ${SZIP_LIBRARY_DEBUG} PATH)
     set (SZIP_LIB_DIR  ${SZIP_LIBRARY_PATH})
   elseif (SZIP_LIBRARY_RELEASE)
-    GET_FILENAME_COMPONENT (SZIP_LIBRARY_PATH ${SZIP_LIBRARY_RELEASE} PATH)
+    get_filename_component (SZIP_LIBRARY_PATH ${SZIP_LIBRARY_RELEASE} PATH)
     set (SZIP_LIB_DIR  ${SZIP_LIBRARY_PATH})
   endif (SZIP_LIBRARY_DEBUG)
 
diff --git a/config/cmake/GetTimeOfDayTest.cpp b/config/cmake_ext_mod/GetTimeOfDayTest.cpp
similarity index 100%
rename from config/cmake/GetTimeOfDayTest.cpp
rename to config/cmake_ext_mod/GetTimeOfDayTest.cpp
diff --git a/config/cmake/HDF5CXXTests.cpp b/config/cmake_ext_mod/HDFCXXTests.cpp
similarity index 86%
rename from config/cmake/HDF5CXXTests.cpp
rename to config/cmake_ext_mod/HDFCXXTests.cpp
index 7003cc8..6b47421 100644
--- a/config/cmake/HDF5CXXTests.cpp
+++ b/config/cmake_ext_mod/HDFCXXTests.cpp
@@ -8,21 +8,21 @@ int main(void) { return 0; }
 #endif
 
 
-#ifdef H5_NO_NAMESPACE
+#ifdef HDF_NO_NAMESPACE
 
-namespace H5 {
+namespace HDF {
 int fnord;
 }
 
 int main(void) {
-   using namespace H5;
+   using namespace HDF;
    fnord = 37;
    return 0;
 }
 
 #endif
 
-#ifdef H5_NO_STD
+#ifdef HDF_NO_STD
 
 #include <string>
 
diff --git a/config/cmake/HDFLibMacros.cmake b/config/cmake_ext_mod/HDFLibMacros.cmake
similarity index 50%
rename from config/cmake/HDFLibMacros.cmake
rename to config/cmake_ext_mod/HDFLibMacros.cmake
index 505a9d5..f499b00 100644
--- a/config/cmake/HDFLibMacros.cmake
+++ b/config/cmake_ext_mod/HDFLibMacros.cmake
@@ -19,6 +19,21 @@ MACRO (EXTERNAL_JPEG_LIBRARY compress_type libtype jpeg_pic)
             -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY:PATH=${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}
             -DCMAKE_ANSI_CFLAGS:STRING=${jpeg_pic}
     ) 
+  elseif (${compress_type} MATCHES "GIT")
+    EXTERNALPROJECT_ADD (JPEG
+        GIT_REPOSITORY ${JPEG_URL}
+        INSTALL_COMMAND ""
+        CMAKE_ARGS
+            -DBUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS}
+            -DHDF_PACKAGE_EXT:STRING=${HDF_PACKAGE_EXT}
+            -DJPEG_EXTERNALLY_CONFIGURED:BOOL=OFF
+            -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
+            -DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_INSTALL_PREFIX}
+            -DCMAKE_RUNTIME_OUTPUT_DIRECTORY:PATH=${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
+            -DCMAKE_LIBRARY_OUTPUT_DIRECTORY:PATH=${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
+            -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY:PATH=${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}
+            -DCMAKE_ANSI_CFLAGS:STRING=${jpeg_pic}
+    ) 
   elseif (${compress_type} MATCHES "TGZ")
     EXTERNALPROJECT_ADD (JPEG
         URL ${JPEG_URL}
@@ -36,62 +51,12 @@ MACRO (EXTERNAL_JPEG_LIBRARY compress_type libtype jpeg_pic)
             -DCMAKE_ANSI_CFLAGS:STRING=${jpeg_pic}
     ) 
   endif (${compress_type} MATCHES "SVN")
-  EXTERNALPROJECT_GET_PROPERTY (JPEG BINARY_DIR SOURCE_DIR) 
-
-  if (${CMAKE_BUILD_TYPE} MATCHES "Debug")
-    if (WIN32)
-      set (JPEG_LIB_NAME "jpeg_D")
-    else (WIN32)
-      set (JPEG_LIB_NAME "jpeg_debug")
-    endif (WIN32)
-  else (${CMAKE_BUILD_TYPE} MATCHES "Debug")
-    set (JPEG_LIB_NAME "jpeg")
-  endif (${CMAKE_BUILD_TYPE} MATCHES "Debug")
+  externalproject_get_property (JPEG BINARY_DIR SOURCE_DIR) 
 
   # Create imported target szip
-  ADD_LIBRARY(jpeg ${libtype} IMPORTED)
-  ADD_DEPENDENCIES (jpeg JPEG)
-
-  if (${libtype} MATCHES "SHARED")
-    if (WIN32)
-      if (MINGW)
-        SET_TARGET_PROPERTIES(jpeg PROPERTIES
-            IMPORTED_IMPLIB "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${JPEG_LIB_NAME}.lib"
-            IMPORTED_LOCATION "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${JPEG_LIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}"
-        )
-      else (MINGW)
-        SET_TARGET_PROPERTIES(jpeg PROPERTIES
-            IMPORTED_IMPLIB "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_BUILD_TYPE}/${CMAKE_IMPORT_LIBRARY_PREFIX}${JPEG_LIB_NAME}${CMAKE_IMPORT_LIBRARY_SUFFIX}"
-            IMPORTED_LOCATION "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_BUILD_TYPE}/${CMAKE_IMPORT_LIBRARY_PREFIX}${JPEG_LIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}"
-        )
-      endif (MINGW)
-    else (WIN32)
-      if (CYGWIN)
-        SET_TARGET_PROPERTIES(jpeg PROPERTIES
-            IMPORTED_IMPLIB "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_IMPORT_LIBRARY_PREFIX}${JPEG_LIB_NAME}${CMAKE_IMPORT_LIBRARY_SUFFIX}"
-            IMPORTED_LOCATION "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_IMPORT_LIBRARY_PREFIX}${JPEG_LIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}"
-        )
-      else (CYGWIN)
-        SET_TARGET_PROPERTIES(jpeg PROPERTIES
-            IMPORTED_LOCATION "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_SHARED_LIBRARY_PREFIX}${JPEG_LIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}"
-            IMPORTED_SONAME "${CMAKE_SHARED_LIBRARY_PREFIX}${JPEG_LIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}.${JPEG_VERSION_STRING}"
-            SOVERSION "${JPEG_VERSION_STRING}"
-        )
-      endif (CYGWIN)
-    endif (WIN32)
-  else (${libtype} MATCHES "SHARED")
-    if (WIN32 AND NOT MINGW)
-      SET_TARGET_PROPERTIES(jpeg PROPERTIES
-          IMPORTED_LOCATION "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_BUILD_TYPE}/lib${JPEG_LIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}"
-          IMPORTED_LINK_INTERFACE_LANGUAGES "C"
-      )
-    else (WIN32 AND NOT MINGW)
-      SET_TARGET_PROPERTIES(jpeg PROPERTIES
-          IMPORTED_LOCATION "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/lib${JPEG_LIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}"
-          IMPORTED_LINK_INTERFACE_LANGUAGES "C"
-      )
-    endif (WIN32 AND NOT MINGW)
-  endif (${libtype} MATCHES "SHARED")
+  add_library (jpeg ${libtype} IMPORTED)
+  HDF_IMPORT_SET_LIB_OPTIONS (jpeg "jpeg" ${libtype} "")
+  add_dependencies (JPEG jpeg)
 
 #  include (${BINARY_DIR}/JPEG-targets.cmake)  
   set (JPEG_LIBRARY "jpeg")
@@ -105,13 +70,13 @@ ENDMACRO (EXTERNAL_JPEG_LIBRARY)
 
 #-------------------------------------------------------------------------------
 MACRO (PACKAGE_JPEG_LIBRARY compress_type)
-  ADD_CUSTOM_TARGET (JPEG-GenHeader-Copy ALL
+  add_custom_target (JPEG-GenHeader-Copy ALL
       COMMAND ${CMAKE_COMMAND} -E copy_if_different ${JPEG_INCLUDE_DIR_GEN}/jconfig.h ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/
       COMMENT "Copying ${JPEG_INCLUDE_DIR_GEN}/jconfig.h to ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/"
   )
   set (EXTERNAL_HEADER_LIST ${EXTERNAL_HEADER_LIST} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/jconfig.h)
   if (${compress_type} MATCHES "SVN" OR ${compress_type} MATCHES "TGZ")
-    ADD_DEPENDENCIES (JPEG-GenHeader-Copy JPEG)
+    add_dependencies (JPEG-GenHeader-Copy JPEG)
   endif (${compress_type} MATCHES "SVN" OR ${compress_type} MATCHES "TGZ")
 ENDMACRO (PACKAGE_JPEG_LIBRARY)
 
@@ -134,6 +99,23 @@ MACRO (EXTERNAL_SZIP_LIBRARY compress_type libtype encoding)
             -DCMAKE_ANSI_CFLAGS:STRING=${CMAKE_ANSI_CFLAGS}
             -DSZIP_ENABLE_ENCODING:BOOL=${encoding}
     ) 
+  elseif (${compress_type} MATCHES "GIT")
+    EXTERNALPROJECT_ADD (SZIP
+        GIT_REPOSITORY ${SZIP_URL}
+        # [SVN_REVISION rev] 
+        INSTALL_COMMAND ""
+        CMAKE_ARGS
+            -DBUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS}
+            -DHDF_PACKAGE_EXT:STRING=${HDF_PACKAGE_EXT}
+            -DSZIP_EXTERNALLY_CONFIGURED:BOOL=OFF
+            -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
+            -DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_INSTALL_PREFIX}
+            -DCMAKE_RUNTIME_OUTPUT_DIRECTORY:PATH=${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
+            -DCMAKE_LIBRARY_OUTPUT_DIRECTORY:PATH=${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
+            -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY:PATH=${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}
+            -DCMAKE_ANSI_CFLAGS:STRING=${CMAKE_ANSI_CFLAGS}
+            -DSZIP_ENABLE_ENCODING:BOOL=${encoding}
+    ) 
   elseif (${compress_type} MATCHES "TGZ")
     EXTERNALPROJECT_ADD (SZIP
         URL ${SZIP_URL}
@@ -152,62 +134,12 @@ MACRO (EXTERNAL_SZIP_LIBRARY compress_type libtype encoding)
             -DSZIP_ENABLE_ENCODING:BOOL=${encoding}
     ) 
   endif (${compress_type} MATCHES "SVN")
-  EXTERNALPROJECT_GET_PROPERTY (SZIP BINARY_DIR SOURCE_DIR) 
-
-  if (${CMAKE_BUILD_TYPE} MATCHES "Debug")
-    if (WIN32)
-      set (SZIP_LIB_NAME "szip_D")
-    else (WIN32)
-      set (SZIP_LIB_NAME "szip_debug")
-    endif (WIN32)
-  else (${CMAKE_BUILD_TYPE} MATCHES "Debug")
-    set (SZIP_LIB_NAME "szip")
-  endif (${CMAKE_BUILD_TYPE} MATCHES "Debug")
+  externalproject_get_property (SZIP BINARY_DIR SOURCE_DIR) 
 
   # Create imported target szip
-  ADD_LIBRARY(szip ${libtype} IMPORTED)
-  ADD_DEPENDENCIES (szip SZIP)
-
-  if (${libtype} MATCHES "SHARED")
-    if (WIN32)
-      if (MINGW)
-        SET_TARGET_PROPERTIES(szip PROPERTIES
-            IMPORTED_IMPLIB "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${SZIP_LIB_NAME}.lib"
-            IMPORTED_LOCATION "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${SZIP_LIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}"
-        )
-      else (MINGW)
-        SET_TARGET_PROPERTIES(szip PROPERTIES
-            IMPORTED_IMPLIB "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_BUILD_TYPE}/${CMAKE_IMPORT_LIBRARY_PREFIX}${SZIP_LIB_NAME}${CMAKE_IMPORT_LIBRARY_SUFFIX}"
-            IMPORTED_LOCATION "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_BUILD_TYPE}/${CMAKE_IMPORT_LIBRARY_PREFIX}${SZIP_LIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}"
-        )
-      endif (MINGW)
-    else (WIN32)
-      if (CYGWIN)
-        SET_TARGET_PROPERTIES(szip PROPERTIES
-            IMPORTED_IMPLIB "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_IMPORT_LIBRARY_PREFIX}${SZIP_LIB_NAME}${CMAKE_IMPORT_LIBRARY_SUFFIX}"
-            IMPORTED_LOCATION "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_IMPORT_LIBRARY_PREFIX}${SZIP_LIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}"
-        )
-      else (CYGWIN)
-        SET_TARGET_PROPERTIES(szip PROPERTIES
-            IMPORTED_LOCATION "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_SHARED_LIBRARY_PREFIX}${SZIP_LIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}"
-            IMPORTED_SONAME "${CMAKE_SHARED_LIBRARY_PREFIX}${SZIP_LIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}.${SZIP_VERSION_STRING}"
-            SOVERSION "${SZIP_VERSION_STRING}"
-        )
-      endif (CYGWIN)
-    endif (WIN32)
-  else (${libtype} MATCHES "SHARED")
-    if (WIN32 AND NOT MINGW)
-      SET_TARGET_PROPERTIES(szip PROPERTIES
-          IMPORTED_LOCATION "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_BUILD_TYPE}/lib${SZIP_LIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}"
-          IMPORTED_LINK_INTERFACE_LANGUAGES "C"
-      )
-    else (WIN32 AND NOT MINGW)
-      SET_TARGET_PROPERTIES(szip PROPERTIES
-          IMPORTED_LOCATION "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/lib${SZIP_LIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}"
-          IMPORTED_LINK_INTERFACE_LANGUAGES "C"
-      )
-    endif (WIN32 AND NOT MINGW)
-  endif (${libtype} MATCHES "SHARED")
+  add_library (szip ${libtype} IMPORTED)
+  HDF_IMPORT_SET_LIB_OPTIONS (szip "szip" ${libtype} "")
+  add_dependencies (SZIP szip)
 
 #  include (${BINARY_DIR}/SZIP-targets.cmake)  
   set (SZIP_LIBRARY "szip")
@@ -221,13 +153,13 @@ ENDMACRO (EXTERNAL_SZIP_LIBRARY)
 
 #-------------------------------------------------------------------------------
 MACRO (PACKAGE_SZIP_LIBRARY compress_type)
-  ADD_CUSTOM_TARGET (SZIP-GenHeader-Copy ALL
+  add_custom_target (SZIP-GenHeader-Copy ALL
       COMMAND ${CMAKE_COMMAND} -E copy_if_different ${SZIP_INCLUDE_DIR_GEN}/SZconfig.h ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/
       COMMENT "Copying ${SZIP_INCLUDE_DIR_GEN}/SZconfig.h to ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/"
   )
   set (EXTERNAL_HEADER_LIST ${EXTERNAL_HEADER_LIST} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/SZconfig.h)
   if (${compress_type} MATCHES "SVN" OR ${compress_type} MATCHES "TGZ")
-    ADD_DEPENDENCIES (SZIP-GenHeader-Copy SZIP)
+    add_dependencies (SZIP-GenHeader-Copy SZIP)
   endif (${compress_type} MATCHES "SVN" OR ${compress_type} MATCHES "TGZ")
 ENDMACRO (PACKAGE_SZIP_LIBRARY)
 
@@ -249,6 +181,22 @@ MACRO (EXTERNAL_ZLIB_LIBRARY compress_type libtype)
             -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY:PATH=${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}
             -DCMAKE_ANSI_CFLAGS:STRING=${CMAKE_ANSI_CFLAGS}
     ) 
+  elseif (${compress_type} MATCHES "GIT")
+    EXTERNALPROJECT_ADD (ZLIB
+        GIT_REPOSITORY ${ZLIB_URL}
+        # [SVN_REVISION rev] 
+        INSTALL_COMMAND ""
+        CMAKE_ARGS
+            -DBUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS}
+            -DHDF_PACKAGE_EXT:STRING=${HDF_PACKAGE_EXT}
+            -DZLIB_EXTERNALLY_CONFIGURED:BOOL=OFF
+            -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
+            -DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_INSTALL_PREFIX}
+            -DCMAKE_RUNTIME_OUTPUT_DIRECTORY:PATH=${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
+            -DCMAKE_LIBRARY_OUTPUT_DIRECTORY:PATH=${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
+            -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY:PATH=${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}
+            -DCMAKE_ANSI_CFLAGS:STRING=${CMAKE_ANSI_CFLAGS}
+    ) 
   elseif (${compress_type} MATCHES "TGZ")
     EXTERNALPROJECT_ADD (ZLIB
         URL ${ZLIB_URL}
@@ -266,66 +214,17 @@ MACRO (EXTERNAL_ZLIB_LIBRARY compress_type libtype)
             -DCMAKE_ANSI_CFLAGS:STRING=${CMAKE_ANSI_CFLAGS}
     ) 
   endif (${compress_type} MATCHES "SVN")
-  EXTERNALPROJECT_GET_PROPERTY (ZLIB BINARY_DIR SOURCE_DIR) 
-
-  if (${CMAKE_BUILD_TYPE} MATCHES "Debug")
-    if (WIN32)
-      set (ZLIB_LIB_NAME "zlib_D")
-    else (WIN32)
-      set (ZLIB_LIB_NAME "z_debug")
-    endif (WIN32)
-  else (${CMAKE_BUILD_TYPE} MATCHES "Debug")
-    if (WIN32)
-      set (ZLIB_LIB_NAME "zlib")
-    else (WIN32)
-      set (ZLIB_LIB_NAME "z")
-    endif (WIN32)
-  endif (${CMAKE_BUILD_TYPE} MATCHES "Debug")
-
-  # Create imported target szip
-  ADD_LIBRARY(zlib ${libtype} IMPORTED)
-  ADD_DEPENDENCIES (zlib ZLIB)
-  
-  if (${libtype} MATCHES "SHARED")
-    if (WIN32)
-      if (MINGW)
-        SET_TARGET_PROPERTIES(zlib PROPERTIES
-            IMPORTED_IMPLIB "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${ZLIB_LIB_NAME}.lib"
-            IMPORTED_LOCATION "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${ZLIB_LIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}"
-        )
-      else (MINGW)
-        SET_TARGET_PROPERTIES(zlib PROPERTIES
-            IMPORTED_IMPLIB "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_BUILD_TYPE}/${CMAKE_IMPORT_LIBRARY_PREFIX}${ZLIB_LIB_NAME}${CMAKE_IMPORT_LIBRARY_SUFFIX}"
-            IMPORTED_LOCATION "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_BUILD_TYPE}/${CMAKE_IMPORT_LIBRARY_PREFIX}${ZLIB_LIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}"
-        )
-      endif (MINGW)
-    else (WIN32)
-      if (CYGWIN)
-        SET_TARGET_PROPERTIES(zlib PROPERTIES
-            IMPORTED_IMPLIB "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_IMPORT_LIBRARY_PREFIX}${ZLIB_LIB_NAME}${CMAKE_IMPORT_LIBRARY_SUFFIX}"
-            IMPORTED_LOCATION "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_IMPORT_LIBRARY_PREFIX}${ZLIB_LIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}"
-        )
-      else (CYGWIN)
-        SET_TARGET_PROPERTIES(zlib PROPERTIES
-            IMPORTED_LOCATION "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_SHARED_LIBRARY_PREFIX}${ZLIB_LIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}"
-            IMPORTED_SONAME "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_SHARED_LIBRARY_PREFIX}${ZLIB_LIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}.${ZLIB_VERSION_STRING}"
-            SOVERSION "${ZLIB_VERSION_STRING}"
-        )
-      endif (CYGWIN)
-    endif (WIN32)
-  else (${libtype} MATCHES "SHARED")
-    if (WIN32 AND NOT MINGW)
-      SET_TARGET_PROPERTIES(zlib PROPERTIES
-          IMPORTED_LOCATION "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_BUILD_TYPE}/lib${ZLIB_LIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}"
-          IMPORTED_LINK_INTERFACE_LANGUAGES "C"
-      )
-    else (WIN32 AND NOT MINGW)
-      SET_TARGET_PROPERTIES(zlib PROPERTIES
-          IMPORTED_LOCATION "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/lib${ZLIB_LIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}"
-          IMPORTED_LINK_INTERFACE_LANGUAGES "C"
-      )
-    endif (WIN32 AND NOT MINGW)
-  endif (${libtype} MATCHES "SHARED")
+  externalproject_get_property (ZLIB BINARY_DIR SOURCE_DIR) 
+
+  # Create imported target zlib
+  add_library (zlib ${libtype} IMPORTED)
+  if (WIN32)
+    set (ZLIB_LIB_NAME "zlib")
+  else (WIN32)
+    set (ZLIB_LIB_NAME "z")
+  endif (WIN32)
+  HDF_IMPORT_SET_LIB_OPTIONS (zlib ${ZLIB_LIB_NAME} ${libtype} "")
+  add_dependencies (ZLIB zlib)
 
 #  include (${BINARY_DIR}/ZLIB-targets.cmake)  
   set (ZLIB_LIBRARY "zlib")
@@ -339,12 +238,12 @@ ENDMACRO (EXTERNAL_ZLIB_LIBRARY)
 
 #-------------------------------------------------------------------------------
 MACRO (PACKAGE_ZLIB_LIBRARY compress_type)
-  ADD_CUSTOM_TARGET (ZLIB-GenHeader-Copy ALL
+  add_custom_target (ZLIB-GenHeader-Copy ALL
       COMMAND ${CMAKE_COMMAND} -E copy_if_different ${ZLIB_INCLUDE_DIR_GEN}/zconf.h ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/
       COMMENT "Copying ${ZLIB_INCLUDE_DIR_GEN}/zconf.h to ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/"
   )
   set (EXTERNAL_HEADER_LIST ${EXTERNAL_HEADER_LIST} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/zconf.h)
   if (${compress_type} MATCHES "SVN" OR ${compress_type} MATCHES "TGZ")
-    ADD_DEPENDENCIES (ZLIB-GenHeader-Copy ZLIB)
+    add_dependencies (ZLIB-GenHeader-Copy ZLIB)
   endif (${compress_type} MATCHES "SVN" OR ${compress_type} MATCHES "TGZ")
 ENDMACRO (PACKAGE_ZLIB_LIBRARY)
diff --git a/config/cmake/HDFMacros.cmake b/config/cmake_ext_mod/HDFMacros.cmake
similarity index 51%
rename from config/cmake/HDFMacros.cmake
rename to config/cmake_ext_mod/HDFMacros.cmake
index 56fdf83..a18eea4 100644
--- a/config/cmake/HDFMacros.cmake
+++ b/config/cmake_ext_mod/HDFMacros.cmake
@@ -45,7 +45,7 @@ ENDMACRO (TARGET_NAMING)
 #-------------------------------------------------------------------------------
 MACRO (INSTALL_TARGET_PDB libtarget targetdestination targetcomponent)
   if (WIN32 AND MSVC)
-    get_target_property (target_name ${libtarget} RELWITHDEBINFO_OUTPUT_NAME)
+    get_target_property (target_name ${libtarget} OUTPUT_NAME_RELWITHDEBINFO)
     install (
       FILES
           ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_BUILD_TYPE}/${CMAKE_IMPORT_LIBRARY_PREFIX}${target_name}.pdb
@@ -60,7 +60,7 @@ ENDMACRO (INSTALL_TARGET_PDB)
 #-------------------------------------------------------------------------------
 MACRO (INSTALL_PROGRAM_PDB progtarget targetdestination targetcomponent)
   if (WIN32 AND MSVC)
-    get_target_property (target_name ${progtarget} RELWITHDEBINFO_OUTPUT_NAME)
+    get_target_property (target_name ${progtarget} OUTPUT_NAME_RELWITHDEBINFO)
     get_target_property (target_prefix ${progtarget} PREFIX)
     install (
       FILES
@@ -75,7 +75,6 @@ ENDMACRO (INSTALL_PROGRAM_PDB)
 
 #-------------------------------------------------------------------------------
 MACRO (HDF_SET_LIB_OPTIONS libtarget libname libtype)
-  # message (STATUS "${libname} libtype: ${libtype}")
   if (${libtype} MATCHES "SHARED")
     if (WIN32)
       set (LIB_RELEASE_NAME "${libname}")
@@ -89,23 +88,17 @@ MACRO (HDF_SET_LIB_OPTIONS libtarget libname libtype)
       set (LIB_RELEASE_NAME "lib${libname}")
       set (LIB_DEBUG_NAME "lib${libname}_D")
     else (WIN32)
-      # if the generator supports configuration types or if the CMAKE_BUILD_TYPE has a value
-      if (CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE)
-        set (LIB_RELEASE_NAME "${libname}")
-        set (LIB_DEBUG_NAME "${libname}_debug")
-      else (CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE)
-        set (LIB_RELEASE_NAME "lib${libname}")
-        set (LIB_DEBUG_NAME "lib${libname}_debug")
-      endif (CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE)
+      set (LIB_RELEASE_NAME "${libname}")
+      set (LIB_DEBUG_NAME "${libname}_debug")
     endif (WIN32)
   endif (${libtype} MATCHES "SHARED")
   
   set_target_properties (${libtarget}
       PROPERTIES
-      DEBUG_OUTPUT_NAME          ${LIB_DEBUG_NAME}
-      RELEASE_OUTPUT_NAME        ${LIB_RELEASE_NAME}
-      MINSIZEREL_OUTPUT_NAME     ${LIB_RELEASE_NAME}
-      RELWITHDEBINFO_OUTPUT_NAME ${LIB_RELEASE_NAME}
+      OUTPUT_NAME_DEBUG          ${LIB_DEBUG_NAME}
+      OUTPUT_NAME_RELEASE        ${LIB_RELEASE_NAME}
+      OUTPUT_NAME_MINSIZEREL     ${LIB_RELEASE_NAME}
+      OUTPUT_NAME_RELWITHDEBINFO ${LIB_RELEASE_NAME}
   )
   
   #----- Use MSVC Naming conventions for Shared Libraries
@@ -121,6 +114,62 @@ MACRO (HDF_SET_LIB_OPTIONS libtarget libname libtype)
 ENDMACRO (HDF_SET_LIB_OPTIONS)
 
 #-------------------------------------------------------------------------------
+MACRO (HDF_IMPORT_SET_LIB_OPTIONS libtarget libname libtype libversion)
+  HDF_SET_LIB_OPTIONS (${libtarget} ${libname} ${libtype})
+
+  if (${importtype} MATCHES "IMPORT")
+        set (importprefix "${CMAKE_STATIC_LIBRARY_PREFIX}")
+  endif (${importtype} MATCHES "IMPORT")
+  if (${CMAKE_BUILD_TYPE} MATCHES "Debug")
+    set (IMPORT_LIB_NAME ${LIB_DEBUG_NAME})
+  else (${CMAKE_BUILD_TYPE} MATCHES "Debug")
+    set (IMPORT_LIB_NAME ${LIB_RELEASE_NAME})
+  endif (${CMAKE_BUILD_TYPE} MATCHES "Debug")
+
+  if (${libtype} MATCHES "SHARED")
+    if (WIN32)
+      if (MINGW)
+        set_target_properties (${libtarget} PROPERTIES
+            IMPORTED_IMPLIB "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${IMPORT_LIB_NAME}.lib"
+            IMPORTED_LOCATION "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${IMPORT_LIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}"
+        )
+      else (MINGW)
+        set_target_properties (${libtarget} PROPERTIES
+            IMPORTED_IMPLIB "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_BUILD_TYPE}/${CMAKE_IMPORT_LIBRARY_PREFIX}${IMPORT_LIB_NAME}${CMAKE_IMPORT_LIBRARY_SUFFIX}"
+            IMPORTED_LOCATION "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_BUILD_TYPE}/${CMAKE_IMPORT_LIBRARY_PREFIX}${IMPORT_LIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}"
+        )
+      endif (MINGW)
+    else (WIN32)
+      if (CYGWIN)
+        set_target_properties (${libtarget} PROPERTIES
+            IMPORTED_IMPLIB "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_IMPORT_LIBRARY_PREFIX}${IMPORT_LIB_NAME}${CMAKE_IMPORT_LIBRARY_SUFFIX}"
+            IMPORTED_LOCATION "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_IMPORT_LIBRARY_PREFIX}${IMPORT_LIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}"
+        )
+      else (CYGWIN)
+        set_target_properties (${libtarget} PROPERTIES
+            IMPORTED_LOCATION "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_SHARED_LIBRARY_PREFIX}${IMPORT_LIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}"
+            IMPORTED_SONAME "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_SHARED_LIBRARY_PREFIX}${IMPORT_LIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}.${libversion}"
+            SOVERSION "${libversion}"
+        )
+      endif (CYGWIN)
+    endif (WIN32)
+  else (${libtype} MATCHES "SHARED")
+    if (WIN32 AND NOT MINGW)
+      set_target_properties (${libtarget} PROPERTIES
+          IMPORTED_LOCATION "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_BUILD_TYPE}/${IMPORT_LIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}"
+          IMPORTED_LINK_INTERFACE_LANGUAGES "C"
+      )
+    else (WIN32 AND NOT MINGW)
+      set_target_properties (${libtarget} PROPERTIES
+          IMPORTED_LOCATION "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_STATIC_LIBRARY_PREFIX}${IMPORT_LIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}"
+          IMPORTED_LINK_INTERFACE_LANGUAGES "C"
+      )
+    endif (WIN32 AND NOT MINGW)
+  endif (${libtype} MATCHES "SHARED")
+
+ENDMACRO (HDF_IMPORT_SET_LIB_OPTIONS)
+
+#-------------------------------------------------------------------------------
 MACRO (TARGET_C_PROPERTIES wintarget addcompileflags addlinkflags)
   if (MSVC)
     TARGET_MSVC_PROPERTIES (${wintarget} "${addcompileflags} ${WIN_COMPILE_FLAGS}" "${addlinkflags} ${WIN_LINK_FLAGS}")
@@ -185,3 +234,55 @@ MACRO (TARGET_FORTRAN_WIN_PROPERTIES forttarget addcompileflags addlinkflags)
     endif (BUILD_SHARED_LIBS)
   endif (MSVC)
 ENDMACRO (TARGET_FORTRAN_WIN_PROPERTIES)
+
+#-----------------------------------------------------------------------------
+# Configure the README.txt file for the binary package
+#-----------------------------------------------------------------------------
+MACRO (HDF_README_PROPERTIES target_fortran)
+  set (BINARY_SYSTEM_NAME ${CMAKE_SYSTEM_NAME})
+  set (BINARY_PLATFORM "${CMAKE_SYSTEM_NAME}")
+  if (WIN32)
+    set (BINARY_EXAMPLE_ENDING "zip")
+    set (BINARY_INSTALL_ENDING "exe")
+    if (CMAKE_CL_64)
+      set (BINARY_SYSTEM_NAME "win64")
+    else (CMAKE_CL_64)
+      set (BINARY_SYSTEM_NAME "win32")
+    endif (CMAKE_CL_64)
+    if (${CMAKE_SYSTEM_VERSION} MATCHES "6.1")
+      set (BINARY_PLATFORM "${BINARY_PLATFORM} 7")
+    elseif (${CMAKE_SYSTEM_VERSION} MATCHES "6.2")
+      set (BINARY_PLATFORM "${BINARY_PLATFORM} 8")
+    endif (${CMAKE_SYSTEM_VERSION} MATCHES "6.1")
+    set (BINARY_PLATFORM "${BINARY_PLATFORM} ${MSVC_C_ARCHITECTURE_ID}")
+    if (${CMAKE_C_COMPILER_VERSION} MATCHES "16.*")
+      set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO 2010")
+    elseif (${CMAKE_C_COMPILER_VERSION} MATCHES "15.*")
+      set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO 2008")
+    elseif (${CMAKE_C_COMPILER_VERSION} MATCHES "17.*")
+      set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO 2012")
+    elseif (${CMAKE_C_COMPILER_VERSION} MATCHES "18.*")
+      set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO 2013")
+    else (${CMAKE_C_COMPILER_VERSION} MATCHES "16.*")
+      set (BINARY_PLATFORM "${BINARY_PLATFORM}, using VISUAL STUDIO ${CMAKE_C_COMPILER_VERSION}")
+    endif (${CMAKE_C_COMPILER_VERSION} MATCHES "16.*")
+  elseif (APPLE)
+    set (BINARY_EXAMPLE_ENDING "tar.gz")
+    set (BINARY_INSTALL_ENDING "dmg")
+    set (BINARY_PLATFORM "${BINARY_PLATFORM} ${CMAKE_SYSTEM_VERSION} ${CMAKE_SYSTEM_PROCESSOR}")
+    set (BINARY_PLATFORM "${BINARY_PLATFORM}, using ${CMAKE_C_COMPILER_ID} C ${CMAKE_C_COMPILER_VERSION}")
+  else (WIN32)
+    set (BINARY_EXAMPLE_ENDING "tar.gz")
+    set (BINARY_INSTALL_ENDING "sh")
+    set (BINARY_PLATFORM "${BINARY_PLATFORM} ${CMAKE_SYSTEM_VERSION} ${CMAKE_SYSTEM_PROCESSOR}")
+    set (BINARY_PLATFORM "${BINARY_PLATFORM}, using ${CMAKE_C_COMPILER_ID} C ${CMAKE_C_COMPILER_VERSION}")
+  endif (WIN32)
+  if (target_fortran)
+    set (BINARY_PLATFORM "${BINARY_PLATFORM} / ${CMAKE_Fortran_COMPILER_ID} Fortran")
+  endif (target_fortran)
+    
+  configure_file (
+      ${HDF_RESOURCES_DIR}/README.txt.cmake.in 
+      ${CMAKE_BINARY_DIR}/README.txt @ONLY
+  )
+ENDMACRO (HDF_README_PROPERTIES)
diff --git a/config/cmake/HDF5Tests.c b/config/cmake_ext_mod/HDFTests.c
similarity index 100%
rename from config/cmake/HDF5Tests.c
rename to config/cmake_ext_mod/HDFTests.c
diff --git a/config/cmake/HDF5UseFortran.cmake b/config/cmake_ext_mod/HDFUseFortran.cmake
similarity index 89%
rename from config/cmake/HDF5UseFortran.cmake
rename to config/cmake_ext_mod/HDFUseFortran.cmake
index e65ea21..4955d20 100644
--- a/config/cmake/HDF5UseFortran.cmake
+++ b/config/cmake_ext_mod/HDFUseFortran.cmake
@@ -75,6 +75,8 @@ ENDMACRO (CHECK_FORTRAN_FEATURE)
 #
 # Be careful with leading spaces here, do not remove them.
 #-----------------------------------------------------------------------------
+
+# Check for Non-standard extension intrinsic function SIZEOF
 CHECK_FORTRAN_FEATURE(sizeof
   "
        PROGRAM main
@@ -84,6 +86,32 @@ CHECK_FORTRAN_FEATURE(sizeof
   FORTRAN_HAVE_SIZEOF
 )
 
+# Check for F2008 standard intrinsic function C_SIZEOF
+CHECK_FORTRAN_FEATURE(c_sizeof
+  "
+       PROGRAM main
+         USE ISO_C_BINDING
+         INTEGER(C_INT) :: a
+         INTEGER(C_SIZE_T) :: result
+         result = c_sizeof(a)
+       END PROGRAM
+  "
+  FORTRAN_HAVE_C_SIZEOF
+)
+
+# Check for F2008 standard intrinsic function STORAGE_SIZE
+CHECK_FORTRAN_FEATURE(storage_size
+  "
+       PROGRAM main
+         INTEGER :: a
+         INTEGER :: result
+         result = storage_size(a)
+       END PROGRAM
+  "
+  FORTRAN_HAVE_STORAGE_SIZE
+)
+
+
 CHECK_FORTRAN_FEATURE(RealIsNotDouble
   "
        MODULE type_mod
diff --git a/config/cmake/NSIS.InstallOptions.ini.in b/config/cmake_ext_mod/NSIS.InstallOptions.ini.in
similarity index 82%
rename from config/cmake/NSIS.InstallOptions.ini.in
rename to config/cmake_ext_mod/NSIS.InstallOptions.ini.in
index 83ca053..35c1033 100644
--- a/config/cmake/NSIS.InstallOptions.ini.in
+++ b/config/cmake_ext_mod/NSIS.InstallOptions.ini.in
@@ -3,7 +3,7 @@ NumFields=5
 
 [Field 1]
 Type=label
-Text=By default @CPACK_PACKAGE_INSTALL_DIRECTORY@ does add its directory to the system PATH.
+Text=By default the @CPACK_PACKAGE_INSTALL_DIRECTORY@/bin directory is added to the system PATH.
 Left=0
 Right=-1
 Top=0
diff --git a/config/cmake/NSIS.template.in b/config/cmake_ext_mod/NSIS.template.in
similarity index 100%
rename from config/cmake/NSIS.template.in
rename to config/cmake_ext_mod/NSIS.template.in
diff --git a/config/cmake/grepTest.cmake b/config/cmake_ext_mod/grepTest.cmake
similarity index 100%
rename from config/cmake/grepTest.cmake
rename to config/cmake_ext_mod/grepTest.cmake
diff --git a/config/cmake/hdf.bmp b/config/cmake_ext_mod/hdf.bmp
similarity index 100%
rename from config/cmake/hdf.bmp
rename to config/cmake_ext_mod/hdf.bmp
diff --git a/config/cmake/hdf.icns b/config/cmake_ext_mod/hdf.icns
old mode 100755
new mode 100644
similarity index 100%
rename from config/cmake/hdf.icns
rename to config/cmake_ext_mod/hdf.icns
diff --git a/config/cmake/hdf.ico b/config/cmake_ext_mod/hdf.ico
similarity index 100%
rename from config/cmake/hdf.ico
rename to config/cmake_ext_mod/hdf.ico
diff --git a/config/cmake/prunTest.cmake b/config/cmake_ext_mod/prunTest.cmake
similarity index 100%
rename from config/cmake/prunTest.cmake
rename to config/cmake_ext_mod/prunTest.cmake
diff --git a/config/cmake/runTest.cmake b/config/cmake_ext_mod/runTest.cmake
similarity index 90%
rename from config/cmake/runTest.cmake
rename to config/cmake_ext_mod/runTest.cmake
index 879426c..bfaae2b 100644
--- a/config/cmake/runTest.cmake
+++ b/config/cmake_ext_mod/runTest.cmake
@@ -35,16 +35,30 @@ if (TEST_ENV_VAR)
   set (ENV{${TEST_ENV_VAR}} "${TEST_ENV_VALUE}") 
 endif (TEST_ENV_VAR)
 
-# run the test program, capture the stdout/stderr and the result var
-EXECUTE_PROCESS (
-    COMMAND ${TEST_PROGRAM} ${TEST_ARGS}
-    WORKING_DIRECTORY ${TEST_FOLDER}
-    RESULT_VARIABLE TEST_RESULT
-    OUTPUT_FILE ${TEST_OUTPUT}
-    ERROR_FILE ${TEST_OUTPUT}.err
-    OUTPUT_VARIABLE TEST_ERROR
-    ERROR_VARIABLE TEST_ERROR
-)
+if (NOT TEST_INPUT)
+  # run the test program, capture the stdout/stderr and the result var
+  EXECUTE_PROCESS (
+      COMMAND ${TEST_PROGRAM} ${TEST_ARGS}
+      WORKING_DIRECTORY ${TEST_FOLDER}
+      RESULT_VARIABLE TEST_RESULT
+      OUTPUT_FILE ${TEST_OUTPUT}
+      ERROR_FILE ${TEST_OUTPUT}.err
+      OUTPUT_VARIABLE TEST_ERROR
+      ERROR_VARIABLE TEST_ERROR
+  )
+else (NOT TEST_INPUT)
+  # run the test program with stdin, capture the stdout/stderr and the result var
+  EXECUTE_PROCESS (
+      COMMAND ${TEST_PROGRAM} ${TEST_ARGS}
+      WORKING_DIRECTORY ${TEST_FOLDER}
+      RESULT_VARIABLE TEST_RESULT
+      INPUT_FILE ${TEST_INPUT}
+      OUTPUT_FILE ${TEST_OUTPUT}
+      ERROR_FILE ${TEST_OUTPUT}.err
+      OUTPUT_VARIABLE TEST_ERROR
+      ERROR_VARIABLE TEST_ERROR
+  )
+endif (NOT TEST_INPUT)
 
 message (STATUS "COMMAND Result: ${TEST_RESULT}")
 
diff --git a/config/cmake/version.plist.in b/config/cmake_ext_mod/version.plist.in
similarity index 100%
rename from config/cmake/version.plist.in
rename to config/cmake_ext_mod/version.plist.in
diff --git a/config/gnu-flags b/config/gnu-flags
index b965bf0..5f36eaa 100644
--- a/config/gnu-flags
+++ b/config/gnu-flags
@@ -186,10 +186,86 @@ esac
 # the information from the previous version and adding modifications to that.
 case "$cc_vendor-$cc_version" in
 
-# Closer to the gcc 4.9 release, we should check for additional flags to
+# Closer to the gcc 4.10 release, we should check for additional flags to
 # include and break it out into it's own section, like the other versions
 # below. -QAK
-  gcc-4.[89]*)
+  gcc-4.9*)
+    # Replace -ansi flag with -std=c99 flag
+    H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-ansi/-std=c99/g'`"
+
+    # Append warning flags
+    # Don't use the '-Wtraditional' flag, we're way past having K&R C code
+    # H5_CFLAGS="$H5_CFLAGS -Wtraditional"
+    # Don't use the '-Wtraditional-conversion' flag, there's too many warnings
+    #  from GCC's assert macro
+    # H5_CFLAGS="$H5_CFLAGS -Wtraditional-conversion"
+
+    # Append warning flags from gcc-3* case
+    # (don't use -Wpadded flag for normal builds, many of the warnings its
+    #   issuing can't be fixed and they are making it hard to detect other,
+    #   more important warnings)
+    #H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute -Wpadded"
+    H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute"
+
+    # Append warning flags from gcc-3.2* case
+    H5_CFLAGS="$H5_CFLAGS -Wmissing-noreturn -Wpacked -Wdisabled-optimization"
+
+    # Enable more format checking flags, beyond the basic -Wformat included
+    # in -Wall
+    H5_CFLAGS="$H5_CFLAGS -Wformat=2"
+
+    # The "unreachable code" warning appears to be reliable now...
+    H5_CFLAGS="$H5_CFLAGS -Wunreachable-code"
+
+    # Append warning flags from gcc-3.3* case
+    H5_CFLAGS="$H5_CFLAGS -Wendif-labels"
+
+    # Append warning flags from gcc-3.4* case
+    H5_CFLAGS="$H5_CFLAGS -Wdeclaration-after-statement -Wold-style-definition -Winvalid-pch"
+
+    # Replace old -W flag with new -Wextra flag
+    H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-W\ /-Wextra\ /g'`"
+
+    # Append more extra warning flags that only gcc4.0+ know about
+    H5_CFLAGS="$H5_CFLAGS -Wvariadic-macros -Winit-self -Wmissing-include-dirs -Wswitch-default -Wswitch-enum -Wunused-macros"
+
+    # Append more extra warning flags that only gcc 4.1+ know about
+    H5_CFLAGS="$H5_CFLAGS -Wunsafe-loop-optimizations -Wc++-compat"
+
+    # Append more extra warning flags that only gcc 4.2+ know about
+    H5_CFLAGS="$H5_CFLAGS -Wstrict-overflow"
+
+    # Append more extra warning flags that only gcc 4.3+ know about
+    #
+    # Technically, variable-length arrays are part of the C99 standard, but
+    #   we should approach them a bit cautiously... -QAK
+    H5_CFLAGS="$H5_CFLAGS -Wlogical-op -Wlarger-than=2048 -Wvla"
+
+    # Append more extra warning flags that only gcc 4.4+ know about
+    H5_CFLAGS="$H5_CFLAGS -Wsync-nand -Wframe-larger-than=16384 -Wpacked-bitfield-compat"
+
+    # Append more extra warning flags that only gcc 4.5+ know about
+    H5_CFLAGS="$H5_CFLAGS -Wstrict-overflow=5 -Wjump-misses-init -Wunsuffixed-float-constants"
+
+    # Append more extra warning flags that only gcc 4.6+ know about
+    H5_CFLAGS="$H5_CFLAGS -Wdouble-promotion -Wsuggest-attribute=const -Wtrampolines"
+
+    # Append more extra warning flags that only gcc 4.7+ know about
+    H5_CFLAGS="$H5_CFLAGS -Wstack-usage=8192 -Wvector-operation-performance -Wsuggest-attribute=pure -Wsuggest-attribute=noreturn"
+
+    # Append more extra warning flags that only gcc 4.8+ know about
+    H5_CFLAGS="$H5_CFLAGS -Wsuggest-attribute=format"
+
+    # Append more extra warning flags that only gcc 4.9+ know about
+    H5_CFLAGS="$H5_CFLAGS -Wdate-time -Wopenmp-simd"
+
+    # Try out the new "stack protector" feature in gcc 4.1
+    # (Strictly speaking this isn't really a "warning" flag, so it's added to
+    #   the debugging flags)
+    #DEBUG_CFLAGS="$DEBUG_CFLAGS -Wstack-protector -fstack-protector-all"
+    ;;
+
+  gcc-4.8*)
     # Replace -ansi flag with -std=c99 flag
     H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-ansi/-std=c99/g'`"
 
@@ -617,7 +693,7 @@ case "$cc_vendor-$cc_version" in
     #DEBUG_CFLAGS="$DEBUG_CFLAGS -Wstack-protector -fstack-protector-all"
     ;;
 
-  gcc-4.1*)
+  gcc-4.1.*)
     # Replace -ansi flag with -std=c99 flag
     H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-ansi/-std=c99/g'`"
 
diff --git a/config/lt_vers.am b/config/lt_vers.am
index d7d5848..6bba170 100644
--- a/config/lt_vers.am
+++ b/config/lt_vers.am
@@ -16,8 +16,10 @@
 ##
 # Add libtool shared library version numbers to the HDF5 library
 # See libtool versioning documentation online.
-LT_VERS_INTERFACE = 8
-LT_VERS_REVISION = 2 
+# After making changes, run bin/reconfigure to update other configure related
+# files like Makefile.in.
+LT_VERS_INTERFACE = 9
+LT_VERS_REVISION = 0
 LT_VERS_AGE = 0
 
 ## If the API changes *at all*, increment LT_VERS_INTERFACE and
diff --git a/configure b/configure
index f1b9ed1..cedf33d 100755
--- a/configure
+++ b/configure
@@ -1,7 +1,7 @@
 #! /bin/sh
-# From configure.ac Id: configure.ac 25134 2014-04-29 01:57:33Z epourmal .
+# From configure.ac Id: configure.ac 25753 2014-10-29 23:01:13Z acheng .
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for HDF5 1.8.13.
+# Generated by GNU Autoconf 2.69 for HDF5 1.8.14.
 #
 # Report bugs to <help at hdfgroup.org>.
 #
@@ -591,8 +591,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='HDF5'
 PACKAGE_TARNAME='hdf5'
-PACKAGE_VERSION='1.8.13'
-PACKAGE_STRING='HDF5 1.8.13'
+PACKAGE_VERSION='1.8.14'
+PACKAGE_STRING='HDF5 1.8.14'
 PACKAGE_BUGREPORT='help at hdfgroup.org'
 PACKAGE_URL=''
 
@@ -675,7 +675,6 @@ USE_FILTER_NBIT
 USE_FILTER_FLETCHER32
 USE_FILTER_SHUFFLE
 FILTERS
-MPI_GET_SIZE
 ADD_PARALLEL_FILES
 USINGMEMCHECKER
 CLEARFILEBUF
@@ -739,6 +738,10 @@ FORTRAN_DEFAULT_REALisDBLE_F_FALSE
 FORTRAN_DEFAULT_REALisDBLE_F_TRUE
 FORTRAN_2003_CONDITIONAL_F_FALSE
 FORTRAN_2003_CONDITIONAL_F_TRUE
+FORTRAN_HAVE_STORAGE_SIZE_FALSE
+FORTRAN_HAVE_STORAGE_SIZE_TRUE
+FORTRAN_HAVE_C_SIZEOF_FALSE
+FORTRAN_HAVE_C_SIZEOF_TRUE
 FORTRAN_HAVE_SIZEOF_FALSE
 FORTRAN_HAVE_SIZEOF_TRUE
 FCLIBS
@@ -919,7 +922,6 @@ enable_clear_file_buffers
 enable_using_memchecker
 enable_parallel
 with_mpe
-enable_mpi_size
 enable_filters
 with_default_vfd
 enable_direct_vfd
@@ -1488,7 +1490,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures HDF5 1.8.13 to adapt to many kinds of systems.
+\`configure' configures HDF5 1.8.14 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1558,7 +1560,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of HDF5 1.8.13:";;
+     short | recursive ) echo "Configuration of HDF5 1.8.14:";;
    esac
   cat <<\_ACEOF
 
@@ -1618,11 +1620,6 @@ Optional Features:
                           picky about it's memory operations and also disables
                           the library's free space manager code. Default=no.
   --enable-parallel       Search for MPI-IO and MPI support files
-  --enable-mpi-size       Some systems (only SGI Altix Propack 4 so far)
-                          return wrong value from MPI_File_get_size. By
-                          disabling this function, the library will replace it
-                          with stat to get the correct file size.
-                          [default=yes]
   --enable-filters=all    Turn on all internal I/O filters. One may also
                           specify a comma-separated list of filters or the
                           word no. The default is all internal I/O filters.
@@ -1759,7 +1756,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-HDF5 configure 1.8.13
+HDF5 configure 1.8.14
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2853,7 +2850,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by HDF5 $as_me 1.8.13, which was
+It was created by HDF5 $as_me 1.8.14, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3724,7 +3721,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='hdf5'
- VERSION='1.8.13'
+ VERSION='1.8.14'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -4010,7 +4007,12 @@ AM_CFLAGS="${AM_CFLAGS}"
 AM_CXXFLAGS="${AM_CXXFLAGS}"
 AM_FCFLAGS="${AM_FCFLAGS}"
 AM_CPPFLAGS="${AM_CPPFLAGS}"
-AM_LDFLAGS="${AM_LDFLAGS}"
+# Added to address HDFFV-8944
+if test "x$prefix" = xNONE; then
+  AM_LDFLAGS="$AM_LDFLAGS -L$ac_default_prefix/lib"
+else
+  AM_LDFLAGS="$AM_LDFLAGS -L$prefix/lib"
+fi
 CFLAGS="${CFLAGS}"
 CXXFLAGS="${CXXFLAGS}"
 FCFLAGS="${FCFLAGS}"
@@ -5364,6 +5366,8 @@ else
 fi
 
 HAVE_SIZEOF="no"
+HAVE_C_SIZEOF="no"
+HAVE_STORAGE_SIZE="no"
 FORTRAN_DEFAULT_REALisDBLE="no"
 
 if test "X$HDF_FORTRAN" = "Xyes"; then
@@ -6703,6 +6707,71 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
 fi
 
 
+  ## See if the fortran compiler supports the intrinsic function "C_SIZEOF"
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if Fortran compiler supports intrinsic C_SIZEOF" >&5
+$as_echo_n "checking if Fortran compiler supports intrinsic C_SIZEOF... " >&6; }
+  if test "$cross_compiling" = yes; then :
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot run test program while cross compiling
+See \`config.log' for more details" "$LINENO" 5; }
+else
+  cat > conftest.$ac_ext <<_ACEOF
+
+   PROGRAM main
+     USE ISO_C_BINDING
+     INTEGER(C_INT) :: a
+     INTEGER(C_SIZE_T) :: result
+     result = C_SIZEOF(a)
+   END PROGRAM
+
+_ACEOF
+if ac_fn_fc_try_run "$LINENO"; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+     	HAVE_C_SIZEOF="yes"
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+  ## See if the fortran compiler supports the intrinsic function "STORAGE_SIZE"
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if Fortran compiler supports intrinsic STORAGE_SIZE" >&5
+$as_echo_n "checking if Fortran compiler supports intrinsic STORAGE_SIZE... " >&6; }
+  if test "$cross_compiling" = yes; then :
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot run test program while cross compiling
+See \`config.log' for more details" "$LINENO" 5; }
+else
+  cat > conftest.$ac_ext <<_ACEOF
+
+   PROGRAM main
+     INTEGER :: a
+     INTEGER :: result
+     result = STORAGE_SIZE(a)
+   END PROGRAM
+
+_ACEOF
+if ac_fn_fc_try_run "$LINENO"; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+     	HAVE_STORAGE_SIZE="yes"
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
   ## Check to see if -r8 was specified to determine if we need to
   ## compile the DOUBLE PRECISION interfaces.
 
@@ -6813,6 +6882,22 @@ else
   FORTRAN_HAVE_SIZEOF_FALSE=
 fi
 
+ if test "X$HAVE_C_SIZEOF" = "Xyes"; then
+  FORTRAN_HAVE_C_SIZEOF_TRUE=
+  FORTRAN_HAVE_C_SIZEOF_FALSE='#'
+else
+  FORTRAN_HAVE_C_SIZEOF_TRUE='#'
+  FORTRAN_HAVE_C_SIZEOF_FALSE=
+fi
+
+ if test "X$HAVE_STORAGE_SIZE" = "Xyes"; then
+  FORTRAN_HAVE_STORAGE_SIZE_TRUE=
+  FORTRAN_HAVE_STORAGE_SIZE_FALSE='#'
+else
+  FORTRAN_HAVE_STORAGE_SIZE_TRUE='#'
+  FORTRAN_HAVE_STORAGE_SIZE_FALSE=
+fi
+
  if test "X$HAVE_FORTRAN_2003" = "Xyes"; then
   FORTRAN_2003_CONDITIONAL_F_TRUE=
   FORTRAN_2003_CONDITIONAL_F_FALSE='#'
@@ -6830,6 +6915,8 @@ else
 fi
 
 
+
+
 ## ----------------------------------------------------------------------
 ## Check if they would like the C++ interface compiled
 ##
@@ -27307,7 +27394,7 @@ _ACEOF
 fi
 done
 
-for ac_func in tmpfile vasprintf waitpid
+for ac_func in tmpfile asprintf vasprintf waitpid
 do :
   as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
 ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
@@ -29169,65 +29256,6 @@ fi
 $as_echo "#define HAVE_MPE 1" >>confdefs.h
 
   fi
-
-  ## ----------------------------------------------------------------------
-  ## Set the flag to indicate that the MPI_File_set_size() function
-  ## works with files over 2GB, unless it's already set in the cache.
-  ## (This flag should be set for all machines, except for ASCI Red, where
-  ## the cache value is set in it's config file)
-  ##
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MPI_File_set_size works for files over 2GB" >&5
-$as_echo_n "checking if MPI_File_set_size works for files over 2GB... " >&6; }
-  if ${hdf5_cv_mpi_file_set_size_big+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  hdf5_cv_mpi_file_set_size_big=yes
-fi
-
-
-  if test ${hdf5_cv_mpi_file_set_size_big} = "yes"; then
-
-$as_echo "#define MPI_FILE_SET_SIZE_BIG 1" >>confdefs.h
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-  else
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-  fi
-
-  ## ----------------------------------------------------------------------
-  ## Set the flag to indicate that the MPI_File_get_size() function
-  ## works.  The default is enabled unless the user knows the function
-  ## doesn't work on the system and disables it.  (This flag should be set
-  ## for all machines except for SGI Altix Propack 4 where the function
-  ## doesn't return correct file size.)
-  ##
-  # Check whether --enable-mpi-size was given.
-if test "${enable_mpi_size+set}" = set; then :
-  enableval=$enable_mpi_size; MPI_GET_SIZE=$enableval
-fi
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if MPI_File_get_size is enabled" >&5
-$as_echo_n "checking if MPI_File_get_size is enabled... " >&6; }
-
-
-  case "X-$MPI_GET_SIZE" in
-    X-no)
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-      MPI_GET_SIZE=no
-      ;;
-    X-yes|*)
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-      MPI_GET_SIZE=yes
-
-$as_echo "#define HAVE_MPI_GET_SIZE 1" >>confdefs.h
-
-      ;;
-  esac
 fi
 
 ## ----------------------------------------------------------------------
@@ -30973,10 +31001,17 @@ if test "X$HDF5_HL" = "Xyes"; then
 
 $as_echo "#define INCLUDE_HL 1" >>confdefs.h
 
+
+## Check if Fortran's default real is double precision. If it is and HL is being built then configure
+## should fail due to bug HDFFV-889.
+  if test "X$FORTRAN_DEFAULT_REALisDBLE" = "Xyes"; then
+    as_fn_error $? "Fortran high-level routines are not supported when the default REAL is DOUBLE PRECISION, use configure option --disable-hl." "$LINENO" 5
+  fi
 else
  echo "no"
 fi
 
+
 ## ----------------------------------------------------------------------
 ## Some programs shouldn't be built by default (e.g., programs to generate
 ## data files used by tests, some optional tests).
@@ -31721,7 +31756,7 @@ Usage: $0 [OPTIONS]
 Report bugs to <bug-libtool at gnu.org>."
 
 lt_cl_version="\
-HDF5 config.lt 1.8.13
+HDF5 config.lt 1.8.14
 configured by $0, generated by GNU Autoconf 2.69.
 
 Copyright (C) 2011 Free Software Foundation, Inc.
@@ -33401,6 +33436,14 @@ if test -z "${FORTRAN_HAVE_SIZEOF_TRUE}" && test -z "${FORTRAN_HAVE_SIZEOF_FALSE
   as_fn_error $? "conditional \"FORTRAN_HAVE_SIZEOF\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+if test -z "${FORTRAN_HAVE_C_SIZEOF_TRUE}" && test -z "${FORTRAN_HAVE_C_SIZEOF_FALSE}"; then
+  as_fn_error $? "conditional \"FORTRAN_HAVE_C_SIZEOF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${FORTRAN_HAVE_STORAGE_SIZE_TRUE}" && test -z "${FORTRAN_HAVE_STORAGE_SIZE_FALSE}"; then
+  as_fn_error $? "conditional \"FORTRAN_HAVE_STORAGE_SIZE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 if test -z "${FORTRAN_2003_CONDITIONAL_F_TRUE}" && test -z "${FORTRAN_2003_CONDITIONAL_F_FALSE}"; then
   as_fn_error $? "conditional \"FORTRAN_2003_CONDITIONAL_F\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -33855,7 +33898,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by HDF5 $as_me 1.8.13, which was
+This file was extended by HDF5 $as_me 1.8.14, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -33921,7 +33964,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-HDF5 config.status 1.8.13
+HDF5 config.status 1.8.14
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/configure.ac b/configure.ac
index d8a67b7..71070ba 100644
--- a/configure.ac
+++ b/configure.ac
@@ -16,7 +16,7 @@
 ## ----------------------------------------------------------------------
 ## Initialize configure.
 ##
-AC_REVISION($Id: configure.ac 25134 2014-04-29 01:57:33Z epourmal $)
+AC_REVISION($Id: configure.ac 25805 2014-11-07 13:00:29Z epourmal $)
 AC_PREREQ([2.69])
 
 ## AC_INIT takes the name of the package, the version number, and an
@@ -26,7 +26,7 @@ AC_PREREQ([2.69])
 ## NOTE: Do not forget to change the version number here when we do a
 ## release!!!
 ##
-AC_INIT([HDF5], [1.8.13], [help at hdfgroup.org])
+AC_INIT([HDF5], [1.8.14], [help at hdfgroup.org])
 AC_CONFIG_SRCDIR([src/H5.c])
 AC_CONFIG_HEADER([src/H5config.h])
 
@@ -115,7 +115,12 @@ AM_CFLAGS="${AM_CFLAGS}"
 AM_CXXFLAGS="${AM_CXXFLAGS}"
 AM_FCFLAGS="${AM_FCFLAGS}"
 AM_CPPFLAGS="${AM_CPPFLAGS}"
-AM_LDFLAGS="${AM_LDFLAGS}"
+# Added to address HDFFV-8944
+if test "x$prefix" = xNONE; then
+  AM_LDFLAGS="$AM_LDFLAGS -L$ac_default_prefix/lib"
+else
+  AM_LDFLAGS="$AM_LDFLAGS -L$prefix/lib"
+fi
 CFLAGS="${CFLAGS}"
 CXXFLAGS="${CXXFLAGS}"
 FCFLAGS="${FCFLAGS}"
@@ -403,6 +408,8 @@ else
 fi
 
 HAVE_SIZEOF="no"
+HAVE_C_SIZEOF="no"
+HAVE_STORAGE_SIZE="no"
 FORTRAN_DEFAULT_REALisDBLE="no"
 
 if test "X$HDF_FORTRAN" = "Xyes"; then
@@ -483,6 +490,33 @@ if test "X$HDF_FORTRAN" = "Xyes"; then
      	HAVE_SIZEOF="yes"],
      [AC_MSG_RESULT([no])])
 
+  ## See if the fortran compiler supports the intrinsic function "C_SIZEOF"
+
+  AC_MSG_CHECKING([if Fortran compiler supports intrinsic C_SIZEOF])
+  AC_TRY_RUN([ 
+   PROGRAM main
+     USE ISO_C_BINDING
+     INTEGER(C_INT) :: a
+     INTEGER(C_SIZE_T) :: result
+     result = C_SIZEOF(a)
+   END PROGRAM
+  ], [AC_MSG_RESULT([yes])
+     	HAVE_C_SIZEOF="yes"],
+     [AC_MSG_RESULT([no])])
+
+  ## See if the fortran compiler supports the intrinsic function "STORAGE_SIZE"
+
+  AC_MSG_CHECKING([if Fortran compiler supports intrinsic STORAGE_SIZE])
+  AC_TRY_RUN([ 
+   PROGRAM main
+     INTEGER :: a
+     INTEGER :: result
+     result = STORAGE_SIZE(a)
+   END PROGRAM
+  ], [AC_MSG_RESULT([yes])
+     	HAVE_STORAGE_SIZE="yes"],
+     [AC_MSG_RESULT([no])])
+
   ## Check to see if -r8 was specified to determine if we need to
   ## compile the DOUBLE PRECISION interfaces.
 
@@ -552,9 +586,13 @@ fi
 AC_LANG_POP(Fortran)
 
 AM_CONDITIONAL([FORTRAN_HAVE_SIZEOF], [test "X$HAVE_SIZEOF" = "Xyes"])
+AM_CONDITIONAL([FORTRAN_HAVE_C_SIZEOF], [test "X$HAVE_C_SIZEOF" = "Xyes"])
+AM_CONDITIONAL([FORTRAN_HAVE_STORAGE_SIZE], [test "X$HAVE_STORAGE_SIZE" = "Xyes"])
 AM_CONDITIONAL([FORTRAN_2003_CONDITIONAL_F], [test "X$HAVE_FORTRAN_2003" = "Xyes"])
 AM_CONDITIONAL([FORTRAN_DEFAULT_REALisDBLE_F], [test "X$FORTRAN_DEFAULT_REALisDBLE" = "Xyes"])
 
+
+
 ## ----------------------------------------------------------------------
 ## Check if they would like the C++ interface compiled
 ##
@@ -2217,7 +2255,7 @@ AC_CHECK_FUNCS([gethostname getpwuid getrusage lstat])
 AC_CHECK_FUNCS([rand_r random setsysinfo])
 AC_CHECK_FUNCS([signal longjmp setjmp siglongjmp sigsetjmp sigprocmask])
 AC_CHECK_FUNCS([snprintf srandom strdup symlink system])
-AC_CHECK_FUNCS([tmpfile vasprintf waitpid])
+AC_CHECK_FUNCS([tmpfile asprintf vasprintf waitpid])
 
 ## Check for vsnprintf() separately, so we can detect situations where it
 ## doesn't return the correct size for formatted strings that are too large
@@ -2884,54 +2922,6 @@ if test -n "$PARALLEL"; then
   if test "X-$MPE" = "X-yes"; then
     AC_DEFINE([HAVE_MPE], [1], [Define if we have MPE support])
   fi
-
-  ## ----------------------------------------------------------------------
-  ## Set the flag to indicate that the MPI_File_set_size() function
-  ## works with files over 2GB, unless it's already set in the cache.
-  ## (This flag should be set for all machines, except for ASCI Red, where
-  ## the cache value is set in it's config file)
-  ##
-  AC_MSG_CHECKING([if MPI_File_set_size works for files over 2GB])
-  AC_CACHE_VAL([hdf5_cv_mpi_file_set_size_big], [hdf5_cv_mpi_file_set_size_big=yes])
-  
-  if test ${hdf5_cv_mpi_file_set_size_big} = "yes"; then
-    AC_DEFINE([MPI_FILE_SET_SIZE_BIG], [1],
-              [Define if your system's `MPI_File_set_size' function works for files over 2GB.])
-    AC_MSG_RESULT([yes])
-  else
-    AC_MSG_RESULT([no])
-  fi
-
-  ## ----------------------------------------------------------------------
-  ## Set the flag to indicate that the MPI_File_get_size() function
-  ## works.  The default is enabled unless the user knows the function
-  ## doesn't work on the system and disables it.  (This flag should be set
-  ## for all machines except for SGI Altix Propack 4 where the function 
-  ## doesn't return correct file size.)
-  ##
-  AC_ARG_ENABLE([mpi-size],
-                [AS_HELP_STRING([--enable-mpi-size],
-                                [Some systems (only SGI Altix Propack 4 so far) return wrong value
-                                 from MPI_File_get_size.  By disabling this function, the library
-                                 will replace it with stat to get the correct file size.
-                                 [default=yes]])],
-                [MPI_GET_SIZE=$enableval])
-
-  AC_MSG_CHECKING([if MPI_File_get_size is enabled])
-
-  AC_SUBST(MPI_GET_SIZE)
-  case "X-$MPI_GET_SIZE" in
-    X-no)
-      AC_MSG_RESULT([no])
-      MPI_GET_SIZE=no
-      ;;
-    X-yes|*)
-      AC_MSG_RESULT([yes])
-      MPI_GET_SIZE=yes
-      AC_DEFINE([HAVE_MPI_GET_SIZE], [1],
-                [Define if MPI_File_get_size works correctly])
-      ;;
-  esac
 fi
 
 ## ----------------------------------------------------------------------
@@ -4190,10 +4180,17 @@ if test "X$HDF5_HL" = "Xyes"; then
  HL="hl"
  AC_DEFINE([INCLUDE_HL], [1],
            [Define if HDF5's high-level library headers should be included in hdf5.h])
+
+## Check if Fortran's default real is double precision. If it is and HL is being built then configure
+## should fail due to bug HDFFV-889.
+  if test "X$FORTRAN_DEFAULT_REALisDBLE" = "Xyes"; then
+    AC_MSG_ERROR([Fortran high-level routines are not supported when the default REAL is DOUBLE PRECISION, use configure option --disable-hl.])
+  fi
 else
  echo "no"
 fi
 
+
 ## ----------------------------------------------------------------------
 ## Some programs shouldn't be built by default (e.g., programs to generate
 ## data files used by tests, some optional tests).
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
index fe8216d..4cd72a0 100644
--- a/examples/CMakeLists.txt
+++ b/examples/CMakeLists.txt
@@ -4,7 +4,7 @@ PROJECT (HDF5_EXAMPLES)
 #-----------------------------------------------------------------------------
 # Apply Definitions to compiler in this directory and below
 #-----------------------------------------------------------------------------
-add_definitions (${HDF5_EXTRA_C_FLAGS})
+add_definitions (${HDF_EXTRA_C_FLAGS})
 
 #-----------------------------------------------------------------------------
 # Define Sources
diff --git a/examples/Makefile.in b/examples/Makefile.in
index 02db80c..71a9b4c 100644
--- a/examples/Makefile.in
+++ b/examples/Makefile.in
@@ -452,7 +452,6 @@ MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MPE = @MPE@
-MPI_GET_SIZE = @MPI_GET_SIZE@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
diff --git a/examples/h5_cmprss.c b/examples/h5_cmprss.c
index 4a2f982..8d365a3 100644
--- a/examples/h5_cmprss.c
+++ b/examples/h5_cmprss.c
@@ -1,125 +1,125 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * Copyright by The HDF Group.                                               *
- * Copyright by the Board of Trustees of the University of Illinois.         *
- * All rights reserved.                                                      *
- *                                                                           *
- * This file is part of HDF5.  The full HDF5 copyright notice, including     *
- * terms governing use, modification, and redistribution, is contained in    *
- * the files COPYING and Copyright.html.  COPYING can be found at the root   *
- * of the source code distribution tree; Copyright.html can be found at the  *
- * root level of an installed copy of the electronic HDF5 document set and   *
- * is linked from the top-level documents page.  It can also be found at     *
- * http://hdfgroup.org/HDF5/doc/Copyright.html.  If you do not have          *
- * access to either file, you may request a copy from help at hdfgroup.org.     *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-/* 
- *  This example illustrates how to create a compressed dataset.
- *  It is used in the HDF5 Tutorial.
- */ 
-
-#include "hdf5.h"
-
-#define FILE    "cmprss.h5"
-#define RANK    2
-#define DIM0    100
-#define DIM1    20
- 
-int main () {
-
-    hid_t    file_id, dataset_id, dataspace_id; /* identifiers */
-    hid_t    plist_id; 
-
-    size_t   nelmts;
-    unsigned flags, filter_info;
-    H5Z_filter_t filter_type;
-
-    herr_t   status;
-    hsize_t  dims[2];
-    hsize_t  cdims[2];
- 
-    int      idx;
-    int      i,j, numfilt;
-    int      buf[DIM0][DIM1];
-    int      rbuf [DIM0][DIM1];
-
-    /* Uncomment these variables to use SZIP compression 
-    unsigned szip_options_mask;
-    unsigned szip_pixels_per_block;
-    */
-
-    /* Create a file.  */
-    file_id = H5Fcreate (FILE, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
-
-
-    /* Create dataset "Compressed Data" in the group using absolute name.  */
-    dims[0] = DIM0;
-    dims[1] = DIM1;
-    dataspace_id = H5Screate_simple (RANK, dims, NULL);
-
-    plist_id  = H5Pcreate (H5P_DATASET_CREATE);
-
-    /* Dataset must be chunked for compression */
-    cdims[0] = 20;
-    cdims[1] = 20;
-    status = H5Pset_chunk (plist_id, 2, cdims);
-
-    /* Set ZLIB / DEFLATE Compression using compression level 6.
-     * To use SZIP Compression comment out these lines. 
-    */ 
-    status = H5Pset_deflate (plist_id, 6); 
-
-    /* Uncomment these lines to set SZIP Compression 
-    szip_options_mask = H5_SZIP_NN_OPTION_MASK;
-    szip_pixels_per_block = 16;
-    status = H5Pset_szip (plist_id, szip_options_mask, szip_pixels_per_block);
-    */
-    
-    dataset_id = H5Dcreate2 (file_id, "Compressed_Data", H5T_STD_I32BE, 
-                            dataspace_id, H5P_DEFAULT, plist_id, H5P_DEFAULT); 
-
-    for (i = 0; i< DIM0; i++) 
-        for (j=0; j<DIM1; j++) 
-           buf[i][j] = i+j;
-
-    status = H5Dwrite (dataset_id, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, buf);
-
-    status = H5Sclose (dataspace_id);
-    status = H5Dclose (dataset_id);
-    status = H5Pclose (plist_id);
-    status = H5Fclose (file_id);
-
-    /* Now reopen the file and dataset in the file. */
-    file_id = H5Fopen (FILE, H5F_ACC_RDWR, H5P_DEFAULT);
-    dataset_id = H5Dopen2 (file_id, "Compressed_Data", H5P_DEFAULT);
-
-    /* Retrieve filter information. */
-    plist_id = H5Dget_create_plist (dataset_id);
-    
-    numfilt = H5Pget_nfilters (plist_id);
-    printf ("Number of filters associated with dataset: %i\n", numfilt);
-     
-    for (i=0; i<numfilt; i++) {
-       nelmts = 0;
-       filter_type = H5Pget_filter2 (plist_id, 0, &flags, &nelmts, NULL, 0, NULL,
-                     &filter_info);
-       printf ("Filter Type: ");
-       switch (filter_type) {
-         case H5Z_FILTER_DEFLATE:
-              printf ("H5Z_FILTER_DEFLATE\n");
-              break;
-         case H5Z_FILTER_SZIP:
-              printf ("H5Z_FILTER_SZIP\n");
-              break;
-         default:
-              printf ("Other filter type included.\n");
-         }
-    }
-
-    status = H5Dread (dataset_id, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, 
-                      H5P_DEFAULT, rbuf); 
-    
-    status = H5Dclose (dataset_id);
-    status = H5Pclose (plist_id);
-    status = H5Fclose (file_id);
-}
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * Copyright by The HDF Group.                                               *
+ * Copyright by the Board of Trustees of the University of Illinois.         *
+ * All rights reserved.                                                      *
+ *                                                                           *
+ * This file is part of HDF5.  The full HDF5 copyright notice, including     *
+ * terms governing use, modification, and redistribution, is contained in    *
+ * the files COPYING and Copyright.html.  COPYING can be found at the root   *
+ * of the source code distribution tree; Copyright.html can be found at the  *
+ * root level of an installed copy of the electronic HDF5 document set and   *
+ * is linked from the top-level documents page.  It can also be found at     *
+ * http://hdfgroup.org/HDF5/doc/Copyright.html.  If you do not have          *
+ * access to either file, you may request a copy from help at hdfgroup.org.     *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+
+/* 
+ *  This example illustrates how to create a compressed dataset.
+ *  It is used in the HDF5 Tutorial.
+ */ 
+
+#include "hdf5.h"
+
+#define FILE    "cmprss.h5"
+#define RANK    2
+#define DIM0    100
+#define DIM1    20
+ 
+int main () {
+
+    hid_t    file_id, dataset_id, dataspace_id; /* identifiers */
+    hid_t    plist_id; 
+
+    size_t   nelmts;
+    unsigned flags, filter_info;
+    H5Z_filter_t filter_type;
+
+    herr_t   status;
+    hsize_t  dims[2];
+    hsize_t  cdims[2];
+ 
+    int      idx;
+    int      i,j, numfilt;
+    int      buf[DIM0][DIM1];
+    int      rbuf [DIM0][DIM1];
+
+    /* Uncomment these variables to use SZIP compression 
+    unsigned szip_options_mask;
+    unsigned szip_pixels_per_block;
+    */
+
+    /* Create a file.  */
+    file_id = H5Fcreate (FILE, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
+
+
+    /* Create dataset "Compressed Data" in the group using absolute name.  */
+    dims[0] = DIM0;
+    dims[1] = DIM1;
+    dataspace_id = H5Screate_simple (RANK, dims, NULL);
+
+    plist_id  = H5Pcreate (H5P_DATASET_CREATE);
+
+    /* Dataset must be chunked for compression */
+    cdims[0] = 20;
+    cdims[1] = 20;
+    status = H5Pset_chunk (plist_id, 2, cdims);
+
+    /* Set ZLIB / DEFLATE Compression using compression level 6.
+     * To use SZIP Compression comment out these lines. 
+    */ 
+    status = H5Pset_deflate (plist_id, 6); 
+
+    /* Uncomment these lines to set SZIP Compression 
+    szip_options_mask = H5_SZIP_NN_OPTION_MASK;
+    szip_pixels_per_block = 16;
+    status = H5Pset_szip (plist_id, szip_options_mask, szip_pixels_per_block);
+    */
+    
+    dataset_id = H5Dcreate2 (file_id, "Compressed_Data", H5T_STD_I32BE, 
+                            dataspace_id, H5P_DEFAULT, plist_id, H5P_DEFAULT); 
+
+    for (i = 0; i< DIM0; i++) 
+        for (j=0; j<DIM1; j++) 
+           buf[i][j] = i+j;
+
+    status = H5Dwrite (dataset_id, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, buf);
+
+    status = H5Sclose (dataspace_id);
+    status = H5Dclose (dataset_id);
+    status = H5Pclose (plist_id);
+    status = H5Fclose (file_id);
+
+    /* Now reopen the file and dataset in the file. */
+    file_id = H5Fopen (FILE, H5F_ACC_RDWR, H5P_DEFAULT);
+    dataset_id = H5Dopen2 (file_id, "Compressed_Data", H5P_DEFAULT);
+
+    /* Retrieve filter information. */
+    plist_id = H5Dget_create_plist (dataset_id);
+    
+    numfilt = H5Pget_nfilters (plist_id);
+    printf ("Number of filters associated with dataset: %i\n", numfilt);
+     
+    for (i=0; i<numfilt; i++) {
+       nelmts = 0;
+       filter_type = H5Pget_filter2 (plist_id, 0, &flags, &nelmts, NULL, 0, NULL,
+                     &filter_info);
+       printf ("Filter Type: ");
+       switch (filter_type) {
+         case H5Z_FILTER_DEFLATE:
+              printf ("H5Z_FILTER_DEFLATE\n");
+              break;
+         case H5Z_FILTER_SZIP:
+              printf ("H5Z_FILTER_SZIP\n");
+              break;
+         default:
+              printf ("Other filter type included.\n");
+         }
+    }
+
+    status = H5Dread (dataset_id, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, 
+                      H5P_DEFAULT, rbuf); 
+    
+    status = H5Dclose (dataset_id);
+    status = H5Pclose (plist_id);
+    status = H5Fclose (file_id);
+}
diff --git a/examples/h5_crtatt.c b/examples/h5_crtatt.c
index 416839f..5e1378c 100644
--- a/examples/h5_crtatt.c
+++ b/examples/h5_crtatt.c
@@ -1,63 +1,63 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * Copyright by The HDF Group.                                               *
- * Copyright by the Board of Trustees of the University of Illinois.         *
- * All rights reserved.                                                      *
- *                                                                           *
- * This file is part of HDF5.  The full HDF5 copyright notice, including     *
- * terms governing use, modification, and redistribution, is contained in    *
- * the files COPYING and Copyright.html.  COPYING can be found at the root   *
- * of the source code distribution tree; Copyright.html can be found at the  *
- * root level of an installed copy of the electronic HDF5 document set and   *
- * is linked from the top-level documents page.  It can also be found at     *
- * http://hdfgroup.org/HDF5/doc/Copyright.html.  If you do not have          *
- * access to either file, you may request a copy from help at hdfgroup.org.     *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-/*
- *  This example illustrates how to create an attribute attached to a
- *  dataset.  It is used in the HDF5 Tutorial.
- */
-
-#include "hdf5.h"
-#define FILE "dset.h5"
-
-int main() {
-
-   hid_t       file_id, dataset_id, attribute_id, dataspace_id;  /* identifiers */
-   hsize_t     dims;
-   int         attr_data[2];
-   herr_t      status;
-
-   /* Initialize the attribute data. */
-   attr_data[0] = 100;
-   attr_data[1] = 200;
-
-   /* Open an existing file. */
-   file_id = H5Fopen(FILE, H5F_ACC_RDWR, H5P_DEFAULT);
-
-   /* Open an existing dataset. */
-   dataset_id = H5Dopen2(file_id, "/dset", H5P_DEFAULT);
-
-   /* Create the data space for the attribute. */
-   dims = 2;
-   dataspace_id = H5Screate_simple(1, &dims, NULL);
-
-   /* Create a dataset attribute. */
-   attribute_id = H5Acreate2 (dataset_id, "Units", H5T_STD_I32BE, dataspace_id, 
-                             H5P_DEFAULT, H5P_DEFAULT);
-
-   /* Write the attribute data. */
-   status = H5Awrite(attribute_id, H5T_NATIVE_INT, attr_data);
-
-   /* Close the attribute. */
-   status = H5Aclose(attribute_id);
-
-   /* Close the dataspace. */
-   status = H5Sclose(dataspace_id);
-
-   /* Close to the dataset. */
-   status = H5Dclose(dataset_id);
-
-   /* Close the file. */
-   status = H5Fclose(file_id);
-}
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * Copyright by The HDF Group.                                               *
+ * Copyright by the Board of Trustees of the University of Illinois.         *
+ * All rights reserved.                                                      *
+ *                                                                           *
+ * This file is part of HDF5.  The full HDF5 copyright notice, including     *
+ * terms governing use, modification, and redistribution, is contained in    *
+ * the files COPYING and Copyright.html.  COPYING can be found at the root   *
+ * of the source code distribution tree; Copyright.html can be found at the  *
+ * root level of an installed copy of the electronic HDF5 document set and   *
+ * is linked from the top-level documents page.  It can also be found at     *
+ * http://hdfgroup.org/HDF5/doc/Copyright.html.  If you do not have          *
+ * access to either file, you may request a copy from help at hdfgroup.org.     *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+
+/*
+ *  This example illustrates how to create an attribute attached to a
+ *  dataset.  It is used in the HDF5 Tutorial.
+ */
+
+#include "hdf5.h"
+#define FILE "dset.h5"
+
+int main() {
+
+   hid_t       file_id, dataset_id, attribute_id, dataspace_id;  /* identifiers */
+   hsize_t     dims;
+   int         attr_data[2];
+   herr_t      status;
+
+   /* Initialize the attribute data. */
+   attr_data[0] = 100;
+   attr_data[1] = 200;
+
+   /* Open an existing file. */
+   file_id = H5Fopen(FILE, H5F_ACC_RDWR, H5P_DEFAULT);
+
+   /* Open an existing dataset. */
+   dataset_id = H5Dopen2(file_id, "/dset", H5P_DEFAULT);
+
+   /* Create the data space for the attribute. */
+   dims = 2;
+   dataspace_id = H5Screate_simple(1, &dims, NULL);
+
+   /* Create a dataset attribute. */
+   attribute_id = H5Acreate2 (dataset_id, "Units", H5T_STD_I32BE, dataspace_id, 
+                             H5P_DEFAULT, H5P_DEFAULT);
+
+   /* Write the attribute data. */
+   status = H5Awrite(attribute_id, H5T_NATIVE_INT, attr_data);
+
+   /* Close the attribute. */
+   status = H5Aclose(attribute_id);
+
+   /* Close the dataspace. */
+   status = H5Sclose(dataspace_id);
+
+   /* Close to the dataset. */
+   status = H5Dclose(dataset_id);
+
+   /* Close the file. */
+   status = H5Fclose(file_id);
+}
diff --git a/examples/h5_crtdat.c b/examples/h5_crtdat.c
index bbb29b2..f9327e7 100644
--- a/examples/h5_crtdat.c
+++ b/examples/h5_crtdat.c
@@ -1,51 +1,51 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * Copyright by The HDF Group.                                               *
- * Copyright by the Board of Trustees of the University of Illinois.         *
- * All rights reserved.                                                      *
- *                                                                           *
- * This file is part of HDF5.  The full HDF5 copyright notice, including     *
- * terms governing use, modification, and redistribution, is contained in    *
- * the files COPYING and Copyright.html.  COPYING can be found at the root   *
- * of the source code distribution tree; Copyright.html can be found at the  *
- * root level of an installed copy of the electronic HDF5 document set and   *
- * is linked from the top-level documents page.  It can also be found at     *
- * http://hdfgroup.org/HDF5/doc/Copyright.html.  If you do not have          *
- * access to either file, you may request a copy from help at hdfgroup.org.     *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-/*
- *  This example illustrates how to create a dataset that is a 4 x 6 
- *  array.  It is used in the HDF5 Tutorial.
- */
-
-#include "hdf5.h"
-#define FILE "dset.h5"
-
-int main() {
-
-   hid_t       file_id, dataset_id, dataspace_id;  /* identifiers */
-   hsize_t     dims[2];
-   herr_t      status;
-
-   /* Create a new file using default properties. */
-   file_id = H5Fcreate(FILE, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
-
-   /* Create the data space for the dataset. */
-   dims[0] = 4; 
-   dims[1] = 6; 
-   dataspace_id = H5Screate_simple(2, dims, NULL);
-
-   /* Create the dataset. */
-   dataset_id = H5Dcreate2(file_id, "/dset", H5T_STD_I32BE, dataspace_id, 
-                          H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
-
-   /* End access to the dataset and release resources used by it. */
-   status = H5Dclose(dataset_id);
-
-   /* Terminate access to the data space. */ 
-   status = H5Sclose(dataspace_id);
-
-   /* Close the file. */
-   status = H5Fclose(file_id);
-}
-
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * Copyright by The HDF Group.                                               *
+ * Copyright by the Board of Trustees of the University of Illinois.         *
+ * All rights reserved.                                                      *
+ *                                                                           *
+ * This file is part of HDF5.  The full HDF5 copyright notice, including     *
+ * terms governing use, modification, and redistribution, is contained in    *
+ * the files COPYING and Copyright.html.  COPYING can be found at the root   *
+ * of the source code distribution tree; Copyright.html can be found at the  *
+ * root level of an installed copy of the electronic HDF5 document set and   *
+ * is linked from the top-level documents page.  It can also be found at     *
+ * http://hdfgroup.org/HDF5/doc/Copyright.html.  If you do not have          *
+ * access to either file, you may request a copy from help at hdfgroup.org.     *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+
+/*
+ *  This example illustrates how to create a dataset that is a 4 x 6 
+ *  array.  It is used in the HDF5 Tutorial.
+ */
+
+#include "hdf5.h"
+#define FILE "dset.h5"
+
+int main() {
+
+   hid_t       file_id, dataset_id, dataspace_id;  /* identifiers */
+   hsize_t     dims[2];
+   herr_t      status;
+
+   /* Create a new file using default properties. */
+   file_id = H5Fcreate(FILE, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
+
+   /* Create the data space for the dataset. */
+   dims[0] = 4; 
+   dims[1] = 6; 
+   dataspace_id = H5Screate_simple(2, dims, NULL);
+
+   /* Create the dataset. */
+   dataset_id = H5Dcreate2(file_id, "/dset", H5T_STD_I32BE, dataspace_id, 
+                          H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+
+   /* End access to the dataset and release resources used by it. */
+   status = H5Dclose(dataset_id);
+
+   /* Terminate access to the data space. */ 
+   status = H5Sclose(dataspace_id);
+
+   /* Close the file. */
+   status = H5Fclose(file_id);
+}
+
diff --git a/examples/h5_crtgrp.c b/examples/h5_crtgrp.c
index 3a94a8f..a626ed8 100644
--- a/examples/h5_crtgrp.c
+++ b/examples/h5_crtgrp.c
@@ -1,40 +1,40 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * Copyright by The HDF Group.                                               *
- * Copyright by the Board of Trustees of the University of Illinois.         *
- * All rights reserved.                                                      *
- *                                                                           *
- * This file is part of HDF5.  The full HDF5 copyright notice, including     *
- * terms governing use, modification, and redistribution, is contained in    *
- * the files COPYING and Copyright.html.  COPYING can be found at the root   *
- * of the source code distribution tree; Copyright.html can be found at the  *
- * root level of an installed copy of the electronic HDF5 document set and   *
- * is linked from the top-level documents page.  It can also be found at     *
- * http://hdfgroup.org/HDF5/doc/Copyright.html.  If you do not have          *
- * access to either file, you may request a copy from help at hdfgroup.org.     *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-/*
- *  This example illustrates how to create and close a group. 
- *  It is used in the HDF5 Tutorial.
- */
-
-#include "hdf5.h"
-#define FILE "group.h5"
-
-int main() {
-
-   hid_t       file_id, group_id;  /* identifiers */
-   herr_t      status;
-
-   /* Create a new file using default properties. */
-   file_id = H5Fcreate(FILE, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
-
-   /* Create a group named "/MyGroup" in the file. */
-   group_id = H5Gcreate2(file_id, "/MyGroup", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
-
-   /* Close the group. */
-   status = H5Gclose(group_id);
-
-   /* Terminate access to the file. */
-   status = H5Fclose(file_id);
-}
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * Copyright by The HDF Group.                                               *
+ * Copyright by the Board of Trustees of the University of Illinois.         *
+ * All rights reserved.                                                      *
+ *                                                                           *
+ * This file is part of HDF5.  The full HDF5 copyright notice, including     *
+ * terms governing use, modification, and redistribution, is contained in    *
+ * the files COPYING and Copyright.html.  COPYING can be found at the root   *
+ * of the source code distribution tree; Copyright.html can be found at the  *
+ * root level of an installed copy of the electronic HDF5 document set and   *
+ * is linked from the top-level documents page.  It can also be found at     *
+ * http://hdfgroup.org/HDF5/doc/Copyright.html.  If you do not have          *
+ * access to either file, you may request a copy from help at hdfgroup.org.     *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+
+/*
+ *  This example illustrates how to create and close a group. 
+ *  It is used in the HDF5 Tutorial.
+ */
+
+#include "hdf5.h"
+#define FILE "group.h5"
+
+int main() {
+
+   hid_t       file_id, group_id;  /* identifiers */
+   herr_t      status;
+
+   /* Create a new file using default properties. */
+   file_id = H5Fcreate(FILE, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
+
+   /* Create a group named "/MyGroup" in the file. */
+   group_id = H5Gcreate2(file_id, "/MyGroup", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+
+   /* Close the group. */
+   status = H5Gclose(group_id);
+
+   /* Terminate access to the file. */
+   status = H5Fclose(file_id);
+}
diff --git a/examples/h5_crtgrpar.c b/examples/h5_crtgrpar.c
index 9e6fc40..e8cf7c3 100644
--- a/examples/h5_crtgrpar.c
+++ b/examples/h5_crtgrpar.c
@@ -1,48 +1,48 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * Copyright by The HDF Group.                                               *
- * Copyright by the Board of Trustees of the University of Illinois.         *
- * All rights reserved.                                                      *
- *                                                                           *
- * This file is part of HDF5.  The full HDF5 copyright notice, including     *
- * terms governing use, modification, and redistribution, is contained in    *
- * the files COPYING and Copyright.html.  COPYING can be found at the root   *
- * of the source code distribution tree; Copyright.html can be found at the  *
- * root level of an installed copy of the electronic HDF5 document set and   *
- * is linked from the top-level documents page.  It can also be found at     *
- * http://hdfgroup.org/HDF5/doc/Copyright.html.  If you do not have          *
- * access to either file, you may request a copy from help at hdfgroup.org.     *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-/*
- *  This example illustrates the creation of groups using absolute and 
- *  relative names.  It is used in the HDF5 Tutorial.
- */
-
-#include "hdf5.h"
-#define FILE "groups.h5"
-
-int main() {
-
-   hid_t       file_id, group1_id, group2_id, group3_id;  /* identifiers */
-   herr_t      status;
-
-   /* Create a new file using default properties. */
-   file_id = H5Fcreate(FILE, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
-
-   /* Create group "MyGroup" in the root group using absolute name. */
-   group1_id = H5Gcreate2(file_id, "/MyGroup", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
-
-   /* Create group "Group_A" in group "MyGroup" using absolute name. */
-   group2_id = H5Gcreate2(file_id, "/MyGroup/Group_A", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
-
-   /* Create group "Group_B" in group "MyGroup" using relative name. */
-   group3_id = H5Gcreate2(group1_id, "Group_B", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
-
-   /* Close groups. */
-   status = H5Gclose(group1_id);
-   status = H5Gclose(group2_id);
-   status = H5Gclose(group3_id);
-
-   /* Close the file. */
-   status = H5Fclose(file_id);
-}
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * Copyright by The HDF Group.                                               *
+ * Copyright by the Board of Trustees of the University of Illinois.         *
+ * All rights reserved.                                                      *
+ *                                                                           *
+ * This file is part of HDF5.  The full HDF5 copyright notice, including     *
+ * terms governing use, modification, and redistribution, is contained in    *
+ * the files COPYING and Copyright.html.  COPYING can be found at the root   *
+ * of the source code distribution tree; Copyright.html can be found at the  *
+ * root level of an installed copy of the electronic HDF5 document set and   *
+ * is linked from the top-level documents page.  It can also be found at     *
+ * http://hdfgroup.org/HDF5/doc/Copyright.html.  If you do not have          *
+ * access to either file, you may request a copy from help at hdfgroup.org.     *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+
+/*
+ *  This example illustrates the creation of groups using absolute and 
+ *  relative names.  It is used in the HDF5 Tutorial.
+ */
+
+#include "hdf5.h"
+#define FILE "groups.h5"
+
+int main() {
+
+   hid_t       file_id, group1_id, group2_id, group3_id;  /* identifiers */
+   herr_t      status;
+
+   /* Create a new file using default properties. */
+   file_id = H5Fcreate(FILE, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
+
+   /* Create group "MyGroup" in the root group using absolute name. */
+   group1_id = H5Gcreate2(file_id, "/MyGroup", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+
+   /* Create group "Group_A" in group "MyGroup" using absolute name. */
+   group2_id = H5Gcreate2(file_id, "/MyGroup/Group_A", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+
+   /* Create group "Group_B" in group "MyGroup" using relative name. */
+   group3_id = H5Gcreate2(group1_id, "Group_B", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+
+   /* Close groups. */
+   status = H5Gclose(group1_id);
+   status = H5Gclose(group2_id);
+   status = H5Gclose(group3_id);
+
+   /* Close the file. */
+   status = H5Fclose(file_id);
+}
diff --git a/examples/h5_crtgrpd.c b/examples/h5_crtgrpd.c
index 9c45928..d6a320b 100644
--- a/examples/h5_crtgrpd.c
+++ b/examples/h5_crtgrpd.c
@@ -1,91 +1,91 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * Copyright by The HDF Group.                                               *
- * Copyright by the Board of Trustees of the University of Illinois.         *
- * All rights reserved.                                                      *
- *                                                                           *
- * This file is part of HDF5.  The full HDF5 copyright notice, including     *
- * terms governing use, modification, and redistribution, is contained in    *
- * the files COPYING and Copyright.html.  COPYING can be found at the root   *
- * of the source code distribution tree; Copyright.html can be found at the  *
- * root level of an installed copy of the electronic HDF5 document set and   *
- * is linked from the top-level documents page.  It can also be found at     *
- * http://hdfgroup.org/HDF5/doc/Copyright.html.  If you do not have          *
- * access to either file, you may request a copy from help at hdfgroup.org.     *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-/*
- *  This example illustrates how to create a dataset in a group.
- *  It is used in the HDF5 Tutorial.
- */
-
-#include "hdf5.h"
-#define FILE "groups.h5"
-
-int main() {
-
-   hid_t       file_id, group_id, dataset_id, dataspace_id;  /* identifiers */
-   hsize_t     dims[2];
-   herr_t      status;
-   int         i, j, dset1_data[3][3], dset2_data[2][10];
-
-   /* Initialize the first dataset. */
-   for (i = 0; i < 3; i++)
-      for (j = 0; j < 3; j++)
-         dset1_data[i][j] = j + 1;
-
-   /* Initialize the second dataset. */
-   for (i = 0; i < 2; i++)
-      for (j = 0; j < 10; j++)
-         dset2_data[i][j] = j + 1;
-
-   /* Open an existing file. */
-   file_id = H5Fopen(FILE, H5F_ACC_RDWR, H5P_DEFAULT);
-
-   /* Create the data space for the first dataset. */
-   dims[0] = 3;
-   dims[1] = 3;
-   dataspace_id = H5Screate_simple(2, dims, NULL);
-
-   /* Create a dataset in group "MyGroup". */
-   dataset_id = H5Dcreate2(file_id, "/MyGroup/dset1", H5T_STD_I32BE, dataspace_id,
-                          H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
-
-   /* Write the first dataset. */
-   status = H5Dwrite(dataset_id, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT,
-                     dset1_data);
-
-   /* Close the data space for the first dataset. */
-   status = H5Sclose(dataspace_id);
-
-   /* Close the first dataset. */
-   status = H5Dclose(dataset_id);
-
-   /* Open an existing group of the specified file. */
-   group_id = H5Gopen2(file_id, "/MyGroup/Group_A", H5P_DEFAULT);
-
-   /* Create the data space for the second dataset. */
-   dims[0] = 2;
-   dims[1] = 10;
-   dataspace_id = H5Screate_simple(2, dims, NULL);
-
-   /* Create the second dataset in group "Group_A". */
-   dataset_id = H5Dcreate2(group_id, "dset2", H5T_STD_I32BE, dataspace_id, 
-                          H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
-
-   /* Write the second dataset. */
-   status = H5Dwrite(dataset_id, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT,
-                     dset2_data);
-
-   /* Close the data space for the second dataset. */
-   status = H5Sclose(dataspace_id);
-
-   /* Close the second dataset */
-   status = H5Dclose(dataset_id);
-
-   /* Close the group. */
-   status = H5Gclose(group_id);
-
-   /* Close the file. */
-   status = H5Fclose(file_id);
-}
-
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * Copyright by The HDF Group.                                               *
+ * Copyright by the Board of Trustees of the University of Illinois.         *
+ * All rights reserved.                                                      *
+ *                                                                           *
+ * This file is part of HDF5.  The full HDF5 copyright notice, including     *
+ * terms governing use, modification, and redistribution, is contained in    *
+ * the files COPYING and Copyright.html.  COPYING can be found at the root   *
+ * of the source code distribution tree; Copyright.html can be found at the  *
+ * root level of an installed copy of the electronic HDF5 document set and   *
+ * is linked from the top-level documents page.  It can also be found at     *
+ * http://hdfgroup.org/HDF5/doc/Copyright.html.  If you do not have          *
+ * access to either file, you may request a copy from help at hdfgroup.org.     *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+
+/*
+ *  This example illustrates how to create a dataset in a group.
+ *  It is used in the HDF5 Tutorial.
+ */
+
+#include "hdf5.h"
+#define FILE "groups.h5"
+
+int main() {
+
+   hid_t       file_id, group_id, dataset_id, dataspace_id;  /* identifiers */
+   hsize_t     dims[2];
+   herr_t      status;
+   int         i, j, dset1_data[3][3], dset2_data[2][10];
+
+   /* Initialize the first dataset. */
+   for (i = 0; i < 3; i++)
+      for (j = 0; j < 3; j++)
+         dset1_data[i][j] = j + 1;
+
+   /* Initialize the second dataset. */
+   for (i = 0; i < 2; i++)
+      for (j = 0; j < 10; j++)
+         dset2_data[i][j] = j + 1;
+
+   /* Open an existing file. */
+   file_id = H5Fopen(FILE, H5F_ACC_RDWR, H5P_DEFAULT);
+
+   /* Create the data space for the first dataset. */
+   dims[0] = 3;
+   dims[1] = 3;
+   dataspace_id = H5Screate_simple(2, dims, NULL);
+
+   /* Create a dataset in group "MyGroup". */
+   dataset_id = H5Dcreate2(file_id, "/MyGroup/dset1", H5T_STD_I32BE, dataspace_id,
+                          H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+
+   /* Write the first dataset. */
+   status = H5Dwrite(dataset_id, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT,
+                     dset1_data);
+
+   /* Close the data space for the first dataset. */
+   status = H5Sclose(dataspace_id);
+
+   /* Close the first dataset. */
+   status = H5Dclose(dataset_id);
+
+   /* Open an existing group of the specified file. */
+   group_id = H5Gopen2(file_id, "/MyGroup/Group_A", H5P_DEFAULT);
+
+   /* Create the data space for the second dataset. */
+   dims[0] = 2;
+   dims[1] = 10;
+   dataspace_id = H5Screate_simple(2, dims, NULL);
+
+   /* Create the second dataset in group "Group_A". */
+   dataset_id = H5Dcreate2(group_id, "dset2", H5T_STD_I32BE, dataspace_id, 
+                          H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+
+   /* Write the second dataset. */
+   status = H5Dwrite(dataset_id, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT,
+                     dset2_data);
+
+   /* Close the data space for the second dataset. */
+   status = H5Sclose(dataspace_id);
+
+   /* Close the second dataset */
+   status = H5Dclose(dataset_id);
+
+   /* Close the group. */
+   status = H5Gclose(group_id);
+
+   /* Close the file. */
+   status = H5Fclose(file_id);
+}
+
diff --git a/examples/h5_rdwt.c b/examples/h5_rdwt.c
index d5444e0..0e290ca 100644
--- a/examples/h5_rdwt.c
+++ b/examples/h5_rdwt.c
@@ -1,53 +1,53 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * Copyright by The HDF Group.                                               *
- * Copyright by the Board of Trustees of the University of Illinois.         *
- * All rights reserved.                                                      *
- *                                                                           *
- * This file is part of HDF5.  The full HDF5 copyright notice, including     *
- * terms governing use, modification, and redistribution, is contained in    *
- * the files COPYING and Copyright.html.  COPYING can be found at the root   *
- * of the source code distribution tree; Copyright.html can be found at the  *
- * root level of an installed copy of the electronic HDF5 document set and   *
- * is linked from the top-level documents page.  It can also be found at     *
- * http://hdfgroup.org/HDF5/doc/Copyright.html.  If you do not have          *
- * access to either file, you may request a copy from help at hdfgroup.org.     *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-/* 
- *  This example illustrates how to write and read data in an existing
- *  dataset.  It is used in the HDF5 Tutorial.
- */
-
-#include "hdf5.h"
-#define FILE "dset.h5"
-
-int main() {
-
-   hid_t       file_id, dataset_id;  /* identifiers */
-   herr_t      status;
-   int         i, j, dset_data[4][6];
-
-   /* Initialize the dataset. */
-   for (i = 0; i < 4; i++)
-      for (j = 0; j < 6; j++)
-         dset_data[i][j] = i * 6 + j + 1;
-
-   /* Open an existing file. */
-   file_id = H5Fopen(FILE, H5F_ACC_RDWR, H5P_DEFAULT);
-
-   /* Open an existing dataset. */
-   dataset_id = H5Dopen2(file_id, "/dset", H5P_DEFAULT);
-
-   /* Write the dataset. */
-   status = H5Dwrite(dataset_id, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, 
-                     dset_data);
-
-   status = H5Dread(dataset_id, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, 
-                    dset_data);
-
-   /* Close the dataset. */
-   status = H5Dclose(dataset_id);
-
-   /* Close the file. */
-   status = H5Fclose(file_id);
-}
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * Copyright by The HDF Group.                                               *
+ * Copyright by the Board of Trustees of the University of Illinois.         *
+ * All rights reserved.                                                      *
+ *                                                                           *
+ * This file is part of HDF5.  The full HDF5 copyright notice, including     *
+ * terms governing use, modification, and redistribution, is contained in    *
+ * the files COPYING and Copyright.html.  COPYING can be found at the root   *
+ * of the source code distribution tree; Copyright.html can be found at the  *
+ * root level of an installed copy of the electronic HDF5 document set and   *
+ * is linked from the top-level documents page.  It can also be found at     *
+ * http://hdfgroup.org/HDF5/doc/Copyright.html.  If you do not have          *
+ * access to either file, you may request a copy from help at hdfgroup.org.     *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+
+/* 
+ *  This example illustrates how to write and read data in an existing
+ *  dataset.  It is used in the HDF5 Tutorial.
+ */
+
+#include "hdf5.h"
+#define FILE "dset.h5"
+
+int main() {
+
+   hid_t       file_id, dataset_id;  /* identifiers */
+   herr_t      status;
+   int         i, j, dset_data[4][6];
+
+   /* Initialize the dataset. */
+   for (i = 0; i < 4; i++)
+      for (j = 0; j < 6; j++)
+         dset_data[i][j] = i * 6 + j + 1;
+
+   /* Open an existing file. */
+   file_id = H5Fopen(FILE, H5F_ACC_RDWR, H5P_DEFAULT);
+
+   /* Open an existing dataset. */
+   dataset_id = H5Dopen2(file_id, "/dset", H5P_DEFAULT);
+
+   /* Write the dataset. */
+   status = H5Dwrite(dataset_id, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, 
+                     dset_data);
+
+   status = H5Dread(dataset_id, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, 
+                    dset_data);
+
+   /* Close the dataset. */
+   status = H5Dclose(dataset_id);
+
+   /* Close the file. */
+   status = H5Fclose(file_id);
+}
diff --git a/examples/h5_reference.c b/examples/h5_reference.c
index 31aa2cf..afd550c 100644
--- a/examples/h5_reference.c
+++ b/examples/h5_reference.c
@@ -81,8 +81,8 @@ main(void) {
     *  Create references to the group "A" and dataset "B"
     *  and store them in the wbuf.
     */
-   H5Rcreate(&wbuf[0], fid, "A", H5R_OBJECT, -1);
-   H5Rcreate(&wbuf[1], fid, "B", H5R_OBJECT, -1);
+   H5Rcreate(&wbuf[0], fid, "A", H5R_OBJECT, (hid_t)-1);
+   H5Rcreate(&wbuf[1], fid, "B", H5R_OBJECT, (hid_t)-1);
 
    /*
     *  Write dataset R using default transfer properties.
diff --git a/fortran/Makefile.in b/fortran/Makefile.in
index b1c7f6a..4d8abdc 100644
--- a/fortran/Makefile.in
+++ b/fortran/Makefile.in
@@ -508,7 +508,6 @@ MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MPE = @MPE@
-MPI_GET_SIZE = @MPI_GET_SIZE@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
diff --git a/fortran/examples/Makefile.in b/fortran/examples/Makefile.in
index 890d52a..b9b5efb 100644
--- a/fortran/examples/Makefile.in
+++ b/fortran/examples/Makefile.in
@@ -460,7 +460,6 @@ MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MPE = @MPE@
-MPI_GET_SIZE = @MPI_GET_SIZE@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
diff --git a/fortran/examples/h5_cmprss.f90 b/fortran/examples/h5_cmprss.f90
index 847a922..9ab28f7 100644
--- a/fortran/examples/h5_cmprss.f90
+++ b/fortran/examples/h5_cmprss.f90
@@ -1,131 +1,131 @@
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-!   Copyright by The HDF Group.                                               *
-!   Copyright by the Board of Trustees of the University of Illinois.         *
-!   All rights reserved.                                                      *
-!                                                                             *
-!   This file is part of HDF5.  The full HDF5 copyright notice, including     *
-!   terms governing use, modification, and redistribution, is contained in    *
-!   the files COPYING and Copyright.html.  COPYING can be found at the root   *
-!   of the source code distribution tree; Copyright.html can be found at the  *
-!   root level of an installed copy of the electronic HDF5 document set and   *
-!   is linked from the top-level documents page.  It can also be found at     *
-!   http://hdfgroup.org/HDF5/doc/Copyright.html.  If you do not have          *
-!   access to either file, you may request a copy from help at hdfgroup.org.     *
-! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-! 
-!  This example illustrates how to create a compressed dataset.
-!  It is used in the HDF5 Tutorial.
-! 
-PROGRAM h5_cmprss
-
-  USE HDF5 ! This module contains all necessary modules 
-
-  IMPLICIT NONE
-  !
-  ! The dataset is stored in file "h5_cmprss.h5" 
-  !
-  CHARACTER(LEN=12), PARAMETER :: filename = "h5_cmprss.h5"
-  INTEGER, PARAMETER  :: rank = 2   ! Rank of the data set
-  INTEGER, PARAMETER  :: dim0 = 100 ! Data set sizes
-  INTEGER, PARAMETER  :: dim1 = 20
-
-  INTEGER(hid_t) :: file_id, dataset_id, dataspace_id ! Identifiers
-  INTEGER(hid_t) :: plist_id ! Property list identifier
-
-  INTEGER :: error
-  INTEGER(hsize_t), DIMENSION(1:rank) :: dims ! dimensions of data
-  INTEGER(hsize_t), DIMENSION(1:rank) :: cdims ! sizes of chunked data
- 
-  INTEGER :: i,j, numfilt
-  INTEGER, DIMENSION(1:dim0,1:dim1) :: buf ! write buffer
-  INTEGER, DIMENSION(1:dim0,1:dim1) :: rbuf ! read buffer
-  INTEGER(HSIZE_T), DIMENSION(1:rank) :: data_dims ! dimensions of data buffers
-
-  INTEGER, DIMENSION(1:1) :: cd_values ! Auxiliary data for the filter
-  INTEGER(size_t) :: nelmts            ! Number of elements in cd_values
-  INTEGER :: flags ! Bit vector specifying certain general properties of the filter
-  INTEGER(SIZE_T) :: namelen = 180 ! Anticipated number of characters in name
-  CHARACTER(LEN=180) :: name ! Name of the filter
-  INTEGER :: filter_id ! Filter identification number
-
-  ! Uncomment these variables to use SZIP compression
-  !INTEGER :: szip_options_mask
-  !INTEGER :: szip_pixels_per_block
-
-  !
-  !Initialize FORTRAN predifined datatypes
-  !
-  CALL h5open_f(error)
-  !
-  ! Create a file
-  CALL h5fcreate_f(filename, H5F_ACC_TRUNC_F, file_id, error)
-  !
-  ! Create dataset "Compressed Data" in the group using absolute name.
-  dims(1:2) = (/dim0, dim1/)
-  CALL h5screate_simple_f(rank, dims, dataspace_id, error)
-  CALL h5pcreate_f(H5P_DATASET_CREATE_F, plist_id, error)
-  !
-  ! Dataset must be chunked for compression 
-  cdims(1:2) = 20
-  CALL h5pset_chunk_f(plist_id, 2, cdims, error)
-
-  ! Set ZLIB / DEFLATE Compression using compression level 6.
-  ! To use SZIP Compression comment out these lines. 
-  CALL h5pset_deflate_f(plist_id, 6, error)
-
-  ! Uncomment these lines to set SZIP Compression 
-  !szip_options_mask = H5_SZIP_NN_OM_F
-  !szip_pixels_per_block = 16
-  !CALL H5Pset_szip_f(plist_id, szip_options_mask, szip_pixels_per_block, error)
-
-  ! Create data set
-  CALL h5dcreate_f(file_id, "Compressed_Data", H5T_NATIVE_INTEGER, dataspace_id, &
-       dataset_id, error, dcpl_id=plist_id)
-
-  DO j = 1, dim1
-     DO i = 1, dim0
-        buf(i,j) = i+j
-     ENDDO
-  ENDDO
-
-  data_dims(1:2) = (/dim0,dim1/) 
-  CALL h5dwrite_f(dataset_id, H5T_NATIVE_INTEGER, buf, data_dims, error)
-
-  ! Close resources
-  CALL h5sclose_f(dataspace_id, error)
-  CALL h5pclose_f(plist_id, error)
-  CALL h5dclose_f(dataset_id, error)
-  CALL h5fclose_f(file_id, error)
-
-  ! Now reopen the file and dataset in the file.
-  CALL h5fopen_f(filename, H5F_ACC_RDONLY_F, file_id, error)
-  CALL h5dopen_f(file_id, "Compressed_Data", dataset_id, error)
-
-  ! Retrieve filter information. 
-  CALL h5dget_create_plist_f(dataset_id, plist_id, error)
-    
-  CALL h5pget_nfilters_f(plist_id, numfilt, error)
-  WRITE(*,'(A, I0)') "Number of filters associated with dataset: ", numfilt
-     
-  DO i = 1, numfilt
-     nelmts = 1
-     CALL h5pget_filter_f(plist_id, 0, flags, nelmts, cd_values, &
-          namelen, name, filter_id, error)
-
-      WRITE(*,'(30X,A)', ADVANCE='NO')"Filter Type: "
-      IF(filter_id.EQ.H5Z_FILTER_DEFLATE_F)THEN
-         WRITE(*,'(A)') "H5Z_FILTER_DEFLATE"
-      ELSEIF (filter_id.EQ.H5Z_FILTER_SZIP_F)THEN
-         WRITE(*,'(A)') "H5Z_FILTER_SZIP"
-      ELSE
-         WRITE(*,'(A)') "Other filter type included"
-      ENDIF
-   ENDDO
-  data_dims(1:2) = (/dim0,dim1/)
-  CALL h5dread_f(dataset_id, H5T_NATIVE_INTEGER, rbuf, data_dims, error)
-    
-  CALL h5dclose_f(dataset_id, error)
-  CALL h5pclose_f(plist_id, error)
-  CALL h5fclose_f(file_id, error)
-
-END PROGRAM h5_cmprss
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+!   Copyright by The HDF Group.                                               *
+!   Copyright by the Board of Trustees of the University of Illinois.         *
+!   All rights reserved.                                                      *
+!                                                                             *
+!   This file is part of HDF5.  The full HDF5 copyright notice, including     *
+!   terms governing use, modification, and redistribution, is contained in    *
+!   the files COPYING and Copyright.html.  COPYING can be found at the root   *
+!   of the source code distribution tree; Copyright.html can be found at the  *
+!   root level of an installed copy of the electronic HDF5 document set and   *
+!   is linked from the top-level documents page.  It can also be found at     *
+!   http://hdfgroup.org/HDF5/doc/Copyright.html.  If you do not have          *
+!   access to either file, you may request a copy from help at hdfgroup.org.     *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! 
+!  This example illustrates how to create a compressed dataset.
+!  It is used in the HDF5 Tutorial.
+! 
+PROGRAM h5_cmprss
+
+  USE HDF5 ! This module contains all necessary modules 
+
+  IMPLICIT NONE
+  !
+  ! The dataset is stored in file "h5_cmprss.h5" 
+  !
+  CHARACTER(LEN=12), PARAMETER :: filename = "h5_cmprss.h5"
+  INTEGER, PARAMETER  :: rank = 2   ! Rank of the data set
+  INTEGER, PARAMETER  :: dim0 = 100 ! Data set sizes
+  INTEGER, PARAMETER  :: dim1 = 20
+
+  INTEGER(hid_t) :: file_id, dataset_id, dataspace_id ! Identifiers
+  INTEGER(hid_t) :: plist_id ! Property list identifier
+
+  INTEGER :: error
+  INTEGER(hsize_t), DIMENSION(1:rank) :: dims ! dimensions of data
+  INTEGER(hsize_t), DIMENSION(1:rank) :: cdims ! sizes of chunked data
+ 
+  INTEGER :: i,j, numfilt
+  INTEGER, DIMENSION(1:dim0,1:dim1) :: buf ! write buffer
+  INTEGER, DIMENSION(1:dim0,1:dim1) :: rbuf ! read buffer
+  INTEGER(HSIZE_T), DIMENSION(1:rank) :: data_dims ! dimensions of data buffers
+
+  INTEGER, DIMENSION(1:1) :: cd_values ! Auxiliary data for the filter
+  INTEGER(size_t) :: nelmts            ! Number of elements in cd_values
+  INTEGER :: flags ! Bit vector specifying certain general properties of the filter
+  INTEGER(SIZE_T) :: namelen = 180 ! Anticipated number of characters in name
+  CHARACTER(LEN=180) :: name ! Name of the filter
+  INTEGER :: filter_id ! Filter identification number
+
+  ! Uncomment these variables to use SZIP compression
+  !INTEGER :: szip_options_mask
+  !INTEGER :: szip_pixels_per_block
+
+  !
+  !Initialize FORTRAN predifined datatypes
+  !
+  CALL h5open_f(error)
+  !
+  ! Create a file
+  CALL h5fcreate_f(filename, H5F_ACC_TRUNC_F, file_id, error)
+  !
+  ! Create dataset "Compressed Data" in the group using absolute name.
+  dims(1:2) = (/dim0, dim1/)
+  CALL h5screate_simple_f(rank, dims, dataspace_id, error)
+  CALL h5pcreate_f(H5P_DATASET_CREATE_F, plist_id, error)
+  !
+  ! Dataset must be chunked for compression 
+  cdims(1:2) = 20
+  CALL h5pset_chunk_f(plist_id, 2, cdims, error)
+
+  ! Set ZLIB / DEFLATE Compression using compression level 6.
+  ! To use SZIP Compression comment out these lines. 
+  CALL h5pset_deflate_f(plist_id, 6, error)
+
+  ! Uncomment these lines to set SZIP Compression 
+  !szip_options_mask = H5_SZIP_NN_OM_F
+  !szip_pixels_per_block = 16
+  !CALL H5Pset_szip_f(plist_id, szip_options_mask, szip_pixels_per_block, error)
+
+  ! Create data set
+  CALL h5dcreate_f(file_id, "Compressed_Data", H5T_NATIVE_INTEGER, dataspace_id, &
+       dataset_id, error, dcpl_id=plist_id)
+
+  DO j = 1, dim1
+     DO i = 1, dim0
+        buf(i,j) = i+j
+     ENDDO
+  ENDDO
+
+  data_dims(1:2) = (/dim0,dim1/) 
+  CALL h5dwrite_f(dataset_id, H5T_NATIVE_INTEGER, buf, data_dims, error)
+
+  ! Close resources
+  CALL h5sclose_f(dataspace_id, error)
+  CALL h5pclose_f(plist_id, error)
+  CALL h5dclose_f(dataset_id, error)
+  CALL h5fclose_f(file_id, error)
+
+  ! Now reopen the file and dataset in the file.
+  CALL h5fopen_f(filename, H5F_ACC_RDONLY_F, file_id, error)
+  CALL h5dopen_f(file_id, "Compressed_Data", dataset_id, error)
+
+  ! Retrieve filter information. 
+  CALL h5dget_create_plist_f(dataset_id, plist_id, error)
+    
+  CALL h5pget_nfilters_f(plist_id, numfilt, error)
+  WRITE(*,'(A, I0)') "Number of filters associated with dataset: ", numfilt
+     
+  DO i = 1, numfilt
+     nelmts = 1
+     CALL h5pget_filter_f(plist_id, 0, flags, nelmts, cd_values, &
+          namelen, name, filter_id, error)
+
+      WRITE(*,'(30X,A)', ADVANCE='NO')"Filter Type: "
+      IF(filter_id.EQ.H5Z_FILTER_DEFLATE_F)THEN
+         WRITE(*,'(A)') "H5Z_FILTER_DEFLATE"
+      ELSEIF (filter_id.EQ.H5Z_FILTER_SZIP_F)THEN
+         WRITE(*,'(A)') "H5Z_FILTER_SZIP"
+      ELSE
+         WRITE(*,'(A)') "Other filter type included"
+      ENDIF
+   ENDDO
+  data_dims(1:2) = (/dim0,dim1/)
+  CALL h5dread_f(dataset_id, H5T_NATIVE_INTEGER, rbuf, data_dims, error)
+    
+  CALL h5dclose_f(dataset_id, error)
+  CALL h5pclose_f(plist_id, error)
+  CALL h5fclose_f(file_id, error)
+
+END PROGRAM h5_cmprss
diff --git a/fortran/src/CMakeLists.txt b/fortran/src/CMakeLists.txt
index 723e930..c91d9e8 100644
--- a/fortran/src/CMakeLists.txt
+++ b/fortran/src/CMakeLists.txt
@@ -19,19 +19,27 @@ endif (WIN32)
 
 #-----------------------------------------------------------------------------
 # Setup the Fortran auto-detection utilities
-# H5test_kind(_SIZEOF).f90 used to generate H5fortran_detect.f90
+# H5test_kind(_SIZEOF,_STORAGE_SIZE).f90 used to generate H5fortran_detect.f90
 # H5fortran_detect.f90     used to generate H5fort_type_defines.h
 # H5fort_type_defines.h    used to generate H5f90i_gen.h + H5fortran_types.f90
 #-----------------------------------------------------------------------------
-if (FORTRAN_HAVE_SIZEOF)
+if (FORTRAN_HAVE_STORAGE_SIZE)
   add_executable (H5test_FortranHavekind
-      ${HDF5_F90_SRC_SOURCE_DIR}/H5test_kind_SIZEOF.f90
+      ${HDF5_F90_SRC_SOURCE_DIR}/H5test_kind_STORAGE_SIZE.f90
   )
-else (FORTRAN_HAVE_SIZEOF)
-  add_executable (H5test_FortranHavekind
-      ${HDF5_F90_SRC_SOURCE_DIR}/H5test_kind.f90
-  )
-endif (FORTRAN_HAVE_SIZEOF)
+  set (H5_TEST_KIND_NAME "h5test_kind_storage_size_mod")
+else (FORTRAN_HAVE_STORAGE_SIZE)
+    if (FORTRAN_HAVE_SIZEOF)
+      add_executable (H5test_FortranHavekind
+          ${HDF5_F90_SRC_SOURCE_DIR}/H5test_kind_SIZEOF.f90
+      )
+      set (H5_TEST_KIND_NAME "h5test_kind_sizeof_mod")
+    else (FORTRAN_HAVE_SIZEOF)
+      add_executable (H5test_FortranHavekind
+          ${HDF5_F90_SRC_SOURCE_DIR}/H5test_kind.f90
+      )
+    endif (FORTRAN_HAVE_SIZEOF)
+endif (FORTRAN_HAVE_STORAGE_SIZE)
 if (WIN32 AND MSVC)
   if (BUILD_SHARED_LIBS)
     set_target_properties (H5test_FortranHavekind
@@ -147,10 +155,10 @@ set_target_properties (${HDF5_F90_C_LIB_TARGET} PROPERTIES
 # Fortran 2003 standard
 #-----------------------------------------------------------------------------
 if (HDF5_ENABLE_F2003)
-  # default real is 4 bytes, so include double signatures
+  # F2003 features are enabled
   set (F_STATUS "_F03")
 else (HDF5_ENABLE_F2003)
-  # default real is 8 bytes, so exclude double signatures
+  # F2003 features are not enabled
   set (F_STATUS "_F90")
 endif (HDF5_ENABLE_F2003)
 
@@ -270,7 +278,6 @@ if (WIN32)
   install (
       FILES
           ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5fortran_types.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5test_kind_sizeof_mod.mod
           ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/hdf5.mod
           ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5global.mod
           ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5a.mod
@@ -303,6 +310,16 @@ if (WIN32)
       COMPONENT
           fortheaders
   )
+  if (H5_TEST_KIND_NAME)
+    install (
+        FILES
+            ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/${H5_TEST_KIND_NAME}.mod
+        DESTINATION
+            ${HDF5_INSTALL_INCLUDE_DIR}
+        COMPONENT
+            fortheaders
+    )
+  endif (H5_TEST_KIND_NAME)
 else (WIN32)
   install (
       FILES
@@ -340,6 +357,16 @@ else (WIN32)
       COMPONENT
           fortheaders
   )
+  if (H5_TEST_KIND_NAME)
+    install (
+        FILES
+          ${CMAKE_Fortran_MODULE_DIRECTORY}/${H5_TEST_KIND_NAME}.mod
+        DESTINATION
+            ${HDF5_INSTALL_INCLUDE_DIR}
+        COMPONENT
+            fortheaders
+    )
+  endif (H5_TEST_KIND_NAME)
 endif (WIN32)
 
 #-----------------------------------------------------------------------------
diff --git a/fortran/src/H5Pf.c b/fortran/src/H5Pf.c
index 98e5ff6..b66709a 100644
--- a/fortran/src/H5Pf.c
+++ b/fortran/src/H5Pf.c
@@ -418,18 +418,18 @@ nh5pset_fill_valuec_c (hid_t_f *prp_id, hid_t_f *type_id, _fcd fillvalue)
 
 /****if* H5Pf/h5pset_fill_value_c
  * NAME
- *        h5pset_fill_value_c
+ *  h5pset_fill_value_c
  * PURPOSE
- *     Call H5Pset_fill_value to set a fillvalue for a dataset
+ *  Call H5Pset_fill_value to set a fillvalue for a dataset
  * INPUTS
- *      prp_id - property list identifier
- *              type_id - datatype identifier (fill value is of type type_id)
- *              fillvalue - fillvalue
+ *  prp_id     - property list identifier
+ *  type_id    - datatype identifier (fill value is of type type_id)
+ *  fillvalue - fillvalue
  * RETURNS
- *     0 on success, -1 on failure
+ *  0 on success, -1 on failure
  * AUTHOR
  *  Elena Pourmal
- *              Saturday, August 14, 1999
+ *  Saturday, August 14, 1999
  * SOURCE
 */
 int_f
@@ -445,7 +445,7 @@ nh5pset_fill_value_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue)
       * Call H5Pset_fill_value function.
       */
      c_prp_id = (hid_t)*prp_id;
-     c_type_id = (int)*type_id;
+     c_type_id = (hid_t)*type_id;
      ret = H5Pset_fill_value(c_prp_id, c_type_id, fillvalue);
 
      if (ret < 0) return ret_value;
@@ -483,19 +483,21 @@ nh5pset_fill_value_double_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue)
 
 /****if* H5Pf/h5pget_fill_valuec_c
  * NAME
- *        h5pget_fill_valuec_c
+ *  h5pget_fill_valuec_c
  * PURPOSE
- *     Call h5pget_fill_value_c to a character fill value
+ *  Call h5pget_fill_value_c to a character fill value
  * INPUTS
- *      prp_id - property list identifier
- *              type_id - datatype identifier (fill value is of type type_id)
- *              fillvalue  - character value
+ *  prp_id     - property list identifier
+ *  type_id    - datatype identifier (fill value is of type type_id)
+ *  fillvalue - character value
  * RETURNS
- *     0 on success, -1 on failure
- *              Saturday, August 14, 1999
+ *  0 on success, -1 on failure
  * AUTHOR
  *  Elena Pourmal
+ *  Saturday, August 14, 1999
  * HISTORY
+ *  Fixed wrong call to C wrapper, was nh5pset_fill_value_c, changed
+ *  to nh5pget_fill_value_c. MSB - 7/21/2014
  *
  * SOURCE
 */
@@ -506,27 +508,27 @@ nh5pget_fill_valuec_c (hid_t_f *prp_id, hid_t_f *type_id, _fcd fillvalue)
      int ret_value = -1;
 
      /*
-      * Call h5pget_fill_value_c  function.
+      * Call h5pget_fill_value_c function.
       */
-     ret_value = nh5pset_fill_value_c(prp_id, type_id, _fcdtocp(fillvalue));
+     ret_value = nh5pget_fill_value_c(prp_id, type_id, _fcdtocp(fillvalue));
 
      return ret_value;
 }
 
 /****if* H5Pf/h5pget_fill_value_c
  * NAME
- *        h5pget_fill_value_c
+ *  h5pget_fill_value_c
  * PURPOSE
- *     Call H5Pget_fill_value to set a fillvalue for a dataset
+ *  Call H5Pget_fill_value to set a fillvalue for a dataset
  * INPUTS
- *      prp_id - property list identifier
- *              type_id - datatype identifier (fill value is of type type_id)
- *              fillvalue - fillvalue
+ *  prp_id - property list identifier
+ *  type_id - datatype identifier (fill value is of type type_id)
+ *  fillvalue - fillvalue
  * RETURNS
- *     0 on success, -1 on failure
+ *  0 on success, -1 on failure
  * AUTHOR
  *  Elena Pourmal
- *              Saturday, August 14, 1999
+ *  Saturday, August 14, 1999
  * SOURCE
 */
 int_f
@@ -542,7 +544,7 @@ nh5pget_fill_value_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue)
       * Call H5Pget_fill_value function.
       */
      c_prp_id = (hid_t)*prp_id;
-     c_type_id = (int)*type_id;
+     c_type_id = (hid_t)*type_id;
      ret = H5Pget_fill_value(c_prp_id, c_type_id, fillvalue);
 
      if (ret < 0) return ret_value;
@@ -556,7 +558,7 @@ nh5pget_fill_value_integer_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue
      /*
       * Call h5pget_fill_value_c  function.
       */
-     return nh5pset_fill_value_c(prp_id, type_id, fillvalue);
+     return nh5pget_fill_value_c(prp_id, type_id, fillvalue);
 }
 
 int_f
@@ -565,7 +567,7 @@ nh5pget_fill_value_real_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue)
      /*
       * Call h5pget_fill_value_c  function.
       */
-     return nh5pset_fill_value_c(prp_id, type_id, fillvalue);
+     return nh5pget_fill_value_c(prp_id, type_id, fillvalue);
 }
 
 int_f
@@ -574,7 +576,7 @@ nh5pget_fill_value_double_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue)
      /*
       * Call h5pget_fill_value_c  function.
       */
-     return nh5pset_fill_value_c(prp_id, type_id, fillvalue);
+     return nh5pget_fill_value_c(prp_id, type_id, fillvalue);
 }
 
 /****if* H5Pf/h5pget_version_c
diff --git a/fortran/src/H5Rf.c b/fortran/src/H5Rf.c
index 77aab08..67d10e3 100644
--- a/fortran/src/H5Rf.c
+++ b/fortran/src/H5Rf.c
@@ -59,7 +59,7 @@ nh5rcreate_object_c(haddr_t_f *ref, hid_t_f *loc_id, _fcd name, int_f *namelen)
      /*
       * Call H5Rcreate function.
       */
-     if(H5Rcreate(&ref_c, *loc_id, c_name, H5R_OBJECT, -1) < 0)
+     if(H5Rcreate(&ref_c, *loc_id, c_name, H5R_OBJECT, (hid_t)-1) < 0)
          HGOTO_DONE(FAIL)
 
      /* Copy the reference created */
diff --git a/fortran/src/H5Tf.c b/fortran/src/H5Tf.c
index df581ee..32cdb72 100644
--- a/fortran/src/H5Tf.c
+++ b/fortran/src/H5Tf.c
@@ -225,31 +225,32 @@ nh5tequal_c ( hid_t_f *type1_id , hid_t_f *type2_id, int_f *c_flag)
   return ret_value;
 }
 
-
 /****if* H5Tf/h5tget_class_c
  * NAME
- *        h5tget_class_c
+ *  h5tget_class_c
  * PURPOSE
- *     Call H5Tget_class to determine the datatype class
+ *  Call H5Tget_class to determine the datatype class
  * INPUTS
- *      type_id - identifier of the dataspace
+ *  type_id - identifier of the dataspace
  * OUTPUTS
- *     classtype - class type; possible values are:
- *              H5T_NO_CLASS_F (-1)
- *              H5T_INTEGER_F (0)
- *              H5T_FLOAT_F (1)
- *              H5T_TIME_F (2)
- *              H5T_STRING_F (3)
- *              H5T_BITFIELD_F (4)
- *              H5T_OPAQUE_F (5)
- *              H5T_COMPOUNDF (6)
- *              H5T_REFERENCE_F (7)
- *              H5T_ENUMF (8)
+ *  classtype - class type; possible values are:
+ *               H5T_NO_CLASS_F (-1)
+ *               H5T_INTEGER_F (0)
+ *               H5T_FLOAT_F (1)
+ *               H5T_TIME_F (2)
+ *               H5T_STRING_F (3)
+ *               H5T_BITFIELD_F (4)
+ *               H5T_OPAQUE_F (5)
+ *               H5T_COMPOUNDF (6)
+ *               H5T_REFERENCE_F (7)
+ *               H5T_ENUM_F (8)
+ *               H5T_VLEN_F (9)
+ *               H5T_ARRAY_F (10)
  * RETURNS
- *     0 on success, -1 on failure
+ *  0 on success, -1 on failure
  * AUTHOR
  *  Elena Pourmal
- *              Saturday, August 14, 1999
+ *  Saturday, August 14, 1999
  * HISTORY
  *
  * SOURCE
diff --git a/fortran/src/H5Tff.f90 b/fortran/src/H5Tff.f90
index 89bd972..0e1dbb0 100644
--- a/fortran/src/H5Tff.f90
+++ b/fortran/src/H5Tff.f90
@@ -335,20 +335,22 @@ CONTAINS
 !  Returns the datatype class identifier.
 !
 ! INPUTS
-!  type_id 	 - datatype identifier
+!  type_id - Datatype identifier
 ! OUTPUTS
-!  class 	 - class, possible values are:
-!                   H5T_NO_CLASS_F (-1)
-!                   H5T_INTEGER_F  (0)
-!                   H5T_FLOAT_F (1)
-!                   H5T_TIME_F  (2)
-!                   H5T_STRING_F (3)
-!                   H5T_BITFIELD_F (4)
-!                   H5T_OPAQUE_F (5)
-!                   H5T_COMPOUND_F (6)
-!                   H5T_REFERENCE_F (7)
-!                   H5T_ENUM_F (8)
-!  hdferr 	 - Returns 0 if successful and -1 if fails
+!  class   - Class, possible values are:
+!            H5T_NO_CLASS_F (-1)
+!            H5T_INTEGER_F  (0)
+!            H5T_FLOAT_F (1)
+!            H5T_TIME_F  (2)
+!            H5T_STRING_F (3)
+!            H5T_BITFIELD_F (4)
+!            H5T_OPAQUE_F (5)
+!            H5T_COMPOUND_F (6)
+!            H5T_REFERENCE_F (7)
+!            H5T_ENUM_F (8)
+!            H5T_VLEN_F (9)
+!            H5T_ARRAY_F (10)  
+!  hdferr  - Returns 0 if successful and -1 if fails
 !
 ! AUTHOR
 !  Elena Pourmal
@@ -361,35 +363,24 @@ CONTAINS
 !
 ! SOURCE
   SUBROUTINE h5tget_class_f(type_id, class, hdferr)
-            IMPLICIT NONE
-            INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
-            INTEGER, INTENT(OUT) :: class
-                           ! Datatype class, possible values are:
-                                          ! H5T_NO_CLASS_F (-1)
-                                          ! H5T_INTEGER_F  (0)
-                                          ! H5T_FLOAT_F (1)
-                                          ! H5T_TIME_F  (2)
-                                          ! H5T_STRING_F (3)
-                                          ! H5T_BITFIELD_F (4)
-                                          ! H5T_OPAQUE_F (5)
-                                          ! H5T_COMPOUND_F (6)
-                                          ! H5T_REFERENCE_F (7)
-                                          ! H5T_ENUM_F (8)
-          INTEGER, INTENT(OUT) :: hdferr        ! Error code
+    IMPLICIT NONE
+    INTEGER(HID_T), INTENT(IN) :: type_id
+    INTEGER, INTENT(OUT) :: class         
+    INTEGER, INTENT(OUT) :: hdferr
 !*****
-            INTERFACE
-              INTEGER FUNCTION h5tget_class_c(type_id, class)
-              USE H5GLOBAL
-              !DEC$IF DEFINED(HDF5F90_WINDOWS)
-              !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TGET_CLASS_C'::h5tget_class_c
-              !DEC$ENDIF
-              INTEGER(HID_T), INTENT(IN) :: type_id
-              INTEGER, INTENT(OUT) :: class
-              END FUNCTION h5tget_class_c
-            END INTERFACE
+    INTERFACE
+       INTEGER FUNCTION h5tget_class_c(type_id, class)
+         USE H5GLOBAL
+         !DEC$IF DEFINED(HDF5F90_WINDOWS)
+         !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TGET_CLASS_C'::h5tget_class_c
+         !DEC$ENDIF
+         INTEGER(HID_T), INTENT(IN) :: type_id
+         INTEGER, INTENT(OUT) :: class
+       END FUNCTION h5tget_class_c
+    END INTERFACE
 
-          hdferr = h5tget_class_c(type_id, class)
-          END SUBROUTINE h5tget_class_f
+    hdferr = h5tget_class_c(type_id, class)
+  END SUBROUTINE h5tget_class_f
 !
 !****s* H5T/h5tget_size_f
 !
diff --git a/fortran/src/H5_f.c b/fortran/src/H5_f.c
index dcfcfc4..05e525d 100644
--- a/fortran/src/H5_f.c
+++ b/fortran/src/H5_f.c
@@ -460,13 +460,13 @@ nh5init_flags_c( int_f *h5d_flags, size_t_f *h5d_size_flags,
 /*
  *  H5FD flags of type hid_t
  */
-    h5fd_hid_flags[0] = (int_f)H5FD_CORE;
-    h5fd_hid_flags[1] = (int_f)H5FD_FAMILY;
-    h5fd_hid_flags[2] = (int_f)H5FD_LOG;
-    h5fd_hid_flags[3] = (int_f)H5FD_MPIO;
-    h5fd_hid_flags[4] = (int_f)H5FD_MULTI;
-    h5fd_hid_flags[5] = (int_f)H5FD_SEC2;
-    h5fd_hid_flags[6] = (int_f)H5FD_STDIO;
+    h5fd_hid_flags[0] = (hid_t_f)H5FD_CORE;
+    h5fd_hid_flags[1] = (hid_t_f)H5FD_FAMILY;
+    h5fd_hid_flags[2] = (hid_t_f)H5FD_LOG;
+    h5fd_hid_flags[3] = (hid_t_f)H5FD_MPIO;
+    h5fd_hid_flags[4] = (hid_t_f)H5FD_MULTI;
+    h5fd_hid_flags[5] = (hid_t_f)H5FD_SEC2;
+    h5fd_hid_flags[6] = (hid_t_f)H5FD_STDIO;
 
 /*
  *  H5G flags
diff --git a/fortran/src/H5test_kind.f90 b/fortran/src/H5test_kind.f90
index 3182853..1a1a0ec 100644
--- a/fortran/src/H5test_kind.f90
+++ b/fortran/src/H5test_kind.f90
@@ -23,18 +23,18 @@
 !
 ! COPYRIGHT
 !  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-!  Copyright by The HDF Group.                                               *
-!  Copyright by the Board of Trustees of the University of Illinois.         *
-!  All rights reserved.                                                      *
-!  *
-!  This file is part of HDF5.  The full HDF5 copyright notice, including     *
-!  terms governing use, modification, and redistribution, is contained in    *
-!  the files COPYING and Copyright.html.  COPYING can be found at the root   *
-!  of the source code distribution tree; Copyright.html can be found at the  *
-!  root level of an installed copy of the electronic HDF5 document set and   *
-!  is linked from the top-level documents page.  It can also be found at     *
-!  http://hdfgroup.org/HDF5/doc/Copyright.html.  If you do not have          *
-!  access to either file, you may request a copy from help at hdfgroup.org.     *
+!  Copyright by The HDF Group.                                                 *
+!  Copyright by the Board of Trustees of the University of Illinois.           *
+!  All rights reserved.                                                        *
+!                                                                              *
+!  This file is part of HDF5.  The full HDF5 copyright notice, including       *
+!  terms governing use, modification, and redistribution, is contained in      *
+!  the files COPYING and Copyright.html.  COPYING can be found at the root     *
+!  of the source code distribution tree; Copyright.html can be found at the    *
+!  root level of an installed copy of the electronic HDF5 document set and     *
+!  is linked from the top-level documents page.  It can also be found at       *
+!  http://hdfgroup.org/HDF5/doc/Copyright.html.  If you do not have            *
+!  access to either file, you may request a copy from help at hdfgroup.org.       *
 !  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 !
 ! AUTHOR
diff --git a/fortran/src/H5test_kind_SIZEOF.f90 b/fortran/src/H5test_kind_SIZEOF.f90
index 7a58b0e..468086a 100644
--- a/fortran/src/H5test_kind_SIZEOF.f90
+++ b/fortran/src/H5test_kind_SIZEOF.f90
@@ -24,18 +24,18 @@
 !
 ! COPYRIGHT
 !  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-!  Copyright by The HDF Group.                                               *
-!  Copyright by the Board of Trustees of the University of Illinois.         *
-!  All rights reserved.                                                      *
-!  *
-!  This file is part of HDF5.  The full HDF5 copyright notice, including     *
-!  terms governing use, modification, and redistribution, is contained in    *
-!  the files COPYING and Copyright.html.  COPYING can be found at the root   *
-!  of the source code distribution tree; Copyright.html can be found at the  *
-!  root level of an installed copy of the electronic HDF5 document set and   *
-!  is linked from the top-level documents page.  It can also be found at     *
-!  http://hdfgroup.org/HDF5/doc/Copyright.html.  If you do not have          *
-!  access to either file, you may request a copy from help at hdfgroup.org.     *
+!  Copyright by The HDF Group.                                                 *
+!  Copyright by the Board of Trustees of the University of Illinois.           *
+!  All rights reserved.                                                        *
+!                                                                              *
+!  This file is part of HDF5.  The full HDF5 copyright notice, including       *
+!  terms governing use, modification, and redistribution, is contained in      *
+!  the files COPYING and Copyright.html.  COPYING can be found at the root     *
+!  of the source code distribution tree; Copyright.html can be found at the    *
+!  root level of an installed copy of the electronic HDF5 document set and     *
+!  is linked from the top-level documents page.  It can also be found at       *
+!  http://hdfgroup.org/HDF5/doc/Copyright.html.  If you do not have            *
+!  access to either file, you may request a copy from help at hdfgroup.org.       *
 !  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 !
 ! AUTHOR
diff --git a/fortran/src/H5test_kind_SIZEOF.f90 b/fortran/src/H5test_kind_STORAGE_SIZE.f90
similarity index 80%
copy from fortran/src/H5test_kind_SIZEOF.f90
copy to fortran/src/H5test_kind_STORAGE_SIZE.f90
index 7a58b0e..89c904c 100644
--- a/fortran/src/H5test_kind_SIZEOF.f90
+++ b/fortran/src/H5test_kind_STORAGE_SIZE.f90
@@ -1,10 +1,10 @@
-!****p* Program/H5test_kind_SIZEOF
+!****p* Program/H5test_kind_STORAGE_SIZE
 !
 ! NAME
 !  Executable: H5test_kind
 !
 ! FILE
-!  fortran/src/H5test_kind_SIZEOF.f90
+!  fortran/src/H5test_kind_STORAGE_SIZE.f90
 !
 ! PURPOSE
 !  This stand alone program is used at build time to generate the program
@@ -13,29 +13,31 @@
 !  depending on which of the KIND values are found.
 !
 ! NOTES
-!  This program is used in place of H5test_kind.f90 when the Fortran intrinsic
-!  function SIZEOF is available. It generates code that makes use of SIZEOF in
-!  H5fortran_detect.f90 which is a portable solution but is not standard
-!  compliant. The program H5test_kind_C_SIZEOF uses F2008 standard intrinsic
-!  function instead, which is the preferred method. 
+!  This program is used in place of H5test_kind.f90 or H5test_kind_SIZEOF.f90 when 
+!  the Fortran 2008 intrinsic function STORAGE_SIZE is available. It generates code 
+!  that makes use of STORAGE_SIZE in H5fortran_detect.f90, which will be standard
+!  compliant. This program is the preferred method. 
 !
-!  The availability of SIZEOF is checked at configure time and the TRUE/FALSE
-!  condition is set in the configure variable "FORTRAN_HAVE_SIZEOF".
+!  The availability of STORAGE_SIZE is checked at configure time and the TRUE/FALSE
+!  condition is set in the configure variable "FORTRAN_HAVE_STORAGE_SIZE".
+!
+!  The use of C_SIZOF(X) is not used since the argument X must be an interoperable
+!  data entity.
 !
 ! COPYRIGHT
 !  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-!  Copyright by The HDF Group.                                               *
-!  Copyright by the Board of Trustees of the University of Illinois.         *
-!  All rights reserved.                                                      *
-!  *
-!  This file is part of HDF5.  The full HDF5 copyright notice, including     *
-!  terms governing use, modification, and redistribution, is contained in    *
-!  the files COPYING and Copyright.html.  COPYING can be found at the root   *
-!  of the source code distribution tree; Copyright.html can be found at the  *
-!  root level of an installed copy of the electronic HDF5 document set and   *
-!  is linked from the top-level documents page.  It can also be found at     *
-!  http://hdfgroup.org/HDF5/doc/Copyright.html.  If you do not have          *
-!  access to either file, you may request a copy from help at hdfgroup.org.     *
+!  Copyright by The HDF Group.                                                 *
+!  Copyright by the Board of Trustees of the University of Illinois.           *
+!  All rights reserved.                                                        *
+!                                                                              *
+!  This file is part of HDF5.  The full HDF5 copyright notice, including       *
+!  terms governing use, modification, and redistribution, is contained in      *
+!  the files COPYING and Copyright.html.  COPYING can be found at the root     *
+!  of the source code distribution tree; Copyright.html can be found at the    *
+!  root level of an installed copy of the electronic HDF5 document set and     *
+!  is linked from the top-level documents page.  It can also be found at       *
+!  http://hdfgroup.org/HDF5/doc/Copyright.html.  If you do not have            *
+!  access to either file, you may request a copy from help at hdfgroup.org.       *
 !  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 !
 ! AUTHOR
@@ -90,10 +92,10 @@ WRITE(*,'(40(A,/))') &
 '! PURPOSE',&
 '!  This stand alone program is used at build time to generate the header file',&
 '!  H5fort_type_defines.h. The source code itself was automatically generated by',&
-'!  the program H5test_kind_SIZEOF.f90',&
+'!  the program H5test_kind_STORAGE_SIZE.f90',&
 '!',&
 '! NOTES',&
-'!  This source code makes use of the Fortran intrinsic function SIZEOF because',&
+'!  This source code makes use of the Fortran intrinsic function STORAGE_SIZE because',&
 '!  the availability of the intrinsic function was determined to be available at',&
 '!  configure time',&
 '!',&
@@ -114,7 +116,7 @@ WRITE(*,'(40(A,/))') &
 '! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *',&
 '!',&
 '! AUTHOR',&
-'!  H5test_kind_SIZEOF.f90',&
+'!  H5test_kind_C_SIZEOF.f90',&
 '!',&
 '!*****'
 
@@ -122,7 +124,7 @@ WRITE(*,'(40(A,/))') &
 !
 ! (a) Generate the module
 
-  WRITE(*,*) "MODULE H5test_kind_SIZEOF_mod"
+  WRITE(*,*) "MODULE H5test_kind_STORAGE_SIZE_mod"
   WRITE(*,*) "USE ISO_C_BINDING"
   WRITE(*,*) "IMPLICIT NONE"
   WRITE(*,*) "CONTAINS"
@@ -133,7 +135,7 @@ WRITE(*,'(40(A,/))') &
   WRITE(*,*)"   INTEGER :: a"
   WRITE(*,*)"   INTEGER(C_SIZE_T) :: a_size"
   WRITE(*,*)"   CHARACTER(LEN=2) :: ichr2, jchr2"
-  WRITE(*,*)"   a_size = SIZEOF(a)"
+  WRITE(*,*)"   a_size = STORAGE_SIZE(a, c_size_t)/STORAGE_SIZE(c_char_'a',c_size_t)"
   WRITE(*,*)"   WRITE(ichr2,'(I2)') a_size"
   WRITE(*,'(A,I0)')"    WRITE(jchr2,'(I2)') ",ji
   WRITE(*,'(A)')'    WRITE(*,*) "#define H5_FORTRAN_HAS_NATIVE_"'//  &
@@ -147,7 +149,7 @@ WRITE(*,'(40(A,/))') &
   WRITE(*,*)"   REAL :: a"
   WRITE(*,*)"   INTEGER(C_SIZE_T) :: a_size"
   WRITE(*,*)"   CHARACTER(LEN=2) :: ichr2, jchr2"
-  WRITE(*,*)"   a_size = SIZEOF(a)"
+  WRITE(*,*)"   a_size = STORAGE_SIZE(a, c_size_t)/STORAGE_SIZE(c_char_'a',c_size_t)"
   WRITE(*,*)"   WRITE(ichr2,'(I2)') a_size"
   WRITE(*,'(A,I0)')"    WRITE(jchr2,'(I2)') ",j
   WRITE(*,'(A)')'    WRITE(*,*) "#define H5_FORTRAN_HAS_REAL_NATIVE_"'//  &
@@ -161,7 +163,7 @@ WRITE(*,'(40(A,/))') &
   WRITE(*,*)"   DOUBLE PRECISION :: a"
   WRITE(*,*)"   INTEGER(C_SIZE_T) :: a_size"
   WRITE(*,*)"   CHARACTER(LEN=2) :: ichr2, jchr2"
-  WRITE(*,*)"   a_size = SIZEOF(a)"
+  WRITE(*,*)"   a_size = STORAGE_SIZE(a, c_size_t)/STORAGE_SIZE(c_char_'a',c_size_t)"
   WRITE(*,*)"   WRITE(ichr2,'(I2)') a_size"
   WRITE(*,'(A,I0)')"    WRITE(jchr2,'(I2)') ",j
   WRITE(*,'(A)')'    WRITE(*,*) "#define H5_FORTRAN_HAS_DOUBLE_NATIVE_"'//  &
@@ -175,7 +177,7 @@ WRITE(*,'(40(A,/))') &
      WRITE(*,'(A,I0,A)')"   INTEGER(KIND=",j,") :: a"
      WRITE(*,*)"   INTEGER(C_SIZE_T) :: a_size"
      WRITE(*,*)"   CHARACTER(LEN=2) :: ichr2, jchr2"
-     WRITE(*,*)"   a_size = SIZEOF(a)"
+     WRITE(*,*)"   a_size = STORAGE_SIZE(a, c_size_t)/STORAGE_SIZE(c_char_'a',c_size_t)"
      WRITE(*,*)"   WRITE(ichr2,'(I2)') a_size"
      WRITE(*,'(A,I0)')"    WRITE(jchr2,'(I2)') ",j
      WRITE(*,'(A)')'    WRITE(*,*) "#define H5_FORTRAN_HAS_INTEGER_"'//  &
@@ -190,7 +192,7 @@ WRITE(*,'(40(A,/))') &
      WRITE(*,'(A,I0,A)')"    REAL(KIND= ",j,") :: a"
      WRITE(*,*)"   INTEGER(C_SIZE_T) :: a_size"
      WRITE(*,*)"   CHARACTER(LEN=2) :: ichr2, jchr2"
-     WRITE(*,*)"   a_size = SIZEOF(a)"
+     WRITE(*,*)"   a_size = STORAGE_SIZE(a, c_size_t)/STORAGE_SIZE(c_char_'a',c_size_t)"
      WRITE(*,*)"   WRITE(ichr2,'(I2)') a_size"
      WRITE(*,'(A,I0)')"    WRITE(jchr2,'(I2)') ", j
      WRITE(*,'(A)')'    WRITE(*,*) "#define H5_FORTRAN_HAS_REAL_"'//  &
@@ -198,13 +200,13 @@ WRITE(*,'(40(A,/))') &
      WRITE(*,*)"   RETURN"
      WRITE(*,*)"END SUBROUTINE"
   ENDDO
-  WRITE(*,*) "END MODULE H5test_kind_SIZEOF_mod"
+  WRITE(*,*) "END MODULE H5test_kind_STORAGE_SIZE_mod"
   WRITE(*,*) ""
 
   ! (b) generate the main program
 
-  WRITE(*,*) "PROGRAM H5test_kind_SIZEOF"
-  WRITE(*,*) "USE H5test_kind_SIZEOF_mod"
+  WRITE(*,*) "PROGRAM H5test_kind_STORAGE_SIZE"
+  WRITE(*,*) "USE H5test_kind_STORAGE_SIZE_mod"
   WRITE(*,*) "WRITE(*,*) "" /*generating header file*/ """
   ji = 0
   WRITE(*, "("" CALL i"", i2.2,""()"")") ji
@@ -220,7 +222,7 @@ WRITE(*,'(40(A,/))') &
      j = rkind_numbers(i)
      WRITE(*, "("" CALL r"", i2.2,""()"")") j
   ENDDO
-  WRITE(*,*) "END PROGRAM H5test_kind_SIZEOF"
+  WRITE(*,*) "END PROGRAM H5test_kind_STORAGE_SIZE"
 
 END PROGRAM test_kind
 
diff --git a/fortran/src/Makefile.am b/fortran/src/Makefile.am
index 4c7c1d9..a4b3843 100644
--- a/fortran/src/Makefile.am
+++ b/fortran/src/Makefile.am
@@ -79,7 +79,7 @@ libhdf5_fortran_la_SOURCES=H5f90global.f90 \
 	  H5Aff$(F_STATUS).f90 H5Dff$(F_STATUS).f90 H5Eff$(F_STATUS).f90 H5Fff$(F_STATUS).f90 H5Lff$(F_STATUS).f90 \
 	  H5Off$(F_STATUS).f90 H5Pff$(F_STATUS).f90 H5Rff$(F_STATUS).f90 H5Tff$(F_STATUS).f90 $(PARALLEL_COND_SRC)
 
-# HDF5 Fortran library depends on HDF5 Library.
+# HDF5 Fortran library depends on HDF5 Library. 
 libhdf5_fortran_la_LIBADD=$(LIBHDF5)
 
 # h5fc is generated during configure.
@@ -176,11 +176,15 @@ H5fortran_detect.f90: H5test_kind$(EXEEXT)
 # H5test_kind.f90 is included in the distribution, and Automake knows
 # how to compile a fortran program given its sources.
 
+if FORTRAN_HAVE_STORAGE_SIZE
+  H5test_kind_SOURCES = H5test_kind_STORAGE_SIZE.f90
+else 
 if FORTRAN_HAVE_SIZEOF
   H5test_kind_SOURCES = H5test_kind_SIZEOF.f90
 else
   H5test_kind_SOURCES = H5test_kind.f90
 endif
+endif
 
 # Mark this directory as part of the Fortran API
 FORTRAN_API=yes
diff --git a/fortran/src/Makefile.in b/fortran/src/Makefile.in
index c34bb1c..0b55961 100644
--- a/fortran/src/Makefile.in
+++ b/fortran/src/Makefile.in
@@ -189,11 +189,11 @@ H5fortran_detect_LDADD = $(LDADD)
 H5match_types_SOURCES = H5match_types.c
 H5match_types_OBJECTS = H5match_types.$(OBJEXT)
 H5match_types_LDADD = $(LDADD)
-am__H5test_kind_SOURCES_DIST = H5test_kind.f90 H5test_kind_SIZEOF.f90
- at FORTRAN_HAVE_SIZEOF_FALSE@am_H5test_kind_OBJECTS =  \
- at FORTRAN_HAVE_SIZEOF_FALSE@	H5test_kind.$(OBJEXT)
- at FORTRAN_HAVE_SIZEOF_TRUE@am_H5test_kind_OBJECTS =  \
- at FORTRAN_HAVE_SIZEOF_TRUE@	H5test_kind_SIZEOF.$(OBJEXT)
+am__H5test_kind_SOURCES_DIST = H5test_kind.f90 H5test_kind_SIZEOF.f90 \
+	H5test_kind_STORAGE_SIZE.f90
+ at FORTRAN_HAVE_SIZEOF_FALSE@@FORTRAN_HAVE_STORAGE_SIZE_FALSE at am_H5test_kind_OBJECTS = H5test_kind.$(OBJEXT)
+ at FORTRAN_HAVE_SIZEOF_TRUE@@FORTRAN_HAVE_STORAGE_SIZE_FALSE at am_H5test_kind_OBJECTS = H5test_kind_SIZEOF.$(OBJEXT)
+ at FORTRAN_HAVE_STORAGE_SIZE_TRUE@am_H5test_kind_OBJECTS = H5test_kind_STORAGE_SIZE.$(OBJEXT)
 H5test_kind_OBJECTS = $(am_H5test_kind_OBJECTS)
 H5test_kind_LDADD = $(LDADD)
 AM_V_P = $(am__v_P_ at AM_V@)
@@ -569,7 +569,6 @@ MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MPE = @MPE@
-MPI_GET_SIZE = @MPI_GET_SIZE@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -732,8 +731,10 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog
 
 # Add libtool shared library version numbers to the HDF5 library
 # See libtool versioning documentation online.
-LT_VERS_INTERFACE = 8
-LT_VERS_REVISION = 2 
+# After making changes, run bin/reconfigure to update other configure related
+# files like Makefile.in.
+LT_VERS_INTERFACE = 9
+LT_VERS_REVISION = 0
 LT_VERS_AGE = 0
 AM_FCLIBS = $(LIBHDF5)
 
@@ -772,7 +773,7 @@ libhdf5_fortran_la_SOURCES = H5f90global.f90 \
 	  H5Off$(F_STATUS).f90 H5Pff$(F_STATUS).f90 H5Rff$(F_STATUS).f90 H5Tff$(F_STATUS).f90 $(PARALLEL_COND_SRC)
 
 
-# HDF5 Fortran library depends on HDF5 Library.
+# HDF5 Fortran library depends on HDF5 Library. 
 libhdf5_fortran_la_LIBADD = $(LIBHDF5)
 
 # h5fc is generated during configure.
@@ -799,11 +800,12 @@ BUILT_SOURCES = H5f90i_gen.h
 # Automake knows how to build fortran programs if we tell it the source
 # files.
 H5fortran_detect_SOURCES = H5fortran_detect.f90
- at FORTRAN_HAVE_SIZEOF_FALSE@H5test_kind_SOURCES = H5test_kind.f90
+ at FORTRAN_HAVE_SIZEOF_FALSE@@FORTRAN_HAVE_STORAGE_SIZE_FALSE at H5test_kind_SOURCES = H5test_kind.f90
+ at FORTRAN_HAVE_SIZEOF_TRUE@@FORTRAN_HAVE_STORAGE_SIZE_FALSE at H5test_kind_SOURCES = H5test_kind_SIZEOF.f90
 
 # H5test_kind.f90 is included in the distribution, and Automake knows
 # how to compile a fortran program given its sources.
- at FORTRAN_HAVE_SIZEOF_TRUE@H5test_kind_SOURCES = H5test_kind_SIZEOF.f90
+ at FORTRAN_HAVE_STORAGE_SIZE_TRUE@H5test_kind_SOURCES = H5test_kind_STORAGE_SIZE.f90
 
 # Mark this directory as part of the Fortran API
 FORTRAN_API = yes
diff --git a/fortran/src/hdf5_fortrandll.def.in b/fortran/src/hdf5_fortrandll.def.in
index 41e93e4..c9c5e76 100644
--- a/fortran/src/hdf5_fortrandll.def.in
+++ b/fortran/src/hdf5_fortrandll.def.in
@@ -1,572 +1,572 @@
-EXPORTS
-; H5LIB
-H5LIB_mp_H5OPEN_F
-H5LIB_mp_H5CLOSE_F
-H5LIB_mp_H5GET_LIBVERSION_F
-H5LIB_mp_H5CHECK_VERSION_F
-H5LIB_mp_H5GARBAGE_COLLECT_F
-H5LIB_mp_H5DONT_ATEXIT_F
-H5LIB_mp_H5KIND_TO_TYPE
- at H5_NOF03EXP@H5LIB_PROVISIONAL_mp_H5OFFSETOF
-; H5_DBLE_INTERFACE
-H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_SCALAR
-H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_1
-H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_2
-H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_3
-H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_4
-H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_5
-H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_6
-H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_7
-H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_SCALAR
-H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_1
-H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_2
-H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_3
-H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_4
-H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_5
-H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_6
-H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_7
-H5_DBLE_INTERFACE_mp_H5DFILL_DOUBLE
-H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_SCALAR
-H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_1
-H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_2
-H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_3
-H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_4
-H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_5
-H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_6
-H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_7
-H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_SCALAR
-H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_1
-H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_2
-H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_3
-H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_4
-H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_5
-H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_6
-H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_7
-H5_DBLE_INTERFACE_mp_H5PGET_DOUBLE
-H5_DBLE_INTERFACE_mp_H5PSET_DOUBLE
-H5_DBLE_INTERFACE_mp_H5PSET_FILL_VALUE_DOUBLE
-H5_DBLE_INTERFACE_mp_H5PGET_FILL_VALUE_DOUBLE
-H5_DBLE_INTERFACE_mp_H5PINSERT_DOUBLE
-H5_DBLE_INTERFACE_mp_H5PREGISTER_DOUBLE
-; H5A
-H5A_mp_H5ACREATE_F
-H5A_mp_H5AOPEN_NAME_F
-H5A_mp_H5AOPEN_IDX_F
-H5A_PROVISIONAL_mp_H5AWRITE_INTEGER_SCALAR
-H5A_PROVISIONAL_mp_H5AWRITE_INTEGER_1
-H5A_PROVISIONAL_mp_H5AWRITE_INTEGER_2
-H5A_PROVISIONAL_mp_H5AWRITE_INTEGER_3
-H5A_PROVISIONAL_mp_H5AWRITE_INTEGER_4
-H5A_PROVISIONAL_mp_H5AWRITE_INTEGER_5
-H5A_PROVISIONAL_mp_H5AWRITE_INTEGER_6
-H5A_PROVISIONAL_mp_H5AWRITE_INTEGER_7
-H5A_PROVISIONAL_mp_H5AWRITE_REAL_SCALAR
-H5A_PROVISIONAL_mp_H5AWRITE_REAL_1
-H5A_PROVISIONAL_mp_H5AWRITE_REAL_2
-H5A_PROVISIONAL_mp_H5AWRITE_REAL_3
-H5A_PROVISIONAL_mp_H5AWRITE_REAL_4
-H5A_PROVISIONAL_mp_H5AWRITE_REAL_5
-H5A_PROVISIONAL_mp_H5AWRITE_REAL_6
-H5A_PROVISIONAL_mp_H5AWRITE_REAL_7
-H5A_PROVISIONAL_mp_H5AWRITE_CHAR_SCALAR
-H5A_PROVISIONAL_mp_H5AWRITE_CHAR_1
-H5A_PROVISIONAL_mp_H5AWRITE_CHAR_2
-H5A_PROVISIONAL_mp_H5AWRITE_CHAR_3
-H5A_PROVISIONAL_mp_H5AWRITE_CHAR_4
-H5A_PROVISIONAL_mp_H5AWRITE_CHAR_5
-H5A_PROVISIONAL_mp_H5AWRITE_CHAR_6
-H5A_PROVISIONAL_mp_H5AWRITE_CHAR_7
-H5A_PROVISIONAL_mp_H5AREAD_INTEGER_SCALAR
-H5A_PROVISIONAL_mp_H5AREAD_INTEGER_1
-H5A_PROVISIONAL_mp_H5AREAD_INTEGER_2
-H5A_PROVISIONAL_mp_H5AREAD_INTEGER_3
-H5A_PROVISIONAL_mp_H5AREAD_INTEGER_4
-H5A_PROVISIONAL_mp_H5AREAD_INTEGER_5
-H5A_PROVISIONAL_mp_H5AREAD_INTEGER_6
-H5A_PROVISIONAL_mp_H5AREAD_INTEGER_7
-H5A_PROVISIONAL_mp_H5AREAD_REAL_SCALAR
-H5A_PROVISIONAL_mp_H5AREAD_REAL_1
-H5A_PROVISIONAL_mp_H5AREAD_REAL_2
-H5A_PROVISIONAL_mp_H5AREAD_REAL_3
-H5A_PROVISIONAL_mp_H5AREAD_REAL_4
-H5A_PROVISIONAL_mp_H5AREAD_REAL_5
-H5A_PROVISIONAL_mp_H5AREAD_REAL_6
-H5A_PROVISIONAL_mp_H5AREAD_REAL_7
-H5A_PROVISIONAL_mp_H5AREAD_CHAR_SCALAR
-H5A_PROVISIONAL_mp_H5AREAD_CHAR_1
-H5A_PROVISIONAL_mp_H5AREAD_CHAR_2
-H5A_PROVISIONAL_mp_H5AREAD_CHAR_3
-H5A_PROVISIONAL_mp_H5AREAD_CHAR_4
-H5A_PROVISIONAL_mp_H5AREAD_CHAR_5
-H5A_PROVISIONAL_mp_H5AREAD_CHAR_6
-H5A_PROVISIONAL_mp_H5AREAD_CHAR_7
-H5A_mp_H5AGET_SPACE_F
-H5A_mp_H5AGET_TYPE_F
-H5A_mp_H5AGET_NAME_F
-H5A_mp_H5AGET_NAME_BY_IDX_F
-H5A_mp_H5AGET_NUM_ATTRS_F
-H5A_mp_H5ADELETE_F
-H5A_mp_H5ACLOSE_F
-H5A_mp_H5AGET_STORAGE_SIZE_F
-H5A_mp_H5AGET_CREATE_PLIST_F
-H5A_mp_H5ARENAME_BY_NAME_F
-H5A_mp_H5AOPEN_F
-H5A_mp_H5ADELETE_BY_IDX_F
-H5A_mp_H5ADELETE_BY_NAME_F
-H5A_mp_H5AOPEN_BY_IDX_F
-H5A_mp_H5AGET_INFO_F
-H5A_mp_H5AGET_INFO_BY_IDX_F
-H5A_mp_H5AGET_INFO_BY_NAME_F
-H5A_mp_H5ACREATE_BY_NAME_F
-H5A_mp_H5AEXISTS_F
-H5A_mp_H5AEXISTS_BY_NAME_F
-H5A_mp_H5AOPEN_BY_NAME_F
-H5A_mp_H5ARENAME_F
- at H5_NOF03EXP@H5A_PROVISIONAL_mp_H5AWRITE_PTR
- at H5_NOF03EXP@H5A_PROVISIONAL_mp_H5AREAD_PTR
-; H5D
-H5D_mp_H5DCREATE_F
-H5D_mp_H5DOPEN_F
-H5D_mp_H5DCLOSE_F
-H5D_PROVISIONAL_mp_H5DWRITE_REFERENCE_OBJ
-H5D_PROVISIONAL_mp_H5DWRITE_REFERENCE_DSETREG
-H5D_PROVISIONAL_mp_H5DWRITE_INTEGER_SCALAR
-H5D_PROVISIONAL_mp_H5DWRITE_INTEGER_1
-H5D_PROVISIONAL_mp_H5DWRITE_INTEGER_2
-H5D_PROVISIONAL_mp_H5DWRITE_INTEGER_3
-H5D_PROVISIONAL_mp_H5DWRITE_INTEGER_4
-H5D_PROVISIONAL_mp_H5DWRITE_INTEGER_5
-H5D_PROVISIONAL_mp_H5DWRITE_INTEGER_6
-H5D_PROVISIONAL_mp_H5DWRITE_INTEGER_7
-H5D_PROVISIONAL_mp_H5DWRITE_CHAR_SCALAR
-H5D_PROVISIONAL_mp_H5DWRITE_CHAR_1
-H5D_PROVISIONAL_mp_H5DWRITE_CHAR_2
-H5D_PROVISIONAL_mp_H5DWRITE_CHAR_3
-H5D_PROVISIONAL_mp_H5DWRITE_CHAR_4
-H5D_PROVISIONAL_mp_H5DWRITE_CHAR_5
-H5D_PROVISIONAL_mp_H5DWRITE_CHAR_6
-H5D_PROVISIONAL_mp_H5DWRITE_CHAR_7
-H5D_PROVISIONAL_mp_H5DWRITE_REAL_SCALAR
-H5D_PROVISIONAL_mp_H5DWRITE_REAL_1
-H5D_PROVISIONAL_mp_H5DWRITE_REAL_2
-H5D_PROVISIONAL_mp_H5DWRITE_REAL_3
-H5D_PROVISIONAL_mp_H5DWRITE_REAL_4
-H5D_PROVISIONAL_mp_H5DWRITE_REAL_5
-H5D_PROVISIONAL_mp_H5DWRITE_REAL_6
-H5D_PROVISIONAL_mp_H5DWRITE_REAL_7
-H5D_PROVISIONAL_mp_H5DREAD_REFERENCE_OBJ
-H5D_PROVISIONAL_mp_H5DREAD_REFERENCE_DSETREG
-H5D_PROVISIONAL_mp_H5DREAD_INTEGER_SCALAR
-H5D_PROVISIONAL_mp_H5DREAD_INTEGER_1
-H5D_PROVISIONAL_mp_H5DREAD_INTEGER_2
-H5D_PROVISIONAL_mp_H5DREAD_INTEGER_3
-H5D_PROVISIONAL_mp_H5DREAD_INTEGER_4
-H5D_PROVISIONAL_mp_H5DREAD_INTEGER_5
-H5D_PROVISIONAL_mp_H5DREAD_INTEGER_6
-H5D_PROVISIONAL_mp_H5DREAD_INTEGER_7
-H5D_PROVISIONAL_mp_H5DREAD_CHAR_SCALAR
-H5D_PROVISIONAL_mp_H5DREAD_CHAR_1
-H5D_PROVISIONAL_mp_H5DREAD_CHAR_2
-H5D_PROVISIONAL_mp_H5DREAD_CHAR_3
-H5D_PROVISIONAL_mp_H5DREAD_CHAR_4
-H5D_PROVISIONAL_mp_H5DREAD_CHAR_5
-H5D_PROVISIONAL_mp_H5DREAD_CHAR_6
-H5D_PROVISIONAL_mp_H5DREAD_CHAR_7
-H5D_PROVISIONAL_mp_H5DREAD_REAL_SCALAR
-H5D_PROVISIONAL_mp_H5DREAD_REAL_1
-H5D_PROVISIONAL_mp_H5DREAD_REAL_2
-H5D_PROVISIONAL_mp_H5DREAD_REAL_3
-H5D_PROVISIONAL_mp_H5DREAD_REAL_4
-H5D_PROVISIONAL_mp_H5DREAD_REAL_5
-H5D_PROVISIONAL_mp_H5DREAD_REAL_6
-H5D_PROVISIONAL_mp_H5DREAD_REAL_7
-H5D_mp_H5DGET_SPACE_F
-H5D_mp_H5DGET_TYPE_F
-H5D_mp_H5DSET_EXTENT_F
-H5D_mp_H5DGET_CREATE_PLIST_F
-H5D_mp_H5DGET_STORAGE_SIZE_F
-H5D_mp_H5DVLEN_GET_MAX_LEN_F
-H5D_mp_H5DWRITE_VL_INTEGER
-H5D_mp_H5DREAD_VL_INTEGER
-H5D_mp_H5DWRITE_VL_REAL
-H5D_mp_H5DREAD_VL_REAL
-H5D_mp_H5DWRITE_VL_STRING
-H5D_mp_H5DREAD_VL_STRING
-H5D_PROVISIONAL_mp_H5DFILL_INTEGER
-H5D_PROVISIONAL_mp_H5DFILL_REAL
-H5D_PROVISIONAL_mp_H5DFILL_CHAR
-H5D_mp_H5DGET_SPACE_STATUS_F
-H5D_mp_H5DCREATE_ANON_F
-H5D_mp_H5DGET_SPACE_F
-H5D_mp_H5DGET_TYPE_F
-H5D_mp_H5DSET_EXTENT_F
-H5D_mp_H5DGET_CREATE_PLIST_F
-H5D_mp_H5DGET_STORAGE_SIZE_F
-H5D_mp_H5DVLEN_GET_MAX_LEN_F
-H5D_mp_H5DGET_ACCESS_PLIST_F
- at H5_NOF03EXP@H5D_PROVISIONAL_mp_H5DWRITE_PTR
- at H5_NOF03EXP@H5D_PROVISIONAL_mp_H5DREAD_PTR
- at H5_NOF03EXP@H5D_PROVISIONAL_mp_H5DVLEN_RECLAIM_F
-; H5E
-H5E_mp_H5ECLEAR_F
-H5E_mp_H5EPRINT_F
-H5E_mp_H5EGET_MAJOR_F
-H5E_mp_H5EGET_MINOR_F
-H5E_PROVISIONAL_mp_H5ESET_AUTO_F
-; H5F
-H5F_mp_H5FCREATE_F
-H5F_mp_H5FFLUSH_F
-H5F_mp_H5FCLOSE_F
-H5F_mp_H5FGET_OBJ_COUNT_F
-H5F_mp_H5FGET_OBJ_IDS_F
-H5F_mp_H5FGET_FREESPACE_F
-H5F_mp_H5FMOUNT_F
-H5F_mp_H5FUNMOUNT_F
-H5F_mp_H5FOPEN_F
-H5F_mp_H5FREOPEN_F
-H5F_mp_H5FGET_CREATE_PLIST_F
-H5F_mp_H5FGET_ACCESS_PLIST_F
-H5F_mp_H5FIS_HDF5_F
-H5F_mp_H5FGET_NAME_F
-H5F_mp_H5FGET_FILESIZE_F
- at H5_NOF03EXP@H5F_PROVISIONAL_mp_H5FGET_FILE_IMAGE_F
-; H5G
-H5G_mp_H5GOPEN_F
-H5G_mp_H5GCREATE_F
-H5G_mp_H5GCLOSE_F
-H5G_mp_H5GGET_OBJ_INFO_IDX_F
-H5G_mp_H5GN_MEMBERS_F
-H5G_mp_H5GLINK_F
-H5G_mp_H5GLINK2_F
-H5G_mp_H5GUNLINK_F
-H5G_mp_H5GMOVE_F
-H5G_mp_H5GMOVE2_F
-H5G_mp_H5GGET_LINKVAL_F
-H5G_mp_H5GSET_COMMENT_F
-H5G_mp_H5GGET_COMMENT_F
-H5G_mp_H5GCREATE_ANON_F
-H5G_mp_H5GGET_CREATE_PLIST_F
-H5G_mp_H5GGET_INFO_F
-H5G_mp_H5GGET_INFO_BY_IDX_F
-H5G_mp_H5GGET_INFO_BY_NAME_F
-H5G_mp_H5GGET_OBJ_INFO_IDX_F
-; H5GLOBAL
-; PREDEFINED_TYPES DATA
-; FLOATING_TYPES DATA
-; INTEGER_TYPES DATA
-; H5F_FLAGS DATA
-; H5GENERIC_FLAGS DATA
-; H5G_FLAGS DATA
-; H5D_FLAGS DATA
-; H5FD_FLAGS DATA
-; H5FD_HID_FLAGS DATA
-; H5I_FLAGS DATA
-; H5L_FLAGS DATA
-; H5O_FLAGS DATA
-; H5P_FLAGS DATA
-; H5P_FLAGS_INT DATA
-; H5R_FLAGS DATA
-; H5S_FLAGS DATA
-; H5T_FLAGS DATA
-; H5Z_FLAGS DATA
-; H5LIB_FLAGS DATA
-; H5I
-H5I_mp_H5IGET_TYPE_F
-H5I_mp_H5IGET_NAME_F
-H5I_mp_H5IINC_REF_F
-H5I_mp_H5IDEC_REF_F
-H5I_mp_H5IGET_REF_F
-H5I_mp_H5IGET_FILE_ID_F
-H5I_mp_H5IIS_VALID_F
-; H5L
-H5L_mp_H5LCOPY_F
-H5L_mp_H5LDELETE_F
-H5L_mp_H5LCREATE_SOFT_F
-H5L_mp_H5LCREATE_HARD_F
-H5L_mp_H5LCREATE_EXTERNAL_F
-H5L_mp_H5LDELETE_BY_IDX_F
-H5L_mp_H5LEXISTS_F
-H5L_mp_H5LGET_INFO_F
-H5L_mp_H5LGET_INFO_BY_IDX_F
-H5L_mp_H5LIS_REGISTERED_F
-H5L_mp_H5LMOVE_F
-H5L_mp_H5LGET_NAME_BY_IDX_F
- at H5_NOF03EXP@H5L_PROVISIONAL_mp_H5LITERATE_F
- at H5_NOF03EXP@H5L_PROVISIONAL_mp_H5LITERATE_BY_NAME_F
-; H5O
-H5O_mp_H5OCLOSE_F
-H5O_mp_H5OCOPY_F
-H5O_mp_H5ODECR_REFCOUNT_F
-H5O_mp_H5OEXISTS_BY_NAME_F
-H5O_mp_H5OGET_COMMENT_F
-H5O_mp_H5OGET_COMMENT_BY_NAME_F
-H5O_mp_H5OINCR_REFCOUNT_F
-H5O_mp_H5OLINK_F
-H5O_mp_H5OOPEN_BY_ADDR_F
-H5O_mp_H5OOPEN_BY_IDX_F
-H5O_mp_H5OOPEN_F
-H5O_mp_H5OSET_COMMENT_F
-H5O_mp_H5OSET_COMMENT_BY_NAME_F
- at H5_NOF03EXP@H5O_PROVISIONAL_mp_H5OGET_INFO_BY_IDX_F
- at H5_NOF03EXP@H5O_PROVISIONAL_mp_H5OGET_INFO_BY_NAME_F
- at H5_NOF03EXP@H5O_PROVISIONAL_mp_H5OGET_INFO_F
- at H5_NOF03EXP@H5O_PROVISIONAL_mp_H5OVISIT_BY_NAME_F
- at H5_NOF03EXP@H5O_PROVISIONAL_mp_H5OVISIT_F
-; H5P
-H5P_mp_H5PCREATE_F
-H5P_mp_H5PSET_PRESERVE_F
-H5P_mp_H5PGET_PRESERVE_F
-H5P_mp_H5PGET_CLASS_F
-H5P_mp_H5PCOPY_F
-H5P_mp_H5PCLOSE_F
-H5P_mp_H5PSET_CHUNK_F
-H5P_mp_H5PGET_CHUNK_F
-H5P_mp_H5PSET_DEFLATE_F
-H5P_PROVISIONAL_mp_H5PSET_FILL_VALUE_INTEGER
-H5P_PROVISIONAL_mp_H5PGET_FILL_VALUE_INTEGER
-H5P_PROVISIONAL_mp_H5PSET_FILL_VALUE_REAL
-H5P_PROVISIONAL_mp_H5PGET_FILL_VALUE_REAL
-H5P_PROVISIONAL_mp_H5PSET_FILL_VALUE_CHAR
-H5P_PROVISIONAL_mp_H5PGET_FILL_VALUE_CHAR
-H5P_mp_H5PGET_VERSION_F
-H5P_mp_H5PSET_USERBLOCK_F
-H5P_mp_H5PGET_USERBLOCK_F
-H5P_mp_H5PSET_SIZES_F
-H5P_mp_H5PGET_SIZES_F
-H5P_mp_H5PSET_SYM_K_F
-H5P_mp_H5PGET_SYM_K_F
-H5P_mp_H5PSET_ISTORE_K_F
-H5P_mp_H5PGET_ISTORE_K_F
-H5P_mp_H5PGET_DRIVER_F
-H5P_mp_H5PSET_FAPL_STDIO_F
-H5P_mp_H5PSET_FAPL_SEC2_F
-H5P_mp_H5PSET_ALIGNMENT_F
-H5P_mp_H5PGET_ALIGNMENT_F
-H5P_mp_H5PSET_FAPL_CORE_F
-H5P_mp_H5PGET_FAPL_CORE_F
-H5P_mp_H5PSET_FAPL_FAMILY_F
-H5P_mp_H5PGET_FAPL_FAMILY_F
-H5P_mp_H5PSET_CACHE_F
-H5P_mp_H5PGET_CACHE_F
-H5P_mp_H5PSET_FAPL_SPLIT_F
-H5P_mp_H5PSET_GC_REFERENCES_F
-H5P_mp_H5PGET_GC_REFERENCES_F
-H5P_mp_H5PSET_LAYOUT_F
-H5P_mp_H5PGET_LAYOUT_F
-H5P_mp_H5PSET_FILTER_F
-H5P_mp_H5PGET_NFILTERS_F
-H5P_mp_H5PGET_FILTER_F
-H5P_mp_H5PSET_EXTERNAL_F
-H5P_mp_H5PGET_EXTERNAL_COUNT_F
-H5P_mp_H5PGET_EXTERNAL_F
-H5P_mp_H5PSET_BTREE_RATIOS_F
-H5P_mp_H5PGET_BTREE_RATIOS_F
-H5P_mp_H5PGET_FCLOSE_DEGREE_F
-H5P_mp_H5PSET_FCLOSE_DEGREE_F
-H5P_mp_H5PEQUAL_F
-H5P_mp_H5PSET_BUFFER_F
-H5P_mp_H5PGET_BUFFER_F
-H5P_mp_H5PFILL_VALUE_DEFINED_F
-H5P_mp_H5PSET_ALLOC_TIME_F
-H5P_mp_H5PGET_ALLOC_TIME_F
-H5P_mp_H5PSET_FILL_TIME_F
-H5P_mp_H5PGET_FILL_TIME_F
-H5P_mp_H5PSET_META_BLOCK_SIZE_F
-H5P_mp_H5PGET_META_BLOCK_SIZE_F
-H5P_mp_H5PSET_SIEVE_BUF_SIZE_F
-H5P_mp_H5PGET_SIEVE_BUF_SIZE_F
-H5P_mp_H5PSET_SMALL_DATA_BLOCK_SIZE_F
-H5P_mp_H5PGET_SMALL_DATA_BLOCK_SIZE_F
-H5P_mp_H5PSET_HYPER_VECTOR_SIZE_F
-H5P_mp_H5PGET_HYPER_VECTOR_SIZE_F
-H5P_PROVISIONAL_mp_H5PSET_INTEGER
-H5P_PROVISIONAL_mp_H5PSET_REAL
-H5P_PROVISIONAL_mp_H5PSET_CHAR
-H5P_PROVISIONAL_mp_H5PGET_INTEGER
-H5P_PROVISIONAL_mp_H5PGET_REAL
-H5P_PROVISIONAL_mp_H5PGET_CHAR
-H5P_mp_H5PEXIST_F
-H5P_mp_H5PGET_SIZE_F
-H5P_mp_H5PGET_NPROPS_F
-H5P_mp_H5PGET_CLASS_NAME_F
-H5P_mp_H5PGET_CLASS_PARENT_F
-H5P_mp_H5PISA_CLASS_F
-H5P_mp_H5PCOPY_PROP_F
-H5P_mp_H5PREMOVE_F
-H5P_mp_H5PUNREGISTER_F
-H5P_mp_H5PCLOSE_CLASS_F
-H5P_PROVISIONAL_mp_H5PCREATE_CLASS_F
-H5P_PROVISIONAL_mp_H5PREGISTER_INTEGER
-H5P_PROVISIONAL_mp_H5PREGISTER_REAL
-H5P_PROVISIONAL_mp_H5PREGISTER_CHAR
-H5P_PROVISIONAL_mp_H5PINSERT_INTEGER
-H5P_PROVISIONAL_mp_H5PINSERT_REAL
-H5P_PROVISIONAL_mp_H5PINSERT_CHAR
-H5P_mp_H5PSET_SHUFFLE_F
-H5P_mp_H5PSET_EDC_CHECK_F
-H5P_mp_H5PGET_EDC_CHECK_F
-H5P_mp_H5PSET_FLETCHER32_F
-H5P_mp_H5PSET_FAMILY_OFFSET_F
-H5P_mp_H5PSET_FAPL_MULTI_L
-H5P_mp_H5PSET_FAPL_MULTI_S
-H5P_mp_H5PGET_FAPL_MULTI_F
-H5P_mp_H5PSET_SZIP_F
-H5P_mp_H5PALL_FILTERS_AVAIL_F
-H5P_mp_H5PGET_FILTER_BY_ID_F
-H5P_mp_H5PMODIFY_FILTER_F
-H5P_mp_H5PREMOVE_FILTER_F
-H5P_mp_H5PGET_ATTR_PHASE_CHANGE_F
-H5P_mp_H5PSET_ATTR_CREATION_ORDER_F
-H5P_mp_H5PSET_SHARED_MESG_NINDEXES_F
-H5P_mp_H5PSET_SHARED_MESG_INDEX_F
-H5P_mp_H5PGET_ATTR_CREATION_ORDER_F
-H5P_mp_H5PSET_LIBVER_BOUNDS_F
-H5P_mp_H5PSET_LINK_CREATION_ORDER_F
-H5P_mp_H5PGET_LINK_PHASE_CHANGE_F
-H5P_mp_H5PGET_OBJ_TRACK_TIMES_F
-H5P_mp_H5PSET_OBJ_TRACK_TIMES_F
-H5P_mp_H5PSET_CREATE_INTER_GROUP_F
-H5P_mp_H5PGET_LINK_CREATION_ORDER_F
-H5P_mp_H5PSET_CHAR_ENCODING_F
-H5P_mp_H5PGET_CHAR_ENCODING_F
-H5P_mp_H5PSET_COPY_OBJECT_F
-H5P_mp_H5PGET_COPY_OBJECT_F
-H5P_mp_H5PGET_DATA_TRANSFORM_F
-H5P_mp_H5PSET_DATA_TRANSFORM_F
-H5P_mp_H5PGET_LOCAL_HEAP_SIZE_HINT_F
-H5P_mp_H5PGET_EST_LINK_INFO_F
-H5P_mp_H5PSET_LOCAL_HEAP_SIZE_HINT_F
-H5P_mp_H5PSET_EST_LINK_INFO_F
-H5P_mp_H5PSET_LINK_PHASE_CHANGE_F
-H5P_mp_H5PSET_FAPL_DIRECT_F
-H5P_mp_H5PGET_FAPL_DIRECT_F
-H5P_mp_H5PSET_ATTR_PHASE_CHANGE_F
-H5P_mp_H5PSET_NBIT_F
-H5P_mp_H5PSET_SCALEOFFSET_F
-H5P_mp_H5PSET_NLINKS_F
-H5P_mp_H5PGET_NLINKS_F
-H5P_mp_H5PGET_CREATE_INTER_GROUP_F
-H5P_mp_H5PSET_CHUNK_CACHE_F
-H5P_mp_H5PGET_CHUNK_CACHE_F
- at H5_NOF03EXP@H5P_PROVISIONAL_mp_H5PSET_FILL_VALUE_PTR
- at H5_NOF03EXP@H5P_PROVISIONAL_mp_H5PGET_FILL_VALUE_PTR
- at H5_NOF03EXP@H5P_PROVISIONAL_mp_H5PSET_PTR
- at H5_NOF03EXP@H5P_PROVISIONAL_mp_H5PGET_PTR
- at H5_NOF03EXP@H5P_PROVISIONAL_mp_H5PREGISTER_PTR
- at H5_NOF03EXP@H5P_PROVISIONAL_mp_H5PINSERT_PTR
- at H5_NOF03EXP@H5P_PROVISIONAL_mp_H5PGET_FILE_IMAGE_F
- at H5_NOF03EXP@H5P_PROVISIONAL_mp_H5PSET_FILE_IMAGE_F
-; H5R
-H5R_PROVISIONAL_mp_H5RCREATE_OBJECT_F
-H5R_PROVISIONAL_mp_H5RCREATE_REGION_F
-H5R_PROVISIONAL_mp_H5RDEREFERENCE_OBJECT_F
-H5R_PROVISIONAL_mp_H5RDEREFERENCE_REGION_F
-H5R_PROVISIONAL_mp_H5RGET_REGION_REGION_F
-H5R_mp_H5RGET_OBJECT_TYPE_OBJ_F
-H5R_PROVISIONAL_mp_H5RGET_NAME_OBJECT_F
-H5R_PROVISIONAL_mp_H5RGET_NAME_REGION_F
- at H5_NOF03EXP@H5R_PROVISIONAL_mp_H5RGET_REGION_PTR_F
- at H5_NOF03EXP@H5R_PROVISIONAL_mp_H5RCREATE_PTR_F
- at H5_NOF03EXP@H5R_PROVISIONAL_mp_H5RDEREFERENCE_PTR_F
- at H5_NOF03EXP@H5R_PROVISIONAL_mp_H5RGET_NAME_PTR_F
- at H5_NOF03EXP@H5R_PROVISIONAL_mp_H5RGET_OBJ_TYPE_F
-; H5S
-H5S_mp_H5SCREATE_SIMPLE_F
-H5S_mp_H5SCLOSE_F
-H5S_mp_H5SCREATE_F
-H5S_mp_H5SCOPY_F
-H5S_mp_H5SGET_SELECT_HYPER_NBLOCKS_F
-H5S_mp_H5SGET_SELECT_HYPER_BLOCKLIST_F
-H5S_mp_H5SGET_SELECT_BOUNDS_F
-H5S_mp_H5SGET_SELECT_ELEM_NPOINTS_F
-H5S_mp_H5SGET_SELECT_ELEM_POINTLIST_F
-H5S_mp_H5SSELECT_ELEMENTS_F
-H5S_mp_H5SSELECT_ALL_F
-H5S_mp_H5SSELECT_NONE_F
-H5S_mp_H5SSELECT_VALID_F
-H5S_mp_H5SGET_SIMPLE_EXTENT_NPOINTS_F
-H5S_mp_H5SGET_SELECT_NPOINTS_F
-H5S_mp_H5SGET_SIMPLE_EXTENT_NDIMS_F
-H5S_mp_H5SGET_SIMPLE_EXTENT_DIMS_F
-H5S_mp_H5SGET_SIMPLE_EXTENT_TYPE_F
-H5S_mp_H5SSET_EXTENT_SIMPLE_F
-H5S_mp_H5SIS_SIMPLE_F
-H5S_mp_H5SOFFSET_SIMPLE_F
-H5S_mp_H5SEXTENT_COPY_F
-H5S_mp_H5SSET_EXTENT_NONE_F
-H5S_mp_H5SSELECT_HYPERSLAB_F
-H5S_mp_H5SGET_SELECT_TYPE_F
-H5S_mp_H5SDECODE_F
-H5S_mp_H5SENCODE_F
-H5S_mp_H5SEXTENT_EQUAL_F
-; H5T
-H5T_mp_H5TOPEN_F
-H5T_mp_H5TCOMMIT_F
-H5T_mp_H5TCOPY_F
-H5T_mp_H5TEQUAL_F
-H5T_mp_H5TCLOSE_F
-H5T_mp_H5TGET_CLASS_F
-H5T_mp_H5TGET_SIZE_F
-H5T_mp_H5TSET_SIZE_F
-H5T_mp_H5TGET_ORDER_F
-H5T_mp_H5TSET_ORDER_F
-H5T_mp_H5TGET_PRECISION_F
-H5T_mp_H5TSET_PRECISION_F
-H5T_mp_H5TGET_OFFSET_F
-H5T_mp_H5TSET_OFFSET_F
-H5T_mp_H5TGET_PAD_F
-H5T_mp_H5TSET_PAD_F
-H5T_mp_H5TGET_SIGN_F
-H5T_mp_H5TSET_SIGN_F
-H5T_mp_H5TGET_FIELDS_F
-H5T_mp_H5TSET_FIELDS_F
-H5T_mp_H5TGET_EBIAS_F
-H5T_mp_H5TSET_EBIAS_F
-H5T_mp_H5TGET_NORM_F
-H5T_mp_H5TSET_NORM_F
-H5T_mp_H5TGET_INPAD_F
-H5T_mp_H5TSET_INPAD_F
-H5T_mp_H5TGET_CSET_F
-H5T_mp_H5TSET_CSET_F
-H5T_mp_H5TGET_STRPAD_F
-H5T_mp_H5TSET_STRPAD_F
-H5T_mp_H5TGET_NMEMBERS_F
-H5T_mp_H5TGET_MEMBER_NAME_F
-H5T_mp_H5TGET_MEMBER_OFFSET_F
-H5T_mp_H5TGET_MEMBER_INDEX_F
-H5T_mp_H5TGET_ARRAY_DIMS_F
-H5T_mp_H5TGET_ARRAY_NDIMS_F
-H5T_mp_H5TGET_SUPER_F
-H5T_mp_H5TGET_MEMBER_TYPE_F
-H5T_mp_H5TCREATE_F
-H5T_mp_H5TINSERT_F
-H5T_mp_H5TPACK_F
-H5T_mp_H5TARRAY_CREATE_F
-H5T_mp_H5TENUM_CREATE_F
-H5T_mp_H5TENUM_INSERT_F
-H5T_mp_H5TENUM_NAMEOF_F
-H5T_mp_H5TENUM_VALUEOF_F
-H5T_mp_H5TGET_MEMBER_VALUE_F
-H5T_mp_H5TSET_TAG_F
-H5T_mp_H5TGET_TAG_F
-H5T_mp_H5TVLEN_CREATE_F
-H5T_mp_H5TIS_VARIABLE_STR_F
-H5T_mp_H5TGET_MEMBER_CLASS_F
-H5T_mp_H5TCOMMIT_ANON_F
-H5T_mp_H5TCOMMITTED_F
-H5T_mp_H5TDECODE_F
-H5T_mp_H5TENCODE_F
-H5T_mp_H5TGET_CREATE_PLIST_F
-H5T_mp_H5TCOMPILER_CONV_F
-H5T_mp_H5TGET_NATIVE_TYPE_F
- at H5_NOF03EXP@H5T_PROVISIONAL_mp_H5TCONVERT_F
-; H5Z
-H5Z_mp_H5ZUNREGISTER_F
-H5Z_mp_H5ZFILTER_AVAIL_F
-H5Z_mp_H5ZGET_FILTER_INFO_F
-; Parallel
- at H5_NOPAREXP@H5FDMPIO_mp_H5PSET_FAPL_MPIO_F
- at H5_NOPAREXP@H5FDMPIO_mp_H5PGET_FAPL_MPIO_F
- at H5_NOPAREXP@H5FDMPIO_mp_H5PSET_DXPL_MPIO_F
- at H5_NOPAREXP@H5FDMPIO_mp_H5PGET_DXPL_MPIO_F
- at H5_NOPAREXP@H5FDMPIO_mp_H5PGET_MPIO_ACTUAL_IO_MODE_F
+EXPORTS
+; H5LIB
+H5LIB_mp_H5OPEN_F
+H5LIB_mp_H5CLOSE_F
+H5LIB_mp_H5GET_LIBVERSION_F
+H5LIB_mp_H5CHECK_VERSION_F
+H5LIB_mp_H5GARBAGE_COLLECT_F
+H5LIB_mp_H5DONT_ATEXIT_F
+H5LIB_mp_H5KIND_TO_TYPE
+ at H5_NOF03EXP@H5LIB_PROVISIONAL_mp_H5OFFSETOF
+; H5_DBLE_INTERFACE
+H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_SCALAR
+H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_1
+H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_2
+H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_3
+H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_4
+H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_5
+H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_6
+H5_DBLE_INTERFACE_mp_H5AREAD_DOUBLE_7
+H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_SCALAR
+H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_1
+H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_2
+H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_3
+H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_4
+H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_5
+H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_6
+H5_DBLE_INTERFACE_mp_H5AWRITE_DOUBLE_7
+H5_DBLE_INTERFACE_mp_H5DFILL_DOUBLE
+H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_SCALAR
+H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_1
+H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_2
+H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_3
+H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_4
+H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_5
+H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_6
+H5_DBLE_INTERFACE_mp_H5DREAD_DOUBLE_7
+H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_SCALAR
+H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_1
+H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_2
+H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_3
+H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_4
+H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_5
+H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_6
+H5_DBLE_INTERFACE_mp_H5DWRITE_DOUBLE_7
+H5_DBLE_INTERFACE_mp_H5PGET_DOUBLE
+H5_DBLE_INTERFACE_mp_H5PSET_DOUBLE
+H5_DBLE_INTERFACE_mp_H5PSET_FILL_VALUE_DOUBLE
+H5_DBLE_INTERFACE_mp_H5PGET_FILL_VALUE_DOUBLE
+H5_DBLE_INTERFACE_mp_H5PINSERT_DOUBLE
+H5_DBLE_INTERFACE_mp_H5PREGISTER_DOUBLE
+; H5A
+H5A_mp_H5ACREATE_F
+H5A_mp_H5AOPEN_NAME_F
+H5A_mp_H5AOPEN_IDX_F
+H5A_PROVISIONAL_mp_H5AWRITE_INTEGER_SCALAR
+H5A_PROVISIONAL_mp_H5AWRITE_INTEGER_1
+H5A_PROVISIONAL_mp_H5AWRITE_INTEGER_2
+H5A_PROVISIONAL_mp_H5AWRITE_INTEGER_3
+H5A_PROVISIONAL_mp_H5AWRITE_INTEGER_4
+H5A_PROVISIONAL_mp_H5AWRITE_INTEGER_5
+H5A_PROVISIONAL_mp_H5AWRITE_INTEGER_6
+H5A_PROVISIONAL_mp_H5AWRITE_INTEGER_7
+H5A_PROVISIONAL_mp_H5AWRITE_REAL_SCALAR
+H5A_PROVISIONAL_mp_H5AWRITE_REAL_1
+H5A_PROVISIONAL_mp_H5AWRITE_REAL_2
+H5A_PROVISIONAL_mp_H5AWRITE_REAL_3
+H5A_PROVISIONAL_mp_H5AWRITE_REAL_4
+H5A_PROVISIONAL_mp_H5AWRITE_REAL_5
+H5A_PROVISIONAL_mp_H5AWRITE_REAL_6
+H5A_PROVISIONAL_mp_H5AWRITE_REAL_7
+H5A_PROVISIONAL_mp_H5AWRITE_CHAR_SCALAR
+H5A_PROVISIONAL_mp_H5AWRITE_CHAR_1
+H5A_PROVISIONAL_mp_H5AWRITE_CHAR_2
+H5A_PROVISIONAL_mp_H5AWRITE_CHAR_3
+H5A_PROVISIONAL_mp_H5AWRITE_CHAR_4
+H5A_PROVISIONAL_mp_H5AWRITE_CHAR_5
+H5A_PROVISIONAL_mp_H5AWRITE_CHAR_6
+H5A_PROVISIONAL_mp_H5AWRITE_CHAR_7
+H5A_PROVISIONAL_mp_H5AREAD_INTEGER_SCALAR
+H5A_PROVISIONAL_mp_H5AREAD_INTEGER_1
+H5A_PROVISIONAL_mp_H5AREAD_INTEGER_2
+H5A_PROVISIONAL_mp_H5AREAD_INTEGER_3
+H5A_PROVISIONAL_mp_H5AREAD_INTEGER_4
+H5A_PROVISIONAL_mp_H5AREAD_INTEGER_5
+H5A_PROVISIONAL_mp_H5AREAD_INTEGER_6
+H5A_PROVISIONAL_mp_H5AREAD_INTEGER_7
+H5A_PROVISIONAL_mp_H5AREAD_REAL_SCALAR
+H5A_PROVISIONAL_mp_H5AREAD_REAL_1
+H5A_PROVISIONAL_mp_H5AREAD_REAL_2
+H5A_PROVISIONAL_mp_H5AREAD_REAL_3
+H5A_PROVISIONAL_mp_H5AREAD_REAL_4
+H5A_PROVISIONAL_mp_H5AREAD_REAL_5
+H5A_PROVISIONAL_mp_H5AREAD_REAL_6
+H5A_PROVISIONAL_mp_H5AREAD_REAL_7
+H5A_PROVISIONAL_mp_H5AREAD_CHAR_SCALAR
+H5A_PROVISIONAL_mp_H5AREAD_CHAR_1
+H5A_PROVISIONAL_mp_H5AREAD_CHAR_2
+H5A_PROVISIONAL_mp_H5AREAD_CHAR_3
+H5A_PROVISIONAL_mp_H5AREAD_CHAR_4
+H5A_PROVISIONAL_mp_H5AREAD_CHAR_5
+H5A_PROVISIONAL_mp_H5AREAD_CHAR_6
+H5A_PROVISIONAL_mp_H5AREAD_CHAR_7
+H5A_mp_H5AGET_SPACE_F
+H5A_mp_H5AGET_TYPE_F
+H5A_mp_H5AGET_NAME_F
+H5A_mp_H5AGET_NAME_BY_IDX_F
+H5A_mp_H5AGET_NUM_ATTRS_F
+H5A_mp_H5ADELETE_F
+H5A_mp_H5ACLOSE_F
+H5A_mp_H5AGET_STORAGE_SIZE_F
+H5A_mp_H5AGET_CREATE_PLIST_F
+H5A_mp_H5ARENAME_BY_NAME_F
+H5A_mp_H5AOPEN_F
+H5A_mp_H5ADELETE_BY_IDX_F
+H5A_mp_H5ADELETE_BY_NAME_F
+H5A_mp_H5AOPEN_BY_IDX_F
+H5A_mp_H5AGET_INFO_F
+H5A_mp_H5AGET_INFO_BY_IDX_F
+H5A_mp_H5AGET_INFO_BY_NAME_F
+H5A_mp_H5ACREATE_BY_NAME_F
+H5A_mp_H5AEXISTS_F
+H5A_mp_H5AEXISTS_BY_NAME_F
+H5A_mp_H5AOPEN_BY_NAME_F
+H5A_mp_H5ARENAME_F
+ at H5_NOF03EXP@H5A_PROVISIONAL_mp_H5AWRITE_PTR
+ at H5_NOF03EXP@H5A_PROVISIONAL_mp_H5AREAD_PTR
+; H5D
+H5D_mp_H5DCREATE_F
+H5D_mp_H5DOPEN_F
+H5D_mp_H5DCLOSE_F
+H5D_PROVISIONAL_mp_H5DWRITE_REFERENCE_OBJ
+H5D_PROVISIONAL_mp_H5DWRITE_REFERENCE_DSETREG
+H5D_PROVISIONAL_mp_H5DWRITE_INTEGER_SCALAR
+H5D_PROVISIONAL_mp_H5DWRITE_INTEGER_1
+H5D_PROVISIONAL_mp_H5DWRITE_INTEGER_2
+H5D_PROVISIONAL_mp_H5DWRITE_INTEGER_3
+H5D_PROVISIONAL_mp_H5DWRITE_INTEGER_4
+H5D_PROVISIONAL_mp_H5DWRITE_INTEGER_5
+H5D_PROVISIONAL_mp_H5DWRITE_INTEGER_6
+H5D_PROVISIONAL_mp_H5DWRITE_INTEGER_7
+H5D_PROVISIONAL_mp_H5DWRITE_CHAR_SCALAR
+H5D_PROVISIONAL_mp_H5DWRITE_CHAR_1
+H5D_PROVISIONAL_mp_H5DWRITE_CHAR_2
+H5D_PROVISIONAL_mp_H5DWRITE_CHAR_3
+H5D_PROVISIONAL_mp_H5DWRITE_CHAR_4
+H5D_PROVISIONAL_mp_H5DWRITE_CHAR_5
+H5D_PROVISIONAL_mp_H5DWRITE_CHAR_6
+H5D_PROVISIONAL_mp_H5DWRITE_CHAR_7
+H5D_PROVISIONAL_mp_H5DWRITE_REAL_SCALAR
+H5D_PROVISIONAL_mp_H5DWRITE_REAL_1
+H5D_PROVISIONAL_mp_H5DWRITE_REAL_2
+H5D_PROVISIONAL_mp_H5DWRITE_REAL_3
+H5D_PROVISIONAL_mp_H5DWRITE_REAL_4
+H5D_PROVISIONAL_mp_H5DWRITE_REAL_5
+H5D_PROVISIONAL_mp_H5DWRITE_REAL_6
+H5D_PROVISIONAL_mp_H5DWRITE_REAL_7
+H5D_PROVISIONAL_mp_H5DREAD_REFERENCE_OBJ
+H5D_PROVISIONAL_mp_H5DREAD_REFERENCE_DSETREG
+H5D_PROVISIONAL_mp_H5DREAD_INTEGER_SCALAR
+H5D_PROVISIONAL_mp_H5DREAD_INTEGER_1
+H5D_PROVISIONAL_mp_H5DREAD_INTEGER_2
+H5D_PROVISIONAL_mp_H5DREAD_INTEGER_3
+H5D_PROVISIONAL_mp_H5DREAD_INTEGER_4
+H5D_PROVISIONAL_mp_H5DREAD_INTEGER_5
+H5D_PROVISIONAL_mp_H5DREAD_INTEGER_6
+H5D_PROVISIONAL_mp_H5DREAD_INTEGER_7
+H5D_PROVISIONAL_mp_H5DREAD_CHAR_SCALAR
+H5D_PROVISIONAL_mp_H5DREAD_CHAR_1
+H5D_PROVISIONAL_mp_H5DREAD_CHAR_2
+H5D_PROVISIONAL_mp_H5DREAD_CHAR_3
+H5D_PROVISIONAL_mp_H5DREAD_CHAR_4
+H5D_PROVISIONAL_mp_H5DREAD_CHAR_5
+H5D_PROVISIONAL_mp_H5DREAD_CHAR_6
+H5D_PROVISIONAL_mp_H5DREAD_CHAR_7
+H5D_PROVISIONAL_mp_H5DREAD_REAL_SCALAR
+H5D_PROVISIONAL_mp_H5DREAD_REAL_1
+H5D_PROVISIONAL_mp_H5DREAD_REAL_2
+H5D_PROVISIONAL_mp_H5DREAD_REAL_3
+H5D_PROVISIONAL_mp_H5DREAD_REAL_4
+H5D_PROVISIONAL_mp_H5DREAD_REAL_5
+H5D_PROVISIONAL_mp_H5DREAD_REAL_6
+H5D_PROVISIONAL_mp_H5DREAD_REAL_7
+H5D_mp_H5DGET_SPACE_F
+H5D_mp_H5DGET_TYPE_F
+H5D_mp_H5DSET_EXTENT_F
+H5D_mp_H5DGET_CREATE_PLIST_F
+H5D_mp_H5DGET_STORAGE_SIZE_F
+H5D_mp_H5DVLEN_GET_MAX_LEN_F
+H5D_mp_H5DWRITE_VL_INTEGER
+H5D_mp_H5DREAD_VL_INTEGER
+H5D_mp_H5DWRITE_VL_REAL
+H5D_mp_H5DREAD_VL_REAL
+H5D_mp_H5DWRITE_VL_STRING
+H5D_mp_H5DREAD_VL_STRING
+H5D_PROVISIONAL_mp_H5DFILL_INTEGER
+H5D_PROVISIONAL_mp_H5DFILL_REAL
+H5D_PROVISIONAL_mp_H5DFILL_CHAR
+H5D_mp_H5DGET_SPACE_STATUS_F
+H5D_mp_H5DCREATE_ANON_F
+H5D_mp_H5DGET_SPACE_F
+H5D_mp_H5DGET_TYPE_F
+H5D_mp_H5DSET_EXTENT_F
+H5D_mp_H5DGET_CREATE_PLIST_F
+H5D_mp_H5DGET_STORAGE_SIZE_F
+H5D_mp_H5DVLEN_GET_MAX_LEN_F
+H5D_mp_H5DGET_ACCESS_PLIST_F
+ at H5_NOF03EXP@H5D_PROVISIONAL_mp_H5DWRITE_PTR
+ at H5_NOF03EXP@H5D_PROVISIONAL_mp_H5DREAD_PTR
+ at H5_NOF03EXP@H5D_PROVISIONAL_mp_H5DVLEN_RECLAIM_F
+; H5E
+H5E_mp_H5ECLEAR_F
+H5E_mp_H5EPRINT_F
+H5E_mp_H5EGET_MAJOR_F
+H5E_mp_H5EGET_MINOR_F
+H5E_PROVISIONAL_mp_H5ESET_AUTO_F
+; H5F
+H5F_mp_H5FCREATE_F
+H5F_mp_H5FFLUSH_F
+H5F_mp_H5FCLOSE_F
+H5F_mp_H5FGET_OBJ_COUNT_F
+H5F_mp_H5FGET_OBJ_IDS_F
+H5F_mp_H5FGET_FREESPACE_F
+H5F_mp_H5FMOUNT_F
+H5F_mp_H5FUNMOUNT_F
+H5F_mp_H5FOPEN_F
+H5F_mp_H5FREOPEN_F
+H5F_mp_H5FGET_CREATE_PLIST_F
+H5F_mp_H5FGET_ACCESS_PLIST_F
+H5F_mp_H5FIS_HDF5_F
+H5F_mp_H5FGET_NAME_F
+H5F_mp_H5FGET_FILESIZE_F
+ at H5_NOF03EXP@H5F_PROVISIONAL_mp_H5FGET_FILE_IMAGE_F
+; H5G
+H5G_mp_H5GOPEN_F
+H5G_mp_H5GCREATE_F
+H5G_mp_H5GCLOSE_F
+H5G_mp_H5GGET_OBJ_INFO_IDX_F
+H5G_mp_H5GN_MEMBERS_F
+H5G_mp_H5GLINK_F
+H5G_mp_H5GLINK2_F
+H5G_mp_H5GUNLINK_F
+H5G_mp_H5GMOVE_F
+H5G_mp_H5GMOVE2_F
+H5G_mp_H5GGET_LINKVAL_F
+H5G_mp_H5GSET_COMMENT_F
+H5G_mp_H5GGET_COMMENT_F
+H5G_mp_H5GCREATE_ANON_F
+H5G_mp_H5GGET_CREATE_PLIST_F
+H5G_mp_H5GGET_INFO_F
+H5G_mp_H5GGET_INFO_BY_IDX_F
+H5G_mp_H5GGET_INFO_BY_NAME_F
+H5G_mp_H5GGET_OBJ_INFO_IDX_F
+; H5GLOBAL
+; PREDEFINED_TYPES DATA
+; FLOATING_TYPES DATA
+; INTEGER_TYPES DATA
+; H5F_FLAGS DATA
+; H5GENERIC_FLAGS DATA
+; H5G_FLAGS DATA
+; H5D_FLAGS DATA
+; H5FD_FLAGS DATA
+; H5FD_HID_FLAGS DATA
+; H5I_FLAGS DATA
+; H5L_FLAGS DATA
+; H5O_FLAGS DATA
+; H5P_FLAGS DATA
+; H5P_FLAGS_INT DATA
+; H5R_FLAGS DATA
+; H5S_FLAGS DATA
+; H5T_FLAGS DATA
+; H5Z_FLAGS DATA
+; H5LIB_FLAGS DATA
+; H5I
+H5I_mp_H5IGET_TYPE_F
+H5I_mp_H5IGET_NAME_F
+H5I_mp_H5IINC_REF_F
+H5I_mp_H5IDEC_REF_F
+H5I_mp_H5IGET_REF_F
+H5I_mp_H5IGET_FILE_ID_F
+H5I_mp_H5IIS_VALID_F
+; H5L
+H5L_mp_H5LCOPY_F
+H5L_mp_H5LDELETE_F
+H5L_mp_H5LCREATE_SOFT_F
+H5L_mp_H5LCREATE_HARD_F
+H5L_mp_H5LCREATE_EXTERNAL_F
+H5L_mp_H5LDELETE_BY_IDX_F
+H5L_mp_H5LEXISTS_F
+H5L_mp_H5LGET_INFO_F
+H5L_mp_H5LGET_INFO_BY_IDX_F
+H5L_mp_H5LIS_REGISTERED_F
+H5L_mp_H5LMOVE_F
+H5L_mp_H5LGET_NAME_BY_IDX_F
+ at H5_NOF03EXP@H5L_PROVISIONAL_mp_H5LITERATE_F
+ at H5_NOF03EXP@H5L_PROVISIONAL_mp_H5LITERATE_BY_NAME_F
+; H5O
+H5O_mp_H5OCLOSE_F
+H5O_mp_H5OCOPY_F
+H5O_mp_H5ODECR_REFCOUNT_F
+H5O_mp_H5OEXISTS_BY_NAME_F
+H5O_mp_H5OGET_COMMENT_F
+H5O_mp_H5OGET_COMMENT_BY_NAME_F
+H5O_mp_H5OINCR_REFCOUNT_F
+H5O_mp_H5OLINK_F
+H5O_mp_H5OOPEN_BY_ADDR_F
+H5O_mp_H5OOPEN_BY_IDX_F
+H5O_mp_H5OOPEN_F
+H5O_mp_H5OSET_COMMENT_F
+H5O_mp_H5OSET_COMMENT_BY_NAME_F
+ at H5_NOF03EXP@H5O_PROVISIONAL_mp_H5OGET_INFO_BY_IDX_F
+ at H5_NOF03EXP@H5O_PROVISIONAL_mp_H5OGET_INFO_BY_NAME_F
+ at H5_NOF03EXP@H5O_PROVISIONAL_mp_H5OGET_INFO_F
+ at H5_NOF03EXP@H5O_PROVISIONAL_mp_H5OVISIT_BY_NAME_F
+ at H5_NOF03EXP@H5O_PROVISIONAL_mp_H5OVISIT_F
+; H5P
+H5P_mp_H5PCREATE_F
+H5P_mp_H5PSET_PRESERVE_F
+H5P_mp_H5PGET_PRESERVE_F
+H5P_mp_H5PGET_CLASS_F
+H5P_mp_H5PCOPY_F
+H5P_mp_H5PCLOSE_F
+H5P_mp_H5PSET_CHUNK_F
+H5P_mp_H5PGET_CHUNK_F
+H5P_mp_H5PSET_DEFLATE_F
+H5P_PROVISIONAL_mp_H5PSET_FILL_VALUE_INTEGER
+H5P_PROVISIONAL_mp_H5PGET_FILL_VALUE_INTEGER
+H5P_PROVISIONAL_mp_H5PSET_FILL_VALUE_REAL
+H5P_PROVISIONAL_mp_H5PGET_FILL_VALUE_REAL
+H5P_PROVISIONAL_mp_H5PSET_FILL_VALUE_CHAR
+H5P_PROVISIONAL_mp_H5PGET_FILL_VALUE_CHAR
+H5P_mp_H5PGET_VERSION_F
+H5P_mp_H5PSET_USERBLOCK_F
+H5P_mp_H5PGET_USERBLOCK_F
+H5P_mp_H5PSET_SIZES_F
+H5P_mp_H5PGET_SIZES_F
+H5P_mp_H5PSET_SYM_K_F
+H5P_mp_H5PGET_SYM_K_F
+H5P_mp_H5PSET_ISTORE_K_F
+H5P_mp_H5PGET_ISTORE_K_F
+H5P_mp_H5PGET_DRIVER_F
+H5P_mp_H5PSET_FAPL_STDIO_F
+H5P_mp_H5PSET_FAPL_SEC2_F
+H5P_mp_H5PSET_ALIGNMENT_F
+H5P_mp_H5PGET_ALIGNMENT_F
+H5P_mp_H5PSET_FAPL_CORE_F
+H5P_mp_H5PGET_FAPL_CORE_F
+H5P_mp_H5PSET_FAPL_FAMILY_F
+H5P_mp_H5PGET_FAPL_FAMILY_F
+H5P_mp_H5PSET_CACHE_F
+H5P_mp_H5PGET_CACHE_F
+H5P_mp_H5PSET_FAPL_SPLIT_F
+H5P_mp_H5PSET_GC_REFERENCES_F
+H5P_mp_H5PGET_GC_REFERENCES_F
+H5P_mp_H5PSET_LAYOUT_F
+H5P_mp_H5PGET_LAYOUT_F
+H5P_mp_H5PSET_FILTER_F
+H5P_mp_H5PGET_NFILTERS_F
+H5P_mp_H5PGET_FILTER_F
+H5P_mp_H5PSET_EXTERNAL_F
+H5P_mp_H5PGET_EXTERNAL_COUNT_F
+H5P_mp_H5PGET_EXTERNAL_F
+H5P_mp_H5PSET_BTREE_RATIOS_F
+H5P_mp_H5PGET_BTREE_RATIOS_F
+H5P_mp_H5PGET_FCLOSE_DEGREE_F
+H5P_mp_H5PSET_FCLOSE_DEGREE_F
+H5P_mp_H5PEQUAL_F
+H5P_mp_H5PSET_BUFFER_F
+H5P_mp_H5PGET_BUFFER_F
+H5P_mp_H5PFILL_VALUE_DEFINED_F
+H5P_mp_H5PSET_ALLOC_TIME_F
+H5P_mp_H5PGET_ALLOC_TIME_F
+H5P_mp_H5PSET_FILL_TIME_F
+H5P_mp_H5PGET_FILL_TIME_F
+H5P_mp_H5PSET_META_BLOCK_SIZE_F
+H5P_mp_H5PGET_META_BLOCK_SIZE_F
+H5P_mp_H5PSET_SIEVE_BUF_SIZE_F
+H5P_mp_H5PGET_SIEVE_BUF_SIZE_F
+H5P_mp_H5PSET_SMALL_DATA_BLOCK_SIZE_F
+H5P_mp_H5PGET_SMALL_DATA_BLOCK_SIZE_F
+H5P_mp_H5PSET_HYPER_VECTOR_SIZE_F
+H5P_mp_H5PGET_HYPER_VECTOR_SIZE_F
+H5P_PROVISIONAL_mp_H5PSET_INTEGER
+H5P_PROVISIONAL_mp_H5PSET_REAL
+H5P_PROVISIONAL_mp_H5PSET_CHAR
+H5P_PROVISIONAL_mp_H5PGET_INTEGER
+H5P_PROVISIONAL_mp_H5PGET_REAL
+H5P_PROVISIONAL_mp_H5PGET_CHAR
+H5P_mp_H5PEXIST_F
+H5P_mp_H5PGET_SIZE_F
+H5P_mp_H5PGET_NPROPS_F
+H5P_mp_H5PGET_CLASS_NAME_F
+H5P_mp_H5PGET_CLASS_PARENT_F
+H5P_mp_H5PISA_CLASS_F
+H5P_mp_H5PCOPY_PROP_F
+H5P_mp_H5PREMOVE_F
+H5P_mp_H5PUNREGISTER_F
+H5P_mp_H5PCLOSE_CLASS_F
+H5P_PROVISIONAL_mp_H5PCREATE_CLASS_F
+H5P_PROVISIONAL_mp_H5PREGISTER_INTEGER
+H5P_PROVISIONAL_mp_H5PREGISTER_REAL
+H5P_PROVISIONAL_mp_H5PREGISTER_CHAR
+H5P_PROVISIONAL_mp_H5PINSERT_INTEGER
+H5P_PROVISIONAL_mp_H5PINSERT_REAL
+H5P_PROVISIONAL_mp_H5PINSERT_CHAR
+H5P_mp_H5PSET_SHUFFLE_F
+H5P_mp_H5PSET_EDC_CHECK_F
+H5P_mp_H5PGET_EDC_CHECK_F
+H5P_mp_H5PSET_FLETCHER32_F
+H5P_mp_H5PSET_FAMILY_OFFSET_F
+H5P_mp_H5PSET_FAPL_MULTI_L
+H5P_mp_H5PSET_FAPL_MULTI_S
+H5P_mp_H5PGET_FAPL_MULTI_F
+H5P_mp_H5PSET_SZIP_F
+H5P_mp_H5PALL_FILTERS_AVAIL_F
+H5P_mp_H5PGET_FILTER_BY_ID_F
+H5P_mp_H5PMODIFY_FILTER_F
+H5P_mp_H5PREMOVE_FILTER_F
+H5P_mp_H5PGET_ATTR_PHASE_CHANGE_F
+H5P_mp_H5PSET_ATTR_CREATION_ORDER_F
+H5P_mp_H5PSET_SHARED_MESG_NINDEXES_F
+H5P_mp_H5PSET_SHARED_MESG_INDEX_F
+H5P_mp_H5PGET_ATTR_CREATION_ORDER_F
+H5P_mp_H5PSET_LIBVER_BOUNDS_F
+H5P_mp_H5PSET_LINK_CREATION_ORDER_F
+H5P_mp_H5PGET_LINK_PHASE_CHANGE_F
+H5P_mp_H5PGET_OBJ_TRACK_TIMES_F
+H5P_mp_H5PSET_OBJ_TRACK_TIMES_F
+H5P_mp_H5PSET_CREATE_INTER_GROUP_F
+H5P_mp_H5PGET_LINK_CREATION_ORDER_F
+H5P_mp_H5PSET_CHAR_ENCODING_F
+H5P_mp_H5PGET_CHAR_ENCODING_F
+H5P_mp_H5PSET_COPY_OBJECT_F
+H5P_mp_H5PGET_COPY_OBJECT_F
+H5P_mp_H5PGET_DATA_TRANSFORM_F
+H5P_mp_H5PSET_DATA_TRANSFORM_F
+H5P_mp_H5PGET_LOCAL_HEAP_SIZE_HINT_F
+H5P_mp_H5PGET_EST_LINK_INFO_F
+H5P_mp_H5PSET_LOCAL_HEAP_SIZE_HINT_F
+H5P_mp_H5PSET_EST_LINK_INFO_F
+H5P_mp_H5PSET_LINK_PHASE_CHANGE_F
+H5P_mp_H5PSET_FAPL_DIRECT_F
+H5P_mp_H5PGET_FAPL_DIRECT_F
+H5P_mp_H5PSET_ATTR_PHASE_CHANGE_F
+H5P_mp_H5PSET_NBIT_F
+H5P_mp_H5PSET_SCALEOFFSET_F
+H5P_mp_H5PSET_NLINKS_F
+H5P_mp_H5PGET_NLINKS_F
+H5P_mp_H5PGET_CREATE_INTER_GROUP_F
+H5P_mp_H5PSET_CHUNK_CACHE_F
+H5P_mp_H5PGET_CHUNK_CACHE_F
+ at H5_NOF03EXP@H5P_PROVISIONAL_mp_H5PSET_FILL_VALUE_PTR
+ at H5_NOF03EXP@H5P_PROVISIONAL_mp_H5PGET_FILL_VALUE_PTR
+ at H5_NOF03EXP@H5P_PROVISIONAL_mp_H5PSET_PTR
+ at H5_NOF03EXP@H5P_PROVISIONAL_mp_H5PGET_PTR
+ at H5_NOF03EXP@H5P_PROVISIONAL_mp_H5PREGISTER_PTR
+ at H5_NOF03EXP@H5P_PROVISIONAL_mp_H5PINSERT_PTR
+ at H5_NOF03EXP@H5P_PROVISIONAL_mp_H5PGET_FILE_IMAGE_F
+ at H5_NOF03EXP@H5P_PROVISIONAL_mp_H5PSET_FILE_IMAGE_F
+; H5R
+H5R_PROVISIONAL_mp_H5RCREATE_OBJECT_F
+H5R_PROVISIONAL_mp_H5RCREATE_REGION_F
+H5R_PROVISIONAL_mp_H5RDEREFERENCE_OBJECT_F
+H5R_PROVISIONAL_mp_H5RDEREFERENCE_REGION_F
+H5R_PROVISIONAL_mp_H5RGET_REGION_REGION_F
+H5R_mp_H5RGET_OBJECT_TYPE_OBJ_F
+H5R_PROVISIONAL_mp_H5RGET_NAME_OBJECT_F
+H5R_PROVISIONAL_mp_H5RGET_NAME_REGION_F
+ at H5_NOF03EXP@H5R_PROVISIONAL_mp_H5RGET_REGION_PTR_F
+ at H5_NOF03EXP@H5R_PROVISIONAL_mp_H5RCREATE_PTR_F
+ at H5_NOF03EXP@H5R_PROVISIONAL_mp_H5RDEREFERENCE_PTR_F
+ at H5_NOF03EXP@H5R_PROVISIONAL_mp_H5RGET_NAME_PTR_F
+ at H5_NOF03EXP@H5R_PROVISIONAL_mp_H5RGET_OBJ_TYPE_F
+; H5S
+H5S_mp_H5SCREATE_SIMPLE_F
+H5S_mp_H5SCLOSE_F
+H5S_mp_H5SCREATE_F
+H5S_mp_H5SCOPY_F
+H5S_mp_H5SGET_SELECT_HYPER_NBLOCKS_F
+H5S_mp_H5SGET_SELECT_HYPER_BLOCKLIST_F
+H5S_mp_H5SGET_SELECT_BOUNDS_F
+H5S_mp_H5SGET_SELECT_ELEM_NPOINTS_F
+H5S_mp_H5SGET_SELECT_ELEM_POINTLIST_F
+H5S_mp_H5SSELECT_ELEMENTS_F
+H5S_mp_H5SSELECT_ALL_F
+H5S_mp_H5SSELECT_NONE_F
+H5S_mp_H5SSELECT_VALID_F
+H5S_mp_H5SGET_SIMPLE_EXTENT_NPOINTS_F
+H5S_mp_H5SGET_SELECT_NPOINTS_F
+H5S_mp_H5SGET_SIMPLE_EXTENT_NDIMS_F
+H5S_mp_H5SGET_SIMPLE_EXTENT_DIMS_F
+H5S_mp_H5SGET_SIMPLE_EXTENT_TYPE_F
+H5S_mp_H5SSET_EXTENT_SIMPLE_F
+H5S_mp_H5SIS_SIMPLE_F
+H5S_mp_H5SOFFSET_SIMPLE_F
+H5S_mp_H5SEXTENT_COPY_F
+H5S_mp_H5SSET_EXTENT_NONE_F
+H5S_mp_H5SSELECT_HYPERSLAB_F
+H5S_mp_H5SGET_SELECT_TYPE_F
+H5S_mp_H5SDECODE_F
+H5S_mp_H5SENCODE_F
+H5S_mp_H5SEXTENT_EQUAL_F
+; H5T
+H5T_mp_H5TOPEN_F
+H5T_mp_H5TCOMMIT_F
+H5T_mp_H5TCOPY_F
+H5T_mp_H5TEQUAL_F
+H5T_mp_H5TCLOSE_F
+H5T_mp_H5TGET_CLASS_F
+H5T_mp_H5TGET_SIZE_F
+H5T_mp_H5TSET_SIZE_F
+H5T_mp_H5TGET_ORDER_F
+H5T_mp_H5TSET_ORDER_F
+H5T_mp_H5TGET_PRECISION_F
+H5T_mp_H5TSET_PRECISION_F
+H5T_mp_H5TGET_OFFSET_F
+H5T_mp_H5TSET_OFFSET_F
+H5T_mp_H5TGET_PAD_F
+H5T_mp_H5TSET_PAD_F
+H5T_mp_H5TGET_SIGN_F
+H5T_mp_H5TSET_SIGN_F
+H5T_mp_H5TGET_FIELDS_F
+H5T_mp_H5TSET_FIELDS_F
+H5T_mp_H5TGET_EBIAS_F
+H5T_mp_H5TSET_EBIAS_F
+H5T_mp_H5TGET_NORM_F
+H5T_mp_H5TSET_NORM_F
+H5T_mp_H5TGET_INPAD_F
+H5T_mp_H5TSET_INPAD_F
+H5T_mp_H5TGET_CSET_F
+H5T_mp_H5TSET_CSET_F
+H5T_mp_H5TGET_STRPAD_F
+H5T_mp_H5TSET_STRPAD_F
+H5T_mp_H5TGET_NMEMBERS_F
+H5T_mp_H5TGET_MEMBER_NAME_F
+H5T_mp_H5TGET_MEMBER_OFFSET_F
+H5T_mp_H5TGET_MEMBER_INDEX_F
+H5T_mp_H5TGET_ARRAY_DIMS_F
+H5T_mp_H5TGET_ARRAY_NDIMS_F
+H5T_mp_H5TGET_SUPER_F
+H5T_mp_H5TGET_MEMBER_TYPE_F
+H5T_mp_H5TCREATE_F
+H5T_mp_H5TINSERT_F
+H5T_mp_H5TPACK_F
+H5T_mp_H5TARRAY_CREATE_F
+H5T_mp_H5TENUM_CREATE_F
+H5T_mp_H5TENUM_INSERT_F
+H5T_mp_H5TENUM_NAMEOF_F
+H5T_mp_H5TENUM_VALUEOF_F
+H5T_mp_H5TGET_MEMBER_VALUE_F
+H5T_mp_H5TSET_TAG_F
+H5T_mp_H5TGET_TAG_F
+H5T_mp_H5TVLEN_CREATE_F
+H5T_mp_H5TIS_VARIABLE_STR_F
+H5T_mp_H5TGET_MEMBER_CLASS_F
+H5T_mp_H5TCOMMIT_ANON_F
+H5T_mp_H5TCOMMITTED_F
+H5T_mp_H5TDECODE_F
+H5T_mp_H5TENCODE_F
+H5T_mp_H5TGET_CREATE_PLIST_F
+H5T_mp_H5TCOMPILER_CONV_F
+H5T_mp_H5TGET_NATIVE_TYPE_F
+ at H5_NOF03EXP@H5T_PROVISIONAL_mp_H5TCONVERT_F
+; H5Z
+H5Z_mp_H5ZUNREGISTER_F
+H5Z_mp_H5ZFILTER_AVAIL_F
+H5Z_mp_H5ZGET_FILTER_INFO_F
+; Parallel
+ at H5_NOPAREXP@H5FDMPIO_mp_H5PSET_FAPL_MPIO_F
+ at H5_NOPAREXP@H5FDMPIO_mp_H5PGET_FAPL_MPIO_F
+ at H5_NOPAREXP@H5FDMPIO_mp_H5PSET_DXPL_MPIO_F
+ at H5_NOPAREXP@H5FDMPIO_mp_H5PGET_DXPL_MPIO_F
+ at H5_NOPAREXP@H5FDMPIO_mp_H5PGET_MPIO_ACTUAL_IO_MODE_F
diff --git a/fortran/test/CMakeLists.txt b/fortran/test/CMakeLists.txt
index 17c55a5..d10f2ef 100644
--- a/fortran/test/CMakeLists.txt
+++ b/fortran/test/CMakeLists.txt
@@ -21,7 +21,18 @@ set_target_properties (${HDF5_F90_C_TEST_LIB_TARGET} PROPERTIES
     INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>"
 )
 
-add_library (${HDF5_F90_TEST_LIB_TARGET} ${LIB_TYPE} tf.f90)
+# See if the F2008 intrinsic STORAGE_SIZE and C_SIZEOF are supported. If not then
+# fall back to F2003. If F2003 not supported then use F90 for the tests.
+
+if (FORTRAN_HAVE_STORAGE_SIZE AND FORTRAN_HAVE_C_SIZEOF)
+ add_library (${HDF5_F90_TEST_LIB_TARGET} ${LIB_TYPE} tf_F08.f90 tf.f90)
+elseif (HDF5_ENABLE_F2003)
+ add_library (${HDF5_F90_TEST_LIB_TARGET} ${LIB_TYPE} tf_F03.f90 tf.f90)
+else (FORTRAN_HAVE_STORAGE_SIZE AND FORTRAN_HAVE_C_SIZEOF)
+ add_library (${HDF5_F90_TEST_LIB_TARGET} ${LIB_TYPE} tf_F90.f90 tf.f90) 
+endif (FORTRAN_HAVE_STORAGE_SIZE AND FORTRAN_HAVE_C_SIZEOF)
+
+
 set (SHARED_LINK_FLAGS " ")
 if (WIN32)
   if (BUILD_SHARED_LIBS)
@@ -83,7 +94,6 @@ set_target_properties (testhdf5_fortran PROPERTIES FOLDER test/fortran)
 #-- Adding test for testhdf5_fortran_1_8
 add_executable (testhdf5_fortran_1_8
     fortranlib_test_1_8.f90
-    tH5F.f90
     tH5O.f90
     tH5A_1_8.f90
     tH5G_1_8.f90
@@ -107,7 +117,6 @@ set_target_properties (testhdf5_fortran_1_8 PROPERTIES FOLDER test/fortran)
 if (HDF5_ENABLE_F2003)
   add_executable (fortranlib_test_F03
       fortranlib_test_F03.f90
-      tH5F.f90
       tH5E_F03.f90
       tH5F_F03.f90
       tH5L_F03.f90
diff --git a/fortran/test/Makefile.am b/fortran/test/Makefile.am
index 9c6b906..735ab7a 100644
--- a/fortran/test/Makefile.am
+++ b/fortran/test/Makefile.am
@@ -53,7 +53,23 @@ endif
 
 check_PROGRAMS=$(TEST_PROG)
 
-libh5test_fortran_la_SOURCES= tf.f90 t.c
+if FORTRAN_HAVE_STORAGE_SIZE
+if FORTRAN_HAVE_C_SIZEOF
+    libh5test_fortran_la_SOURCES = tf_F08.f90
+else
+    libh5test_fortran_la_SOURCES = tf_F03.f90
+endif
+else
+if FORTRAN_2003_CONDITIONAL_F
+  libh5test_fortran_la_SOURCES = tf_F03.f90
+else
+  libh5test_fortran_la_SOURCES = tf_F90.f90
+endif
+endif
+
+# tf.f90 depends on either tf_F08.f90 or tf_F03.f90 so they need to be
+# compiled first
+libh5test_fortran_la_SOURCES += tf.f90 t.c
 
 # Source files are used for both the library and fortranlib_test.
 # Automake will complain about this without the following workaround.
@@ -63,11 +79,11 @@ fortranlib_test_CFLAGS=$(AM_CFLAGS)
 fortranlib_test_SOURCES = tH5F.f90 tH5D.f90 tH5R.f90 tH5S.f90 tH5T.f90 tH5VL.f90 tH5Z.f90 \
         tH5Sselect.f90 tH5P.f90 tH5A.f90 tH5I.f90 tH5G.f90 tH5E.f90 tHDF5.f90 fortranlib_test.f90
 
-fortranlib_test_1_8_SOURCES = tH5F.f90 tH5O.f90 tH5A_1_8.f90 tH5G_1_8.f90 tH5MISC_1_8.f90 tHDF5_1_8.f90\
+fortranlib_test_1_8_SOURCES = tH5O.f90 tH5A_1_8.f90 tH5G_1_8.f90 tH5MISC_1_8.f90 tHDF5_1_8.f90\
         fortranlib_test_1_8.f90
 
 if FORTRAN_2003_CONDITIONAL_F
-   fortranlib_test_F03_SOURCES = tH5F.f90 tH5E_F03.f90 tH5F_F03.f90 tH5L_F03.f90 \
+   fortranlib_test_F03_SOURCES = tH5E_F03.f90 tH5F_F03.f90 tH5L_F03.f90 \
         tH5O_F03.f90 tH5P_F03.f90 tH5T_F03.f90 tHDF5_F03.f90 fortranlib_test_F03.f90
 endif
 
diff --git a/fortran/test/Makefile.in b/fortran/test/Makefile.in
index bd1d01d..ca91cf5 100644
--- a/fortran/test/Makefile.in
+++ b/fortran/test/Makefile.in
@@ -101,7 +101,20 @@ CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
 LTLIBRARIES = $(noinst_LTLIBRARIES)
 libh5test_fortran_la_LIBADD =
-am_libh5test_fortran_la_OBJECTS = tf.lo t.lo
+am__libh5test_fortran_la_SOURCES_DIST = tf_F90.f90 tf.f90 t.c \
+	tf_F03.f90 tf_F08.f90
+ at FORTRAN_2003_CONDITIONAL_F_FALSE@@FORTRAN_HAVE_STORAGE_SIZE_FALSE at am_libh5test_fortran_la_OBJECTS = tf_F90.lo \
+ at FORTRAN_2003_CONDITIONAL_F_FALSE@@FORTRAN_HAVE_STORAGE_SIZE_FALSE@	tf.lo \
+ at FORTRAN_2003_CONDITIONAL_F_FALSE@@FORTRAN_HAVE_STORAGE_SIZE_FALSE@	t.lo
+ at FORTRAN_2003_CONDITIONAL_F_TRUE@@FORTRAN_HAVE_STORAGE_SIZE_FALSE at am_libh5test_fortran_la_OBJECTS = tf_F03.lo \
+ at FORTRAN_2003_CONDITIONAL_F_TRUE@@FORTRAN_HAVE_STORAGE_SIZE_FALSE@	tf.lo \
+ at FORTRAN_2003_CONDITIONAL_F_TRUE@@FORTRAN_HAVE_STORAGE_SIZE_FALSE@	t.lo
+ at FORTRAN_HAVE_C_SIZEOF_FALSE@@FORTRAN_HAVE_STORAGE_SIZE_TRUE at am_libh5test_fortran_la_OBJECTS = tf_F03.lo \
+ at FORTRAN_HAVE_C_SIZEOF_FALSE@@FORTRAN_HAVE_STORAGE_SIZE_TRUE@	tf.lo \
+ at FORTRAN_HAVE_C_SIZEOF_FALSE@@FORTRAN_HAVE_STORAGE_SIZE_TRUE@	t.lo
+ at FORTRAN_HAVE_C_SIZEOF_TRUE@@FORTRAN_HAVE_STORAGE_SIZE_TRUE at am_libh5test_fortran_la_OBJECTS = tf_F08.lo \
+ at FORTRAN_HAVE_C_SIZEOF_TRUE@@FORTRAN_HAVE_STORAGE_SIZE_TRUE@	tf.lo \
+ at FORTRAN_HAVE_C_SIZEOF_TRUE@@FORTRAN_HAVE_STORAGE_SIZE_TRUE@	t.lo
 libh5test_fortran_la_OBJECTS = $(am_libh5test_fortran_la_OBJECTS)
 AM_V_lt = $(am__v_lt_ at AM_V@)
 am__v_lt_ = $(am__v_lt_ at AM_DEFAULT_V@)
@@ -138,18 +151,17 @@ fortranlib_test_LINK = $(LIBTOOL) $(AM_V_lt) --tag=FC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(FCLD) \
 	$(fortranlib_test_FCFLAGS) $(FCFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
 	-o $@
-am_fortranlib_test_1_8_OBJECTS = tH5F.$(OBJEXT) tH5O.$(OBJEXT) \
-	tH5A_1_8.$(OBJEXT) tH5G_1_8.$(OBJEXT) tH5MISC_1_8.$(OBJEXT) \
-	tHDF5_1_8.$(OBJEXT) fortranlib_test_1_8.$(OBJEXT)
+am_fortranlib_test_1_8_OBJECTS = tH5O.$(OBJEXT) tH5A_1_8.$(OBJEXT) \
+	tH5G_1_8.$(OBJEXT) tH5MISC_1_8.$(OBJEXT) tHDF5_1_8.$(OBJEXT) \
+	fortranlib_test_1_8.$(OBJEXT)
 fortranlib_test_1_8_OBJECTS = $(am_fortranlib_test_1_8_OBJECTS)
 fortranlib_test_1_8_LDADD = $(LDADD)
 fortranlib_test_1_8_DEPENDENCIES = libh5test_fortran.la $(LIBH5TEST) \
 	$(LIBH5F) $(LIBHDF5)
-am__fortranlib_test_F03_SOURCES_DIST = tH5F.f90 tH5E_F03.f90 \
-	tH5F_F03.f90 tH5L_F03.f90 tH5O_F03.f90 tH5P_F03.f90 \
-	tH5T_F03.f90 tHDF5_F03.f90 fortranlib_test_F03.f90
+am__fortranlib_test_F03_SOURCES_DIST = tH5E_F03.f90 tH5F_F03.f90 \
+	tH5L_F03.f90 tH5O_F03.f90 tH5P_F03.f90 tH5T_F03.f90 \
+	tHDF5_F03.f90 fortranlib_test_F03.f90
 @FORTRAN_2003_CONDITIONAL_F_TRUE at am_fortranlib_test_F03_OBJECTS =  \
- at FORTRAN_2003_CONDITIONAL_F_TRUE@	tH5F.$(OBJEXT) \
 @FORTRAN_2003_CONDITIONAL_F_TRUE@	tH5E_F03.$(OBJEXT) \
 @FORTRAN_2003_CONDITIONAL_F_TRUE@	tH5F_F03.$(OBJEXT) \
 @FORTRAN_2003_CONDITIONAL_F_TRUE@	tH5L_F03.$(OBJEXT) \
@@ -214,9 +226,9 @@ am__v_FCLD_1 =
 SOURCES = $(libh5test_fortran_la_SOURCES) $(fflush1_SOURCES) \
 	$(fflush2_SOURCES) $(fortranlib_test_SOURCES) \
 	$(fortranlib_test_1_8_SOURCES) $(fortranlib_test_F03_SOURCES)
-DIST_SOURCES = $(libh5test_fortran_la_SOURCES) $(fflush1_SOURCES) \
-	$(fflush2_SOURCES) $(fortranlib_test_SOURCES) \
-	$(fortranlib_test_1_8_SOURCES) \
+DIST_SOURCES = $(am__libh5test_fortran_la_SOURCES_DIST) \
+	$(fflush1_SOURCES) $(fflush2_SOURCES) \
+	$(fortranlib_test_SOURCES) $(fortranlib_test_1_8_SOURCES) \
 	$(am__fortranlib_test_F03_SOURCES_DIST)
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
@@ -566,7 +578,6 @@ MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MPE = @MPE@
-MPI_GET_SIZE = @MPI_GET_SIZE@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -740,7 +751,30 @@ noinst_LTLIBRARIES = libh5test_fortran.la
 # Our main targets, the tests themselves
 TEST_PROG = fortranlib_test fflush1 fflush2 fortranlib_test_1_8 \
 	$(am__append_2)
-libh5test_fortran_la_SOURCES = tf.f90 t.c
+
+# tf.f90 depends on either tf_F08.f90 or tf_F03.f90 so they need to be
+# compiled first
+ at FORTRAN_2003_CONDITIONAL_F_FALSE@@FORTRAN_HAVE_STORAGE_SIZE_FALSE at libh5test_fortran_la_SOURCES = tf_F90.f90 \
+ at FORTRAN_2003_CONDITIONAL_F_FALSE@@FORTRAN_HAVE_STORAGE_SIZE_FALSE@	tf.f90 \
+ at FORTRAN_2003_CONDITIONAL_F_FALSE@@FORTRAN_HAVE_STORAGE_SIZE_FALSE@	t.c
+
+# tf.f90 depends on either tf_F08.f90 or tf_F03.f90 so they need to be
+# compiled first
+ at FORTRAN_2003_CONDITIONAL_F_TRUE@@FORTRAN_HAVE_STORAGE_SIZE_FALSE at libh5test_fortran_la_SOURCES = tf_F03.f90 \
+ at FORTRAN_2003_CONDITIONAL_F_TRUE@@FORTRAN_HAVE_STORAGE_SIZE_FALSE@	tf.f90 \
+ at FORTRAN_2003_CONDITIONAL_F_TRUE@@FORTRAN_HAVE_STORAGE_SIZE_FALSE@	t.c
+
+# tf.f90 depends on either tf_F08.f90 or tf_F03.f90 so they need to be
+# compiled first
+ at FORTRAN_HAVE_C_SIZEOF_FALSE@@FORTRAN_HAVE_STORAGE_SIZE_TRUE at libh5test_fortran_la_SOURCES = tf_F03.f90 \
+ at FORTRAN_HAVE_C_SIZEOF_FALSE@@FORTRAN_HAVE_STORAGE_SIZE_TRUE@	tf.f90 \
+ at FORTRAN_HAVE_C_SIZEOF_FALSE@@FORTRAN_HAVE_STORAGE_SIZE_TRUE@	t.c
+
+# tf.f90 depends on either tf_F08.f90 or tf_F03.f90 so they need to be
+# compiled first
+ at FORTRAN_HAVE_C_SIZEOF_TRUE@@FORTRAN_HAVE_STORAGE_SIZE_TRUE at libh5test_fortran_la_SOURCES = tf_F08.f90 \
+ at FORTRAN_HAVE_C_SIZEOF_TRUE@@FORTRAN_HAVE_STORAGE_SIZE_TRUE@	tf.f90 \
+ at FORTRAN_HAVE_C_SIZEOF_TRUE@@FORTRAN_HAVE_STORAGE_SIZE_TRUE@	t.c
 
 # Source files are used for both the library and fortranlib_test.
 # Automake will complain about this without the following workaround.
@@ -749,10 +783,10 @@ fortranlib_test_CFLAGS = $(AM_CFLAGS)
 fortranlib_test_SOURCES = tH5F.f90 tH5D.f90 tH5R.f90 tH5S.f90 tH5T.f90 tH5VL.f90 tH5Z.f90 \
         tH5Sselect.f90 tH5P.f90 tH5A.f90 tH5I.f90 tH5G.f90 tH5E.f90 tHDF5.f90 fortranlib_test.f90
 
-fortranlib_test_1_8_SOURCES = tH5F.f90 tH5O.f90 tH5A_1_8.f90 tH5G_1_8.f90 tH5MISC_1_8.f90 tHDF5_1_8.f90\
+fortranlib_test_1_8_SOURCES = tH5O.f90 tH5A_1_8.f90 tH5G_1_8.f90 tH5MISC_1_8.f90 tHDF5_1_8.f90\
         fortranlib_test_1_8.f90
 
- at FORTRAN_2003_CONDITIONAL_F_TRUE@fortranlib_test_F03_SOURCES = tH5F.f90 tH5E_F03.f90 tH5F_F03.f90 tH5L_F03.f90 \
+ at FORTRAN_2003_CONDITIONAL_F_TRUE@fortranlib_test_F03_SOURCES = tH5E_F03.f90 tH5F_F03.f90 tH5L_F03.f90 \
 @FORTRAN_2003_CONDITIONAL_F_TRUE@        tH5O_F03.f90 tH5P_F03.f90 tH5T_F03.f90 tHDF5_F03.f90 fortranlib_test_F03.f90
 
 fflush1_SOURCES = fflush1.f90
diff --git a/fortran/test/fortranlib_test_1_8.f90 b/fortran/test/fortranlib_test_1_8.f90
index 66f799b..039dc6c 100644
--- a/fortran/test/fortranlib_test_1_8.f90
+++ b/fortran/test/fortranlib_test_1_8.f90
@@ -58,10 +58,10 @@ PROGRAM fortranlibtest
   ENDIF
   WRITE(*,*)
 
-  ret_total_error = 0
-  CALL file_space("file_space_1_8",cleanup, ret_total_error)
-  CALL write_test_status(ret_total_error, &
-       ' Testing file free space', &
+  CALL h5eset_auto_f(0, ret_total_error)
+  IF(ret_total_error.NE.0) &
+       CALL write_test_status(ret_total_error, &
+       ' h5eset_auto_f', &
        total_error)
 
   ret_total_error = 0
diff --git a/fortran/test/tH5L_F03.f90 b/fortran/test/tH5L_F03.f90
index 8cc17fb..795f1e2 100644
--- a/fortran/test/tH5L_F03.f90
+++ b/fortran/test/tH5L_F03.f90
@@ -58,7 +58,7 @@ CONTAINS
 !**
 !***************************************************************
 
-  INTEGER FUNCTION liter_cb(group, name, link_info, op_data) bind(C)
+  INTEGER(KIND=C_INT) FUNCTION liter_cb(group, name, link_info, op_data) bind(C)
 
     USE HDF5
     USE ISO_C_BINDING
diff --git a/fortran/test/tH5MISC_1_8.f90 b/fortran/test/tH5MISC_1_8.f90
index bb7d50a..efc350e 100644
--- a/fortran/test/tH5MISC_1_8.f90
+++ b/fortran/test/tH5MISC_1_8.f90
@@ -257,7 +257,7 @@ SUBROUTINE test_h5s_encode(cleanup, total_error)
   ! /* Verify the decoded dataspace */
   CALL h5sget_simple_extent_npoints_f(decoded_sid1, n, error)
   CALL check("h5sget_simple_extent_npoints_f", error, total_error)
-  CALL VERIFY("h5sget_simple_extent_npoints_f", INT(n), SPACE1_DIM1 * SPACE1_DIM2 * SPACE1_DIM3, &
+  CALL VERIFY("h5sget_simple_extent_npoints_f", INT(n), INT(SPACE1_DIM1 * SPACE1_DIM2 * SPACE1_DIM3), &
        total_error)
 
   !
diff --git a/fortran/test/tH5O_F03.f90 b/fortran/test/tH5O_F03.f90
index 598e83e..b7003b3 100644
--- a/fortran/test/tH5O_F03.f90
+++ b/fortran/test/tH5O_F03.f90
@@ -68,7 +68,7 @@ CONTAINS
 
     IMPLICIT NONE
 
-    INTEGER(HID_T) :: group_id
+    INTEGER(HID_T), VALUE :: group_id
     CHARACTER(LEN=1), DIMENSION(1:180) :: name
     TYPE(h5o_info_t) :: oinfo
     TYPE(ovisit_ud_t) :: op_data
diff --git a/fortran/test/tH5P_F03.f90 b/fortran/test/tH5P_F03.f90
index 6039a52..945d0a5 100644
--- a/fortran/test/tH5P_F03.f90
+++ b/fortran/test/tH5P_F03.f90
@@ -43,7 +43,7 @@ MODULE test_genprop_cls_cb1_mod
   USE ISO_C_BINDING
   IMPLICIT NONE
   
-  TYPE, bind(C) :: cop_cb_struct_ ! /* Struct for iterations */
+  TYPE, BIND(C) :: cop_cb_struct_ ! /* Struct for iterations */
     INTEGER :: count
     INTEGER(HID_T) :: id
   END TYPE cop_cb_struct_
@@ -59,10 +59,10 @@ CONTAINS
     INTEGER(HID_T), INTENT(IN), VALUE :: list_id
     
     TYPE(cop_cb_struct_) :: create_data
-    
+
     create_data%count = create_data%count + 1
     create_data%id = list_id
-    
+
     test_genprop_cls_cb1_f = 0
     
   END FUNCTION test_genprop_cls_cb1_f
@@ -106,20 +106,16 @@ SUBROUTINE test_create(total_error)
   INTEGER(hsize_t), DIMENSION(1:5), PARAMETER :: ch_size= (/1, 1, 1, 4, 1/)
   CHARACTER(LEN=14) :: filename ='test_create.h5'
 
-  ! /* compound datatype operations */
-  TYPE, BIND(C) :: comp_datatype
-    REAL :: a
-    INTEGER :: x
-    DOUBLE PRECISION :: y
-    CHARACTER(LEN=1) :: z
-  END TYPE comp_datatype
-
   TYPE(comp_datatype), TARGET :: rd_c, fill_ctype
   INTEGER :: error
   INTEGER(SIZE_T) :: h5off
   TYPE(C_PTR) :: f_ptr
   LOGICAL :: differ1, differ2
-  
+  CHARACTER(LEN=1) :: cfill
+  INTEGER :: ifill
+  REAL :: rfill
+  REAL(KIND=dp) :: dpfill
+
   !/*
   ! * Create a file.
   ! */
@@ -136,8 +132,7 @@ SUBROUTINE test_create(total_error)
   CALL check("h5pset_chunk_f",error, total_error)
 
   ! /* Create a compound datatype */
-
-  CALL h5tcreate_f(H5T_COMPOUND_F, INT(SIZEOF(fill_ctype),size_t), comp_type_id, error)
+  CALL h5tcreate_f(H5T_COMPOUND_F, H5_SIZEOF(fill_ctype), comp_type_id, error)
   CALL check("h5tcreate_f", error, total_error)
   h5off = H5OFFSETOF(C_LOC(fill_ctype), C_LOC(fill_ctype%a))
   CALL h5tinsert_f(comp_type_id, "a", h5off , H5T_NATIVE_REAL, error)
@@ -171,6 +166,41 @@ SUBROUTINE test_create(total_error)
 
   f_ptr = C_LOC(fill_ctype)
 
+  ! Test various fill values
+  CALL H5Pset_fill_value_f(dcpl, H5T_NATIVE_CHARACTER, 'X', error)
+  CALL check("H5Pset_fill_value_f",error, total_error)
+  CALL h5pget_fill_value_f(dcpl, H5T_NATIVE_CHARACTER, cfill, error)
+  CALL check("H5Pget_fill_value_f",error, total_error)
+  IF(cfill.NE.'X')THEN
+     PRINT*,"***ERROR: Returned wrong fill value (character)"
+     total_error = total_error + 1
+  ENDIF
+  CALL H5Pset_fill_value_f(dcpl, H5T_NATIVE_INTEGER, 9, error)
+  CALL check("H5Pset_fill_value_f",error, total_error)
+  CALL h5pget_fill_value_f(dcpl, H5T_NATIVE_INTEGER, ifill, error)
+  CALL check("H5Pget_fill_value_f",error, total_error)
+  IF(ifill.NE.9)THEN
+     PRINT*,"***ERROR: Returned wrong fill value (integer)"
+     total_error = total_error + 1
+  ENDIF
+  CALL H5Pset_fill_value_f(dcpl, H5T_NATIVE_DOUBLE, 1.0_dp, error)
+  CALL check("H5Pset_fill_value_f",error, total_error)
+  CALL h5pget_fill_value_f(dcpl, H5T_NATIVE_DOUBLE, dpfill, error)
+  CALL check("H5Pget_fill_value_f",error, total_error)
+  IF(.NOT.dreal_eq( REAL(dpfill,dp), 1.0_dp))THEN
+     PRINT*,"***ERROR: Returned wrong fill value (double)"
+     total_error = total_error + 1
+  ENDIF
+  CALL H5Pset_fill_value_f(dcpl, H5T_NATIVE_REAL, 2.0, error)
+  CALL check("H5Pset_fill_value_f",error, total_error)
+  CALL h5pget_fill_value_f(dcpl, H5T_NATIVE_REAL, rfill, error)
+  CALL check("H5Pget_fill_value_f",error, total_error)
+  IF(.NOT.dreal_eq( REAL(rfill,dp), REAL(2.0,dp)))THEN
+     PRINT*,"***ERROR: Returned wrong fill value (real)"
+     total_error = total_error + 1
+  ENDIF
+
+  ! For the actual compound type
   CALL H5Pset_fill_value_f(dcpl, comp_type_id, f_ptr, error)
   CALL check("H5Pget_fill_value_f",error, total_error)
 
@@ -252,12 +282,7 @@ SUBROUTINE test_genprop_class_callback(total_error)
   INTEGER(hid_t) :: lid2 !/* 2nd Generic Property list ID */
   INTEGER(size_t) :: nprops !/* Number of properties in class */
 
-  TYPE cb_struct
-     INTEGER :: count
-     INTEGER(hid_t) :: id
-  END TYPE cb_struct
-
-  TYPE(cb_struct), TARGET :: crt_cb_struct, cls_cb_struct
+  TYPE(cop_cb_struct_), TARGET :: crt_cb_struct, cls_cb_struct
 
   CHARACTER(LEN=7) :: CLASS1_NAME = "Class 1"
   TYPE(C_FUNPTR) :: f1, f5
@@ -394,6 +419,8 @@ SUBROUTINE test_h5p_file_image(total_error)
   TYPE(C_PTR), DIMENSION(1:count) :: f_ptr1
   TYPE(C_PTR), DIMENSION(1:1) :: f_ptr2
 
+  INTEGER(HSIZE_T) :: sizeof_buffer
+
   ! Initialize file image buffer
   DO i = 1, count
      buffer(i) = i*10
@@ -412,7 +439,8 @@ SUBROUTINE test_h5p_file_image(total_error)
 
   ! Set file image
   f_ptr = C_LOC(buffer(1))
-  size = SIZEOF(buffer)
+  size = H5_SIZEOF(buffer(1))*count
+
   CALL h5pset_file_image_f(fapl_1, f_ptr, size, error)
   CALL check("h5pset_file_image_f", error, total_error)
   
@@ -465,8 +493,8 @@ SUBROUTINE external_test_offset(cleanup,total_error)
   INTEGER(hid_t) :: dset=-1   ! dataset			
   INTEGER(hid_t) :: grp=-1    ! group to emit diagnostics
   INTEGER(size_t) :: i, j     ! miscellaneous counters	
-  CHARACTER(LEN=180) :: filename   ! file names			
-  INTEGER, DIMENSION(1:25) :: part ! raw data buffers
+  CHARACTER(LEN=180) :: filename   ! file names
+  INTEGER, DIMENSION(1:25) :: part
   INTEGER, DIMENSION(1:100), TARGET :: whole ! raw data buffers		
   INTEGER(hsize_t), DIMENSION(1:1) :: cur_size ! current data space size	
   INTEGER(hid_t) :: hs_space  ! hyperslab data space		
@@ -475,6 +503,7 @@ SUBROUTINE external_test_offset(cleanup,total_error)
   CHARACTER(LEN=1) :: ichr1 ! character conversion holder
   INTEGER :: error ! error status
   TYPE(C_PTR) :: f_ptr ! fortran pointer
+  INTEGER(HSIZE_T) :: sizeof_part
 
   CHARACTER(LEN=1,KIND=C_CHAR), DIMENSION(1:30) :: temparray
 
@@ -503,15 +532,18 @@ SUBROUTINE external_test_offset(cleanup,total_error)
   CALL check("h5gcreate_f",error, total_error)
   
   ! Create the dataset
+
+  sizeof_part = INT(H5_SIZEOF(part(1))*25, hsize_t) 
+
   CALL h5pcreate_f(H5P_DATASET_CREATE_F, dcpl, error)
   CALL check("h5pcreate_f", error, total_error)
-  CALL h5pset_external_f(dcpl, "extern_1a.raw", INT(0,off_t), INT(SIZEOF(part), hsize_t), error)
+  CALL h5pset_external_f(dcpl, "extern_1a.raw", INT(0,off_t), sizeof_part, error)
   CALL check("h5pset_external_f",error,total_error)
-  CALL h5pset_external_f(dcpl, "extern_2a.raw", INT(10,off_t), INT(SIZEOF(part), hsize_t), error)
+  CALL h5pset_external_f(dcpl, "extern_2a.raw", INT(10,off_t), sizeof_part, error)
   CALL check("h5pset_external_f",error,total_error)
-  CALL h5pset_external_f(dcpl, "extern_3a.raw", INT(20,off_t), INT(SIZEOF(part), hsize_t), error)
+  CALL h5pset_external_f(dcpl, "extern_3a.raw", INT(20,off_t), sizeof_part, error)
   CALL check("h5pset_external_f",error,total_error)
-  CALL h5pset_external_f(dcpl, "extern_4a.raw", INT(30,off_t), INT(SIZEOF(part), hsize_t), error)
+  CALL h5pset_external_f(dcpl, "extern_4a.raw", INT(30,off_t), sizeof_part, error)
   CALL check("h5pset_external_f",error,total_error)
   
   cur_size(1) = 100
diff --git a/fortran/test/tH5T_F03.f90 b/fortran/test/tH5T_F03.f90
index fc3ebd0..f15424d 100644
--- a/fortran/test/tH5T_F03.f90
+++ b/fortran/test/tH5T_F03.f90
@@ -661,9 +661,6 @@ END SUBROUTINE test_array_compound_atomic
     USE ISO_C_BINDING
     IMPLICIT NONE
 
-    INTEGER, PARAMETER :: r_k4 = SELECTED_REAL_KIND(5)
-    INTEGER, PARAMETER :: r_k8 = SELECTED_REAL_KIND(10)
-
     INTEGER, INTENT(INOUT) :: total_error
 
     INTEGER, PARAMETER :: LENGTH = 5
@@ -685,8 +682,8 @@ END SUBROUTINE test_array_compound_atomic
 
     TYPE CmpField_struct
        INTEGER, DIMENSION(1:ALEN) :: a
-       REAL(KIND=r_k4), DIMENSION(1:ALEN) :: b
-       REAL(KIND=r_k8), DIMENSION(1:ALEN) :: c
+       REAL(KIND=sp), DIMENSION(1:ALEN) :: b
+       REAL(KIND=dp), DIMENSION(1:ALEN) :: c
     ENDTYPE CmpField_struct
 
     TYPE(CmpField_struct), DIMENSION(1:LENGTH), TARGET :: cf
@@ -702,7 +699,7 @@ END SUBROUTINE test_array_compound_atomic
     TYPE(CmpDTSinfo_struct) :: dtsinfo
 
     TYPE fld_t_struct
-       REAL(KIND=r_k4), DIMENSION(1:ALEN) :: b
+       REAL(KIND=sp), DIMENSION(1:ALEN) :: b
     END TYPE fld_t_struct
  
     INTEGER(SIZE_T) :: type_sizei  ! Size of the integer datatype 
@@ -741,10 +738,10 @@ END SUBROUTINE test_array_compound_atomic
     ! ----------------------- 
     CALL h5tget_size_f(H5T_NATIVE_INTEGER, type_sizei, error)
     CALL check("h5tget_size_f", error, total_error)
-    IF(sizeof(cf(1)%b(1)).EQ.4)THEN
+    IF(h5_sizeof(cf(1)%b(1)).EQ.4_size_t)THEN
        CALL h5tget_size_f(H5T_NATIVE_REAL_4, type_sizer, error)
        CALL check("h5tget_size_f", error, total_error)
-    ELSE IF(sizeof(cf(1)%b(1)).EQ.8)THEN
+    ELSE IF(h5_sizeof(cf(1)%b(1)).EQ.8_size_t)THEN
        CALL h5tget_size_f(H5T_NATIVE_REAL_8, type_sizer, error)
        CALL check("h5tget_size_f", error, total_error)
     ENDIF
diff --git a/fortran/test/tHDF5_1_8.f90 b/fortran/test/tHDF5_1_8.f90
index 47eec16..9d1c3ec 100644
--- a/fortran/test/tHDF5_1_8.f90
+++ b/fortran/test/tHDF5_1_8.f90
@@ -33,6 +33,5 @@ MODULE THDF5_1_8
   USE TH5MISC_1_8
   USE TH5A_1_8
   USE TH5G_1_8
-  USE TH5F
   USE TH5O
 END MODULE THDF5_1_8
diff --git a/fortran/test/tf.f90 b/fortran/test/tf.f90
index 2964840..063e93d 100644
--- a/fortran/test/tf.f90
+++ b/fortran/test/tf.f90
@@ -29,7 +29,9 @@
 !*****
 MODULE TH5_MISC
 
-  INTEGER, PARAMETER :: dp = SELECTED_REAL_KIND(15, 307)
+  USE TH5_MISC_PROVISIONAL
+
+  IMPLICIT NONE
 
 CONTAINS
 
diff --git a/fortran/test/tf_F03.f90 b/fortran/test/tf_F03.f90
new file mode 100644
index 0000000..4513783
--- /dev/null
+++ b/fortran/test/tf_F03.f90
@@ -0,0 +1,128 @@
+!****h* root/fortran/test/tf_F03.f90
+!
+! NAME
+!  tf_F03.f90
+!
+! FUNCTION
+!  Contains functions that are part of the F2003 standard, and are not F2008 compliant.
+!  Needed by the hdf5 fortran tests.
+!
+! COPYRIGHT
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+!   Copyright by The HDF Group.                                               *
+!   Copyright by the Board of Trustees of the University of Illinois.         *
+!   All rights reserved.                                                      *
+!                                                                             *
+!   This file is part of HDF5.  The full HDF5 copyright notice, including     *
+!   terms governing use, modification, and redistribution, is contained in    *
+!   the files COPYING and Copyright.html.  COPYING can be found at the root   *
+!   of the source code distribution tree; Copyright.html can be found at the  *
+!   root level of an installed copy of the electronic HDF5 document set and   *
+!   is linked from the top-level documents page.  It can also be found at     *
+!   http://hdfgroup.org/HDF5/doc/Copyright.html.  If you do not have          *
+!   access to either file, you may request a copy from help at hdfgroup.org.     *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+!
+! CONTAINS SUBROUTINES
+!   H5_SIZEOF
+!
+! NOTES
+!   The Sun/Oracle compiler has the following restrictions on the SIZEOF intrinsic function:
+!
+!     "The SIZEOF intrinsic cannot be applied to arrays of an assumed size, characters of a 
+!      length that is passed, or subroutine calls or names. SIZEOF returns default INTEGER*4 data. 
+!      If compiling for a 64-bit environment, the compiler will issue a warning if the result overflows 
+!      the INTEGER*4 data range. To use SIZEOF in a 64-bit environment with arrays larger 
+!      than the INTEGER*4 limit (2 Gbytes), the SIZEOF function and 
+!      the variables receiving the result must be declared INTEGER*8."
+!
+!    Thus, we can not overload the H5_SIZEOF function to handle arrays (as used in tH5P_F03.f90), or
+!    characters that do not have a set length (as used in tH5P_F03.f90), sigh...
+!
+!*****
+MODULE TH5_MISC_PROVISIONAL
+
+  USE ISO_C_BINDING
+  IMPLICIT NONE
+
+  INTEGER, PARAMETER :: sp = SELECTED_REAL_KIND(5)  ! This should map to REAL*4 on most modern processors
+  INTEGER, PARAMETER :: dp = SELECTED_REAL_KIND(10) ! This should map to REAL*8 on most modern processors
+
+  ! generic compound datatype
+  TYPE, BIND(C) :: comp_datatype
+    REAL :: a
+    INTEGER :: x
+    DOUBLE PRECISION :: y
+    CHARACTER(LEN=1) :: z
+  END TYPE comp_datatype
+
+  PUBLIC :: H5_SIZEOF
+  INTERFACE H5_SIZEOF
+     MODULE PROCEDURE H5_SIZEOF_CMPD
+     MODULE PROCEDURE H5_SIZEOF_I, H5_SIZEOF_CHR   
+     MODULE PROCEDURE H5_SIZEOF_SP,H5_SIZEOF_DP
+  END INTERFACE
+
+CONTAINS
+
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5_sizeof_cmpd
+ !DEC$endif
+  INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_CMPD(a)
+    IMPLICIT NONE
+    TYPE(comp_datatype), INTENT(in) :: a
+
+    H5_SIZEOF_CMPD = SIZEOF(a)
+
+  END FUNCTION H5_SIZEOF_CMPD
+
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5_sizeof_chr
+!DEC$endif
+  INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_CHR(a)
+    IMPLICIT NONE
+    CHARACTER(LEN=1), INTENT(in):: a
+
+    H5_SIZEOF_CHR = SIZEOF(a)
+
+  END FUNCTION H5_SIZEOF_CHR
+
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5_sizeof_i
+!DEC$endif
+  INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_I(a)
+    IMPLICIT NONE
+    INTEGER, INTENT(in):: a
+
+    H5_SIZEOF_I = SIZEOF(a)
+
+  END FUNCTION H5_SIZEOF_I
+
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5_sizeof_sp
+!DEC$endif
+  INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_SP(a)
+    IMPLICIT NONE
+    REAL(sp), INTENT(in):: a
+
+    H5_SIZEOF_SP = SIZEOF(a)
+
+  END FUNCTION H5_SIZEOF_SP
+
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5_sizeof_dp
+!DEC$endif
+  INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_DP(a)
+    IMPLICIT NONE
+    REAL(dp), INTENT(in):: a
+
+    H5_SIZEOF_DP = SIZEOF(a)
+
+  END FUNCTION H5_SIZEOF_DP
+
+END MODULE TH5_MISC_PROVISIONAL
diff --git a/fortran/test/tf_F08.f90 b/fortran/test/tf_F08.f90
new file mode 100644
index 0000000..5583f3f
--- /dev/null
+++ b/fortran/test/tf_F08.f90
@@ -0,0 +1,128 @@
+!****h* root/fortran/test/tf_F08.f90
+!
+! NAME
+!  tf_F08.f90
+!
+! FUNCTION
+!  Contains functions that are part of the F2008 standard and needed by 
+!  the hdf5 fortran tests.
+!
+! COPYRIGHT
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+!   Copyright by The HDF Group.                                               *
+!   Copyright by the Board of Trustees of the University of Illinois.         *
+!   All rights reserved.                                                      *
+!                                                                             *
+!   This file is part of HDF5.  The full HDF5 copyright notice, including     *
+!   terms governing use, modification, and redistribution, is contained in    *
+!   the files COPYING and Copyright.html.  COPYING can be found at the root   *
+!   of the source code distribution tree; Copyright.html can be found at the  *
+!   root level of an installed copy of the electronic HDF5 document set and   *
+!   is linked from the top-level documents page.  It can also be found at     *
+!   http://hdfgroup.org/HDF5/doc/Copyright.html.  If you do not have          *
+!   access to either file, you may request a copy from help at hdfgroup.org.     *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+!
+! CONTAINS SUBROUTINES
+!   H5_SIZEOF
+!
+! NOTES
+!   This file contains "sizeof" functions that are F2008 standard compliant
+!   and replace the non-standard 'SIZEOF' functions found in the file tf_F03.
+!   Unfortunity we need to wrap the C_SIZEOF/STORAGE_SIZE functions to handle different
+!   data types from the various tests.
+!
+!   F08+TS29113 requires C interoperable variable as argument for C_SIZEOF.
+!   
+!   This file will be build instead of tf_F03.f90 if the intrinsic fortran 
+!   function C_SIZEOF/STORAGE_SIZE is found during configure.
+!
+!*****
+MODULE TH5_MISC_PROVISIONAL
+
+  USE ISO_C_BINDING
+  IMPLICIT NONE
+
+  INTEGER, PARAMETER :: sp = SELECTED_REAL_KIND(5)  ! This should map to REAL*4 on most modern processors
+  INTEGER, PARAMETER :: dp = SELECTED_REAL_KIND(10) ! This should map to REAL*8 on most modern processors
+
+  ! generic compound datatype
+  TYPE, BIND(C) :: comp_datatype
+    REAL :: a
+    INTEGER :: x
+    DOUBLE PRECISION :: y
+    CHARACTER(LEN=1) :: z
+  END TYPE comp_datatype
+
+  PUBLIC :: H5_SIZEOF
+  INTERFACE H5_SIZEOF
+     MODULE PROCEDURE H5_SIZEOF_CMPD
+     MODULE PROCEDURE H5_SIZEOF_CHR
+     MODULE PROCEDURE H5_SIZEOF_I
+     MODULE PROCEDURE H5_SIZEOF_SP,H5_SIZEOF_DP
+  END INTERFACE
+
+CONTAINS
+
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5_sizeof_cmpd
+!DEC$endif
+  INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_CMPD(a)
+    IMPLICIT NONE
+    TYPE(comp_datatype), INTENT(in) :: a
+
+    H5_SIZEOF_CMPD = C_SIZEOF(a)
+
+  END FUNCTION H5_SIZEOF_CMPD
+
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5_sizeof_chr
+!DEC$endif
+  INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_CHR(a)
+    IMPLICIT NONE
+    CHARACTER(LEN=*), INTENT(in) :: a
+
+    H5_SIZEOF_CHR = storage_size(a, c_size_t)/storage_size(c_char_'a',c_size_t)
+
+  END FUNCTION H5_SIZEOF_CHR
+
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5_sizeof_i
+!DEC$endif
+  INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_I(a)
+    IMPLICIT NONE
+    INTEGER, INTENT(in):: a
+
+    H5_SIZEOF_I = storage_size(a, c_size_t)/storage_size(c_char_'a',c_size_t)
+
+  END FUNCTION H5_SIZEOF_I
+
+
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5_sizeof_sp
+!DEC$endif
+  INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_SP(a)
+    IMPLICIT NONE
+    REAL(sp), INTENT(in):: a
+
+    H5_SIZEOF_SP = storage_size(a, c_size_t)/storage_size(c_char_'a',c_size_t)
+
+  END FUNCTION H5_SIZEOF_SP
+
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$attributes dllexport :: h5_sizeof_dp
+!DEC$endif
+  INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_DP(a)
+    IMPLICIT NONE
+    REAL(dp), INTENT(in):: a
+
+    H5_SIZEOF_DP = storage_size(a, c_size_t)/storage_size(c_char_'a',c_size_t)
+
+  END FUNCTION H5_SIZEOF_DP
+
+END MODULE TH5_MISC_PROVISIONAL
diff --git a/fortran/test/tHDF5_1_8.f90 b/fortran/test/tf_F90.f90
similarity index 77%
copy from fortran/test/tHDF5_1_8.f90
copy to fortran/test/tf_F90.f90
index 47eec16..11a047c 100644
--- a/fortran/test/tHDF5_1_8.f90
+++ b/fortran/test/tf_F90.f90
@@ -1,14 +1,11 @@
-!****h* ROBODoc/HDF5
+!****h* root/fortran/test/tf_F90.f90
 !
 ! NAME
-!  MODULE THDF5_1_8
+!  tf_F90.f90
 !
-! FILE
-!  src/fortran/test/tHDF5_1_8.f90
-!
-! PURPOSE
-!  This is the test  module used for testing the Fortran90 HDF library
-!  1.8.* APIs
+! FUNCTION
+!  Module for when the compiler is not F2003 or F2008 compliant. 
+!  Needed by tf.f90 for the test programs.
 !
 ! COPYRIGHT
 ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
@@ -27,12 +24,10 @@
 ! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 !
 !*****
+MODULE TH5_MISC_PROVISIONAL
+  IMPLICIT NONE
+
+  INTEGER, PARAMETER :: sp = KIND(0.0)
+  INTEGER, PARAMETER :: dp = KIND(0.D0)
 
-MODULE THDF5_1_8
-  USE TH5_MISC
-  USE TH5MISC_1_8
-  USE TH5A_1_8
-  USE TH5G_1_8
-  USE TH5F
-  USE TH5O
-END MODULE THDF5_1_8
+END MODULE TH5_MISC_PROVISIONAL
diff --git a/fortran/testpar/Makefile.in b/fortran/testpar/Makefile.in
index 989c626..583b6dc 100644
--- a/fortran/testpar/Makefile.in
+++ b/fortran/testpar/Makefile.in
@@ -504,7 +504,6 @@ MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MPE = @MPE@
-MPI_GET_SIZE = @MPI_GET_SIZE@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
diff --git a/hl/CMakeLists.txt b/hl/CMakeLists.txt
index 22c0770..e693dd7 100644
--- a/hl/CMakeLists.txt
+++ b/hl/CMakeLists.txt
@@ -4,7 +4,7 @@ PROJECT (HDF5_HL C CXX)
 #-----------------------------------------------------------------------------
 # Apply Definitions to compiler in this directory and below
 #-----------------------------------------------------------------------------
-add_definitions (${HDF5_EXTRA_C_FLAGS})
+add_definitions (${HDF_EXTRA_C_FLAGS})
 
 #-----------------------------------------------------------------------------
 # Shared Libs
diff --git a/hl/Makefile.in b/hl/Makefile.in
index 17a1ff0..cda0122 100644
--- a/hl/Makefile.in
+++ b/hl/Makefile.in
@@ -508,7 +508,6 @@ MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MPE = @MPE@
-MPI_GET_SIZE = @MPI_GET_SIZE@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
diff --git a/hl/c++/Makefile.in b/hl/c++/Makefile.in
index 4b11ad8..3839814 100644
--- a/hl/c++/Makefile.in
+++ b/hl/c++/Makefile.in
@@ -504,7 +504,6 @@ MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MPE = @MPE@
-MPI_GET_SIZE = @MPI_GET_SIZE@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
diff --git a/hl/c++/examples/Makefile.in b/hl/c++/examples/Makefile.in
index 3938a3b..5712043 100644
--- a/hl/c++/examples/Makefile.in
+++ b/hl/c++/examples/Makefile.in
@@ -451,7 +451,6 @@ MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MPE = @MPE@
-MPI_GET_SIZE = @MPI_GET_SIZE@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
diff --git a/hl/c++/src/Makefile.in b/hl/c++/src/Makefile.in
index 23ea5d6..6555461 100644
--- a/hl/c++/src/Makefile.in
+++ b/hl/c++/src/Makefile.in
@@ -510,7 +510,6 @@ MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MPE = @MPE@
-MPI_GET_SIZE = @MPI_GET_SIZE@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -673,8 +672,10 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog
 
 # Add libtool shared library version numbers to the HDF5 library
 # See libtool versioning documentation online.
-LT_VERS_INTERFACE = 8
-LT_VERS_REVISION = 2 
+# After making changes, run bin/reconfigure to update other configure related
+# files like Makefile.in.
+LT_VERS_INTERFACE = 9
+LT_VERS_REVISION = 0
 LT_VERS_AGE = 0
 
 # This is our main target
diff --git a/hl/c++/test/Makefile.in b/hl/c++/test/Makefile.in
index cee963a..f6bd246 100644
--- a/hl/c++/test/Makefile.in
+++ b/hl/c++/test/Makefile.in
@@ -507,7 +507,6 @@ MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MPE = @MPE@
-MPI_GET_SIZE = @MPI_GET_SIZE@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
diff --git a/hl/examples/Makefile.in b/hl/examples/Makefile.in
index 2bf5764..6bbf493 100644
--- a/hl/examples/Makefile.in
+++ b/hl/examples/Makefile.in
@@ -451,7 +451,6 @@ MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MPE = @MPE@
-MPI_GET_SIZE = @MPI_GET_SIZE@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
diff --git a/hl/fortran/Makefile.in b/hl/fortran/Makefile.in
index c2d6610..8fe9e35 100644
--- a/hl/fortran/Makefile.in
+++ b/hl/fortran/Makefile.in
@@ -508,7 +508,6 @@ MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MPE = @MPE@
-MPI_GET_SIZE = @MPI_GET_SIZE@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
diff --git a/hl/fortran/examples/Makefile.in b/hl/fortran/examples/Makefile.in
index 1eb9c9d..1051658 100644
--- a/hl/fortran/examples/Makefile.in
+++ b/hl/fortran/examples/Makefile.in
@@ -451,7 +451,6 @@ MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MPE = @MPE@
-MPI_GET_SIZE = @MPI_GET_SIZE@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
diff --git a/hl/fortran/src/Makefile.am b/hl/fortran/src/Makefile.am
index c8c4541..512c2c8 100644
--- a/hl/fortran/src/Makefile.am
+++ b/hl/fortran/src/Makefile.am
@@ -49,7 +49,7 @@ endif
 libhdf5hl_fortran_la_SOURCES=H5DSfc.c H5LTfc.c  H5IMfc.c H5IMcc.c H5TBfc.c \
 	H5DSff.f90 H5LTff.f90 H5IMff.f90 H5TBff.f90
 
-# HDF5 HL Fortran library depends on HDF5 Library.
+# HDF5 HL Fortran library depends on HDF5 Library. 
 libhdf5hl_fortran_la_LIBADD=$(LIBH5_HL) $(LIBH5F)
 
 # Fortran module files can have different extensions and different names
diff --git a/hl/fortran/src/Makefile.in b/hl/fortran/src/Makefile.in
index f49f748..99cf547 100644
--- a/hl/fortran/src/Makefile.in
+++ b/hl/fortran/src/Makefile.in
@@ -525,7 +525,6 @@ MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MPE = @MPE@
-MPI_GET_SIZE = @MPI_GET_SIZE@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -688,8 +687,10 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog
 
 # Add libtool shared library version numbers to the HDF5 library
 # See libtool versioning documentation online.
-LT_VERS_INTERFACE = 8
-LT_VERS_REVISION = 2 
+# After making changes, run bin/reconfigure to update other configure related
+# files like Makefile.in.
+LT_VERS_INTERFACE = 9
+LT_VERS_REVISION = 0
 LT_VERS_AGE = 0
 
 # Our main target, the high-level fortran library
@@ -708,7 +709,7 @@ libhdf5hl_fortran_la_SOURCES = H5DSfc.c H5LTfc.c  H5IMfc.c H5IMcc.c H5TBfc.c \
 	H5DSff.f90 H5LTff.f90 H5IMff.f90 H5TBff.f90
 
 
-# HDF5 HL Fortran library depends on HDF5 Library.
+# HDF5 HL Fortran library depends on HDF5 Library. 
 libhdf5hl_fortran_la_LIBADD = $(LIBH5_HL) $(LIBH5F)
 
 # Automake needs to be taught how to build lib, progs, and tests targets.
diff --git a/hl/fortran/test/Makefile.in b/hl/fortran/test/Makefile.in
index e142edf..4a929a6 100644
--- a/hl/fortran/test/Makefile.in
+++ b/hl/fortran/test/Makefile.in
@@ -516,7 +516,6 @@ MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MPE = @MPE@
-MPI_GET_SIZE = @MPI_GET_SIZE@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
diff --git a/hl/fortran/test/tsttable.f90 b/hl/fortran/test/tsttable.f90
index 66ec5c6..bb88abf 100644
--- a/hl/fortran/test/tsttable.f90
+++ b/hl/fortran/test/tsttable.f90
@@ -175,13 +175,30 @@ SUBROUTINE test_table1()
   CALL h5tbwrite_field_name_f(file_id,dsetname1,field_names(4),start,nrecords,type_sizer,&
        bufr,errcode)
 
-
   !-------------------------------------------------------------------------
   ! read field
   !-------------------------------------------------------------------------
 
+  ! Read an invalid field, should fail
+  CALL h5tbread_field_name_f(file_id,dsetname1,'DoesNotExist',start,nrecords,type_sizec,&
+       bufsr,errcode)
+
+  IF(errcode.GE.0)THEN
+     PRINT *, 'error in h5tbread_field_name_f'
+     CALL h5fclose_f(file_id, errcode)
+     CALL h5close_f(errcode)
+     STOP
+  ENDIF
+
+  ! Read a valid field, should pass
   CALL h5tbread_field_name_f(file_id,dsetname1,field_names(1),start,nrecords,type_sizec,&
        bufsr,errcode)
+  IF(errcode.LT.0)THEN
+     PRINT *, 'error in h5tbread_field_name_f'
+     CALL h5fclose_f(file_id, errcode)
+     CALL h5close_f(errcode)
+     STOP
+  ENDIF
 
   !
   ! compare read and write buffers.
@@ -329,8 +346,6 @@ SUBROUTINE test_table1()
   ! we insert a field callsed "field5" with the same type and buffer as field 4 (Real)
   !-------------------------------------------------------------------------
 
-
-
   CALL test_begin(' Insert field                   ')
 
   CALL h5tbinsert_field_f(file_id,dsetname1,"field5",field_types(4),4,bufr,errcode)
diff --git a/hl/src/H5DS.c b/hl/src/H5DS.c
index e60d587..df69380 100644
--- a/hl/src/H5DS.c
+++ b/hl/src/H5DS.c
@@ -22,6 +22,9 @@
 #include "H5TBprivate.h"
 
 
+/* Local routines */
+static herr_t H5DS_is_reserved(hid_t did);
+static hid_t H5DS_get_REFLIST_type(void);
 
 /*-------------------------------------------------------------------------
 * Function: H5DSset_scale
@@ -221,11 +224,11 @@ herr_t H5DSattach_scale(hid_t did,
     *-------------------------------------------------------------------------
     */
     /* create a reference for the >>DS<< dataset */
-    if (H5Rcreate(&ref_to_ds,dsid,".",H5R_OBJECT,-1) < 0)
+    if (H5Rcreate(&ref_to_ds, dsid, ".", H5R_OBJECT, (hid_t)-1) < 0)
         return FAIL;
 
     /* create a reference for the >>data<< dataset */
-    if (H5Rcreate(&dsl.ref,did,".",H5R_OBJECT,-1) < 0)
+    if (H5Rcreate(&dsl.ref, did, ".", H5R_OBJECT, (hid_t)-1) < 0)
         return FAIL;
 
     /* try to find the attribute "DIMENSION_LIST" on the >>data<< dataset */
@@ -254,7 +257,7 @@ herr_t H5DSattach_scale(hid_t did,
             goto out;
 
         /* allocate and initialize the VL */
-        buf = (hvl_t *)malloc((size_t)rank * sizeof(hvl_t));
+        buf = (hvl_t *)HDmalloc((size_t)rank * sizeof(hvl_t));
         if(buf == NULL)
             goto out;
 
@@ -265,7 +268,7 @@ herr_t H5DSattach_scale(hid_t did,
 
         /* store the REF information in the index of the dataset that has the DS */
         buf[idx].len = 1;
-        buf[idx].p = malloc( 1 * sizeof(hobj_ref_t));
+        buf[idx].p = HDmalloc( 1 * sizeof(hobj_ref_t));
         ((hobj_ref_t *)buf[idx].p)[0] = ref_to_ds;
 
         /* write the attribute with the reference */
@@ -282,7 +285,7 @@ herr_t H5DSattach_scale(hid_t did,
         if(H5Aclose(aid) < 0)
             goto out;
 
-        free(buf);
+        HDfree(buf);
         buf = NULL;
     }
 
@@ -303,7 +306,7 @@ herr_t H5DSattach_scale(hid_t did,
             goto out;
 
         /* allocate and initialize the VL */
-        buf = (hvl_t *)malloc((size_t)rank * sizeof(hvl_t));
+        buf = (hvl_t *)HDmalloc((size_t)rank * sizeof(hvl_t));
         if(buf == NULL)
             goto out;
 
@@ -343,13 +346,13 @@ herr_t H5DSattach_scale(hid_t did,
             if(buf[idx].len > 0) {
                 buf[idx].len++;
                 len = buf[idx].len;
-                buf[idx].p = realloc(buf[idx].p, len * sizeof(hobj_ref_t));
+                buf[idx].p = HDrealloc(buf[idx].p, len * sizeof(hobj_ref_t));
                 ((hobj_ref_t *)buf[idx].p)[len - 1] = ref_to_ds;
             } /* end if */
             else {
                 /* store the REF information in the index of the dataset that has the DS */
                 buf[idx].len = 1;
-                buf[idx].p = malloc(sizeof(hobj_ref_t));
+                buf[idx].p = HDmalloc(sizeof(hobj_ref_t));
                 ((hobj_ref_t *)buf[idx].p)[0] = ref_to_ds;
             } /* end else */
         } /* end if */
@@ -367,7 +370,7 @@ herr_t H5DSattach_scale(hid_t did,
             goto out;
         if(H5Aclose(aid) < 0)
             goto out;
-        free(buf);
+        HDfree(buf);
         buf = NULL;
     } /* has_dimlist */
 
@@ -447,7 +450,7 @@ herr_t H5DSattach_scale(hid_t did,
 
         nelmts++;
 
-        dsbuf = (ds_list_t*) malloc((size_t)nelmts * sizeof(ds_list_t));
+        dsbuf = (ds_list_t*) HDmalloc((size_t)nelmts * sizeof(ds_list_t));
         if(dsbuf == NULL)
             goto out;
 
@@ -497,7 +500,7 @@ herr_t H5DSattach_scale(hid_t did,
         if (H5Tclose(ntid) < 0)
             goto out;
 
-        free(dsbuf);
+        HDfree(dsbuf);
         dsbuf = NULL;
     } /* has_reflist */
 
@@ -519,9 +522,9 @@ herr_t H5DSattach_scale(hid_t did,
     /* error zone */
 out:
     if(buf)
-        free(buf);
+        HDfree(buf);
     if(dsbuf)
-        free(dsbuf);
+        HDfree(dsbuf);
 
     H5E_BEGIN_TRY {
         H5Sclose(sid);
@@ -673,7 +676,7 @@ herr_t H5DSdetach_scale(hid_t did,
         goto out;
 
     /* allocate and initialize the VL */
-    buf = (hvl_t *)malloc((size_t)rank * sizeof(hvl_t));
+    buf = (hvl_t *)HDmalloc((size_t)rank * sizeof(hvl_t));
     if(buf == NULL)
         goto out;
 
@@ -718,7 +721,7 @@ herr_t H5DSdetach_scale(hid_t did,
                     ((hobj_ref_t *)buf[idx].p)[j] = ((hobj_ref_t *)buf[idx].p)[len-1]; 
                 len = --buf[idx].len;
                 if(len == 0) {
-                    free(buf[idx].p); 
+                    HDfree(buf[idx].p); 
                     buf[idx].p = NULL;
                 }
                 /* Since a reference to a dim. scale can be inserted only once, 
@@ -760,7 +763,7 @@ herr_t H5DSdetach_scale(hid_t did,
     if(H5Aclose(aid) < 0)
         goto out;
 
-    free(buf);
+    HDfree(buf);
     buf = NULL;
 
 
@@ -786,7 +789,7 @@ herr_t H5DSdetach_scale(hid_t did,
     if((nelmts = H5Sget_simple_extent_npoints(sid)) < 0)
         goto out;
 
-    dsbuf = (ds_list_t*) malloc((size_t)nelmts * sizeof(ds_list_t));
+    dsbuf = (ds_list_t*) HDmalloc((size_t)nelmts * sizeof(ds_list_t));
     if(dsbuf == NULL)
         goto out;
 
@@ -876,7 +879,7 @@ herr_t H5DSdetach_scale(hid_t did,
     if (H5Tclose(ntid) < 0)
         goto out;
 
-    free(dsbuf);
+    HDfree(dsbuf);
     dsbuf = NULL;
 
     return SUCCEED;
@@ -890,7 +893,7 @@ out:
         H5Tclose(tid);
 
         if(dsbuf) {
-            free(dsbuf);
+            HDfree(dsbuf);
             dsbuf = NULL;
         }
         if(buf) {
@@ -898,9 +901,9 @@ out:
                free the pointers allocated when we read data in */
             for(i = 0; i < rank; i++) {
                 if(buf[i].p)
-                    free(buf[i].p);
+                    HDfree(buf[i].p);
             }
-            free(buf);
+            HDfree(buf);
             buf = NULL;
         }
     } H5E_END_TRY;
@@ -1033,7 +1036,7 @@ htri_t H5DSis_attached(hid_t did,
             goto out;
 
         /* allocate and initialize the VL */
-        buf = (hvl_t*)malloc((size_t)rank * sizeof(hvl_t));
+        buf = (hvl_t*)HDmalloc((size_t)rank * sizeof(hvl_t));
         if(buf == NULL)
             goto out;
 
@@ -1079,7 +1082,7 @@ htri_t H5DSis_attached(hid_t did,
             goto out;
         if (H5Aclose(aid) < 0)
             goto out;
-        free(buf);
+        HDfree(buf);
         buf = NULL;
     } /* has_dimlist */
 
@@ -1116,7 +1119,7 @@ htri_t H5DSis_attached(hid_t did,
         if((nelmts = H5Sget_simple_extent_npoints(sid)) < 0)
             goto out;
 
-        dsbuf = (ds_list_t*) malloc((size_t)nelmts * sizeof(ds_list_t));
+        dsbuf = (ds_list_t*) HDmalloc((size_t)nelmts * sizeof(ds_list_t));
 
         if (dsbuf == NULL)
             goto out;
@@ -1170,7 +1173,7 @@ htri_t H5DSis_attached(hid_t did,
         if (H5Aclose(aid) < 0)
             goto out;
 
-        free(dsbuf);
+        HDfree(dsbuf);
         dsbuf = NULL;
     } /* has_reflist */
 
@@ -1189,11 +1192,11 @@ out:
     } H5E_END_TRY;
 
     if (buf) {
-        free(buf);
+        HDfree(buf);
         buf = NULL;
     }
     if(dsbuf) {
-        free(dsbuf);
+        HDfree(dsbuf);
         dsbuf = NULL;
     }
     return FAIL;
@@ -1317,7 +1320,7 @@ herr_t H5DSiterate_scales(hid_t did,
             goto out;
 
         /* allocate and initialize the VL */
-        buf = (hvl_t*)malloc((size_t)rank * sizeof(hvl_t));
+        buf = (hvl_t*)HDmalloc((size_t)rank * sizeof(hvl_t));
 
         if(buf == NULL)
             goto out;
@@ -1380,7 +1383,7 @@ herr_t H5DSiterate_scales(hid_t did,
         if (H5Aclose(aid) < 0)
             goto out;
 
-        free(buf);
+        HDfree(buf);
         buf = NULL;
     } /* if has_dimlist */
 
@@ -1390,7 +1393,7 @@ out:
     H5E_BEGIN_TRY {
         if(buf) {
             H5Dvlen_reclaim(tid,sid,H5P_DEFAULT,buf);
-            free(buf);
+            HDfree(buf);
         }
         H5Sclose(sid);
         H5Aclose(aid);
@@ -1441,6 +1444,9 @@ herr_t H5DSset_label(hid_t did, unsigned int idx, const char *label)
     if (H5I_DATASET != it)
         return FAIL;
 
+    if (label == NULL) 
+        return FAIL;
+
      /* get dataset space */
     if ((sid = H5Dget_space(did)) < 0)
         return FAIL;
@@ -1489,7 +1495,7 @@ herr_t H5DSset_label(hid_t did, unsigned int idx, const char *label)
             goto out;
 
         /* allocate and initialize */
-        buf = (const char **) malloc((size_t) rank * sizeof(char *));
+        buf = (const char **) HDmalloc((size_t) rank * sizeof(char *));
 
         if (buf == NULL)
             goto out;
@@ -1513,7 +1519,7 @@ herr_t H5DSset_label(hid_t did, unsigned int idx, const char *label)
             goto out;
         if (buf)
         {
-            free(buf);
+            HDfree(buf);
             buf = NULL;
         }
     }
@@ -1532,7 +1538,7 @@ herr_t H5DSset_label(hid_t did, unsigned int idx, const char *label)
             goto out;
 
         /* allocate and initialize */
-        buf = (const char **) malloc((size_t) rank * sizeof(char *));
+        buf = (const char **) HDmalloc((size_t) rank * sizeof(char *));
 
         if (buf == NULL)
             goto out;
@@ -1543,7 +1549,7 @@ herr_t H5DSset_label(hid_t did, unsigned int idx, const char *label)
 
         /* free the ptr that will be replaced by label */
         if (buf[idx])
-            free((void *)buf[idx]);
+            HDfree((void *)buf[idx]);
 
         /* store the label information in the required index */
         buf[idx] = label;
@@ -1559,7 +1565,7 @@ herr_t H5DSset_label(hid_t did, unsigned int idx, const char *label)
         for (i = 0; i < (unsigned int) rank; i++)
         {
             if (buf[i])
-                free((void *)buf[i]);
+                HDfree((void *)buf[i]);
         }
 
         /* close */
@@ -1569,7 +1575,7 @@ herr_t H5DSset_label(hid_t did, unsigned int idx, const char *label)
             goto out;
         if (buf)
         {
-            free(buf);
+            HDfree(buf);
             buf = NULL;
         }
     }
@@ -1586,9 +1592,9 @@ out:
         for (i = 0; i < (unsigned int) rank; i++)
         {
             if (buf[i])
-                free((void *)buf[i]);
+                HDfree((void *)buf[i]);
         }
-        free(buf);
+        HDfree(buf);
     }
     H5E_BEGIN_TRY
     {
@@ -1692,7 +1698,7 @@ ssize_t H5DSget_label(hid_t did, unsigned int idx, char *label, size_t size)
         goto out;
 
     /* allocate and initialize */
-    buf = (char **) malloc((size_t) rank * sizeof(char *));
+    buf = (char **) HDmalloc((size_t) rank * sizeof(char *));
 
     if (buf == NULL)
         goto out;
@@ -1724,7 +1730,7 @@ ssize_t H5DSget_label(hid_t did, unsigned int idx, char *label, size_t size)
     for (i = 0; i < rank; i++)
     {
         if (buf[i])
-	  free(buf[i]);
+	  HDfree(buf[i]);
     }
 
     /* close */
@@ -1734,7 +1740,7 @@ ssize_t H5DSget_label(hid_t did, unsigned int idx, char *label, size_t size)
         goto out;
     if (buf)
     {
-        free(buf);
+        HDfree(buf);
         buf = NULL;
     }
 
@@ -1748,9 +1754,9 @@ out:
         for (i = 0; i < rank; i++)
         {
             if (buf[i])
-                free(buf[i]);
+                HDfree(buf[i]);
         }
-        free(buf);
+        HDfree(buf);
     }
     H5E_BEGIN_TRY
     {
@@ -1845,7 +1851,7 @@ ssize_t H5DSget_scale_name(hid_t did,
         goto out;
 
     /* allocate a temporary buffer */
-    buf = (char*)malloc(nbytes * sizeof(char));
+    buf = (char*)HDmalloc(nbytes * sizeof(char));
     if (buf == NULL)
         goto out;
 
@@ -1872,9 +1878,9 @@ ssize_t H5DSget_scale_name(hid_t did,
     if (H5Sclose(sid) < 0)
         goto out;
     if (buf)
-        free(buf);
+        HDfree(buf);
 
-    return (ssize_t)(nbytes - 1);
+    return (ssize_t) MAX(0,nbytes-1);
 
     /* error zone */
 out:
@@ -1884,7 +1890,7 @@ out:
         H5Sclose(sid);
     } H5E_END_TRY;
     if (buf)
-        free(buf);
+        HDfree(buf);
     return FAIL;
 }
 
@@ -1909,11 +1915,12 @@ out:
 htri_t H5DSis_scale(hid_t did)
 {
     hid_t      tid = -1;   /* attribute type ID */
-    hid_t      aid;        /* attribute ID */
+    hid_t      aid = -1;   /* attribute ID */
     herr_t     has_class;  /* has the "CLASS" attribute */
     htri_t     is_ds;      /* boolean return value */
     H5I_type_t it;           /* ID type */
-    char       buf[20];
+    char       *buf;         /* Name of attribute */
+    hsize_t    storage_size; /* Size of storage for attribute */
 
     /*-------------------------------------------------------------------------
     * parameter checking
@@ -1941,19 +1948,41 @@ htri_t H5DSis_scale(hid_t did)
         if((tid = H5Aget_type(aid)) < 0)
             goto out;
 
+	/* check to make sure attribute is a string */
+	if(H5T_STRING != H5Tget_class(tid))
+	    goto out;
+
+	/* check to make sure string is null-terminated */
+	if(H5T_STR_NULLTERM != H5Tget_strpad(tid))
+	    goto out;
+
+	/* allocate buffer large enough to hold string */
+	if((storage_size = H5Aget_storage_size(aid)) == 0)
+	    goto out;
+
+	buf = (char*)HDmalloc( (size_t)storage_size * sizeof(char) + 1);
+	if(buf == NULL)
+	    goto out;
+
+	/* Read the attribute */
         if(H5Aread(aid, tid, buf) < 0)
-            goto out;
+	    goto out;
 
-        if(strcmp(buf, DIMENSION_SCALE_CLASS)==0)
+	/* compare strings */
+        if(HDstrncmp(buf, DIMENSION_SCALE_CLASS, MIN(HDstrlen(DIMENSION_SCALE_CLASS),HDstrlen(buf)))==0)
             is_ds = 1;
         else
             is_ds = 0;
 
+	HDfree(buf);
+
         if(H5Tclose(tid) < 0)
             goto out;
 
         if (H5Aclose(aid) < 0)
             goto out;
+
+
     }
 
     return is_ds;
@@ -2052,7 +2081,7 @@ int H5DSget_num_scales(hid_t did,
             goto out;
 
         /* allocate and initialize the VL */
-        buf = (hvl_t *)malloc((size_t)rank * sizeof(hvl_t));
+        buf = (hvl_t *)HDmalloc((size_t)rank * sizeof(hvl_t));
         if(buf == NULL)
             goto out;
 
@@ -2071,7 +2100,7 @@ int H5DSget_num_scales(hid_t did,
             goto out;
         if(H5Aclose(aid) < 0)
             goto out;
-        free(buf);
+        HDfree(buf);
         buf = NULL;
     } /* has_dimlist */
 
@@ -2086,7 +2115,7 @@ out:
     } H5E_END_TRY;
 
     if(buf)
-        free(buf);
+        HDfree(buf);
 
     return FAIL;
 }
@@ -2109,12 +2138,14 @@ out:
 *-------------------------------------------------------------------------
 */
 
+static
 herr_t H5DS_is_reserved(hid_t did)
 {
     int    has_class;
     hid_t  tid = -1;
     hid_t  aid = -1;
-    char   buf[40];
+    char *buf;            /* Name of attribute */
+    hsize_t storage_size; /* Size of storage for attribute */
     herr_t ret;
 
     /* try to find the attribute "CLASS" on the dataset */
@@ -2131,16 +2162,36 @@ herr_t H5DS_is_reserved(hid_t did)
     if((tid = H5Aget_type(aid)) < 0)
         goto out;
 
+    /* check to make sure attribute is a string */
+    if(H5T_STRING != H5Tget_class(tid))
+      goto out;
+
+    /* check to make sure string is null-terminated */
+    if(H5T_STR_NULLTERM != H5Tget_strpad(tid))
+      goto out;
+
+    /* allocate buffer large enough to hold string */
+    if((storage_size = H5Aget_storage_size(aid)) == 0)
+      goto out;
+
+    buf = (char*)HDmalloc( (size_t)storage_size * sizeof(char) + 1);
+    if(buf == NULL)
+      goto out;
+
+    /* Read the attribute */
     if(H5Aread(aid, tid, buf) < 0)
-        goto out;
+      goto out;
 
-    if(strcmp(buf, IMAGE_CLASS) == 0 ||
-        strcmp(buf, PALETTE_CLASS) == 0 ||
-        strcmp(buf, TABLE_CLASS) == 0 )
+
+    if(HDstrncmp(buf, IMAGE_CLASS, MIN(HDstrlen(IMAGE_CLASS),HDstrlen(buf))) == 0 ||
+       HDstrncmp(buf, PALETTE_CLASS, MIN(HDstrlen(PALETTE_CLASS),HDstrlen(buf))) == 0 ||
+       HDstrncmp(buf, TABLE_CLASS, MIN(HDstrlen(TABLE_CLASS),HDstrlen(buf))) == 0 )
         ret = 1;
     else
         ret = 0;
 
+    HDfree(buf);
+
     if (H5Tclose(tid) < 0)
         goto out;
 
@@ -2179,6 +2230,7 @@ out:
 *-------------------------------------------------------------------------
 */
 
+static
 hid_t H5DS_get_REFLIST_type(void)
 {
     hid_t ntid_t = -1; 
diff --git a/hl/src/H5DSprivate.h b/hl/src/H5DSprivate.h
index 5094208..61c0a1c 100644
--- a/hl/src/H5DSprivate.h
+++ b/hl/src/H5DSprivate.h
@@ -37,8 +37,6 @@ typedef struct ds_list_t {
  *-------------------------------------------------------------------------
  */
 
-H5_HLDLL herr_t  H5DS_is_reserved( hid_t did);
-H5_HLDLL hid_t H5DS_get_REFLIST_type(void);
 
 #endif
 
diff --git a/hl/src/H5HLprivate2.h b/hl/src/H5HLprivate2.h
index e2597db..1b67c70 100644
--- a/hl/src/H5HLprivate2.h
+++ b/hl/src/H5HLprivate2.h
@@ -22,44 +22,8 @@
 /* Public High-Level header */
 #include "hdf5_hl.h"
 
-/* The following is copied from src/H5private.h */
-
-/*
- * Status return values for the `herr_t' type.
- * Since some unix/c routines use 0 and -1 (or more precisely, non-negative
- * vs. negative) as their return code, and some assumption had been made in
- * the code about that, it is important to keep these constants the same
- * values.  When checking the success or failure of an integer-valued
- * function, remember to compare against zero and not one of these two
- * values.
- */
-#define SUCCEED		0
-#define FAIL		(-1)
-#define UFAIL		(unsigned)(-1)
-
-/* minimum of two, three, or four values */
-#undef MIN
-#define MIN(a,b)		(((a)<(b)) ? (a) : (b))
-#define MIN2(a,b)		MIN(a,b)
-#define MIN3(a,b,c)		MIN(a,MIN(b,c))
-#define MIN4(a,b,c,d)		MIN(MIN(a,b),MIN(c,d))
-
-/* maximum of two, three, or four values */
-#undef MAX
-#define MAX(a,b)		(((a)>(b)) ? (a) : (b))
-#define MAX2(a,b)		MAX(a,b)
-#define MAX3(a,b,c)		MAX(a,MAX(b,c))
-#define MAX4(a,b,c,d)		MAX(MAX(a,b),MAX(c,d))
-
-/*
- * HDF Boolean type.
- */
-#ifndef FALSE
-#   define FALSE 0
-#endif
-#ifndef TRUE
-#   define TRUE 1
-#endif
+/* HDF5 private functions */
+#include "H5private.h"
 
 #endif /* _H5HLprivate2_H */
 
diff --git a/hl/src/H5IM.c b/hl/src/H5IM.c
index 2621ca4..33b2dd4 100644
--- a/hl/src/H5IM.c
+++ b/hl/src/H5IM.c
@@ -46,6 +46,10 @@ herr_t H5IMmake_image_8bit( hid_t loc_id,
 {
     hsize_t  dims[IMAGE8_RANK];
 
+    /* check the arguments */
+    if (dset_name == NULL) 
+        return -1;
+
     /* Initialize the image dimensions */
     dims[0] = height;
     dims[1] = width;
@@ -103,9 +107,16 @@ herr_t H5IMmake_image_24bit( hid_t loc_id,
 {
     hsize_t  dims[IMAGE24_RANK];
 
+    /* check the arguments */
+    if (interlace == NULL) 
+        return -1;
+    if (dset_name == NULL) 
+        return -1;
+
+
     /* Initialize the image dimensions */
 
-    if ( strcmp( interlace, "INTERLACE_PIXEL" ) == 0 )
+    if ( HDstrncmp( interlace, "INTERLACE_PIXEL",15 ) == 0 )
     {
         /* Number of color planes is defined as the third dimension */
         dims[0] = height;
@@ -113,7 +124,7 @@ herr_t H5IMmake_image_24bit( hid_t loc_id,
         dims[2] = IMAGE24_RANK;
     }
     else
-        if ( strcmp( interlace, "INTERLACE_PLANE" ) == 0 )
+      if ( HDstrncmp( interlace, "INTERLACE_PLANE",15 ) == 0 )
         {
             /* Number of color planes is defined as the first dimension */
             dims[0] = IMAGE24_RANK;
@@ -172,6 +183,10 @@ static herr_t find_palette(hid_t loc_id,
 {
     int ret = H5_ITER_CONT;
 
+    /* check the arguments */
+    if (name == NULL) 
+        return -1;
+
     /* Shut compiler up */
     loc_id = loc_id; ainfo = ainfo; op_data = op_data;
 
@@ -179,7 +194,7 @@ static herr_t find_palette(hid_t loc_id,
     * cause the iterator to immediately return that positive value,
     * indicating short-circuit success
     */
-    if(strcmp(name, "PALETTE") == 0)
+    if(HDstrncmp(name, "PALETTE",7) == 0)
         ret = H5_ITER_STOP;
 
     return ret;
@@ -250,6 +265,12 @@ herr_t H5IMget_image_info( hid_t loc_id,
     int         has_pal;
     int         has_attr;
 
+    /* check the arguments */
+    if (dset_name == NULL) 
+      return -1;
+    if (interlace == NULL) 
+      return -1;
+
     /*assume initially we have no palettes attached*/
     *npals = 0;
 
@@ -294,7 +315,7 @@ herr_t H5IMget_image_info( hid_t loc_id,
         /* This is a 24 bit image */
     {
 
-        if ( strcmp( interlace, "INTERLACE_PIXEL" ) == 0 )
+      if ( HDstrncmp( interlace, "INTERLACE_PIXEL", 15 ) == 0 )
         {
             /* Number of color planes is defined as the third dimension */
             *height = dims[0];
@@ -302,14 +323,14 @@ herr_t H5IMget_image_info( hid_t loc_id,
             *planes = dims[2];
         }
         else
-            if ( strcmp( interlace, "INTERLACE_PLANE" ) == 0 )
+	  if ( HDstrncmp( interlace, "INTERLACE_PLANE", 15 ) == 0 )
             {
                 /* Number of color planes is defined as the first dimension */
                 *planes = dims[0];
                 *height = dims[1];
                 *width  = dims[2];
             }
-            else return -1;
+	  else return -1;
     }
     else
         /* This is a 8 bit image */
@@ -410,6 +431,10 @@ herr_t H5IMread_image( hid_t loc_id,
 {
     hid_t   did;
 
+    /* check the arguments */
+    if (dset_name == NULL) 
+      return -1;
+
     /* Open the dataset. */
     if((did = H5Dopen2(loc_id, dset_name, H5P_DEFAULT)) < 0)
         return -1;
@@ -460,6 +485,10 @@ herr_t H5IMmake_palette( hid_t loc_id,
 
     int has_pal;
 
+    /* check the arguments */
+    if (pal_name == NULL) 
+      return -1;
+
     /* Check if the dataset already exists */
     has_pal = H5LTfind_dataset( loc_id, pal_name );
 
@@ -523,6 +552,13 @@ herr_t H5IMlink_palette( hid_t loc_id,
     hsize_t     dim_ref;
     int         ok_pal;
 
+    
+    /* check the arguments */
+    if (image_name == NULL) 
+      return -1;
+    if (pal_name == NULL) 
+      return -1;
+
     /* The image dataset may or may not have the attribute "PALETTE"
     * First we try to open to see if it is already there; if not, it is created.
     * If it exists, the array of references is extended to hold the reference
@@ -554,7 +590,7 @@ herr_t H5IMlink_palette( hid_t loc_id,
             goto out;
 
         /* Create a reference. The reference is created on the local id.  */
-        if(H5Rcreate(&ref, loc_id, pal_name, H5R_OBJECT, -1) < 0)
+        if(H5Rcreate(&ref, loc_id, pal_name, H5R_OBJECT, (hid_t)-1) < 0)
             goto out;
 
         /* Write the attribute with the reference */
@@ -594,7 +630,7 @@ herr_t H5IMlink_palette( hid_t loc_id,
 
         dim_ref = n_refs + 1;
 
-        refbuf = (hobj_ref_t*)malloc( sizeof(hobj_ref_t) * (int)dim_ref );
+        refbuf = (hobj_ref_t*)HDmalloc( sizeof(hobj_ref_t) * (int)dim_ref );
 
         if ( H5Aread( aid, atid, refbuf ) < 0)
             goto out;
@@ -604,7 +640,7 @@ herr_t H5IMlink_palette( hid_t loc_id,
             goto out;
 
         /* Create a new reference for this palette. */
-        if ( H5Rcreate( &ref, loc_id, pal_name, H5R_OBJECT, -1 ) < 0)
+        if ( H5Rcreate( &ref, loc_id, pal_name, H5R_OBJECT, (hid_t)-1 ) < 0)
             goto out;
 
         refbuf[n_refs] = ref;
@@ -635,7 +671,7 @@ herr_t H5IMlink_palette( hid_t loc_id,
         if(H5Aclose(aid) < 0)
             goto out;
 
-        free( refbuf );
+        HDfree( refbuf );
 
     } /* ok_pal ==  1 */
 
@@ -685,6 +721,12 @@ herr_t H5IMunlink_palette( hid_t loc_id,
     H5T_class_t aclass;
     int         ok_pal, has_pal;
 
+    /* check the arguments */
+    if(image_name == NULL) 
+      return -1;
+    if(pal_name == NULL) 
+      return -1;
+
     /* Try to find the palette dataset */
     has_pal = H5LTfind_dataset( loc_id, pal_name );
 
@@ -780,6 +822,10 @@ herr_t H5IMget_npalettes( hid_t loc_id,
     H5T_class_t aclass;
     int         has_pal;
 
+    /* check the arguments */
+    if(image_name == NULL) 
+      return -1;
+
     /*assume initially we have no palettes attached*/
     *npals = 0;
 
@@ -875,6 +921,10 @@ herr_t H5IMget_palette_info( hid_t loc_id,
     hid_t      pal_space_id;
     hsize_t    pal_maxdims[2];
 
+    /* check the arguments */
+    if (image_name == NULL) 
+      return -1;
+
     /* Open the dataset. */
     if((did = H5Dopen2(loc_id, image_name, H5P_DEFAULT)) < 0)
         return -1;
@@ -901,7 +951,7 @@ herr_t H5IMget_palette_info( hid_t loc_id,
 
         dim_ref = n_refs;
 
-        refbuf = (hobj_ref_t*)malloc( sizeof(hobj_ref_t) * (int)dim_ref );
+        refbuf = (hobj_ref_t*)HDmalloc( sizeof(hobj_ref_t) * (int)dim_ref );
 
         if ( H5Aread( aid, atid, refbuf ) < 0)
             goto out;
@@ -930,7 +980,7 @@ herr_t H5IMget_palette_info( hid_t loc_id,
             goto out;
         if ( H5Aclose( aid ) < 0)
             goto out;
-        free( refbuf );
+        HDfree( refbuf );
 
 
     }
@@ -986,6 +1036,13 @@ herr_t H5IMget_palette( hid_t loc_id,
     hobj_ref_t *refbuf;     /* buffer to read references */
     hid_t      pal_id;
 
+    /* check the arguments */
+    if (image_name == NULL) 
+      return -1;
+    if (pal_data == NULL) 
+      return -1;
+
+
     /* Open the dataset. */
     if((did = H5Dopen2(loc_id, image_name, H5P_DEFAULT)) < 0)
         return -1;
@@ -1012,7 +1069,7 @@ herr_t H5IMget_palette( hid_t loc_id,
 
         dim_ref = n_refs;
 
-        refbuf = (hobj_ref_t*)malloc( sizeof(hobj_ref_t) * (int)dim_ref );
+        refbuf = (hobj_ref_t*)HDmalloc( sizeof(hobj_ref_t) * (int)dim_ref );
 
         if ( H5Aread( aid, atid, refbuf ) < 0)
             goto out;
@@ -1034,7 +1091,7 @@ herr_t H5IMget_palette( hid_t loc_id,
             goto out;
         if ( H5Aclose( aid ) < 0)
             goto out;
-        free( refbuf );
+        HDfree( refbuf );
     }
 
     /* Close the image dataset. */
@@ -1078,10 +1135,15 @@ herr_t H5IMis_image( hid_t loc_id,
     hid_t      did;
     int        has_class;
     hid_t      atid;
-    hid_t      aid;
-    char       attr_data[20];
+    hid_t      aid = -1;
+    char*      attr_data;    /* Name of attribute */
+    hsize_t    storage_size; /* Size of storage for attribute */
     herr_t     ret;
 
+    /* check the arguments */
+    if (dset_name == NULL) 
+      return -1;
+
     /* Assume initially fail condition */
     ret = -1;
 
@@ -1106,17 +1168,32 @@ herr_t H5IMis_image( hid_t loc_id,
         if((atid = H5Aget_type(aid)) < 0)
             goto out;
 
-        if(H5Tget_class(atid) < 0)
-            goto out;
+	/* check to make sure attribute is a string */
+	if(H5T_STRING != H5Tget_class(atid))
+	    goto out;
+
+	/* check to make sure string is null-terminated */
+	if(H5T_STR_NULLTERM != H5Tget_strpad(atid))
+	    goto out;
+
+	/* allocate buffer large enough to hold string */
+	if((storage_size = H5Aget_storage_size(aid)) == 0)
+	    goto out;
+
+	attr_data = (char*)HDmalloc( (size_t)storage_size * sizeof(char) + 1);
+	if(attr_data == NULL)
+	    goto out;
 
         if(H5Aread(aid, atid, attr_data) < 0)
             goto out;
 
-        if(strcmp(attr_data, IMAGE_CLASS) == 0)
+        if(HDstrncmp(attr_data, IMAGE_CLASS, MIN(HDstrlen(IMAGE_CLASS),HDstrlen(attr_data))) == 0)
             ret = 1;
         else
             ret = 0;
 
+	HDfree(attr_data);
+
         if ( H5Tclose( atid ) < 0)
             goto out;
 
@@ -1163,10 +1240,15 @@ herr_t H5IMis_palette( hid_t loc_id,
     hid_t      did;
     int        has_class;
     hid_t      atid;
-    hid_t      aid;
-    char       attr_data[20];
+    hid_t      aid = -1;
+    char*      attr_data;    /* Name of attribute */
+    hsize_t    storage_size; /* Size of storage for attribute */
     herr_t     ret;
 
+    /* check the arguments */
+    if (dset_name == NULL) 
+      return -1;
+
     /* Assume initially fail condition */
     ret = -1;
 
@@ -1191,17 +1273,32 @@ herr_t H5IMis_palette( hid_t loc_id,
         if((atid = H5Aget_type(aid)) < 0)
             goto out;
 
-        if(H5Tget_class(atid) < 0)
-            goto out;
+	/* check to make sure attribute is a string */
+	if(H5T_STRING != H5Tget_class(atid))
+	    goto out;
+
+	/* check to make sure string is null-terminated */
+	if(H5T_STR_NULLTERM != H5Tget_strpad(atid))
+	    goto out;
+
+	/* allocate buffer large enough to hold string */
+	if((storage_size = H5Aget_storage_size(aid)) == 0)
+	    goto out;
+
+	attr_data = (char*)HDmalloc( (size_t)storage_size * sizeof(char) + 1);
+	if(attr_data == NULL)
+	    goto out;
 
         if(H5Aread(aid, atid, attr_data) < 0)
             goto out;
 
-        if(strcmp(attr_data, PALETTE_CLASS) == 0)
+        if(HDstrncmp(attr_data, PALETTE_CLASS, MIN(HDstrlen(PALETTE_CLASS),HDstrlen(attr_data))) == 0)
             ret = 1;
         else
             ret = 0;
 
+	HDfree(attr_data);
+
         if ( H5Tclose( atid ) < 0)
             goto out;
 
diff --git a/hl/src/H5LT.c b/hl/src/H5LT.c
index 6da097c..071b8a5 100644
--- a/hl/src/H5LT.c
+++ b/hl/src/H5LT.c
@@ -524,6 +524,10 @@ H5LT_make_dataset_numerical( hid_t loc_id,
 {
     hid_t   did = -1, sid = -1;
 
+    /* check the arguments */
+    if (dset_name == NULL) 
+      return -1;
+
     /* Create the data space for the dataset. */
     if((sid = H5Screate_simple(rank, dims, NULL)) < 0)
         return -1;
@@ -799,6 +803,10 @@ herr_t H5LTmake_dataset_string(hid_t loc_id,
     hid_t   tid = -1;
     size_t  size;
 
+    /* check the arguments */
+    if (dset_name == NULL) 
+      return -1;
+
     /* create a string data type */
     if((tid = H5Tcopy(H5T_C_S1)) < 0 )
         goto out;
@@ -977,6 +985,10 @@ H5LT_read_dataset_numerical(hid_t loc_id, const char *dset_name, hid_t tid, void
 {
     hid_t   did;
 
+    /* check the arguments */
+    if (dset_name == NULL) 
+      return -1;
+
     /* Open the dataset. */
     if((did = H5Dopen2(loc_id, dset_name, H5P_DEFAULT)) < 0)
         return -1;
@@ -1168,6 +1180,10 @@ herr_t H5LTread_dataset_string( hid_t loc_id,
     hid_t   did = -1;
     hid_t   tid = -1;
 
+    /* check the arguments */
+    if (dset_name == NULL) 
+      return -1;
+
     /* Open the dataset. */
     if((did = H5Dopen2(loc_id, dset_name, H5P_DEFAULT)) < 0)
         return -1;
@@ -1217,6 +1233,10 @@ herr_t H5LTget_dataset_ndims( hid_t loc_id,
     hid_t       did = -1;
     hid_t       sid = -1;
 
+    /* check the arguments */
+    if (dset_name == NULL) 
+      return -1;
+
     /* Open the dataset. */
     if((did = H5Dopen2(loc_id, dset_name, H5P_DEFAULT)) < 0)
         return -1;
@@ -1273,6 +1293,10 @@ herr_t H5LTget_dataset_info( hid_t loc_id,
     hid_t       tid = -1;
     hid_t       sid = -1;
 
+    /* check the arguments */
+    if (dset_name == NULL) 
+      return -1;
+
     /* open the dataset. */
     if((did = H5Dopen2(loc_id, dset_name, H5P_DEFAULT)) < 0)
         return -1;
@@ -1346,6 +1370,10 @@ find_dataset(hid_t loc_id, const char *name, const H5L_info_t *linfo, void *op_d
     */
     int ret = 0;
 
+    /* check the arguments */
+    if (name == NULL) 
+      return ret;
+    
     /* Shut the compiler up */
     loc_id = loc_id;
     linfo = linfo;
@@ -1354,7 +1382,7 @@ find_dataset(hid_t loc_id, const char *name, const H5L_info_t *linfo, void *op_d
     * cause the iterator to immediately return that positive value,
     * indicating short-circuit success
     */
-    if(HDstrcmp(name, (char *)op_data) == 0)
+    if(HDstrncmp(name, (char *)op_data, HDstrlen((char *)op_data)) == 0)
         ret = 1;
 
     return ret;
@@ -1429,6 +1457,14 @@ herr_t H5LTset_attribute_string( hid_t loc_id,
     int        has_attr;
     size_t     attr_size;
 
+    /* check the arguments */
+    if (obj_name == NULL) 
+      return -1;
+    if (attr_name == NULL) 
+      return -1;
+    if (attr_data == NULL) 
+      return -1;
+
     /* Open the object */
     if ((obj_id = H5Oopen(loc_id, obj_name, H5P_DEFAULT)) < 0)
         return -1;
@@ -1518,6 +1554,12 @@ herr_t H5LT_set_attribute_numerical( hid_t loc_id,
     hsize_t    dim_size=size;
     int        has_attr;
 
+    /* check the arguments */
+    if (obj_name == NULL) 
+      return -1;
+    if (attr_name == NULL) 
+      return -1;
+
     /* Open the object */
     if ((obj_id = H5Oopen(loc_id, obj_name, H5P_DEFAULT)) < 0)
         return -1;
@@ -1929,6 +1971,10 @@ find_attr(hid_t loc_id, const char *name, const H5A_info_t *ainfo,
 {
     int ret = H5_ITER_CONT;
 
+    /* check the arguments */
+    if (name == NULL) 
+      return H5_ITER_CONT;
+
     /* Shut compiler up */
     loc_id = loc_id; ainfo = ainfo;
 
@@ -1936,7 +1982,7 @@ find_attr(hid_t loc_id, const char *name, const H5A_info_t *ainfo,
     * cause the iterator to immediately return that positive value,
     * indicating short-circuit success
     */
-    if(HDstrcmp(name, (char *)op_data) == 0)
+    if(HDstrncmp(name, (char *)op_data, HDstrlen((char *)op_data)) == 0)
         ret = H5_ITER_STOP;
 
     return ret;
@@ -2021,6 +2067,12 @@ herr_t H5LTget_attribute_ndims( hid_t loc_id,
     hid_t       sid;
     hid_t       obj_id;
 
+    /* check the arguments */
+    if (obj_name == NULL) 
+      return -1;
+    if (attr_name == NULL) 
+      return -1;
+
     /* Open the object */
     if((obj_id = H5Oopen(loc_id, obj_name, H5P_DEFAULT)) < 0)
         return -1;
@@ -2088,6 +2140,12 @@ herr_t H5LTget_attribute_info( hid_t loc_id,
     hid_t       sid;
     hid_t       obj_id;
 
+    /* check the arguments */
+    if (obj_name == NULL) 
+      return -1;
+    if (attr_name == NULL) 
+      return -1;
+
     /* Open the object */
     if((obj_id = H5Oopen(loc_id, obj_name, H5P_DEFAULT)) < 0)
         return -1;
@@ -2163,6 +2221,10 @@ hid_t H5LTtext_to_dtype(const char *text, H5LT_lang_t lang_type)
 {
     hid_t   type_id;
 
+    /* check the arguments */
+    if (text == NULL) 
+      return -1;
+
     if(lang_type <= H5LT_LANG_ERR || lang_type >= H5LT_NO_LANG)
         goto out;
 
@@ -2206,6 +2268,8 @@ out:
 static char* 
 realloc_and_append(hbool_t _no_user_buf, size_t *len, char *buf, char *str_to_add)
 {
+    size_t size_str_to_add, size_str;
+
     if(_no_user_buf) {
         /* If the buffer isn't big enough, reallocate it.  Otherwise, go to do strcat. */
         if(str_to_add && ((ssize_t)(*len - (HDstrlen(buf) + HDstrlen(str_to_add) + 1)) < LIMIT)) {
@@ -2220,8 +2284,25 @@ realloc_and_append(hbool_t _no_user_buf, size_t *len, char *buf, char *str_to_ad
     if(!buf)
         goto out;
 
-    if(str_to_add)
-        HDstrcat(buf, str_to_add);
+    if(str_to_add) {
+      /* find the size of the buffer to add */
+      size_str_to_add = HDstrlen(str_to_add);
+      /* find the size of the current buffer */
+      size_str = HDstrlen(buf);
+
+      /* Check to make sure the appended string does not 
+       * extend past the allocated buffer; if it does then truncate the string
+       */
+      if(size_str < *len - 1) {
+	if( size_str + size_str_to_add < *len - 1) {
+	  HDstrncat(buf, str_to_add, size_str_to_add);
+	} else {
+	  HDstrncat(buf, str_to_add, (*len - 1) - size_str);
+	}
+      } else {
+	buf[*len-1] = '\0'; /* buffer is full, null terminate */
+      }
+    }
 
     return buf;
 
@@ -3020,6 +3101,12 @@ herr_t H5LTget_attribute_string( hid_t loc_id,
     /* identifiers */
     hid_t      obj_id;
 
+    /* check the arguments */
+    if (obj_name == NULL) 
+      return -1;
+    if (attr_name == NULL) 
+      return -1;
+
     /* Open the object */
     if ((obj_id = H5Oopen( loc_id, obj_name, H5P_DEFAULT)) < 0)
         return -1;
@@ -3440,6 +3527,12 @@ static herr_t H5LT_get_attribute_mem(hid_t loc_id,
     hid_t obj_id = -1;
     hid_t attr_id = -1;
 
+    /* check the arguments */
+    if (obj_name == NULL) 
+      return -1;
+    if (attr_name == NULL) 
+      return -1;
+
     /* Open the object */
     if((obj_id = H5Oopen(loc_id, obj_name, H5P_DEFAULT)) < 0)
         goto out;
@@ -3619,6 +3712,12 @@ H5LTpath_valid(hid_t loc_id, const char *path, hbool_t check_object_valid)
      /* Initialize */
      ret_value = FALSE;
 
+     /* check the arguments */
+     if (path == NULL) {
+       ret_value = FAIL;
+       goto done;
+     }
+
      /* Find the type of loc_id */
      if((obj_type = H5Iget_type(loc_id)) == H5I_BADID) {
        ret_value = FAIL;
diff --git a/hl/src/H5LTanalyze.c b/hl/src/H5LTanalyze.c
index 31ec84f..d9ffb36 100644
--- a/hl/src/H5LTanalyze.c
+++ b/hl/src/H5LTanalyze.c
@@ -1,31 +1,13 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * Copyright by The HDF Group.                                               *
- * Copyright by the Board of Trustees of the University of Illinois.         *
- * All rights reserved.                                                      *
- *                                                                           *
- * This file is part of HDF5.  The full HDF5 copyright notice, including     *
- * terms governing use, modification, and redistribution, is contained in    *
- * the files COPYING and Copyright.html.  COPYING can be found at the root   *
- * of the source code distribution tree; Copyright.html can be found at the  *
- * root level of an installed copy of the electronic HDF5 document set and   *
- * is linked from the top-level documents page.  It can also be found at     *
- * http://hdfgroup.org/HDF5/doc/Copyright.html.  If you do not have          *
- * access to either file, you may request a copy from help at hdfgroup.org.     *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+#line 2 "H5LTanalyze.c"
 
-/*
- * This file was generated by Lex with the command "lex -PH5LTyy
- * -oH5LTanalyze.c H5LTanalyze.l".  Do NOT modify it by hand, but in
- * line 52, "#ifdef H5_HAVE_UNISTD_H" should be added if the platform
- * doesn't have the unistd.h header file. Also hdf5.h should be added
- * before adding H5_HAVE_UNISTD_H.
- */
+#line 4 "H5LTanalyze.c"
+
+#define  YY_INT_ALIGNED short int
+
+/* A lexical scanner generated by flex */
 
 #define yy_create_buffer H5LTyy_create_buffer
 #define yy_delete_buffer H5LTyy_delete_buffer
-#define yy_scan_buffer H5LTyy_scan_buffer
-#define yy_scan_string H5LTyy_scan_string
-#define yy_scan_bytes H5LTyy_scan_bytes
 #define yy_flex_debug H5LTyy_flex_debug
 #define yy_init_buffer H5LTyy_init_buffer
 #define yy_flush_buffer H5LTyy_flush_buffer
@@ -34,78 +16,118 @@
 #define yyin H5LTyyin
 #define yyleng H5LTyyleng
 #define yylex H5LTyylex
+#define yylineno H5LTyylineno
 #define yyout H5LTyyout
 #define yyrestart H5LTyyrestart
 #define yytext H5LTyytext
 #define yywrap H5LTyywrap
-
-#line 43 "H5LTanalyze.c"
-/* A lexical scanner generated by flex*/
-
-/* Scanner skeleton version:
- * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $
- */
+#define yyalloc H5LTyyalloc
+#define yyrealloc H5LTyyrealloc
+#define yyfree H5LTyyfree
 
 #define FLEX_SCANNER
 #define YY_FLEX_MAJOR_VERSION 2
 #define YY_FLEX_MINOR_VERSION 5
+#define YY_FLEX_SUBMINOR_VERSION 37
+#if YY_FLEX_SUBMINOR_VERSION > 0
+#define FLEX_BETA
+#endif
 
+/* First, we deal with  platform-specific or compiler-specific issues. */
+
+/* begin standard C headers. */
 #include <stdio.h>
-#include <hdf5.h>
-#ifdef H5_HAVE_UNISTD_H
-#include <unistd.h>
-#endif 
-
-/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
-#ifdef c_plusplus
-#ifndef __cplusplus
-#define __cplusplus
-#endif
+#include <string.h>
+#include <errno.h>
+#include <stdlib.h>
+
+/* end standard C headers. */
+
+/* flex integer type definitions */
+
+#ifndef FLEXINT_H
+#define FLEXINT_H
+
+/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
+
+#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+
+/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
+ * if you want the limit (max/min) macros for int types. 
+ */
+#ifndef __STDC_LIMIT_MACROS
+#define __STDC_LIMIT_MACROS 1
 #endif
 
+#include <inttypes.h>
+typedef int8_t flex_int8_t;
+typedef uint8_t flex_uint8_t;
+typedef int16_t flex_int16_t;
+typedef uint16_t flex_uint16_t;
+typedef int32_t flex_int32_t;
+typedef uint32_t flex_uint32_t;
+#else
+typedef signed char flex_int8_t;
+typedef short int flex_int16_t;
+typedef int flex_int32_t;
+typedef unsigned char flex_uint8_t; 
+typedef unsigned short int flex_uint16_t;
+typedef unsigned int flex_uint32_t;
 
-#ifdef __cplusplus
+/* Limits of integral types. */
+#ifndef INT8_MIN
+#define INT8_MIN               (-128)
+#endif
+#ifndef INT16_MIN
+#define INT16_MIN              (-32767-1)
+#endif
+#ifndef INT32_MIN
+#define INT32_MIN              (-2147483647-1)
+#endif
+#ifndef INT8_MAX
+#define INT8_MAX               (127)
+#endif
+#ifndef INT16_MAX
+#define INT16_MAX              (32767)
+#endif
+#ifndef INT32_MAX
+#define INT32_MAX              (2147483647)
+#endif
+#ifndef UINT8_MAX
+#define UINT8_MAX              (255U)
+#endif
+#ifndef UINT16_MAX
+#define UINT16_MAX             (65535U)
+#endif
+#ifndef UINT32_MAX
+#define UINT32_MAX             (4294967295U)
+#endif
 
-#include <stdlib.h>
+#endif /* ! C99 */
 
-/* Use prototypes in function declarations. */
-#define YY_USE_PROTOS
+#endif /* ! FLEXINT_H */
+
+#ifdef __cplusplus
 
 /* The "const" storage-class-modifier is valid. */
 #define YY_USE_CONST
 
 #else	/* ! __cplusplus */
 
-#if __STDC__
+/* C99 requires __STDC__ to be defined as 1. */
+#if defined (__STDC__)
 
-#define YY_USE_PROTOS
 #define YY_USE_CONST
 
-#endif	/* __STDC__ */
+#endif	/* defined (__STDC__) */
 #endif	/* ! __cplusplus */
 
-#ifdef __TURBOC__
- #pragma warn -rch
- #pragma warn -use
-#include <io.h>
-#include <stdlib.h>
-#define YY_USE_CONST
-#define YY_USE_PROTOS
-#endif
-
 #ifdef YY_USE_CONST
 #define yyconst const
 #else
 #define yyconst
 #endif
 
-
-#ifdef YY_USE_PROTOS
-#define YY_PROTO(proto) proto
-#else
-#define YY_PROTO(proto) ()
-#endif
-
 /* Returned upon end-of-file. */
 #define YY_NULL 0
 
@@ -120,80 +142,70 @@
  * but we do it the disgusting crufty way forced on us by the ()-less
  * definition of BEGIN.
  */
-#define BEGIN yy_start = 1 + 2 *
+#define BEGIN (yy_start) = 1 + 2 *
 
 /* Translate the current start state into a value that can be later handed
  * to BEGIN to return to the state.  The YYSTATE alias is for lex
  * compatibility.
  */
-#define YY_START ((yy_start - 1) / 2)
+#define YY_START (((yy_start) - 1) / 2)
 #define YYSTATE YY_START
 
 /* Action number for EOF rule of a given start state. */
 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
 
 /* Special action meaning "start processing a new file". */
-#define YY_NEW_FILE yyrestart( yyin )
+#define YY_NEW_FILE H5LTyyrestart(H5LTyyin  )
 
 #define YY_END_OF_BUFFER_CHAR 0
 
 /* Size of default input buffer. */
+#ifndef YY_BUF_SIZE
 #define YY_BUF_SIZE 16384
+#endif
+
+/* The state buf must be large enough to hold one state per character in the main buffer.
+ */
+#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
 
+#ifndef YY_TYPEDEF_YY_BUFFER_STATE
+#define YY_TYPEDEF_YY_BUFFER_STATE
 typedef struct yy_buffer_state *YY_BUFFER_STATE;
+#endif
 
-extern int yyleng;
-extern FILE *yyin, *yyout;
+#ifndef YY_TYPEDEF_YY_SIZE_T
+#define YY_TYPEDEF_YY_SIZE_T
+typedef size_t yy_size_t;
+#endif
+
+extern yy_size_t H5LTyyleng;
+
+extern FILE *H5LTyyin, *H5LTyyout;
 
 #define EOB_ACT_CONTINUE_SCAN 0
 #define EOB_ACT_END_OF_FILE 1
 #define EOB_ACT_LAST_MATCH 2
 
-/* The funky do-while in the following #define is used to turn the definition
- * int a single C statement (which needs a semi-colon terminator).  This
- * avoids problems with code like:
- *
- * 	if ( condition_holds )
- *		yyless( 5 );
- *	else
- *		do_something_else();
- *
- * Prior to using the do-while the compiler would get upset at the
- * "else" because it interpreted the "if" statement as being all
- * done when it reached the ';' after the yyless() call.
- */
-
-/* Return all but the first 'n' matched characters back to the input stream. */
-
+    #define YY_LESS_LINENO(n)
+    
+/* Return all but the first "n" matched characters back to the input stream. */
 #define yyless(n) \
 	do \
 		{ \
-		/* Undo effects of setting up yytext. */ \
-		*yy_cp = yy_hold_char; \
+		/* Undo effects of setting up H5LTyytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		*yy_cp = (yy_hold_char); \
 		YY_RESTORE_YY_MORE_OFFSET \
-		yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
-		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
+		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
+		YY_DO_BEFORE_ACTION; /* set up H5LTyytext again */ \
 		} \
 	while ( 0 )
 
-#define unput(c) yyunput( c, yytext_ptr )
-
-/* Some routines like yy_flex_realloc() are emitted as static but are
-   not called by all lexers. This generates warnings in some compilers,
-   notably GCC. Arrange to suppress these. */
-#ifdef __GNUC__
-#define YY_MAY_BE_UNUSED __attribute__((unused))
-#else
-#define YY_MAY_BE_UNUSED
-#endif
-
-/* The following is because we cannot portably get our hands on size_t
- * (without autoconf's help, which isn't available because we want
- * flex-generated scanners to compile on their own).
- */
-typedef unsigned int yy_size_t;
-
+#define unput(c) yyunput( c, (yytext_ptr)  )
 
+#ifndef YY_STRUCT_YY_BUFFER_STATE
+#define YY_STRUCT_YY_BUFFER_STATE
 struct yy_buffer_state
 	{
 	FILE *yy_input_file;
@@ -209,7 +221,7 @@ struct yy_buffer_state
 	/* Number of characters read into yy_ch_buf, not including EOB
 	 * characters.
 	 */
-	int yy_n_chars;
+	yy_size_t yy_n_chars;
 
 	/* Whether we "own" the buffer - i.e., we know we created it,
 	 * and can realloc() it to grow it, and should free() it to
@@ -230,12 +242,16 @@ struct yy_buffer_state
 	 */
 	int yy_at_bol;
 
+    int yy_bs_lineno; /**< The line count. */
+    int yy_bs_column; /**< The column count. */
+    
 	/* Whether to try to fill the input buffer when we reach the
 	 * end of it.
 	 */
 	int yy_fill_buffer;
 
 	int yy_buffer_status;
+
 #define YY_BUFFER_NEW 0
 #define YY_BUFFER_NORMAL 1
 	/* When an EOF's been seen but there's still some text to process
@@ -245,101 +261,135 @@ struct yy_buffer_state
 	 * possible backing-up.
 	 *
 	 * When we actually see the EOF, we change the status to "new"
-	 * (via yyrestart()), so that the user can continue scanning by
-	 * just pointing yyin at a new input file.
+	 * (via H5LTyyrestart()), so that the user can continue scanning by
+	 * just pointing H5LTyyin at a new input file.
 	 */
 #define YY_BUFFER_EOF_PENDING 2
+
 	};
+#endif /* !YY_STRUCT_YY_BUFFER_STATE */
 
-static YY_BUFFER_STATE yy_current_buffer = 0;
+/* Stack of input buffers. */
+static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
+static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
+static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
 
 /* We provide macros for accessing buffer states in case in the
  * future we want to put the buffer states in a more general
  * "scanner state".
+ *
+ * Returns the top of the stack, or NULL.
  */
-#define YY_CURRENT_BUFFER yy_current_buffer
+#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
+                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
+                          : NULL)
 
+/* Same as previous macro, but useful when we know that the buffer stack is not
+ * NULL or when we need an lvalue. For internal use only.
+ */
+#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
 
-/* yy_hold_char holds the character lost when yytext is formed. */
+/* yy_hold_char holds the character lost when H5LTyytext is formed. */
 static char yy_hold_char;
-
-static int yy_n_chars;		/* number of characters read into yy_ch_buf */
-
-
-int yyleng;
+static yy_size_t yy_n_chars;		/* number of characters read into yy_ch_buf */
+yy_size_t H5LTyyleng;
 
 /* Points to current character in buffer. */
 static char *yy_c_buf_p = (char *) 0;
-static int yy_init = 1;		/* whether we need to initialize */
+static int yy_init = 0;		/* whether we need to initialize */
 static int yy_start = 0;	/* start state number */
 
-/* Flag which is used to allow yywrap()'s to do buffer switches
- * instead of setting up a fresh yyin.  A bit of a hack ...
+/* Flag which is used to allow H5LTyywrap()'s to do buffer switches
+ * instead of setting up a fresh H5LTyyin.  A bit of a hack ...
  */
 static int yy_did_buffer_switch_on_eof;
 
-void yyrestart YY_PROTO(( FILE *input_file ));
+void H5LTyyrestart (FILE *input_file  );
+void H5LTyy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
+YY_BUFFER_STATE H5LTyy_create_buffer (FILE *file,int size  );
+void H5LTyy_delete_buffer (YY_BUFFER_STATE b  );
+void H5LTyy_flush_buffer (YY_BUFFER_STATE b  );
+void H5LTyypush_buffer_state (YY_BUFFER_STATE new_buffer  );
+void H5LTyypop_buffer_state (void );
+
+static void H5LTyyensure_buffer_stack (void );
+static void H5LTyy_load_buffer_state (void );
+static void H5LTyy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
 
-void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
-void yy_load_buffer_state YY_PROTO(( void ));
-YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
-void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
-void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
-void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
-#define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
+#define YY_FLUSH_BUFFER H5LTyy_flush_buffer(YY_CURRENT_BUFFER )
 
-YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
-YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
-YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
+YY_BUFFER_STATE H5LTyy_scan_buffer (char *base,yy_size_t size  );
+YY_BUFFER_STATE H5LTyy_scan_string (yyconst char *yy_str  );
+YY_BUFFER_STATE H5LTyy_scan_bytes (yyconst char *bytes,yy_size_t len  );
 
-static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
-static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t )) YY_MAY_BE_UNUSED;
-static void yy_flex_free YY_PROTO(( void * ));
+void *H5LTyyalloc (yy_size_t  );
+void *H5LTyyrealloc (void *,yy_size_t  );
+void H5LTyyfree (void *  );
 
-#define yy_new_buffer yy_create_buffer
+#define yy_new_buffer H5LTyy_create_buffer
 
 #define yy_set_interactive(is_interactive) \
 	{ \
-	if ( ! yy_current_buffer ) \
-		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
-	yy_current_buffer->yy_is_interactive = is_interactive; \
+	if ( ! YY_CURRENT_BUFFER ){ \
+        H5LTyyensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            H5LTyy_create_buffer(H5LTyyin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
 	}
 
 #define yy_set_bol(at_bol) \
 	{ \
-	if ( ! yy_current_buffer ) \
-		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
-	yy_current_buffer->yy_at_bol = at_bol; \
+	if ( ! YY_CURRENT_BUFFER ){\
+        H5LTyyensure_buffer_stack (); \
+		YY_CURRENT_BUFFER_LVALUE =    \
+            H5LTyy_create_buffer(H5LTyyin,YY_BUF_SIZE ); \
+	} \
+	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
 	}
 
-#define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
+#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
 
+/* Begin user sect3 */
 
-#define YY_USES_REJECT
 typedef unsigned char YY_CHAR;
-FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
+
+FILE *H5LTyyin = (FILE *) 0, *H5LTyyout = (FILE *) 0;
+
 typedef int yy_state_type;
-extern char *yytext;
-#define yytext_ptr yytext
 
-static yy_state_type yy_get_previous_state YY_PROTO(( void ));
-static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
-static int yy_get_next_buffer YY_PROTO(( void ));
-static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
+extern int H5LTyylineno;
+
+int H5LTyylineno = 1;
+
+extern char *H5LTyytext;
+#define yytext_ptr H5LTyytext
+
+static yy_state_type yy_get_previous_state (void );
+static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
+static int yy_get_next_buffer (void );
+static void yy_fatal_error (yyconst char msg[]  );
 
 /* Done after the current pattern has been matched and before the
- * corresponding action - sets up yytext.
+ * corresponding action - sets up H5LTyytext.
  */
 #define YY_DO_BEFORE_ACTION \
-	yytext_ptr = yy_bp; \
-	yyleng = (int) (yy_cp - yy_bp); \
-	yy_hold_char = *yy_cp; \
+	(yytext_ptr) = yy_bp; \
+	H5LTyyleng = (size_t) (yy_cp - yy_bp); \
+	(yy_hold_char) = *yy_cp; \
 	*yy_cp = '\0'; \
-	yy_c_buf_p = yy_cp;
+	(yy_c_buf_p) = yy_cp;
 
 #define YY_NUM_RULES 66
 #define YY_END_OF_BUFFER 67
-static yyconst short int yy_acclist[437] =
+/* This struct is not used in this scanner,
+   but its presence is necessary. */
+struct yy_trans_info
+	{
+	flex_int32_t yy_verify;
+	flex_int32_t yy_nxt;
+	};
+static yyconst flex_int16_t yy_acclist[437] =
     {   0,
        64,   64,   64,   64,   67,   66,   64,   66,   64,   65,
        66,   56,   66,   55,   66,   62,   66,   63,   66,   66,
@@ -391,7 +441,7 @@ static yyconst short int yy_acclist[437] =
        57,   21,   57,   34,   34,   57
     } ;
 
-static yyconst short int yy_accept[546] =
+static yyconst flex_int16_t yy_accept[546] =
     {   0,
         1,    2,    3,    4,    5,    6,    7,    9,   12,   14,
        16,   18,   20,   21,   22,   23,   24,   26,   28,   30,
@@ -455,7 +505,7 @@ static yyconst short int yy_accept[546] =
       432,  434,  435,  437,  437
     } ;
 
-static yyconst int yy_ec[256] =
+static yyconst flex_int32_t yy_ec[256] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -487,7 +537,7 @@ static yyconst int yy_ec[256] =
         1,    1,    1,    1,    1
     } ;
 
-static yyconst int yy_meta[42] =
+static yyconst flex_int32_t yy_meta[42] =
     {   0,
         1,    1,    1,    2,    3,    3,    3,    3,    3,    3,
         3,    3,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -496,7 +546,7 @@ static yyconst int yy_meta[42] =
         1
     } ;
 
-static yyconst short int yy_base[547] =
+static yyconst flex_int16_t yy_base[547] =
     {   0,
         0,    0,   41,    0,  610,  611,   81,   83,  611,    0,
       611,  611,   56,  599,  580,  575,  611,  611,  611,  611,
@@ -560,7 +610,7 @@ static yyconst short int yy_base[547] =
         0,  611,    0,  611,  106,  275
     } ;
 
-static yyconst short int yy_def[547] =
+static yyconst flex_int16_t yy_def[547] =
     {   0,
       544,    1,  544,    3,  544,  544,  544,  544,  544,  545,
       544,  544,  544,  544,  544,  544,  544,  544,  544,  544,
@@ -624,7 +674,7 @@ static yyconst short int yy_def[547] =
       546,  544,  546,    0,  544,  544
     } ;
 
-static yyconst short int yy_nxt[653] =
+static yyconst flex_int16_t yy_nxt[653] =
     {   0,
         6,    7,    8,    9,   10,   10,   10,   10,   10,   10,
        10,   10,   11,   12,    6,    6,   13,    6,    6,    6,
@@ -700,7 +750,7 @@ static yyconst short int yy_nxt[653] =
       544,  544
     } ;
 
-static yyconst short int yy_chk[653] =
+static yyconst flex_int16_t yy_chk[653] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -776,22 +826,25 @@ static yyconst short int yy_chk[653] =
       544,  544
     } ;
 
-static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr;
+extern int H5LTyy_flex_debug;
+int H5LTyy_flex_debug = 0;
+
+static yy_state_type *yy_state_buf=0, *yy_state_ptr=0;
 static char *yy_full_match;
 static int yy_lp;
 #define REJECT \
 { \
-*yy_cp = yy_hold_char; /* undo effects of setting up yytext */ \
-yy_cp = yy_full_match; /* restore poss. backed-over text */ \
-++yy_lp; \
+*yy_cp = (yy_hold_char); /* undo effects of setting up H5LTyytext */ \
+yy_cp = (yy_full_match); /* restore poss. backed-over text */ \
+++(yy_lp); \
 goto find_rule; \
 }
+
 #define yymore() yymore_used_but_not_detected
 #define YY_MORE_ADJ 0
 #define YY_RESTORE_YY_MORE_OFFSET
-char *yytext;
+char *H5LTyytext;
 #line 1 "H5LTanalyze.l"
-#define INITIAL 0
 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  * Copyright by The HDF Group.                                               *
  * Copyright by the Board of Trustees of the University of Illinois.         *
@@ -816,6 +869,7 @@ int my_yyinput(char *, int);
 #undef YY_INPUT
 #define YY_INPUT(b, r, ms) (r=my_yyinput(b, ms))
 #define token(x)        (int)x
+#define hid(x)          (hid_t)x
 
 #ifdef  YY_BUF_SIZE
 #undef  YY_BUF_SIZE
@@ -858,9 +912,46 @@ extern hbool_t is_opq_tag;
 
 hbool_t        first_quote = 1;
 
+
+#line 917 "H5LTanalyze.c"
+
+#define INITIAL 0
 #define TAG_STRING 1
 
-#line 864 "H5LTanalyze.c"
+#ifndef YY_EXTRA_TYPE
+#define YY_EXTRA_TYPE void *
+#endif
+
+static int yy_init_globals (void );
+
+/* Accessor methods to globals.
+   These are made visible to non-reentrant scanners for convenience. */
+
+int H5LTyylex_destroy (void );
+
+int H5LTyyget_debug (void );
+
+void H5LTyyset_debug (int debug_flag  );
+
+YY_EXTRA_TYPE H5LTyyget_extra (void );
+
+void H5LTyyset_extra (YY_EXTRA_TYPE user_defined  );
+
+FILE *H5LTyyget_in (void );
+
+void H5LTyyset_in  (FILE * in_str  );
+
+FILE *H5LTyyget_out (void );
+
+void H5LTyyset_out  (FILE * out_str  );
+
+yy_size_t H5LTyyget_leng (void );
+
+char *H5LTyyget_text (void );
+
+int H5LTyyget_lineno (void );
+
+void H5LTyyset_lineno (int line_number  );
 
 /* Macros after this point can all be overridden by user definitions in
  * section 1.
@@ -868,65 +959,30 @@ hbool_t        first_quote = 1;
 
 #ifndef YY_SKIP_YYWRAP
 #ifdef __cplusplus
-extern "C" int yywrap YY_PROTO(( void ));
+extern "C" int H5LTyywrap (void );
 #else
-extern int yywrap YY_PROTO(( void ));
-#endif
+extern int H5LTyywrap (void );
 #endif
-
-#ifndef YY_NO_UNPUT
-static void yyunput YY_PROTO(( int c, char *buf_ptr ));
 #endif
 
+    static void yyunput (int c,char *buf_ptr  );
+    
 #ifndef yytext_ptr
-static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
+static void yy_flex_strncpy (char *,yyconst char *,int );
 #endif
 
 #ifdef YY_NEED_STRLEN
-static int yy_flex_strlen YY_PROTO(( yyconst char * ));
+static int yy_flex_strlen (yyconst char * );
 #endif
 
 #ifndef YY_NO_INPUT
-#ifdef __cplusplus
-static int yyinput YY_PROTO(( void ));
-#else
-static int input YY_PROTO(( void ));
-#endif
-#endif
-
-#if YY_STACK_USED
-static int yy_start_stack_ptr = 0;
-static int yy_start_stack_depth = 0;
-static int *yy_start_stack = 0;
-#ifndef YY_NO_PUSH_STATE
-static void yy_push_state YY_PROTO(( int new_state ));
-#endif
-#ifndef YY_NO_POP_STATE
-static void yy_pop_state YY_PROTO(( void ));
-#endif
-#ifndef YY_NO_TOP_STATE
-static int yy_top_state YY_PROTO(( void ));
-#endif
 
+#ifdef __cplusplus
+static int yyinput (void );
 #else
-#define YY_NO_PUSH_STATE 1
-#define YY_NO_POP_STATE 1
-#define YY_NO_TOP_STATE 1
+static int input (void );
 #endif
 
-#ifdef YY_MALLOC_DECL
-YY_MALLOC_DECL
-#else
-#if __STDC__
-#ifndef __cplusplus
-#include <stdlib.h>
-#endif
-#else
-/* Just try to get by without declaring the routines.  This will fail
- * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
- * or sizeof(void*) != sizeof(int).
- */
-#endif
 #endif
 
 /* Amount of stuff to slurp up with each read. */
@@ -935,12 +991,11 @@ YY_MALLOC_DECL
 #endif
 
 /* Copy whatever the last rule matched to the standard output. */
-
 #ifndef ECHO
 /* This used to be an fputs(), but since the string might contain NUL's,
  * we now use fwrite().
  */
-#define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
+#define ECHO do { if (fwrite( H5LTyytext, H5LTyyleng, 1, H5LTyyout )) {} } while (0)
 #endif
 
 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
@@ -948,21 +1003,35 @@ YY_MALLOC_DECL
  */
 #ifndef YY_INPUT
 #define YY_INPUT(buf,result,max_size) \
-	if ( yy_current_buffer->yy_is_interactive ) \
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
 		{ \
-		int c = '*', n; \
+		int c = '*'; \
+		size_t n; \
 		for ( n = 0; n < max_size && \
-			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
+			     (c = getc( H5LTyyin )) != EOF && c != '\n'; ++n ) \
 			buf[n] = (char) c; \
 		if ( c == '\n' ) \
 			buf[n++] = (char) c; \
-		if ( c == EOF && ferror( yyin ) ) \
+		if ( c == EOF && ferror( H5LTyyin ) ) \
 			YY_FATAL_ERROR( "input in flex scanner failed" ); \
 		result = n; \
 		} \
-	else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
-		  && ferror( yyin ) ) \
-		YY_FATAL_ERROR( "input in flex scanner failed" );
+	else \
+		{ \
+		errno=0; \
+		while ( (result = fread(buf, 1, max_size, H5LTyyin))==0 && ferror(H5LTyyin)) \
+			{ \
+			if( errno != EINTR) \
+				{ \
+				YY_FATAL_ERROR( "input in flex scanner failed" ); \
+				break; \
+				} \
+			errno=0; \
+			clearerr(H5LTyyin); \
+			} \
+		}\
+\
+
 #endif
 
 /* No semi-colon after return; correct usage is to write "yyterminate();" -
@@ -983,14 +1052,20 @@ YY_MALLOC_DECL
 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
 #endif
 
+/* end tables serialization structures and prototypes */
+
 /* Default declaration of generated scanner - a define so the user can
  * easily add parameters.
  */
 #ifndef YY_DECL
-#define YY_DECL int yylex YY_PROTO(( void ))
-#endif
+#define YY_DECL_IS_OURS 1
 
-/* Code executed at the beginning of each rule, after yytext and yyleng
+extern int H5LTyylex (void);
+
+#define YY_DECL int H5LTyylex (void)
+#endif /* !YY_DECL */
+
+/* Code executed at the beginning of each rule, after H5LTyytext and H5LTyyleng
  * have been set up.
  */
 #ifndef YY_USER_ACTION
@@ -1005,56 +1080,68 @@ YY_MALLOC_DECL
 #define YY_RULE_SETUP \
 	YY_USER_ACTION
 
+/** The main scanner function which does all the work.
+ */
 YY_DECL
-	{
+{
 	register yy_state_type yy_current_state;
-	register char *yy_cp = NULL, *yy_bp = NULL;
+	register char *yy_cp, *yy_bp;
 	register int yy_act;
-
-#line 72 "H5LTanalyze.l"
+    
+#line 73 "H5LTanalyze.l"
 
 
-#line 1018 "H5LTanalyze.c"
+#line 1095 "H5LTanalyze.c"
 
-	if ( yy_init )
+	if ( !(yy_init) )
 		{
-		yy_init = 0;
+		(yy_init) = 1;
 
 #ifdef YY_USER_INIT
 		YY_USER_INIT;
 #endif
 
-		if ( ! yy_start )
-			yy_start = 1;	/* first start state */
+        /* Create the reject buffer large enough to save one state per allowed character. */
+        if ( ! (yy_state_buf) )
+            (yy_state_buf) = (yy_state_type *)H5LTyyalloc(YY_STATE_BUF_SIZE  );
+            if ( ! (yy_state_buf) )
+                YY_FATAL_ERROR( "out of dynamic memory in H5LTyylex()" );
+
+		if ( ! (yy_start) )
+			(yy_start) = 1;	/* first start state */
 
-		if ( ! yyin )
-			yyin = stdin;
+		if ( ! H5LTyyin )
+			H5LTyyin = stdin;
 
-		if ( ! yyout )
-			yyout = stdout;
+		if ( ! H5LTyyout )
+			H5LTyyout = stdout;
 
-		if ( ! yy_current_buffer )
-			yy_current_buffer =
-				yy_create_buffer( yyin, YY_BUF_SIZE );
+		if ( ! YY_CURRENT_BUFFER ) {
+			H5LTyyensure_buffer_stack ();
+			YY_CURRENT_BUFFER_LVALUE =
+				H5LTyy_create_buffer(H5LTyyin,YY_BUF_SIZE );
+		}
 
-		yy_load_buffer_state();
+		H5LTyy_load_buffer_state( );
 		}
 
 	while ( 1 )		/* loops until end-of-file is reached */
 		{
-		yy_cp = yy_c_buf_p;
+		yy_cp = (yy_c_buf_p);
 
-		/* Support of yytext. */
-		*yy_cp = yy_hold_char;
+		/* Support of H5LTyytext. */
+		*yy_cp = (yy_hold_char);
 
 		/* yy_bp points to the position in yy_ch_buf of the start of
 		 * the current run.
 		 */
 		yy_bp = yy_cp;
 
-		yy_current_state = yy_start;
-		yy_state_ptr = yy_state_buf;
-		*yy_state_ptr++ = yy_current_state;
+		yy_current_state = (yy_start);
+
+		(yy_state_ptr) = (yy_state_buf);
+		*(yy_state_ptr)++ = yy_current_state;
+
 yy_match:
 		do
 			{
@@ -1066,316 +1153,314 @@ yy_match:
 					yy_c = yy_meta[(unsigned int) yy_c];
 				}
 			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-			*yy_state_ptr++ = yy_current_state;
+			*(yy_state_ptr)++ = yy_current_state;
 			++yy_cp;
 			}
 		while ( yy_base[yy_current_state] != 611 );
 
 yy_find_action:
-		yy_current_state = *--yy_state_ptr;
-		yy_lp = yy_accept[yy_current_state];
+		yy_current_state = *--(yy_state_ptr);
+		(yy_lp) = yy_accept[yy_current_state];
 find_rule: /* we branch to this label when backing up */
 		for ( ; ; ) /* until we find what rule we matched */
 			{
-			if ( yy_lp && yy_lp < yy_accept[yy_current_state + 1] )
+			if ( (yy_lp) && (yy_lp) < yy_accept[yy_current_state + 1] )
 				{
-				yy_act = yy_acclist[yy_lp];
+				yy_act = yy_acclist[(yy_lp)];
 					{
-					yy_full_match = yy_cp;
+					(yy_full_match) = yy_cp;
 					break;
 					}
 				}
 			--yy_cp;
-			yy_current_state = *--yy_state_ptr;
-			yy_lp = yy_accept[yy_current_state];
+			yy_current_state = *--(yy_state_ptr);
+			(yy_lp) = yy_accept[yy_current_state];
 			}
 
 		YY_DO_BEFORE_ACTION;
 
-
 do_action:	/* This label is used only to access EOF actions. */
 
-
 		switch ( yy_act )
 	{ /* beginning of action switch */
 case 1:
 YY_RULE_SETUP
-#line 74 "H5LTanalyze.l"
-{return token(H5T_STD_I8BE_TOKEN);}
+#line 75 "H5LTanalyze.l"
+{return hid(H5T_STD_I8BE_TOKEN);}
 	YY_BREAK
 case 2:
 YY_RULE_SETUP
-#line 75 "H5LTanalyze.l"
-{return token(H5T_STD_I8LE_TOKEN);}
+#line 76 "H5LTanalyze.l"
+{return hid(H5T_STD_I8LE_TOKEN);}
 	YY_BREAK
 case 3:
 YY_RULE_SETUP
-#line 76 "H5LTanalyze.l"
-{return token(H5T_STD_I16BE_TOKEN);}
+#line 77 "H5LTanalyze.l"
+{return hid(H5T_STD_I16BE_TOKEN);}
 	YY_BREAK
 case 4:
 YY_RULE_SETUP
-#line 77 "H5LTanalyze.l"
-{return token(H5T_STD_I16LE_TOKEN);}
+#line 78 "H5LTanalyze.l"
+{return hid(H5T_STD_I16LE_TOKEN);}
 	YY_BREAK
 case 5:
 YY_RULE_SETUP
-#line 78 "H5LTanalyze.l"
-{return token(H5T_STD_I32BE_TOKEN);}
+#line 79 "H5LTanalyze.l"
+{return hid(H5T_STD_I32BE_TOKEN);}
 	YY_BREAK
 case 6:
 YY_RULE_SETUP
-#line 79 "H5LTanalyze.l"
-{return token(H5T_STD_I32LE_TOKEN);}
+#line 80 "H5LTanalyze.l"
+{return hid(H5T_STD_I32LE_TOKEN);}
 	YY_BREAK
 case 7:
 YY_RULE_SETUP
-#line 80 "H5LTanalyze.l"
-{return token(H5T_STD_I64BE_TOKEN);}
+#line 81 "H5LTanalyze.l"
+{return hid(H5T_STD_I64BE_TOKEN);}
 	YY_BREAK
 case 8:
 YY_RULE_SETUP
-#line 81 "H5LTanalyze.l"
-{return token(H5T_STD_I64LE_TOKEN);}
+#line 82 "H5LTanalyze.l"
+{return hid(H5T_STD_I64LE_TOKEN);}
 	YY_BREAK
 case 9:
 YY_RULE_SETUP
-#line 83 "H5LTanalyze.l"
-{return token(H5T_STD_U8BE_TOKEN);}
+#line 84 "H5LTanalyze.l"
+{return hid(H5T_STD_U8BE_TOKEN);}
 	YY_BREAK
 case 10:
 YY_RULE_SETUP
-#line 84 "H5LTanalyze.l"
-{return token(H5T_STD_U8LE_TOKEN);}
+#line 85 "H5LTanalyze.l"
+{return hid(H5T_STD_U8LE_TOKEN);}
 	YY_BREAK
 case 11:
 YY_RULE_SETUP
-#line 85 "H5LTanalyze.l"
-{return token(H5T_STD_U16BE_TOKEN);}
+#line 86 "H5LTanalyze.l"
+{return hid(H5T_STD_U16BE_TOKEN);}
 	YY_BREAK
 case 12:
 YY_RULE_SETUP
-#line 86 "H5LTanalyze.l"
-{return token(H5T_STD_U16LE_TOKEN);}
+#line 87 "H5LTanalyze.l"
+{return hid(H5T_STD_U16LE_TOKEN);}
 	YY_BREAK
 case 13:
 YY_RULE_SETUP
-#line 87 "H5LTanalyze.l"
-{return token(H5T_STD_U32BE_TOKEN);}
+#line 88 "H5LTanalyze.l"
+{return hid(H5T_STD_U32BE_TOKEN);}
 	YY_BREAK
 case 14:
 YY_RULE_SETUP
-#line 88 "H5LTanalyze.l"
-{return token(H5T_STD_U32LE_TOKEN);}
+#line 89 "H5LTanalyze.l"
+{return hid(H5T_STD_U32LE_TOKEN);}
 	YY_BREAK
 case 15:
 YY_RULE_SETUP
-#line 89 "H5LTanalyze.l"
-{return token(H5T_STD_U64BE_TOKEN);}
+#line 90 "H5LTanalyze.l"
+{return hid(H5T_STD_U64BE_TOKEN);}
 	YY_BREAK
 case 16:
 YY_RULE_SETUP
-#line 90 "H5LTanalyze.l"
-{return token(H5T_STD_U64LE_TOKEN);}
+#line 91 "H5LTanalyze.l"
+{return hid(H5T_STD_U64LE_TOKEN);}
 	YY_BREAK
 case 17:
 YY_RULE_SETUP
-#line 92 "H5LTanalyze.l"
-{return token(H5T_NATIVE_CHAR_TOKEN);}
+#line 93 "H5LTanalyze.l"
+{return hid(H5T_NATIVE_CHAR_TOKEN);}
 	YY_BREAK
 case 18:
 YY_RULE_SETUP
-#line 93 "H5LTanalyze.l"
-{return token(H5T_NATIVE_SCHAR_TOKEN);}
+#line 94 "H5LTanalyze.l"
+{return hid(H5T_NATIVE_SCHAR_TOKEN);}
 	YY_BREAK
 case 19:
 YY_RULE_SETUP
-#line 94 "H5LTanalyze.l"
-{return token(H5T_NATIVE_UCHAR_TOKEN);}
+#line 95 "H5LTanalyze.l"
+{return hid(H5T_NATIVE_UCHAR_TOKEN);}
 	YY_BREAK
 case 20:
 YY_RULE_SETUP
-#line 95 "H5LTanalyze.l"
-{return token(H5T_NATIVE_SHORT_TOKEN);}
+#line 96 "H5LTanalyze.l"
+{return hid(H5T_NATIVE_SHORT_TOKEN);}
 	YY_BREAK
 case 21:
 YY_RULE_SETUP
-#line 96 "H5LTanalyze.l"
-{return token(H5T_NATIVE_USHORT_TOKEN);}
+#line 97 "H5LTanalyze.l"
+{return hid(H5T_NATIVE_USHORT_TOKEN);}
 	YY_BREAK
 case 22:
 YY_RULE_SETUP
-#line 97 "H5LTanalyze.l"
-{return token(H5T_NATIVE_INT_TOKEN);}
+#line 98 "H5LTanalyze.l"
+{return hid(H5T_NATIVE_INT_TOKEN);}
 	YY_BREAK
 case 23:
 YY_RULE_SETUP
-#line 98 "H5LTanalyze.l"
-{return token(H5T_NATIVE_UINT_TOKEN);}
+#line 99 "H5LTanalyze.l"
+{return hid(H5T_NATIVE_UINT_TOKEN);}
 	YY_BREAK
 case 24:
 YY_RULE_SETUP
-#line 99 "H5LTanalyze.l"
-{return token(H5T_NATIVE_LONG_TOKEN);}
+#line 100 "H5LTanalyze.l"
+{return hid(H5T_NATIVE_LONG_TOKEN);}
 	YY_BREAK
 case 25:
 YY_RULE_SETUP
-#line 100 "H5LTanalyze.l"
-{return token(H5T_NATIVE_ULONG_TOKEN);}
+#line 101 "H5LTanalyze.l"
+{return hid(H5T_NATIVE_ULONG_TOKEN);}
 	YY_BREAK
 case 26:
 YY_RULE_SETUP
-#line 101 "H5LTanalyze.l"
-{return token(H5T_NATIVE_LLONG_TOKEN);}
+#line 102 "H5LTanalyze.l"
+{return hid(H5T_NATIVE_LLONG_TOKEN);}
 	YY_BREAK
 case 27:
 YY_RULE_SETUP
-#line 102 "H5LTanalyze.l"
-{return token(H5T_NATIVE_ULLONG_TOKEN);}
+#line 103 "H5LTanalyze.l"
+{return hid(H5T_NATIVE_ULLONG_TOKEN);}
 	YY_BREAK
 case 28:
 YY_RULE_SETUP
-#line 104 "H5LTanalyze.l"
-{return token(H5T_IEEE_F32BE_TOKEN);}
+#line 105 "H5LTanalyze.l"
+{return hid(H5T_IEEE_F32BE_TOKEN);}
 	YY_BREAK
 case 29:
 YY_RULE_SETUP
-#line 105 "H5LTanalyze.l"
-{return token(H5T_IEEE_F32LE_TOKEN);}
+#line 106 "H5LTanalyze.l"
+{return hid(H5T_IEEE_F32LE_TOKEN);}
 	YY_BREAK
 case 30:
 YY_RULE_SETUP
-#line 106 "H5LTanalyze.l"
-{return token(H5T_IEEE_F64BE_TOKEN);}
+#line 107 "H5LTanalyze.l"
+{return hid(H5T_IEEE_F64BE_TOKEN);}
 	YY_BREAK
 case 31:
 YY_RULE_SETUP
-#line 107 "H5LTanalyze.l"
-{return token(H5T_IEEE_F64LE_TOKEN);}
+#line 108 "H5LTanalyze.l"
+{return hid(H5T_IEEE_F64LE_TOKEN);}
 	YY_BREAK
 case 32:
 YY_RULE_SETUP
-#line 108 "H5LTanalyze.l"
-{return token(H5T_NATIVE_FLOAT_TOKEN);}
+#line 109 "H5LTanalyze.l"
+{return hid(H5T_NATIVE_FLOAT_TOKEN);}
 	YY_BREAK
 case 33:
 YY_RULE_SETUP
-#line 109 "H5LTanalyze.l"
-{return token(H5T_NATIVE_DOUBLE_TOKEN);}
+#line 110 "H5LTanalyze.l"
+{return hid(H5T_NATIVE_DOUBLE_TOKEN);}
 	YY_BREAK
 case 34:
 YY_RULE_SETUP
-#line 110 "H5LTanalyze.l"
-{return token(H5T_NATIVE_LDOUBLE_TOKEN);}
+#line 111 "H5LTanalyze.l"
+{return hid(H5T_NATIVE_LDOUBLE_TOKEN);}
 	YY_BREAK
 case 35:
 YY_RULE_SETUP
-#line 112 "H5LTanalyze.l"
+#line 113 "H5LTanalyze.l"
 {return token(H5T_STRING_TOKEN);}
 	YY_BREAK
 case 36:
 YY_RULE_SETUP
-#line 113 "H5LTanalyze.l"
+#line 114 "H5LTanalyze.l"
 {return token(STRSIZE_TOKEN);}
 	YY_BREAK
 case 37:
 YY_RULE_SETUP
-#line 114 "H5LTanalyze.l"
+#line 115 "H5LTanalyze.l"
 {return token(STRPAD_TOKEN);}
 	YY_BREAK
 case 38:
 YY_RULE_SETUP
-#line 115 "H5LTanalyze.l"
+#line 116 "H5LTanalyze.l"
 {return token(CSET_TOKEN);}
 	YY_BREAK
 case 39:
 YY_RULE_SETUP
-#line 116 "H5LTanalyze.l"
+#line 117 "H5LTanalyze.l"
 {return token(CTYPE_TOKEN);}
 	YY_BREAK
 case 40:
 YY_RULE_SETUP
-#line 117 "H5LTanalyze.l"
+#line 118 "H5LTanalyze.l"
 {return token(H5T_STR_NULLTERM_TOKEN);} 
 	YY_BREAK
 case 41:
 YY_RULE_SETUP
-#line 118 "H5LTanalyze.l"
+#line 119 "H5LTanalyze.l"
 {return token(H5T_STR_NULLPAD_TOKEN);} 
 	YY_BREAK
 case 42:
 YY_RULE_SETUP
-#line 119 "H5LTanalyze.l"
+#line 120 "H5LTanalyze.l"
 {return token(H5T_STR_SPACEPAD_TOKEN);} 
 	YY_BREAK
 case 43:
 YY_RULE_SETUP
-#line 120 "H5LTanalyze.l"
+#line 121 "H5LTanalyze.l"
 {return token(H5T_CSET_ASCII_TOKEN);}
 	YY_BREAK
 case 44:
 YY_RULE_SETUP
-#line 121 "H5LTanalyze.l"
+#line 122 "H5LTanalyze.l"
 {return token(H5T_CSET_UTF8_TOKEN);}
 	YY_BREAK
 case 45:
 YY_RULE_SETUP
-#line 122 "H5LTanalyze.l"
+#line 123 "H5LTanalyze.l"
 {return token(H5T_C_S1_TOKEN);}
 	YY_BREAK
 case 46:
 YY_RULE_SETUP
-#line 123 "H5LTanalyze.l"
+#line 124 "H5LTanalyze.l"
 {return token(H5T_FORTRAN_S1_TOKEN);}
 	YY_BREAK
 case 47:
 YY_RULE_SETUP
-#line 124 "H5LTanalyze.l"
+#line 125 "H5LTanalyze.l"
 {return token(H5T_VARIABLE_TOKEN);}
 	YY_BREAK
 case 48:
 YY_RULE_SETUP
-#line 126 "H5LTanalyze.l"
+#line 127 "H5LTanalyze.l"
 {return token(H5T_COMPOUND_TOKEN);}
 	YY_BREAK
 case 49:
 YY_RULE_SETUP
-#line 127 "H5LTanalyze.l"
+#line 128 "H5LTanalyze.l"
 {return token(H5T_ENUM_TOKEN);}
 	YY_BREAK
 case 50:
 YY_RULE_SETUP
-#line 128 "H5LTanalyze.l"
+#line 129 "H5LTanalyze.l"
 {return token(H5T_ARRAY_TOKEN);}
 	YY_BREAK
 case 51:
 YY_RULE_SETUP
-#line 129 "H5LTanalyze.l"
+#line 130 "H5LTanalyze.l"
 {return token(H5T_VLEN_TOKEN);}
 	YY_BREAK
 case 52:
 YY_RULE_SETUP
-#line 131 "H5LTanalyze.l"
+#line 132 "H5LTanalyze.l"
 {return token(H5T_OPAQUE_TOKEN);}
 	YY_BREAK
 case 53:
 YY_RULE_SETUP
-#line 132 "H5LTanalyze.l"
+#line 133 "H5LTanalyze.l"
 {return token(OPQ_SIZE_TOKEN);}
 	YY_BREAK
 case 54:
 YY_RULE_SETUP
-#line 133 "H5LTanalyze.l"
+#line 134 "H5LTanalyze.l"
 {return token(OPQ_TAG_TOKEN);}
 	YY_BREAK
 case 55:
 YY_RULE_SETUP
-#line 135 "H5LTanalyze.l"
+#line 136 "H5LTanalyze.l"
 {    
                         if( is_str_size || (is_enum && is_enum_memb) || 
                             is_opq_size || (asindex>-1 && arr_stack[asindex].is_dim) ||
                             (csindex>-1 && cmpd_stack[csindex].is_field) ) {
-                            H5LTyylval.ival = atoi(yytext);
+                            H5LTyylval.ival = atoi(H5LTyytext);
                             return NUMBER; 
                         } else
                             REJECT;
@@ -1383,7 +1468,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 56:
 YY_RULE_SETUP
-#line 145 "H5LTanalyze.l"
+#line 146 "H5LTanalyze.l"
 {
                     /*if it's first quote, and is a compound field name or an enum symbol*/
                     if((is_opq_tag || is_enum || (csindex>-1 && cmpd_stack[csindex].is_field)) 
@@ -1396,13 +1481,14 @@ YY_RULE_SETUP
                  }
 	YY_BREAK
 case 57:
+/* rule 57 can match eol */
 YY_RULE_SETUP
-#line 155 "H5LTanalyze.l"
+#line 156 "H5LTanalyze.l"
 {
 #ifdef H5_HAVE_WIN32_API
-                    H5LTyylval.sval = _strdup(yytext);
+                    H5LTyylval.sval = _strdup(H5LTyytext);
 #else /* H5_HAVE_WIN32_API */
-                    H5LTyylval.sval = strdup(yytext);
+                    H5LTyylval.sval = strdup(H5LTyytext);
 #endif  /* H5_HAVE_WIN32_API */
                     BEGIN INITIAL;
                     return STRING;
@@ -1410,50 +1496,52 @@ YY_RULE_SETUP
 	YY_BREAK
 case 58:
 YY_RULE_SETUP
-#line 165 "H5LTanalyze.l"
+#line 166 "H5LTanalyze.l"
 {return token('{');}
 	YY_BREAK
 case 59:
 YY_RULE_SETUP
-#line 166 "H5LTanalyze.l"
+#line 167 "H5LTanalyze.l"
 {return token('}');}
 	YY_BREAK
 case 60:
 YY_RULE_SETUP
-#line 167 "H5LTanalyze.l"
+#line 168 "H5LTanalyze.l"
 {return token('[');}
 	YY_BREAK
 case 61:
 YY_RULE_SETUP
-#line 168 "H5LTanalyze.l"
+#line 169 "H5LTanalyze.l"
 {return token(']');}
 	YY_BREAK
 case 62:
 YY_RULE_SETUP
-#line 169 "H5LTanalyze.l"
+#line 170 "H5LTanalyze.l"
 {return token(':');}
 	YY_BREAK
 case 63:
 YY_RULE_SETUP
-#line 170 "H5LTanalyze.l"
+#line 171 "H5LTanalyze.l"
 {return token(';');}
 	YY_BREAK
 case 64:
+/* rule 64 can match eol */
 YY_RULE_SETUP
-#line 171 "H5LTanalyze.l"
+#line 172 "H5LTanalyze.l"
 ;
 	YY_BREAK
 case 65:
+/* rule 65 can match eol */
 YY_RULE_SETUP
-#line 172 "H5LTanalyze.l"
+#line 173 "H5LTanalyze.l"
 { return 0; }
 	YY_BREAK
 case 66:
 YY_RULE_SETUP
-#line 174 "H5LTanalyze.l"
+#line 175 "H5LTanalyze.l"
 ECHO;
 	YY_BREAK
-#line 1457 "H5LTanalyze.c"
+#line 1545 "H5LTanalyze.c"
 			case YY_STATE_EOF(INITIAL):
 			case YY_STATE_EOF(TAG_STRING):
 				yyterminate();
@@ -1461,26 +1549,26 @@ ECHO;
 	case YY_END_OF_BUFFER:
 		{
 		/* Amount of text matched not including the EOB char. */
-		int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
+		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
 
 		/* Undo the effects of YY_DO_BEFORE_ACTION. */
-		*yy_cp = yy_hold_char;
+		*yy_cp = (yy_hold_char);
 		YY_RESTORE_YY_MORE_OFFSET
 
-		if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
+		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
 			{
 			/* We're scanning a new file or input source.  It's
 			 * possible that this happened because the user
-			 * just pointed yyin at a new source and called
-			 * yylex().  If so, then we have to assure
-			 * consistency between yy_current_buffer and our
+			 * just pointed H5LTyyin at a new source and called
+			 * H5LTyylex().  If so, then we have to assure
+			 * consistency between YY_CURRENT_BUFFER and our
 			 * globals.  Here is the right place to do so, because
 			 * this is the first action (other than possibly a
 			 * back-up) that will match for the new input source.
 			 */
-			yy_n_chars = yy_current_buffer->yy_n_chars;
-			yy_current_buffer->yy_input_file = yyin;
-			yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
+			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+			YY_CURRENT_BUFFER_LVALUE->yy_input_file = H5LTyyin;
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
 			}
 
 		/* Note that here we test for yy_c_buf_p "<=" to the position
@@ -1490,13 +1578,13 @@ ECHO;
 		 * end-of-buffer state).  Contrast this with the test
 		 * in input().
 		 */
-		if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
+		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
 			{ /* This was really a NUL. */
 			yy_state_type yy_next_state;
 
-			yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
+			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
 
-			yy_current_state = yy_get_previous_state();
+			yy_current_state = yy_get_previous_state(  );
 
 			/* Okay, we're now positioned to make the NUL
 			 * transition.  We couldn't have
@@ -1509,41 +1597,41 @@ ECHO;
 
 			yy_next_state = yy_try_NUL_trans( yy_current_state );
 
-			yy_bp = yytext_ptr + YY_MORE_ADJ;
+			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
 
 			if ( yy_next_state )
 				{
 				/* Consume the NUL. */
-				yy_cp = ++yy_c_buf_p;
+				yy_cp = ++(yy_c_buf_p);
 				yy_current_state = yy_next_state;
 				goto yy_match;
 				}
 
 			else
 				{
-				yy_cp = yy_c_buf_p;
+				yy_cp = (yy_c_buf_p);
 				goto yy_find_action;
 				}
 			}
 
-		else switch ( yy_get_next_buffer() )
+		else switch ( yy_get_next_buffer(  ) )
 			{
 			case EOB_ACT_END_OF_FILE:
 				{
-				yy_did_buffer_switch_on_eof = 0;
+				(yy_did_buffer_switch_on_eof) = 0;
 
-				if ( yywrap() )
+				if ( H5LTyywrap( ) )
 					{
 					/* Note: because we've taken care in
 					 * yy_get_next_buffer() to have set up
-					 * yytext, we can now set up
+					 * H5LTyytext, we can now set up
 					 * yy_c_buf_p so that if some total
 					 * hoser (like flex itself) wants to
 					 * call the scanner after we return the
 					 * YY_NULL, it'll still work - another
 					 * YY_NULL will get returned.
 					 */
-					yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
+					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
 
 					yy_act = YY_STATE_EOF(YY_START);
 					goto do_action;
@@ -1551,30 +1639,30 @@ ECHO;
 
 				else
 					{
-					if ( ! yy_did_buffer_switch_on_eof )
+					if ( ! (yy_did_buffer_switch_on_eof) )
 						YY_NEW_FILE;
 					}
 				break;
 				}
 
 			case EOB_ACT_CONTINUE_SCAN:
-				yy_c_buf_p =
-					yytext_ptr + yy_amount_of_matched_text;
+				(yy_c_buf_p) =
+					(yytext_ptr) + yy_amount_of_matched_text;
 
-				yy_current_state = yy_get_previous_state();
+				yy_current_state = yy_get_previous_state(  );
 
-				yy_cp = yy_c_buf_p;
-				yy_bp = yytext_ptr + YY_MORE_ADJ;
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
 				goto yy_match;
 
 			case EOB_ACT_LAST_MATCH:
-				yy_c_buf_p =
-				&yy_current_buffer->yy_ch_buf[yy_n_chars];
+				(yy_c_buf_p) =
+				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
 
-				yy_current_state = yy_get_previous_state();
+				yy_current_state = yy_get_previous_state(  );
 
-				yy_cp = yy_c_buf_p;
-				yy_bp = yytext_ptr + YY_MORE_ADJ;
+				yy_cp = (yy_c_buf_p);
+				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
 				goto yy_find_action;
 			}
 		break;
@@ -1585,8 +1673,7 @@ ECHO;
 			"fatal flex scanner internal error--no action found" );
 	} /* end of action switch */
 		} /* end of scanning one token */
-	} /* end of yylex */
-
+} /* end of H5LTyylex */
 
 /* yy_get_next_buffer - try to read in a new buffer
  *
@@ -1595,21 +1682,20 @@ ECHO;
  *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
  *	EOB_ACT_END_OF_FILE - end of file
  */
-
-static int yy_get_next_buffer()
-	{
-	register char *dest = yy_current_buffer->yy_ch_buf;
-	register char *source = yytext_ptr;
+static int yy_get_next_buffer (void)
+{
+    	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
+	register char *source = (yytext_ptr);
 	register int number_to_move, i;
 	int ret_val;
 
-	if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
+	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
 		YY_FATAL_ERROR(
 		"fatal flex scanner internal error--end of buffer missed" );
 
-	if ( yy_current_buffer->yy_fill_buffer == 0 )
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
 		{ /* Don't try to fill the buffer, so this is an EOF. */
-		if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
+		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
 			{
 			/* We matched a single character, the EOB, so
 			 * treat this as a final EOF.
@@ -1629,86 +1715,52 @@ static int yy_get_next_buffer()
 	/* Try to read more data. */
 
 	/* First move last chars to start of buffer. */
-	number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
+	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
 
 	for ( i = 0; i < number_to_move; ++i )
 		*(dest++) = *(source++);
 
-	if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
+	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
 		/* don't do the read, it's not guaranteed to return an EOF,
 		 * just force an EOF
 		 */
-		yy_current_buffer->yy_n_chars = yy_n_chars = 0;
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
 
 	else
 		{
-		int num_to_read =
-			yy_current_buffer->yy_buf_size - number_to_move - 1;
+			yy_size_t num_to_read =
+			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
 
 		while ( num_to_read <= 0 )
 			{ /* Not enough room in the buffer - grow it. */
-#ifdef YY_USES_REJECT
+
 			YY_FATAL_ERROR(
 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
-#else
-
-			/* just a shorter name for the current buffer */
-			YY_BUFFER_STATE b = yy_current_buffer;
-
-			int yy_c_buf_p_offset =
-				(int) (yy_c_buf_p - b->yy_ch_buf);
-
-			if ( b->yy_is_our_buffer )
-				{
-				int new_size = b->yy_buf_size * 2;
-
-				if ( new_size <= 0 )
-					b->yy_buf_size += b->yy_buf_size / 8;
-				else
-					b->yy_buf_size *= 2;
-
-				b->yy_ch_buf = (char *)
-					/* Include room in for 2 EOB chars. */
-					yy_flex_realloc( (void *) b->yy_ch_buf,
-							 b->yy_buf_size + 2 );
-				}
-			else
-				/* Can't grow it, we don't own it. */
-				b->yy_ch_buf = 0;
-
-			if ( ! b->yy_ch_buf )
-				YY_FATAL_ERROR(
-				"fatal error - scanner input buffer overflow" );
-
-			yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
 
-			num_to_read = yy_current_buffer->yy_buf_size -
-						number_to_move - 1;
-#endif
 			}
 
 		if ( num_to_read > YY_READ_BUF_SIZE )
 			num_to_read = YY_READ_BUF_SIZE;
 
 		/* Read in more data. */
-		YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
-			yy_n_chars, num_to_read );
+		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
+			(yy_n_chars), num_to_read );
 
-		yy_current_buffer->yy_n_chars = yy_n_chars;
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
 		}
 
-	if ( yy_n_chars == 0 )
+	if ( (yy_n_chars) == 0 )
 		{
 		if ( number_to_move == YY_MORE_ADJ )
 			{
 			ret_val = EOB_ACT_END_OF_FILE;
-			yyrestart( yyin );
+			H5LTyyrestart(H5LTyyin  );
 			}
 
 		else
 			{
 			ret_val = EOB_ACT_LAST_MATCH;
-			yy_current_buffer->yy_buffer_status =
+			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
 				YY_BUFFER_EOF_PENDING;
 			}
 		}
@@ -1716,28 +1768,36 @@ static int yy_get_next_buffer()
 	else
 		ret_val = EOB_ACT_CONTINUE_SCAN;
 
-	yy_n_chars += number_to_move;
-	yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
-	yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
+	if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
+		/* Extend the array by 50%, plus the number we really need. */
+		yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
+		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) H5LTyyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
+		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
+			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
+	}
 
-	yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
+	(yy_n_chars) += number_to_move;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
+	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
 
-	return ret_val;
-	}
+	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
 
+	return ret_val;
+}
 
 /* yy_get_previous_state - get the state just before the EOB char was reached */
 
-static yy_state_type yy_get_previous_state()
-	{
+    static yy_state_type yy_get_previous_state (void)
+{
 	register yy_state_type yy_current_state;
 	register char *yy_cp;
+    
+	yy_current_state = (yy_start);
 
-	yy_current_state = yy_start;
-	yy_state_ptr = yy_state_buf;
-	*yy_state_ptr++ = yy_current_state;
+	(yy_state_ptr) = (yy_state_buf);
+	*(yy_state_ptr)++ = yy_current_state;
 
-	for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
+	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
 		{
 		register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
 		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
@@ -1747,28 +1807,21 @@ static yy_state_type yy_get_previous_state()
 				yy_c = yy_meta[(unsigned int) yy_c];
 			}
 		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-		*yy_state_ptr++ = yy_current_state;
+		*(yy_state_ptr)++ = yy_current_state;
 		}
 
 	return yy_current_state;
-	}
-
+}
 
 /* yy_try_NUL_trans - try to make a transition on the NUL character
  *
  * synopsis
  *	next_state = yy_try_NUL_trans( current_state );
  */
-
-#ifdef YY_USE_PROTOS
-static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
-#else
-static yy_state_type yy_try_NUL_trans( yy_current_state )
-yy_state_type yy_current_state;
-#endif
-	{
+    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
+{
 	register int yy_is_jam;
-
+    
 	register YY_CHAR yy_c = 1;
 	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 		{
@@ -1779,84 +1832,76 @@ yy_state_type yy_current_state;
 	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
 	yy_is_jam = (yy_current_state == 544);
 	if ( ! yy_is_jam )
-		*yy_state_ptr++ = yy_current_state;
-
-	return yy_is_jam ? 0 : yy_current_state;
-	}
+		*(yy_state_ptr)++ = yy_current_state;
 
+		return yy_is_jam ? 0 : yy_current_state;
+}
 
-#ifndef YY_NO_UNPUT
-#ifdef YY_USE_PROTOS
-static void yyunput( int c, register char *yy_bp )
-#else
-static void yyunput( c, yy_bp )
-int c;
-register char *yy_bp;
-#endif
-	{
-	register char *yy_cp = yy_c_buf_p;
+    static void yyunput (int c, register char * yy_bp )
+{
+	register char *yy_cp;
+    
+    yy_cp = (yy_c_buf_p);
 
-	/* undo effects of setting up yytext */
-	*yy_cp = yy_hold_char;
+	/* undo effects of setting up H5LTyytext */
+	*yy_cp = (yy_hold_char);
 
-	if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
+	if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
 		{ /* need to shift things up to make room */
 		/* +2 for EOB chars. */
-		register int number_to_move = yy_n_chars + 2;
-		register char *dest = &yy_current_buffer->yy_ch_buf[
-					yy_current_buffer->yy_buf_size + 2];
+		register yy_size_t number_to_move = (yy_n_chars) + 2;
+		register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
+					YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
 		register char *source =
-				&yy_current_buffer->yy_ch_buf[number_to_move];
+				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
 
-		while ( source > yy_current_buffer->yy_ch_buf )
+		while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
 			*--dest = *--source;
 
 		yy_cp += (int) (dest - source);
 		yy_bp += (int) (dest - source);
-		yy_current_buffer->yy_n_chars =
-			yy_n_chars = yy_current_buffer->yy_buf_size;
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
+			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
 
-		if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
+		if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
 			YY_FATAL_ERROR( "flex scanner push-back overflow" );
 		}
 
 	*--yy_cp = (char) c;
 
-
-	yytext_ptr = yy_bp;
-	yy_hold_char = *yy_cp;
-	yy_c_buf_p = yy_cp;
-	}
-#endif	/* ifndef YY_NO_UNPUT */
-
+	(yytext_ptr) = yy_bp;
+	(yy_hold_char) = *yy_cp;
+	(yy_c_buf_p) = yy_cp;
+}
 
 #ifndef YY_NO_INPUT
 #ifdef __cplusplus
-static int yyinput()
+    static int yyinput (void)
 #else
-static int input()
+    static int input  (void)
 #endif
-	{
-	int c;
 
-	*yy_c_buf_p = yy_hold_char;
+{
+	int c;
+    
+	*(yy_c_buf_p) = (yy_hold_char);
 
-	if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
+	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
 		{
 		/* yy_c_buf_p now points to the character we want to return.
 		 * If this occurs *before* the EOB characters, then it's a
 		 * valid NUL; if not, then we've hit the end of the buffer.
 		 */
-		if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
+		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
 			/* This was really a NUL. */
-			*yy_c_buf_p = '\0';
+			*(yy_c_buf_p) = '\0';
 
 		else
 			{ /* need more input */
-			int offset = yy_c_buf_p - yytext_ptr;
-			++yy_c_buf_p;
+			yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
+			++(yy_c_buf_p);
 
-			switch ( yy_get_next_buffer() )
+			switch ( yy_get_next_buffer(  ) )
 				{
 				case EOB_ACT_LAST_MATCH:
 					/* This happens because yy_g_n_b()
@@ -1870,16 +1915,16 @@ static int input()
 					 */
 
 					/* Reset buffer status. */
-					yyrestart( yyin );
+					H5LTyyrestart(H5LTyyin );
 
-					/* fall through */
+					/*FALLTHROUGH*/
 
 				case EOB_ACT_END_OF_FILE:
 					{
-					if ( yywrap() )
+					if ( H5LTyywrap( ) )
 						return EOF;
 
-					if ( ! yy_did_buffer_switch_on_eof )
+					if ( ! (yy_did_buffer_switch_on_eof) )
 						YY_NEW_FILE;
 #ifdef __cplusplus
 					return yyinput();
@@ -1889,171 +1934,165 @@ static int input()
 					}
 
 				case EOB_ACT_CONTINUE_SCAN:
-					yy_c_buf_p = yytext_ptr + offset;
+					(yy_c_buf_p) = (yytext_ptr) + offset;
 					break;
 				}
 			}
 		}
 
-	c = *(unsigned char *) yy_c_buf_p;	/* cast for 8-bit char's */
-	*yy_c_buf_p = '\0';	/* preserve yytext */
-	yy_hold_char = *++yy_c_buf_p;
-
+	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
+	*(yy_c_buf_p) = '\0';	/* preserve H5LTyytext */
+	(yy_hold_char) = *++(yy_c_buf_p);
 
 	return c;
-	}
-#endif /* YY_NO_INPUT */
-
-#ifdef YY_USE_PROTOS
-void yyrestart( FILE *input_file )
-#else
-void yyrestart( input_file )
-FILE *input_file;
-#endif
-	{
-	if ( ! yy_current_buffer )
-		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
+}
+#endif	/* ifndef YY_NO_INPUT */
 
-	yy_init_buffer( yy_current_buffer, input_file );
-	yy_load_buffer_state();
+/** Immediately switch to a different input stream.
+ * @param input_file A readable stream.
+ * 
+ * @note This function does not reset the start condition to @c INITIAL .
+ */
+    void H5LTyyrestart  (FILE * input_file )
+{
+    
+	if ( ! YY_CURRENT_BUFFER ){
+        H5LTyyensure_buffer_stack ();
+		YY_CURRENT_BUFFER_LVALUE =
+            H5LTyy_create_buffer(H5LTyyin,YY_BUF_SIZE );
 	}
 
+	H5LTyy_init_buffer(YY_CURRENT_BUFFER,input_file );
+	H5LTyy_load_buffer_state( );
+}
 
-#ifdef YY_USE_PROTOS
-void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
-#else
-void yy_switch_to_buffer( new_buffer )
-YY_BUFFER_STATE new_buffer;
-#endif
-	{
-	if ( yy_current_buffer == new_buffer )
+/** Switch to a different input buffer.
+ * @param new_buffer The new input buffer.
+ * 
+ */
+    void H5LTyy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
+{
+    
+	/* TODO. We should be able to replace this entire function body
+	 * with
+	 *		H5LTyypop_buffer_state();
+	 *		H5LTyypush_buffer_state(new_buffer);
+     */
+	H5LTyyensure_buffer_stack ();
+	if ( YY_CURRENT_BUFFER == new_buffer )
 		return;
 
-	if ( yy_current_buffer )
+	if ( YY_CURRENT_BUFFER )
 		{
 		/* Flush out information for old buffer. */
-		*yy_c_buf_p = yy_hold_char;
-		yy_current_buffer->yy_buf_pos = yy_c_buf_p;
-		yy_current_buffer->yy_n_chars = yy_n_chars;
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
 		}
 
-	yy_current_buffer = new_buffer;
-	yy_load_buffer_state();
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+	H5LTyy_load_buffer_state( );
 
 	/* We don't actually know whether we did this switch during
-	 * EOF (yywrap()) processing, but the only time this flag
-	 * is looked at is after yywrap() is called, so it's safe
+	 * EOF (H5LTyywrap()) processing, but the only time this flag
+	 * is looked at is after H5LTyywrap() is called, so it's safe
 	 * to go ahead and always set it.
 	 */
-	yy_did_buffer_switch_on_eof = 1;
-	}
-
-
-#ifdef YY_USE_PROTOS
-void yy_load_buffer_state( void )
-#else
-void yy_load_buffer_state()
-#endif
-	{
-	yy_n_chars = yy_current_buffer->yy_n_chars;
-	yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
-	yyin = yy_current_buffer->yy_input_file;
-	yy_hold_char = *yy_c_buf_p;
-	}
+	(yy_did_buffer_switch_on_eof) = 1;
+}
 
+static void H5LTyy_load_buffer_state  (void)
+{
+    	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
+	H5LTyyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
+	(yy_hold_char) = *(yy_c_buf_p);
+}
 
-#ifdef YY_USE_PROTOS
-YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
-#else
-YY_BUFFER_STATE yy_create_buffer( file, size )
-FILE *file;
-int size;
-#endif
-	{
+/** Allocate and initialize an input buffer state.
+ * @param file A readable stream.
+ * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
+ * 
+ * @return the allocated buffer state.
+ */
+    YY_BUFFER_STATE H5LTyy_create_buffer  (FILE * file, int  size )
+{
 	YY_BUFFER_STATE b;
-
-	b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
+    
+	b = (YY_BUFFER_STATE) H5LTyyalloc(sizeof( struct yy_buffer_state )  );
 	if ( ! b )
-		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+		YY_FATAL_ERROR( "out of dynamic memory in H5LTyy_create_buffer()" );
 
 	b->yy_buf_size = size;
 
 	/* yy_ch_buf has to be 2 characters longer than the size given because
 	 * we need to put in 2 end-of-buffer characters.
 	 */
-	b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
+	b->yy_ch_buf = (char *) H5LTyyalloc(b->yy_buf_size + 2  );
 	if ( ! b->yy_ch_buf )
-		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+		YY_FATAL_ERROR( "out of dynamic memory in H5LTyy_create_buffer()" );
 
 	b->yy_is_our_buffer = 1;
 
-	yy_init_buffer( b, file );
+	H5LTyy_init_buffer(b,file );
 
 	return b;
-	}
-
+}
 
-#ifdef YY_USE_PROTOS
-void yy_delete_buffer( YY_BUFFER_STATE b )
-#else
-void yy_delete_buffer( b )
-YY_BUFFER_STATE b;
-#endif
-	{
+/** Destroy the buffer.
+ * @param b a buffer created with H5LTyy_create_buffer()
+ * 
+ */
+    void H5LTyy_delete_buffer (YY_BUFFER_STATE  b )
+{
+    
 	if ( ! b )
 		return;
 
-	if ( b == yy_current_buffer )
-		yy_current_buffer = (YY_BUFFER_STATE) 0;
+	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
+		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
 
 	if ( b->yy_is_our_buffer )
-		yy_flex_free( (void *) b->yy_ch_buf );
-
-	yy_flex_free( (void *) b );
-	}
-
+		H5LTyyfree((void *) b->yy_ch_buf  );
 
+	H5LTyyfree((void *) b  );
+}
 
-#ifdef YY_USE_PROTOS
-void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
-#else
-void yy_init_buffer( b, file )
-YY_BUFFER_STATE b;
-FILE *file;
-#endif
-
+/* Initializes or reinitializes a buffer.
+ * This function is sometimes called more than once on the same buffer,
+ * such as during a H5LTyyrestart() or at EOF.
+ */
+    static void H5LTyy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
 
-	{
-	yy_flush_buffer( b );
+{
+	int oerrno = errno;
+    
+	H5LTyy_flush_buffer(b );
 
 	b->yy_input_file = file;
 	b->yy_fill_buffer = 1;
 
-#if YY_ALWAYS_INTERACTIVE
-	b->yy_is_interactive = 1;
-#else
-#if YY_NEVER_INTERACTIVE
-	b->yy_is_interactive = 0;
-#else
-#ifdef H5_HAVE_WIN32_API
-    b->yy_is_interactive = file ? (_isatty( _fileno(file) ) > 0) : 0;
-#else /* H5_HAVE_WIN32_API */
-    b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
-#endif  /* H5_HAVE_WIN32_API */
-#endif
-#endif
-	}
-
+    /* If b is the current buffer, then H5LTyy_init_buffer was _probably_
+     * called from H5LTyyrestart() or through yy_get_next_buffer.
+     * In that case, we don't want to reset the lineno or column.
+     */
+    if (b != YY_CURRENT_BUFFER){
+        b->yy_bs_lineno = 1;
+        b->yy_bs_column = 0;
+    }
 
-#ifdef YY_USE_PROTOS
-void yy_flush_buffer( YY_BUFFER_STATE b )
-#else
-void yy_flush_buffer( b )
-YY_BUFFER_STATE b;
-#endif
+        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
+    
+	errno = oerrno;
+}
 
-	{
-	if ( ! b )
+/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
+ * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
+ * 
+ */
+    void H5LTyy_flush_buffer (YY_BUFFER_STATE  b )
+{
+    	if ( ! b )
 		return;
 
 	b->yy_n_chars = 0;
@@ -2070,31 +2109,127 @@ YY_BUFFER_STATE b;
 	b->yy_at_bol = 1;
 	b->yy_buffer_status = YY_BUFFER_NEW;
 
-	if ( b == yy_current_buffer )
-		yy_load_buffer_state();
+	if ( b == YY_CURRENT_BUFFER )
+		H5LTyy_load_buffer_state( );
+}
+
+/** Pushes the new state onto the stack. The new state becomes
+ *  the current state. This function will allocate the stack
+ *  if necessary.
+ *  @param new_buffer The new state.
+ *  
+ */
+void H5LTyypush_buffer_state (YY_BUFFER_STATE new_buffer )
+{
+    	if (new_buffer == NULL)
+		return;
+
+	H5LTyyensure_buffer_stack();
+
+	/* This block is copied from H5LTyy_switch_to_buffer. */
+	if ( YY_CURRENT_BUFFER )
+		{
+		/* Flush out information for old buffer. */
+		*(yy_c_buf_p) = (yy_hold_char);
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		}
+
+	/* Only push if top exists. Otherwise, replace top. */
+	if (YY_CURRENT_BUFFER)
+		(yy_buffer_stack_top)++;
+	YY_CURRENT_BUFFER_LVALUE = new_buffer;
+
+	/* copied from H5LTyy_switch_to_buffer. */
+	H5LTyy_load_buffer_state( );
+	(yy_did_buffer_switch_on_eof) = 1;
+}
+
+/** Removes and deletes the top of the stack, if present.
+ *  The next element becomes the new top.
+ *  
+ */
+void H5LTyypop_buffer_state (void)
+{
+    	if (!YY_CURRENT_BUFFER)
+		return;
+
+	H5LTyy_delete_buffer(YY_CURRENT_BUFFER );
+	YY_CURRENT_BUFFER_LVALUE = NULL;
+	if ((yy_buffer_stack_top) > 0)
+		--(yy_buffer_stack_top);
+
+	if (YY_CURRENT_BUFFER) {
+		H5LTyy_load_buffer_state( );
+		(yy_did_buffer_switch_on_eof) = 1;
 	}
+}
 
+/* Allocates the stack if it does not exist.
+ *  Guarantees space for at least one push.
+ */
+static void H5LTyyensure_buffer_stack (void)
+{
+	yy_size_t num_to_alloc;
+    
+	if (!(yy_buffer_stack)) {
+
+		/* First allocation is just for 2 elements, since we don't know if this
+		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
+		 * immediate realloc on the next call.
+         */
+		num_to_alloc = 1;
+		(yy_buffer_stack) = (struct yy_buffer_state**)H5LTyyalloc
+								(num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in H5LTyyensure_buffer_stack()" );
+								  
+		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
+				
+		(yy_buffer_stack_max) = num_to_alloc;
+		(yy_buffer_stack_top) = 0;
+		return;
+	}
 
-#ifndef YY_NO_SCAN_BUFFER
-#ifdef YY_USE_PROTOS
-YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
-#else
-YY_BUFFER_STATE yy_scan_buffer( base, size )
-char *base;
-yy_size_t size;
-#endif
-	{
-	YY_BUFFER_STATE b;
+	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
+
+		/* Increase the buffer to prepare for a possible push. */
+		int grow_size = 8 /* arbitrary grow size */;
+
+		num_to_alloc = (yy_buffer_stack_max) + grow_size;
+		(yy_buffer_stack) = (struct yy_buffer_state**)H5LTyyrealloc
+								((yy_buffer_stack),
+								num_to_alloc * sizeof(struct yy_buffer_state*)
+								);
+		if ( ! (yy_buffer_stack) )
+			YY_FATAL_ERROR( "out of dynamic memory in H5LTyyensure_buffer_stack()" );
 
+		/* zero only the new slots.*/
+		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
+		(yy_buffer_stack_max) = num_to_alloc;
+	}
+}
+
+/** Setup the input buffer state to scan directly from a user-specified character buffer.
+ * @param base the character buffer
+ * @param size the size in bytes of the character buffer
+ * 
+ * @return the newly allocated buffer state object. 
+ */
+YY_BUFFER_STATE H5LTyy_scan_buffer  (char * base, yy_size_t  size )
+{
+	YY_BUFFER_STATE b;
+    
 	if ( size < 2 ||
 	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
 	     base[size-1] != YY_END_OF_BUFFER_CHAR )
 		/* They forgot to leave room for the EOB's. */
 		return 0;
 
-	b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
+	b = (YY_BUFFER_STATE) H5LTyyalloc(sizeof( struct yy_buffer_state )  );
 	if ( ! b )
-		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
+		YY_FATAL_ERROR( "out of dynamic memory in H5LTyy_scan_buffer()" );
 
 	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
 	b->yy_buf_pos = b->yy_ch_buf = base;
@@ -2106,58 +2241,53 @@ yy_size_t size;
 	b->yy_fill_buffer = 0;
 	b->yy_buffer_status = YY_BUFFER_NEW;
 
-	yy_switch_to_buffer( b );
+	H5LTyy_switch_to_buffer(b  );
 
 	return b;
-	}
-#endif
-
-
-#ifndef YY_NO_SCAN_STRING
-#ifdef YY_USE_PROTOS
-YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
-#else
-YY_BUFFER_STATE yy_scan_string( yy_str )
-yyconst char *yy_str;
-#endif
-	{
-	int len;
-	for ( len = 0; yy_str[len]; ++len )
-		;
-
-	return yy_scan_bytes( yy_str, len );
-	}
-#endif
+}
 
+/** Setup the input buffer state to scan a string. The next call to H5LTyylex() will
+ * scan from a @e copy of @a str.
+ * @param yystr a NUL-terminated string to scan
+ * 
+ * @return the newly allocated buffer state object.
+ * @note If you want to scan bytes that may contain NUL values, then use
+ *       H5LTyy_scan_bytes() instead.
+ */
+YY_BUFFER_STATE H5LTyy_scan_string (yyconst char * yystr )
+{
+    
+	return H5LTyy_scan_bytes(yystr,strlen(yystr) );
+}
 
-#ifndef YY_NO_SCAN_BYTES
-#ifdef YY_USE_PROTOS
-YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
-#else
-YY_BUFFER_STATE yy_scan_bytes( bytes, len )
-yyconst char *bytes;
-int len;
-#endif
-	{
+/** Setup the input buffer state to scan the given bytes. The next call to H5LTyylex() will
+ * scan from a @e copy of @a bytes.
+ * @param yybytes the byte buffer to scan
+ * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
+ * 
+ * @return the newly allocated buffer state object.
+ */
+YY_BUFFER_STATE H5LTyy_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
+{
 	YY_BUFFER_STATE b;
 	char *buf;
 	yy_size_t n;
 	int i;
-
+    
 	/* Get memory for full buffer, including space for trailing EOB's. */
-	n = len + 2;
-	buf = (char *) yy_flex_alloc( n );
+	n = _yybytes_len + 2;
+	buf = (char *) H5LTyyalloc(n  );
 	if ( ! buf )
-		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
+		YY_FATAL_ERROR( "out of dynamic memory in H5LTyy_scan_bytes()" );
 
-	for ( i = 0; i < len; ++i )
-		buf[i] = bytes[i];
+	for ( i = 0; i < _yybytes_len; ++i )
+		buf[i] = yybytes[i];
 
-	buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
+	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
 
-	b = yy_scan_buffer( buf, n );
+	b = H5LTyy_scan_buffer(buf,n );
 	if ( ! b )
-		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
+		YY_FATAL_ERROR( "bad buffer in H5LTyy_scan_bytes()" );
 
 	/* It's okay to grow etc. this buffer, and we should throw it
 	 * away when we're done.
@@ -2165,148 +2295,204 @@ int len;
 	b->yy_is_our_buffer = 1;
 
 	return b;
-	}
+}
+
+#ifndef YY_EXIT_FAILURE
+#define YY_EXIT_FAILURE 2
 #endif
 
+static void yy_fatal_error (yyconst char* msg )
+{
+    	(void) fprintf( stderr, "%s\n", msg );
+	exit( YY_EXIT_FAILURE );
+}
 
-#ifndef YY_NO_PUSH_STATE
-#ifdef YY_USE_PROTOS
-static void yy_push_state( int new_state )
-#else
-static void yy_push_state( new_state )
-int new_state;
-#endif
-	{
-	if ( yy_start_stack_ptr >= yy_start_stack_depth )
-		{
-		yy_size_t new_size;
+/* Redefine yyless() so it works in section 3 code. */
 
-		yy_start_stack_depth += YY_START_STACK_INCR;
-		new_size = yy_start_stack_depth * sizeof( int );
+#undef yyless
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up H5LTyytext. */ \
+        int yyless_macro_arg = (n); \
+        YY_LESS_LINENO(yyless_macro_arg);\
+		H5LTyytext[H5LTyyleng] = (yy_hold_char); \
+		(yy_c_buf_p) = H5LTyytext + yyless_macro_arg; \
+		(yy_hold_char) = *(yy_c_buf_p); \
+		*(yy_c_buf_p) = '\0'; \
+		H5LTyyleng = yyless_macro_arg; \
+		} \
+	while ( 0 )
 
-		if ( ! yy_start_stack )
-			yy_start_stack = (int *) yy_flex_alloc( new_size );
+/* Accessor  methods (get/set functions) to struct members. */
 
-		else
-			yy_start_stack = (int *) yy_flex_realloc(
-					(void *) yy_start_stack, new_size );
+/** Get the current line number.
+ * 
+ */
+int H5LTyyget_lineno  (void)
+{
+        
+    return H5LTyylineno;
+}
 
-		if ( ! yy_start_stack )
-			YY_FATAL_ERROR(
-			"out of memory expanding start-condition stack" );
-		}
+/** Get the input stream.
+ * 
+ */
+FILE *H5LTyyget_in  (void)
+{
+        return H5LTyyin;
+}
 
-	yy_start_stack[yy_start_stack_ptr++] = YY_START;
+/** Get the output stream.
+ * 
+ */
+FILE *H5LTyyget_out  (void)
+{
+        return H5LTyyout;
+}
 
-	BEGIN(new_state);
-	}
-#endif
+/** Get the length of the current token.
+ * 
+ */
+yy_size_t H5LTyyget_leng  (void)
+{
+        return H5LTyyleng;
+}
 
+/** Get the current token.
+ * 
+ */
 
-#ifndef YY_NO_POP_STATE
-static void yy_pop_state()
-	{
-	if ( --yy_start_stack_ptr < 0 )
-		YY_FATAL_ERROR( "start-condition stack underflow" );
+char *H5LTyyget_text  (void)
+{
+        return H5LTyytext;
+}
 
-	BEGIN(yy_start_stack[yy_start_stack_ptr]);
-	}
-#endif
+/** Set the current line number.
+ * @param line_number
+ * 
+ */
+void H5LTyyset_lineno (int  line_number )
+{
+    
+    H5LTyylineno = line_number;
+}
 
+/** Set the input stream. This does not discard the current
+ * input buffer.
+ * @param in_str A readable stream.
+ * 
+ * @see H5LTyy_switch_to_buffer
+ */
+void H5LTyyset_in (FILE *  in_str )
+{
+        H5LTyyin = in_str ;
+}
 
-#ifndef YY_NO_TOP_STATE
-static int yy_top_state()
-	{
-	return yy_start_stack[yy_start_stack_ptr - 1];
-	}
-#endif
+void H5LTyyset_out (FILE *  out_str )
+{
+        H5LTyyout = out_str ;
+}
 
-#ifndef YY_EXIT_FAILURE
-#define YY_EXIT_FAILURE 2
-#endif
+int H5LTyyget_debug  (void)
+{
+        return H5LTyy_flex_debug;
+}
+
+void H5LTyyset_debug (int  bdebug )
+{
+        H5LTyy_flex_debug = bdebug ;
+}
 
-#ifdef YY_USE_PROTOS
-static void yy_fatal_error( yyconst char msg[] )
+static int yy_init_globals (void)
+{
+        /* Initialization is the same as for the non-reentrant scanner.
+     * This function is called from H5LTyylex_destroy(), so don't allocate here.
+     */
+
+    (yy_buffer_stack) = 0;
+    (yy_buffer_stack_top) = 0;
+    (yy_buffer_stack_max) = 0;
+    (yy_c_buf_p) = (char *) 0;
+    (yy_init) = 0;
+    (yy_start) = 0;
+
+    (yy_state_buf) = 0;
+    (yy_state_ptr) = 0;
+    (yy_full_match) = 0;
+    (yy_lp) = 0;
+
+/* Defined in main.c */
+#ifdef YY_STDINIT
+    H5LTyyin = stdin;
+    H5LTyyout = stdout;
 #else
-static void yy_fatal_error( msg )
-char msg[];
+    H5LTyyin = (FILE *) 0;
+    H5LTyyout = (FILE *) 0;
 #endif
-	{
-	(void) fprintf( stderr, "%s\n", msg );
-	exit( YY_EXIT_FAILURE );
-	}
 
+    /* For future reference: Set errno on error, since we are called by
+     * H5LTyylex_init()
+     */
+    return 0;
+}
 
+/* H5LTyylex_destroy is for both reentrant and non-reentrant scanners. */
+int H5LTyylex_destroy  (void)
+{
+    
+    /* Pop the buffer stack, destroying each element. */
+	while(YY_CURRENT_BUFFER){
+		H5LTyy_delete_buffer(YY_CURRENT_BUFFER  );
+		YY_CURRENT_BUFFER_LVALUE = NULL;
+		H5LTyypop_buffer_state();
+	}
 
-/* Redefine yyless() so it works in section 3 code. */
+	/* Destroy the stack itself. */
+	H5LTyyfree((yy_buffer_stack) );
+	(yy_buffer_stack) = NULL;
 
-#undef yyless
-#define yyless(n) \
-	do \
-		{ \
-		/* Undo effects of setting up yytext. */ \
-		yytext[yyleng] = yy_hold_char; \
-		yy_c_buf_p = yytext + n; \
-		yy_hold_char = *yy_c_buf_p; \
-		*yy_c_buf_p = '\0'; \
-		yyleng = n; \
-		} \
-	while ( 0 )
+    H5LTyyfree ( (yy_state_buf) );
+    (yy_state_buf)  = NULL;
+
+    /* Reset the globals. This is important in a non-reentrant scanner so the next time
+     * H5LTyylex() is called, initialization will occur. */
+    yy_init_globals( );
 
+    return 0;
+}
 
-/* Internal utility routines. */
+/*
+ * Internal utility routines.
+ */
 
 #ifndef yytext_ptr
-#ifdef YY_USE_PROTOS
-static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
-#else
-static void yy_flex_strncpy( s1, s2, n )
-char *s1;
-yyconst char *s2;
-int n;
-#endif
-	{
+static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
+{
 	register int i;
 	for ( i = 0; i < n; ++i )
 		s1[i] = s2[i];
-	}
+}
 #endif
 
 #ifdef YY_NEED_STRLEN
-#ifdef YY_USE_PROTOS
-static int yy_flex_strlen( yyconst char *s )
-#else
-static int yy_flex_strlen( s )
-yyconst char *s;
-#endif
-	{
+static int yy_flex_strlen (yyconst char * s )
+{
 	register int n;
 	for ( n = 0; s[n]; ++n )
 		;
 
 	return n;
-	}
+}
 #endif
 
-
-#ifdef YY_USE_PROTOS
-static void *yy_flex_alloc( yy_size_t size )
-#else
-static void *yy_flex_alloc( size )
-yy_size_t size;
-#endif
-	{
+void *H5LTyyalloc (yy_size_t  size )
+{
 	return (void *) malloc( size );
-	}
+}
 
-#ifdef YY_USE_PROTOS
-static void *yy_flex_realloc( void *ptr, yy_size_t size )
-#else
-static void *yy_flex_realloc( ptr, size )
-void *ptr;
-yy_size_t size;
-#endif
-	{
+void *H5LTyyrealloc  (void * ptr, yy_size_t  size )
+{
 	/* The cast to (char *) in the following accommodates both
 	 * implementations that use char* generic pointers, and those
 	 * that use void* generic pointers.  It works with the latter
@@ -2315,26 +2501,17 @@ yy_size_t size;
 	 * as though doing an assignment.
 	 */
 	return (void *) realloc( (char *) ptr, size );
-	}
+}
 
-#ifdef YY_USE_PROTOS
-static void yy_flex_free( void *ptr )
-#else
-static void yy_flex_free( ptr )
-void *ptr;
-#endif
-	{
-	free( ptr );
-	}
+void H5LTyyfree (void * ptr )
+{
+	free( (char *) ptr );	/* see H5LTyyrealloc() for (char *) cast */
+}
+
+#define YYTABLES_NAME "yytables"
+
+#line 175 "H5LTanalyze.l"
 
-#if YY_MAIN
-int main()
-	{
-	yylex();
-	return 0;
-	}
-#endif
-#line 174 "H5LTanalyze.l"
 
 int my_yyinput(char *buf, int max_size)
 {
@@ -2347,11 +2524,12 @@ int my_yyinput(char *buf, int max_size)
 
 int H5LTyyerror(const char *msg)
 {
-   printf("ERROR: %s before \"%s\".\n", msg, yytext);
+   printf("ERROR: %s before \"%s\".\n", msg, H5LTyytext);
    return 0;
 }
 
-int yywrap()
+int H5LTyywrap()
 {
     return(1);
 }
+
diff --git a/hl/src/H5LTanalyze.l b/hl/src/H5LTanalyze.l
index 9682f78..6c883fc 100644
--- a/hl/src/H5LTanalyze.l
+++ b/hl/src/H5LTanalyze.l
@@ -23,6 +23,7 @@ int my_yyinput(char *, int);
 #undef YY_INPUT
 #define YY_INPUT(b, r, ms) (r=my_yyinput(b, ms))
 #define token(x)        (int)x
+#define hid(x)          (hid_t)x
 
 #ifdef  YY_BUF_SIZE
 #undef  YY_BUF_SIZE
@@ -71,43 +72,43 @@ hbool_t        first_quote = 1;
 
 %%
 
-H5T_STD_I8BE     {return token(H5T_STD_I8BE_TOKEN);}
-H5T_STD_I8LE     {return token(H5T_STD_I8LE_TOKEN);}
-H5T_STD_I16BE    {return token(H5T_STD_I16BE_TOKEN);}
-H5T_STD_I16LE    {return token(H5T_STD_I16LE_TOKEN);}
-H5T_STD_I32BE    {return token(H5T_STD_I32BE_TOKEN);}
-H5T_STD_I32LE    {return token(H5T_STD_I32LE_TOKEN);}
-H5T_STD_I64BE    {return token(H5T_STD_I64BE_TOKEN);}
-H5T_STD_I64LE    {return token(H5T_STD_I64LE_TOKEN);}
-
-H5T_STD_U8BE     {return token(H5T_STD_U8BE_TOKEN);}
-H5T_STD_U8LE     {return token(H5T_STD_U8LE_TOKEN);}
-H5T_STD_U16BE    {return token(H5T_STD_U16BE_TOKEN);}
-H5T_STD_U16LE    {return token(H5T_STD_U16LE_TOKEN);}
-H5T_STD_U32BE    {return token(H5T_STD_U32BE_TOKEN);}
-H5T_STD_U32LE    {return token(H5T_STD_U32LE_TOKEN);}
-H5T_STD_U64BE    {return token(H5T_STD_U64BE_TOKEN);}
-H5T_STD_U64LE    {return token(H5T_STD_U64LE_TOKEN);}
-
-H5T_NATIVE_CHAR  {return token(H5T_NATIVE_CHAR_TOKEN);}
-H5T_NATIVE_SCHAR {return token(H5T_NATIVE_SCHAR_TOKEN);}
-H5T_NATIVE_UCHAR {return token(H5T_NATIVE_UCHAR_TOKEN);}
-H5T_NATIVE_SHORT {return token(H5T_NATIVE_SHORT_TOKEN);}
-H5T_NATIVE_USHORT  {return token(H5T_NATIVE_USHORT_TOKEN);}
-H5T_NATIVE_INT   {return token(H5T_NATIVE_INT_TOKEN);}
-H5T_NATIVE_UINT  {return token(H5T_NATIVE_UINT_TOKEN);}
-H5T_NATIVE_LONG  {return token(H5T_NATIVE_LONG_TOKEN);}
-H5T_NATIVE_ULONG {return token(H5T_NATIVE_ULONG_TOKEN);}
-H5T_NATIVE_LLONG   {return token(H5T_NATIVE_LLONG_TOKEN);}
-H5T_NATIVE_ULLONG  {return token(H5T_NATIVE_ULLONG_TOKEN);}
-
-H5T_IEEE_F32BE   {return token(H5T_IEEE_F32BE_TOKEN);}
-H5T_IEEE_F32LE   {return token(H5T_IEEE_F32LE_TOKEN);}
-H5T_IEEE_F64BE   {return token(H5T_IEEE_F64BE_TOKEN);}
-H5T_IEEE_F64LE   {return token(H5T_IEEE_F64LE_TOKEN);}
-H5T_NATIVE_FLOAT   {return token(H5T_NATIVE_FLOAT_TOKEN);}
-H5T_NATIVE_DOUBLE  {return token(H5T_NATIVE_DOUBLE_TOKEN);}
-H5T_NATIVE_LDOUBLE {return token(H5T_NATIVE_LDOUBLE_TOKEN);}
+H5T_STD_I8BE     {return hid(H5T_STD_I8BE_TOKEN);}
+H5T_STD_I8LE     {return hid(H5T_STD_I8LE_TOKEN);}
+H5T_STD_I16BE    {return hid(H5T_STD_I16BE_TOKEN);}
+H5T_STD_I16LE    {return hid(H5T_STD_I16LE_TOKEN);}
+H5T_STD_I32BE    {return hid(H5T_STD_I32BE_TOKEN);}
+H5T_STD_I32LE    {return hid(H5T_STD_I32LE_TOKEN);}
+H5T_STD_I64BE    {return hid(H5T_STD_I64BE_TOKEN);}
+H5T_STD_I64LE    {return hid(H5T_STD_I64LE_TOKEN);}
+
+H5T_STD_U8BE     {return hid(H5T_STD_U8BE_TOKEN);}
+H5T_STD_U8LE     {return hid(H5T_STD_U8LE_TOKEN);}
+H5T_STD_U16BE    {return hid(H5T_STD_U16BE_TOKEN);}
+H5T_STD_U16LE    {return hid(H5T_STD_U16LE_TOKEN);}
+H5T_STD_U32BE    {return hid(H5T_STD_U32BE_TOKEN);}
+H5T_STD_U32LE    {return hid(H5T_STD_U32LE_TOKEN);}
+H5T_STD_U64BE    {return hid(H5T_STD_U64BE_TOKEN);}
+H5T_STD_U64LE    {return hid(H5T_STD_U64LE_TOKEN);}
+
+H5T_NATIVE_CHAR  {return hid(H5T_NATIVE_CHAR_TOKEN);}
+H5T_NATIVE_SCHAR {return hid(H5T_NATIVE_SCHAR_TOKEN);}
+H5T_NATIVE_UCHAR {return hid(H5T_NATIVE_UCHAR_TOKEN);}
+H5T_NATIVE_SHORT {return hid(H5T_NATIVE_SHORT_TOKEN);}
+H5T_NATIVE_USHORT  {return hid(H5T_NATIVE_USHORT_TOKEN);}
+H5T_NATIVE_INT   {return hid(H5T_NATIVE_INT_TOKEN);}
+H5T_NATIVE_UINT  {return hid(H5T_NATIVE_UINT_TOKEN);}
+H5T_NATIVE_LONG  {return hid(H5T_NATIVE_LONG_TOKEN);}
+H5T_NATIVE_ULONG {return hid(H5T_NATIVE_ULONG_TOKEN);}
+H5T_NATIVE_LLONG   {return hid(H5T_NATIVE_LLONG_TOKEN);}
+H5T_NATIVE_ULLONG  {return hid(H5T_NATIVE_ULLONG_TOKEN);}
+
+H5T_IEEE_F32BE   {return hid(H5T_IEEE_F32BE_TOKEN);}
+H5T_IEEE_F32LE   {return hid(H5T_IEEE_F32LE_TOKEN);}
+H5T_IEEE_F64BE   {return hid(H5T_IEEE_F64BE_TOKEN);}
+H5T_IEEE_F64LE   {return hid(H5T_IEEE_F64LE_TOKEN);}
+H5T_NATIVE_FLOAT   {return hid(H5T_NATIVE_FLOAT_TOKEN);}
+H5T_NATIVE_DOUBLE  {return hid(H5T_NATIVE_DOUBLE_TOKEN);}
+H5T_NATIVE_LDOUBLE {return hid(H5T_NATIVE_LDOUBLE_TOKEN);}
 
 H5T_STRING       {return token(H5T_STRING_TOKEN);}
 STRSIZE          {return token(STRSIZE_TOKEN);}
diff --git a/hl/src/H5LTparse.c b/hl/src/H5LTparse.c
index 4527a5f..aa12185 100644
--- a/hl/src/H5LTparse.c
+++ b/hl/src/H5LTparse.c
@@ -1,63 +1,77 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * Copyright by The HDF Group.                                               *
- * Copyright by the Board of Trustees of the University of Illinois.         *
- * All rights reserved.                                                      *
- *                                                                           *
- * This file is part of HDF5.  The full HDF5 copyright notice, including     *
- * terms governing use, modification, and redistribution, is contained in    *
- * the files COPYING and Copyright.html.  COPYING can be found at the root   *
- * of the source code distribution tree; Copyright.html can be found at the  *
- * root level of an installed copy of the electronic HDF5 document set and   *
- * is linked from the top-level documents page.  It can also be found at     *
- * http://hdfgroup.org/HDF5/doc/Copyright.html.  If you do not have          *
- * access to either file, you may request a copy from help at hdfgroup.org.     *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-/* This file was generated by Yacc with the command "yacc -pH5LTyy -o H5LTparse.c -d H5LTparse.y"
- * on jam.  Do NOT modify it by hand.
- */
-#ifndef lint
-static char const
-yyrcsid[] = "$FreeBSD: src/usr.bin/yacc/skeleton.c,v 1.28 2000/01/17 02:04:06 bde Exp $";
-#endif
-#include <stdlib.h>
-#define YYBYACC 1
-#define YYMAJOR 1
-#define YYMINOR 9
-#define YYLEX yylex()
-#define YYEMPTY -1
-#define yyclearin (yychar=(YYEMPTY))
-#define yyerrok (yyerrflag=0)
-#define YYRECOVERING() (yyerrflag!=0)
-static int yygrowstack();
-#define yyparse H5LTyyparse
-#define yylex H5LTyylex
-#define yyerror H5LTyyerror
-#define yychar H5LTyychar
-#define yyval H5LTyyval
-#define yylval H5LTyylval
-#define yydebug H5LTyydebug
-#define yynerrs H5LTyynerrs
-#define yyerrflag H5LTyyerrflag
-#define yyss H5LTyyss
-#define yyssp H5LTyyssp
-#define yyvs H5LTyyvs
-#define yyvsp H5LTyyvsp
-#define yylhs H5LTyylhs
-#define yylen H5LTyylen
-#define yydefred H5LTyydefred
-#define yydgoto H5LTyydgoto
-#define yysindex H5LTyysindex
-#define yyrindex H5LTyyrindex
-#define yygindex H5LTyygindex
-#define yytable H5LTyytable
-#define yycheck H5LTyycheck
-#define yyname H5LTyyname
-#define yyrule H5LTyyrule
-#define yysslim H5LTyysslim
-#define yystacksize H5LTyystacksize
-#define YYPREFIX "H5LTyy"
-#line 17 "H5LTparse.y"
+/* A Bison parser, made by GNU Bison 2.7.  */
+
+/* Bison implementation for Yacc-like parsers in C
+   
+      Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc.
+   
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
+   
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+   
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* As a special exception, you may create a larger work that contains
+   part or all of the Bison parser skeleton and distribute that work
+   under terms of your choice, so long as that work isn't itself a
+   parser generator using the skeleton or a modified version thereof
+   as a parser skeleton.  Alternatively, if you modify or redistribute
+   the parser skeleton itself, you may (at your option) remove this
+   special exception, which will cause the skeleton and the resulting
+   Bison output files to be licensed under the GNU General Public
+   License without this special exception.
+   
+   This special exception was added by the Free Software Foundation in
+   version 2.2 of Bison.  */
+
+/* C LALR(1) parser skeleton written by Richard Stallman, by
+   simplifying the original so-called "semantic" parser.  */
+
+/* All symbols defined below should begin with yy or YY, to avoid
+   infringing on user name space.  This should be done even for local
+   variables, as they might otherwise be expanded by user macros.
+   There are some unavoidable exceptions within include files to
+   define necessary library symbols; they are noted "INFRINGES ON
+   USER NAME SPACE" below.  */
+
+/* Identify Bison output.  */
+#define YYBISON 1
+
+/* Bison version.  */
+#define YYBISON_VERSION "2.7"
+
+/* Skeleton name.  */
+#define YYSKELETON_NAME "yacc.c"
+
+/* Pure parsers.  */
+#define YYPURE 0
+
+/* Push parsers.  */
+#define YYPUSH 0
+
+/* Pull parsers.  */
+#define YYPULL 1
+
+
+/* Substitute the variable and function names.  */
+#define yyparse         H5LTyyparse
+#define yylex           H5LTyylex
+#define yyerror         H5LTyyerror
+#define yylval          H5LTyylval
+#define yychar          H5LTyychar
+#define yydebug         H5LTyydebug
+#define yynerrs         H5LTyynerrs
+
+/* Copy the first part of user declarations.  */
+/* Line 371 of yacc.c  */
+#line 16 "H5LTparse.y"
+
 #include <stdio.h>
 #include <string.h>
 #include <hdf5.h>
@@ -91,7 +105,7 @@ struct arr_info {
 };
 /*stack for nested array type*/
 struct arr_info arr_stack[STACK_SIZE];
-int asindex = -1;               /*pointer to the top of array stack*/
+int asindex = -1;               /*pointer to the top of array stack*/ 
 
 hbool_t     is_str_size = 0;        /*flag to lexer for string size*/
 hbool_t     is_str_pad = 0;         /*flag to lexer for string padding*/
@@ -99,7 +113,7 @@ H5T_str_t   str_pad;                /*variable for string padding*/
 H5T_cset_t  str_cset;               /*variable for string character set*/
 hbool_t     is_variable = 0;        /*variable for variable-length string*/
 size_t      str_size;               /*variable for string size*/
-
+   
 hid_t       enum_id;                /*type ID*/
 hbool_t     is_enum = 0;            /*flag to lexer for enum type*/
 hbool_t     is_enum_memb = 0;       /*flag to lexer for enum member*/
@@ -108,881 +122,1933 @@ char*       enum_memb_symbol;       /*enum member symbol string*/
 hbool_t is_opq_size = 0;            /*flag to lexer for opaque type size*/
 hbool_t is_opq_tag = 0;             /*flag to lexer for opaque type tag*/
 
+
+/* Line 371 of yacc.c  */
+#line 128 "H5LTparse.c"
+
+# ifndef YY_NULL
+#  if defined __cplusplus && 201103L <= __cplusplus
+#   define YY_NULL nullptr
+#  else
+#   define YY_NULL 0
+#  endif
+# endif
+
+/* Enabling verbose error messages.  */
+#ifdef YYERROR_VERBOSE
+# undef YYERROR_VERBOSE
+# define YYERROR_VERBOSE 1
+#else
+# define YYERROR_VERBOSE 0
+#endif
+
+/* In a future release of Bison, this section will be replaced
+   by #include "H5LTparse.h".  */
+#ifndef YY_H5LTYY_H5LTPARSE_H_INCLUDED
+# define YY_H5LTYY_H5LTPARSE_H_INCLUDED
+/* Enabling traces.  */
+#ifndef YYDEBUG
+# define YYDEBUG 0
+#endif
+#if YYDEBUG
+extern int H5LTyydebug;
+#endif
+
+/* Tokens.  */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+   /* Put the tokens into the symbol table, so that GDB and other debuggers
+      know about them.  */
+   enum yytokentype {
+     H5T_STD_I8BE_TOKEN = 258,
+     H5T_STD_I8LE_TOKEN = 259,
+     H5T_STD_I16BE_TOKEN = 260,
+     H5T_STD_I16LE_TOKEN = 261,
+     H5T_STD_I32BE_TOKEN = 262,
+     H5T_STD_I32LE_TOKEN = 263,
+     H5T_STD_I64BE_TOKEN = 264,
+     H5T_STD_I64LE_TOKEN = 265,
+     H5T_STD_U8BE_TOKEN = 266,
+     H5T_STD_U8LE_TOKEN = 267,
+     H5T_STD_U16BE_TOKEN = 268,
+     H5T_STD_U16LE_TOKEN = 269,
+     H5T_STD_U32BE_TOKEN = 270,
+     H5T_STD_U32LE_TOKEN = 271,
+     H5T_STD_U64BE_TOKEN = 272,
+     H5T_STD_U64LE_TOKEN = 273,
+     H5T_NATIVE_CHAR_TOKEN = 274,
+     H5T_NATIVE_SCHAR_TOKEN = 275,
+     H5T_NATIVE_UCHAR_TOKEN = 276,
+     H5T_NATIVE_SHORT_TOKEN = 277,
+     H5T_NATIVE_USHORT_TOKEN = 278,
+     H5T_NATIVE_INT_TOKEN = 279,
+     H5T_NATIVE_UINT_TOKEN = 280,
+     H5T_NATIVE_LONG_TOKEN = 281,
+     H5T_NATIVE_ULONG_TOKEN = 282,
+     H5T_NATIVE_LLONG_TOKEN = 283,
+     H5T_NATIVE_ULLONG_TOKEN = 284,
+     H5T_IEEE_F32BE_TOKEN = 285,
+     H5T_IEEE_F32LE_TOKEN = 286,
+     H5T_IEEE_F64BE_TOKEN = 287,
+     H5T_IEEE_F64LE_TOKEN = 288,
+     H5T_NATIVE_FLOAT_TOKEN = 289,
+     H5T_NATIVE_DOUBLE_TOKEN = 290,
+     H5T_NATIVE_LDOUBLE_TOKEN = 291,
+     H5T_STRING_TOKEN = 292,
+     STRSIZE_TOKEN = 293,
+     STRPAD_TOKEN = 294,
+     CSET_TOKEN = 295,
+     CTYPE_TOKEN = 296,
+     H5T_VARIABLE_TOKEN = 297,
+     H5T_STR_NULLTERM_TOKEN = 298,
+     H5T_STR_NULLPAD_TOKEN = 299,
+     H5T_STR_SPACEPAD_TOKEN = 300,
+     H5T_CSET_ASCII_TOKEN = 301,
+     H5T_CSET_UTF8_TOKEN = 302,
+     H5T_C_S1_TOKEN = 303,
+     H5T_FORTRAN_S1_TOKEN = 304,
+     H5T_OPAQUE_TOKEN = 305,
+     OPQ_SIZE_TOKEN = 306,
+     OPQ_TAG_TOKEN = 307,
+     H5T_COMPOUND_TOKEN = 308,
+     H5T_ENUM_TOKEN = 309,
+     H5T_ARRAY_TOKEN = 310,
+     H5T_VLEN_TOKEN = 311,
+     STRING = 312,
+     NUMBER = 313
+   };
+#endif
+
+
+#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
+typedef union YYSTYPE
+{
+/* Line 387 of yacc.c  */
 #line 68 "H5LTparse.y"
-typedef union {
-    int   ival;         /*for integer token*/
-    char  *sval;        /*for name string*/
+
+    int     ival;         /*for integer token*/
+    char    *sval;        /*for name string*/
+    hid_t   hid;          /*for hid_t token*/
+
+
+/* Line 387 of yacc.c  */
+#line 236 "H5LTparse.c"
 } YYSTYPE;
-#line 117 "H5LTparse.c"
-#define YYERRCODE 256
-#define H5T_STD_I8BE_TOKEN 257
-#define H5T_STD_I8LE_TOKEN 258
-#define H5T_STD_I16BE_TOKEN 259
-#define H5T_STD_I16LE_TOKEN 260
-#define H5T_STD_I32BE_TOKEN 261
-#define H5T_STD_I32LE_TOKEN 262
-#define H5T_STD_I64BE_TOKEN 263
-#define H5T_STD_I64LE_TOKEN 264
-#define H5T_STD_U8BE_TOKEN 265
-#define H5T_STD_U8LE_TOKEN 266
-#define H5T_STD_U16BE_TOKEN 267
-#define H5T_STD_U16LE_TOKEN 268
-#define H5T_STD_U32BE_TOKEN 269
-#define H5T_STD_U32LE_TOKEN 270
-#define H5T_STD_U64BE_TOKEN 271
-#define H5T_STD_U64LE_TOKEN 272
-#define H5T_NATIVE_CHAR_TOKEN 273
-#define H5T_NATIVE_SCHAR_TOKEN 274
-#define H5T_NATIVE_UCHAR_TOKEN 275
-#define H5T_NATIVE_SHORT_TOKEN 276
-#define H5T_NATIVE_USHORT_TOKEN 277
-#define H5T_NATIVE_INT_TOKEN 278
-#define H5T_NATIVE_UINT_TOKEN 279
-#define H5T_NATIVE_LONG_TOKEN 280
-#define H5T_NATIVE_ULONG_TOKEN 281
-#define H5T_NATIVE_LLONG_TOKEN 282
-#define H5T_NATIVE_ULLONG_TOKEN 283
-#define H5T_IEEE_F32BE_TOKEN 284
-#define H5T_IEEE_F32LE_TOKEN 285
-#define H5T_IEEE_F64BE_TOKEN 286
-#define H5T_IEEE_F64LE_TOKEN 287
-#define H5T_NATIVE_FLOAT_TOKEN 288
-#define H5T_NATIVE_DOUBLE_TOKEN 289
-#define H5T_NATIVE_LDOUBLE_TOKEN 290
-#define H5T_STRING_TOKEN 291
-#define STRSIZE_TOKEN 292
-#define STRPAD_TOKEN 293
-#define CSET_TOKEN 294
-#define CTYPE_TOKEN 295
-#define H5T_VARIABLE_TOKEN 296
-#define H5T_STR_NULLTERM_TOKEN 297
-#define H5T_STR_NULLPAD_TOKEN 298
-#define H5T_STR_SPACEPAD_TOKEN 299
-#define H5T_CSET_ASCII_TOKEN 300
-#define H5T_CSET_UTF8_TOKEN 301
-#define H5T_C_S1_TOKEN 302
-#define H5T_FORTRAN_S1_TOKEN 303
-#define H5T_OPAQUE_TOKEN 304
-#define OPQ_SIZE_TOKEN 305
-#define OPQ_TAG_TOKEN 306
-#define H5T_COMPOUND_TOKEN 307
-#define H5T_ENUM_TOKEN 308
-#define H5T_ARRAY_TOKEN 309
-#define H5T_VLEN_TOKEN 310
-#define STRING 311
-#define NUMBER 312
-const short H5LTyylhs[] = {                                        -1,
-    0,    0,    1,    1,    1,    1,    2,    2,    2,    2,
-    2,    6,    6,    6,    6,    6,    6,    6,    6,    6,
-    6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
-    6,    6,    6,    6,    6,    6,    6,    6,    7,    7,
-    7,    7,    7,    7,    7,   11,    3,   12,   12,   14,
-   13,   15,   16,   16,   17,   18,    4,   19,   19,   22,
-   23,   20,   21,    5,   25,   26,   27,   29,   10,   24,
-   28,   31,   32,   34,   36,   38,    8,   30,   30,   33,
-   33,   33,   35,   35,   37,   37,   40,    9,   39,   39,
-   44,   41,   42,   43,
+# define YYSTYPE_IS_TRIVIAL 1
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
+# define YYSTYPE_IS_DECLARED 1
+#endif
+
+extern YYSTYPE H5LTyylval;
+
+#ifdef YYPARSE_PARAM
+#if defined __STDC__ || defined __cplusplus
+hid_t H5LTyyparse (void *YYPARSE_PARAM);
+#else
+hid_t H5LTyyparse ();
+#endif
+#else /* ! YYPARSE_PARAM */
+#if defined __STDC__ || defined __cplusplus
+hid_t H5LTyyparse (void);
+#else
+hid_t H5LTyyparse ();
+#endif
+#endif /* ! YYPARSE_PARAM */
+
+#endif /* !YY_H5LTYY_H5LTPARSE_H_INCLUDED  */
+
+/* Copy the second part of user declarations.  */
+
+/* Line 390 of yacc.c  */
+#line 264 "H5LTparse.c"
+
+#ifdef short
+# undef short
+#endif
+
+#ifdef YYTYPE_UINT8
+typedef YYTYPE_UINT8 yytype_uint8;
+#else
+typedef unsigned char yytype_uint8;
+#endif
+
+#ifdef YYTYPE_INT8
+typedef YYTYPE_INT8 yytype_int8;
+#elif (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+typedef signed char yytype_int8;
+#else
+typedef short int yytype_int8;
+#endif
+
+#ifdef YYTYPE_UINT16
+typedef YYTYPE_UINT16 yytype_uint16;
+#else
+typedef unsigned short int yytype_uint16;
+#endif
+
+#ifdef YYTYPE_INT16
+typedef YYTYPE_INT16 yytype_int16;
+#else
+typedef short int yytype_int16;
+#endif
+
+#ifndef YYSIZE_T
+# ifdef __SIZE_TYPE__
+#  define YYSIZE_T __SIZE_TYPE__
+# elif defined size_t
+#  define YYSIZE_T size_t
+# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
+#  define YYSIZE_T size_t
+# else
+#  define YYSIZE_T unsigned int
+# endif
+#endif
+
+#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
+
+#ifndef YY_
+# if defined YYENABLE_NLS && YYENABLE_NLS
+#  if ENABLE_NLS
+#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
+#   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
+#  endif
+# endif
+# ifndef YY_
+#  define YY_(Msgid) Msgid
+# endif
+#endif
+
+/* Suppress unused-variable warnings by "using" E.  */
+#if ! defined lint || defined __GNUC__
+# define YYUSE(E) ((void) (E))
+#else
+# define YYUSE(E) /* empty */
+#endif
+
+/* Identity function, used to suppress warnings about constant conditions.  */
+#ifndef lint
+# define YYID(N) (N)
+#else
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+static int
+YYID (int yyi)
+#else
+static int
+YYID (yyi)
+    int yyi;
+#endif
+{
+  return yyi;
+}
+#endif
+
+#if ! defined yyoverflow || YYERROR_VERBOSE
+
+/* The parser invokes alloca or malloc; define the necessary symbols.  */
+
+# ifdef YYSTACK_USE_ALLOCA
+#  if YYSTACK_USE_ALLOCA
+#   ifdef __GNUC__
+#    define YYSTACK_ALLOC __builtin_alloca
+#   elif defined __BUILTIN_VA_ARG_INCR
+#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
+#   elif defined _AIX
+#    define YYSTACK_ALLOC __alloca
+#   elif defined _MSC_VER
+#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
+#    define alloca _alloca
+#   else
+#    define YYSTACK_ALLOC alloca
+#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
+#     ifndef EXIT_SUCCESS
+#      define EXIT_SUCCESS 0
+#     endif
+#    endif
+#   endif
+#  endif
+# endif
+
+# ifdef YYSTACK_ALLOC
+   /* Pacify GCC's `empty if-body' warning.  */
+#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
+#  ifndef YYSTACK_ALLOC_MAXIMUM
+    /* The OS might guarantee only one guard page at the bottom of the stack,
+       and a page size can be as small as 4096 bytes.  So we cannot safely
+       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
+       to allow for a few compiler-allocated temporary stack slots.  */
+#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
+#  endif
+# else
+#  define YYSTACK_ALLOC YYMALLOC
+#  define YYSTACK_FREE YYFREE
+#  ifndef YYSTACK_ALLOC_MAXIMUM
+#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
+#  endif
+#  if (defined __cplusplus && ! defined EXIT_SUCCESS \
+       && ! ((defined YYMALLOC || defined malloc) \
+	     && (defined YYFREE || defined free)))
+#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+#   ifndef EXIT_SUCCESS
+#    define EXIT_SUCCESS 0
+#   endif
+#  endif
+#  ifndef YYMALLOC
+#   define YYMALLOC malloc
+#   if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
+#   endif
+#  endif
+#  ifndef YYFREE
+#   define YYFREE free
+#   if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+void free (void *); /* INFRINGES ON USER NAME SPACE */
+#   endif
+#  endif
+# endif
+#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
+
+
+#if (! defined yyoverflow \
+     && (! defined __cplusplus \
+	 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
+
+/* A type that is properly aligned for any stack member.  */
+union yyalloc
+{
+  yytype_int16 yyss_alloc;
+  YYSTYPE yyvs_alloc;
 };
-const short H5LTyylen[] = {                                         2,
-    0,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-    1,    1,    1,    1,    1,    0,    5,    0,    2,    0,
-    7,    1,    0,    2,    1,    0,    6,    0,    2,    0,
-    0,    5,    1,    4,    0,    0,    0,    0,   15,    1,
-    1,    0,    0,    0,    0,    0,   20,    1,    1,    1,
-    1,    1,    1,    1,    1,    1,    0,    7,    0,    2,
-    0,    6,    1,    1,
+
+/* The size of the maximum gap between one aligned stack and the next.  */
+# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
+
+/* The size of an array large to enough to hold all stacks, each with
+   N elements.  */
+# define YYSTACK_BYTES(N) \
+     ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
+      + YYSTACK_GAP_MAXIMUM)
+
+# define YYCOPY_NEEDED 1
+
+/* Relocate STACK from its old location to the new one.  The
+   local variables YYSIZE and YYSTACKSIZE give the old and new number of
+   elements in the stack, and YYPTR gives the new location of the
+   stack.  Advance YYPTR to a properly aligned location for the next
+   stack.  */
+# define YYSTACK_RELOCATE(Stack_alloc, Stack)				\
+    do									\
+      {									\
+	YYSIZE_T yynewbytes;						\
+	YYCOPY (&yyptr->Stack_alloc, Stack, yysize);			\
+	Stack = &yyptr->Stack_alloc;					\
+	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
+	yyptr += yynewbytes / sizeof (*yyptr);				\
+      }									\
+    while (YYID (0))
+
+#endif
+
+#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
+/* Copy COUNT objects from SRC to DST.  The source and destination do
+   not overlap.  */
+# ifndef YYCOPY
+#  if defined __GNUC__ && 1 < __GNUC__
+#   define YYCOPY(Dst, Src, Count) \
+      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
+#  else
+#   define YYCOPY(Dst, Src, Count)              \
+      do                                        \
+        {                                       \
+          YYSIZE_T yyi;                         \
+          for (yyi = 0; yyi < (Count); yyi++)   \
+            (Dst)[yyi] = (Src)[yyi];            \
+        }                                       \
+      while (YYID (0))
+#  endif
+# endif
+#endif /* !YYCOPY_NEEDED */
+
+/* YYFINAL -- State number of the termination state.  */
+#define YYFINAL  58
+/* YYLAST -- Last index in YYTABLE.  */
+#define YYLAST   203
+
+/* YYNTOKENS -- Number of terminals.  */
+#define YYNTOKENS  66
+/* YYNNTS -- Number of nonterminals.  */
+#define YYNNTS  46
+/* YYNRULES -- Number of rules.  */
+#define YYNRULES  95
+/* YYNRULES -- Number of states.  */
+#define YYNSTATES  143
+
+/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
+#define YYUNDEFTOK  2
+#define YYMAXUTOK   313
+
+#define YYTRANSLATE(YYX)						\
+  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
+
+/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
+static const yytype_uint8 yytranslate[] =
+{
+       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,    63,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,    64,    65,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,    61,     2,    62,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,    59,     2,    60,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
+       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
+      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
+      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
+      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
+      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
+      55,    56,    57,    58
 };
-const short H5LTyydefred[] = {                                      0,
-   12,   13,   14,   15,   16,   17,   18,   19,   20,   21,
-   22,   23,   24,   25,   26,   27,   28,   29,   30,   31,
-   32,   33,   34,   35,   36,   37,   38,   39,   40,   41,
-   42,   43,   44,   45,    0,    0,   46,    0,   56,    0,
-    0,    2,    3,    4,    5,    6,    7,    8,    9,   10,
-   11,    0,    0,    0,    0,    0,    0,   72,   65,   48,
-    0,   58,    0,    0,    0,    0,   87,    0,   64,   78,
-   79,    0,   70,    0,   47,   50,   49,   89,   60,    0,
-   59,   73,   66,    0,    0,    0,   57,    0,    0,    0,
-   88,    0,   90,   63,   61,    0,   67,   52,    0,   93,
-    0,    0,   80,   81,   82,    0,    0,    0,   91,   62,
-   74,    0,    0,    0,    0,    0,   71,    0,   55,   54,
-   51,   94,    0,    0,    0,   92,   83,   84,    0,   68,
-   75,    0,    0,   69,    0,   85,   86,    0,   76,    0,
-   77,
+
+#if YYDEBUG
+/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
+   YYRHS.  */
+static const yytype_uint8 yyprhs[] =
+{
+       0,     0,     3,     4,     6,     8,    10,    12,    14,    16,
+      18,    20,    22,    24,    26,    28,    30,    32,    34,    36,
+      38,    40,    42,    44,    46,    48,    50,    52,    54,    56,
+      58,    60,    62,    64,    66,    68,    70,    72,    74,    76,
+      78,    80,    82,    84,    86,    88,    90,    92,    93,    99,
+     100,   103,   104,   112,   114,   115,   118,   120,   121,   128,
+     129,   132,   133,   134,   140,   142,   147,   148,   149,   150,
+     151,   167,   169,   171,   172,   173,   174,   175,   176,   197,
+     199,   201,   203,   205,   207,   209,   211,   213,   215,   216,
+     224,   225,   228,   229,   236,   238
 };
-const short H5LTyydgoto[] = {                                      41,
-   42,   43,   44,   45,   46,   47,   48,   49,   50,   51,
-   54,   66,   77,   84,   99,  114,  120,   56,   68,   81,
-   95,   86,  102,   74,   65,   89,  107,  118,  132,   72,
-   64,   88,  106,  116,  129,  133,  138,  140,   85,   78,
-   93,  101,  123,  115,
+
+/* YYRHS -- A `-1'-separated list of the rules' RHS.  */
+static const yytype_int8 yyrhs[] =
+{
+      67,     0,    -1,    -1,    68,    -1,    69,    -1,    72,    -1,
+      80,    -1,    87,    -1,    70,    -1,    71,    -1,    95,    -1,
+     105,    -1,    88,    -1,     3,    -1,     4,    -1,     5,    -1,
+       6,    -1,     7,    -1,     8,    -1,     9,    -1,    10,    -1,
+      11,    -1,    12,    -1,    13,    -1,    14,    -1,    15,    -1,
+      16,    -1,    17,    -1,    18,    -1,    19,    -1,    20,    -1,
+      21,    -1,    22,    -1,    23,    -1,    24,    -1,    25,    -1,
+      26,    -1,    27,    -1,    28,    -1,    29,    -1,    30,    -1,
+      31,    -1,    32,    -1,    33,    -1,    34,    -1,    35,    -1,
+      36,    -1,    -1,    53,    73,    59,    74,    60,    -1,    -1,
+      74,    75,    -1,    -1,    68,    76,    63,    77,    63,    78,
+      65,    -1,    57,    -1,    -1,    64,    79,    -1,    58,    -1,
+      -1,    55,    81,    59,    82,    68,    60,    -1,    -1,    82,
+      83,    -1,    -1,    -1,    61,    84,    86,    85,    62,    -1,
+      58,    -1,    56,    59,    68,    60,    -1,    -1,    -1,    -1,
+      -1,    50,    59,    51,    89,    93,    65,    90,    52,    91,
+      63,    94,    63,    65,    92,    60,    -1,    58,    -1,    57,
+      -1,    -1,    -1,    -1,    -1,    -1,    37,    59,    38,    96,
+     101,    65,    97,    39,   102,    65,    98,    40,   103,    65,
+      99,    41,   104,    65,   100,    60,    -1,    42,    -1,    58,
+      -1,    43,    -1,    44,    -1,    45,    -1,    46,    -1,    47,
+      -1,    48,    -1,    49,    -1,    -1,    54,    59,    70,    65,
+     106,   107,    60,    -1,    -1,   107,   108,    -1,    -1,    63,
+     110,    63,   109,   111,    65,    -1,    57,    -1,    58,    -1
 };
-const short H5LTyysindex[] = {                                   -255,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,  -82,  -79,    0,  -78,    0,  -76,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0, -208, -220,  -36, -201,  -34, -255,    0,    0,    0,
-   27,    0,  -35, -213, -221,  -37,    0,  -91,    0,    0,
-    0,   34,    0,   35,    0,    0,    0,    0,    0,  -30,
-    0,    0,    0,   62,  -33, -215,    0, -195, -206, -210,
-    0, -209,    0,    0,    0, -259,    0,    0,   69,    0,
-   70,   12,    0,    0,    0,   47,   73,   50,    0,    0,
-    0, -202, -200,   51, -199, -183,    0,   80,    0,    0,
-    0,    0,   56, -258,   57,    0,    0,    0,   58,    0,
-    0,   -7, -176,    0, -252,    0,    0,   61,    0,   -4,
-    0,
+
+/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
+static const yytype_uint16 yyrline[] =
+{
+       0,   101,   101,   102,   104,   105,   106,   107,   109,   110,
+     111,   112,   113,   116,   117,   118,   119,   120,   121,   122,
+     123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
+     133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
+     145,   146,   147,   148,   149,   150,   151,   155,   154,   163,
+     164,   166,   166,   200,   206,   207,   210,   212,   212,   221,
+     222,   224,   225,   224,   232,   235,   241,   242,   247,   248,
+     239,   254,   256,   260,   261,   269,   278,   285,   258,   309,
+     310,   312,   313,   314,   316,   317,   319,   320,   324,   323,
+     328,   329,   331,   331,   383,   385
 };
-const short H5LTyyrindex[] = {                                    122,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,   64,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,
+#endif
+
+#if YYDEBUG || YYERROR_VERBOSE || 0
+/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
+   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
+static const char *const yytname[] =
+{
+  "$end", "error", "$undefined", "H5T_STD_I8BE_TOKEN",
+  "H5T_STD_I8LE_TOKEN", "H5T_STD_I16BE_TOKEN", "H5T_STD_I16LE_TOKEN",
+  "H5T_STD_I32BE_TOKEN", "H5T_STD_I32LE_TOKEN", "H5T_STD_I64BE_TOKEN",
+  "H5T_STD_I64LE_TOKEN", "H5T_STD_U8BE_TOKEN", "H5T_STD_U8LE_TOKEN",
+  "H5T_STD_U16BE_TOKEN", "H5T_STD_U16LE_TOKEN", "H5T_STD_U32BE_TOKEN",
+  "H5T_STD_U32LE_TOKEN", "H5T_STD_U64BE_TOKEN", "H5T_STD_U64LE_TOKEN",
+  "H5T_NATIVE_CHAR_TOKEN", "H5T_NATIVE_SCHAR_TOKEN",
+  "H5T_NATIVE_UCHAR_TOKEN", "H5T_NATIVE_SHORT_TOKEN",
+  "H5T_NATIVE_USHORT_TOKEN", "H5T_NATIVE_INT_TOKEN",
+  "H5T_NATIVE_UINT_TOKEN", "H5T_NATIVE_LONG_TOKEN",
+  "H5T_NATIVE_ULONG_TOKEN", "H5T_NATIVE_LLONG_TOKEN",
+  "H5T_NATIVE_ULLONG_TOKEN", "H5T_IEEE_F32BE_TOKEN",
+  "H5T_IEEE_F32LE_TOKEN", "H5T_IEEE_F64BE_TOKEN", "H5T_IEEE_F64LE_TOKEN",
+  "H5T_NATIVE_FLOAT_TOKEN", "H5T_NATIVE_DOUBLE_TOKEN",
+  "H5T_NATIVE_LDOUBLE_TOKEN", "H5T_STRING_TOKEN", "STRSIZE_TOKEN",
+  "STRPAD_TOKEN", "CSET_TOKEN", "CTYPE_TOKEN", "H5T_VARIABLE_TOKEN",
+  "H5T_STR_NULLTERM_TOKEN", "H5T_STR_NULLPAD_TOKEN",
+  "H5T_STR_SPACEPAD_TOKEN", "H5T_CSET_ASCII_TOKEN", "H5T_CSET_UTF8_TOKEN",
+  "H5T_C_S1_TOKEN", "H5T_FORTRAN_S1_TOKEN", "H5T_OPAQUE_TOKEN",
+  "OPQ_SIZE_TOKEN", "OPQ_TAG_TOKEN", "H5T_COMPOUND_TOKEN",
+  "H5T_ENUM_TOKEN", "H5T_ARRAY_TOKEN", "H5T_VLEN_TOKEN", "STRING",
+  "NUMBER", "'{'", "'}'", "'['", "']'", "'\"'", "':'", "';'", "$accept",
+  "start", "ddl_type", "atomic_type", "integer_type", "fp_type",
+  "compound_type", "$@1", "memb_list", "memb_def", "$@2", "field_name",
+  "field_offset", "offset", "array_type", "$@3", "dim_list", "dim", "$@4",
+  "$@5", "dimsize", "vlen_type", "opaque_type", "$@6", "@7", "$@8", "$@9",
+  "opaque_size", "opaque_tag", "string_type", "$@10", "$@11", "$@12",
+  "$@13", "@14", "strsize", "strpad", "cset", "ctype", "enum_type", "$@15",
+  "enum_list", "enum_def", "$@16", "enum_symbol", "enum_val", YY_NULL
 };
-const short H5LTyygindex[] = {                                      0,
-  -20,    0,    0,    0,    0,   71,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,
+#endif
+
+# ifdef YYPRINT
+/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
+   token YYLEX-NUM.  */
+static const yytype_uint16 yytoknum[] =
+{
+       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
+     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
+     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
+     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
+     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,   313,   123,
+     125,    91,    93,    34,    58,    59
 };
-#define YYTABLESIZE 273
-const short H5LTyytable[] = {                                      79,
-   92,    1,    2,    3,    4,    5,    6,    7,    8,    9,
-   10,   11,   12,   13,   14,   15,   16,   17,   18,   19,
-   20,   21,   22,   23,   24,   25,   26,   27,   28,   29,
-   30,   31,   32,   33,   34,   35,   63,  103,  104,  105,
-   52,  127,  128,   53,   55,   76,   57,   80,   36,  136,
-  137,   37,   38,   39,   40,    1,    2,    3,    4,    5,
-    6,    7,    8,    9,   10,   11,   12,   13,   14,   15,
-   16,   17,   18,   19,   20,   21,   22,   23,   24,   25,
-   26,   27,   70,   58,   59,   67,   60,   75,   62,   69,
-   73,   91,   82,   83,   87,   90,   94,   96,   71,   97,
-   98,  100,  108,  109,  110,  111,  112,  113,  117,  121,
-  124,  119,  122,  125,  126,  130,  131,  134,  135,  139,
-  141,    1,   53,    0,    0,   61,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    1,    2,    3,    4,    5,
-    6,    7,    8,    9,   10,   11,   12,   13,   14,   15,
-   16,   17,   18,   19,   20,   21,   22,   23,   24,   25,
-   26,   27,   28,   29,   30,   31,   32,   33,   34,   35,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,   36,    0,    0,   37,   38,   39,   40,    1,
-    2,    3,    4,    5,    6,    7,    8,    9,   10,   11,
-   12,   13,   14,   15,   16,   17,   18,   19,   20,   21,
-   22,   23,   24,   25,   26,   27,   28,   29,   30,   31,
-   32,   33,   34,   35,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,   36,    0,    0,   37,
-   38,   39,   40,
+# endif
+
+/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
+static const yytype_uint8 yyr1[] =
+{
+       0,    66,    67,    67,    68,    68,    68,    68,    69,    69,
+      69,    69,    69,    70,    70,    70,    70,    70,    70,    70,
+      70,    70,    70,    70,    70,    70,    70,    70,    70,    70,
+      70,    70,    70,    70,    70,    70,    70,    70,    70,    70,
+      71,    71,    71,    71,    71,    71,    71,    73,    72,    74,
+      74,    76,    75,    77,    78,    78,    79,    81,    80,    82,
+      82,    84,    85,    83,    86,    87,    89,    90,    91,    92,
+      88,    93,    94,    96,    97,    98,    99,   100,    95,   101,
+     101,   102,   102,   102,   103,   103,   104,   104,   106,   105,
+     107,   107,   109,   108,   110,   111
 };
-const short H5LTyycheck[] = {                                      91,
-   34,  257,  258,  259,  260,  261,  262,  263,  264,  265,
-  266,  267,  268,  269,  270,  271,  272,  273,  274,  275,
-  276,  277,  278,  279,  280,  281,  282,  283,  284,  285,
-  286,  287,  288,  289,  290,  291,   57,  297,  298,  299,
-  123,  300,  301,  123,  123,   66,  123,   68,  304,  302,
-  303,  307,  308,  309,  310,  257,  258,  259,  260,  261,
-  262,  263,  264,  265,  266,  267,  268,  269,  270,  271,
-  272,  273,  274,  275,  276,  277,  278,  279,  280,  281,
-  282,  283,  296,  292,  305,   59,  123,  125,  123,  125,
-  312,  125,   59,   59,  125,   34,  312,  293,  312,  306,
-  311,  311,   34,   34,   93,   59,   34,   58,  311,   59,
-  294,  312,  312,   34,   59,   59,   59,  125,  295,   59,
-  125,    0,   59,   -1,   -1,   55,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,  257,  258,  259,  260,  261,
-  262,  263,  264,  265,  266,  267,  268,  269,  270,  271,
-  272,  273,  274,  275,  276,  277,  278,  279,  280,  281,
-  282,  283,  284,  285,  286,  287,  288,  289,  290,  291,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,  304,   -1,   -1,  307,  308,  309,  310,  257,
-  258,  259,  260,  261,  262,  263,  264,  265,  266,  267,
-  268,  269,  270,  271,  272,  273,  274,  275,  276,  277,
-  278,  279,  280,  281,  282,  283,  284,  285,  286,  287,
-  288,  289,  290,  291,   -1,   -1,   -1,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,  304,   -1,   -1,  307,
-  308,  309,  310,
+
+/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
+static const yytype_uint8 yyr2[] =
+{
+       0,     2,     0,     1,     1,     1,     1,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     0,     5,     0,
+       2,     0,     7,     1,     0,     2,     1,     0,     6,     0,
+       2,     0,     0,     5,     1,     4,     0,     0,     0,     0,
+      15,     1,     1,     0,     0,     0,     0,     0,    20,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     0,     7,
+       0,     2,     0,     6,     1,     1
 };
-#define YYFINAL 41
-#ifndef YYDEBUG
-#define YYDEBUG 0
-#endif
-#define YYMAXTOKEN 312
-#if YYDEBUG
-const char * const H5LTyyname[] = {
-"end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-"'\"'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"':'","';'",0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"'['",0,"']'",0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"'{'",0,"'}'",0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-"H5T_STD_I8BE_TOKEN","H5T_STD_I8LE_TOKEN","H5T_STD_I16BE_TOKEN",
-"H5T_STD_I16LE_TOKEN","H5T_STD_I32BE_TOKEN","H5T_STD_I32LE_TOKEN",
-"H5T_STD_I64BE_TOKEN","H5T_STD_I64LE_TOKEN","H5T_STD_U8BE_TOKEN",
-"H5T_STD_U8LE_TOKEN","H5T_STD_U16BE_TOKEN","H5T_STD_U16LE_TOKEN",
-"H5T_STD_U32BE_TOKEN","H5T_STD_U32LE_TOKEN","H5T_STD_U64BE_TOKEN",
-"H5T_STD_U64LE_TOKEN","H5T_NATIVE_CHAR_TOKEN","H5T_NATIVE_SCHAR_TOKEN",
-"H5T_NATIVE_UCHAR_TOKEN","H5T_NATIVE_SHORT_TOKEN","H5T_NATIVE_USHORT_TOKEN",
-"H5T_NATIVE_INT_TOKEN","H5T_NATIVE_UINT_TOKEN","H5T_NATIVE_LONG_TOKEN",
-"H5T_NATIVE_ULONG_TOKEN","H5T_NATIVE_LLONG_TOKEN","H5T_NATIVE_ULLONG_TOKEN",
-"H5T_IEEE_F32BE_TOKEN","H5T_IEEE_F32LE_TOKEN","H5T_IEEE_F64BE_TOKEN",
-"H5T_IEEE_F64LE_TOKEN","H5T_NATIVE_FLOAT_TOKEN","H5T_NATIVE_DOUBLE_TOKEN",
-"H5T_NATIVE_LDOUBLE_TOKEN","H5T_STRING_TOKEN","STRSIZE_TOKEN","STRPAD_TOKEN",
-"CSET_TOKEN","CTYPE_TOKEN","H5T_VARIABLE_TOKEN","H5T_STR_NULLTERM_TOKEN",
-"H5T_STR_NULLPAD_TOKEN","H5T_STR_SPACEPAD_TOKEN","H5T_CSET_ASCII_TOKEN",
-"H5T_CSET_UTF8_TOKEN","H5T_C_S1_TOKEN","H5T_FORTRAN_S1_TOKEN",
-"H5T_OPAQUE_TOKEN","OPQ_SIZE_TOKEN","OPQ_TAG_TOKEN","H5T_COMPOUND_TOKEN",
-"H5T_ENUM_TOKEN","H5T_ARRAY_TOKEN","H5T_VLEN_TOKEN","STRING","NUMBER",
+
+/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
+   Performed when YYTABLE doesn't specify something else to do.  Zero
+   means the default is an error.  */
+static const yytype_uint8 yydefact[] =
+{
+       2,    13,    14,    15,    16,    17,    18,    19,    20,    21,
+      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
+      32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
+      42,    43,    44,    45,    46,     0,     0,    47,     0,    57,
+       0,     0,     3,     4,     8,     9,     5,     6,     7,    12,
+      10,    11,     0,     0,     0,     0,     0,     0,     1,    73,
+      66,    49,     0,    59,     0,     0,     0,     0,    88,     0,
+      65,    79,    80,     0,    71,     0,    48,    51,    50,    90,
+      61,     0,    60,    74,    67,     0,     0,     0,    58,     0,
+       0,     0,    89,     0,    91,    64,    62,     0,    68,    53,
+       0,    94,     0,     0,    81,    82,    83,     0,     0,    54,
+      92,    63,    75,     0,     0,     0,     0,     0,    72,     0,
+      56,    55,    52,    95,     0,     0,     0,    93,    84,    85,
+       0,    69,    76,     0,     0,    70,     0,    86,    87,     0,
+      77,     0,    78
 };
-const char * const H5LTyyrule[] = {
-"$accept : start",
-"start :",
-"start : ddl_type",
-"ddl_type : atomic_type",
-"ddl_type : compound_type",
-"ddl_type : array_type",
-"ddl_type : vlen_type",
-"atomic_type : integer_type",
-"atomic_type : fp_type",
-"atomic_type : string_type",
-"atomic_type : enum_type",
-"atomic_type : opaque_type",
-"integer_type : H5T_STD_I8BE_TOKEN",
-"integer_type : H5T_STD_I8LE_TOKEN",
-"integer_type : H5T_STD_I16BE_TOKEN",
-"integer_type : H5T_STD_I16LE_TOKEN",
-"integer_type : H5T_STD_I32BE_TOKEN",
-"integer_type : H5T_STD_I32LE_TOKEN",
-"integer_type : H5T_STD_I64BE_TOKEN",
-"integer_type : H5T_STD_I64LE_TOKEN",
-"integer_type : H5T_STD_U8BE_TOKEN",
-"integer_type : H5T_STD_U8LE_TOKEN",
-"integer_type : H5T_STD_U16BE_TOKEN",
-"integer_type : H5T_STD_U16LE_TOKEN",
-"integer_type : H5T_STD_U32BE_TOKEN",
-"integer_type : H5T_STD_U32LE_TOKEN",
-"integer_type : H5T_STD_U64BE_TOKEN",
-"integer_type : H5T_STD_U64LE_TOKEN",
-"integer_type : H5T_NATIVE_CHAR_TOKEN",
-"integer_type : H5T_NATIVE_SCHAR_TOKEN",
-"integer_type : H5T_NATIVE_UCHAR_TOKEN",
-"integer_type : H5T_NATIVE_SHORT_TOKEN",
-"integer_type : H5T_NATIVE_USHORT_TOKEN",
-"integer_type : H5T_NATIVE_INT_TOKEN",
-"integer_type : H5T_NATIVE_UINT_TOKEN",
-"integer_type : H5T_NATIVE_LONG_TOKEN",
-"integer_type : H5T_NATIVE_ULONG_TOKEN",
-"integer_type : H5T_NATIVE_LLONG_TOKEN",
-"integer_type : H5T_NATIVE_ULLONG_TOKEN",
-"fp_type : H5T_IEEE_F32BE_TOKEN",
-"fp_type : H5T_IEEE_F32LE_TOKEN",
-"fp_type : H5T_IEEE_F64BE_TOKEN",
-"fp_type : H5T_IEEE_F64LE_TOKEN",
-"fp_type : H5T_NATIVE_FLOAT_TOKEN",
-"fp_type : H5T_NATIVE_DOUBLE_TOKEN",
-"fp_type : H5T_NATIVE_LDOUBLE_TOKEN",
-"$$1 :",
-"compound_type : H5T_COMPOUND_TOKEN $$1 '{' memb_list '}'",
-"memb_list :",
-"memb_list : memb_list memb_def",
-"$$2 :",
-"memb_def : ddl_type $$2 '\"' field_name '\"' field_offset ';'",
-"field_name : STRING",
-"field_offset :",
-"field_offset : ':' offset",
-"offset : NUMBER",
-"$$3 :",
-"array_type : H5T_ARRAY_TOKEN $$3 '{' dim_list ddl_type '}'",
-"dim_list :",
-"dim_list : dim_list dim",
-"$$4 :",
-"$$5 :",
-"dim : '[' $$4 dimsize $$5 ']'",
-"dimsize : NUMBER",
-"vlen_type : H5T_VLEN_TOKEN '{' ddl_type '}'",
-"$$6 :",
-"$$7 :",
-"$$8 :",
-"$$9 :",
-"opaque_type : H5T_OPAQUE_TOKEN '{' OPQ_SIZE_TOKEN $$6 opaque_size ';' $$7 OPQ_TAG_TOKEN $$8 '\"' opaque_tag '\"' ';' $$9 '}'",
-"opaque_size : NUMBER",
-"opaque_tag : STRING",
-"$$10 :",
-"$$11 :",
-"$$12 :",
-"$$13 :",
-"$$14 :",
-"string_type : H5T_STRING_TOKEN '{' STRSIZE_TOKEN $$10 strsize ';' $$11 STRPAD_TOKEN strpad ';' $$12 CSET_TOKEN cset ';' $$13 CTYPE_TOKEN ctype ';' $$14 '}'",
-"strsize : H5T_VARIABLE_TOKEN",
-"strsize : NUMBER",
-"strpad : H5T_STR_NULLTERM_TOKEN",
-"strpad : H5T_STR_NULLPAD_TOKEN",
-"strpad : H5T_STR_SPACEPAD_TOKEN",
-"cset : H5T_CSET_ASCII_TOKEN",
-"cset : H5T_CSET_UTF8_TOKEN",
-"ctype : H5T_C_S1_TOKEN",
-"ctype : H5T_FORTRAN_S1_TOKEN",
-"$$15 :",
-"enum_type : H5T_ENUM_TOKEN '{' integer_type ';' $$15 enum_list '}'",
-"enum_list :",
-"enum_list : enum_list enum_def",
-"$$16 :",
-"enum_def : '\"' enum_symbol '\"' $$16 enum_val ';'",
-"enum_symbol : STRING",
-"enum_val : NUMBER",
+
+/* YYDEFGOTO[NTERM-NUM].  */
+static const yytype_int16 yydefgoto[] =
+{
+      -1,    41,    42,    43,    44,    45,    46,    54,    67,    78,
+      85,   100,   115,   121,    47,    56,    69,    82,    87,   103,
+      96,    48,    49,    66,    90,   108,   133,    75,   119,    50,
+      65,    89,   117,   134,   141,    73,   107,   130,   139,    51,
+      79,    86,    94,   116,   102,   124
 };
+
+/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+   STATE-NUM.  */
+#define YYPACT_NINF -25
+static const yytype_int16 yypact[] =
+{
+     114,   -25,   -25,   -25,   -25,   -25,   -25,   -25,   -25,   -25,
+     -25,   -25,   -25,   -25,   -25,   -25,   -25,   -25,   -25,   -25,
+     -25,   -25,   -25,   -25,   -25,   -25,   -25,   -25,   -25,   -25,
+     -25,   -25,   -25,   -25,   -25,   -24,   -20,   -25,   -15,   -25,
+     -14,    49,   -25,   -25,   -25,   -25,   -25,   -25,   -25,   -25,
+     -25,   -25,    19,    45,    38,   168,    39,   114,   -25,   -25,
+     -25,   -25,    34,   -25,    40,    -4,    43,    56,   -25,    -3,
+     -25,   -25,   -25,    37,   -25,    42,   -25,   -25,   -25,   -25,
+     -25,    44,   -25,   -25,   -25,    50,   -23,    47,   -25,    64,
+      62,    51,   -25,    58,   -25,   -25,   -25,    -2,   -25,   -25,
+      89,   -25,    90,    92,   -25,   -25,   -25,    91,    94,    95,
+     -25,   -25,   -25,    98,   100,    96,   102,   122,   -25,   103,
+     -25,   -25,   -25,   -25,   133,     9,   134,   -25,   -25,   -25,
+     135,   -25,   -25,   105,   160,   -25,    46,   -25,   -25,   137,
+     -25,   143,   -25
+};
+
+/* YYPGOTO[NTERM-NUM].  */
+static const yytype_int8 yypgoto[] =
+{
+     -25,   -25,   -21,   -25,   108,   -25,   -25,   -25,   -25,   -25,
+     -25,   -25,   -25,   -25,   -25,   -25,   -25,   -25,   -25,   -25,
+     -25,   -25,   -25,   -25,   -25,   -25,   -25,   -25,   -25,   -25,
+     -25,   -25,   -25,   -25,   -25,   -25,   -25,   -25,   -25,   -25,
+     -25,   -25,   -25,   -25,   -25,   -25
+};
+
+/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
+   positive, shift that token.  If negative, reduce the rule which
+   number is the opposite.  If YYTABLE_NINF, syntax error.  */
+#define YYTABLE_NINF -1
+static const yytype_uint8 yytable[] =
+{
+       1,     2,     3,     4,     5,     6,     7,     8,     9,    10,
+      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
+      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
+      31,    32,    33,    34,    35,    52,    64,    92,    71,    53,
+      93,   104,   105,   106,    55,    57,    77,    36,    81,    58,
+      37,    38,    39,    40,    72,   128,   129,    59,    80,     1,
+       2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
+      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
+      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
+      32,    33,    34,    35,   137,   138,    60,    61,    63,    68,
+      70,    74,    83,    97,    88,    95,    36,    84,    99,    37,
+      38,    39,    40,    91,    98,   101,    76,     1,     2,     3,
+       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
+      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
+      24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
+      34,    35,   109,   110,   111,   118,   112,   113,   120,   114,
+     123,   122,   125,    62,    36,   135,   126,    37,    38,    39,
+      40,     1,     2,     3,     4,     5,     6,     7,     8,     9,
+      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
+      20,    21,    22,    23,    24,    25,    26,    27,   127,   131,
+     132,   136,   140,   142
+};
+
+#define yypact_value_is_default(Yystate) \
+  (!!((Yystate) == (-25)))
+
+#define yytable_value_is_error(Yytable_value) \
+  YYID (0)
+
+static const yytype_uint8 yycheck[] =
+{
+       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
+      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
+      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
+      33,    34,    35,    36,    37,    59,    57,    60,    42,    59,
+      63,    43,    44,    45,    59,    59,    67,    50,    69,     0,
+      53,    54,    55,    56,    58,    46,    47,    38,    61,     3,
+       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
+      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
+      24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
+      34,    35,    36,    37,    48,    49,    51,    59,    59,    65,
+      60,    58,    65,    39,    60,    58,    50,    65,    57,    53,
+      54,    55,    56,    63,    52,    57,    60,     3,     4,     5,
+       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
+      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
+      26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
+      36,    37,    63,    63,    62,    57,    65,    63,    58,    64,
+      58,    65,    40,    55,    50,    60,    63,    53,    54,    55,
+      56,     3,     4,     5,     6,     7,     8,     9,    10,    11,
+      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
+      22,    23,    24,    25,    26,    27,    28,    29,    65,    65,
+      65,    41,    65,    60
+};
+
+/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
+   symbol of state STATE-NUM.  */
+static const yytype_uint8 yystos[] =
+{
+       0,     3,     4,     5,     6,     7,     8,     9,    10,    11,
+      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
+      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
+      32,    33,    34,    35,    36,    37,    50,    53,    54,    55,
+      56,    67,    68,    69,    70,    71,    72,    80,    87,    88,
+      95,   105,    59,    59,    73,    59,    81,    59,     0,    38,
+      51,    59,    70,    59,    68,    96,    89,    74,    65,    82,
+      60,    42,    58,   101,    58,    93,    60,    68,    75,   106,
+      61,    68,    83,    65,    65,    76,   107,    84,    60,    97,
+      90,    63,    60,    63,   108,    58,    86,    39,    52,    57,
+      77,    57,   110,    85,    43,    44,    45,   102,    91,    63,
+      63,    62,    65,    63,    64,    78,   109,    98,    57,    94,
+      58,    79,    65,    58,   111,    40,    63,    65,    46,    47,
+     103,    65,    65,    92,    99,    60,    41,    48,    49,   104,
+      65,   100,    60
+};
+
+#define yyerrok		(yyerrstatus = 0)
+#define yyclearin	(yychar = YYEMPTY)
+#define YYEMPTY		(-2)
+#define YYEOF		0
+
+#define YYACCEPT	goto yyacceptlab
+#define YYABORT		goto yyabortlab
+#define YYERROR		goto yyerrorlab
+
+
+/* Like YYERROR except do call yyerror.  This remains here temporarily
+   to ease the transition to the new meaning of YYERROR, for GCC.
+   Once GCC version 2 has supplanted version 1, this can go.  However,
+   YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
+   in Bison 2.4.2's NEWS entry, where a plan to phase it out is
+   discussed.  */
+
+#define YYFAIL		goto yyerrlab
+#if defined YYFAIL
+  /* This is here to suppress warnings from the GCC cpp's
+     -Wunused-macros.  Normally we don't worry about that warning, but
+     some users do, and we want to make it easy for users to remove
+     YYFAIL uses, which will produce warnings from Bison 2.5.  */
+#endif
+
+#define YYRECOVERING()  (!!yyerrstatus)
+
+#define YYBACKUP(Token, Value)                                  \
+do                                                              \
+  if (yychar == YYEMPTY)                                        \
+    {                                                           \
+      yychar = (Token);                                         \
+      yylval = (Value);                                         \
+      YYPOPSTACK (yylen);                                       \
+      yystate = *yyssp;                                         \
+      goto yybackup;                                            \
+    }                                                           \
+  else                                                          \
+    {                                                           \
+      yyerror (YY_("syntax error: cannot back up")); \
+      YYERROR;							\
+    }								\
+while (YYID (0))
+
+/* Error token number */
+#define YYTERROR	1
+#define YYERRCODE	256
+
+
+/* This macro is provided for backward compatibility. */
+#ifndef YY_LOCATION_PRINT
+# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
+#endif
+
+
+/* YYLEX -- calling `yylex' with the right arguments.  */
+#ifdef YYLEX_PARAM
+# define YYLEX yylex (YYLEX_PARAM)
+#else
+# define YYLEX yylex ()
 #endif
+
+/* Enable debugging if requested.  */
 #if YYDEBUG
-#include <stdio.h>
+
+# ifndef YYFPRINTF
+#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
+#  define YYFPRINTF fprintf
+# endif
+
+# define YYDPRINTF(Args)			\
+do {						\
+  if (yydebug)					\
+    YYFPRINTF Args;				\
+} while (YYID (0))
+
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location)			  \
+do {									  \
+  if (yydebug)								  \
+    {									  \
+      YYFPRINTF (stderr, "%s ", Title);					  \
+      yy_symbol_print (stderr,						  \
+		  Type, Value); \
+      YYFPRINTF (stderr, "\n");						  \
+    }									  \
+} while (YYID (0))
+
+
+/*--------------------------------.
+| Print this symbol on YYOUTPUT.  |
+`--------------------------------*/
+
+/*ARGSUSED*/
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+static void
+yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
+#else
+static void
+yy_symbol_value_print (yyoutput, yytype, yyvaluep)
+    FILE *yyoutput;
+    int yytype;
+    YYSTYPE const * const yyvaluep;
 #endif
-#ifdef YYSTACKSIZE
-#undef YYMAXDEPTH
-#define YYMAXDEPTH YYSTACKSIZE
+{
+  FILE *yyo = yyoutput;
+  YYUSE (yyo);
+  if (!yyvaluep)
+    return;
+# ifdef YYPRINT
+  if (yytype < YYNTOKENS)
+    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
+# else
+  YYUSE (yyoutput);
+# endif
+  switch (yytype)
+    {
+      default:
+        break;
+    }
+}
+
+
+/*--------------------------------.
+| Print this symbol on YYOUTPUT.  |
+`--------------------------------*/
+
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+static void
+yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
 #else
-#ifdef YYMAXDEPTH
-#define YYSTACKSIZE YYMAXDEPTH
+static void
+yy_symbol_print (yyoutput, yytype, yyvaluep)
+    FILE *yyoutput;
+    int yytype;
+    YYSTYPE const * const yyvaluep;
+#endif
+{
+  if (yytype < YYNTOKENS)
+    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
+  else
+    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
+
+  yy_symbol_value_print (yyoutput, yytype, yyvaluep);
+  YYFPRINTF (yyoutput, ")");
+}
+
+/*------------------------------------------------------------------.
+| yy_stack_print -- Print the state stack from its BOTTOM up to its |
+| TOP (included).                                                   |
+`------------------------------------------------------------------*/
+
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+static void
+yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
 #else
-#define YYSTACKSIZE 10000
-#define YYMAXDEPTH 10000
+static void
+yy_stack_print (yybottom, yytop)
+    yytype_int16 *yybottom;
+    yytype_int16 *yytop;
 #endif
+{
+  YYFPRINTF (stderr, "Stack now");
+  for (; yybottom <= yytop; yybottom++)
+    {
+      int yybot = *yybottom;
+      YYFPRINTF (stderr, " %d", yybot);
+    }
+  YYFPRINTF (stderr, "\n");
+}
+
+# define YY_STACK_PRINT(Bottom, Top)				\
+do {								\
+  if (yydebug)							\
+    yy_stack_print ((Bottom), (Top));				\
+} while (YYID (0))
+
+
+/*------------------------------------------------.
+| Report that the YYRULE is going to be reduced.  |
+`------------------------------------------------*/
+
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+static void
+yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
+#else
+static void
+yy_reduce_print (yyvsp, yyrule)
+    YYSTYPE *yyvsp;
+    int yyrule;
 #endif
-#define YYINITSTACKSIZE 200
+{
+  int yynrhs = yyr2[yyrule];
+  int yyi;
+  unsigned long int yylno = yyrline[yyrule];
+  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
+	     yyrule - 1, yylno);
+  /* The symbols being reduced.  */
+  for (yyi = 0; yyi < yynrhs; yyi++)
+    {
+      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
+      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
+		       &(yyvsp[(yyi + 1) - (yynrhs)])
+		       		       );
+      YYFPRINTF (stderr, "\n");
+    }
+}
+
+# define YY_REDUCE_PRINT(Rule)		\
+do {					\
+  if (yydebug)				\
+    yy_reduce_print (yyvsp, Rule); \
+} while (YYID (0))
+
+/* Nonzero means print parse trace.  It is left uninitialized so that
+   multiple parsers can coexist.  */
 int yydebug;
-int yynerrs;
-int yyerrflag;
-int yychar;
-short *yyssp;
-YYSTYPE *yyvsp;
-YYSTYPE yyval;
-YYSTYPE yylval;
-short *yyss;
-short *yysslim;
-YYSTYPE *yyvs;
-int yystacksize;
-/* allocate initial stack or double stack size, up to YYMAXDEPTH */
-static int yygrowstack()
+#else /* !YYDEBUG */
+# define YYDPRINTF(Args)
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
+# define YY_STACK_PRINT(Bottom, Top)
+# define YY_REDUCE_PRINT(Rule)
+#endif /* !YYDEBUG */
+
+
+/* YYINITDEPTH -- initial size of the parser's stacks.  */
+#ifndef	YYINITDEPTH
+# define YYINITDEPTH 200
+#endif
+
+/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
+   if the built-in stack extension method is used).
+
+   Do not make this value too large; the results are undefined if
+   YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
+   evaluated with infinite-precision integer arithmetic.  */
+
+#ifndef YYMAXDEPTH
+# define YYMAXDEPTH 10000
+#endif
+
+
+#if YYERROR_VERBOSE
+
+# ifndef yystrlen
+#  if defined __GLIBC__ && defined _STRING_H
+#   define yystrlen strlen
+#  else
+/* Return the length of YYSTR.  */
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+static YYSIZE_T
+yystrlen (const char *yystr)
+#else
+static YYSIZE_T
+yystrlen (yystr)
+    const char *yystr;
+#endif
 {
-    int newsize, i;
-    short *newss;
-    YYSTYPE *newvs;
-
-    if ((newsize = yystacksize) == 0)
-        newsize = YYINITSTACKSIZE;
-    else if (newsize >= YYMAXDEPTH)
-        return -1;
-    else if ((newsize *= 2) > YYMAXDEPTH)
-        newsize = YYMAXDEPTH;
-    i = yyssp - yyss;
-    newss = yyss ? (short *)realloc(yyss, newsize * sizeof *newss) :
-      (short *)malloc(newsize * sizeof *newss);
-    if (newss == NULL)
-        return -1;
-    yyss = newss;
-    yyssp = newss + i;
-    newvs = yyvs ? (YYSTYPE *)realloc(yyvs, newsize * sizeof *newvs) :
-      (YYSTYPE *)malloc(newsize * sizeof *newvs);
-    if (newvs == NULL)
-        return -1;
-    yyvs = newvs;
-    yyvsp = newvs + i;
-    yystacksize = newsize;
-    yysslim = yyss + newsize - 1;
-    return 0;
+  YYSIZE_T yylen;
+  for (yylen = 0; yystr[yylen]; yylen++)
+    continue;
+  return yylen;
 }
+#  endif
+# endif
 
-#define YYABORT goto yyabort
-#define YYREJECT goto yyabort
-#define YYACCEPT goto yyaccept
-#define YYERROR goto yyerrlab
-
-#ifndef YYPARSE_PARAM
-#if defined(__cplusplus) || __STDC__
-#define YYPARSE_PARAM_ARG void
-#define YYPARSE_PARAM_DECL
-#else	/* ! ANSI-C/C++ */
-#define YYPARSE_PARAM_ARG
-#define YYPARSE_PARAM_DECL
-#endif	/* ANSI-C/C++ */
-#else	/* YYPARSE_PARAM */
-#ifndef YYPARSE_PARAM_TYPE
-#define YYPARSE_PARAM_TYPE void *
+# ifndef yystpcpy
+#  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
+#   define yystpcpy stpcpy
+#  else
+/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
+   YYDEST.  */
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+static char *
+yystpcpy (char *yydest, const char *yysrc)
+#else
+static char *
+yystpcpy (yydest, yysrc)
+    char *yydest;
+    const char *yysrc;
 #endif
-#if defined(__cplusplus) || __STDC__
-#define YYPARSE_PARAM_ARG YYPARSE_PARAM_TYPE YYPARSE_PARAM
-#define YYPARSE_PARAM_DECL
-#else	/* ! ANSI-C/C++ */
-#define YYPARSE_PARAM_ARG YYPARSE_PARAM
-#define YYPARSE_PARAM_DECL YYPARSE_PARAM_TYPE YYPARSE_PARAM;
-#endif	/* ANSI-C/C++ */
-#endif	/* ! YYPARSE_PARAM */
-
-int
-yyparse (YYPARSE_PARAM_ARG)
-    YYPARSE_PARAM_DECL
 {
-    register int yym, yyn, yystate;
-#if YYDEBUG
-    register const char *yys;
+  char *yyd = yydest;
+  const char *yys = yysrc;
 
-    if ((yys = getenv("YYDEBUG")))
+  while ((*yyd++ = *yys++) != '\0')
+    continue;
+
+  return yyd - 1;
+}
+#  endif
+# endif
+
+# ifndef yytnamerr
+/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
+   quotes and backslashes, so that it's suitable for yyerror.  The
+   heuristic is that double-quoting is unnecessary unless the string
+   contains an apostrophe, a comma, or backslash (other than
+   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
+   null, do not copy; instead, return the length of what the result
+   would have been.  */
+static YYSIZE_T
+yytnamerr (char *yyres, const char *yystr)
+{
+  if (*yystr == '"')
     {
-        yyn = *yys;
-        if (yyn >= '0' && yyn <= '9')
-            yydebug = yyn - '0';
+      YYSIZE_T yyn = 0;
+      char const *yyp = yystr;
+
+      for (;;)
+	switch (*++yyp)
+	  {
+	  case '\'':
+	  case ',':
+	    goto do_not_strip_quotes;
+
+	  case '\\':
+	    if (*++yyp != '\\')
+	      goto do_not_strip_quotes;
+	    /* Fall through.  */
+	  default:
+	    if (yyres)
+	      yyres[yyn] = *yyp;
+	    yyn++;
+	    break;
+
+	  case '"':
+	    if (yyres)
+	      yyres[yyn] = '\0';
+	    return yyn;
+	  }
+    do_not_strip_quotes: ;
     }
-#endif
 
-    yynerrs = 0;
-    yyerrflag = 0;
-    yychar = (-1);
+  if (! yyres)
+    return yystrlen (yystr);
+
+  return yystpcpy (yyres, yystr) - yyres;
+}
+# endif
+
+/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
+   about the unexpected token YYTOKEN for the state stack whose top is
+   YYSSP.
 
-    if (yyss == NULL && yygrowstack()) goto yyoverflow;
-    yyssp = yyss;
-    yyvsp = yyvs;
-    *yyssp = yystate = 0;
+   Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
+   not large enough to hold the message.  In that case, also set
+   *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
+   required number of bytes is too large to store.  */
+static int
+yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
+                yytype_int16 *yyssp, int yytoken)
+{
+  YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
+  YYSIZE_T yysize = yysize0;
+  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
+  /* Internationalized format string. */
+  const char *yyformat = YY_NULL;
+  /* Arguments of yyformat. */
+  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
+  /* Number of reported tokens (one for the "unexpected", one per
+     "expected"). */
+  int yycount = 0;
 
-yyloop:
-    if ((yyn = yydefred[yystate])) goto yyreduce;
-    if (yychar < 0)
+  /* There are many possibilities here to consider:
+     - Assume YYFAIL is not used.  It's too flawed to consider.  See
+       <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
+       for details.  YYERROR is fine as it does not invoke this
+       function.
+     - If this state is a consistent state with a default action, then
+       the only way this function was invoked is if the default action
+       is an error action.  In that case, don't check for expected
+       tokens because there are none.
+     - The only way there can be no lookahead present (in yychar) is if
+       this state is a consistent state with a default action.  Thus,
+       detecting the absence of a lookahead is sufficient to determine
+       that there is no unexpected or expected token to report.  In that
+       case, just report a simple "syntax error".
+     - Don't assume there isn't a lookahead just because this state is a
+       consistent state with a default action.  There might have been a
+       previous inconsistent state, consistent state with a non-default
+       action, or user semantic action that manipulated yychar.
+     - Of course, the expected token list depends on states to have
+       correct lookahead information, and it depends on the parser not
+       to perform extra reductions after fetching a lookahead from the
+       scanner and before detecting a syntax error.  Thus, state merging
+       (from LALR or IELR) and default reductions corrupt the expected
+       token list.  However, the list is correct for canonical LR with
+       one exception: it will still contain any token that will not be
+       accepted due to an error action in a later state.
+  */
+  if (yytoken != YYEMPTY)
     {
-        if ((yychar = yylex()) < 0) yychar = 0;
-#if YYDEBUG
-        if (yydebug)
+      int yyn = yypact[*yyssp];
+      yyarg[yycount++] = yytname[yytoken];
+      if (!yypact_value_is_default (yyn))
         {
-            yys = 0;
-            if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
-            if (!yys) yys = "illegal-symbol";
-            printf("%sdebug: state %d, reading %d (%s)\n",
-                    YYPREFIX, yystate, yychar, yys);
+          /* Start YYX at -YYN if negative to avoid negative indexes in
+             YYCHECK.  In other words, skip the first -YYN actions for
+             this state because they are default actions.  */
+          int yyxbegin = yyn < 0 ? -yyn : 0;
+          /* Stay within bounds of both yycheck and yytname.  */
+          int yychecklim = YYLAST - yyn + 1;
+          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
+          int yyx;
+
+          for (yyx = yyxbegin; yyx < yyxend; ++yyx)
+            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
+                && !yytable_value_is_error (yytable[yyx + yyn]))
+              {
+                if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
+                  {
+                    yycount = 1;
+                    yysize = yysize0;
+                    break;
+                  }
+                yyarg[yycount++] = yytname[yyx];
+                {
+                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
+                  if (! (yysize <= yysize1
+                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
+                    return 2;
+                  yysize = yysize1;
+                }
+              }
         }
-#endif
     }
-    if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
-            yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
+
+  switch (yycount)
     {
-#if YYDEBUG
-        if (yydebug)
-            printf("%sdebug: state %d, shifting to state %d\n",
-                    YYPREFIX, yystate, yytable[yyn]);
-#endif
-        if (yyssp >= yysslim && yygrowstack())
+# define YYCASE_(N, S)                      \
+      case N:                               \
+        yyformat = S;                       \
+      break
+      YYCASE_(0, YY_("syntax error"));
+      YYCASE_(1, YY_("syntax error, unexpected %s"));
+      YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
+      YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
+      YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
+      YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
+# undef YYCASE_
+    }
+
+  {
+    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
+    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
+      return 2;
+    yysize = yysize1;
+  }
+
+  if (*yymsg_alloc < yysize)
+    {
+      *yymsg_alloc = 2 * yysize;
+      if (! (yysize <= *yymsg_alloc
+             && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
+        *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
+      return 1;
+    }
+
+  /* Avoid sprintf, as that infringes on the user's name space.
+     Don't have undefined behavior even if the translation
+     produced a string with the wrong number of "%s"s.  */
+  {
+    char *yyp = *yymsg;
+    int yyi = 0;
+    while ((*yyp = *yyformat) != '\0')
+      if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
         {
-            goto yyoverflow;
+          yyp += yytnamerr (yyp, yyarg[yyi++]);
+          yyformat += 2;
         }
-        *++yyssp = yystate = yytable[yyn];
-        *++yyvsp = yylval;
-        yychar = (-1);
-        if (yyerrflag > 0)  --yyerrflag;
-        goto yyloop;
-    }
-    if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
-            yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
+      else
+        {
+          yyp++;
+          yyformat++;
+        }
+  }
+  return 0;
+}
+#endif /* YYERROR_VERBOSE */
+
+/*-----------------------------------------------.
+| Release the memory associated to this symbol.  |
+`-----------------------------------------------*/
+
+/*ARGSUSED*/
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+static void
+yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
+#else
+static void
+yydestruct (yymsg, yytype, yyvaluep)
+    const char *yymsg;
+    int yytype;
+    YYSTYPE *yyvaluep;
+#endif
+{
+  YYUSE (yyvaluep);
+
+  if (!yymsg)
+    yymsg = "Deleting";
+  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
+
+  switch (yytype)
     {
-        yyn = yytable[yyn];
-        goto yyreduce;
+
+      default:
+        break;
     }
-    if (yyerrflag) goto yyinrecovery;
-#if defined(lint) || defined(__GNUC__)
-    goto yynewerror;
+}
+
+
+
+
+/* The lookahead symbol.  */
+int yychar;
+
+
+#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+# define YY_IGNORE_MAYBE_UNINITIALIZED_END
 #endif
-yynewerror:
-    yyerror("syntax error");
-#if defined(lint) || defined(__GNUC__)
-    goto yyerrlab;
+#ifndef YY_INITIAL_VALUE
+# define YY_INITIAL_VALUE(Value) /* Nothing. */
 #endif
-yyerrlab:
-    ++yynerrs;
-yyinrecovery:
-    if (yyerrflag < 3)
-    {
-        yyerrflag = 3;
-        for (;;)
-        {
-            if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&
-                    yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
-            {
-#if YYDEBUG
-                if (yydebug)
-                    printf("%sdebug: state %d, error recovery shifting\
- to state %d\n", YYPREFIX, *yyssp, yytable[yyn]);
+
+/* The semantic value of the lookahead symbol.  */
+YYSTYPE yylval YY_INITIAL_VALUE(yyval_default);
+
+/* Number of syntax errors so far.  */
+int yynerrs;
+
+
+/*----------.
+| yyparse.  |
+`----------*/
+
+#ifdef YYPARSE_PARAM
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+hid_t
+yyparse (void *YYPARSE_PARAM)
+#else
+hid_t
+yyparse (YYPARSE_PARAM)
+    void *YYPARSE_PARAM;
 #endif
-                if (yyssp >= yysslim && yygrowstack())
-                {
-                    goto yyoverflow;
-                }
-                *++yyssp = yystate = yytable[yyn];
-                *++yyvsp = yylval;
-                goto yyloop;
-            }
-            else
-            {
-#if YYDEBUG
-                if (yydebug)
-                    printf("%sdebug: error recovery discarding state %d\n",
-                            YYPREFIX, *yyssp);
+#else /* ! YYPARSE_PARAM */
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+hid_t
+yyparse (void)
+#else
+hid_t
+yyparse ()
+
 #endif
-                if (yyssp <= yyss) goto yyabort;
-                --yyssp;
-                --yyvsp;
-            }
-        }
+#endif
+{
+    int yystate;
+    /* Number of tokens to shift before error messages enabled.  */
+    int yyerrstatus;
+
+    /* The stacks and their tools:
+       `yyss': related to states.
+       `yyvs': related to semantic values.
+
+       Refer to the stacks through separate pointers, to allow yyoverflow
+       to reallocate them elsewhere.  */
+
+    /* The state stack.  */
+    yytype_int16 yyssa[YYINITDEPTH];
+    yytype_int16 *yyss;
+    yytype_int16 *yyssp;
+
+    /* The semantic value stack.  */
+    YYSTYPE yyvsa[YYINITDEPTH];
+    YYSTYPE *yyvs;
+    YYSTYPE *yyvsp;
+
+    YYSIZE_T yystacksize;
+
+  int yyn;
+  int yyresult;
+  /* Lookahead token as an internal (translated) token number.  */
+  int yytoken = 0;
+  /* The variables used to return semantic value and location from the
+     action routines.  */
+  YYSTYPE yyval;
+
+#if YYERROR_VERBOSE
+  /* Buffer for error messages, and its allocated size.  */
+  char yymsgbuf[128];
+  char *yymsg = yymsgbuf;
+  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
+#endif
+
+#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
+
+  /* The number of symbols on the RHS of the reduced rule.
+     Keep to zero when no symbol should be popped.  */
+  int yylen = 0;
+
+  yyssp = yyss = yyssa;
+  yyvsp = yyvs = yyvsa;
+  yystacksize = YYINITDEPTH;
+
+  YYDPRINTF ((stderr, "Starting parse\n"));
+
+  yystate = 0;
+  yyerrstatus = 0;
+  yynerrs = 0;
+  yychar = YYEMPTY; /* Cause a token to be read.  */
+  goto yysetstate;
+
+/*------------------------------------------------------------.
+| yynewstate -- Push a new state, which is found in yystate.  |
+`------------------------------------------------------------*/
+ yynewstate:
+  /* In all cases, when you get here, the value and location stacks
+     have just been pushed.  So pushing a state here evens the stacks.  */
+  yyssp++;
+
+ yysetstate:
+  *yyssp = yystate;
+
+  if (yyss + yystacksize - 1 <= yyssp)
+    {
+      /* Get the current used size of the three stacks, in elements.  */
+      YYSIZE_T yysize = yyssp - yyss + 1;
+
+#ifdef yyoverflow
+      {
+	/* Give user a chance to reallocate the stack.  Use copies of
+	   these so that the &'s don't force the real ones into
+	   memory.  */
+	YYSTYPE *yyvs1 = yyvs;
+	yytype_int16 *yyss1 = yyss;
+
+	/* Each stack pointer address is followed by the size of the
+	   data in use in that stack, in bytes.  This used to be a
+	   conditional around just the two extra args, but that might
+	   be undefined if yyoverflow is a macro.  */
+	yyoverflow (YY_("memory exhausted"),
+		    &yyss1, yysize * sizeof (*yyssp),
+		    &yyvs1, yysize * sizeof (*yyvsp),
+		    &yystacksize);
+
+	yyss = yyss1;
+	yyvs = yyvs1;
+      }
+#else /* no yyoverflow */
+# ifndef YYSTACK_RELOCATE
+      goto yyexhaustedlab;
+# else
+      /* Extend the stack our own way.  */
+      if (YYMAXDEPTH <= yystacksize)
+	goto yyexhaustedlab;
+      yystacksize *= 2;
+      if (YYMAXDEPTH < yystacksize)
+	yystacksize = YYMAXDEPTH;
+
+      {
+	yytype_int16 *yyss1 = yyss;
+	union yyalloc *yyptr =
+	  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
+	if (! yyptr)
+	  goto yyexhaustedlab;
+	YYSTACK_RELOCATE (yyss_alloc, yyss);
+	YYSTACK_RELOCATE (yyvs_alloc, yyvs);
+#  undef YYSTACK_RELOCATE
+	if (yyss1 != yyssa)
+	  YYSTACK_FREE (yyss1);
+      }
+# endif
+#endif /* no yyoverflow */
+
+      yyssp = yyss + yysize - 1;
+      yyvsp = yyvs + yysize - 1;
+
+      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
+		  (unsigned long int) yystacksize));
+
+      if (yyss + yystacksize - 1 <= yyssp)
+	YYABORT;
+    }
+
+  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
+
+  if (yystate == YYFINAL)
+    YYACCEPT;
+
+  goto yybackup;
+
+/*-----------.
+| yybackup.  |
+`-----------*/
+yybackup:
+
+  /* Do appropriate processing given the current state.  Read a
+     lookahead token if we need one and don't already have one.  */
+
+  /* First try to decide what to do without reference to lookahead token.  */
+  yyn = yypact[yystate];
+  if (yypact_value_is_default (yyn))
+    goto yydefault;
+
+  /* Not known => get a lookahead token if don't already have one.  */
+
+  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
+  if (yychar == YYEMPTY)
+    {
+      YYDPRINTF ((stderr, "Reading a token: "));
+      yychar = YYLEX;
     }
-    else
+
+  if (yychar <= YYEOF)
     {
-        if (yychar == 0) goto yyabort;
-#if YYDEBUG
-        if (yydebug)
-        {
-            yys = 0;
-            if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
-            if (!yys) yys = "illegal-symbol";
-            printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
-                    YYPREFIX, yystate, yychar, yys);
-        }
-#endif
-        yychar = (-1);
-        goto yyloop;
+      yychar = yytoken = YYEOF;
+      YYDPRINTF ((stderr, "Now at end of input.\n"));
+    }
+  else
+    {
+      yytoken = YYTRANSLATE (yychar);
+      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
+    }
+
+  /* If the proper action on seeing token YYTOKEN is to reduce or to
+     detect an error, take that action.  */
+  yyn += yytoken;
+  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
+    goto yydefault;
+  yyn = yytable[yyn];
+  if (yyn <= 0)
+    {
+      if (yytable_value_is_error (yyn))
+        goto yyerrlab;
+      yyn = -yyn;
+      goto yyreduce;
     }
+
+  /* Count tokens shifted since error; after three, turn off error
+     status.  */
+  if (yyerrstatus)
+    yyerrstatus--;
+
+  /* Shift the lookahead token.  */
+  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
+
+  /* Discard the shifted token.  */
+  yychar = YYEMPTY;
+
+  yystate = yyn;
+  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+  *++yyvsp = yylval;
+  YY_IGNORE_MAYBE_UNINITIALIZED_END
+
+  goto yynewstate;
+
+
+/*-----------------------------------------------------------.
+| yydefault -- do the default action for the current state.  |
+`-----------------------------------------------------------*/
+yydefault:
+  yyn = yydefact[yystate];
+  if (yyn == 0)
+    goto yyerrlab;
+  goto yyreduce;
+
+
+/*-----------------------------.
+| yyreduce -- Do a reduction.  |
+`-----------------------------*/
 yyreduce:
-#if YYDEBUG
-    if (yydebug)
-        printf("%sdebug: state %d, reducing by rule %d (%s)\n",
-                YYPREFIX, yystate, yyn, yyrule[yyn]);
-#endif
-    yym = yylen[yyn];
-    yyval = yyvsp[1-yym];
-    switch (yyn)
+  /* yyn is the number of a rule to reduce with.  */
+  yylen = yyr2[yyn];
+
+  /* If YYLEN is nonzero, implement the default value of the action:
+     `$$ = $1'.
+
+     Otherwise, the following line sets YYVAL to garbage.
+     This behavior is undocumented and Bison
+     users should not rely upon it.  Assigning to YYVAL
+     unconditionally makes the parser a bit smaller, and it avoids a
+     GCC warning that YYVAL may be used uninitialized.  */
+  yyval = yyvsp[1-yylen];
+
+
+  YY_REDUCE_PRINT (yyn);
+  switch (yyn)
     {
-case 1:
-#line 100 "H5LTparse.y"
-{ memset(arr_stack, 0, STACK_SIZE*sizeof(struct arr_info)); /*initialize here?*/ }
-break;
-case 2:
+        case 2:
+/* Line 1807 of yacc.c  */
 #line 101 "H5LTparse.y"
-{ return yyval.ival;}
-break;
-case 12:
-#line 115 "H5LTparse.y"
-{ yyval.ival = H5Tcopy(H5T_STD_I8BE); }
-break;
-case 13:
+    { memset(arr_stack, 0, STACK_SIZE*sizeof(struct arr_info)); /*initialize here?*/ }
+    break;
+
+  case 3:
+/* Line 1807 of yacc.c  */
+#line 102 "H5LTparse.y"
+    { return (yyval.hid);}
+    break;
+
+  case 13:
+/* Line 1807 of yacc.c  */
 #line 116 "H5LTparse.y"
-{ yyval.ival = H5Tcopy(H5T_STD_I8LE); }
-break;
-case 14:
+    { (yyval.hid) = H5Tcopy(H5T_STD_I8BE); }
+    break;
+
+  case 14:
+/* Line 1807 of yacc.c  */
 #line 117 "H5LTparse.y"
-{ yyval.ival = H5Tcopy(H5T_STD_I16BE); }
-break;
-case 15:
+    { (yyval.hid) = H5Tcopy(H5T_STD_I8LE); }
+    break;
+
+  case 15:
+/* Line 1807 of yacc.c  */
 #line 118 "H5LTparse.y"
-{ yyval.ival = H5Tcopy(H5T_STD_I16LE); }
-break;
-case 16:
+    { (yyval.hid) = H5Tcopy(H5T_STD_I16BE); }
+    break;
+
+  case 16:
+/* Line 1807 of yacc.c  */
 #line 119 "H5LTparse.y"
-{ yyval.ival = H5Tcopy(H5T_STD_I32BE); }
-break;
-case 17:
+    { (yyval.hid) = H5Tcopy(H5T_STD_I16LE); }
+    break;
+
+  case 17:
+/* Line 1807 of yacc.c  */
 #line 120 "H5LTparse.y"
-{ yyval.ival = H5Tcopy(H5T_STD_I32LE); }
-break;
-case 18:
+    { (yyval.hid) = H5Tcopy(H5T_STD_I32BE); }
+    break;
+
+  case 18:
+/* Line 1807 of yacc.c  */
 #line 121 "H5LTparse.y"
-{ yyval.ival = H5Tcopy(H5T_STD_I64BE); }
-break;
-case 19:
+    { (yyval.hid) = H5Tcopy(H5T_STD_I32LE); }
+    break;
+
+  case 19:
+/* Line 1807 of yacc.c  */
 #line 122 "H5LTparse.y"
-{ yyval.ival = H5Tcopy(H5T_STD_I64LE); }
-break;
-case 20:
+    { (yyval.hid) = H5Tcopy(H5T_STD_I64BE); }
+    break;
+
+  case 20:
+/* Line 1807 of yacc.c  */
 #line 123 "H5LTparse.y"
-{ yyval.ival = H5Tcopy(H5T_STD_U8BE); }
-break;
-case 21:
+    { (yyval.hid) = H5Tcopy(H5T_STD_I64LE); }
+    break;
+
+  case 21:
+/* Line 1807 of yacc.c  */
 #line 124 "H5LTparse.y"
-{ yyval.ival = H5Tcopy(H5T_STD_U8LE); }
-break;
-case 22:
+    { (yyval.hid) = H5Tcopy(H5T_STD_U8BE); }
+    break;
+
+  case 22:
+/* Line 1807 of yacc.c  */
 #line 125 "H5LTparse.y"
-{ yyval.ival = H5Tcopy(H5T_STD_U16BE); }
-break;
-case 23:
+    { (yyval.hid) = H5Tcopy(H5T_STD_U8LE); }
+    break;
+
+  case 23:
+/* Line 1807 of yacc.c  */
 #line 126 "H5LTparse.y"
-{ yyval.ival = H5Tcopy(H5T_STD_U16LE); }
-break;
-case 24:
+    { (yyval.hid) = H5Tcopy(H5T_STD_U16BE); }
+    break;
+
+  case 24:
+/* Line 1807 of yacc.c  */
 #line 127 "H5LTparse.y"
-{ yyval.ival = H5Tcopy(H5T_STD_U32BE); }
-break;
-case 25:
+    { (yyval.hid) = H5Tcopy(H5T_STD_U16LE); }
+    break;
+
+  case 25:
+/* Line 1807 of yacc.c  */
 #line 128 "H5LTparse.y"
-{ yyval.ival = H5Tcopy(H5T_STD_U32LE); }
-break;
-case 26:
+    { (yyval.hid) = H5Tcopy(H5T_STD_U32BE); }
+    break;
+
+  case 26:
+/* Line 1807 of yacc.c  */
 #line 129 "H5LTparse.y"
-{ yyval.ival = H5Tcopy(H5T_STD_U64BE); }
-break;
-case 27:
+    { (yyval.hid) = H5Tcopy(H5T_STD_U32LE); }
+    break;
+
+  case 27:
+/* Line 1807 of yacc.c  */
 #line 130 "H5LTparse.y"
-{ yyval.ival = H5Tcopy(H5T_STD_U64LE); }
-break;
-case 28:
+    { (yyval.hid) = H5Tcopy(H5T_STD_U64BE); }
+    break;
+
+  case 28:
+/* Line 1807 of yacc.c  */
 #line 131 "H5LTparse.y"
-{ yyval.ival = H5Tcopy(H5T_NATIVE_CHAR); }
-break;
-case 29:
+    { (yyval.hid) = H5Tcopy(H5T_STD_U64LE); }
+    break;
+
+  case 29:
+/* Line 1807 of yacc.c  */
 #line 132 "H5LTparse.y"
-{ yyval.ival = H5Tcopy(H5T_NATIVE_SCHAR); }
-break;
-case 30:
+    { (yyval.hid) = H5Tcopy(H5T_NATIVE_CHAR); }
+    break;
+
+  case 30:
+/* Line 1807 of yacc.c  */
 #line 133 "H5LTparse.y"
-{ yyval.ival = H5Tcopy(H5T_NATIVE_UCHAR); }
-break;
-case 31:
+    { (yyval.hid) = H5Tcopy(H5T_NATIVE_SCHAR); }
+    break;
+
+  case 31:
+/* Line 1807 of yacc.c  */
 #line 134 "H5LTparse.y"
-{ yyval.ival = H5Tcopy(H5T_NATIVE_SHORT); }
-break;
-case 32:
+    { (yyval.hid) = H5Tcopy(H5T_NATIVE_UCHAR); }
+    break;
+
+  case 32:
+/* Line 1807 of yacc.c  */
 #line 135 "H5LTparse.y"
-{ yyval.ival = H5Tcopy(H5T_NATIVE_USHORT); }
-break;
-case 33:
+    { (yyval.hid) = H5Tcopy(H5T_NATIVE_SHORT); }
+    break;
+
+  case 33:
+/* Line 1807 of yacc.c  */
 #line 136 "H5LTparse.y"
-{ yyval.ival = H5Tcopy(H5T_NATIVE_INT); }
-break;
-case 34:
+    { (yyval.hid) = H5Tcopy(H5T_NATIVE_USHORT); }
+    break;
+
+  case 34:
+/* Line 1807 of yacc.c  */
 #line 137 "H5LTparse.y"
-{ yyval.ival = H5Tcopy(H5T_NATIVE_UINT); }
-break;
-case 35:
+    { (yyval.hid) = H5Tcopy(H5T_NATIVE_INT); }
+    break;
+
+  case 35:
+/* Line 1807 of yacc.c  */
 #line 138 "H5LTparse.y"
-{ yyval.ival = H5Tcopy(H5T_NATIVE_LONG); }
-break;
-case 36:
+    { (yyval.hid) = H5Tcopy(H5T_NATIVE_UINT); }
+    break;
+
+  case 36:
+/* Line 1807 of yacc.c  */
 #line 139 "H5LTparse.y"
-{ yyval.ival = H5Tcopy(H5T_NATIVE_ULONG); }
-break;
-case 37:
+    { (yyval.hid) = H5Tcopy(H5T_NATIVE_LONG); }
+    break;
+
+  case 37:
+/* Line 1807 of yacc.c  */
 #line 140 "H5LTparse.y"
-{ yyval.ival = H5Tcopy(H5T_NATIVE_LLONG); }
-break;
-case 38:
+    { (yyval.hid) = H5Tcopy(H5T_NATIVE_ULONG); }
+    break;
+
+  case 38:
+/* Line 1807 of yacc.c  */
 #line 141 "H5LTparse.y"
-{ yyval.ival = H5Tcopy(H5T_NATIVE_ULLONG); }
-break;
-case 39:
-#line 144 "H5LTparse.y"
-{ yyval.ival = H5Tcopy(H5T_IEEE_F32BE); }
-break;
-case 40:
+    { (yyval.hid) = H5Tcopy(H5T_NATIVE_LLONG); }
+    break;
+
+  case 39:
+/* Line 1807 of yacc.c  */
+#line 142 "H5LTparse.y"
+    { (yyval.hid) = H5Tcopy(H5T_NATIVE_ULLONG); }
+    break;
+
+  case 40:
+/* Line 1807 of yacc.c  */
 #line 145 "H5LTparse.y"
-{ yyval.ival = H5Tcopy(H5T_IEEE_F32LE); }
-break;
-case 41:
+    { (yyval.hid) = H5Tcopy(H5T_IEEE_F32BE); }
+    break;
+
+  case 41:
+/* Line 1807 of yacc.c  */
 #line 146 "H5LTparse.y"
-{ yyval.ival = H5Tcopy(H5T_IEEE_F64BE); }
-break;
-case 42:
+    { (yyval.hid) = H5Tcopy(H5T_IEEE_F32LE); }
+    break;
+
+  case 42:
+/* Line 1807 of yacc.c  */
 #line 147 "H5LTparse.y"
-{ yyval.ival = H5Tcopy(H5T_IEEE_F64LE); }
-break;
-case 43:
+    { (yyval.hid) = H5Tcopy(H5T_IEEE_F64BE); }
+    break;
+
+  case 43:
+/* Line 1807 of yacc.c  */
 #line 148 "H5LTparse.y"
-{ yyval.ival = H5Tcopy(H5T_NATIVE_FLOAT); }
-break;
-case 44:
+    { (yyval.hid) = H5Tcopy(H5T_IEEE_F64LE); }
+    break;
+
+  case 44:
+/* Line 1807 of yacc.c  */
 #line 149 "H5LTparse.y"
-{ yyval.ival = H5Tcopy(H5T_NATIVE_DOUBLE); }
-break;
-case 45:
+    { (yyval.hid) = H5Tcopy(H5T_NATIVE_FLOAT); }
+    break;
+
+  case 45:
+/* Line 1807 of yacc.c  */
 #line 150 "H5LTparse.y"
-{ yyval.ival = H5Tcopy(H5T_NATIVE_LDOUBLE); }
-break;
-case 46:
-#line 154 "H5LTparse.y"
-{ csindex++; cmpd_stack[csindex].id = H5Tcreate(H5T_COMPOUND, 1); /*temporarily set size to 1*/ }
-break;
-case 47:
-#line 156 "H5LTparse.y"
-{ yyval.ival = cmpd_stack[csindex].id;
+    { (yyval.hid) = H5Tcopy(H5T_NATIVE_DOUBLE); }
+    break;
+
+  case 46:
+/* Line 1807 of yacc.c  */
+#line 151 "H5LTparse.y"
+    { (yyval.hid) = H5Tcopy(H5T_NATIVE_LDOUBLE); }
+    break;
+
+  case 47:
+/* Line 1807 of yacc.c  */
+#line 155 "H5LTparse.y"
+    { csindex++; cmpd_stack[csindex].id = H5Tcreate(H5T_COMPOUND, 1); /*temporarily set size to 1*/ }
+    break;
+
+  case 48:
+/* Line 1807 of yacc.c  */
+#line 157 "H5LTparse.y"
+    { (yyval.hid) = cmpd_stack[csindex].id; 
                               cmpd_stack[csindex].id = 0;
-                              cmpd_stack[csindex].first_memb = 1;
+                              cmpd_stack[csindex].first_memb = 1; 
                               csindex--;
                             }
-break;
-case 50:
-#line 165 "H5LTparse.y"
-{ cmpd_stack[csindex].is_field = 1; /*notify lexer a compound member is parsed*/ }
-break;
-case 51:
-#line 167 "H5LTparse.y"
-{
+    break;
+
+  case 51:
+/* Line 1807 of yacc.c  */
+#line 166 "H5LTparse.y"
+    { cmpd_stack[csindex].is_field = 1; /*notify lexer a compound member is parsed*/ }
+    break;
+
+  case 52:
+/* Line 1807 of yacc.c  */
+#line 168 "H5LTparse.y"
+    {   
                             size_t origin_size, new_size;
                             hid_t dtype_id = cmpd_stack[csindex].id;
 
                             /*Adjust size and insert member, consider both member size and offset.*/
                             if(cmpd_stack[csindex].first_memb) { /*reclaim the size 1 temporarily set*/
-                                new_size = H5Tget_size(yyvsp[-6].ival) + yyvsp[-1].ival;
+                                new_size = H5Tget_size((yyvsp[(1) - (7)].hid)) + (yyvsp[(6) - (7)].ival);
                                 H5Tset_size(dtype_id, new_size);
                                 /*member name is saved in yylval.sval by lexer*/
-                                H5Tinsert(dtype_id, yyvsp[-3].sval, yyvsp[-1].ival, yyvsp[-6].ival);
+                                H5Tinsert(dtype_id, (yyvsp[(4) - (7)].sval), (yyvsp[(6) - (7)].ival), (yyvsp[(1) - (7)].hid));
 
                                 cmpd_stack[csindex].first_memb = 0;
                             } else {
                                 origin_size = H5Tget_size(dtype_id);
-
-                                if(yyvsp[-1].ival == 0) {
-                                    new_size = origin_size + H5Tget_size(yyvsp[-6].ival);
+                                
+                                if((yyvsp[(6) - (7)].ival) == 0) {
+                                    new_size = origin_size + H5Tget_size((yyvsp[(1) - (7)].hid));
                                     H5Tset_size(dtype_id, new_size);
-                                    H5Tinsert(dtype_id, yyvsp[-3].sval, origin_size, yyvsp[-6].ival);
+                                    H5Tinsert(dtype_id, (yyvsp[(4) - (7)].sval), origin_size, (yyvsp[(1) - (7)].hid));
                                 } else {
-                                    new_size = yyvsp[-1].ival + H5Tget_size(yyvsp[-6].ival);
+                                    new_size = (yyvsp[(6) - (7)].ival) + H5Tget_size((yyvsp[(1) - (7)].hid));
                                     H5Tset_size(dtype_id, new_size);
-                                    H5Tinsert(dtype_id, yyvsp[-3].sval, yyvsp[-1].ival, yyvsp[-6].ival);
+                                    H5Tinsert(dtype_id, (yyvsp[(4) - (7)].sval), (yyvsp[(6) - (7)].ival), (yyvsp[(1) - (7)].hid));
                                 }
                             }
-
+                          
                             cmpd_stack[csindex].is_field = 0;
-                            H5Tclose(yyvsp[-6].ival);
-
+                            H5Tclose((yyvsp[(1) - (7)].hid));
+                             
                             new_size = H5Tget_size(dtype_id);
                         }
-break;
-case 52:
-#line 200 "H5LTparse.y"
-{
-                            yyval.sval = yylval.sval;
+    break;
+
+  case 53:
+/* Line 1807 of yacc.c  */
+#line 201 "H5LTparse.y"
+    {
+                            (yyval.sval) = yylval.sval;
                         }
-break;
-case 53:
-#line 205 "H5LTparse.y"
-{ yyval.ival = 0; }
-break;
-case 54:
-#line 207 "H5LTparse.y"
-{ yyval.ival = yylval.ival; }
-break;
-case 56:
-#line 211 "H5LTparse.y"
-{ asindex++; /*pushd onto the stack*/ }
-break;
-case 57:
-#line 213 "H5LTparse.y"
-{
-                          yyval.ival = H5Tarray_create2(yyvsp[-1].ival, arr_stack[asindex].ndims, arr_stack[asindex].dims);
+    break;
+
+  case 54:
+/* Line 1807 of yacc.c  */
+#line 206 "H5LTparse.y"
+    { (yyval.ival) = 0; }
+    break;
+
+  case 55:
+/* Line 1807 of yacc.c  */
+#line 208 "H5LTparse.y"
+    { (yyval.ival) = yylval.ival; }
+    break;
+
+  case 57:
+/* Line 1807 of yacc.c  */
+#line 212 "H5LTparse.y"
+    { asindex++; /*pushd onto the stack*/ }
+    break;
+
+  case 58:
+/* Line 1807 of yacc.c  */
+#line 214 "H5LTparse.y"
+    { 
+                          (yyval.hid) = H5Tarray_create2((yyvsp[(5) - (6)].hid), arr_stack[asindex].ndims, arr_stack[asindex].dims);
                           arr_stack[asindex].ndims = 0;
                           asindex--;
-                          H5Tclose(yyvsp[-1].ival);
+                          H5Tclose((yyvsp[(5) - (6)].hid));
                         }
-break;
-case 60:
-#line 223 "H5LTparse.y"
-{ arr_stack[asindex].is_dim = 1; /*notice lexer of dimension size*/ }
-break;
-case 61:
+    break;
+
+  case 61:
+/* Line 1807 of yacc.c  */
 #line 224 "H5LTparse.y"
-{ unsigned ndims = arr_stack[asindex].ndims;
-                                  arr_stack[asindex].dims[ndims] = (hsize_t)yylval.ival;
+    { arr_stack[asindex].is_dim = 1; /*notice lexer of dimension size*/ }
+    break;
+
+  case 62:
+/* Line 1807 of yacc.c  */
+#line 225 "H5LTparse.y"
+    { unsigned ndims = arr_stack[asindex].ndims;
+                                  arr_stack[asindex].dims[ndims] = (hsize_t)yylval.ival; 
                                   arr_stack[asindex].ndims++;
-                                  arr_stack[asindex].is_dim = 0;
+                                  arr_stack[asindex].is_dim = 0; 
                                 }
-break;
-case 64:
-#line 235 "H5LTparse.y"
-{ yyval.ival = H5Tvlen_create(yyvsp[-1].ival); H5Tclose(yyvsp[-1].ival); }
-break;
-case 65:
-#line 240 "H5LTparse.y"
-{ is_opq_size = 1; }
-break;
-case 66:
+    break;
+
+  case 65:
+/* Line 1807 of yacc.c  */
+#line 236 "H5LTparse.y"
+    { (yyval.hid) = H5Tvlen_create((yyvsp[(3) - (4)].hid)); H5Tclose((yyvsp[(3) - (4)].hid)); }
+    break;
+
+  case 66:
+/* Line 1807 of yacc.c  */
 #line 241 "H5LTparse.y"
-{
+    { is_opq_size = 1; }
+    break;
+
+  case 67:
+/* Line 1807 of yacc.c  */
+#line 242 "H5LTparse.y"
+    {   
                                 size_t size = (size_t)yylval.ival;
-                                yyval.ival = H5Tcreate(H5T_OPAQUE, size);
-                                is_opq_size = 0;
+                                (yyval.hid) = H5Tcreate(H5T_OPAQUE, size);
+                                is_opq_size = 0;    
                             }
-break;
-case 67:
-#line 246 "H5LTparse.y"
-{ is_opq_tag = 1; }
-break;
-case 68:
+    break;
+
+  case 68:
+/* Line 1807 of yacc.c  */
 #line 247 "H5LTparse.y"
-{
-                                H5Tset_tag(yyvsp[-6].ival, yylval.sval);
+    { is_opq_tag = 1; }
+    break;
+
+  case 69:
+/* Line 1807 of yacc.c  */
+#line 248 "H5LTparse.y"
+    {  
+                                H5Tset_tag((yyvsp[(7) - (13)].hid), yylval.sval);
                                 is_opq_tag = 0;
                             }
-break;
-case 69:
-#line 251 "H5LTparse.y"
-{ yyval.ival = yyvsp[-8].ival; }
-break;
-case 72:
-#line 259 "H5LTparse.y"
-{ is_str_size = 1; }
-break;
-case 73:
+    break;
+
+  case 70:
+/* Line 1807 of yacc.c  */
+#line 252 "H5LTparse.y"
+    { (yyval.hid) = (yyvsp[(7) - (15)].hid); }
+    break;
+
+  case 73:
+/* Line 1807 of yacc.c  */
 #line 260 "H5LTparse.y"
-{
-                                if(yyvsp[-1].ival == H5T_VARIABLE_TOKEN)
+    { is_str_size = 1; }
+    break;
+
+  case 74:
+/* Line 1807 of yacc.c  */
+#line 261 "H5LTparse.y"
+    {  
+                                if((yyvsp[(5) - (6)].ival) == H5T_VARIABLE_TOKEN)
                                     is_variable = 1;
-                                else
+                                else 
                                     str_size = yylval.ival;
-                                is_str_size = 0;
+                                is_str_size = 0; 
                             }
-break;
-case 74:
-#line 268 "H5LTparse.y"
-{
-                                if(yyvsp[-1].ival == H5T_STR_NULLTERM_TOKEN)
+    break;
+
+  case 75:
+/* Line 1807 of yacc.c  */
+#line 269 "H5LTparse.y"
+    {
+                                if((yyvsp[(9) - (10)].ival) == H5T_STR_NULLTERM_TOKEN)
                                     str_pad = H5T_STR_NULLTERM;
-                                else if(yyvsp[-1].ival == H5T_STR_NULLPAD_TOKEN)
+                                else if((yyvsp[(9) - (10)].ival) == H5T_STR_NULLPAD_TOKEN)
                                     str_pad = H5T_STR_NULLPAD;
-                                else if(yyvsp[-1].ival == H5T_STR_SPACEPAD_TOKEN)
+                                else if((yyvsp[(9) - (10)].ival) == H5T_STR_SPACEPAD_TOKEN)
                                     str_pad = H5T_STR_SPACEPAD;
                             }
-break;
-case 75:
-#line 277 "H5LTparse.y"
-{
-                                if(yyvsp[-1].ival == H5T_CSET_ASCII_TOKEN)
+    break;
+
+  case 76:
+/* Line 1807 of yacc.c  */
+#line 278 "H5LTparse.y"
+    {  
+                                if((yyvsp[(13) - (14)].ival) == H5T_CSET_ASCII_TOKEN)
                                     str_cset = H5T_CSET_ASCII;
-                                else if(yyvsp[-1].ival == H5T_CSET_UTF8_TOKEN)
+                                else if((yyvsp[(13) - (14)].ival) == H5T_CSET_UTF8_TOKEN)
                                     str_cset = H5T_CSET_UTF8;
                             }
-break;
-case 76:
-#line 284 "H5LTparse.y"
-{
-                                if(yyvsp[-1].ival == H5T_C_S1_TOKEN)
-                                    yyval.ival = H5Tcopy(H5T_C_S1);
-                                else if(yyvsp[-1].ival == H5T_FORTRAN_S1_TOKEN)
-                                    yyval.ival = H5Tcopy(H5T_FORTRAN_S1);
+    break;
+
+  case 77:
+/* Line 1807 of yacc.c  */
+#line 285 "H5LTparse.y"
+    {
+                                if((yyvsp[(17) - (18)].hid) == H5T_C_S1_TOKEN)
+                                    (yyval.hid) = H5Tcopy(H5T_C_S1);
+                                else if((yyvsp[(17) - (18)].hid) == H5T_FORTRAN_S1_TOKEN)
+                                    (yyval.hid) = H5Tcopy(H5T_FORTRAN_S1);
                             }
-break;
-case 77:
-#line 291 "H5LTparse.y"
-{
-                                hid_t str_id = yyvsp[-1].ival;
+    break;
+
+  case 78:
+/* Line 1807 of yacc.c  */
+#line 292 "H5LTparse.y"
+    {   
+                                hid_t str_id = (yyvsp[(19) - (20)].hid);
 
                                 /*set string size*/
                                 if(is_variable) {
@@ -990,57 +2056,79 @@ case 77:
                                     is_variable = 0;
                                 } else
                                     H5Tset_size(str_id, str_size);
-
+                                
                                 /*set string padding and character set*/
                                 H5Tset_strpad(str_id, str_pad);
                                 H5Tset_cset(str_id, str_cset);
 
-                                yyval.ival = str_id;
+                                (yyval.hid) = str_id; 
                             }
-break;
-case 78:
-#line 308 "H5LTparse.y"
-{yyval.ival = H5T_VARIABLE_TOKEN;}
-break;
-case 80:
-#line 311 "H5LTparse.y"
-{yyval.ival = H5T_STR_NULLTERM_TOKEN;}
-break;
-case 81:
+    break;
+
+  case 79:
+/* Line 1807 of yacc.c  */
+#line 309 "H5LTparse.y"
+    {(yyval.ival) = H5T_VARIABLE_TOKEN;}
+    break;
+
+  case 81:
+/* Line 1807 of yacc.c  */
 #line 312 "H5LTparse.y"
-{yyval.ival = H5T_STR_NULLPAD_TOKEN;}
-break;
-case 82:
+    {(yyval.ival) = H5T_STR_NULLTERM_TOKEN;}
+    break;
+
+  case 82:
+/* Line 1807 of yacc.c  */
 #line 313 "H5LTparse.y"
-{yyval.ival = H5T_STR_SPACEPAD_TOKEN;}
-break;
-case 83:
-#line 315 "H5LTparse.y"
-{yyval.ival = H5T_CSET_ASCII_TOKEN;}
-break;
-case 84:
+    {(yyval.ival) = H5T_STR_NULLPAD_TOKEN;}
+    break;
+
+  case 83:
+/* Line 1807 of yacc.c  */
+#line 314 "H5LTparse.y"
+    {(yyval.ival) = H5T_STR_SPACEPAD_TOKEN;}
+    break;
+
+  case 84:
+/* Line 1807 of yacc.c  */
 #line 316 "H5LTparse.y"
-{yyval.ival = H5T_CSET_UTF8_TOKEN;}
-break;
-case 85:
-#line 318 "H5LTparse.y"
-{yyval.ival = H5T_C_S1_TOKEN;}
-break;
-case 86:
+    {(yyval.ival) = H5T_CSET_ASCII_TOKEN;}
+    break;
+
+  case 85:
+/* Line 1807 of yacc.c  */
+#line 317 "H5LTparse.y"
+    {(yyval.ival) = H5T_CSET_UTF8_TOKEN;}
+    break;
+
+  case 86:
+/* Line 1807 of yacc.c  */
 #line 319 "H5LTparse.y"
-{yyval.ival = H5T_FORTRAN_S1_TOKEN;}
-break;
-case 87:
-#line 323 "H5LTparse.y"
-{ is_enum = 1; enum_id = H5Tenum_create(yyvsp[-1].ival); H5Tclose(yyvsp[-1].ival); }
-break;
-case 88:
-#line 325 "H5LTparse.y"
-{ is_enum = 0; /*reset*/ yyval.ival = enum_id; }
-break;
-case 91:
-#line 330 "H5LTparse.y"
-{
+    {(yyval.hid) = H5T_C_S1_TOKEN;}
+    break;
+
+  case 87:
+/* Line 1807 of yacc.c  */
+#line 320 "H5LTparse.y"
+    {(yyval.hid) = H5T_FORTRAN_S1_TOKEN;}
+    break;
+
+  case 88:
+/* Line 1807 of yacc.c  */
+#line 324 "H5LTparse.y"
+    { is_enum = 1; enum_id = H5Tenum_create((yyvsp[(3) - (4)].hid)); H5Tclose((yyvsp[(3) - (4)].hid)); }
+    break;
+
+  case 89:
+/* Line 1807 of yacc.c  */
+#line 326 "H5LTparse.y"
+    { is_enum = 0; /*reset*/ (yyval.hid) = enum_id; }
+    break;
+
+  case 92:
+/* Line 1807 of yacc.c  */
+#line 331 "H5LTparse.y"
+    {
                                                 is_enum_memb = 1; /*indicate member of enum*/
 #ifdef H5_HAVE_WIN32_API
                                                 enum_memb_symbol = _strdup(yylval.sval); 
@@ -1048,10 +2136,12 @@ case 91:
                                                 enum_memb_symbol = strdup(yylval.sval); 
 #endif  /* H5_HAVE_WIN32_API */
                                             }
-break;
-case 92:
-#line 339 "H5LTparse.y"
-{
+    break;
+
+  case 93:
+/* Line 1807 of yacc.c  */
+#line 340 "H5LTparse.y"
+    {
                                 char char_val=(char)yylval.ival;
                                 short short_val=(short)yylval.ival;
                                 int int_val=(int)yylval.ival;
@@ -1061,93 +2151,270 @@ case 92:
                                 hid_t native = H5Tget_native_type(super, H5T_DIR_ASCEND);
                                 H5T_order_t super_order = H5Tget_order(super);
                                 H5T_order_t native_order = H5Tget_order(native);
-
+ 
                                 if(is_enum && is_enum_memb) { /*if it's an enum member*/
                                     /*To handle machines of different endianness*/
                                     if(H5Tequal(native, H5T_NATIVE_SCHAR) || H5Tequal(native, H5T_NATIVE_UCHAR)) {
                                         if(super_order != native_order)
-                                            H5Tconvert(native, super, 1, &char_val, NULL, H5P_DEFAULT);
+                                            H5Tconvert(native, super, 1, &char_val, NULL, H5P_DEFAULT); 
                                         H5Tenum_insert(enum_id, enum_memb_symbol, &char_val);
                                     } else if(H5Tequal(native, H5T_NATIVE_SHORT) || H5Tequal(native, H5T_NATIVE_USHORT)) {
                                         if(super_order != native_order)
-                                            H5Tconvert(native, super, 1, &short_val, NULL, H5P_DEFAULT);
+                                            H5Tconvert(native, super, 1, &short_val, NULL, H5P_DEFAULT); 
                                         H5Tenum_insert(enum_id, enum_memb_symbol, &short_val);
                                     } else if(H5Tequal(native, H5T_NATIVE_INT) || H5Tequal(native, H5T_NATIVE_UINT)) {
                                         if(super_order != native_order)
-                                            H5Tconvert(native, super, 1, &int_val, NULL, H5P_DEFAULT);
+                                            H5Tconvert(native, super, 1, &int_val, NULL, H5P_DEFAULT); 
                                         H5Tenum_insert(enum_id, enum_memb_symbol, &int_val);
                                     } else if(H5Tequal(native, H5T_NATIVE_LONG) || H5Tequal(native, H5T_NATIVE_ULONG)) {
                                         if(super_order != native_order)
-                                            H5Tconvert(native, super, 1, &long_val, NULL, H5P_DEFAULT);
+                                            H5Tconvert(native, super, 1, &long_val, NULL, H5P_DEFAULT); 
                                         H5Tenum_insert(enum_id, enum_memb_symbol, &long_val);
                                     } else if(H5Tequal(native, H5T_NATIVE_LLONG) || H5Tequal(native, H5T_NATIVE_ULLONG)) {
                                         if(super_order != native_order)
-                                            H5Tconvert(native, super, 1, &llong_val, NULL, H5P_DEFAULT);
+                                            H5Tconvert(native, super, 1, &llong_val, NULL, H5P_DEFAULT); 
                                         H5Tenum_insert(enum_id, enum_memb_symbol, &llong_val);
                                     }
 
-                                    is_enum_memb = 0;
+                                    is_enum_memb = 0; 
                                     if(enum_memb_symbol) free(enum_memb_symbol);
                                 }
 
                                 H5Tclose(super);
                                 H5Tclose(native);
                             }
-break;
-#line 1098 "H5LTparse.c"
+    break;
+
+
+/* Line 1807 of yacc.c  */
+#line 2191 "H5LTparse.c"
+      default: break;
     }
-    yyssp -= yym;
-    yystate = *yyssp;
-    yyvsp -= yym;
-    yym = yylhs[yyn];
-    if (yystate == 0 && yym == 0)
+  /* User semantic actions sometimes alter yychar, and that requires
+     that yytoken be updated with the new translation.  We take the
+     approach of translating immediately before every use of yytoken.
+     One alternative is translating here after every semantic action,
+     but that translation would be missed if the semantic action invokes
+     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
+     if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
+     incorrect destructor might then be invoked immediately.  In the
+     case of YYERROR or YYBACKUP, subsequent parser actions might lead
+     to an incorrect destructor call or verbose syntax error message
+     before the lookahead is translated.  */
+  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
+
+  YYPOPSTACK (yylen);
+  yylen = 0;
+  YY_STACK_PRINT (yyss, yyssp);
+
+  *++yyvsp = yyval;
+
+  /* Now `shift' the result of the reduction.  Determine what state
+     that goes to, based on the state we popped back to and the rule
+     number reduced by.  */
+
+  yyn = yyr1[yyn];
+
+  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
+  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
+    yystate = yytable[yystate];
+  else
+    yystate = yydefgoto[yyn - YYNTOKENS];
+
+  goto yynewstate;
+
+
+/*------------------------------------.
+| yyerrlab -- here on detecting error |
+`------------------------------------*/
+yyerrlab:
+  /* Make sure we have latest lookahead translation.  See comments at
+     user semantic actions for why this is necessary.  */
+  yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
+
+  /* If not already recovering from an error, report this error.  */
+  if (!yyerrstatus)
     {
-#if YYDEBUG
-        if (yydebug)
-            printf("%sdebug: after reduction, shifting from state 0 to\
- state %d\n", YYPREFIX, YYFINAL);
-#endif
-        yystate = YYFINAL;
-        *++yyssp = YYFINAL;
-        *++yyvsp = yyval;
-        if (yychar < 0)
-        {
-            if ((yychar = yylex()) < 0) yychar = 0;
-#if YYDEBUG
-            if (yydebug)
-            {
-                yys = 0;
-                if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
-                if (!yys) yys = "illegal-symbol";
-                printf("%sdebug: state %d, reading %d (%s)\n",
-                        YYPREFIX, YYFINAL, yychar, yys);
-            }
+      ++yynerrs;
+#if ! YYERROR_VERBOSE
+      yyerror (YY_("syntax error"));
+#else
+# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
+                                        yyssp, yytoken)
+      {
+        char const *yymsgp = YY_("syntax error");
+        int yysyntax_error_status;
+        yysyntax_error_status = YYSYNTAX_ERROR;
+        if (yysyntax_error_status == 0)
+          yymsgp = yymsg;
+        else if (yysyntax_error_status == 1)
+          {
+            if (yymsg != yymsgbuf)
+              YYSTACK_FREE (yymsg);
+            yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
+            if (!yymsg)
+              {
+                yymsg = yymsgbuf;
+                yymsg_alloc = sizeof yymsgbuf;
+                yysyntax_error_status = 2;
+              }
+            else
+              {
+                yysyntax_error_status = YYSYNTAX_ERROR;
+                yymsgp = yymsg;
+              }
+          }
+        yyerror (yymsgp);
+        if (yysyntax_error_status == 2)
+          goto yyexhaustedlab;
+      }
+# undef YYSYNTAX_ERROR
 #endif
-        }
-        if (yychar == 0) goto yyaccept;
-        goto yyloop;
     }
-    if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
-            yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
-        yystate = yytable[yyn];
-    else
-        yystate = yydgoto[yym];
-#if YYDEBUG
-    if (yydebug)
-        printf("%sdebug: after reduction, shifting from state %d \
-to state %d\n", YYPREFIX, *yyssp, yystate);
+
+
+
+  if (yyerrstatus == 3)
+    {
+      /* If just tried and failed to reuse lookahead token after an
+	 error, discard it.  */
+
+      if (yychar <= YYEOF)
+	{
+	  /* Return failure if at end of input.  */
+	  if (yychar == YYEOF)
+	    YYABORT;
+	}
+      else
+	{
+	  yydestruct ("Error: discarding",
+		      yytoken, &yylval);
+	  yychar = YYEMPTY;
+	}
+    }
+
+  /* Else will try to reuse lookahead token after shifting the error
+     token.  */
+  goto yyerrlab1;
+
+
+/*---------------------------------------------------.
+| yyerrorlab -- error raised explicitly by YYERROR.  |
+`---------------------------------------------------*/
+yyerrorlab:
+
+  /* Pacify compilers like GCC when the user code never invokes
+     YYERROR and the label yyerrorlab therefore never appears in user
+     code.  */
+  if (/*CONSTCOND*/ 0)
+     goto yyerrorlab;
+
+  /* Do not reclaim the symbols of the rule which action triggered
+     this YYERROR.  */
+  YYPOPSTACK (yylen);
+  yylen = 0;
+  YY_STACK_PRINT (yyss, yyssp);
+  yystate = *yyssp;
+  goto yyerrlab1;
+
+
+/*-------------------------------------------------------------.
+| yyerrlab1 -- common code for both syntax error and YYERROR.  |
+`-------------------------------------------------------------*/
+yyerrlab1:
+  yyerrstatus = 3;	/* Each real token shifted decrements this.  */
+
+  for (;;)
+    {
+      yyn = yypact[yystate];
+      if (!yypact_value_is_default (yyn))
+	{
+	  yyn += YYTERROR;
+	  if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
+	    {
+	      yyn = yytable[yyn];
+	      if (0 < yyn)
+		break;
+	    }
+	}
+
+      /* Pop the current state because it cannot handle the error token.  */
+      if (yyssp == yyss)
+	YYABORT;
+
+
+      yydestruct ("Error: popping",
+		  yystos[yystate], yyvsp);
+      YYPOPSTACK (1);
+      yystate = *yyssp;
+      YY_STACK_PRINT (yyss, yyssp);
+    }
+
+  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+  *++yyvsp = yylval;
+  YY_IGNORE_MAYBE_UNINITIALIZED_END
+
+
+  /* Shift the error token.  */
+  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
+
+  yystate = yyn;
+  goto yynewstate;
+
+
+/*-------------------------------------.
+| yyacceptlab -- YYACCEPT comes here.  |
+`-------------------------------------*/
+yyacceptlab:
+  yyresult = 0;
+  goto yyreturn;
+
+/*-----------------------------------.
+| yyabortlab -- YYABORT comes here.  |
+`-----------------------------------*/
+yyabortlab:
+  yyresult = 1;
+  goto yyreturn;
+
+#if !defined yyoverflow || YYERROR_VERBOSE
+/*-------------------------------------------------.
+| yyexhaustedlab -- memory exhaustion comes here.  |
+`-------------------------------------------------*/
+yyexhaustedlab:
+  yyerror (YY_("memory exhausted"));
+  yyresult = 2;
+  /* Fall through.  */
 #endif
-    if (yyssp >= yysslim && yygrowstack())
+
+yyreturn:
+  if (yychar != YYEMPTY)
+    {
+      /* Make sure we have latest lookahead translation.  See comments at
+         user semantic actions for why this is necessary.  */
+      yytoken = YYTRANSLATE (yychar);
+      yydestruct ("Cleanup: discarding lookahead",
+                  yytoken, &yylval);
+    }
+  /* Do not reclaim the symbols of the rule which action triggered
+     this YYABORT or YYACCEPT.  */
+  YYPOPSTACK (yylen);
+  YY_STACK_PRINT (yyss, yyssp);
+  while (yyssp != yyss)
     {
-        goto yyoverflow;
+      yydestruct ("Cleanup: popping",
+		  yystos[*yyssp], yyvsp);
+      YYPOPSTACK (1);
     }
-    *++yyssp = yystate;
-    *++yyvsp = yyval;
-    goto yyloop;
-yyoverflow:
-    yyerror("yacc stack overflow");
-yyabort:
-    return (1);
-yyaccept:
-    return (0);
+#ifndef yyoverflow
+  if (yyss != yyssa)
+    YYSTACK_FREE (yyss);
+#endif
+#if YYERROR_VERBOSE
+  if (yymsg != yymsgbuf)
+    YYSTACK_FREE (yymsg);
+#endif
+  /* Make sure YYID is used.  */
+  return YYID (yyresult);
 }
+
+
diff --git a/hl/src/H5LTparse.h b/hl/src/H5LTparse.h
index 2dd8057..621dacd 100644
--- a/hl/src/H5LTparse.h
+++ b/hl/src/H5LTparse.h
@@ -1,65 +1,144 @@
-#ifndef YYERRCODE
-#define YYERRCODE 256
+/* A Bison parser, made by GNU Bison 2.7.  */
+
+/* Bison interface for Yacc-like parsers in C
+   
+      Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc.
+   
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
+   
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+   
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* As a special exception, you may create a larger work that contains
+   part or all of the Bison parser skeleton and distribute that work
+   under terms of your choice, so long as that work isn't itself a
+   parser generator using the skeleton or a modified version thereof
+   as a parser skeleton.  Alternatively, if you modify or redistribute
+   the parser skeleton itself, you may (at your option) remove this
+   special exception, which will cause the skeleton and the resulting
+   Bison output files to be licensed under the GNU General Public
+   License without this special exception.
+   
+   This special exception was added by the Free Software Foundation in
+   version 2.2 of Bison.  */
+
+#ifndef YY_H5LTYY_H5LTPARSE_H_INCLUDED
+# define YY_H5LTYY_H5LTPARSE_H_INCLUDED
+/* Enabling traces.  */
+#ifndef YYDEBUG
+# define YYDEBUG 0
+#endif
+#if YYDEBUG
+extern int H5LTyydebug;
 #endif
 
-#define H5T_STD_I8BE_TOKEN 257
-#define H5T_STD_I8LE_TOKEN 258
-#define H5T_STD_I16BE_TOKEN 259
-#define H5T_STD_I16LE_TOKEN 260
-#define H5T_STD_I32BE_TOKEN 261
-#define H5T_STD_I32LE_TOKEN 262
-#define H5T_STD_I64BE_TOKEN 263
-#define H5T_STD_I64LE_TOKEN 264
-#define H5T_STD_U8BE_TOKEN 265
-#define H5T_STD_U8LE_TOKEN 266
-#define H5T_STD_U16BE_TOKEN 267
-#define H5T_STD_U16LE_TOKEN 268
-#define H5T_STD_U32BE_TOKEN 269
-#define H5T_STD_U32LE_TOKEN 270
-#define H5T_STD_U64BE_TOKEN 271
-#define H5T_STD_U64LE_TOKEN 272
-#define H5T_NATIVE_CHAR_TOKEN 273
-#define H5T_NATIVE_SCHAR_TOKEN 274
-#define H5T_NATIVE_UCHAR_TOKEN 275
-#define H5T_NATIVE_SHORT_TOKEN 276
-#define H5T_NATIVE_USHORT_TOKEN 277
-#define H5T_NATIVE_INT_TOKEN 278
-#define H5T_NATIVE_UINT_TOKEN 279
-#define H5T_NATIVE_LONG_TOKEN 280
-#define H5T_NATIVE_ULONG_TOKEN 281
-#define H5T_NATIVE_LLONG_TOKEN 282
-#define H5T_NATIVE_ULLONG_TOKEN 283
-#define H5T_IEEE_F32BE_TOKEN 284
-#define H5T_IEEE_F32LE_TOKEN 285
-#define H5T_IEEE_F64BE_TOKEN 286
-#define H5T_IEEE_F64LE_TOKEN 287
-#define H5T_NATIVE_FLOAT_TOKEN 288
-#define H5T_NATIVE_DOUBLE_TOKEN 289
-#define H5T_NATIVE_LDOUBLE_TOKEN 290
-#define H5T_STRING_TOKEN 291
-#define STRSIZE_TOKEN 292
-#define STRPAD_TOKEN 293
-#define CSET_TOKEN 294
-#define CTYPE_TOKEN 295
-#define H5T_VARIABLE_TOKEN 296
-#define H5T_STR_NULLTERM_TOKEN 297
-#define H5T_STR_NULLPAD_TOKEN 298
-#define H5T_STR_SPACEPAD_TOKEN 299
-#define H5T_CSET_ASCII_TOKEN 300
-#define H5T_CSET_UTF8_TOKEN 301
-#define H5T_C_S1_TOKEN 302
-#define H5T_FORTRAN_S1_TOKEN 303
-#define H5T_OPAQUE_TOKEN 304
-#define OPQ_SIZE_TOKEN 305
-#define OPQ_TAG_TOKEN 306
-#define H5T_COMPOUND_TOKEN 307
-#define H5T_ENUM_TOKEN 308
-#define H5T_ARRAY_TOKEN 309
-#define H5T_VLEN_TOKEN 310
-#define STRING 311
-#define NUMBER 312
-typedef union {
-    int   ival;         /*for integer token*/
-    char  *sval;        /*for name string*/
+/* Tokens.  */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+   /* Put the tokens into the symbol table, so that GDB and other debuggers
+      know about them.  */
+   enum yytokentype {
+     H5T_STD_I8BE_TOKEN = 258,
+     H5T_STD_I8LE_TOKEN = 259,
+     H5T_STD_I16BE_TOKEN = 260,
+     H5T_STD_I16LE_TOKEN = 261,
+     H5T_STD_I32BE_TOKEN = 262,
+     H5T_STD_I32LE_TOKEN = 263,
+     H5T_STD_I64BE_TOKEN = 264,
+     H5T_STD_I64LE_TOKEN = 265,
+     H5T_STD_U8BE_TOKEN = 266,
+     H5T_STD_U8LE_TOKEN = 267,
+     H5T_STD_U16BE_TOKEN = 268,
+     H5T_STD_U16LE_TOKEN = 269,
+     H5T_STD_U32BE_TOKEN = 270,
+     H5T_STD_U32LE_TOKEN = 271,
+     H5T_STD_U64BE_TOKEN = 272,
+     H5T_STD_U64LE_TOKEN = 273,
+     H5T_NATIVE_CHAR_TOKEN = 274,
+     H5T_NATIVE_SCHAR_TOKEN = 275,
+     H5T_NATIVE_UCHAR_TOKEN = 276,
+     H5T_NATIVE_SHORT_TOKEN = 277,
+     H5T_NATIVE_USHORT_TOKEN = 278,
+     H5T_NATIVE_INT_TOKEN = 279,
+     H5T_NATIVE_UINT_TOKEN = 280,
+     H5T_NATIVE_LONG_TOKEN = 281,
+     H5T_NATIVE_ULONG_TOKEN = 282,
+     H5T_NATIVE_LLONG_TOKEN = 283,
+     H5T_NATIVE_ULLONG_TOKEN = 284,
+     H5T_IEEE_F32BE_TOKEN = 285,
+     H5T_IEEE_F32LE_TOKEN = 286,
+     H5T_IEEE_F64BE_TOKEN = 287,
+     H5T_IEEE_F64LE_TOKEN = 288,
+     H5T_NATIVE_FLOAT_TOKEN = 289,
+     H5T_NATIVE_DOUBLE_TOKEN = 290,
+     H5T_NATIVE_LDOUBLE_TOKEN = 291,
+     H5T_STRING_TOKEN = 292,
+     STRSIZE_TOKEN = 293,
+     STRPAD_TOKEN = 294,
+     CSET_TOKEN = 295,
+     CTYPE_TOKEN = 296,
+     H5T_VARIABLE_TOKEN = 297,
+     H5T_STR_NULLTERM_TOKEN = 298,
+     H5T_STR_NULLPAD_TOKEN = 299,
+     H5T_STR_SPACEPAD_TOKEN = 300,
+     H5T_CSET_ASCII_TOKEN = 301,
+     H5T_CSET_UTF8_TOKEN = 302,
+     H5T_C_S1_TOKEN = 303,
+     H5T_FORTRAN_S1_TOKEN = 304,
+     H5T_OPAQUE_TOKEN = 305,
+     OPQ_SIZE_TOKEN = 306,
+     OPQ_TAG_TOKEN = 307,
+     H5T_COMPOUND_TOKEN = 308,
+     H5T_ENUM_TOKEN = 309,
+     H5T_ARRAY_TOKEN = 310,
+     H5T_VLEN_TOKEN = 311,
+     STRING = 312,
+     NUMBER = 313
+   };
+#endif
+
+
+#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
+typedef union YYSTYPE
+{
+/* Line 2065 of yacc.c  */
+#line 68 "H5LTparse.y"
+
+    int     ival;         /*for integer token*/
+    char    *sval;        /*for name string*/
+    hid_t   hid;          /*for hid_t token*/
+
+
+/* Line 2065 of yacc.c  */
+#line 122 "H5LTparse.h"
 } YYSTYPE;
+# define YYSTYPE_IS_TRIVIAL 1
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
+# define YYSTYPE_IS_DECLARED 1
+#endif
+
 extern YYSTYPE H5LTyylval;
+
+#ifdef YYPARSE_PARAM
+#if defined __STDC__ || defined __cplusplus
+int H5LTyyparse (void *YYPARSE_PARAM);
+#else
+int H5LTyyparse ();
+#endif
+#else /* ! YYPARSE_PARAM */
+#if defined __STDC__ || defined __cplusplus
+int H5LTyyparse (void);
+#else
+int H5LTyyparse ();
+#endif
+#endif /* ! YYPARSE_PARAM */
+
+#endif /* !YY_H5LTYY_H5LTPARSE_H_INCLUDED  */
diff --git a/hl/src/H5LTparse.y b/hl/src/H5LTparse.y
index d4c786c..4c07533 100644
--- a/hl/src/H5LTparse.y
+++ b/hl/src/H5LTparse.y
@@ -66,20 +66,21 @@ hbool_t is_opq_tag = 0;             /*flag to lexer for opaque type tag*/
 
 %}
 %union {
-    int   ival;         /*for integer token*/
-    char  *sval;        /*for name string*/
+    int     ival;         /*for integer token*/
+    char    *sval;        /*for name string*/
+    hid_t   hid;          /*for hid_t token*/
 }
 
-%token <ival> H5T_STD_I8BE_TOKEN H5T_STD_I8LE_TOKEN H5T_STD_I16BE_TOKEN  H5T_STD_I16LE_TOKEN
-%token <ival> H5T_STD_I32BE_TOKEN H5T_STD_I32LE_TOKEN H5T_STD_I64BE_TOKEN H5T_STD_I64LE_TOKEN
-%token <ival> H5T_STD_U8BE_TOKEN H5T_STD_U8LE_TOKEN H5T_STD_U16BE_TOKEN  H5T_STD_U16LE_TOKEN
-%token <ival> H5T_STD_U32BE_TOKEN H5T_STD_U32LE_TOKEN H5T_STD_U64BE_TOKEN H5T_STD_U64LE_TOKEN
-%token <ival> H5T_NATIVE_CHAR_TOKEN H5T_NATIVE_SCHAR_TOKEN H5T_NATIVE_UCHAR_TOKEN 
-%token <ival> H5T_NATIVE_SHORT_TOKEN H5T_NATIVE_USHORT_TOKEN H5T_NATIVE_INT_TOKEN H5T_NATIVE_UINT_TOKEN 
-%token <ival> H5T_NATIVE_LONG_TOKEN H5T_NATIVE_ULONG_TOKEN H5T_NATIVE_LLONG_TOKEN H5T_NATIVE_ULLONG_TOKEN
+%token <hid> H5T_STD_I8BE_TOKEN H5T_STD_I8LE_TOKEN H5T_STD_I16BE_TOKEN  H5T_STD_I16LE_TOKEN
+%token <hid> H5T_STD_I32BE_TOKEN H5T_STD_I32LE_TOKEN H5T_STD_I64BE_TOKEN H5T_STD_I64LE_TOKEN
+%token <hid> H5T_STD_U8BE_TOKEN H5T_STD_U8LE_TOKEN H5T_STD_U16BE_TOKEN  H5T_STD_U16LE_TOKEN
+%token <hid> H5T_STD_U32BE_TOKEN H5T_STD_U32LE_TOKEN H5T_STD_U64BE_TOKEN H5T_STD_U64LE_TOKEN
+%token <hid> H5T_NATIVE_CHAR_TOKEN H5T_NATIVE_SCHAR_TOKEN H5T_NATIVE_UCHAR_TOKEN 
+%token <hid> H5T_NATIVE_SHORT_TOKEN H5T_NATIVE_USHORT_TOKEN H5T_NATIVE_INT_TOKEN H5T_NATIVE_UINT_TOKEN 
+%token <hid> H5T_NATIVE_LONG_TOKEN H5T_NATIVE_ULONG_TOKEN H5T_NATIVE_LLONG_TOKEN H5T_NATIVE_ULLONG_TOKEN
 
-%token <ival> H5T_IEEE_F32BE_TOKEN H5T_IEEE_F32LE_TOKEN H5T_IEEE_F64BE_TOKEN H5T_IEEE_F64LE_TOKEN
-%token <ival> H5T_NATIVE_FLOAT_TOKEN H5T_NATIVE_DOUBLE_TOKEN H5T_NATIVE_LDOUBLE_TOKEN
+%token <hid> H5T_IEEE_F32BE_TOKEN H5T_IEEE_F32LE_TOKEN H5T_IEEE_F64BE_TOKEN H5T_IEEE_F64LE_TOKEN
+%token <hid> H5T_NATIVE_FLOAT_TOKEN H5T_NATIVE_DOUBLE_TOKEN H5T_NATIVE_LDOUBLE_TOKEN
 
 %token <ival> H5T_STRING_TOKEN STRSIZE_TOKEN STRPAD_TOKEN CSET_TOKEN CTYPE_TOKEN H5T_VARIABLE_TOKEN
 %token <ival> H5T_STR_NULLTERM_TOKEN H5T_STR_NULLPAD_TOKEN H5T_STR_SPACEPAD_TOKEN 
@@ -98,7 +99,7 @@ hbool_t is_opq_tag = 0;             /*flag to lexer for opaque type tag*/
 
 %%
 start   :       { memset(arr_stack, 0, STACK_SIZE*sizeof(struct arr_info)); /*initialize here?*/ }
-        |       ddl_type  { return $<ival>$;}
+        |       ddl_type  { return $<hid>$;}
         ;
 ddl_type        :       atomic_type
                 |       compound_type
@@ -112,48 +113,48 @@ atomic_type     :       integer_type
                 |       opaque_type
                 ;
 
-integer_type    :       H5T_STD_I8BE_TOKEN  { $<ival>$ = H5Tcopy(H5T_STD_I8BE); }
-                |       H5T_STD_I8LE_TOKEN  { $<ival>$ = H5Tcopy(H5T_STD_I8LE); }
-                |       H5T_STD_I16BE_TOKEN { $<ival>$ = H5Tcopy(H5T_STD_I16BE); }
-                |       H5T_STD_I16LE_TOKEN { $<ival>$ = H5Tcopy(H5T_STD_I16LE); }
-                |       H5T_STD_I32BE_TOKEN { $<ival>$ = H5Tcopy(H5T_STD_I32BE); }
-                |       H5T_STD_I32LE_TOKEN { $<ival>$ = H5Tcopy(H5T_STD_I32LE); }
-                |       H5T_STD_I64BE_TOKEN { $<ival>$ = H5Tcopy(H5T_STD_I64BE); }
-                |       H5T_STD_I64LE_TOKEN { $<ival>$ = H5Tcopy(H5T_STD_I64LE); }
-                |       H5T_STD_U8BE_TOKEN  { $<ival>$ = H5Tcopy(H5T_STD_U8BE); }
-                |       H5T_STD_U8LE_TOKEN  { $<ival>$ = H5Tcopy(H5T_STD_U8LE); }
-                |       H5T_STD_U16BE_TOKEN { $<ival>$ = H5Tcopy(H5T_STD_U16BE); }
-                |       H5T_STD_U16LE_TOKEN { $<ival>$ = H5Tcopy(H5T_STD_U16LE); }
-                |       H5T_STD_U32BE_TOKEN { $<ival>$ = H5Tcopy(H5T_STD_U32BE); }
-                |       H5T_STD_U32LE_TOKEN { $<ival>$ = H5Tcopy(H5T_STD_U32LE); }
-                |       H5T_STD_U64BE_TOKEN { $<ival>$ = H5Tcopy(H5T_STD_U64BE); }
-                |       H5T_STD_U64LE_TOKEN { $<ival>$ = H5Tcopy(H5T_STD_U64LE); }
-                |       H5T_NATIVE_CHAR_TOKEN   { $<ival>$ = H5Tcopy(H5T_NATIVE_CHAR); }
-                |       H5T_NATIVE_SCHAR_TOKEN  { $<ival>$ = H5Tcopy(H5T_NATIVE_SCHAR); }
-                |       H5T_NATIVE_UCHAR_TOKEN  { $<ival>$ = H5Tcopy(H5T_NATIVE_UCHAR); }
-                |       H5T_NATIVE_SHORT_TOKEN  { $<ival>$ = H5Tcopy(H5T_NATIVE_SHORT); }
-                |       H5T_NATIVE_USHORT_TOKEN { $<ival>$ = H5Tcopy(H5T_NATIVE_USHORT); }
-                |       H5T_NATIVE_INT_TOKEN    { $<ival>$ = H5Tcopy(H5T_NATIVE_INT); }
-                |       H5T_NATIVE_UINT_TOKEN   { $<ival>$ = H5Tcopy(H5T_NATIVE_UINT); }
-                |       H5T_NATIVE_LONG_TOKEN   { $<ival>$ = H5Tcopy(H5T_NATIVE_LONG); }
-                |       H5T_NATIVE_ULONG_TOKEN  { $<ival>$ = H5Tcopy(H5T_NATIVE_ULONG); }
-                |       H5T_NATIVE_LLONG_TOKEN  { $<ival>$ = H5Tcopy(H5T_NATIVE_LLONG); }
-                |       H5T_NATIVE_ULLONG_TOKEN { $<ival>$ = H5Tcopy(H5T_NATIVE_ULLONG); }
+integer_type    :       H5T_STD_I8BE_TOKEN  { $<hid>$ = H5Tcopy(H5T_STD_I8BE); }
+                |       H5T_STD_I8LE_TOKEN  { $<hid>$ = H5Tcopy(H5T_STD_I8LE); }
+                |       H5T_STD_I16BE_TOKEN { $<hid>$ = H5Tcopy(H5T_STD_I16BE); }
+                |       H5T_STD_I16LE_TOKEN { $<hid>$ = H5Tcopy(H5T_STD_I16LE); }
+                |       H5T_STD_I32BE_TOKEN { $<hid>$ = H5Tcopy(H5T_STD_I32BE); }
+                |       H5T_STD_I32LE_TOKEN { $<hid>$ = H5Tcopy(H5T_STD_I32LE); }
+                |       H5T_STD_I64BE_TOKEN { $<hid>$ = H5Tcopy(H5T_STD_I64BE); }
+                |       H5T_STD_I64LE_TOKEN { $<hid>$ = H5Tcopy(H5T_STD_I64LE); }
+                |       H5T_STD_U8BE_TOKEN  { $<hid>$ = H5Tcopy(H5T_STD_U8BE); }
+                |       H5T_STD_U8LE_TOKEN  { $<hid>$ = H5Tcopy(H5T_STD_U8LE); }
+                |       H5T_STD_U16BE_TOKEN { $<hid>$ = H5Tcopy(H5T_STD_U16BE); }
+                |       H5T_STD_U16LE_TOKEN { $<hid>$ = H5Tcopy(H5T_STD_U16LE); }
+                |       H5T_STD_U32BE_TOKEN { $<hid>$ = H5Tcopy(H5T_STD_U32BE); }
+                |       H5T_STD_U32LE_TOKEN { $<hid>$ = H5Tcopy(H5T_STD_U32LE); }
+                |       H5T_STD_U64BE_TOKEN { $<hid>$ = H5Tcopy(H5T_STD_U64BE); }
+                |       H5T_STD_U64LE_TOKEN { $<hid>$ = H5Tcopy(H5T_STD_U64LE); }
+                |       H5T_NATIVE_CHAR_TOKEN   { $<hid>$ = H5Tcopy(H5T_NATIVE_CHAR); }
+                |       H5T_NATIVE_SCHAR_TOKEN  { $<hid>$ = H5Tcopy(H5T_NATIVE_SCHAR); }
+                |       H5T_NATIVE_UCHAR_TOKEN  { $<hid>$ = H5Tcopy(H5T_NATIVE_UCHAR); }
+                |       H5T_NATIVE_SHORT_TOKEN  { $<hid>$ = H5Tcopy(H5T_NATIVE_SHORT); }
+                |       H5T_NATIVE_USHORT_TOKEN { $<hid>$ = H5Tcopy(H5T_NATIVE_USHORT); }
+                |       H5T_NATIVE_INT_TOKEN    { $<hid>$ = H5Tcopy(H5T_NATIVE_INT); }
+                |       H5T_NATIVE_UINT_TOKEN   { $<hid>$ = H5Tcopy(H5T_NATIVE_UINT); }
+                |       H5T_NATIVE_LONG_TOKEN   { $<hid>$ = H5Tcopy(H5T_NATIVE_LONG); }
+                |       H5T_NATIVE_ULONG_TOKEN  { $<hid>$ = H5Tcopy(H5T_NATIVE_ULONG); }
+                |       H5T_NATIVE_LLONG_TOKEN  { $<hid>$ = H5Tcopy(H5T_NATIVE_LLONG); }
+                |       H5T_NATIVE_ULLONG_TOKEN { $<hid>$ = H5Tcopy(H5T_NATIVE_ULLONG); }
                 ;
 
-fp_type         :       H5T_IEEE_F32BE_TOKEN { $<ival>$ = H5Tcopy(H5T_IEEE_F32BE); }
-                |       H5T_IEEE_F32LE_TOKEN { $<ival>$ = H5Tcopy(H5T_IEEE_F32LE); }
-                |       H5T_IEEE_F64BE_TOKEN { $<ival>$ = H5Tcopy(H5T_IEEE_F64BE); }
-                |       H5T_IEEE_F64LE_TOKEN { $<ival>$ = H5Tcopy(H5T_IEEE_F64LE); }
-                |       H5T_NATIVE_FLOAT_TOKEN    { $<ival>$ = H5Tcopy(H5T_NATIVE_FLOAT); }
-                |       H5T_NATIVE_DOUBLE_TOKEN   { $<ival>$ = H5Tcopy(H5T_NATIVE_DOUBLE); }
-                |       H5T_NATIVE_LDOUBLE_TOKEN  { $<ival>$ = H5Tcopy(H5T_NATIVE_LDOUBLE); }
+fp_type         :       H5T_IEEE_F32BE_TOKEN { $<hid>$ = H5Tcopy(H5T_IEEE_F32BE); }
+                |       H5T_IEEE_F32LE_TOKEN { $<hid>$ = H5Tcopy(H5T_IEEE_F32LE); }
+                |       H5T_IEEE_F64BE_TOKEN { $<hid>$ = H5Tcopy(H5T_IEEE_F64BE); }
+                |       H5T_IEEE_F64LE_TOKEN { $<hid>$ = H5Tcopy(H5T_IEEE_F64LE); }
+                |       H5T_NATIVE_FLOAT_TOKEN    { $<hid>$ = H5Tcopy(H5T_NATIVE_FLOAT); }
+                |       H5T_NATIVE_DOUBLE_TOKEN   { $<hid>$ = H5Tcopy(H5T_NATIVE_DOUBLE); }
+                |       H5T_NATIVE_LDOUBLE_TOKEN  { $<hid>$ = H5Tcopy(H5T_NATIVE_LDOUBLE); }
                 ;
 
 compound_type   :       H5T_COMPOUND_TOKEN
                             { csindex++; cmpd_stack[csindex].id = H5Tcreate(H5T_COMPOUND, 1); /*temporarily set size to 1*/ } 
                         '{' memb_list '}'     
-                            { $<ival>$ = cmpd_stack[csindex].id; 
+                            { $<hid>$ = cmpd_stack[csindex].id; 
                               cmpd_stack[csindex].id = 0;
                               cmpd_stack[csindex].first_memb = 1; 
                               csindex--;
@@ -170,28 +171,28 @@ memb_def        :       ddl_type { cmpd_stack[csindex].is_field = 1; /*notify le
 
                             /*Adjust size and insert member, consider both member size and offset.*/
                             if(cmpd_stack[csindex].first_memb) { /*reclaim the size 1 temporarily set*/
-                                new_size = H5Tget_size($<ival>1) + $<ival>6;
+                                new_size = H5Tget_size($<hid>1) + $<ival>6;
                                 H5Tset_size(dtype_id, new_size);
                                 /*member name is saved in yylval.sval by lexer*/
-                                H5Tinsert(dtype_id, $<sval>4, $<ival>6, $<ival>1);
+                                H5Tinsert(dtype_id, $<sval>4, $<ival>6, $<hid>1);
 
                                 cmpd_stack[csindex].first_memb = 0;
                             } else {
                                 origin_size = H5Tget_size(dtype_id);
                                 
                                 if($<ival>6 == 0) {
-                                    new_size = origin_size + H5Tget_size($<ival>1);
+                                    new_size = origin_size + H5Tget_size($<hid>1);
                                     H5Tset_size(dtype_id, new_size);
-                                    H5Tinsert(dtype_id, $<sval>4, origin_size, $<ival>1);
+                                    H5Tinsert(dtype_id, $<sval>4, origin_size, $<hid>1);
                                 } else {
-                                    new_size = $<ival>6 + H5Tget_size($<ival>1);
+                                    new_size = $<ival>6 + H5Tget_size($<hid>1);
                                     H5Tset_size(dtype_id, new_size);
-                                    H5Tinsert(dtype_id, $<sval>4, $<ival>6, $<ival>1);
+                                    H5Tinsert(dtype_id, $<sval>4, $<ival>6, $<hid>1);
                                 }
                             }
                           
                             cmpd_stack[csindex].is_field = 0;
-                            H5Tclose($<ival>1);
+                            H5Tclose($<hid>1);
                              
                             new_size = H5Tget_size(dtype_id);
                         }
@@ -211,10 +212,10 @@ offset          :       NUMBER
 array_type      :       H5T_ARRAY_TOKEN { asindex++; /*pushd onto the stack*/ }
                         '{' dim_list ddl_type '}'
                         { 
-                          $<ival>$ = H5Tarray_create2($<ival>5, arr_stack[asindex].ndims, arr_stack[asindex].dims);
+                          $<hid>$ = H5Tarray_create2($<hid>5, arr_stack[asindex].ndims, arr_stack[asindex].dims);
                           arr_stack[asindex].ndims = 0;
                           asindex--;
-                          H5Tclose($<ival>5);
+                          H5Tclose($<hid>5);
                         }            
                 ;
 dim_list        :
@@ -232,7 +233,7 @@ dimsize         :       NUMBER
                 ;
 
 vlen_type       :       H5T_VLEN_TOKEN '{' ddl_type '}'
-                            { $<ival>$ = H5Tvlen_create($<ival>3); H5Tclose($<ival>3); }
+                            { $<hid>$ = H5Tvlen_create($<hid>3); H5Tclose($<hid>3); }
                 ;
 
 opaque_type     :       H5T_OPAQUE_TOKEN
@@ -240,15 +241,15 @@ opaque_type     :       H5T_OPAQUE_TOKEN
                             OPQ_SIZE_TOKEN { is_opq_size = 1; } opaque_size ';'
                             {   
                                 size_t size = (size_t)yylval.ival;
-                                $<ival>$ = H5Tcreate(H5T_OPAQUE, size);
+                                $<hid>$ = H5Tcreate(H5T_OPAQUE, size);
                                 is_opq_size = 0;    
                             }
                             OPQ_TAG_TOKEN { is_opq_tag = 1; } '"' opaque_tag '"' ';'
                             {  
-                                H5Tset_tag($<ival>7, yylval.sval);
+                                H5Tset_tag($<hid>7, yylval.sval);
                                 is_opq_tag = 0;
                             }                             
-                        '}' { $<ival>$ = $<ival>7; }
+                        '}' { $<hid>$ = $<hid>7; }
                 ;
 opaque_size     :       NUMBER
                 ;
@@ -282,14 +283,14 @@ string_type     :       H5T_STRING_TOKEN
                             }
                             CTYPE_TOKEN ctype ';'
                             {
-                                if($<ival>17 == H5T_C_S1_TOKEN)
-                                    $<ival>$ = H5Tcopy(H5T_C_S1);
-                                else if($<ival>17 == H5T_FORTRAN_S1_TOKEN)
-                                    $<ival>$ = H5Tcopy(H5T_FORTRAN_S1);
+                                if($<hid>17 == H5T_C_S1_TOKEN)
+                                    $<hid>$ = H5Tcopy(H5T_C_S1);
+                                else if($<hid>17 == H5T_FORTRAN_S1_TOKEN)
+                                    $<hid>$ = H5Tcopy(H5T_FORTRAN_S1);
                             }
                         '}' 
                             {   
-                                hid_t str_id = $<ival>19;
+                                hid_t str_id = $<hid>19;
 
                                 /*set string size*/
                                 if(is_variable) {
@@ -302,7 +303,7 @@ string_type     :       H5T_STRING_TOKEN
                                 H5Tset_strpad(str_id, str_pad);
                                 H5Tset_cset(str_id, str_cset);
 
-                                $<ival>$ = str_id; 
+                                $<hid>$ = str_id; 
                             }
                 ;
 strsize         :       H5T_VARIABLE_TOKEN     {$<ival>$ = H5T_VARIABLE_TOKEN;}
@@ -315,14 +316,14 @@ strpad          :       H5T_STR_NULLTERM_TOKEN {$<ival>$ = H5T_STR_NULLTERM_TOKE
 cset            :       H5T_CSET_ASCII_TOKEN {$<ival>$ = H5T_CSET_ASCII_TOKEN;}
                 |       H5T_CSET_UTF8_TOKEN {$<ival>$ = H5T_CSET_UTF8_TOKEN;}
                 ;
-ctype           :       H5T_C_S1_TOKEN         {$<ival>$ = H5T_C_S1_TOKEN;}
-                |       H5T_FORTRAN_S1_TOKEN   {$<ival>$ = H5T_FORTRAN_S1_TOKEN;}
+ctype           :       H5T_C_S1_TOKEN         {$<hid>$ = H5T_C_S1_TOKEN;}
+                |       H5T_FORTRAN_S1_TOKEN   {$<hid>$ = H5T_FORTRAN_S1_TOKEN;}
                 ;
 
 enum_type       :       H5T_ENUM_TOKEN '{' integer_type ';' 
-                            { is_enum = 1; enum_id = H5Tenum_create($<ival>3); H5Tclose($<ival>3); }
+                            { is_enum = 1; enum_id = H5Tenum_create($<hid>3); H5Tclose($<hid>3); }
                         enum_list '}'
-                            { is_enum = 0; /*reset*/ $<ival>$ = enum_id; }
+                            { is_enum = 0; /*reset*/ $<hid>$ = enum_id; }
                 ;
 enum_list       :
                 |       enum_list enum_def
diff --git a/hl/src/H5LTprivate.h b/hl/src/H5LTprivate.h
index 0ee6b5c..98ac06e 100644
--- a/hl/src/H5LTprivate.h
+++ b/hl/src/H5LTprivate.h
@@ -48,6 +48,6 @@ H5_HLDLL herr_t  H5LT_find_attribute( hid_t loc_id, const char *name );
 H5_HLDLL char* H5LT_dtype_to_text(hid_t dtype, char *dt_str, H5LT_lang_t lang,
                                     size_t *slen, hbool_t no_user_buf);
 
-H5_HLDLL int H5LTyyparse(void);
+H5_HLDLL hid_t H5LTyyparse(void);
 
 #endif
diff --git a/hl/src/H5PT.c b/hl/src/H5PT.c
index ff4347a..7a0bc20 100644
--- a/hl/src/H5PT.c
+++ b/hl/src/H5PT.c
@@ -13,9 +13,10 @@
  * access to either file, you may request a copy from help at hdfgroup.org.     *
  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
 
+#include <stdlib.h>
+
 #include "H5PTprivate.h"
 #include "H5TBprivate.h"
-#include <stdlib.h>
 
 /*  Packet Table private data */
 
@@ -33,6 +34,7 @@ static H5I_type_t H5PT_ptable_id_type = H5I_UNINIT;
 #define H5PT_HASH_TABLE_SIZE 64
 
 /* Packet Table private functions */
+static herr_t H5PT_free_id(void *id);
 static herr_t H5PT_close( htbl_t* table );
 static herr_t H5PT_create_index(htbl_t *table_id);
 static herr_t H5PT_set_index(htbl_t *table_id, hsize_t pt_index);
@@ -82,13 +84,18 @@ hid_t H5PTcreate_fl ( hid_t loc_id,
   hsize_t maxdims[1];
   hid_t ret_value;
 
+  /* check the arguments */
+  if (dset_name == NULL) {
+    goto out;
+  }
+
   /* Register the packet table ID type if this is the first table created */
   if(H5PT_ptable_id_type < 0)
-    if((H5PT_ptable_id_type = H5Iregister_type((size_t)H5PT_HASH_TABLE_SIZE, 0, (H5I_free_t)free)) < 0)
+    if((H5PT_ptable_id_type = H5Iregister_type((size_t)H5PT_HASH_TABLE_SIZE, 0, (H5I_free_t)H5PT_free_id)) < 0)
       goto out;
 
   /* Get memory for the table identifier */
-  table = (htbl_t *)malloc(sizeof(htbl_t));
+  table = (htbl_t *)HDmalloc(sizeof(htbl_t));
 
   /* Create a simple data space with unlimited size */
   dims[0] = 0;
@@ -142,7 +149,7 @@ hid_t H5PTcreate_fl ( hid_t loc_id,
     H5Pclose(plist_id);
     H5Dclose(dset_id);
     if(table)
-      free(table);
+      HDfree(table);
     H5E_END_TRY
     return H5I_INVALID_HID;
 }
@@ -176,6 +183,11 @@ hid_t H5PTcreate_vl ( hid_t loc_id,
   hid_t ret_value=H5I_BADID;
   hid_t vltype;
 
+  /* check the arguments */
+  if (dset_name == NULL) {
+    goto out;
+  }
+
   /* Create a variable length type that uses single bytes as its base type */
   vltype = H5Tvlen_create(H5T_NATIVE_UCHAR);
   if(vltype < 0)
@@ -230,12 +242,17 @@ hid_t H5PTopen( hid_t loc_id,
   hid_t ret_value;
   hsize_t dims[1];
 
+  /* check the arguments */
+  if (dset_name == NULL) {
+    goto out;
+  }
+
   /* Register the packet table ID type if this is the first table created */
   if( H5PT_ptable_id_type < 0)
-    if((H5PT_ptable_id_type = H5Iregister_type((size_t)H5PT_HASH_TABLE_SIZE, 0, (H5I_free_t)free)) < 0)
+    if((H5PT_ptable_id_type = H5Iregister_type((size_t)H5PT_HASH_TABLE_SIZE, 0, (H5I_free_t)H5PT_free_id)) < 0)
       goto out;
 
-  table = (htbl_t *)malloc(sizeof(htbl_t));
+  table = (htbl_t *)HDmalloc(sizeof(htbl_t));
 
   if ( table == NULL ) {
     goto out;
@@ -291,12 +308,26 @@ out:
   {
     H5Dclose(table->dset_id);
     H5Tclose(table->type_id);
-    free(table);
+    HDfree(table);
   }
   H5E_END_TRY
   return H5I_INVALID_HID;
 }
 
+/*-------------------------------------------------------------------------
+ * Function: H5PT_free_id
+ *
+ * Purpose: Free an id.  Callback for H5Iregister_type.
+ *
+ * Return: Success: 0, Failure: N/A
+ *-------------------------------------------------------------------------
+ */
+static herr_t
+H5PT_free_id(void *id)
+{
+    HDfree(id);
+    return 0;
+}
 
 /*-------------------------------------------------------------------------
  * Function: H5PT_close
@@ -331,7 +362,7 @@ H5PT_close( htbl_t* table)
   if(H5Tclose(table->type_id) < 0)
     goto out;
 
-  free(table);
+  HDfree(table);
 
   return 0;
 
@@ -342,7 +373,7 @@ out:
     H5Dclose(table->dset_id);
     H5Tclose(table->type_id);
     H5E_END_TRY
-    free(table);
+    HDfree(table);
   }
   return -1;
 }
@@ -371,7 +402,7 @@ herr_t H5PTclose( hid_t table_id )
   htbl_t * table;
 
   /* Remove the ID from the library */
-  if((table = H5Iremove_verify(table_id, H5PT_ptable_id_type)) ==NULL)
+  if((table = (htbl_t *)H5Iremove_verify(table_id, H5PT_ptable_id_type)) ==NULL)
     goto out;
 
   /* If the library found the table, remove it */
diff --git a/hl/src/H5TB.c b/hl/src/H5TB.c
index 0fa23bc..1ca41a8 100644
--- a/hl/src/H5TB.c
+++ b/hl/src/H5TB.c
@@ -15,7 +15,7 @@
 
 #include <stdlib.h>
 #include <string.h>
-#include "H5private.h"
+
 #include "H5LTprivate.h"
 #include "H5TBprivate.h"
 
@@ -27,14 +27,14 @@
 *-------------------------------------------------------------------------
 */
 
-static int H5TB_find_field(const char *field,
+static hbool_t H5TB_find_field(const char *field,
                            const char *field_list);
 
 static herr_t H5TB_attach_attributes(const char *table_title,
                                      hid_t loc_id,
                                      const char *dset_name,
                                      hsize_t nfields,
-                                     hid_t tid );
+                                     hid_t tid);
 
 static hid_t H5TB_create_type(hid_t loc_id,
                               const char *dset_name,
@@ -64,13 +64,9 @@ static hid_t H5TB_create_type(hid_t loc_id,
 *
 * Comments:
 *
-* Modifications:
-*
 *-------------------------------------------------------------------------
 */
-
-
-herr_t H5TBmake_table( const char *table_title,
+herr_t H5TBmake_table(const char *table_title,
                       hid_t loc_id,
                       const char *dset_name,
                       hsize_t nfields,
@@ -82,86 +78,91 @@ herr_t H5TBmake_table( const char *table_title,
                       hsize_t chunk_size,
                       void *fill_data,
                       int compress,
-                      const void *buf )
+                      const void *buf)
 {
-
-    hid_t   did;
-    hid_t   sid;
-    hid_t   mem_type_id;
-    hid_t   plist_id;
+    hid_t   did = H5I_BADID;
+    hid_t   sid = H5I_BADID;
+    hid_t   mem_type_id = H5I_BADID;
+    hid_t   plist_id = H5I_BADID;
+    hid_t   attr_id = H5I_BADID;
     hsize_t dims[1];
     hsize_t dims_chunk[1];
-    hsize_t maxdims[1] = { H5S_UNLIMITED };
+    hsize_t maxdims[1] = {H5S_UNLIMITED};
     char    attr_name[255];
-    char    *member_name;
-    hid_t   attr_id;
-    char    aux[255];
+    char    *member_name = NULL;
+    unsigned char *tmp_buf = NULL;
     hsize_t i;
-    unsigned char *tmp_buf;
+    herr_t  ret_val = -1;
 
+    /* check the arguments */
+    if (table_title == NULL) {
+      goto out;
+    }
+    if (dset_name == NULL) {
+      goto out;
+    }
+    if (field_names == NULL) {
+      goto out;
+    }
+    
     dims[0]       = nrecords;
     dims_chunk[0] = chunk_size;
 
     /* create the memory data type. */
-    if ((mem_type_id = H5Tcreate (H5T_COMPOUND, type_size )) < 0)
-        return -1;
+    if((mem_type_id = H5Tcreate(H5T_COMPOUND, type_size)) < 0)
+        goto out;
 
     /* insert fields. */
-    for ( i = 0; i < nfields; i++)
-    {
+    for(i = 0; i < nfields; i++)
         if(H5Tinsert(mem_type_id, field_names[i], field_offset[i], field_types[i] ) < 0)
-            return -1;
-    }
+            goto out;
 
     /* create a simple data space with unlimited size */
-    if ((sid = H5Screate_simple( 1, dims, maxdims )) < 0)
-        return -1;
+    if((sid = H5Screate_simple(1, dims, maxdims)) < 0)
+        goto out;
 
     /* modify dataset creation properties, i.e. enable chunking  */
-    plist_id = H5Pcreate(H5P_DATASET_CREATE);
-    if (H5Pset_chunk(plist_id, 1, dims_chunk) < 0)
-        return -1;
+    if((plist_id = H5Pcreate(H5P_DATASET_CREATE)) < 0)
+        goto out;
+    if(H5Pset_chunk(plist_id, 1, dims_chunk) < 0)
+        goto out;
 
     /* set the fill value using a struct as the data type. */
-    if (fill_data)
-    {
+    if(fill_data)
         if(H5Pset_fill_value(plist_id, mem_type_id, fill_data) < 0)
-            return -1;
-    }
+            goto out;
 
     /*
     dataset creation property list is modified to use
     GZIP compression with the compression effort set to 6.
     */
-    if (compress)
-    {
+    if(compress)
         if(H5Pset_deflate(plist_id, 6) < 0)
-            return -1;
-    }
+            goto out;
 
     /* create the dataset. */
-    if ((did = H5Dcreate2(loc_id, dset_name, mem_type_id, sid, H5P_DEFAULT, plist_id, H5P_DEFAULT)) < 0)
+    if((did = H5Dcreate2(loc_id, dset_name, mem_type_id, sid, H5P_DEFAULT, plist_id, H5P_DEFAULT)) < 0)
         goto out;
 
     /* only write if there is something to write */
-    if (buf)
-    {
-        /* Write data to the dataset. */
-        if (H5Dwrite( did, mem_type_id, H5S_ALL, H5S_ALL, H5P_DEFAULT, buf ) < 0)
+    if(buf)
+        if(H5Dwrite(did, mem_type_id, H5S_ALL, H5S_ALL, H5P_DEFAULT, buf) < 0)
             goto out;
-    }
 
     /* terminate access to the data space. */
-    if (H5Sclose(sid) < 0)
+    if(H5Sclose(sid) < 0)
         goto out;
+    sid = H5I_BADID;
 
     /* end access to the dataset */
-    if (H5Dclose(did) < 0)
+    if(H5Dclose(did) < 0)
         goto out;
+    did = H5I_BADID;
 
     /* end access to the property list */
-    if (H5Pclose(plist_id) < 0)
+    if(H5Pclose(plist_id) < 0)
         goto out;
+    plist_id = H5I_BADID;
 
     /*-------------------------------------------------------------------------
     * set the conforming table attributes
@@ -169,100 +170,97 @@ herr_t H5TBmake_table( const char *table_title,
     */
 
     /* attach the CLASS attribute */
-    if (H5LTset_attribute_string( loc_id, dset_name, "CLASS", TABLE_CLASS ) < 0)
+    if(H5LTset_attribute_string(loc_id, dset_name, "CLASS", TABLE_CLASS) < 0)
         goto out;
 
     /* attach the VERSION attribute */
-    if (H5LTset_attribute_string( loc_id, dset_name, "VERSION", TABLE_VERSION ) < 0)
+    if(H5LTset_attribute_string(loc_id, dset_name, "VERSION", TABLE_VERSION) < 0)
         goto out;
 
     /* attach the TITLE attribute */
-    if (H5LTset_attribute_string( loc_id, dset_name, "TITLE", table_title ) < 0)
+    if(H5LTset_attribute_string(loc_id, dset_name, "TITLE", table_title) < 0)
         goto out;
 
     /* attach the FIELD_ name attribute */
-    for ( i = 0; i < nfields; i++)
-    {
+    for(i = 0; i < nfields; i++) {
         /* get the member name */
-        member_name = H5Tget_member_name( mem_type_id,(unsigned) i );
+        if(NULL == (member_name = H5Tget_member_name(mem_type_id, (unsigned)i)))
+            goto out;
 
-        strcpy( attr_name, "FIELD_" );
-        sprintf( aux, "%d", (int)i );
-        strcat( attr_name, aux );
-        sprintf( aux, "%s", "_NAME" );
-        strcat( attr_name, aux );
+        HDsnprintf(attr_name, sizeof(attr_name), "FIELD_%d_NAME", (int)i);
 
         /* attach the attribute */
-        if (H5LTset_attribute_string( loc_id, dset_name, attr_name, member_name ) < 0)
+        if(H5LTset_attribute_string(loc_id, dset_name, attr_name, member_name) < 0)
             goto out;
 
-        H5free_memory( member_name );
-
-    }
+        H5free_memory(member_name);
+        member_name = NULL;
+    } /* end for */
 
     /* attach the FIELD_ fill value attribute */
-    if (fill_data )
-    {
-
-        tmp_buf = (unsigned char *) fill_data;
+    if(fill_data) {
+        tmp_buf = (unsigned char *)fill_data;
 
         /* open the dataset. */
-        if ((did = H5Dopen2(loc_id, dset_name, H5P_DEFAULT)) < 0)
-            return -1;
-
-        if (( sid = H5Screate(H5S_SCALAR)) < 0)
+        if((did = H5Dopen2(loc_id, dset_name, H5P_DEFAULT)) < 0)
             goto out;
 
-        for ( i = 0; i < nfields; i++)
-        {
-
-            /* get the member name */
-            member_name = H5Tget_member_name(mem_type_id, (unsigned)i);
+        if((sid = H5Screate(H5S_SCALAR)) < 0)
+            goto out;
 
-            strcpy(attr_name, "FIELD_");
-            sprintf(aux, "%d", (int)i);
-            strcat(attr_name, aux);
-            sprintf(aux, "%s", "_FILL");
-            strcat(attr_name, aux);
+        for(i = 0; i < nfields; i++) {
+            HDsnprintf(attr_name, sizeof(attr_name), "FIELD_%d_FILL", (int)i);
 
-            if ((attr_id = H5Acreate2(did, attr_name, field_types[i], sid, H5P_DEFAULT, H5P_DEFAULT)) < 0)
+            if((attr_id = H5Acreate2(did, attr_name, field_types[i], sid, H5P_DEFAULT, H5P_DEFAULT)) < 0)
                 goto out;
 
-            if (H5Awrite(attr_id, field_types[i], tmp_buf+field_offset[i]) < 0)
+            if(H5Awrite(attr_id, field_types[i], tmp_buf + field_offset[i]) < 0)
                 goto out;
 
-            if (H5Aclose(attr_id) < 0)
+            if(H5Aclose(attr_id) < 0)
                 goto out;
-
-            H5free_memory(member_name);
-        }
+            attr_id = H5I_BADID;
+        } /* end for */
 
         /* terminate access to the data space. */
-        if (H5Sclose(sid) < 0)
+        if(H5Sclose(sid) < 0)
             goto out;
+        sid = H5I_BADID;
 
         /* end access to the dataset */
-        if (H5Dclose(did) < 0)
+        if(H5Dclose(did) < 0)
             goto out;
-    }
+        did = H5I_BADID;
+    } /* end if */
 
     /* release the datatype. */
-    if (H5Tclose( mem_type_id ) < 0)
-        return -1;
+    if(H5Tclose(mem_type_id) < 0)
+        goto out;
+    mem_type_id = H5I_BADID;
 
-    return 0;
+    ret_val = 0;
 
-    /* error zone */
 out:
-    H5E_BEGIN_TRY {
-        H5Dclose(did);
-        H5Sclose(sid);
-        H5Pclose(plist_id);
-        H5Tclose(mem_type_id);
-    } H5E_END_TRY;
-    return -1;
+    if(member_name)
+        H5free_memory(member_name);
+    if(attr_id > 0)
+        if(H5Aclose(attr_id) < 0)
+            ret_val = -1;
+    if(plist_id > 0)
+        if(H5Pclose(plist_id) < 0)
+            ret_val = -1;
+    if(sid > 0)
+        if(H5Sclose(sid) < 0)
+            ret_val = -1;
+    if(did > 0)
+        if(H5Dclose(did) < 0)
+            ret_val = -1;
+    if(mem_type_id > 0)
+        if(H5Tclose(mem_type_id) < 0)
+            ret_val = -1;
 
-}
+    return ret_val;
+} /* end H5TBmake_table() */
 
 /*-------------------------------------------------------------------------
 *
@@ -286,70 +284,61 @@ out:
 *
 * Comments: Uses memory offsets
 *
-* Modifications: April 1, 2004
-*  the FIELD_SIZES parameter is used to define the memory type ID
-*  returned by H5TB_create_type
-*
 *-------------------------------------------------------------------------
 */
-
-herr_t H5TBappend_records( hid_t loc_id,
+herr_t H5TBappend_records(hid_t loc_id,
                           const char *dset_name,
                           hsize_t nrecords,
                           size_t type_size,
                           const size_t *field_offset,
                           const size_t *field_sizes,
-                          const void *buf )
+                          const void *buf)
 {
-    hid_t    did;
-    hid_t    tid=-1;
-    hid_t    mem_type_id=-1;
-    hid_t    sid=-1;
-    hid_t    m_sid=-1;
+    hid_t    did = H5I_BADID;
+    hid_t    tid = H5I_BADID;
+    hid_t    mem_type_id = H5I_BADID;
     hsize_t  nrecords_orig;
     hsize_t  nfields;
+    herr_t   ret_val = -1;
+
+    /* check the arguments */
+    if (dset_name == NULL) 
+        goto out;
 
     /* get the original number of records and fields  */
-    if (H5TBget_table_info ( loc_id, dset_name, &nfields, &nrecords_orig ) < 0)
-        return -1;
+    if(H5TBget_table_info(loc_id, dset_name, &nfields, &nrecords_orig) < 0)
+        goto out;
 
     /* open the dataset. */
-    if ((did = H5Dopen2(loc_id, dset_name, H5P_DEFAULT)) < 0)
+    if((did = H5Dopen2(loc_id, dset_name, H5P_DEFAULT)) < 0)
         goto out;
 
     /* get the datatypes */
-    if ((tid = H5Dget_type( did )) < 0)
+    if((tid = H5Dget_type(did)) < 0)
         goto out;
 
-    if ((mem_type_id=H5TB_create_type(loc_id,dset_name,type_size,field_offset,field_sizes,tid)) < 0)
+    if((mem_type_id = H5TB_create_type(loc_id, dset_name, type_size, field_offset, field_sizes, tid)) < 0)
         goto out;
 
     /* append the records */
-    if ((H5TB_common_append_records(did, mem_type_id, (size_t)nrecords, nrecords_orig, buf)) < 0)
+    if((H5TB_common_append_records(did, mem_type_id, (size_t)nrecords, nrecords_orig, buf)) < 0)
         goto out;
 
-    /* close */
-    if (H5Tclose( tid ) < 0)
-        return -1;
-    if (H5Tclose( mem_type_id ) < 0)
-        goto out;
-    if (H5Dclose( did ) < 0)
-        goto out;
-
-    return 0;
+    ret_val = 0;
 
-    /* error zone */
 out:
-    H5E_BEGIN_TRY
-    {
-        H5Dclose(did);
-        H5Tclose(mem_type_id);
-        H5Tclose(tid);
-        H5Sclose(m_sid);
-        H5Sclose(sid);
-    } H5E_END_TRY;
-    return -1;
-}
+    if(tid > 0)
+        if(H5Tclose(tid) < 0)
+            ret_val = -1;
+    if(mem_type_id > 0)
+        if(H5Tclose(mem_type_id) < 0)
+            ret_val = -1;
+    if(did > 0)
+        if(H5Dclose(did) < 0)
+            ret_val = -1;
+
+    return ret_val;
+} /* end H5TBappend_records() */
 
 /*-------------------------------------------------------------------------
 * Function: H5TBwrite_records
@@ -364,96 +353,89 @@ out:
 *
 * Comments: Uses memory offsets
 *
-* Modifications: April 1, 2004
-*  the FIELD_SIZES parameter is used to define the memory type ID
-*  returned by H5TB_create_type
-*
 *-------------------------------------------------------------------------
 */
-
-
-herr_t H5TBwrite_records( hid_t loc_id,
+herr_t H5TBwrite_records(hid_t loc_id,
                          const char *dset_name,
                          hsize_t start,
                          hsize_t nrecords,
                          size_t type_size,
                          const size_t *field_offset,
                          const size_t *field_sizes,
-                         const void *buf )
+                         const void *buf)
 {
-
-    hid_t    did;
-    hid_t    tid;
+    hid_t    did = H5I_BADID;
+    hid_t    tid = H5I_BADID;
+    hid_t    sid = H5I_BADID;
+    hid_t    m_sid = H5I_BADID;
+    hid_t    mem_type_id = H5I_BADID;
     hsize_t  count[1];
     hsize_t  offset[1];
-    hid_t    sid=-1;
-    hid_t    m_sid=-1;
     hsize_t  mem_size[1];
     hsize_t  dims[1];
-    hid_t    mem_type_id=-1;
+    herr_t   ret_val = -1;
+
+    /* check the arguments */
+    if (dset_name == NULL) 
+        goto out;
 
     /* open the dataset. */
-    if ((did = H5Dopen2(loc_id, dset_name, H5P_DEFAULT)) < 0)
-        return -1;
+    if((did = H5Dopen2(loc_id, dset_name, H5P_DEFAULT)) < 0)
+        goto out;
 
     /* get the datatype */
-    if ((tid = H5Dget_type( did )) < 0)
+    if((tid = H5Dget_type(did)) < 0)
         goto out;
 
-    if ((mem_type_id=H5TB_create_type(loc_id,dset_name,type_size,field_offset,field_sizes,tid)) < 0)
+    if((mem_type_id = H5TB_create_type(loc_id, dset_name, type_size, field_offset, field_sizes, tid)) < 0)
         goto out;
 
     /* get the dataspace handle */
-    if ((sid = H5Dget_space( did )) < 0)
+    if((sid = H5Dget_space(did)) < 0)
         goto out;
 
     /* get records */
-    if (H5Sget_simple_extent_dims( sid, dims, NULL) < 0)
+    if(H5Sget_simple_extent_dims(sid, dims, NULL) < 0)
         goto out;
 
-    if (start + nrecords > dims[0] )
+    if(start + nrecords > dims[0])
         goto out;
 
     /* define a hyperslab in the dataset of the size of the records */
     offset[0] = start;
     count[0]  = nrecords;
-    if (H5Sselect_hyperslab( sid, H5S_SELECT_SET, offset, NULL, count, NULL) < 0)
+    if(H5Sselect_hyperslab(sid, H5S_SELECT_SET, offset, NULL, count, NULL) < 0)
         goto out;
 
     /* create a memory dataspace handle */
     mem_size[0] = count[0];
-    if ((m_sid = H5Screate_simple( 1, mem_size, NULL )) < 0)
-        goto out;
-
-    if (H5Dwrite( did, mem_type_id, m_sid, sid, H5P_DEFAULT, buf ) < 0)
+    if((m_sid = H5Screate_simple(1, mem_size, NULL)) < 0)
         goto out;
 
-    /* close */
-    if (H5Sclose( m_sid ) < 0)
-        goto out;
-    if (H5Sclose( sid ) < 0)
+    if(H5Dwrite(did, mem_type_id, m_sid, sid, H5P_DEFAULT, buf) < 0)
         goto out;
-    if (H5Tclose( tid ) < 0)
-        goto out;
-    if (H5Tclose( mem_type_id ) < 0)
-        return -1;
-    if (H5Dclose( did ) < 0)
-        return -1;
 
-    return 0;
+    ret_val = 0;
 
-    /* error zone */
 out:
-    H5E_BEGIN_TRY
-    {
-        H5Dclose(did);
-        H5Tclose(mem_type_id);
-        H5Tclose(tid);
-        H5Sclose(m_sid);
-        H5Sclose(sid);
-    } H5E_END_TRY;
-    return -1;
-}
+    if(m_sid > 0)
+        if(H5Sclose(m_sid) < 0)
+            ret_val = -1;
+    if(sid > 0)
+        if(H5Sclose(sid) < 0)
+            ret_val = -1;
+    if(tid > 0)
+        if(H5Tclose(tid) < 0)
+            ret_val = -1;
+    if(mem_type_id > 0)
+        if(H5Tclose(mem_type_id) < 0)
+            ret_val = -1;
+    if(did > 0)
+        if(H5Dclose(did) < 0)
+            ret_val = -1;
+
+    return ret_val;
+} /* end H5TBwrite_records() */
 
 /*-------------------------------------------------------------------------
 * Function: H5TBwrite_fields_name
@@ -468,12 +450,9 @@ out:
 *
 * Comments:
 *
-* Modifications: April 1, 2004
-*  the FIELD_SIZES parameter is used to define a memory type ID
-*
 *-------------------------------------------------------------------------
 */
-herr_t H5TBwrite_fields_name( hid_t loc_id,
+herr_t H5TBwrite_fields_name(hid_t loc_id,
                              const char *dset_name,
                              const char *field_names,
                              hsize_t start,
@@ -481,147 +460,145 @@ herr_t H5TBwrite_fields_name( hid_t loc_id,
                              size_t type_size,
                              const size_t *field_offset,
                              const size_t *field_sizes,
-                             const void *buf )
+                             const void *buf)
 {
-    hid_t    did;
-    hid_t    tid=-1;
-    hid_t    write_type_id=-1;
-    hid_t    member_type_id;
-    hid_t    nmtype_id;
-    hsize_t  count[1];
-    hsize_t  offset[1];
-    hid_t    m_sid=-1;
-    hid_t    file_space_id=-1;
-    char     *member_name;
+    hid_t    did = H5I_BADID;
+    hid_t    tid = H5I_BADID;
+    hid_t    write_type_id = H5I_BADID;
+    hid_t    member_type_id = H5I_BADID;
+    hid_t    nmtype_id = H5I_BADID;
+    hid_t    m_sid = H5I_BADID;
+    hid_t    file_space_id = H5I_BADID;
+    hid_t    preserve_id = H5I_BADID;
     hssize_t nfields;
     hssize_t i, j;
-    hid_t    preserve_id;
+    hsize_t  count[1];
+    hsize_t  offset[1];
+    char     *member_name = NULL;
     size_t   size_native;
+    herr_t   ret_val = -1;
+
+    /* check the arguments */
+    if (dset_name == NULL) 
+        goto out;
+    if (field_names == NULL) 
+        goto out;
 
     /* create xfer properties to preserve initialized data */
-    if ((preserve_id = H5Pcreate (H5P_DATASET_XFER)) < 0)
-        return -1;
-    if (H5Pset_preserve (preserve_id, 1) < 0)
-        return -1;
+    if((preserve_id = H5Pcreate(H5P_DATASET_XFER)) < 0)
+        goto out;
+    if(H5Pset_preserve(preserve_id, 1) < 0)
+        goto out;
 
     /* open the dataset. */
-    if ((did = H5Dopen2(loc_id, dset_name, H5P_DEFAULT)) < 0)
+    if((did = H5Dopen2(loc_id, dset_name, H5P_DEFAULT)) < 0)
         goto out;
 
     /* get the datatype */
-    if ((tid = H5Dget_type( did )) < 0)
+    if((tid = H5Dget_type(did)) < 0)
         goto out;
 
     /* get the number of fields */
-    if (( nfields = H5Tget_nmembers( tid )) < 0)
+    if((nfields = H5Tget_nmembers(tid)) < 0)
         goto out;
 
     /* create a write id */
-    if (( write_type_id = H5Tcreate( H5T_COMPOUND, type_size )) < 0)
+    if((write_type_id = H5Tcreate(H5T_COMPOUND, type_size)) < 0)
         goto out;
 
     j = 0;
 
-    /* iterate tru the members */
-    for ( i = 0; i < nfields; i++)
-    {
+    /* iterate though the members */
+    for(i = 0; i < nfields; i++) {
         /* get the member name */
-        member_name = H5Tget_member_name( tid, (unsigned)i );
-
-        if(H5TB_find_field( member_name, field_names ) > 0 )
-        {
+        if(NULL == (member_name = H5Tget_member_name(tid, (unsigned)i)))
+            goto out;
 
+        if(H5TB_find_field(member_name, field_names)) {
             /* get the member type */
-            if(( member_type_id = H5Tget_member_type( tid,(unsigned) i )) < 0)
+            if((member_type_id = H5Tget_member_type(tid, (unsigned)i)) < 0)
                 goto out;
 
             /* convert to native type */
-            if ((nmtype_id=H5Tget_native_type(member_type_id,H5T_DIR_DEFAULT)) < 0)
+            if((nmtype_id = H5Tget_native_type(member_type_id, H5T_DIR_DEFAULT)) < 0)
                 goto out;
 
-            size_native=H5Tget_size(nmtype_id);
+            if(0 == (size_native = H5Tget_size(nmtype_id)))
+                goto out;
 
             /* adjust, if necessary */
-            if (field_sizes[j]!=size_native)
-            {
-                if (H5Tset_size(nmtype_id, field_sizes[j]) < 0)
+            if(field_sizes[j] != size_native)
+                if(H5Tset_size(nmtype_id, field_sizes[j]) < 0)
                     goto out;
-            }
 
             /* the field in the file is found by its name */
-            if (field_offset )
-            {
-                if (H5Tinsert( write_type_id, member_name, field_offset[j], nmtype_id ) < 0)
+            if(field_offset) {
+                if(H5Tinsert(write_type_id, member_name, field_offset[j], nmtype_id) < 0)
                     goto out;
-            }
+            } /* end if */
             /* only one field */
-            else
-            {
-                if (H5Tinsert( write_type_id, member_name, (size_t)0, nmtype_id ) < 0)
+            else {
+                if(H5Tinsert(write_type_id, member_name, (size_t)0, nmtype_id) < 0)
                     goto out;
-            }
+            } /* end else */
 
             j++;
 
             /* close */
-            if(H5Tclose( member_type_id ) < 0)
+            if(H5Tclose(member_type_id) < 0)
                 goto out;
-            if(H5Tclose( nmtype_id ) < 0)
+            member_type_id = H5I_BADID;
+            if(H5Tclose(nmtype_id) < 0)
                 goto out;
-        }
-
-        H5free_memory( member_name );
+            nmtype_id = H5I_BADID;
+        } /* end if */
 
-    }
+        H5free_memory(member_name);
+        member_name = NULL;
+    } /* end for */
 
     /* get the dataspace handle */
-    if ((file_space_id = H5Dget_space( did )) < 0)
+    if((file_space_id = H5Dget_space(did)) < 0)
         goto out;
-    if ((m_sid = H5Screate_simple(1, &nrecords, NULL)) < 0)
+    if((m_sid = H5Screate_simple(1, &nrecords, NULL)) < 0)
         goto out;
 
     /* define a hyperslab in the dataset */
     offset[0] = start;
     count[0]  = nrecords;
-    if (H5Sselect_hyperslab( file_space_id, H5S_SELECT_SET, offset, NULL, count, NULL) < 0)
+    if(H5Sselect_hyperslab(file_space_id, H5S_SELECT_SET, offset, NULL, count, NULL) < 0)
         goto out;
 
     /* write */
-    if (H5Dwrite( did, write_type_id, m_sid, file_space_id, preserve_id, buf ) < 0)
-        goto out;
-
-    /* close */
-    if(H5Tclose( write_type_id ) )
+    if(H5Dwrite(did, write_type_id, m_sid, file_space_id, preserve_id, buf) < 0)
         goto out;
-    if(H5Tclose( tid ) < 0)
-        return -1;
-    if(H5Dclose( did ) < 0)
-        return -1;
-    if(H5Pclose( preserve_id ) < 0)
-        return -1;
-    if(H5Sclose( file_space_id ) < 0)
-        return -1;
-    if(H5Sclose( m_sid ) < 0)
-        return -1;
 
-    return 0;
+    ret_val = 0;
 
-    /* error zone */
 out:
-    H5E_BEGIN_TRY
-    {
-        H5Pclose(preserve_id);
-        H5Dclose(did);
-        H5Sclose(file_space_id);
-        H5Sclose(m_sid);
-        H5Tclose(write_type_id);
-        H5Tclose(tid);
-    } H5E_END_TRY;
-    return -1;
-
-}
-
+    if(member_name)
+        H5free_memory(member_name);
+    if(preserve_id > 0)
+        if(H5Pclose(preserve_id) < 0)
+            ret_val = -1;
+    if(write_type_id > 0)
+        if(H5Tclose(write_type_id) < 0)
+            ret_val = -1;
+    if(tid > 0)
+        if(H5Tclose(tid) < 0)
+            ret_val = -1;
+    if(file_space_id > 0)
+        if(H5Sclose(file_space_id) < 0)
+            ret_val = -1;
+    if(m_sid > 0)
+        if(H5Sclose(m_sid) < 0)
+            ret_val = -1;
+    if(did > 0)
+        if(H5Dclose(did) < 0)
+            ret_val = -1;
 
+    return ret_val;
+} /* end H5TBwrite_fields_name() */
 
 /*-------------------------------------------------------------------------
 * Function: H5TBwrite_fields_index
@@ -636,14 +613,9 @@ out:
 *
 * Comments: Uses memory offsets
 *
-* Modifications: April 1, 2004
-*  the FIELD_SIZES parameter is used to define a memory type ID
-*
 *-------------------------------------------------------------------------
 */
-
-
-herr_t H5TBwrite_fields_index( hid_t loc_id,
+herr_t H5TBwrite_fields_index(hid_t loc_id,
                               const char *dset_name,
                               hsize_t nfields,
                               const int *field_index,
@@ -652,43 +624,47 @@ herr_t H5TBwrite_fields_index( hid_t loc_id,
                               size_t type_size,
                               const size_t *field_offset,
                               const size_t *field_sizes,
-                              const void *buf )
+                              const void *buf)
 {
-    hid_t    did;
-    hid_t    tid=-1;
-    hid_t    write_type_id=-1;
-    hid_t    member_type_id;
-    hid_t    nmtype_id;
+    hid_t    did = H5I_BADID;
+    hid_t    tid = H5I_BADID;
+    hid_t    write_type_id = H5I_BADID;
+    hid_t    member_type_id = H5I_BADID;
+    hid_t    nmtype_id = H5I_BADID;
+    hid_t    m_sid = H5I_BADID;
+    hid_t    file_space_id = H5I_BADID;
+    hid_t    preserve_id = H5I_BADID;
     hsize_t  count[1];
     hsize_t  offset[1];
-    hid_t    m_sid=-1;
-    hid_t    file_space_id=-1;
-    char     *member_name;
     hsize_t  i;
-    hid_t    preserve_id;
     size_t   size_native;
+    char    *member_name = NULL;
+    herr_t   ret_val = -1;
+
+    /* check the arguments */
+    if (dset_name == NULL) 
+        goto out;
 
     /* create xfer properties to preserve initialized data */
-    if ((preserve_id = H5Pcreate (H5P_DATASET_XFER)) < 0)
-        return -1;
-    if (H5Pset_preserve (preserve_id, 1) < 0)
-        return -1;
+    if((preserve_id = H5Pcreate(H5P_DATASET_XFER)) < 0)
+        goto out;
+    if(H5Pset_preserve(preserve_id, 1) < 0)
+        goto out;
 
     /* open the dataset. */
-    if ((did = H5Dopen2(loc_id, dset_name, H5P_DEFAULT)) < 0)
+    if((did = H5Dopen2(loc_id, dset_name, H5P_DEFAULT)) < 0)
         goto out;
 
     /* get the datatype */
-    if ((tid = H5Dget_type( did )) < 0)
+    if((tid = H5Dget_type(did)) < 0)
         goto out;
 
     /* create a write id */
-    if (( write_type_id = H5Tcreate( H5T_COMPOUND, type_size )) < 0)
+    if((write_type_id = H5Tcreate(H5T_COMPOUND, type_size)) < 0)
         goto out;
 
     /* iterate tru the members */
-    for ( i = 0; i < nfields; i++)
-    {
+    for(i = 0; i < nfields; i++) {
         unsigned  j;
 
         /* Range check value */
@@ -698,91 +674,95 @@ herr_t H5TBwrite_fields_index( hid_t loc_id,
         j = (unsigned)field_index[i];
 
         /* get the member name */
-        member_name = H5Tget_member_name( tid, j );
+        if(NULL == (member_name = H5Tget_member_name(tid, j)))
+            goto out;
 
         /* get the member type */
-        if (( member_type_id = H5Tget_member_type( tid, j )) < 0)
+        if((member_type_id = H5Tget_member_type(tid, j)) < 0)
             goto out;
 
         /* convert to native type */
-        if ((nmtype_id = H5Tget_native_type(member_type_id,H5T_DIR_DEFAULT)) < 0)
+        if((nmtype_id = H5Tget_native_type(member_type_id,H5T_DIR_DEFAULT)) < 0)
             goto out;
 
-        size_native = H5Tget_size(nmtype_id);
+        if(0 == (size_native = H5Tget_size(nmtype_id)))
+            goto out;
 
-        if (field_sizes[i]!=size_native)
-        {
-            if (H5Tset_size(nmtype_id, field_sizes[i]) < 0)
+        if(field_sizes[i] != size_native)
+            if(H5Tset_size(nmtype_id, field_sizes[i]) < 0)
                 goto out;
-        }
 
         /* the field in the file is found by its name */
-        if ( field_offset )
-        {
-            if (H5Tinsert( write_type_id, member_name, field_offset[ i ], nmtype_id ) < 0)
+        if(field_offset) {
+            if(H5Tinsert(write_type_id, member_name, field_offset[i], nmtype_id) < 0)
                 goto out;
-        }
+        } /* end if */
         /* only one field */
-        else
-        {
-            if (H5Tinsert( write_type_id, member_name, (size_t)0, nmtype_id ) < 0)
+        else {
+            if(H5Tinsert(write_type_id, member_name, (size_t)0, nmtype_id) < 0)
                 goto out;
-        }
+        } /* end else */
+
         /* close */
-        if(H5Tclose( member_type_id ) < 0)
+        if(H5Tclose(member_type_id) < 0)
             goto out;
-        if(H5Tclose( nmtype_id ) < 0)
+        member_type_id = H5I_BADID;
+        if(H5Tclose(nmtype_id) < 0)
             goto out;
+        nmtype_id = H5I_BADID;
 
-        H5free_memory( member_name );
-
-    }
+        H5free_memory(member_name);
+        member_name = NULL;
+    } /* end for */
 
     /* get the dataspace handles */
-    if ((file_space_id = H5Dget_space( did )) < 0)
+    if((file_space_id = H5Dget_space(did)) < 0)
         goto out;
-    if ((m_sid = H5Screate_simple(1, &nrecords, NULL)) < 0)
+    if((m_sid = H5Screate_simple(1, &nrecords, NULL)) < 0)
         goto out;
 
     /* define a hyperslab in the dataset */
     offset[0] = start;
     count[0]  = nrecords;
-    if (H5Sselect_hyperslab( file_space_id, H5S_SELECT_SET, offset, NULL, count, NULL) < 0)
+    if(H5Sselect_hyperslab(file_space_id, H5S_SELECT_SET, offset, NULL, count, NULL) < 0)
         goto out;
 
     /* write */
-    if (H5Dwrite( did, write_type_id, m_sid, file_space_id, preserve_id, buf ) < 0)
-        goto out;
-
-    /* close */
-    if (H5Tclose( write_type_id ) )
+    if(H5Dwrite(did, write_type_id, m_sid, file_space_id, preserve_id, buf) < 0)
         goto out;
-    if (H5Tclose( tid ) < 0)
-        return -1;
-    if (H5Dclose( did ) < 0)
-        return -1;
-    if (H5Pclose( preserve_id ) < 0)
-        return -1;
-    if (H5Sclose( file_space_id ) < 0)
-        return -1;
-    if (H5Sclose( m_sid ) < 0)
-        return -1;
 
-    return 0;
+    ret_val = 0;
 
-    /* error zone */
 out:
-    H5E_BEGIN_TRY
-    {
-        H5Pclose(preserve_id);
-        H5Dclose(did);
-        H5Sclose(file_space_id);
-        H5Sclose(m_sid);
-        H5Tclose(write_type_id);
-        H5Tclose(tid);
-    } H5E_END_TRY;
-    return -1;
-}
+    if(member_name)
+        H5free_memory(member_name);
+    if(preserve_id > 0)
+        if(H5Pclose(preserve_id) < 0)
+            ret_val = -1;
+    if(write_type_id > 0)
+        if(H5Tclose(write_type_id) < 0)
+            ret_val = -1;
+    if(member_type_id > 0)
+        if(H5Tclose(member_type_id) < 0)
+            ret_val = -1;
+    if(nmtype_id > 0)
+        if(H5Tclose(nmtype_id) < 0)
+            ret_val = -1;
+    if(tid > 0)
+        if(H5Tclose(tid) < 0)
+            ret_val = -1;
+    if(file_space_id > 0)
+        if(H5Sclose(file_space_id) < 0)
+            ret_val = -1;
+    if(m_sid > 0)
+        if(H5Sclose(m_sid) < 0)
+            ret_val = -1;
+    if(did > 0)
+        if(H5Dclose(did) < 0)
+            ret_val = -1;
+
+    return ret_val;
+} /* end H5TBwrite_fields_index() */
 
 
 /*-------------------------------------------------------------------------
@@ -806,71 +786,67 @@ out:
 *
 * Comments:
 *
-* Modifications: April 1, 2004
-*  used a memory type ID returned by H5TB_create_type
-*
 *-------------------------------------------------------------------------
 */
-
-herr_t H5TBread_table( hid_t loc_id,
+herr_t H5TBread_table(hid_t loc_id,
                       const char *dset_name,
                       size_t type_size,
                       const size_t *field_offset,
                       const size_t *field_sizes,
-                      void *dst_buf )
+                      void *dst_buf)
 {
-    hid_t    did;
-    hid_t    ftype_id=-1;
-    hid_t    mem_type_id=-1;
-    hid_t    sid;
+    hid_t    did = H5I_BADID;
+    hid_t    ftype_id = H5I_BADID;
+    hid_t    mem_type_id = H5I_BADID;
+    hid_t    sid = H5I_BADID;
     hsize_t  dims[1];
+    herr_t   ret_val = -1;
+
+    /* check the arguments */
+    if (dset_name == NULL) 
+        goto out;
 
     /* open the dataset. */
-    if ((did = H5Dopen2(loc_id, dset_name, H5P_DEFAULT)) < 0)
-        return -1;
+    if((did = H5Dopen2(loc_id, dset_name, H5P_DEFAULT)) < 0)
+        goto out;
 
     /* get the dataspace handle */
-    if ((sid = H5Dget_space( did )) < 0)
+    if((sid = H5Dget_space(did)) < 0)
         goto out;
 
     /* get dimensions */
-    if (H5Sget_simple_extent_dims( sid, dims, NULL) < 0)
+    if(H5Sget_simple_extent_dims(sid, dims, NULL) < 0)
         goto out;
 
     /* get the datatypes */
-    if ((ftype_id=H5Dget_type (did)) < 0)
+    if((ftype_id = H5Dget_type (did)) < 0)
         goto out;
 
-    if ((mem_type_id=H5TB_create_type(loc_id,dset_name,type_size,field_offset,field_sizes,ftype_id)) < 0)
+    if((mem_type_id = H5TB_create_type(loc_id, dset_name, type_size, field_offset, field_sizes, ftype_id)) < 0)
         goto out;
 
     /* read */
-    if (H5Dread( did, mem_type_id, H5S_ALL, H5S_ALL, H5P_DEFAULT, dst_buf) < 0)
-        goto out;
-
-    /* close */
-    if (H5Tclose( ftype_id ) < 0)
+    if(H5Dread(did, mem_type_id, H5S_ALL, H5S_ALL, H5P_DEFAULT, dst_buf) < 0)
         goto out;
-    if (H5Tclose( mem_type_id ) < 0)
-        goto out;
-    if (H5Sclose( sid ) < 0)
-        goto out;
-    if (H5Dclose( did ) < 0)
-        return -1;
 
-    return 0;
+    ret_val = 0;
 
-    /* error zone */
 out:
-    H5E_BEGIN_TRY
-    {
-        H5Dclose(did);
-        H5Tclose(mem_type_id);
-        H5Tclose(ftype_id);
-        H5Sclose(sid);
-    } H5E_END_TRY;
-    return -1;
-}
+    if(mem_type_id > 0)
+        if(H5Tclose(mem_type_id) < 0)
+            ret_val = -1;
+    if(ftype_id > 0)
+        if(H5Tclose(ftype_id) < 0)
+            ret_val = -1;
+    if(sid > 0)
+        if(H5Sclose(sid) < 0)
+            ret_val = -1;
+    if(did > 0)
+        if(H5Dclose(did) < 0)
+            ret_val = -1;
+
+    return ret_val;
+} /* end H5TBread_table() */
 
 /*-------------------------------------------------------------------------
 * Function: H5TBread_records
@@ -885,74 +861,62 @@ out:
 *
 * Comments:
 *
-* Modifications: April 1, 2004
-*  the FIELD_SIZES parameter is used to define the memory type ID
-*  returned by H5TB_create_type
-*
 *-------------------------------------------------------------------------
 */
-
-
-herr_t H5TBread_records( hid_t loc_id,
+herr_t H5TBread_records(hid_t loc_id,
                         const char *dset_name,
                         hsize_t start,
                         hsize_t nrecords,
                         size_t type_size,
                         const size_t *field_offset,
                         const size_t *field_sizes,
-                        void *buf )
+                        void *buf)
 {
-
-    hid_t    did;
-    hid_t    ftype_id;
-    hid_t    mem_type_id=-1;
-    hid_t    sid=-1;
-    hid_t    m_sid=-1;
+    hid_t    did = H5I_BADID;
+    hid_t    ftype_id = H5I_BADID;
+    hid_t    mem_type_id = H5I_BADID;
     hsize_t  nrecords_orig;
     hsize_t  nfields;
+    herr_t   ret_val = -1;
+
+    /* check the arguments */
+    if (dset_name == NULL) 
+        goto out;
 
     /* get the number of records and fields  */
-    if (H5TBget_table_info ( loc_id, dset_name, &nfields, &nrecords_orig ) < 0)
-        return -1;
+    if(H5TBget_table_info(loc_id, dset_name, &nfields, &nrecords_orig) < 0)
+        goto out;
 
     /* open the dataset */
-    if ((did = H5Dopen2(loc_id, dset_name, H5P_DEFAULT)) < 0)
-        return -1;
+    if((did = H5Dopen2(loc_id, dset_name, H5P_DEFAULT)) < 0)
+        goto out;
 
     /* get the datatypes */
-    if ((ftype_id = H5Dget_type( did )) < 0)
+    if((ftype_id = H5Dget_type(did)) < 0)
         goto out;
 
-    if ((mem_type_id=H5TB_create_type(loc_id,dset_name,type_size,field_offset,field_sizes,ftype_id)) < 0)
+    if((mem_type_id = H5TB_create_type(loc_id, dset_name, type_size, field_offset, field_sizes, ftype_id)) < 0)
         goto out;
 
     /* read the records */
-    if ((H5TB_common_read_records(did, mem_type_id, start, (size_t)nrecords, nrecords_orig, buf)) < 0)
+    if((H5TB_common_read_records(did, mem_type_id, start, (size_t)nrecords, nrecords_orig, buf)) < 0)
         goto out;
 
-    /* close */
-    if (H5Tclose( ftype_id ) < 0)
-        return -1;
-    if (H5Tclose( mem_type_id ) < 0)
-        return -1;
-    if (H5Dclose( did ) < 0)
-        return -1;
-
-    return 0;
+    ret_val = 0;
 
-    /* error zone */
 out:
-    H5E_BEGIN_TRY {
-        H5Dclose(did);
-        H5Tclose(mem_type_id);
-        H5Tclose(ftype_id);
-        H5Sclose(m_sid);
-        H5Sclose(sid);
-    } H5E_END_TRY;
-    return -1;
-
-}
+    if(mem_type_id > 0)
+        if(H5Tclose(mem_type_id) < 0)
+            ret_val = -1;
+    if(ftype_id > 0)
+        if(H5Tclose(ftype_id) < 0)
+            ret_val = -1;
+    if(did > 0)
+        if(H5Dclose(did) < 0)
+            ret_val = -1;
 
+    return ret_val;
+} /* end H5TBread_records() */
 
 /*-------------------------------------------------------------------------
 * Function: H5TBread_fields_name
@@ -967,15 +931,9 @@ out:
 *
 * Comments:
 *
-* Modifications: April 1, 2004
-*  the FIELD_SIZES parameter is used to define the memory type ID
-*  returned by H5TB_create_type
-*
 *-------------------------------------------------------------------------
 */
-
-
-herr_t H5TBread_fields_name( hid_t loc_id,
+herr_t H5TBread_fields_name(hid_t loc_id,
                             const char *dset_name,
                             const char *field_names,
                             hsize_t start,
@@ -983,132 +941,145 @@ herr_t H5TBread_fields_name( hid_t loc_id,
                             size_t type_size,
                             const size_t *field_offset,
                             const size_t *field_sizes,
-                            void *buf )
+                            void *buf)
 {
-
-    hid_t    did;
-    hid_t    ftype_id=-1;
-    hid_t    mem_type_id=-1;
-    hid_t    mtype_id;
-    hid_t    nmtype_id;
-    char     *member_name;
+    hid_t    did = H5I_BADID;
+    hid_t    ftype_id = H5I_BADID;
+    hid_t    mem_type_id = H5I_BADID;
+    hid_t    mtype_id = H5I_BADID;
+    hid_t    nmtype_id = H5I_BADID;
+    hid_t    sid = H5I_BADID;
+    hid_t    m_sid = H5I_BADID;
     hssize_t nfields;
     hsize_t  count[1];
     hsize_t  offset[1];
-    hid_t    sid=-1;
-    hid_t    m_sid=-1;
     hsize_t  mem_size[1];
     size_t   size_native;
+    char    *member_name = NULL;
     hssize_t i, j;
+    herr_t   ret_val = -1;
+
+
+    /* check the arguments */
+    if (dset_name == NULL) 
+        goto out;
+    if (field_names == NULL) 
+        goto out;
 
     /* open the dataset */
-    if ((did = H5Dopen2(loc_id, dset_name, H5P_DEFAULT)) < 0)
+    if((did = H5Dopen2(loc_id, dset_name, H5P_DEFAULT)) < 0)
         goto out;
 
     /* get the datatype */
-    if ((ftype_id = H5Dget_type( did )) < 0)
+    if((ftype_id = H5Dget_type(did)) < 0)
         goto out;
 
     /* get the number of fields */
-    if (( nfields = H5Tget_nmembers( ftype_id )) < 0)
+    if((nfields = H5Tget_nmembers(ftype_id)) < 0)
         goto out;
 
     /* create a memory read id */
-    if (( mem_type_id = H5Tcreate( H5T_COMPOUND, type_size )) < 0)
+    if((mem_type_id = H5Tcreate(H5T_COMPOUND, type_size)) < 0)
         goto out;
 
-    /* iterate tru the members */
-    for ( i=0,j=0; i<nfields; i++)
-    {
+    /* iterate through the members */
+    for(i = 0, j = 0; i < nfields; i++) {
         /* get the member name */
-        member_name = H5Tget_member_name( ftype_id, (unsigned)i );
+        if(NULL == (member_name = H5Tget_member_name(ftype_id, (unsigned)i)))
+            goto out;
 
-        if(H5TB_find_field( member_name, field_names ) > 0 )
-        {
+        if(H5TB_find_field(member_name, field_names)) {
             /* get the member type */
-            if (( mtype_id = H5Tget_member_type( ftype_id, (unsigned) i )) < 0)
+            if((mtype_id = H5Tget_member_type(ftype_id, (unsigned)i)) < 0)
                 goto out;
 
             /* convert to native type */
-            if ((nmtype_id=H5Tget_native_type(mtype_id,H5T_DIR_DEFAULT)) < 0)
+            if((nmtype_id = H5Tget_native_type(mtype_id, H5T_DIR_DEFAULT)) < 0)
                 goto out;
 
-            size_native=H5Tget_size(nmtype_id);
+            if(0 == (size_native = H5Tget_size(nmtype_id)))
+                goto out;
 
-            if (field_sizes[j]!=size_native)
-            {
-                if (H5Tset_size(nmtype_id, field_sizes[j]) < 0)
+            if(field_sizes[j] != size_native)
+                if(H5Tset_size(nmtype_id, field_sizes[j]) < 0)
                     goto out;
-            }
+
             /* the field in the file is found by its name */
-            if(field_offset )
-            {
-                if(H5Tinsert( mem_type_id, member_name, field_offset[j], nmtype_id ) < 0)
+            if(field_offset) {
+                if(H5Tinsert(mem_type_id, member_name, field_offset[j], nmtype_id) < 0)
                     goto out;
-            }
-            else
-            {
-                if(H5Tinsert( mem_type_id, member_name, (size_t)0, nmtype_id ) < 0)
+            } /* end if */
+            else {
+                if(H5Tinsert(mem_type_id, member_name, (size_t)0, nmtype_id) < 0)
                     goto out;
-            }
+            } /* end else */
 
             /* close */
-            if(H5Tclose( mtype_id ) < 0)
+            if(H5Tclose(mtype_id) < 0)
                 goto out;
-            if(H5Tclose( nmtype_id ) < 0)
+            mtype_id = H5I_BADID;
+            if(H5Tclose(nmtype_id) < 0)
                 goto out;
+            nmtype_id = H5I_BADID;
             j++;
-        }
-        H5free_memory( member_name );
-    }
+        } /* end if */
+
+        H5free_memory(member_name);
+        member_name = NULL;
+    } /* end for */
 
+    /* check to make sure field was found, no reason to continue if it does not exist */
+    if(j == 0)
+      goto out;
+    
     /* get the dataspace handle */
-    if ((sid = H5Dget_space( did )) < 0)
+    if((sid = H5Dget_space(did)) < 0)
         goto out;
 
     /* define a hyperslab in the dataset */
     offset[0] = start;
     count[0]  = nrecords;
-    if (H5Sselect_hyperslab( sid, H5S_SELECT_SET, offset, NULL, count, NULL) < 0)
+    if(H5Sselect_hyperslab(sid, H5S_SELECT_SET, offset, NULL, count, NULL) < 0)
         goto out;
 
     /* create a memory dataspace handle */
     mem_size[0] = count[0];
-    if ((m_sid = H5Screate_simple( 1, mem_size, NULL )) < 0)
+    if((m_sid = H5Screate_simple(1, mem_size, NULL)) < 0)
         goto out;
 
     /* read */
-    if (H5Dread( did, mem_type_id, m_sid, sid, H5P_DEFAULT, buf ) < 0)
-        goto out;
-
-    /* close */
-    if (H5Tclose( mem_type_id ) )
-        goto out;
-    if (H5Tclose( ftype_id ) < 0)
-        return -1;
-    if (H5Sclose( sid ) < 0)
-        goto out;
-    if (H5Sclose( m_sid ) < 0)
+    if(H5Dread(did, mem_type_id, m_sid, sid, H5P_DEFAULT, buf) < 0)
         goto out;
-    if (H5Dclose( did ) < 0)
-        return -1;
 
-    return 0;
+    ret_val = 0;
 
-    /* error zone */
 out:
-    H5E_BEGIN_TRY
-    {
-        H5Dclose(did);
-        H5Tclose(mem_type_id);
-        H5Tclose(ftype_id);
-        H5Sclose(m_sid);
-        H5Sclose(sid);
-    } H5E_END_TRY;
-    return -1;
-
-}
+    if(member_name)
+        H5free_memory(member_name);
+    if(mtype_id > 0)
+        if(H5Tclose(mtype_id) < 0)
+            ret_val = -1;
+    if(nmtype_id > 0)
+        if(H5Tclose(nmtype_id) < 0)
+            ret_val = -1;
+    if(mem_type_id > 0)
+        if(H5Tclose(mem_type_id) < 0)
+            ret_val = -1;
+    if(ftype_id > 0)
+        if(H5Tclose(ftype_id) < 0)
+            ret_val = -1;
+    if(m_sid > 0)
+        if(H5Sclose(m_sid) < 0)
+            ret_val = -1;
+    if(sid > 0)
+        if(H5Sclose(sid) < 0)
+            ret_val = -1;
+    if(did > 0)
+        if(H5Dclose(did) < 0)
+            ret_val = -1;
 
+    return ret_val;
+} /* end H5TBread_fields_name() */
 
 /*-------------------------------------------------------------------------
 * Function: H5TBread_fields_index
@@ -1123,15 +1094,9 @@ out:
 *
 * Comments:
 *
-* Modifications: April 1, 2004
-*  the FIELD_SIZES parameter is used to define the memory type ID
-*  returned by H5TB_create_type
-*
 *-------------------------------------------------------------------------
 */
-
-
-herr_t H5TBread_fields_index( hid_t loc_id,
+herr_t H5TBread_fields_index(hid_t loc_id,
                              const char *dset_name,
                              hsize_t nfields,
                              const int *field_index,
@@ -1140,38 +1105,41 @@ herr_t H5TBread_fields_index( hid_t loc_id,
                              size_t type_size,
                              const size_t *field_offset,
                              const size_t *field_sizes,
-                             void *buf )
+                             void *buf)
 {
-
-    hid_t    did;
-    hid_t    tid=-1;
-    hid_t    read_type_id=-1;
-    hid_t    member_type_id;
-    hid_t    nmtype_id;
-    char     *member_name;
+    hid_t    did = H5I_BADID;
+    hid_t    tid = H5I_BADID;
+    hid_t    read_type_id = H5I_BADID;
+    hid_t    member_type_id = H5I_BADID;
+    hid_t    nmtype_id = H5I_BADID;
+    hid_t    sid = H5I_BADID;
+    hid_t    m_sid = H5I_BADID;
     hsize_t  count[1];
-    hsize_t offset[1];
-    hid_t    sid=-1;
-    hid_t    m_sid=-1;
+    hsize_t  offset[1];
     hsize_t  mem_size[1];
-    size_t   size_native;
     hsize_t  i;
+    size_t   size_native;
+    char    *member_name = NULL;
+    herr_t   ret_val = -1;
+
+    /* check the arguments */
+    if (dset_name == NULL) 
+        goto out;
 
     /* open the dataset. */
-    if ((did = H5Dopen2(loc_id, dset_name, H5P_DEFAULT)) < 0)
+    if((did = H5Dopen2(loc_id, dset_name, H5P_DEFAULT)) < 0)
         goto out;
 
     /* get the datatype */
-    if ((tid = H5Dget_type( did )) < 0)
+    if((tid = H5Dget_type(did)) < 0)
         goto out;
 
     /* create a read id */
-    if (( read_type_id = H5Tcreate( H5T_COMPOUND, type_size )) < 0)
+    if((read_type_id = H5Tcreate(H5T_COMPOUND, type_size)) < 0)
         goto out;
 
     /* iterate tru the members */
-    for ( i = 0; i < nfields; i++)
-    {
+    for(i = 0; i < nfields; i++) {
         unsigned  j;
 
         /* Range check */
@@ -1181,95 +1149,94 @@ herr_t H5TBread_fields_index( hid_t loc_id,
         j = (unsigned)field_index[i];
 
         /* get the member name */
-        member_name = H5Tget_member_name( tid, j );
-
-        /* get the member type */
-        if (( member_type_id = H5Tget_member_type( tid, j )) < 0)
+        if(NULL == (member_name = H5Tget_member_name(tid, (unsigned)j)))
             goto out;
 
-        /* get the member size */
-        if (H5Tget_size( member_type_id ) == 0 )
+        /* get the member type */
+        if((member_type_id = H5Tget_member_type(tid, (unsigned)j)) < 0)
             goto out;
 
         /* convert to native type */
-        if ((nmtype_id=H5Tget_native_type(member_type_id,H5T_DIR_DEFAULT)) < 0)
+        if((nmtype_id = H5Tget_native_type(member_type_id, H5T_DIR_DEFAULT)) < 0)
             goto out;
 
-        size_native=H5Tget_size(nmtype_id);
+        if(0 == (size_native = H5Tget_size(nmtype_id)))
+            goto out;
 
-        if (field_sizes[i]!=size_native)
-        {
-            if (H5Tset_size(nmtype_id, field_sizes[i]) < 0)
+        if(field_sizes[i] != size_native)
+            if(H5Tset_size(nmtype_id, field_sizes[i]) < 0)
                 goto out;
-        }
 
         /* the field in the file is found by its name */
-        if (field_offset )
-        {
-            if(H5Tinsert( read_type_id, member_name, field_offset[i], nmtype_id ) < 0)
+        if(field_offset) {
+            if(H5Tinsert(read_type_id, member_name, field_offset[i], nmtype_id) < 0)
                 goto out;
-        }
-        else
-        {
-            if(H5Tinsert( read_type_id, member_name, (size_t)0, nmtype_id ) < 0)
+        } /* end if */
+        else {
+            if(H5Tinsert(read_type_id, member_name, (size_t)0, nmtype_id) < 0)
                 goto out;
-        }
+        } /* end else */
 
         /* close the member type */
-        if (H5Tclose( member_type_id ) < 0)
+        if(H5Tclose(member_type_id) < 0)
             goto out;
-        if (H5Tclose( nmtype_id ) < 0)
+        member_type_id = H5I_BADID;
+        if(H5Tclose(nmtype_id) < 0)
             goto out;
+        nmtype_id = H5I_BADID;
 
-        H5free_memory( member_name );
-    }
+        H5free_memory(member_name);
+        member_name = NULL;
+    } /* end for */
 
     /* get the dataspace handle */
-    if ((sid = H5Dget_space( did )) < 0)
+    if((sid = H5Dget_space(did)) < 0)
         goto out;
 
     /* define a hyperslab in the dataset */
     offset[0] = start;
     count[0]  = nrecords;
-    if (H5Sselect_hyperslab( sid, H5S_SELECT_SET, offset, NULL, count, NULL) < 0)
+    if(H5Sselect_hyperslab(sid, H5S_SELECT_SET, offset, NULL, count, NULL) < 0)
         goto out;
 
     /* create a memory dataspace handle */
     mem_size[0] = count[0];
-    if ((m_sid = H5Screate_simple( 1, mem_size, NULL )) < 0)
+    if((m_sid = H5Screate_simple(1, mem_size, NULL)) < 0)
         goto out;
 
     /* read */
-    if (H5Dread( did, read_type_id, m_sid, sid, H5P_DEFAULT, buf ) < 0)
+    if(H5Dread( did, read_type_id, m_sid, sid, H5P_DEFAULT, buf) < 0)
         goto out;
 
-    /* close */
-    if (H5Sclose( sid ) < 0)
-        goto out;
-    if (H5Sclose( m_sid ) < 0)
-        goto out;
-    if (H5Tclose( read_type_id ) )
-        goto out;
-    if (H5Tclose( tid ) < 0)
-        return -1;
-    if (H5Dclose( did ) < 0)
-        return -1;
-
-    return 0;
+    ret_val = 0;
 
-    /* error zone */
 out:
-    H5E_BEGIN_TRY
-    {
-        H5Dclose(did);
-        H5Tclose(read_type_id);
-        H5Tclose(tid);
-        H5Sclose(m_sid);
-        H5Sclose(sid);
-    } H5E_END_TRY;
-    return -1;
+    if(member_name)
+        H5free_memory(member_name);
+    if(read_type_id > 0)
+        if(H5Tclose(read_type_id) < 0)
+            ret_val = -1;
+    if(member_type_id > 0)
+        if(H5Tclose(member_type_id) < 0)
+            ret_val = -1;
+    if(nmtype_id > 0)
+        if(H5Tclose(nmtype_id) < 0)
+            ret_val = -1;
+    if(tid > 0)
+        if(H5Tclose(tid) < 0)
+            ret_val = -1;
+    if(m_sid > 0)
+        if(H5Sclose(m_sid) < 0)
+            ret_val = -1;
+    if(sid > 0)
+        if(H5Sclose(sid) < 0)
+            ret_val = -1;
+    if(did > 0)
+        if(H5Dclose(did) < 0)
+            ret_val = -1;
 
-}
+    return ret_val;
+} /* end H5TBread_fields_index() */
 
 
 /*-------------------------------------------------------------------------
@@ -1290,34 +1257,36 @@ out:
 *
 * Date: November 26, 2001
 *
-* Modifications: April 29, 2003
-*
-*
 *-------------------------------------------------------------------------
 */
-
-herr_t H5TBdelete_record( hid_t loc_id,
+herr_t H5TBdelete_record(hid_t loc_id,
                          const char *dset_name,
                          hsize_t start,
-                         hsize_t nrecords )
+                         hsize_t nrecords)
 {
+    hid_t    did = H5I_BADID;
+    hid_t    tid = H5I_BADID;
+    hid_t    sid = H5I_BADID;
+    hid_t    m_sid = H5I_BADID;
+    hid_t    mem_type_id = H5I_BADID;
     hsize_t  nfields;
     hsize_t  ntotal_records;
     hsize_t  read_start;
     hsize_t  read_nrecords;
-    hid_t    did=-1;
-    hid_t    tid=-1;
-    hid_t    sid=-1;
-    hid_t    m_sid=-1;
-    hid_t    mem_type_id=-1;
     hsize_t  count[1];
     hsize_t  offset[1];
     hsize_t  mem_size[1];
-    unsigned char *tmp_buf=NULL;
-    size_t   src_size;
-    size_t   *src_offset = NULL;
-    size_t   *src_sizes = NULL;
     hsize_t  dims[1];
+    size_t   src_size;
+    size_t  *src_offset = NULL;
+    size_t  *src_sizes = NULL;
+    unsigned char *tmp_buf = NULL;
+    herr_t   ret_val = -1;
+
+    
+    /* check the arguments */
+    if (dset_name == NULL) 
+        goto out;
 
     /*-------------------------------------------------------------------------
     * first we get information about type size and offsets on disk
@@ -1325,20 +1294,20 @@ herr_t H5TBdelete_record( hid_t loc_id,
     */
 
     /* get the number of records and fields  */
-    if (H5TBget_table_info ( loc_id, dset_name, &nfields, &ntotal_records ) < 0)
+    if(H5TBget_table_info(loc_id, dset_name, &nfields, &ntotal_records) < 0)
         goto out;
 
-    if(NULL == (src_offset = (size_t *)malloc((size_t)nfields * sizeof(size_t))))
+    if(NULL == (src_offset = (size_t *)HDmalloc((size_t)nfields * sizeof(size_t))))
         goto out;
-    if(NULL == (src_sizes = (size_t *)malloc((size_t)nfields * sizeof(size_t))))
+    if(NULL == (src_sizes = (size_t *)HDmalloc((size_t)nfields * sizeof(size_t))))
         goto out;
 
     /* get field info */
-    if (H5TBget_field_info( loc_id, dset_name, NULL, src_sizes, src_offset, &src_size ) < 0)
+    if(H5TBget_field_info(loc_id, dset_name, NULL, src_sizes, src_offset, &src_size) < 0)
         goto out;
 
     /* open the dataset. */
-    if ((did = H5Dopen2(loc_id, dset_name, H5P_DEFAULT)) < 0)
+    if((did = H5Dopen2(loc_id, dset_name, H5P_DEFAULT)) < 0)
         goto out;
 
     /*-------------------------------------------------------------------------
@@ -1349,13 +1318,12 @@ herr_t H5TBdelete_record( hid_t loc_id,
     read_start = start + nrecords;
     read_nrecords = ntotal_records - read_start;
 
-    if ( read_nrecords )
-    {
-        if(NULL == (tmp_buf = (unsigned char *)calloc((size_t) read_nrecords, src_size )))
+    if(read_nrecords) {
+        if(NULL == (tmp_buf = (unsigned char *)HDcalloc((size_t)read_nrecords, src_size)))
             goto out;
 
         /* read the records after the deleted one(s) */
-        if (H5TBread_records( loc_id, dset_name, read_start, read_nrecords, src_size, src_offset, src_sizes, tmp_buf ) < 0)
+        if(H5TBread_records(loc_id, dset_name, read_start, read_nrecords, src_size, src_offset, src_sizes, tmp_buf) < 0)
             goto out;
 
         /*-------------------------------------------------------------------------
@@ -1364,83 +1332,81 @@ herr_t H5TBdelete_record( hid_t loc_id,
         */
 
         /* get the datatype */
-        if ((tid = H5Dget_type( did )) < 0)
+        if((tid = H5Dget_type(did)) < 0)
             goto out;
 
         /* get the dataspace handle */
-        if ((sid = H5Dget_space( did )) < 0)
+        if((sid = H5Dget_space(did)) < 0)
             goto out;
 
 	/* create the memory data type. */
-	if ((mem_type_id=H5TB_create_type( loc_id, dset_name, src_size, src_offset, src_sizes, tid)) < 0)
+	if((mem_type_id = H5TB_create_type( loc_id, dset_name, src_size, src_offset, src_sizes, tid)) < 0)
 	    goto out;
 
         /* define a hyperslab in the dataset of the size of the records */
         offset[0] = start;
         count[0]  = read_nrecords;
-        if (H5Sselect_hyperslab( sid, H5S_SELECT_SET, offset, NULL, count, NULL) < 0)
+        if(H5Sselect_hyperslab(sid, H5S_SELECT_SET, offset, NULL, count, NULL) < 0)
             goto out;
 
         /* create a memory dataspace handle */
         mem_size[0] = count[0];
-        if ((m_sid = H5Screate_simple( 1, mem_size, NULL )) < 0)
+        if((m_sid = H5Screate_simple(1, mem_size, NULL)) < 0)
             goto out;
 
-        if (H5Dwrite( did, mem_type_id, m_sid, sid, H5P_DEFAULT, tmp_buf ) < 0)
+        if(H5Dwrite(did, mem_type_id, m_sid, sid, H5P_DEFAULT, tmp_buf) < 0)
             goto out;
 
         /* close */
-        if (H5Sclose( m_sid ) < 0)
+        if(H5Sclose(m_sid) < 0)
             goto out;
-	if (H5Tclose( mem_type_id ) < 0)
+        m_sid = H5I_BADID;
+	if(H5Tclose(mem_type_id) < 0)
 	    goto out;
-        if (H5Sclose( sid ) < 0)
+        mem_type_id = H5I_BADID;
+        if(H5Sclose(sid) < 0)
             goto out;
-        if (H5Tclose( tid ) < 0)
+        sid = H5I_BADID;
+        if(H5Tclose(tid) < 0)
             goto out;
-
+        tid = H5I_BADID;
     } /* read_nrecords */
 
-
     /*-------------------------------------------------------------------------
     * change the dataset dimension
     *-------------------------------------------------------------------------
     */
     dims[0] = ntotal_records - nrecords;
-    if (H5Dset_extent( did, dims ) < 0)
-        goto out;
-
-    /* close dataset */
-    if (H5Dclose( did ) < 0)
+    if(H5Dset_extent(did, dims) < 0)
         goto out;
 
-    if(tmp_buf)
-        free(tmp_buf);
-    if(src_offset)
-        free(src_offset);
-    if(src_sizes)
-        free(src_sizes);
-
-    return 0;
+    ret_val = 0;
 
-    /* error zone */
 out:
     if(tmp_buf)
-        free(tmp_buf);
+        HDfree(tmp_buf);
     if(src_offset)
-        free(src_offset);
+        HDfree(src_offset);
     if(src_sizes)
-        free(src_sizes);
-    H5E_BEGIN_TRY
-    {
-        H5Tclose(mem_type_id);
-        H5Dclose(did);
-        H5Tclose(tid);
-        H5Sclose(sid);
-        H5Sclose(m_sid);
-    } H5E_END_TRY;
-    return -1;
-}
+        HDfree(src_sizes);
+    if(mem_type_id > 0)
+        if(H5Tclose(mem_type_id) < 0)
+            ret_val = -1;
+    if(tid > 0)
+        if(H5Tclose(tid) < 0)
+            ret_val = -1;
+    if(m_sid > 0)
+        if(H5Sclose(m_sid) < 0)
+            ret_val = -1;
+    if(sid > 0)
+        if(H5Sclose(sid) < 0)
+            ret_val = -1;
+    if(did > 0)
+        if(H5Dclose(did) < 0)
+            ret_val = -1;
+
+    return ret_val;
+} /* end H5TBdelete_record() */
 
 /*-------------------------------------------------------------------------
 * Function: H5TBinsert_record
@@ -1455,37 +1421,35 @@ out:
 *
 * Comments: Uses memory offsets
 *
-* Modifications: April 1, 2004
-*  the FIELD_SIZES parameter is used to define the memory type ID
-*  returned by H5TB_create_type
-*
 *-------------------------------------------------------------------------
 */
-
-
-herr_t H5TBinsert_record( hid_t loc_id,
+herr_t H5TBinsert_record(hid_t loc_id,
                          const char *dset_name,
                          hsize_t start,
                          hsize_t nrecords,
                          size_t type_size,
                          const size_t *field_offset,
                          const size_t *field_sizes,
-                         void *buf )
+                         void *buf)
 {
-
+    hid_t    did = H5I_BADID;
+    hid_t    tid = H5I_BADID;
+    hid_t    mem_type_id = H5I_BADID;
+    hid_t    sid = H5I_BADID;
+    hid_t    m_sid = H5I_BADID;
     hsize_t  nfields;
     hsize_t  ntotal_records;
     hsize_t  read_nrecords;
-    hid_t    did;
-    hid_t    tid=-1;
-    hid_t    mem_type_id=-1;
     hsize_t  count[1];
     hsize_t  offset[1];
-    hid_t    sid=-1;
-    hid_t    m_sid=-1;
     hsize_t  dims[1];
     hsize_t  mem_dims[1];
-    unsigned char *tmp_buf;
+    unsigned char *tmp_buf = NULL;
+    herr_t   ret_val = -1;
+
+    /* check the arguments */
+    if (dset_name == NULL) 
+        goto out;
 
     /*-------------------------------------------------------------------------
     * read the records after the inserted one(s)
@@ -1493,32 +1457,33 @@ herr_t H5TBinsert_record( hid_t loc_id,
     */
 
     /* get the dimensions  */
-    if (H5TBget_table_info ( loc_id, dset_name, &nfields, &ntotal_records ) < 0)
-        return -1;
+    if(H5TBget_table_info(loc_id, dset_name, &nfields, &ntotal_records) < 0)
+        goto out;
 
     /* open the dataset. */
-    if ((did = H5Dopen2(loc_id, dset_name, H5P_DEFAULT)) < 0)
+    if((did = H5Dopen2(loc_id, dset_name, H5P_DEFAULT)) < 0)
         goto out;
 
     /* get the datatype */
-    if ((tid = H5Dget_type( did )) < 0)
+    if((tid = H5Dget_type(did)) < 0)
         goto out;
 
     /* create the memory data type. */
-    if ((mem_type_id=H5TB_create_type(loc_id,dset_name,type_size,field_offset,field_sizes,tid)) < 0)
+    if((mem_type_id = H5TB_create_type(loc_id, dset_name, type_size, field_offset, field_sizes, tid)) < 0)
         goto out;
 
     read_nrecords = ntotal_records - start;
-    tmp_buf = (unsigned char *)calloc((size_t) read_nrecords, type_size);
+    if(NULL == (tmp_buf = (unsigned char *)HDcalloc((size_t) read_nrecords, type_size)))
+        goto out;
 
     /* read the records after the inserted one(s) */
-    if (H5TBread_records( loc_id, dset_name, start, read_nrecords, type_size, field_offset, field_sizes, tmp_buf ) < 0)
-        return -1;
+    if(H5TBread_records(loc_id, dset_name, start, read_nrecords, type_size, field_offset, field_sizes, tmp_buf) < 0)
+        goto out;
 
     /* extend the dataset */
     dims[0] = ntotal_records + nrecords;
 
-    if (H5Dset_extent(did, dims) < 0)
+    if(H5Dset_extent(did, dims) < 0)
         goto out;
 
     /*-------------------------------------------------------------------------
@@ -1528,27 +1493,29 @@ herr_t H5TBinsert_record( hid_t loc_id,
 
     /* create a simple memory data space */
     mem_dims[0] = nrecords;
-    if ((m_sid = H5Screate_simple(1, mem_dims, NULL)) < 0)
-        return -1;
+    if((m_sid = H5Screate_simple(1, mem_dims, NULL)) < 0)
+        goto out;
 
     /* get the file data space */
-    if ((sid = H5Dget_space( did )) < 0)
-        return -1;
+    if((sid = H5Dget_space(did)) < 0)
+        goto out;
 
     /* define a hyperslab in the dataset to write the new data */
     offset[0] = start;
     count[0]  = nrecords;
-    if (H5Sselect_hyperslab( sid, H5S_SELECT_SET, offset, NULL, count, NULL) < 0)
+    if(H5Sselect_hyperslab(sid, H5S_SELECT_SET, offset, NULL, count, NULL) < 0)
         goto out;
 
-    if (H5Dwrite( did, mem_type_id, m_sid, sid, H5P_DEFAULT, buf ) < 0)
+    if(H5Dwrite(did, mem_type_id, m_sid, sid, H5P_DEFAULT, buf) < 0)
         goto out;
 
     /* terminate access to the dataspace */
-    if (H5Sclose( m_sid ) < 0)
+    if(H5Sclose(m_sid) < 0)
         goto out;
-    if (H5Sclose( sid ) < 0)
+    m_sid = H5I_BADID;
+    if(H5Sclose(sid) < 0)
         goto out;
+    sid = H5I_BADID;
 
     /*-------------------------------------------------------------------------
     * write the "pushed down" records
@@ -1556,51 +1523,46 @@ herr_t H5TBinsert_record( hid_t loc_id,
     */
 
     /* create a simple memory data space */
-    mem_dims[0]=read_nrecords;
-    if ((m_sid = H5Screate_simple( 1, mem_dims, NULL )) < 0)
-        return -1;
+    mem_dims[0] = read_nrecords;
+    if((m_sid = H5Screate_simple(1, mem_dims, NULL)) < 0)
+        goto out;
 
     /* get the file data space */
-    if ((sid = H5Dget_space( did )) < 0)
-        return -1;
+    if((sid = H5Dget_space(did)) < 0)
+        goto out;
 
     /* define a hyperslab in the dataset to write the new data */
     offset[0] = start + nrecords;
     count[0]  = read_nrecords;
-    if (H5Sselect_hyperslab( sid, H5S_SELECT_SET, offset, NULL, count, NULL) < 0)
+    if(H5Sselect_hyperslab(sid, H5S_SELECT_SET, offset, NULL, count, NULL) < 0)
         goto out;
 
-    if (H5Dwrite( did, mem_type_id, m_sid, sid, H5P_DEFAULT, tmp_buf ) < 0)
+    if(H5Dwrite(did, mem_type_id, m_sid, sid, H5P_DEFAULT, tmp_buf) < 0)
         goto out;
 
-    /* close */
-    if (H5Sclose( m_sid ) < 0)
-        goto out;
-    if (H5Sclose( sid ) < 0)
-        goto out;
-    if (H5Tclose( tid ) < 0)
-        return -1;
-    if (H5Tclose( mem_type_id ) < 0)
-        return -1;
-    if (H5Dclose( did ) < 0)
-        return -1;
-
-    free( tmp_buf );
-
-    return 0;
+    ret_val = 0;
 
-    /* error zone */
 out:
-    H5E_BEGIN_TRY
-    {
-        H5Dclose(did);
-        H5Sclose(sid);
-        H5Sclose(m_sid);
-        H5Tclose(mem_type_id);
-        H5Tclose(tid);
-    } H5E_END_TRY;
-    return -1;
-}
+    if(tmp_buf)
+        HDfree(tmp_buf);
+    if(sid > 0)
+        if(H5Sclose(sid) < 0)
+            ret_val = -1;
+    if(m_sid > 0)
+        if(H5Sclose(m_sid) < 0)
+            ret_val = -1;
+    if(mem_type_id > 0)
+        if(H5Tclose(mem_type_id) < 0)
+            ret_val = -1;
+    if(tid > 0)
+        if(H5Tclose(tid) < 0)
+            ret_val = -1;
+    if(did > 0)
+        if(H5Dclose(did) < 0)
+            ret_val = -1;
+
+    return ret_val;
+} /* end H5TBinsert_record() */
 
 /*-------------------------------------------------------------------------
 * Function: H5TBadd_records_from
@@ -1615,33 +1577,36 @@ out:
 *
 * Comments:
 *
-* Modifications:
-*
-*
 *-------------------------------------------------------------------------
 */
-
-herr_t H5TBadd_records_from( hid_t loc_id,
+herr_t H5TBadd_records_from(hid_t loc_id,
                             const char *dset_name1,
                             hsize_t start1,
                             hsize_t nrecords,
                             const char *dset_name2,
-                            hsize_t start2 )
+                            hsize_t start2)
 {
-    hid_t    did_1;
-    hid_t    tid_1;
-    hid_t    sid_1=-1;
-    hid_t    msid_1=-1;
-    size_t   type_size1;
+    hid_t    did = H5I_BADID;
+    hid_t    tid = H5I_BADID;
+    hid_t    sid = H5I_BADID;
+    hid_t    m_sid = H5I_BADID;
     hsize_t  count[1];
     hsize_t  offset[1];
     hsize_t  mem_size[1];
     hsize_t  nfields;
     hsize_t  ntotal_records;
-    unsigned char *tmp_buf = NULL;
+    size_t   type_size1;
     size_t   src_size;
-    size_t   *src_offset = NULL;
-    size_t   *src_sizes = NULL;
+    size_t  *src_offset = NULL;
+    size_t  *src_sizes = NULL;
+    unsigned char *tmp_buf = NULL;
+    herr_t   ret_val = -1;
+
+    /* check the arguments */
+    if (dset_name1 == NULL) 
+      goto out;
+    if (dset_name2 == NULL) 
+      goto out;
 
     /*-------------------------------------------------------------------------
     * first we get information about type size and offsets on disk
@@ -1649,16 +1614,16 @@ herr_t H5TBadd_records_from( hid_t loc_id,
     */
 
     /* get the number of records and fields  */
-    if (H5TBget_table_info ( loc_id, dset_name1, &nfields, &ntotal_records ) < 0)
+    if(H5TBget_table_info(loc_id, dset_name1, &nfields, &ntotal_records) < 0)
         goto out;
 
-    if(NULL == (src_offset = (size_t *)malloc((size_t)nfields * sizeof(size_t))))
+    if(NULL == (src_offset = (size_t *)HDmalloc((size_t)nfields * sizeof(size_t))))
         goto out;
-    if(NULL == (src_sizes  = (size_t *)malloc((size_t)nfields * sizeof(size_t))))
+    if(NULL == (src_sizes  = (size_t *)HDmalloc((size_t)nfields * sizeof(size_t))))
         goto out;
 
     /* get field info */
-    if (H5TBget_field_info( loc_id, dset_name1, NULL, src_sizes, src_offset, &src_size ) < 0)
+    if(H5TBget_field_info(loc_id, dset_name1, NULL, src_sizes, src_offset, &src_size) < 0)
         goto out;
 
     /*-------------------------------------------------------------------------
@@ -1667,86 +1632,69 @@ herr_t H5TBadd_records_from( hid_t loc_id,
     */
 
     /* open the 1st dataset. */
-    if ((did_1 = H5Dopen2(loc_id, dset_name1, H5P_DEFAULT)) < 0)
+    if((did = H5Dopen2(loc_id, dset_name1, H5P_DEFAULT)) < 0)
         goto out;
 
     /* get the datatype */
-    if ((tid_1 = H5Dget_type( did_1 )) < 0)
+    if((tid = H5Dget_type(did)) < 0)
         goto out;
 
     /* get the dataspace handle */
-    if ((sid_1 = H5Dget_space( did_1 )) < 0)
+    if((sid = H5Dget_space(did)) < 0)
         goto out;
 
     /* get the size of the datatype */
-    if (( type_size1 = H5Tget_size( tid_1 )) == 0 )
+    if(0 == (type_size1 = H5Tget_size(tid)))
         goto out;
 
-    if(NULL == (tmp_buf = (unsigned char *)calloc((size_t)nrecords, type_size1 )))
+    if(NULL == (tmp_buf = (unsigned char *)HDcalloc((size_t)nrecords, type_size1)))
         goto out;
 
     /* define a hyperslab in the dataset of the size of the records */
     offset[0] = start1;
     count[0]  = nrecords;
-    if (H5Sselect_hyperslab( sid_1, H5S_SELECT_SET, offset, NULL, count, NULL) < 0)
+    if(H5Sselect_hyperslab(sid, H5S_SELECT_SET, offset, NULL, count, NULL) < 0)
         goto out;
 
     /* create a memory dataspace handle */
     mem_size[0] = count[0];
-    if ((msid_1 = H5Screate_simple( 1, mem_size, NULL )) < 0)
+    if((m_sid = H5Screate_simple(1, mem_size, NULL)) < 0)
         goto out;
 
-    if (H5Dread( did_1, tid_1, msid_1, sid_1, H5P_DEFAULT, tmp_buf ) < 0)
+    if(H5Dread(did, tid, m_sid, sid, H5P_DEFAULT, tmp_buf) < 0)
         goto out;
 
     /*-------------------------------------------------------------------------
     * add to the second table
     *-------------------------------------------------------------------------
     */
-    if (H5TBinsert_record(loc_id,dset_name2,start2,nrecords,src_size,src_offset,src_sizes,tmp_buf ) < 0)
-        goto out;
-
-    /*-------------------------------------------------------------------------
-    * close resources for table 1
-    *-------------------------------------------------------------------------
-    */
-
-    if (H5Sclose( msid_1 ) < 0)
+    if(H5TBinsert_record(loc_id, dset_name2, start2, nrecords, src_size, src_offset, src_sizes, tmp_buf) < 0)
         goto out;
-    if (H5Sclose( sid_1 ) < 0)
-        goto out;
-    if (H5Tclose( tid_1 ) < 0)
-        goto out;
-    if (H5Dclose( did_1 ) < 0)
-        goto out;
-
-    if(tmp_buf)
-        free(tmp_buf);
-    if(src_offset)
-        free(src_offset);
-    if(src_sizes)
-        free(src_sizes);
 
-    return 0;
+    ret_val = 0;
 
-    /* error zone */
 out:
     if(tmp_buf)
-        free(tmp_buf);
+        HDfree(tmp_buf);
     if(src_offset)
-        free(src_offset);
+        HDfree(src_offset);
     if(src_sizes)
-        free(src_sizes);
-    H5E_BEGIN_TRY
-    {
-        H5Dclose(did_1);
-        H5Sclose(sid_1);
-        H5Sclose(msid_1);
-        H5Tclose(tid_1);
-    } H5E_END_TRY;
-    return -1;
+        HDfree(src_sizes);
+    if(tid > 0)
+        if(H5Tclose(tid) < 0)
+            ret_val = -1;
+    if(sid > 0)
+        if(H5Sclose(sid) < 0)
+            ret_val = -1;
+    if(m_sid > 0)
+        if(H5Sclose(m_sid) < 0)
+            ret_val = -1;
+    if(did > 0)
+        if(H5Dclose(did) < 0)
+            ret_val = -1;
 
-}
+    return ret_val;
+} /* end H5TBadd_records_from() */
 
 /*-------------------------------------------------------------------------
 * Function: H5TBcombine_tables
@@ -1761,9 +1709,6 @@ out:
 *
 * Comments:
 *
-* Modifications:
-*
-*
 *-------------------------------------------------------------------------
 */
 herr_t H5TBcombine_tables(hid_t loc_id1,
@@ -1805,11 +1750,18 @@ herr_t H5TBcombine_tables(hid_t loc_id1,
     size_t  *src_offset = NULL;
     size_t  *src_sizes = NULL;
     char     attr_name[255];
-    char     aux[255];
     unsigned char *tmp_buf = NULL;
     unsigned char *tmp_fill_buf = NULL;
     htri_t   has_fill;
-    int      ret_val = -1;
+    herr_t   ret_val = -1;
+
+    /* check the arguments */
+    if (dset_name1 == NULL) 
+      goto out;
+    if (dset_name2 == NULL) 
+      goto out;
+    if (dset_name3 == NULL) 
+      goto out;
 
     /*-------------------------------------------------------------------------
     * first we get information about type size and offsets on disk
@@ -1893,7 +1845,8 @@ herr_t H5TBcombine_tables(hid_t loc_id1,
     * get attributes
     *-------------------------------------------------------------------------
     */
-    type_size = H5Tget_size(tid_3);
+    if(0 == (type_size = H5Tget_size(tid_3)))
+        goto out;
 
     /* alloc fill value attribute buffer */
     if(NULL == (tmp_fill_buf = (unsigned char *)HDmalloc(type_size)))
@@ -1908,7 +1861,6 @@ herr_t H5TBcombine_tables(hid_t loc_id1,
     *-------------------------------------------------------------------------
     */
     if(has_fill) {
-
         if((sid = H5Screate(H5S_SCALAR)) < 0)
             goto out;
 
@@ -1920,11 +1872,7 @@ herr_t H5TBcombine_tables(hid_t loc_id1,
             /* get the member offset */
             member_offset = H5Tget_member_offset(tid_3, (unsigned)i);
 
-            HDstrncpy(attr_name, "FIELD_", 6);
-            HDsnprintf(aux, 12, "%d", (int)i);
-            HDstrncat(attr_name, aux, 12);
-            HDsnprintf(aux, 6, "%s", "_FILL");
-            HDstrncat(attr_name, aux, 7);
+            HDsnprintf(attr_name, sizeof(attr_name), "FIELD_%d_FILL", (int)i);
 
             if((attr_id = H5Acreate2(did_3, attr_name, member_type_id, sid, H5P_DEFAULT, H5P_DEFAULT)) < 0)
                 goto out;
@@ -1939,13 +1887,13 @@ herr_t H5TBcombine_tables(hid_t loc_id1,
             if(H5Tclose(member_type_id) < 0)
                 goto out;
             member_type_id = H5I_BADID;
-        }
+        } /* end for */
 
         /* close data space. */
         if(H5Sclose(sid) < 0)
             goto out;
         sid = H5I_BADID;
-    }
+    } /* end if */
 
     /*-------------------------------------------------------------------------
     * read data from 1st table
@@ -1978,27 +1926,13 @@ herr_t H5TBcombine_tables(hid_t loc_id1,
         goto out;
 
     /*-------------------------------------------------------------------------
-    * release resources from 1st table
+    * release temporary resources
     *-------------------------------------------------------------------------
     */
     if(H5Sclose(m_sid) < 0)
         goto out;
     m_sid = H5I_BADID;
-    if(H5Sclose(sid_1) < 0)
-        goto out;
-    sid_1 = H5I_BADID;
-    if(H5Tclose(tid_1) < 0)
-        goto out;
-    tid_1 = H5I_BADID;
-    if(H5Pclose(pid_1) < 0)
-        goto out;
-    pid_1 = H5I_BADID;
-    if(H5Dclose(did_1) < 0)
-        goto out;
-    did_1 = H5I_BADID;
-
-    /* Release resources. */
-    free(tmp_buf);
+    HDfree(tmp_buf);
     tmp_buf = NULL;
 
     /*-------------------------------------------------------------------------
@@ -2057,94 +1991,68 @@ herr_t H5TBcombine_tables(hid_t loc_id1,
     if(H5TBappend_records(loc_id1, dset_name3, nrecords, src_size, src_offset, src_sizes, tmp_buf) < 0)
         goto out;
 
-    /*-------------------------------------------------------------------------
-    * release resources from 2nd table
-    *-------------------------------------------------------------------------
-    */
-
-    if(H5Sclose(m_sid) < 0)
-        goto out;
-    m_sid = H5I_BADID;
-    if(H5Sclose(sid_2) < 0)
-        goto out;
-    sid_2 = H5I_BADID;
-    if(H5Tclose(tid_2) < 0)
-        goto out;
-    tid_2 = H5I_BADID;
-    if(H5Pclose(pid_2) < 0)
-        goto out;
-    pid_2 = H5I_BADID;
-    if(H5Dclose(did_2) < 0)
-        goto out;
-    did_2 = H5I_BADID;
-
-    /*-------------------------------------------------------------------------
-    * release resources from 3rd table
-    *-------------------------------------------------------------------------
-    */
-
-    if(H5Sclose(sid_3) < 0)
-        goto out;
-    sid_3 = H5I_BADID;
-    if(H5Tclose(tid_3) < 0)
-        goto out;
-    tid_3 = H5I_BADID;
-    if(H5Pclose(pid_3) < 0)
-        goto out;
-    pid_3 = H5I_BADID;
-    if(H5Dclose(did_3) < 0)
-        goto out;
-    did_3 = H5I_BADID;
-
     ret_val = 0;
 
 out:
     if(tmp_buf)
-        free(tmp_buf);
+        HDfree(tmp_buf);
     if(tmp_fill_buf)
-        free(tmp_fill_buf);
+        HDfree(tmp_fill_buf);
     if(src_offset)
-        free(src_offset);
+        HDfree(src_offset);
     if(src_sizes)
-        free(src_sizes);
-
-    H5E_BEGIN_TRY {
-        if(member_type_id > 0)
-            H5Tclose(member_type_id);
-        if(attr_id > 0)
-            H5Aclose(attr_id);
-        if(sid > 0)
-            H5Sclose(sid);
-        if(m_sid > 0)
-            H5Sclose(m_sid);
-        if(pid_1 > 0)
-            H5Pclose(pid_1);
-        if(tid_1 > 0)
-            H5Tclose(tid_1);
-        if(sid_1 > 0)
-            H5Sclose(sid_1);
-        if(did_1 > 0)
-            H5Dclose(did_1);
-        if(pid_2 > 0)
-            H5Pclose(pid_2);
-        if(tid_2 > 0)
-            H5Tclose(tid_2);
-        if(sid_2 > 0)
-            H5Sclose(sid_2);
-        if(did_2 > 0)
-            H5Dclose(did_2);
-        if(pid_3 > 0)
-            H5Pclose(pid_3);
-        if(tid_3 > 0)
-            H5Tclose(tid_3);
-        if(sid_3 > 0)
-            H5Sclose(sid_3);
-        if(did_3 > 0)
-            H5Dclose(did_3);
-    } H5E_END_TRY;
+        HDfree(src_sizes);
+    if(member_type_id > 0)
+        if(H5Tclose(member_type_id) < 0)
+            ret_val = -1;
+    if(attr_id > 0)
+        if(H5Aclose(attr_id) < 0)
+            ret_val = -1;
+    if(sid > 0)
+        if(H5Sclose(sid) < 0)
+            ret_val = -1;
+    if(m_sid > 0)
+        if(H5Sclose(m_sid) < 0)
+            ret_val = -1;
+    if(sid_1 > 0)
+        if(H5Sclose(sid_1) < 0)
+            ret_val = -1;
+    if(tid_1 > 0)
+        if(H5Tclose(tid_1) < 0)
+            ret_val = -1;
+    if(pid_1 > 0)
+        if(H5Pclose(pid_1) < 0)
+            ret_val = -1;
+    if(did_1 > 0)
+        if(H5Dclose(did_1) < 0)
+            ret_val = -1;
+    if(sid_2 > 0)
+        if(H5Sclose(sid_2) < 0)
+            ret_val = -1;
+    if(tid_2 > 0)
+        if(H5Tclose(tid_2) < 0)
+            ret_val = -1;
+    if(pid_2 > 0)
+        if(H5Pclose(pid_2) < 0)
+            ret_val = -1;
+    if(did_2 > 0)
+        if(H5Dclose(did_2) < 0)
+            ret_val = -1;
+    if(sid_3 > 0)
+        if(H5Sclose(sid_3) < 0)
+            ret_val = -1;
+    if(tid_3 > 0)
+        if(H5Tclose(tid_3) < 0)
+            ret_val = -1;
+    if(pid_3 > 0)
+        if(H5Pclose(pid_3) < 0)
+            ret_val = -1;
+    if(did_3 > 0)
+        if(H5Dclose(did_3) < 0)
+            ret_val = -1;
 
     return ret_val;
-}
+} /* end H5TBcombine_tables() */
 
 /*-------------------------------------------------------------------------
 * Function: H5TBinsert_field
@@ -2159,36 +2067,40 @@ out:
 *
 * Comments:
 *
-* Modifications:
-*
 *-------------------------------------------------------------------------
 */
-
-herr_t H5TBinsert_field( hid_t loc_id,
+herr_t H5TBinsert_field(hid_t loc_id,
                         const char *dset_name,
                         const char *field_name,
                         hid_t field_type,
                         hsize_t position,
                         const void *fill_data,
-                        const void *buf )
+                        const void *buf)
 {
     /* identifiers for the 1st, original dataset */
-    hid_t    did_1;
-    hid_t    tid_1;
-    hid_t    sid_1;
-    hid_t    pid_1;
-    hid_t    msid_1;
+    hid_t    did_1 = H5I_BADID;
+    hid_t    tid_1 = H5I_BADID;
+    hid_t    sid_1 = H5I_BADID;
+    hid_t    pid_1 = H5I_BADID;
+    hid_t    msid_1 = H5I_BADID;
     /* identifiers for the 2nd, new dataset */
-    hid_t    did_2;
-    hid_t    tid_2;
-    hid_t    sid_2;
-    hid_t    pid_2;
-    hid_t    msid_2;
-    hid_t    member_type_id;
+    hid_t    did_2 = H5I_BADID;
+    hid_t    tid_2 = H5I_BADID;
+    hid_t    sid_2 = H5I_BADID;
+    hid_t    pid_2 = H5I_BADID;
+    hid_t    msid_2 = H5I_BADID;
+    /* identifiers for the 3rd, final dataset */
+    hid_t    did_3 = H5I_BADID;
+    hid_t    tid_3 = H5I_BADID;
+    hid_t    sid_3 = H5I_BADID;
+    hid_t    member_type_id = H5I_BADID;
+    hid_t    write_type_id = H5I_BADID;
+    hid_t    preserve_id = H5I_BADID;
+    hid_t    attr_id = H5I_BADID;
     size_t   member_size;
     size_t   new_member_size = 0;
-    char     *member_name;
     size_t   total_size;
+    size_t   curr_offset;
     hsize_t  nfields;
     hsize_t  nrecords;
     hsize_t  dims_chunk[1];
@@ -2197,388 +2109,372 @@ herr_t H5TBinsert_field( hid_t loc_id,
     hsize_t  count[1];
     hsize_t  offset[1];
     hsize_t  mem_size[1];
-    hid_t    write_type_id;
-    hid_t    preserve_id;
-    size_t   curr_offset;
-    int      inserted;
-    hsize_t  idx;
+    hsize_t  i;
     char     table_title[255];
-    size_t   member_offset;
     char     attr_name[255];
-    hid_t    attr_id;
-    char     aux[255];
-    unsigned char *tmp_buf;
-    unsigned char *tmp_fill_buf;
-    hsize_t  i;
+    char    *member_name = NULL;
+    unsigned char *tmp_buf = NULL;
+    unsigned char *tmp_fill_buf = NULL;
+    hbool_t  inserted;
+    herr_t   ret_val = -1;
+
+    /* check the arguments */
+    if (dset_name == NULL) 
+        goto out;
+    if (field_name == NULL) 
+        goto out;
 
     /* get the number of records and fields  */
-    if (H5TBget_table_info ( loc_id, dset_name,  &nfields, &nrecords ) < 0)
-        return -1;
+    if(H5TBget_table_info(loc_id, dset_name, &nfields, &nrecords) < 0)
+        goto out;
 
     /*-------------------------------------------------------------------------
-    * get information about the old data type
-    *-------------------------------------------------------------------------
-    */
+     * get information about the old data type
+     *-------------------------------------------------------------------------
+     */
 
     /* open the dataset. */
-    if ((did_1 = H5Dopen2(loc_id, dset_name, H5P_DEFAULT)) < 0)
-        return -1;
+    if((did_1 = H5Dopen2(loc_id, dset_name, H5P_DEFAULT)) < 0)
+        goto out;
 
     /* get creation properties list */
-    if ((pid_1 = H5Dget_create_plist( did_1 )) < 0)
+    if((pid_1 = H5Dget_create_plist(did_1)) < 0)
         goto out;
 
     /* get the datatype */
-    if ((tid_1 = H5Dget_type( did_1 )) < 0)
+    if((tid_1 = H5Dget_type(did_1)) < 0)
         goto out;
 
     /* get the size of the datatype */
-    if (( total_size = H5Tget_size( tid_1 )) == 0 )
+    if(0 == (total_size = H5Tget_size(tid_1)))
         goto out;
 
     /* get the dataspace handle */
-    if ((sid_1 = H5Dget_space( did_1 )) < 0)
+    if((sid_1 = H5Dget_space(did_1)) < 0)
         goto out;
 
     /* get dimension */
-    if (H5Sget_simple_extent_dims( sid_1, dims, NULL) < 0)
+    if(H5Sget_simple_extent_dims(sid_1, dims, NULL) < 0)
         goto out;
 
     /*-------------------------------------------------------------------------
-    * get attributes
-    *-------------------------------------------------------------------------
-    */
+     * get attributes
+     *-------------------------------------------------------------------------
+     */
 
     /* get the table title */
-    if ((H5TBAget_title( did_1, table_title )) < 0)
+    if((H5TBAget_title(did_1, table_title)) < 0)
         goto out;
 
     /* alloc fill value attribute buffer */
-    tmp_fill_buf = (unsigned char *)malloc(total_size );
+    if(NULL == (tmp_fill_buf = (unsigned char *)HDmalloc(total_size)))
+        goto out;
 
     /* get the fill value attributes */
-    if ((H5TBAget_fill( loc_id, dset_name, did_1, tmp_fill_buf )) < 0)
+    if((H5TBAget_fill(loc_id, dset_name, did_1, tmp_fill_buf)) < 0)
         goto out;
 
     /*-------------------------------------------------------------------------
-    * create a new data type
-    *-------------------------------------------------------------------------
-    */
+     * create a new data type
+     *-------------------------------------------------------------------------
+     */
 
     /* get the new member size */
-    member_size = H5Tget_size( field_type );
+    if(0 == (member_size = H5Tget_size(field_type)))
+        goto out;
 
     /* create the data type. */
-    if (( tid_2 = H5Tcreate (H5T_COMPOUND,(size_t)(total_size + member_size) )) < 0)
+    if((tid_2 = H5Tcreate(H5T_COMPOUND, (size_t)(total_size + member_size))) < 0)
         goto out;
 
     curr_offset = 0;
-    inserted    = 0;
+    inserted    = FALSE;
 
     /* insert the old fields, counting with the new one */
-    for ( i = 0; i < nfields + 1; i++)
-    {
+    for(i = 0; i < nfields + 1; i++) {
+        hsize_t  idx;
+
         idx = i;
-        if (inserted )
+        if(inserted)
             idx = i - 1;
 
-        if (i == position )
-        {
+        if(i == position) {
             /* get the new member size */
-            new_member_size = H5Tget_size( field_type );
+            if(0 == (new_member_size = H5Tget_size(field_type)))
+                goto out;
 
             /* insert the new field type */
-            if (H5Tinsert( tid_2, field_name, curr_offset, field_type ) < 0)
+            if(H5Tinsert(tid_2, field_name, curr_offset, field_type) < 0)
                 goto out;
 
             curr_offset += new_member_size;
 
-            inserted = 1;
-
-            continue;
-        }
-
-        /* get the member name */
-        member_name = H5Tget_member_name( tid_1, (unsigned)idx );
-
-        /* get the member type */
-        if (( member_type_id = H5Tget_member_type( tid_1,(unsigned)idx )) < 0)
-            goto out;
+            inserted = TRUE;
+        } /* end if */
+        else {
+            /* get the member name */
+            if(NULL == (member_name = H5Tget_member_name(tid_1, (unsigned)idx)))
+                goto out;
 
-        /* get the member size */
-        member_size = H5Tget_size( member_type_id );
+            /* get the member type */
+            if((member_type_id = H5Tget_member_type(tid_1, (unsigned)idx)) < 0)
+                goto out;
 
-        /* insert it into the new type */
-        if (H5Tinsert( tid_2, member_name, curr_offset, member_type_id ) < 0)
-            goto out;
+            /* get the member size */
+            if(0 == (member_size = H5Tget_size(member_type_id)))
+                goto out;
 
-        curr_offset += member_size;
+            /* insert it into the new type */
+            if(H5Tinsert(tid_2, member_name, curr_offset, member_type_id) < 0)
+                goto out;
 
-        H5free_memory( member_name );
+            curr_offset += member_size;
 
-        /* close the member type */
-        if(H5Tclose( member_type_id ) < 0)
-            goto out;
+            H5free_memory(member_name);
+            member_name = NULL;
 
-    } /* i */
+            /* close the member type */
+            if(H5Tclose(member_type_id) < 0)
+                goto out;
+            member_type_id = H5I_BADID;
+        } /* end else */
+    } /* end for */
 
     /*-------------------------------------------------------------------------
-    * create a new temporary dataset
-    *-------------------------------------------------------------------------
-    */
+     * create a new temporary dataset
+     *-------------------------------------------------------------------------
+     */
 
     /* retrieve the size of chunk */
-    if (H5Pget_chunk(pid_1, 1, dims_chunk) < 0)
+    if(H5Pget_chunk(pid_1, 1, dims_chunk) < 0)
         goto out;
 
     /* create a new simple data space with unlimited size, using the dimension */
-    if ((sid_2 = H5Screate_simple( 1, dims, maxdims)) < 0)
-        return -1;
+    if((sid_2 = H5Screate_simple(1, dims, maxdims)) < 0)
+        goto out;
 
     /* modify dataset creation properties, i.e. enable chunking  */
-    pid_2 = H5Pcreate(H5P_DATASET_CREATE);
-    if (H5Pset_chunk(pid_2, 1, dims_chunk) < 0)
-        return -1;
+    if((pid_2 = H5Pcreate(H5P_DATASET_CREATE)) < 0)
+        goto out;
+    if(H5Pset_chunk(pid_2, 1, dims_chunk) < 0)
+        goto out;
 
     /* create the dataset. */
-    if ((did_2 = H5Dcreate2(loc_id, "new", tid_2, sid_2, H5P_DEFAULT, pid_2, H5P_DEFAULT)) < 0)
+    if((did_2 = H5Dcreate2(loc_id, "new", tid_2, sid_2, H5P_DEFAULT, pid_2, H5P_DEFAULT)) < 0)
         goto out;
 
     /*-------------------------------------------------------------------------
-    * read data from 1st table
-    *-------------------------------------------------------------------------
-    */
+     * read data from 1st table
+     *-------------------------------------------------------------------------
+     */
 
-    tmp_buf = (unsigned char *)calloc((size_t)nrecords, (size_t)total_size);
+    if(NULL == (tmp_buf = (unsigned char *)HDcalloc((size_t)nrecords, (size_t)total_size)))
+        goto out;
 
     /* define a hyperslab in the dataset of the size of the records */
     offset[0] = 0;
     count[0]  = nrecords;
-    if (H5Sselect_hyperslab(sid_1, H5S_SELECT_SET, offset, NULL, count, NULL) < 0)
+    if(H5Sselect_hyperslab(sid_1, H5S_SELECT_SET, offset, NULL, count, NULL) < 0)
         goto out;
 
     /* create a memory dataspace handle */
     mem_size[0] = count[0];
-    if ((msid_1 = H5Screate_simple(1, mem_size, NULL)) < 0)
+    if((msid_1 = H5Screate_simple(1, mem_size, NULL)) < 0)
         goto out;
 
-    if (H5Dread(did_1, tid_1, msid_1, H5S_ALL, H5P_DEFAULT, tmp_buf) < 0)
+    if(H5Dread(did_1, tid_1, msid_1, H5S_ALL, H5P_DEFAULT, tmp_buf) < 0)
         goto out;
 
     /*-------------------------------------------------------------------------
-    * save data from 1st table into new table, using the 1st type id
-    *-------------------------------------------------------------------------
-    */
+     * save data from 1st table into new table, using the 1st type id
+     *-------------------------------------------------------------------------
+     */
 
     /* write */
-    if (H5Dwrite( did_2, tid_1, msid_1, H5S_ALL, H5P_DEFAULT, tmp_buf ) < 0)
+    if(H5Dwrite(did_2, tid_1, msid_1, H5S_ALL, H5P_DEFAULT, tmp_buf) < 0)
         goto out;
 
     /*-------------------------------------------------------------------------
-    * save the function supplied data of the new field
-    *-------------------------------------------------------------------------
-    */
+     * save the function supplied data of the new field
+     *-------------------------------------------------------------------------
+     */
 
     /* create a write id */
-    if (( write_type_id = H5Tcreate( H5T_COMPOUND, (size_t)new_member_size )) < 0)
+    if((write_type_id = H5Tcreate(H5T_COMPOUND, (size_t)new_member_size)) < 0)
         goto out;
 
     /* the field in the file is found by its name */
-    if (H5Tinsert( write_type_id, field_name, (size_t)0, field_type ) < 0)
+    if(H5Tinsert(write_type_id, field_name, (size_t)0, field_type) < 0)
         goto out;
 
     /* create xfer properties to preserve initialized data */
-    if ((preserve_id = H5Pcreate (H5P_DATASET_XFER)) < 0)
+    if((preserve_id = H5Pcreate(H5P_DATASET_XFER)) < 0)
         goto out;
-    if (H5Pset_preserve (preserve_id, 1) < 0)
+    if(H5Pset_preserve(preserve_id, 1) < 0)
         goto out;
 
     /* only write if there is something to write */
-    if ( buf )
-    {
+    if(buf) {
         /* create a memory dataspace handle */
-        if ((msid_2 = H5Screate_simple( 1, mem_size, NULL )) < 0)
+        if((msid_2 = H5Screate_simple(1, mem_size, NULL)) < 0)
             goto out;
 
         /* write */
-        if (H5Dwrite( did_2, write_type_id, msid_2, sid_2, preserve_id, buf ) < 0)
-            goto out;
-
-        /* terminate access to the memory dataspace */
-        if (H5Sclose( msid_2 ) < 0)
+        if(H5Dwrite(did_2, write_type_id, msid_2, sid_2, preserve_id, buf) < 0)
             goto out;
-    }
+    } /* end if */
 
-    /* end access to the property list */
-    if (H5Pclose( preserve_id ) < 0)
+    /*-------------------------------------------------------------------------
+     * delete 1st table
+     *-------------------------------------------------------------------------
+     */
+    if(H5Ldelete(loc_id, dset_name, H5P_DEFAULT) < 0)
         goto out;
 
     /*-------------------------------------------------------------------------
-    * release resources from 1st table
-    *-------------------------------------------------------------------------
-    */
-
-    if (H5Sclose( msid_1 ) < 0)
-        goto out;
-    if (H5Tclose( tid_1 ) < 0)
+     * rename 2nd table
+     *-------------------------------------------------------------------------
+     */
+    if(H5Lmove(loc_id, "new", H5L_SAME_LOC, dset_name, H5P_DEFAULT, H5P_DEFAULT) < 0)
         goto out;
-    if (H5Pclose( pid_1 ) < 0)
-        goto out;
-    if (H5Sclose( sid_1 ) < 0)
-        goto out;
-    if (H5Dclose( did_1 ) < 0)
-        goto out;
-
 
     /*-------------------------------------------------------------------------
-    * release resources from 2nd table
-    *-------------------------------------------------------------------------
-    */
+     * attach the conforming table attributes
+     *-------------------------------------------------------------------------
+     */
 
-    if (H5Sclose( sid_2 ) < 0)
+    /* get the number of records and fields  */
+    if(H5TBget_table_info(loc_id, dset_name, &nfields, &nrecords) < 0)
         goto out;
-    if (H5Tclose( tid_2 ) < 0)
+
+    /* open the dataset. */
+    if((did_3 = H5Dopen2(loc_id, dset_name, H5P_DEFAULT)) < 0)
         goto out;
-    if (H5Pclose( pid_2 ) < 0)
+
+    /* get the datatype */
+    if((tid_3 = H5Dget_type(did_3)) < 0)
         goto out;
-    if (H5Dclose( did_2 ) < 0)
+
+    /* set the attributes */
+    if(H5TB_attach_attributes(table_title, loc_id, dset_name, (hsize_t)nfields, tid_3) < 0)
         goto out;
 
     /*-------------------------------------------------------------------------
-    * delete 1st table
-    *-------------------------------------------------------------------------
-    */
-    if (H5Ldelete( loc_id, dset_name, H5P_DEFAULT ) < 0)
-        return -1;
-
-    /*-------------------------------------------------------------------------
-    * rename 2nd table
-    *-------------------------------------------------------------------------
-    */
-
-    if (H5Lmove( loc_id, "new", H5L_SAME_LOC, dset_name, H5P_DEFAULT, H5P_DEFAULT ) < 0)
-        return -1;
-
-    /*-------------------------------------------------------------------------
-    * attach the conforming table attributes
-    *-------------------------------------------------------------------------
-    */
-
-    /* get the number of records and fields  */
-    if (H5TBget_table_info ( loc_id, dset_name,  &nfields, &nrecords ) < 0)
-        return -1;
-
-    /* open the dataset. */
-    if ((did_1 = H5Dopen2(loc_id, dset_name, H5P_DEFAULT)) < 0)
-        return -1;
-
-    /* get the datatype */
-    if ((tid_1 = H5Dget_type( did_1 )) < 0)
+     * attach the fill attributes from previous table
+     *-------------------------------------------------------------------------
+     */
+    if((sid_3 = H5Screate(H5S_SCALAR)) < 0)
         goto out;
 
-    /* set the attributes */
-    if (H5TB_attach_attributes( table_title, loc_id, dset_name,(hsize_t) nfields, tid_1 ) < 0)
-        return -1;
-
-    /*-------------------------------------------------------------------------
-    * attach the fill attributes from previous table
-    *-------------------------------------------------------------------------
-    */
-
-    if (( sid_1 = H5Screate(H5S_SCALAR)) < 0)
-        goto out;
+    for(i = 0; i < (nfields - 1); i++) {
+        size_t   member_offset;
 
-    for ( i = 0; i < nfields-1; i++)
-    {
         /* get the member type */
-        if(( member_type_id = H5Tget_member_type( tid_1, (unsigned) i )) < 0)
+        if((member_type_id = H5Tget_member_type(tid_3, (unsigned)i)) < 0)
             goto out;
 
         /* get the member offset */
-        member_offset = H5Tget_member_offset(tid_1, (unsigned)i);
+        member_offset = H5Tget_member_offset(tid_3, (unsigned)i);
 
-        strcpy(attr_name, "FIELD_");
-        sprintf(aux, "%d", (int)i);
-        strcat(attr_name, aux);
-        sprintf(aux, "%s", "_FILL");
-        strcat(attr_name, aux);
+        HDsnprintf(attr_name, sizeof(attr_name), "FIELD_%d_FILL", (int)i);
 
-        if ((attr_id = H5Acreate2(did_1, attr_name, member_type_id, sid_1, H5P_DEFAULT, H5P_DEFAULT)) < 0)
+        if((attr_id = H5Acreate2(did_3, attr_name, member_type_id, sid_3, H5P_DEFAULT, H5P_DEFAULT)) < 0)
             goto out;
 
-        if (H5Awrite(attr_id, member_type_id, tmp_fill_buf+member_offset) < 0)
+        if(H5Awrite(attr_id, member_type_id, tmp_fill_buf + member_offset) < 0)
             goto out;
 
-        if (H5Aclose(attr_id) < 0)
+        if(H5Aclose(attr_id) < 0)
             goto out;
+        attr_id = H5I_BADID;
 
         /* close the member type */
-        if (H5Tclose(member_type_id) < 0)
+        if(H5Tclose(member_type_id) < 0)
             goto out;
-    }
+        member_type_id = H5I_BADID;
+    } /* end for */
 
     /*-------------------------------------------------------------------------
-    * attach the fill attribute from the new field, if present
-    *-------------------------------------------------------------------------
-    */
-    if (fill_data)
-    {
-
-        strcpy(attr_name, "FIELD_");
-        sprintf(aux, "%d",(int)(nfields - 1));
-        strcat(attr_name, aux);
-        sprintf(aux, "%s", "_FILL");
-        strcat(attr_name, aux);
+     * attach the fill attribute from the new field, if present
+     *-------------------------------------------------------------------------
+     */
+    if(fill_data) {
+        HDsnprintf(attr_name, sizeof(attr_name), "FIELD_%d_FILL", (int)(nfields - 1));
 
         /* get the member type */
-        if ((member_type_id = H5Tget_member_type(tid_1, (unsigned)nfields - 1)) < 0)
+        if((member_type_id = H5Tget_member_type(tid_3, (unsigned)nfields - 1)) < 0)
             goto out;
 
-        if ((attr_id = H5Acreate2(did_1, attr_name, member_type_id, sid_1, H5P_DEFAULT, H5P_DEFAULT)) < 0)
+        if((attr_id = H5Acreate2(did_3, attr_name, member_type_id, sid_3, H5P_DEFAULT, H5P_DEFAULT)) < 0)
             goto out;
 
-        if (H5Awrite(attr_id, member_type_id, fill_data) < 0)
+        if(H5Awrite(attr_id, member_type_id, fill_data) < 0)
             goto out;
 
-        if (H5Aclose(attr_id) < 0)
+        if(H5Aclose(attr_id) < 0)
             goto out;
+        attr_id = H5I_BADID;
 
-        if (H5Tclose(member_type_id) < 0)
+        if(H5Tclose(member_type_id) < 0)
             goto out;
+        member_type_id = H5I_BADID;
+    } /* end fill_data */
 
-    }
-
-    /* close */
-    if (H5Sclose( sid_1 ) < 0)
-        goto out;
-    if (H5Tclose( tid_1 ) < 0)
-        goto out;
-    if (H5Dclose( did_1 ) < 0)
-        goto out;
-
-    /* release resources. */
-    free ( tmp_buf );
-    free ( tmp_fill_buf );
-
-    return 0;
+    ret_val = 0;
 
-    /* error zone */
 out:
-    H5E_BEGIN_TRY
-    {
-        H5Dclose(did_1);
-        H5Sclose(sid_1);
-        H5Tclose(tid_1);
-        H5Pclose(pid_1);
-        H5Dclose(did_2);
-        H5Sclose(sid_2);
-        H5Tclose(tid_2);
-        H5Pclose(pid_2);
-
-    } H5E_END_TRY;
-    return -1;
+    if(member_name)
+        H5free_memory(member_name);
+    if(tmp_buf)
+        HDfree(tmp_buf);
+    if(tmp_fill_buf)
+        HDfree(tmp_fill_buf);
+    if(preserve_id > 0)
+        if(H5Pclose(preserve_id) < 0)
+            ret_val = -1;
+    if(msid_1 > 0)
+        if(H5Sclose(msid_1) < 0)
+            ret_val = -1;
+    if(tid_1 > 0)
+        if(H5Tclose(tid_1) < 0)
+            ret_val = -1;
+    if(pid_1 > 0)
+        if(H5Pclose(pid_1) < 0)
+            ret_val = -1;
+    if(sid_1 > 0)
+        if(H5Sclose(sid_1) < 0)
+            ret_val = -1;
+    if(did_1 > 0)
+        if(H5Dclose(did_1) < 0)
+            ret_val = -1;
+    if(msid_2 > 0)
+        if(H5Sclose(msid_2) < 0)
+            ret_val = -1;
+    if(sid_2 > 0)
+        if(H5Sclose(sid_2) < 0)
+            ret_val = -1;
+    if(tid_2 > 0)
+        if(H5Tclose(tid_2) < 0)
+            ret_val = -1;
+    if(pid_2 > 0)
+        if(H5Pclose(pid_2) < 0)
+            ret_val = -1;
+    if(did_2 > 0)
+        if(H5Dclose(did_2) < 0)
+            ret_val = -1;
+    if(sid_3 > 0)
+        if(H5Sclose(sid_3) < 0)
+            ret_val = -1;
+    if(tid_3 > 0)
+        if(H5Tclose(tid_3) < 0)
+            ret_val = -1;
+    if(did_3 > 0)
+        if(H5Dclose(did_3) < 0)
+            ret_val = -1;
+
+    return ret_val;
+} /* end H5TBinsert_field() */
 
-}
 /*-------------------------------------------------------------------------
 * Function: H5TBdelete_field
 *
@@ -2592,54 +2488,60 @@ out:
 *
 * Comments:
 *
-* Modifications:
-*
-*
 *-------------------------------------------------------------------------
 */
-
-herr_t H5TBdelete_field( hid_t loc_id,
+herr_t H5TBdelete_field(hid_t loc_id,
                         const char *dset_name,
-                        const char *field_name )
+                        const char *field_name)
 {
     /* identifiers for the 1st original dataset */
-    hid_t    did_1;
-    hid_t    tid_1;
-    hid_t    sid_1;
-    hid_t    pid_1;
+    hid_t    did_1 = H5I_BADID;
+    hid_t    tid_1 = H5I_BADID;
+    hid_t    sid_1 = H5I_BADID;
+    hid_t    pid_1 = H5I_BADID;
     /* identifiers for the 2nd new dataset */
-    hid_t    did_2;
-    hid_t    tid_2;
-    hid_t    sid_2;
-    hid_t    pid_2;
-    hid_t    member_type_id;
+    hid_t    did_2 = H5I_BADID;
+    hid_t    tid_2 = H5I_BADID;
+    hid_t    sid_2 = H5I_BADID;
+    hid_t    pid_2 = H5I_BADID;
+    /* identifiers for the 3rd final dataset */
+    hid_t    did_3 = H5I_BADID;
+    hid_t    tid_3 = H5I_BADID;
+    hid_t    member_type_id = H5I_BADID;
+    hid_t    preserve_id = H5I_BADID;
+    hid_t    read_type_id = H5I_BADID;
+    hid_t    write_type_id = H5I_BADID;
+    hid_t    attr_id = H5I_BADID;
     size_t   member_size;
-    char     *member_name;
     size_t   type_size1;
     size_t   type_size2;
+    size_t   curr_offset;
+    size_t   delete_member_size = 0;
+    size_t   member_offset;
     hsize_t  nfields;
     hsize_t  nrecords;
     hsize_t  dims_chunk[1];
     hsize_t  dims[1];
     hsize_t  maxdims[1] = { H5S_UNLIMITED };
-    hid_t    preserve_id;
-    size_t   curr_offset;
-    size_t   delete_member_size = 0;
-    hid_t    read_type_id;
-    hid_t    write_type_id;
-    unsigned char *tmp_buf;
-    unsigned char *tmp_fill_buf;
+    hsize_t  i;
     char     attr_name[255];
-    char     aux[255];
     char     table_title[255];
-    size_t   member_offset;
-    hid_t    attr_id;
-    hsize_t  i;
-    htri_t   has_fill = 0;
+    char    *member_name = NULL;
+    unsigned char *tmp_buf = NULL;
+    unsigned char *tmp_fill_buf = NULL;
+    htri_t   has_fill = FALSE;
+    herr_t   ret_val = -1;
+
+
+    /* check the arguments */
+    if (dset_name == NULL) 
+        goto out;
+    if (field_name == NULL) 
+        goto out;
 
     /* get the number of records and fields  */
-    if (H5TBget_table_info ( loc_id, dset_name,  &nfields, &nrecords ) < 0)
-        return -1;
+    if(H5TBget_table_info(loc_id, dset_name, &nfields, &nrecords) < 0)
+        goto out;
 
     /*-------------------------------------------------------------------------
     * get information about the old data type
@@ -2647,26 +2549,27 @@ herr_t H5TBdelete_field( hid_t loc_id,
     */
 
     /* open the dataset. */
-    if ((did_1 = H5Dopen2(loc_id, dset_name, H5P_DEFAULT)) < 0)
-        return -1;
+    if((did_1 = H5Dopen2(loc_id, dset_name, H5P_DEFAULT)) < 0)
+        goto out;
 
     /* get creation properties list */
-    if ((pid_1 = H5Dget_create_plist( did_1 )) < 0)
+    if((pid_1 = H5Dget_create_plist(did_1)) < 0)
         goto out;
 
     /* get the datatype */
-    if ((tid_1 = H5Dget_type( did_1 )) < 0)
+    if((tid_1 = H5Dget_type(did_1)) < 0)
         goto out;
 
     /* get the size of the datatype */
-    type_size1 = H5Tget_size( tid_1 );
+    if(0 == (type_size1 = H5Tget_size(tid_1)))
+        goto out;
 
     /* get the dataspace handle */
-    if ((sid_1 = H5Dget_space( did_1 )) < 0)
+    if((sid_1 = H5Dget_space(did_1)) < 0)
         goto out;
 
     /* get dimension */
-    if (H5Sget_simple_extent_dims( sid_1, dims, NULL) < 0)
+    if(H5Sget_simple_extent_dims(sid_1, dims, NULL) < 0)
         goto out;
 
     /*-------------------------------------------------------------------------
@@ -2675,37 +2578,38 @@ herr_t H5TBdelete_field( hid_t loc_id,
     */
 
     /* check out the field */
-    for ( i = 0; i < nfields; i++)
-    {
+    for(i = 0; i < nfields; i++) {
         /* get the member name */
-        member_name = H5Tget_member_name( tid_1,(unsigned) i );
+        if(NULL == (member_name = H5Tget_member_name(tid_1, (unsigned)i)))
+            goto out;
 
         /* we want to find the field to delete */
-        if (H5TB_find_field( member_name, field_name ) > 0 )
-        {
+        if(H5TB_find_field(member_name, field_name)) {
             /* get the member type */
-            if (( member_type_id = H5Tget_member_type( tid_1,(unsigned) i )) < 0)
+            if((member_type_id = H5Tget_member_type(tid_1, (unsigned)i)) < 0)
                 goto out;
 
             /* get the member size */
-            delete_member_size = H5Tget_size( member_type_id );
+            if(0 == (delete_member_size = H5Tget_size(member_type_id)))
+                goto out;
 
             /* close the member type */
-            if (H5Tclose( member_type_id ) < 0)
+            if(H5Tclose(member_type_id) < 0)
                 goto out;
+            member_type_id = H5I_BADID;
 
-            H5free_memory( member_name );
+            H5free_memory(member_name);
+            member_name = NULL;
 
             break;
+        } /* end if */
 
-        }
-
-        H5free_memory( member_name );
-
-    } /* i */
+        H5free_memory(member_name);
+        member_name = NULL;
+    } /* end for */
 
     /* no field to delete was found */
-    if (delete_member_size == 0 )
+    if(delete_member_size == 0)
         goto out;
 
     /*-------------------------------------------------------------------------
@@ -2716,13 +2620,14 @@ herr_t H5TBdelete_field( hid_t loc_id,
     type_size2 = type_size1 - delete_member_size;
 
     /* create the data type. */
-    if (( tid_2 = H5Tcreate (H5T_COMPOUND, type_size2 )) < 0)
+    if((tid_2 = H5Tcreate (H5T_COMPOUND, type_size2)) < 0)
         goto out;
 
     curr_offset = 0;
 
     /* alloc fill value attribute buffer */
-    tmp_fill_buf = (unsigned char *)malloc((size_t) type_size2 );
+    if(NULL == (tmp_fill_buf = (unsigned char *)HDmalloc((size_t)type_size2)))
+        goto out;
 
     /*-------------------------------------------------------------------------
     * get attributes from previous table in the process
@@ -2730,62 +2635,56 @@ herr_t H5TBdelete_field( hid_t loc_id,
     */
 
     /* get the table title */
-    if ((H5TBAget_title( did_1, table_title )) < 0)
+    if((H5TBAget_title(did_1, table_title)) < 0)
         goto out;
 
     /* insert the old fields except the one to delete */
-    for ( i = 0; i < nfields; i++)
-    {
+    for(i = 0; i < nfields; i++) {
         /* get the member name */
-        member_name = H5Tget_member_name( tid_1, (unsigned) i );
+        if(NULL == (member_name = H5Tget_member_name(tid_1, (unsigned)i)))
+            goto out;
 
         /* we want to skip the field to delete */
-        if (H5TB_find_field( member_name, field_name ) > 0 )
-        {
-            H5free_memory( member_name );
-            continue;
-        }
+        if(!H5TB_find_field(member_name, field_name)) {
+            /* get the member type */
+            if((member_type_id = H5Tget_member_type(tid_1, (unsigned)i)) < 0)
+                goto out;
 
-        /* get the member type */
-        if (( member_type_id = H5Tget_member_type( tid_1, (unsigned)i )) < 0)
-            goto out;
+            /* get the member size */
+            if(0 == (member_size = H5Tget_size(member_type_id)))
+                goto out;
 
-        /* get the member size */
-        member_size = H5Tget_size( member_type_id );
+            /* insert it into the new type */
+            if(H5Tinsert(tid_2, member_name, curr_offset, member_type_id) < 0)
+                goto out;
 
-        /* insert it into the new type */
-        if (H5Tinsert( tid_2, member_name, curr_offset, member_type_id ) < 0)
-            goto out;
+            /*-------------------------------------------------------------------------
+            * get the fill value information
+            *-------------------------------------------------------------------------
+            */
 
-        /*-------------------------------------------------------------------------
-        * get the fill value information
-        *-------------------------------------------------------------------------
-        */
+            HDsnprintf(attr_name, sizeof(attr_name), "FIELD_%d_FILL", (int)i);
 
-        strcpy( attr_name, "FIELD_" );
-        sprintf( aux, "%d", (int)i );
-        strcat( attr_name, aux );
-        sprintf( aux, "%s", "_FILL" );
-        strcat( attr_name, aux );
+            /* check if we have the _FILL attribute */
+            if((has_fill = H5LT_find_attribute(did_1, attr_name)) < 0)
+                goto out;
 
-        /* check if we have the _FILL attribute */
-        has_fill = H5LT_find_attribute( did_1, attr_name );
+            /* get it */
+            if(has_fill)
+                if(H5LT_get_attribute_disk(did_1, attr_name, tmp_fill_buf + curr_offset) < 0)
+                    goto out;
 
-        /* get it */
-        if (has_fill == 1 )
-        {
-            if(H5LT_get_attribute_disk( did_1, attr_name, tmp_fill_buf+curr_offset ) < 0)
-                goto out;
-        }
+            curr_offset += member_size;
 
-        curr_offset += member_size;
+            /* close the member type */
+            if(H5Tclose(member_type_id) < 0)
+                goto out;
+            member_type_id = H5I_BADID;
+        } /* end if */
 
         H5free_memory(member_name);
-
-        /* close the member type */
-        if (H5Tclose(member_type_id) < 0)
-            goto out;
-    } /* i */
+        member_name = NULL;
+    } /* end for */
 
     /*-------------------------------------------------------------------------
     * create a new temporary dataset
@@ -2793,143 +2692,116 @@ herr_t H5TBdelete_field( hid_t loc_id,
     */
 
     /* retrieve the size of chunk */
-    if (H5Pget_chunk(pid_1, 1, dims_chunk) < 0)
+    if(H5Pget_chunk(pid_1, 1, dims_chunk) < 0)
         goto out;
 
     /* create a new simple data space with unlimited size, using the dimension */
-    if ((sid_2 = H5Screate_simple(1, dims, maxdims)) < 0)
-        return -1;
+    if((sid_2 = H5Screate_simple(1, dims, maxdims)) < 0)
+        goto out;
 
     /* modify dataset creation properties, i.e. enable chunking  */
     pid_2 = H5Pcreate(H5P_DATASET_CREATE);
-    if (H5Pset_chunk(pid_2, 1, dims_chunk) < 0)
-        return -1;
+    if(H5Pset_chunk(pid_2, 1, dims_chunk) < 0)
+        goto out;
 
     /* create the dataset. */
-    if ((did_2 = H5Dcreate2(loc_id, "new", tid_2, sid_2, H5P_DEFAULT, pid_2, H5P_DEFAULT)) < 0)
+    if((did_2 = H5Dcreate2(loc_id, "new", tid_2, sid_2, H5P_DEFAULT, pid_2, H5P_DEFAULT)) < 0)
         goto out;
 
     /*-------------------------------------------------------------------------
     * we have to read field by field of the old dataset and save it into the new one
     *-------------------------------------------------------------------------
     */
-    for ( i = 0; i < nfields; i++)
-    {
+    for(i = 0; i < nfields; i++) {
         /* get the member name */
-        member_name = H5Tget_member_name(tid_1, (unsigned)i);
+        if(NULL == (member_name = H5Tget_member_name(tid_1, (unsigned)i)))
+            goto out;
 
         /* skip the field to delete */
-        if (H5TB_find_field(member_name, field_name) > 0)
-        {
-            H5free_memory(member_name);
-            continue;
-        }
+        if(!H5TB_find_field(member_name, field_name) > 0) {
+            /* get the member type */
+            if((member_type_id = H5Tget_member_type(tid_1, (unsigned)i)) < 0)
+                goto out;
 
-        /* get the member type */
-        if ((member_type_id = H5Tget_member_type(tid_1, (unsigned)i)) < 0)
-            goto out;
+            /* get the member size */
+            if(0 == (member_size = H5Tget_size(member_type_id)))
+                goto out;
 
-        /* get the member size */
-        member_size = H5Tget_size(member_type_id);
+            /* create a read id */
+            if((read_type_id = H5Tcreate(H5T_COMPOUND, member_size)) < 0)
+                goto out;
 
-        /* create a read id */
-        if ((read_type_id = H5Tcreate(H5T_COMPOUND, member_size)) < 0)
-            goto out;
+            /* insert it into the new type */
+            if(H5Tinsert(read_type_id, member_name, (size_t)0, member_type_id) < 0)
+                goto out;
 
-        /* insert it into the new type */
-        if (H5Tinsert( read_type_id, member_name, (size_t)0, member_type_id ) < 0)
-            goto out;
+            if(NULL == (tmp_buf = (unsigned char *)HDcalloc((size_t)nrecords, member_size)))
+                goto out;
 
-        tmp_buf = (unsigned char *)calloc((size_t) nrecords, member_size );
+            /* read */
+            if(H5Dread(did_1, read_type_id, H5S_ALL, H5S_ALL, H5P_DEFAULT, tmp_buf) < 0)
+                goto out;
 
-        /* read */
-        if (H5Dread( did_1, read_type_id, H5S_ALL, H5S_ALL, H5P_DEFAULT, tmp_buf ) < 0)
-            goto out;
+            /* create a write id */
+            if((write_type_id = H5Tcreate(H5T_COMPOUND, member_size)) < 0)
+                goto out;
 
-        /* create a write id */
-        if (( write_type_id = H5Tcreate( H5T_COMPOUND, member_size )) < 0)
-            goto out;
+            /* the field in the file is found by its name */
+            if(H5Tinsert(write_type_id, member_name, (size_t)0, member_type_id) < 0)
+                goto out;
 
-        /* the field in the file is found by its name */
-        if (H5Tinsert( write_type_id, member_name, (size_t)0, member_type_id ) < 0)
-            goto out;
+            /* create xfer properties to preserve initialized data */
+            if((preserve_id = H5Pcreate(H5P_DATASET_XFER)) < 0)
+                goto out;
+            if(H5Pset_preserve(preserve_id, 1) < 0)
+                goto out;
 
-        /* create xfer properties to preserve initialized data */
-        if ((preserve_id = H5Pcreate (H5P_DATASET_XFER)) < 0)
-            goto out;
-        if (H5Pset_preserve (preserve_id, 1) < 0)
-            goto out;
+            /* write */
+            if(H5Dwrite(did_2, write_type_id, H5S_ALL, H5S_ALL, preserve_id, tmp_buf) < 0)
+                goto out;
 
-        /* write */
-        if(H5Dwrite( did_2, write_type_id, H5S_ALL, H5S_ALL, preserve_id, tmp_buf ) < 0)
-            goto out;
+            /* end access to the property list */
+            if(H5Pclose(preserve_id) < 0)
+                goto out;
+            preserve_id = H5I_BADID;
 
-        /* end access to the property list */
-        if (H5Pclose( preserve_id ) < 0)
-            goto out;
+            /* close the member type */
+            if(H5Tclose(member_type_id) < 0)
+                goto out;
+            member_type_id = H5I_BADID;
 
-        /* close the member type */
-        if (H5Tclose( member_type_id ) < 0)
-            goto out;
+            /* close the read type */
+            if(H5Tclose(read_type_id) < 0)
+                goto out;
+            read_type_id = H5I_BADID;
 
-        /* close the read type */
-        if (H5Tclose( read_type_id ) < 0)
-            goto out;
+            /* close the write type */
+            if(H5Tclose(write_type_id) < 0)
+                goto out;
+            write_type_id = H5I_BADID;
 
-        /* close the write type */
-        if (H5Tclose( write_type_id ) < 0)
-            goto out;
+            HDfree(tmp_buf);
+            tmp_buf = NULL;
+        } /* end if */
 
         /* release resources. */
-        H5free_memory( member_name );
-        HDfree ( tmp_buf );
-
-    } /* i */
-
-    /*-------------------------------------------------------------------------
-    * release resources from 1st table
-    *-------------------------------------------------------------------------
-    */
-
-    if (H5Tclose( tid_1 ) < 0)
-        goto out;
-    if (H5Pclose( pid_1 ) < 0)
-        goto out;
-    if (H5Sclose( sid_1 ) < 0)
-        goto out;
-    if (H5Dclose( did_1 ) < 0)
-        goto out;
-
-
-    /*-------------------------------------------------------------------------
-    * release resources from 2nd table
-    *-------------------------------------------------------------------------
-    */
-
-    if (H5Sclose( sid_2 ) < 0)
-        goto out;
-    if (H5Tclose( tid_2 ) < 0)
-        goto out;
-    if (H5Pclose( pid_2 ) < 0)
-        goto out;
-    if (H5Dclose( did_2 ) < 0)
-        goto out;
+        H5free_memory(member_name);
+        member_name = NULL;
+    } /* end for */
 
     /*-------------------------------------------------------------------------
     * delete 1st table
     *-------------------------------------------------------------------------
     */
-
-    if (H5Ldelete( loc_id, dset_name, H5P_DEFAULT ) < 0)
-        return -1;
+    if(H5Ldelete(loc_id, dset_name, H5P_DEFAULT) < 0)
+        goto out;
 
     /*-------------------------------------------------------------------------
     * rename 2nd table
     *-------------------------------------------------------------------------
     */
-
-    if (H5Lmove( loc_id, "new", H5L_SAME_LOC, dset_name, H5P_DEFAULT, H5P_DEFAULT ) < 0)
-        return -1;
+    if(H5Lmove(loc_id, "new", H5L_SAME_LOC, dset_name, H5P_DEFAULT, H5P_DEFAULT) < 0)
+        goto out;
 
     /*-------------------------------------------------------------------------
     * attach the conforming table attributes
@@ -2937,97 +2809,119 @@ herr_t H5TBdelete_field( hid_t loc_id,
     */
 
     /* get the number of records and fields  */
-    if (H5TBget_table_info ( loc_id, dset_name, &nfields, &nrecords ) < 0)
-        return -1;
+    if(H5TBget_table_info(loc_id, dset_name, &nfields, &nrecords) < 0)
+        goto out;
 
     /* open the dataset. */
-    if ((did_1 = H5Dopen2(loc_id, dset_name, H5P_DEFAULT)) < 0)
-        return -1;
+    if((did_3 = H5Dopen2(loc_id, dset_name, H5P_DEFAULT)) < 0)
+        goto out;
 
     /* get the datatype */
-    if ((tid_1 = H5Dget_type( did_1 )) < 0)
+    if((tid_3 = H5Dget_type(did_3)) < 0)
         goto out;
 
     /* set the attributes */
-    if (H5TB_attach_attributes( table_title, loc_id, dset_name, nfields, tid_1 ) < 0)
-        return -1;
+    if(H5TB_attach_attributes(table_title, loc_id, dset_name, nfields, tid_3) < 0)
+        goto out;
 
     /*-------------------------------------------------------------------------
     * attach the fill attributes from previous table
     *-------------------------------------------------------------------------
     */
-
-    if (has_fill == 1)
-    {
+    if(has_fill) {
         if((sid_1 = H5Screate(H5S_SCALAR)) < 0)
             goto out;
 
-        for(i = 0; i < nfields; i++)
-        {
-
+        for(i = 0; i < nfields; i++) {
             /* get the member type */
-            if (( member_type_id = H5Tget_member_type( tid_1, (unsigned)i )) < 0)
+            if((member_type_id = H5Tget_member_type(tid_3, (unsigned)i)) < 0)
                 goto out;
 
             /* get the member offset */
-            member_offset = H5Tget_member_offset(tid_1, (unsigned)i);
+            member_offset = H5Tget_member_offset(tid_3, (unsigned)i);
 
-            strcpy(attr_name, "FIELD_");
-            sprintf(aux, "%d", (int)i);
-            strcat(attr_name, aux);
-            sprintf(aux, "%s", "_FILL");
-            strcat(attr_name, aux);
+            HDsnprintf(attr_name, sizeof(attr_name), "FIELD_%d_FILL", (int)i);
 
-            if ((attr_id = H5Acreate2(did_1, attr_name, member_type_id, sid_1, H5P_DEFAULT, H5P_DEFAULT)) < 0)
+            if((attr_id = H5Acreate2(did_3, attr_name, member_type_id, sid_1, H5P_DEFAULT, H5P_DEFAULT)) < 0)
                 goto out;
 
-            if (H5Awrite(attr_id, member_type_id, tmp_fill_buf+member_offset) < 0)
+            if(H5Awrite(attr_id, member_type_id, tmp_fill_buf + member_offset) < 0)
                 goto out;
 
-            if (H5Aclose(attr_id) < 0)
+            if(H5Aclose(attr_id) < 0)
                 goto out;
+            attr_id = H5I_BADID;
 
             /* close the member type */
-            if (H5Tclose(member_type_id) < 0)
+            if(H5Tclose(member_type_id) < 0)
                 goto out;
-        }
+            member_type_id = H5I_BADID;
+        } /* end for */
 
         /* close data space. */
-        if (H5Sclose(sid_1) < 0)
+        if(H5Sclose(sid_1) < 0)
             goto out;
+        sid_1 = H5I_BADID;
+    } /* end if */
 
-    } /*has_fill*/
-
-    /* release the datatype. */
-    if (H5Tclose( tid_1 ) < 0)
-        goto out;
-
-    /* end access to the dataset */
-    if (H5Dclose( did_1 ) < 0)
-        goto out;
-
-    /* Release resources. */
-    free ( tmp_fill_buf );
-
-    return 0;
+    ret_val = 0;
 
-    /* error zone */
 out:
-    H5E_BEGIN_TRY
-    {
-        H5Dclose(did_1);
-        H5Sclose(sid_1);
-        H5Tclose(tid_1);
-        H5Pclose(pid_1);
-        H5Dclose(did_2);
-        H5Sclose(sid_2);
-        H5Tclose(tid_2);
-        H5Pclose(pid_2);
-
-    } H5E_END_TRY;
-    return -1;
+    if(member_name)
+        H5free_memory(member_name);
+    if(tmp_fill_buf)
+        HDfree(tmp_fill_buf);
+    if(tmp_buf)
+        HDfree(tmp_buf);
+    if(attr_id > 0)
+        if(H5Aclose(attr_id) < 0)
+            ret_val = -1;
+    if(preserve_id > 0)
+        if(H5Pclose(preserve_id) < 0)
+            ret_val = -1;
+    if(member_type_id > 0)
+        if(H5Tclose(member_type_id) < 0)
+            ret_val = -1;
+    if(read_type_id > 0)
+        if(H5Tclose(read_type_id) < 0)
+            ret_val = -1;
+    if(write_type_id > 0)
+        if(H5Tclose(write_type_id) < 0)
+            ret_val = -1;
+    if(tid_1 > 0)
+        if(H5Tclose(tid_1) < 0)
+            ret_val = -1;
+    if(pid_1 > 0)
+        if(H5Pclose(pid_1) < 0)
+            ret_val = -1;
+    if(sid_1 > 0)
+        if(H5Sclose(sid_1) < 0)
+            ret_val = -1;
+    if(did_1 > 0)
+        if(H5Dclose(did_1) < 0)
+            ret_val = -1;
+    if(sid_2 > 0)
+        if(H5Sclose(sid_2) < 0)
+            ret_val = -1;
+    if(tid_2 > 0)
+        if(H5Tclose(tid_2) < 0)
+            ret_val = -1;
+    if(pid_2 > 0)
+        if(H5Pclose(pid_2) < 0)
+            ret_val = -1;
+    if(did_2 > 0)
+        if(H5Dclose(did_2) < 0)
+            ret_val = -1;
+    if(tid_3 > 0)
+        if(H5Tclose(tid_3) < 0)
+            ret_val = -1;
+    if(did_3 > 0)
+        if(H5Dclose(did_3) < 0)
+            ret_val = -1;
+
+    return ret_val;
+} /* end H5TBdelete_field() */
 
-}
 /*-------------------------------------------------------------------------
 *
 * Table attribute functions
@@ -3048,22 +2942,17 @@ out:
 *
 * Comments:
 *
-* Modifications:
-*
 *-------------------------------------------------------------------------
 */
-
-herr_t H5TBAget_title( hid_t loc_id,
-                      char *table_title )
+herr_t H5TBAget_title(hid_t loc_id,
+                      char *table_title)
 {
 
     /* Get the TITLE attribute */
-    if(H5LT_get_attribute_disk( loc_id, "TITLE", table_title ) < 0)
+    if(H5LT_get_attribute_disk(loc_id, "TITLE", table_title) < 0)
         return -1;
 
-
     return 0;
-
 }
 
 /*-------------------------------------------------------------------------
@@ -3079,8 +2968,6 @@ herr_t H5TBAget_title( hid_t loc_id,
 *
 * Comments:
 *
-* Modifications:
-*
 *-------------------------------------------------------------------------
 */
 htri_t H5TBAget_fill(hid_t loc_id,
@@ -3088,57 +2975,50 @@ htri_t H5TBAget_fill(hid_t loc_id,
                      hid_t dset_id,
                      unsigned char *dst_buf)
 {
+    hsize_t  nfields;
+    hsize_t  nrecords;
+    hsize_t  i;
+    size_t  *src_offset = NULL;
+    char     attr_name[255];
+    htri_t   has_fill = FALSE;
+    htri_t   ret_val = -1;
 
-    hsize_t nfields;
-    hsize_t nrecords;
-    char    attr_name[255];
-    char    aux[255];
-    hsize_t i;
-    size_t  *src_offset;
-    int     has_fill=0;
+    /* check the arguments */
+    if (dset_name == NULL) 
+        goto out;
 
     /* get the number of records and fields  */
-    if (H5TBget_table_info ( loc_id, dset_name, &nfields, &nrecords ) < 0)
-        return -1;
-
-    src_offset = (size_t *)malloc((size_t)nfields * sizeof(size_t));
+    if(H5TBget_table_info(loc_id, dset_name, &nfields, &nrecords) < 0)
+        goto out;
 
-    if (src_offset == NULL )
-        return -1;
+    if(NULL == (src_offset = (size_t *)HDmalloc((size_t)nfields * sizeof(size_t))))
+        goto out;
 
     /* get field info */
-    if (H5TBget_field_info( loc_id, dset_name, NULL, NULL, src_offset, NULL ) < 0)
+    if(H5TBget_field_info(loc_id, dset_name, NULL, NULL, src_offset, NULL) < 0)
         goto out;
 
-    for ( i = 0; i < nfields; i++)
-    {
-        strcpy( attr_name, "FIELD_" );
-        sprintf( aux, "%d", (int)i );
-        strcat( attr_name, aux );
-        sprintf( aux, "%s", "_FILL" );
-        strcat( attr_name, aux );
+    for(i = 0; i < nfields; i++) {
+        HDsnprintf(attr_name, sizeof(attr_name), "FIELD_%d_FILL", (int)i);
 
         /* check if we have the _FILL attribute */
-        has_fill = H5LT_find_attribute( dset_id, attr_name );
+        if((has_fill = H5LT_find_attribute(dset_id, attr_name)) < 0)
+            goto out;
 
         /* get it */
-        if (has_fill == 1 )
-        {
-            if(H5LT_get_attribute_disk( dset_id, attr_name, dst_buf+src_offset[i] ) < 0)
+        if(has_fill)
+            if(H5LT_get_attribute_disk(dset_id, attr_name, dst_buf + src_offset[i]) < 0)
                 goto out;
-        }
-
-    }
+    } /* end for */
 
-    free( src_offset );
-
-    return has_fill;
+    ret_val = has_fill;
 
 out:
-    free( src_offset );
-    return -1;
-
-}
+    if(src_offset)
+        HDfree(src_offset);
+    
+    return ret_val;
+} /* end H5TBAget_fill() */
 
 
 /*-------------------------------------------------------------------------
@@ -3161,90 +3041,79 @@ out:
 *
 * Comments:
 *
-* Modifications:
-*  May 08, 2003
-*  In version 2.0 of Table, the number of records is stored as an
-*  attribute "NROWS"
-*  November 24, 2008
-*  In version 3.0 of Table, "NROWS" was deprecated
-*
-*
 *-------------------------------------------------------------------------
 */
-
-herr_t H5TBget_table_info ( hid_t loc_id,
+herr_t H5TBget_table_info(hid_t loc_id,
                            const char *dset_name,
                            hsize_t *nfields,
-                           hsize_t *nrecords )
+                           hsize_t *nrecords)
 {
-    hid_t      tid=-1;
-    hid_t      sid=-1;
-    hid_t      did=-1;
-    int        num_members;
+    hid_t      tid = H5I_BADID;
+    hid_t      sid = H5I_BADID;
+    hid_t      did = H5I_BADID;
     hsize_t    dims[1];
+    int        num_members;
+    herr_t     ret_val = -1;
+
+    /* check the arguments */
+    if (dset_name == NULL) 
+        goto out;
 
     /* open the dataset. */
-    if ((did = H5Dopen2(loc_id, dset_name, H5P_DEFAULT)) < 0)
-        return -1;
+    if((did = H5Dopen2(loc_id, dset_name, H5P_DEFAULT)) < 0)
+        goto out;
 
     /* get the datatype */
-    if ((tid = H5Dget_type( did )) < 0)
+    if((tid = H5Dget_type(did)) < 0)
         goto out;
 
     /* get the number of members */
-    if ((num_members = H5Tget_nmembers( tid )) < 0)
+    if((num_members = H5Tget_nmembers(tid)) < 0)
         goto out;
 
     /*-------------------------------------------------------------------------
     * get number of nfields
     *-------------------------------------------------------------------------
     */
-
-    if (nfields)
+    if(nfields)
         *nfields = (hsize_t)num_members;
 
-
     /*-------------------------------------------------------------------------
     * get number of records
     *-------------------------------------------------------------------------
     */
-
-    if (nrecords)
-    {
+    if(nrecords) {
         /* get the dataspace handle */
-        if ((sid = H5Dget_space( did )) < 0)
+        if((sid = H5Dget_space(did)) < 0)
             goto out;
 
         /* get dimension */
-        if (H5Sget_simple_extent_dims( sid, dims, NULL) < 0)
+        if(H5Sget_simple_extent_dims(sid, dims, NULL) < 0)
             goto out;
 
         /* terminate access to the dataspace */
-        if (H5Sclose( sid ) < 0)
+        if(H5Sclose(sid) < 0)
             goto out;
+        sid = H5I_BADID;
 
         *nrecords = dims[0];
-    }
+    } /* end if */
 
-    /* close */
-    if (H5Tclose( tid ) < 0)
-        goto out;
-    if (H5Dclose( did ) < 0)
-        return -1;
-
-    return 0;
+    ret_val = 0;
 
-    /* error zone */
 out:
-    H5E_BEGIN_TRY
-    {
-        H5Dclose(did);
-        H5Sclose(sid);
-        H5Tclose(tid);
-    } H5E_END_TRY;
-    return -1;
+    if(sid > 0)
+        if(H5Sclose(sid) < 0)
+            ret_val = -1;
+    if(tid > 0)
+        if(H5Tclose(tid) < 0)
+            ret_val = -1;
+    if(did > 0)
+        if(H5Dclose(did) < 0)
+            ret_val = -1;
 
-}
+    return ret_val;
+} /* end H5TBget_table_info() */
 
 /*-------------------------------------------------------------------------
 * Function: H5TBget_field_info
@@ -3259,100 +3128,105 @@ out:
 *
 * Comments:
 *
-* Modifications:
-*
-*
 *-------------------------------------------------------------------------
 */
-herr_t H5TBget_field_info( hid_t loc_id,
+herr_t H5TBget_field_info(hid_t loc_id,
                           const char *dset_name,
                           char *field_names[],
                           size_t *field_sizes,
                           size_t *field_offsets,
-                          size_t *type_size )
+                          size_t *type_size)
 {
-    hid_t         did = -1;    /* dataset ID */
-    hid_t         tid = -1;    /* file type ID */
-    hid_t         n_tid = -1;  /* native type ID */
-    hid_t         m_tid = -1;  /* member type ID */
-    hid_t         nm_tid = -1; /* native member ID */
-    hssize_t      nfields;
-    hssize_t      i;
+    hid_t       did = H5I_BADID;    /* dataset ID */
+    hid_t       tid = H5I_BADID;    /* file type ID */
+    hid_t       n_tid = H5I_BADID;  /* native type ID */
+    hid_t       m_tid = H5I_BADID;  /* member type ID */
+    hid_t       nm_tid = H5I_BADID; /* native member ID */
+    hssize_t    nfields;
+    hssize_t    i;
+    herr_t      ret_val = -1;
+
+    /* check the arguments */
+    if (dset_name == NULL) 
+        goto out;
 
     /* open the dataset. */
-    if ((did = H5Dopen2(loc_id, dset_name, H5P_DEFAULT)) < 0)
+    if((did = H5Dopen2(loc_id, dset_name, H5P_DEFAULT)) < 0)
         goto out;
 
     /* get the datatype */
-    if (( tid = H5Dget_type( did )) < 0)
+    if((tid = H5Dget_type(did)) < 0)
         goto out;
 
-    if ((n_tid = H5Tget_native_type(tid, H5T_DIR_DEFAULT)) < 0)
+    if((n_tid = H5Tget_native_type(tid, H5T_DIR_DEFAULT)) < 0)
         goto out;
 
     /* get the type size */
     if(type_size)
-        *type_size = H5Tget_size(n_tid);
+        if(0 == (*type_size = H5Tget_size(n_tid)))
+            goto out;
 
     /* get the number of members */
-    if (( nfields = H5Tget_nmembers( tid )) < 0)
+    if((nfields = H5Tget_nmembers(tid)) < 0)
         goto out;
 
     /* iterate tru the members */
-    for ( i = 0; i < nfields; i++) {
+    for(i = 0; i < nfields; i++) {
         /* get the member name */
         if(field_names) {
-            char          *member_name;
+            char   *member_name;
 
-            member_name = H5Tget_member_name(tid, (unsigned)i);
+            if(NULL == (member_name = H5Tget_member_name(tid, (unsigned)i)))
+                goto out;
             strcpy(field_names[i], member_name);
             H5free_memory(member_name);
         } /* end if */
 
         /* get the member type */
-        if(( m_tid = H5Tget_member_type( tid,(unsigned) i )) < 0)
+        if((m_tid = H5Tget_member_type(tid, (unsigned)i)) < 0)
             goto out;
-        if((nm_tid = H5Tget_native_type(m_tid,H5T_DIR_DEFAULT)) < 0)
+        if((nm_tid = H5Tget_native_type(m_tid, H5T_DIR_DEFAULT)) < 0)
             goto out;
 
         /* get the member size */
         if(field_sizes)
-            field_sizes[i] = H5Tget_size(nm_tid);
+            if(0 == (field_sizes[i] = H5Tget_size(nm_tid)))
+                goto out;
 
         /* get the member offset */
         if(field_offsets)
             field_offsets[i] = H5Tget_member_offset(n_tid, (unsigned) i);
 
         /* close the member types */
-        if (H5Tclose( m_tid ) < 0)
+        if(H5Tclose(m_tid) < 0)
             goto out;
-        if (H5Tclose( nm_tid ) < 0)
+        m_tid = H5I_BADID;
+        if(H5Tclose(nm_tid) < 0)
             goto out;
-    } /* i */
+        nm_tid = H5I_BADID;
+    } /* end for */
 
-    /* close */
-    if (H5Tclose( tid ) < 0)
-        goto out;
-    if (H5Tclose( n_tid ) < 0)
-        goto out;
-    if (H5Dclose( did ) < 0)
-        return -1;
-
-    return 0;
+    ret_val = 0;
 
-    /* error zone */
 out:
-    H5E_BEGIN_TRY
-    {
-        H5Dclose(did);
-        H5Tclose(tid);
-        H5Tclose(n_tid);
-        H5Tclose(m_tid);
-        H5Tclose(nm_tid);
-    } H5E_END_TRY;
-    return -1;
+    if(tid > 0)
+        if(H5Tclose(tid) < 0)
+            ret_val = -1;
+    if(n_tid > 0)
+        if(H5Tclose(n_tid) < 0)
+            ret_val = -1;
+    if(m_tid > 0)
+        if(H5Tclose(m_tid) < 0)
+            ret_val = -1;
+    if(nm_tid > 0)
+        if(H5Tclose(nm_tid) < 0)
+            ret_val = -1;
+    if(did > 0)
+        if(H5Dclose(did) < 0)
+            ret_val = -1;
 
-}
+    return ret_val;
+} /* end H5TBget_field_info() */
 
 /*-------------------------------------------------------------------------
 *
@@ -3366,7 +3240,7 @@ out:
 *
 * Purpose: Find a string field
 *
-* Return: Success: 0, Failure: -1
+* Return: Success: TRUE/FALSE, Failure: N/A
 *
 * Programmer: Pedro Vicente, pvn at ncsa.uiuc.edu
 *
@@ -3374,28 +3248,31 @@ out:
 *
 *-------------------------------------------------------------------------
 */
-
 static
-int H5TB_find_field( const char *field, const char *field_list )
+hbool_t H5TB_find_field(const char *field, const char *field_list)
 {
     const char *start = field_list;
     const char *end;
 
-    while ( (end = HDstrstr( start, "," )) != 0 )
-    {
+    /* check the arguments */
+    if (field == NULL) 
+      return FALSE;
+    if (field_list == NULL) 
+      return FALSE;
+
+    while((end = HDstrstr(start, ",")) != 0) {
         ptrdiff_t count = end - start;
 
-        if(HDstrncmp(start, field, (size_t)count) == 0 && (size_t)count == HDstrlen(field) )
-            return 1;
+        if(HDstrncmp(start, field, (size_t)count) == 0 && (size_t)count == HDstrlen(field))
+            return TRUE;
         start = end + 1;
-    }
-
-    if(HDstrcmp( start, field ) == 0 )
-        return 1;
+    } /* end while */
 
-    return -1;
-}
+    if(HDstrncmp(start, field, HDstrlen(field)) == 0)
+        return TRUE;
 
+    return FALSE;
+} /* end H5TB_find_field() */
 
 /*-------------------------------------------------------------------------
 * Function: H5TB_attach_attributes
@@ -3412,63 +3289,56 @@ int H5TB_find_field( const char *field, const char *field_list )
 *
 * Comments:
 *
-* Modifications:
-*
 *-------------------------------------------------------------------------
 */
-
 static
-herr_t H5TB_attach_attributes( const char *table_title,
+herr_t H5TB_attach_attributes(const char *table_title,
                               hid_t loc_id,
                               const char *dset_name,
                               hsize_t nfields,
-                              hid_t tid )
+                              hid_t tid)
 {
-
-    char    attr_name[255];
-    char    *member_name;
-    char    aux[255];
-    hsize_t i;
+    char     attr_name[255];
+    char    *member_name = NULL;
+    hsize_t  i;
+    herr_t   ret_val = -1;
 
     /* attach the CLASS attribute */
-    if (H5LTset_attribute_string( loc_id, dset_name, "CLASS", TABLE_CLASS ) < 0)
+    if(H5LTset_attribute_string(loc_id, dset_name, "CLASS", TABLE_CLASS) < 0)
         goto out;
 
     /* attach the VERSION attribute */
-    if (H5LTset_attribute_string( loc_id, dset_name, "VERSION", TABLE_VERSION ) < 0)
+    if(H5LTset_attribute_string(loc_id, dset_name, "VERSION", TABLE_VERSION) < 0)
         goto out;
 
     /* attach the TITLE attribute */
-    if (H5LTset_attribute_string( loc_id, dset_name, "TITLE", table_title ) < 0)
+    if(H5LTset_attribute_string(loc_id, dset_name, "TITLE", table_title) < 0)
         goto out;
 
     /* attach the FIELD_ name attribute */
-    for ( i = 0; i < nfields; i++)
-    {
-
+    for(i = 0; i < nfields; i++) {
         /* get the member name */
-        member_name = H5Tget_member_name( tid, (unsigned)i );
+        if(NULL == (member_name = H5Tget_member_name(tid, (unsigned)i)))
+            goto out;
 
-        strcpy( attr_name, "FIELD_" );
-        sprintf( aux, "%d", (int)i );
-        strcat( attr_name, aux );
-        sprintf( aux, "%s", "_NAME" );
-        strcat( attr_name, aux );
+        HDsnprintf(attr_name, sizeof(attr_name), "FIELD_%d_NAME", (int)i);
 
         /* attach the attribute */
-        if (H5LTset_attribute_string( loc_id, dset_name, attr_name, member_name ) < 0)
+        if(H5LTset_attribute_string(loc_id, dset_name, attr_name, member_name) < 0)
             goto out;
 
-        H5free_memory( member_name );
-
-    }
+        H5free_memory(member_name);
+        member_name = NULL;
+    } /* end for */
 
-    return 0;
+    ret_val = 0;
 
 out:
-    return -1;
+    if(member_name)
+        H5free_memory(member_name);
 
-}
+    return ret_val;
+} /* end H5TB_attach_attributes() */
 
 /*-------------------------------------------------------------------------
 * Function: H5TB_create_type
@@ -3483,11 +3353,8 @@ out:
 *
 * Comments:
 *
-* Modifications:
-*
 *-------------------------------------------------------------------------
 */
-
 static
 hid_t H5TB_create_type(hid_t loc_id,
                        const char *dset_name,
@@ -3496,85 +3363,75 @@ hid_t H5TB_create_type(hid_t loc_id,
                        const size_t *field_sizes,
                        hid_t ftype_id)
 {
-    hid_t    mem_type_id;
-    hid_t    mtype_id=-1;
-    hid_t    nmtype_id=-1;
+    hid_t    mem_type_id = H5I_BADID;
+    hid_t    mtype_id = H5I_BADID;
+    hid_t    nmtype_id = H5I_BADID;
     size_t   size_native;
-    hsize_t  nfields;
-    char     **fnames;
+    hsize_t  nfields = 0;
+    char   **fnames = NULL;
     unsigned i;
+    hid_t   ret_val = -1;
 
     /* get the number of fields  */
-    if (H5TBget_table_info(loc_id,dset_name,&nfields,NULL) < 0)
-        return -1;
+    if(H5TBget_table_info(loc_id, dset_name, &nfields, NULL) < 0)
+        goto out;
 
-    if ((fnames = (char**) malloc(sizeof(char*)*(size_t)nfields))==NULL)
-        return -1;
+    if(NULL == (fnames = (char**)HDcalloc(sizeof(char*), (size_t)nfields)))
+        goto out;
 
-    for ( i = 0; i < nfields; i++)
-    {
-        if ((fnames[i] = (char*) malloc(sizeof(char)*HLTB_MAX_FIELD_LEN))==NULL)
-        {
-            free(fnames);
-            return -1;
-        }
-    }
+    for(i = 0; i < nfields; i++)
+        if(NULL == (fnames[i] = (char*)HDmalloc(HLTB_MAX_FIELD_LEN)))
+            goto out;
 
     /* get field info */
-    if (H5TBget_field_info(loc_id,dset_name,fnames,NULL,NULL,NULL) < 0)
+    if(H5TBget_field_info(loc_id, dset_name, fnames, NULL, NULL, NULL) < 0)
         goto out;
 
     /* create the memory data type */
-    if ((mem_type_id=H5Tcreate(H5T_COMPOUND,type_size)) < 0)
+    if ((mem_type_id = H5Tcreate(H5T_COMPOUND, type_size)) < 0)
         goto out;
 
     /* get each field ID and adjust its size, if necessary */
-    for ( i = 0; i < nfields; i++)
-    {
-        if ((mtype_id = H5Tget_member_type(ftype_id,i)) < 0)
+    for(i = 0; i < nfields; i++) {
+        if((mtype_id = H5Tget_member_type(ftype_id, i)) < 0)
+            goto out;
+        if((nmtype_id = H5Tget_native_type(mtype_id, H5T_DIR_DEFAULT)) < 0)
             goto out;
-        if ((nmtype_id = H5Tget_native_type(mtype_id,H5T_DIR_DEFAULT)) < 0)
+        if(0 == (size_native = H5Tget_size(nmtype_id)))
             goto out;
-        size_native = H5Tget_size(nmtype_id);
-        if (field_sizes[i]!=size_native)
-        {
-            if (H5Tset_size(nmtype_id,field_sizes[i]) < 0)
+        if(field_sizes[i] != size_native)
+            if(H5Tset_size(nmtype_id, field_sizes[i]) < 0)
                 goto out;
-        }
-        if (H5Tinsert(mem_type_id,fnames[i],field_offset[i],nmtype_id) < 0)
+        if(H5Tinsert(mem_type_id, fnames[i], field_offset[i], nmtype_id) < 0)
             goto out;
-        if (H5Tclose(mtype_id) < 0)
+        if(H5Tclose(mtype_id) < 0)
             goto out;
-        if (H5Tclose(nmtype_id) < 0)
+        mtype_id = H5I_BADID;
+        if(H5Tclose(nmtype_id) < 0)
             goto out;
-    }
+        nmtype_id = H5I_BADID;
+    } /* end for */
 
-    for ( i=0; i<nfields; i++)
-    {
-        free (fnames[i]);
-    }
-    free (fnames);
-
-    return mem_type_id;
+    ret_val = mem_type_id;
 
-    /* error zone */
 out:
-    H5E_BEGIN_TRY
-    {
-        H5Tclose(mtype_id);
-        H5Tclose(nmtype_id);
-    } H5E_END_TRY;
-    for ( i=0; i<nfields; i++)
-    {
-        if (fnames[i])
-            free (fnames[i]);
-    }
-    if (fnames)
-        free (fnames);
-    return -1;
-
-}
+    if(fnames) {
+        for(i = 0; i < nfields; i++)
+            if(fnames[i])
+                HDfree(fnames[i]);
+        HDfree(fnames);
+    } /* end if */
+    if(mtype_id > 0)
+        if(H5Tclose(mtype_id) < 0)
+            ret_val = -1;
+    if(nmtype_id > 0)
+        if(H5Tclose(nmtype_id) < 0)
+            ret_val = -1;
+    if(ret_val < 0 && mem_type_id > 0)
+        H5Tclose(mem_type_id);
 
+    return ret_val;
+} /* end H5TB_create_type() */
 
 /*-------------------------------------------------------------------------
 *
@@ -3597,26 +3454,25 @@ out:
 *
 * Comments: Called by H5TBappend_records and H5PTappend_records
 *
-* Modifications:
-*
 *-------------------------------------------------------------------------
 */
-herr_t H5TB_common_append_records( hid_t dataset_id,
+herr_t H5TB_common_append_records(hid_t dataset_id,
                                   hid_t mem_type_id,
                                   size_t nrecords,
                                   hsize_t orig_table_size,
-                                  const void * buf)
+                                  const void *buf)
 {
-    hsize_t  count[1];
-    hsize_t  offset[1];
     hid_t    sid = H5I_BADID;
     hid_t    m_sid = H5I_BADID;
+    hsize_t  count[1];
+    hsize_t  offset[1];
     hsize_t  dims[1];
     hsize_t  mem_dims[1];
+    herr_t   ret_val = -1;
 
     /* extend the dataset */
     dims[0] = nrecords + orig_table_size;
-    if (H5Dset_extent(dataset_id, dims) < 0)
+    if(H5Dset_extent(dataset_id, dims) < 0)
         goto out;
 
     /* create a simple memory data space */
@@ -3625,37 +3481,31 @@ herr_t H5TB_common_append_records( hid_t dataset_id,
         goto out;
 
     /* get a copy of the new file data space for writing */
-    if ((sid = H5Dget_space(dataset_id)) < 0)
+    if((sid = H5Dget_space(dataset_id)) < 0)
         goto out;
 
     /* define a hyperslab in the dataset */
     offset[0] = orig_table_size;
     count[0] = nrecords;
-    if (H5Sselect_hyperslab( sid, H5S_SELECT_SET, offset, NULL, count, NULL) < 0)
+    if(H5Sselect_hyperslab(sid, H5S_SELECT_SET, offset, NULL, count, NULL) < 0)
         goto out;
 
     /* write the records */
-    if (H5Dwrite( dataset_id, mem_type_id, m_sid, sid, H5P_DEFAULT, buf ) < 0)
+    if(H5Dwrite(dataset_id, mem_type_id, m_sid, sid, H5P_DEFAULT, buf) < 0)
         goto out;
 
-    /* close */
-    if (H5Sclose( m_sid ) < 0)
-        goto out;
-    if (H5Sclose( sid ) < 0)
-        goto out;
-
-    return 0;
+    ret_val = 0;
 
 out:
-    H5E_BEGIN_TRY
-    {
-        H5Sclose(m_sid);
-        H5Sclose(sid);
-    }
-    H5E_END_TRY;
-    return -1;
-}
+    if(m_sid > 0)
+        if(H5Sclose(m_sid) < 0)
+            ret_val = -1;
+    if(sid > 0)
+        if(H5Sclose(sid) < 0)
+            ret_val = -1;
 
+    return ret_val;
+} /* end H5TB_common_append_records() */
 
 /*-------------------------------------------------------------------------
 * Function: H5TB_common_read_records
@@ -3671,60 +3521,53 @@ out:
 *
 * Comments: Called by H5TBread_records and H5PTread_records
 *
-* Modifications:
-*
-*
 *-------------------------------------------------------------------------
 */
-herr_t H5TB_common_read_records( hid_t dataset_id,
+herr_t H5TB_common_read_records(hid_t dataset_id,
                                 hid_t mem_type_id,
                                 hsize_t start,
                                 size_t nrecords,
                                 hsize_t table_size,
                                 void *buf)
 {
-    hsize_t  count[1];
-    hsize_t  offset[1];
     hid_t    sid = H5I_BADID;
     hid_t    m_sid = H5I_BADID;
+    hsize_t  count[1];
+    hsize_t  offset[1];
     hsize_t  mem_size[1];
+    herr_t   ret_val = -1;
 
     /* make sure the read request is in bounds */
-    if (start + nrecords > table_size )
+    if(start + nrecords > table_size)
         goto out;
 
     /* get the dataspace handle */
-    if ((sid = H5Dget_space( dataset_id )) < 0)
+    if((sid = H5Dget_space(dataset_id)) < 0)
         goto out;
 
     /* define a hyperslab in the dataset of the size of the records */
     offset[0] = start;
     count[0]  = nrecords;
-    if (H5Sselect_hyperslab( sid, H5S_SELECT_SET, offset, NULL, count, NULL) < 0)
+    if(H5Sselect_hyperslab(sid, H5S_SELECT_SET, offset, NULL, count, NULL) < 0)
         goto out;
 
     /* create a memory dataspace handle */
     mem_size[0] = count[0];
-    if ((m_sid = H5Screate_simple( 1, mem_size, NULL )) < 0)
-        goto out;
-    if ((H5Dread( dataset_id, mem_type_id, m_sid, sid, H5P_DEFAULT, buf)) < 0)
-        goto out;
-
-    /* close */
-    if (H5Sclose( m_sid ) < 0)
+    if((m_sid = H5Screate_simple(1, mem_size, NULL)) < 0)
         goto out;
-    if (H5Sclose( sid ) < 0)
+    if((H5Dread(dataset_id, mem_type_id, m_sid, sid, H5P_DEFAULT, buf)) < 0)
         goto out;
 
-    return 0;
+    ret_val = 0;
 
 out:
-    H5E_BEGIN_TRY
-    {
-        H5Sclose(sid);
-        H5Sclose(m_sid);
-    }
-    H5E_END_TRY;
-    return -1;
-}
+    if(m_sid > 0)
+        if(H5Sclose(m_sid) < 0)
+            ret_val = -1;
+    if(sid > 0)
+        if(H5Sclose(sid) < 0)
+            ret_val = -1;
+
+    return ret_val;
+} /* end H5TB_common_read_records() */
 
diff --git a/hl/src/Makefile.am b/hl/src/Makefile.am
index 1e781a9..09c24dc 100644
--- a/hl/src/Makefile.am
+++ b/hl/src/Makefile.am
@@ -33,7 +33,7 @@ libhdf5_hl_la_LDFLAGS= -version-info $(LT_VERS_INTERFACE):$(LT_VERS_REVISION):$(
 # List sources to include in the HDF5 HL Library.
 libhdf5_hl_la_SOURCES=H5DO.c H5DS.c H5IM.c H5LT.c H5LTanalyze.c H5LTparse.c H5PT.c H5TB.c
 
-# HDF5 HL library depends on HDF5 Library.
+# HDF5 HL library depends on HDF5 Library. 
 libhdf5_hl_la_LIBADD=$(LIBHDF5)
 
 # Public header files (to be installed)
diff --git a/hl/src/Makefile.in b/hl/src/Makefile.in
index 49ca65b..9e1af56 100644
--- a/hl/src/Makefile.in
+++ b/hl/src/Makefile.in
@@ -506,7 +506,6 @@ MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MPE = @MPE@
-MPI_GET_SIZE = @MPI_GET_SIZE@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -669,8 +668,10 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog
 
 # Add libtool shared library version numbers to the HDF5 library
 # See libtool versioning documentation online.
-LT_VERS_INTERFACE = 8
-LT_VERS_REVISION = 2 
+# After making changes, run bin/reconfigure to update other configure related
+# files like Makefile.in.
+LT_VERS_INTERFACE = 9
+LT_VERS_REVISION = 0
 LT_VERS_AGE = 0
 
 # This library is our main target.
@@ -682,7 +683,7 @@ libhdf5_hl_la_LDFLAGS = -version-info $(LT_VERS_INTERFACE):$(LT_VERS_REVISION):$
 # List sources to include in the HDF5 HL Library.
 libhdf5_hl_la_SOURCES = H5DO.c H5DS.c H5IM.c H5LT.c H5LTanalyze.c H5LTparse.c H5PT.c H5TB.c
 
-# HDF5 HL library depends on HDF5 Library.
+# HDF5 HL library depends on HDF5 Library. 
 libhdf5_hl_la_LIBADD = $(LIBHDF5)
 
 # Public header files (to be installed)
diff --git a/hl/test/Makefile.in b/hl/test/Makefile.in
index 0bb4abe..a002482 100644
--- a/hl/test/Makefile.in
+++ b/hl/test/Makefile.in
@@ -543,7 +543,6 @@ MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MPE = @MPE@
-MPI_GET_SIZE = @MPI_GET_SIZE@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
diff --git a/hl/test/gen_test_ds.c b/hl/test/gen_test_ds.c
index a60a560..2fc8140 100644
--- a/hl/test/gen_test_ds.c
+++ b/hl/test/gen_test_ds.c
@@ -255,13 +255,13 @@ herr_t test_cmp_scalename(hid_t fid, hid_t did, const char *name, const char *sc
     if((dsid = H5Dopen2(fid, name, H5P_DEFAULT)) >= 0) {
         if(H5DSis_attached(did, dsid, idx) == 1) {
             if((name_len=H5DSget_scale_name(dsid,NULL,(size_t)0)) > 0) {
-                name_out = (char*)malloc((size_t)name_len * sizeof (char));
+                name_out = (char*)HDmalloc((size_t)name_len * sizeof (char));
                 if(name_out != NULL) {
                     if(H5DSget_scale_name(dsid, name_out, (size_t)name_len) >= 0) {
                         if(strcmp(scalename,name_out)==0) {
                             ret_value = SUCCEED;
                         }
-                        free(name_out);
+                        HDfree(name_out);
                         name_out=NULL;
                     }
                 }
diff --git a/hl/test/test_ds.c b/hl/test/test_ds.c
index 2ea8801..d071fd5 100644
--- a/hl/test/test_ds.c
+++ b/hl/test/test_ds.c
@@ -29,8 +29,8 @@ static herr_t op_continue(hid_t did, unsigned dim, hid_t dsid, void *visitor_dat
 static herr_t op_stop(hid_t did, unsigned dim, hid_t dsid, void *visitor_data);
 
 /* prototypes */
-static int create_test_file(const char *fileext);
-static int open_test_file(const char *fileext);
+static hid_t create_test_file(const char *fileext);
+static hid_t open_test_file(const char *fileext);
 herr_t create_char_dataset(hid_t fid, const char *dsidx, int fulldims);
 herr_t create_short_dataset(hid_t fid, const char *dsidx, int fulldims);
 herr_t create_int_dataset(hid_t fid, const char *dsidx, int fulldims);
@@ -1105,10 +1105,10 @@ herr_t test_cmp_scalename(hid_t fid, hid_t did, const char *name, const char *sc
     if((dsid = H5Dopen2(fid, name, H5P_DEFAULT)) >= 0) {
         if(H5DSis_attached(did, dsid, idx) == 1) {
             if((name_len=H5DSget_scale_name(dsid,NULL,(size_t)0)) > 0) {
-	        name_out = (char*)HDmalloc(((size_t)name_len+1) * sizeof (char));
+	        name_out = (char*)HDmalloc((name_len+1) * sizeof (char));
                 if(name_out != NULL) {
                     if(H5DSget_scale_name(dsid, name_out, (size_t)name_len+1) >= 0) {
-                        if(HDstrncmp(scalename, name_out, (size_t)name_len)==0) {
+                        if(HDstrcmp(scalename,name_out)==0) {
                             ret_value = SUCCEED;
                         }
                         HDfree(name_out);
@@ -3126,7 +3126,7 @@ static int test_simple(void)
         goto out;
 
     /* allocate a  buffer */
-    name_out = (char*)HDmalloc(((size_t)name_len+1) * sizeof (char));
+    name_out = (char*)HDmalloc((name_len+1) * sizeof (char));
     if(name_out == NULL)
         goto out;
 
diff --git a/hl/test/test_dset_opt.c b/hl/test/test_dset_opt.c
index 9a0ffb0..bddd162 100644
--- a/hl/test/test_dset_opt.c
+++ b/hl/test/test_dset_opt.c
@@ -176,7 +176,7 @@ test_direct_chunk_write (hid_t file)
 	    direct_buf[i][j] = n++;
 
     /* Allocate output (compressed) buffer */
-    outbuf = malloc(z_dst_nbytes);
+    outbuf = HDmalloc(z_dst_nbytes);
     z_dst = (Bytef *)outbuf;
 
     /* Perform compression from the source to the destination buffer */
@@ -206,7 +206,7 @@ test_direct_chunk_write (hid_t file)
     }
 
     if(outbuf)
-        free(outbuf);
+        HDfree(outbuf);
 
     if(H5Fflush(dataset, H5F_SCOPE_LOCAL) < 0) 
         goto error;
@@ -249,7 +249,7 @@ test_direct_chunk_write (hid_t file)
 	    direct_buf[i][j] = i + j;
 
     /* Allocate output (compressed) buffer */
-    outbuf = malloc(z_dst_nbytes);
+    outbuf = HDmalloc(z_dst_nbytes);
     z_dst = (Bytef *)outbuf;
 
     /* Perform compression from the source to the destination buffer */
@@ -280,7 +280,7 @@ test_direct_chunk_write (hid_t file)
     }
 
     if(outbuf)
-        free(outbuf);
+        HDfree(outbuf);
 
     if(H5Fflush(dataset, H5F_SCOPE_LOCAL) < 0) 
         goto error;
@@ -329,7 +329,7 @@ error:
     } H5E_END_TRY;
 
     if(outbuf)
-        free(outbuf);
+        HDfree(outbuf);
 
     return 1;
 }
@@ -1016,13 +1016,13 @@ test_invalid_parameters(hid_t file)
 
     /* Check invalid dataset ID */ 
     H5E_BEGIN_TRY {
-        if((status = H5DOwrite_chunk(-1, dxpl, filter_mask, offset, buf_size, direct_buf)) != FAIL)
+        if((status = H5DOwrite_chunk((hid_t)-1, dxpl, filter_mask, offset, buf_size, direct_buf)) != FAIL)
             goto error;
     } H5E_END_TRY;
 
     /* Check invalid DXPL ID */
     H5E_BEGIN_TRY {
-        if((status = H5DOwrite_chunk(dataset, -1, filter_mask, offset, buf_size, direct_buf)) != FAIL)
+        if((status = H5DOwrite_chunk(dataset, (hid_t)-1, filter_mask, offset, buf_size, direct_buf)) != FAIL)
             goto error;
     } H5E_END_TRY;
 
diff --git a/hl/test/test_file_image.c b/hl/test/test_file_image.c
index 9729421..831fa23 100644
--- a/hl/test/test_file_image.c
+++ b/hl/test/test_file_image.c
@@ -77,23 +77,23 @@ test_file_image(size_t open_images, size_t nflags, unsigned *flags)
         FAIL_PUTS_ERROR("malloc() failed");
 
     /* allocate array of pointers for each of the open images */
-    if (NULL == (buf_ptr = (void **)malloc(sizeof(void *) * open_images)))
+    if (NULL == (buf_ptr = (void **)HDmalloc(sizeof(void *) * open_images)))
         FAIL_PUTS_ERROR("malloc() failed");
 
     /* allocate array to store the name of each of the open images */
-    if (NULL == (filename = (char **)malloc(sizeof(char *) * open_images)))
+    if (NULL == (filename = (char **)HDmalloc(sizeof(char *) * open_images)))
         FAIL_PUTS_ERROR("malloc() failed");
 
     /* allocate array to store the size of each of the open images */
-    if (NULL == (buf_size = (ssize_t *)malloc(sizeof(ssize_t) * open_images)))
+    if (NULL == (buf_size = (ssize_t *)HDmalloc(sizeof(ssize_t) * open_images)))
         FAIL_PUTS_ERROR("malloc() failed");
 
     /* allocate array for each of the file identifiers */
-    if (NULL == (file_id = (hid_t *)malloc(sizeof(hid_t) * open_images)))
+    if (NULL == (file_id = (hid_t *)HDmalloc(sizeof(hid_t) * open_images)))
         FAIL_PUTS_ERROR("malloc() failed");
 
     /* allocate array for each of the dataset identifiers */
-    if (NULL == (dset_id = (hid_t *)malloc(sizeof(hid_t) * open_images)))
+    if (NULL == (dset_id = (hid_t *)HDmalloc(sizeof(hid_t) * open_images)))
         FAIL_PUTS_ERROR("malloc() failed");
 
     TESTING("get file images");
diff --git a/hl/test/test_image.c b/hl/test/test_image.c
index 3109a36..5740d4b 100644
--- a/hl/test/test_image.c
+++ b/hl/test/test_image.c
@@ -783,9 +783,9 @@ out:
 *-------------------------------------------------------------------------
 */
 
-static int read_data( const char* fname, /*IN*/
+static int read_data(const char* fname, /*IN*/
                      hsize_t *width, /*OUT*/
-                     hsize_t *height /*OUT*/ )
+                     hsize_t *height /*OUT*/)
 {
     int    i, n;
     int    color_planes;
diff --git a/hl/test/test_lite.c b/hl/test/test_lite.c
index a76f3d7..9a15957 100644
--- a/hl/test/test_lite.c
+++ b/hl/test/test_lite.c
@@ -1238,6 +1238,41 @@ static int test_strings(void)
     }
     HDfree(dt_str);
 
+    /* Length of the character buffer is larger then needed */
+    str_len = str_len + 10;
+    if(NULL==(dt_str = (char*)HDcalloc(str_len, sizeof(char))))
+      goto out;
+    
+    if(H5LTdtype_to_text(dtype, dt_str, H5LT_DDL, &str_len)<0) {
+      HDfree(dt_str);
+      goto out;
+    }
+    if(HDstrncmp(dt_str, "H5T_STRING {\n      STRSIZE H5T_VARIABLE;\n      STRPAD H5T_STR_NULLPAD;\n      CSET H5T_CSET_ASCII;\n      CTYPE H5T_C_S1;\n   }", str_len-1)) {
+      printf("dt=\n%s\n", dt_str);
+      HDfree(dt_str);
+      goto out;
+    }
+
+    /* Length of the character buffer is smaller then needed */
+    str_len = 21;
+    if(NULL==(dt_str = (char*)HDcalloc(str_len, sizeof(char))))
+      goto out;
+
+    if(H5LTdtype_to_text(dtype, dt_str, H5LT_DDL, &str_len)<0) {
+      HDfree(dt_str);
+      goto out;
+    }
+    /* check the truncated string */
+    if(strlen(dt_str) != str_len-1) goto out;
+    str_len = strlen(dt_str);
+    if(HDstrncmp(dt_str, "H5T_STRING {\n      STRSIZE H5T_VARIABLE;\n      STRPAD H5T_STR_NULLPAD;\n      CSET H5T_CSET_ASCII;\n      CTYPE H5T_C_S1;\n   }", str_len)) {
+      printf("dt=\n%s\n", dt_str);
+      HDfree(dt_str);
+      goto out;
+    }
+
+    HDfree(dt_str);
+
     if(H5Tclose(dtype)<0)
         goto out;
 
@@ -1245,6 +1280,9 @@ static int test_strings(void)
     return 0;
 
 out:
+    if(dt_str)
+      HDfree(dt_str);
+
     H5_FAILED();
     return -1;
 }
@@ -1820,7 +1858,6 @@ out:
 static int test_valid_path(void)
 {
   hid_t file_id, group;
-  FILE *fp = NULL;
   htri_t path_valid;
   const char *data_string_in = "test";
   
diff --git a/hl/test/test_table.c b/hl/test/test_table.c
index 4b62ac5..4eb5819 100644
--- a/hl/test/test_table.c
+++ b/hl/test/test_table.c
@@ -1195,14 +1195,19 @@ static int test_table(hid_t fid, int do_write)
             goto out;
     }
 
-    /* read the "Pressure" field */
     start    = 0;
     nrecords = NRECORDS;
+
+    /* read an invalid field, should fail */
+    if ( H5TBread_fields_name(fid,"table10","DoesNotExist",start,nrecords,
+        sizeof(float),0,field_sizes_pre,pressure_out) >=0)
+      goto out;
+    
+    /* read the "Pressure" field */
     if ( H5TBread_fields_name(fid,"table10","Pressure",start,nrecords,
         sizeof(float),0,field_sizes_pre,pressure_out)<0)
         goto out;
 
-
     /* Compare the extracted table with the initial values */
     for( i = 0; i < NRECORDS; i++ )
     {
diff --git a/hl/tools/Makefile.in b/hl/tools/Makefile.in
index 5247b54..a34e225 100644
--- a/hl/tools/Makefile.in
+++ b/hl/tools/Makefile.in
@@ -505,7 +505,6 @@ MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MPE = @MPE@
-MPI_GET_SIZE = @MPI_GET_SIZE@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
diff --git a/hl/tools/gif2h5/Makefile.in b/hl/tools/gif2h5/Makefile.in
index 0652ddb..1c9be68 100644
--- a/hl/tools/gif2h5/Makefile.in
+++ b/hl/tools/gif2h5/Makefile.in
@@ -519,7 +519,6 @@ MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MPE = @MPE@
-MPI_GET_SIZE = @MPI_GET_SIZE@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
diff --git a/html/ADGuide.html b/html/ADGuide.html
index 3641156..ed51aac 100644
--- a/html/ADGuide.html
+++ b/html/ADGuide.html
@@ -28,235 +28,269 @@
   * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  -->
 <!-- #EndLibraryItem --><!-- #BeginLibraryItem "/ed_libs/NavBar_ADevG.lbi" -->
-<hr>
+<hr />
 <center>
-<table border=0 width=98%>
-<tr><td valign=top align=left>
+<table border="0" width="98%">
+<tr><td valign="top" align="left">
     <a href="index.html">HDF5 documents and links</a> <br>
     <a href="H5.intro.html">Introduction to HDF5</a> <br>
     <!--
     <a href="Glossary.html">Glossary</a><br>
     -->
 </td>
-<td valign=top align=right>
+<td valign="top" align="right">
     <a href="UG/index.html">HDF5 User's Guide</a> <br>
     <a href="RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>
     <a href="ADGuide.html">HDF5 Application Developer's Guide</a> <br>
 </td></tr>
 </table>
 </center>
-<hr>
+<hr />
 <!-- #EndLibraryItem --><center>
 <h1>HDF5 Application Developer's Guide</h1>
 </center>
 
 
 <center>
-<table border=0 width=80%>
+<table border="0" width="80%">
+
 
+<tr>
+<td width="35%"> </td>
+<td width="5%"> </td>
+<td width="60%"> </td>
+</tr>
 
-      <tr><td valign=top colspan=3>
+
+      <tr><td valign="top" colspan="3">
         These documents provide information of particular interest to 
-        developers of applications that employ the HDF5 library.
+        developers of applications that employ the HDF5 Library.
         <p>
         </td></tr>
 
-      <tr><td colspan=3> </td></tr>
+      <tr><td colspan="3"> </td></tr>
 
 <!--
-      <tr><td valign=top><a href="XML_DTD.html">The XML DTD </a>
+      <tr><td valign="top"><a href="XML_DTD.html">The XML DTD </a>
           <br>   <a href="XML_DTD.html">for HDF5</a>
-	</td><td></td><td valign=top>The standard HDF5 XML DTD and 
+	</td><td></td><td valign="top">The standard HDF5 XML DTD and 
           design notes.
         </td></tr>
 
-      <tr><td colspan=3> </td></tr>
+      <tr><td colspan="3"> </td></tr>
 -->
 
-      <tr><td valign=top width=35%><a href="ADGuide/Changes.html">
-          HDF5 Library Changes</a>
-          <br>   
-          <a href="ADGuide/Changes.html">from Release to Release</a>
-	</td><td></td><td valign=top>A summary of changes in the HDF5 
-          library
+      <tr><td colspan="3"> </td></tr>
+
+      <tr><td colspan="3">
+      <p style="font-size: x-large">Release Related</p>
+      </td></tr>
+
+      <tr><td colspan="3"> </td></tr>
+
+
+
+
+      <tr><td valign="top"><a href="ADGuide/Changes.html">
+          HDF5 Library Changes from Release to Release</a>
+	</td><td></td><td valign="top">A summary of changes in the HDF5 
+          Library
         </td></tr>
 
-      <tr><td colspan=3> </td></tr>
+      <tr><td colspan="3"> </td></tr>
 
-<!--
-      <tr><td valign=top width=35%><a href="http://www.hdfgroup.org/HDF5/doc_resource/Supported_Configs/SuppConfigFeats-R180.html" target="External">Supported Configuration</a>
-          <br>   
-          <a href="http://www.hdfgroup.org/HDF5/doc_resource/Supported_Configs/SuppConfigFeats-R180.html" target="External">Features Summary</a>
-        </td><td></td><td valign=top>A summary of configuration features
-          supported in this release
-            
-          <em>(external link)</em>
+      <tr><td valign="top">
+      <a href="http://www.hdfgroup.org/ftp/HDF5/current/src/unpacked/release_docs/RELEASE.txt" 
+      target="ExtWin">RELEASE.txt</a>
+        </td><td></td><td valign="top">
+          Technical notes regarding the current release of the HDF5 Library* 
         </td></tr>
 
-      <tr><td colspan=3> </td></tr>
--->
+      <tr><td colspan="3"> </td></tr>
 
+      <tr><td valign="top">
+      <a href="http://www.hdfgroup.org/ftp/HDF5/current/src/unpacked/release_docs/HISTORY-1_8.txt" 
+      target="ExtWin">HISTORY-1_8.txt</a>
+        </td><td></td><td valign="top">
+          Technical notes for previous 1.8 releases of the HDF5 Library by release*
+        </td></tr>
 
+      <tr><td colspan="3"> </td></tr>
 
-      <tr><td valign=top width=35%>
-          Moving from 1.6.x to 1.8.x:
-          <ul>
-              <li><a href="ADGuide/WhatsNew180.html">What’s New in
-                  <br>HDF5 Release 1.8.0</a>
-          </ul>
-	</td><td></td><td valign=top>
-           
-          <br> 
-          <br>
-          A brief summary of new features in this HDF5 release
+      <tr><td valign="top">
+      <a href="http://www.hdfgroup.org/ftp/HDF5/current/src/unpacked/release_docs/HISTORY-1_0-1_8_0_rc3.txt" 
+      target="ExtWin">HISTORY-1_0-1_8_0_rc3.txt</a>
+        </td><td></td><td valign="top">
+          Technical notes for releases prior to the 1.8.0 release of the 
+          HDF5 Library by release*
         </td></tr>
 
-      <tr><td valign=top width=35%>
-          <ul>
-              <li><a href="ADGuide/CompatFormat180.html">Release 1.8.0 and Data
-                  <br>Format Compatibility</a>
-          </ul>
-        </td><td></td><td valign=top>“New Features in HDF5 
-          Release 1.8.0 and Format Compatibility Considerations”
-          <br>
-          A discussion of data format compatibility issues 
-          to consider in the transition to Release 1.8.0
+      <tr><td colspan="3"> </td></tr>
+
+      <tr><td valign="top"> 
+        </td><td></td><td valign="top">
+        <p style="font-size: small">
+        * RELEASE.txt, HISTORY-1_8.txt, and HISTORY-1_0-1_8_0_rc3.txt are 
+        located at the top level of the HDF5 source code tree in the 
+        release_docs directory of the distributed HDF5 source code.</p>
         </td></tr>
 
-      <tr><td valign=top width=35%>
-          <ul>
-              <li><a href="RM/APICompatMacros.html">API Compatibility Macros
-                  in HDF5</a>
-          </ul>
-        </td><td></td><td valign=top>
-          Interface compatibility issues
+      <tr><td colspan="3"> </td></tr>
+      <tr><td colspan="3"> </td></tr>
+      <tr><td colspan="3"> </td></tr>
+
+
+      <tr><td colspan="3">
+        <p style="font-size: x-large">Moving from 1.6.x to 1.8.x</p>
         </td></tr>
 
+      <tr><td colspan="3"> </td></tr>
 
+      <tr><td valign="top">
+        <a href="ADGuide/WhatsNew180.html">What’s New in HDF5 Release 1.8.0</a>
+        </td><td></td><td valign="top">
+        A brief summary of new features in the 1.8.0 HDF5 release
+        </td></tr>
 
+      <tr><td colspan="3"> </td></tr>
 
-      <tr><td colspan=3> </td></tr>
+      <tr><td valign="top">
+        <a href="ADGuide/CompatFormat180.html">Release 1.8.0 and Data
+        Format Compatibility</a>
+        </td><td></td><td valign="top">“New Features in HDF5 
+        Release 1.8.0 and Format Compatibility Considerations”: 
+        A discussion of data format compatibility issues to consider in 
+        the transition to Release 1.8.0
+        </td></tr>
+
+      <tr><td colspan="3"> </td></tr>
 
-      <tr><td valign=top width=35%><a href="ADGuide/ImageSpec.html" 
-          target="External">HDF5 Image and</a>
+      <tr><td valign="top">
+        <a href="RM/APICompatMacros.html">API Compatibility Macros in HDF5</a>
+        </td><td></td><td valign="top">
+          Interface compatibility issues
+        </td></tr>
+<!--
+      <tr><td valign="top"><a href="http://www.hdfgroup.org/HDF5/doc_resource/Supported_Configs/SuppConfigFeats-R180.html" target="External">Supported Configuration</a>
           <br>   
-          <a href="ADGuide/ImageSpec.html" 
-          target="External">Palette Specification</a>
-        </td><td></td><td valign=top>A specification for the implementation
+          <a href="http://www.hdfgroup.org/HDF5/doc_resource/Supported_Configs/SuppConfigFeats-R180.html" target="External">Features Summary</a>
+        </td><td></td><td valign="top">A summary of configuration features
+          supported in this release
+            
+        </td></tr>
+
+      <tr><td colspan="3"> </td></tr>
+-->
+
+
+
+      <tr><td colspan="3"> </td></tr>
+      <tr><td colspan="3"> </td></tr>
+      <tr><td colspan="3"> </td></tr>
+
+      <tr><td colspan="3">
+      <p style="font-size: x-large">General</p>
+      </td></tr>
+
+      <tr><td colspan="3"> </td></tr>
+
+      <tr><td valign="top"><a href="ADGuide/ImageSpec.html" 
+          target="External">HDF5 Image and Palette Specification</a>
+        </td><td></td><td valign="top">A specification for the implementation
           of images and palettes in HDF5 applications
         </td></tr>
 
-      <tr><td colspan=3> </td></tr>
+      <tr><td colspan="3"> </td></tr>
       
-      <tr><td valign=top width=35%><a href="ADGuide/H4toH5Mapping.pdf">
-           Mapping HDF4 Objects</a>
-           <br>   
-           <a href="ADGuide/H4toH5Mapping.pdf">to HDF5 Objects</a>
-        </td><td></td><td valign=top>Guidelines for translating
+      <tr><td valign="top"><a href="ADGuide/H4toH5Mapping.pdf">
+           Mapping HDF4 Objects to HDF5 Objects</a>
+        </td><td></td><td valign="top">Guidelines for translating
            HDF4 file objects into valid HDF5 file objects  
-           <i>(PDF format only)</i>
+           <i>(PDF)</i>
         </td></tr>
 
-      <tr><td colspan=3> </td></tr>
+      <tr><td colspan="3"> </td></tr>
 
-      <tr><td valign=top width=35%><a href="http://www.hdfgroup.org/HDF5/doc_resource/H5Fill_Values.html" target="External">
-          Fill Value and Space</a>
-          <br>   
-          <a href="http://www.hdfgroup.org/HDF5/doc_resource/H5Fill_Values.html" target="External">Allocation Issues</a>
-	</td><td></td><td valign=top>A summary of HDF5 fill value and storage allocation issues  
-          <em>(external link)</em>
-        </td></tr>
+      <tr><td valign="top">
+      <a href="http://www.hdfgroup.org/HDF5/doc_resource/H5Fill_Values.html" 
+      target="External">
+      Fill Value and Space Allocation Issues</a>
+      </td><td></td><td valign="top">A summary of HDF5 fill value and 
+      storage allocation issues  
+      </td></tr>
 
-      <tr><td valign=top width=35%><a href="http://www.hdfgroup.org/HDF5/doc_resource/H5Fill_Behavior.html" target="External">
-          Fill Value and Space</a>
-          <br>   
-          <a href="http://www.hdfgroup.org/HDF5/doc_resource/H5Fill_Behavior.html" target="External">Allocation Behavior</a>
-	</td><td></td><td valign=top>A table summarizing of the behavioral interactions 
-	   of HDF5 fill value and storage allocation settings  
-          <em>(external link)</em>
-        </td></tr>
+      <tr><td colspan="3"> </td></tr>
 
-      <tr><td colspan=3> </td></tr>
+      <tr><td valign="top">
+      <a href="http://www.hdfgroup.org/HDF5/doc_resource/H5Fill_Behavior.html" 
+      target="External">
+      Fill Value and Space Allocation Behavior</a>
+      </td><td></td><td valign="top">A table summarizing of the 
+      behavioral interactions of HDF5 fill value and storage allocation 
+      settings  
+      </td></tr>
 
-      <tr><td valign=top width=35%><a href="http://www.hdfgroup.org/doc_resource/SZIP/index.html" target="External">
-          SZIP Compression</a>
-          <br>   
-	  <a href="http://www.hdfgroup.org/doc_resource/SZIP/index.html" target="External">
-          in HDF5</a>
-	</td><td></td><td valign=top>A description of SZIP compression in HDF5, 
-	  <code>H5Pset_szip</code>, terms of use and copyright notice,
-	  and references  
-          <em>(external link)</em>
-        </td></tr>
-      <tr><td colspan=3> </td></tr>
-
-      <tr><td valign=top width=35%><a href="http://www.hdfgroup.org/HDF5/doc_resource/H5Shuffle_Perf.pdf" target="External">
-          Shuffle Performance</a>
-	</td><td></td><td valign=top>An analysis of bzip and gzip compression 
-	  performance in HDF5 with and without the shuffle filter, 
-	  <code>H5Pset_shuffle</code>  
-          <em>(external link)</em>
-        </td></tr>
-	
-      <tr><td colspan=3> </td></tr>
-
-      <tr><td valign=top width=35%><a href="http://www.hdfgroup.org/HDF5/doc_resource/H5Generic_Props.html" target="External">
-          Generic Properties</a>
-	</td><td></td><td valign=top>An overview of and the motivation for 
-	  the implementation and use of generic properties in HDF5  
-          <em>(external link)</em>
-        </td></tr>
+      <tr><td colspan="3"> </td></tr>
 
-      <tr><td colspan=3> </td></tr>
+      <tr><td valign="top">
+      <a href="http://www.hdfgroup.org/doc_resource/SZIP/index.html" 
+      target="External">
+      SZIP Compression in HDF5</a>
+      </td><td></td><td valign="top">A description of SZIP compression in 
+      HDF5, <code>H5Pset_szip</code>, terms of use and copyright notice, 
+      and references  
+      </td></tr>
 
-      <tr><td valign=top width=35%><a href="http://www.hdfgroup.org/HDF5/doc_resource/H5Checksum/ChecksumProposal.htm" target="External">
-          Error-detecting Codes</a>
-          <br>   
-          <a href="http://www.hdfgroup.org/HDF5/doc_resource/H5Checksum/ChecksumProposal.htm" target="External">
-          for HDF5</a>
-	</td><td></td><td valign=top>A discussion of error-detection codes, 
-	  e.g., checksums, in HDF5  
-          <em>(external link)</em>
-        </td></tr>
+      <tr><td colspan="3"> </td></tr>
+
+      <tr><td valign="top">
+      <a href="http://www.hdfgroup.org/HDF5/doc_resource/H5Shuffle_Perf.pdf" 
+      target="External">
+      Shuffle Performance</a>
+      </td><td></td><td valign="top">An analysis of bzip and gzip compression 
+      performance in HDF5 with and without the shuffle filter, 
+      <code>H5Pset_shuffle</code>  
 
-      <tr><td valign=top width=35%><a href="http://www.hdfgroup.org/HDF5/doc_resource/H5Checksum/EDC_spec.htm" target="External">
-          Fletcher32 Checksum</a>
-          <br>   
-	  <a href="http://www.hdfgroup.org/HDF5/doc_resource/H5Checksum/EDC_spec.htm" target="External">
-          Design and Spec</a>
-	</td><td></td><td valign=top>Design, API function specification, and test  
-          for the Fletcher32 checksum implementation in HDF5  
-          <em>(external link)</em>
-        </td></tr>
-	
-      <tr><td colspan=3> </td></tr>
-
-      <tr><td colspan=3>
-      <hr>
-      The HDF5 source code, as distributed to users and developers,
-      contains two additional files that will be of interest to readers
-      of this document.  Both files are located at the top level of the
-      HDF5 source code tree and are duplicated here for your reference:
       </td></tr>
 
-      <tr><td valign=top>
-          <a href="ADGuide/RELEASE.txt" target="ExtWin">RELEASE.txt</a>
-        </td><td></td><td valign=top>
-          Technical notes regarding this release
-        </td></tr>
+      <tr><td colspan="3"> </td></tr>
 
-      <tr><td valign=top>
-          <a href="ADGuide/HISTORY.txt" target="ExtWin">HISTORY.txt</a>
-        </td><td></td><td valign=top>
-          A release-by-release history of the HDF5 library
-        </td></tr>
+      <tr><td valign="top">
+      <a href="http://www.hdfgroup.org/HDF5/doc_resource/H5Generic_Props.html" 
+      target="External">
+      Generic Properties</a>
+      </td><td></td><td valign="top">An overview of and the motivation for 
+      the implementation and use of generic properties in HDF5  
+      </td></tr>
+
+      <tr><td colspan="3"> </td></tr>
+
+      <tr><td valign="top">
+      <a href="http://www.hdfgroup.org/HDF5/doc_resource/H5Checksum/ChecksumProposal.htm" 
+      target="External">
+      Error-detecting Codes for HDF5</a>
+      </td><td></td><td valign="top">A discussion of error-detection codes, 
+      for example, checksums, in HDF5  
+      </td></tr>
+
+      <tr><td colspan="3"> </td></tr>
+
+      <tr><td valign="top">
+      <a href="http://www.hdfgroup.org/HDF5/doc_resource/H5Checksum/EDC_spec.htm" 
+      target="External">
+      Fletcher32 Checksum Design and Spec</a>
+      </td><td></td><td valign="top">Design, API function specification, and test  
+      for the Fletcher32 checksum implementation in HDF5  
+      </td></tr>
+
+      <tr><td colspan="3"> </td></tr>
 
       </td></tr>
 
 <!--
-      <tr><td valign=top><a href="xxx.html">xxx</a>
+      <tr><td valign="top"><a href="xxx.html">xxx</a>
           <br>   <a href="xxx.html">xxx</a>
-	</td><td></td><td valign=top>xxx
+	</td><td></td><td valign="top">xxx
           <br>   
           xxx
         </td></tr>
@@ -266,55 +300,38 @@
 </table>
 </center>
 
-<br>
-<br>
+<br />
+<br />
 
 
 <!-- #BeginLibraryItem "/ed_libs/NavBar_ADevG.lbi" -->
 <hr>
 <center>
-<table border=0 width=98%>
-<tr><td valign=top align=left>
+<table border="0" width="98%">
+<tr><td valign="top" align="left">
     <a href="index.html">HDF5 documents and links</a> <br>
     <a href="H5.intro.html">Introduction to HDF5</a> <br>
     <!--
     <a href="Glossary.html">Glossary</a><br>
     -->
 </td>
-<td valign=top align=right>
-    <a href="UG/index.html">HDF5 User's Guide</a> <br>
-    <a href="RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>
-    <a href="ADGuide.html">HDF5 Application Developer's Guide</a> <br>
+<td valign="top" align="right">
+    <a href="UG/index.html">HDF5 User's Guide</a> <br />
+    <a href="RM/RM_H5Front.html">HDF5 Reference Manual</a> <br />
+    <a href="ADGuide.html">HDF5 Application Developer's Guide</a> <br />
 </td></tr>
 </table>
 </center>
 <hr>
-<!-- #EndLibraryItem --><address>
-
-<!-- #BeginLibraryItem "/ed_libs/Footer.lbi" -->
-<address>
-<table width="100%" border="0">
-  <tr valign="top">
-      <td align="left">
-          <address>
-          The HDF Group Help Desk: <img src="Graphics/help.png" align=top height=16>
-          <br>
-          Describes HDF5 Release 1.8.13, May 2014.
-          </address>
-      </td><td width="5%"> </td>
-      <td align="right">
-          <a href="Copyright.html">Copyright</a> by
-          <a href="http://www.hdfgroup.org">The HDF Group</a>
-          <br>
-          and the Board of Trustees of the University of Illinois
-      </td>   
-  </tr>   
-</table>
-</address>
 <!-- #EndLibraryItem -->
+
+<?php include("./ed_libs/Footer.htm"); ?>
  
-Last modified:  15 May 2014
+Last modified:  13 November 2014
 
+<br />
+<br />
+<br />
 
 </body>
 </html>
diff --git a/html/ADGuide/Changes.html b/html/ADGuide/Changes.html
index fafae9c..6bbbd1e 100755
--- a/html/ADGuide/Changes.html
+++ b/html/ADGuide/Changes.html
@@ -24,28 +24,31 @@
   * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  -->
 <!-- #EndLibraryItem --><!-- #BeginLibraryItem "/ed_libs/NavBar_ADevG.lbi" -->
-<hr>
+<hr />
 <center>
-<table border=0 width=98%>
-<tr><td valign=top align=left>
+<table border="0" width="98%">
+<tr><td valign="top" align="left">
     <a href="../index.html">HDF5 documents and links</a> <br>
     <a href="../H5.intro.html">Introduction to HDF5</a> <br>
     <!--
     <a href="Glossary.html">Glossary</a><br>
     -->
 </td>
-<td valign=top align=right>
+<td valign="top" align="right">
     <a href="../UG/index.html">HDF5 User's Guide</a> <br>
     <a href="../RM/RM_H5Front.html">HDF5 Reference Manual</a> <br>
     <a href="../ADGuide.html">HDF5 Application Developer's Guide</a> <br>
 </td></tr>
 </table>
 </center>
-<hr>
-<!-- #EndLibraryItem --><center>
+<hr />
+<!-- #EndLibraryItem -->
+
+<br />
+<center>
 <h1>HDF5 Software Changes from Release to Release</h1>
 </center>
-
+<br />
 
 
 <!-- *********************************************************** -->
@@ -56,27 +59,100 @@
 <!-- *********************************************************** -->
 
 
+<p>This document is designed to help developers maintain 
+HDF5-based applications as they are used with successive releases
+of HDF5.
+To that end, this document lists the changes at each release that
+a maintenance developer needs to be aware of:
+<ul>
+    <li>New or changed features or tools
+    <li>Syntax and behavioral changes in the existing application 
+        programming interface (the API) 
+    <li>Certain types of changes in configuration or build processes 
+</ul></p>
+
+<p>Bugfixes and performance enhancements in the C library 
+are automatically picked up by the C++ and Fortran libraries.  
+The Java library will pick up the same bugfixes and enhancements
+at its next subsequent release as it is always built with
+the latest released version of the C library.
+
+<p>The release notes also list changes made to the library, but these 
+notes tend to be more at a more detail oriented level. The release 
+notes may include new features, bugs fixed, supported configuration 
+features, platforms on which the library has been tested, and known 
+problems. The release note files are listed below and can be found 
+at the top level of the HDF5 source code tree in the release_docs 
+directory of the distributed HDF5 source code.</p>
+
+<dir>
+<table>
+
+<tr><td style="padding-right:10px">
+    <a href="http://www.hdfgroup.org/ftp/HDF5/current/src/unpacked/release_docs/RELEASE.txt" 
+    target="ExtWin"><code>RELEASE.txt</code></a></td>
+    <td style="padding-right:10px">Technical notes regarding the current release 
+    of the HDF5 Library 
+    </td></tr>
+
+<tr><td style="padding-right:10px">
+    <a href="http://www.hdfgroup.org/ftp/HDF5/current/src/unpacked/release_docs/HISTORY-1_8.txt" 
+    target="ExtWin"><code>HISTORY-1_8.txt</code></a></td>
+    <td style="padding-right:10px">Technical notes for previous 1.8 
+    releases of the HDF5 Library by release
+    </td></tr>
+
+<tr valign="top"><td style="padding-right:10px">
+    <a href="http://www.hdfgroup.org/ftp/HDF5/current/src/unpacked/release_docs/HISTORY-1_0-1_8_0_rc3.txt" 
+    target="ExtWin"><code>HISTORY-1_0-1_8_0_rc3.txt</code></a>
+    <br >
+    <code>                         </code></td>
+    <td style="padding-right:10px">Technical notes for releases prior 
+    to the 1.8.0 release of the HDF5 Library by release
+    </td></tr>
 
-This document is provided to assist application developers who must keep 
-an application synchronized with the HDF5 Library or related software.
+</table>
+</dir>
 
+<p><strong>Are you porting an existing application from 
+HDF5 Release 1.6.x to HDF5 Release 1.8.x?</strong>
+<br />
+If you are porting an existing application 
+from any HDF5 version in the Release 1.6.x series 
+to any version in the Release 1.8.x series, 
+refer to “<a href="../ADGuide/WhatsNew180.html">What's New in 
+HDF5 1.8.0</a>”.
+This document, with the documents linked in its introduction,
+provide a guide to the changes introduced in the transition 
+from the 1.6.x series to HDF5 Release 1.8.0
+and discussions of various compatibility issues.</p>
 
-<!-- ============= REVEAL THE FOLLOWING FOR RELEASE 1.8.14 =============
-<a name="1814">
-<h2>Release 1.8.14 of November 2014 (current release) versus Release 1.8.13</h2>
-</a>
-<dir>
+<br />
+
+
+<!-- TABLE TO REGULATE PRINTED PAGE WIDTH -->
+<!--
+<table><tr><td>
+<font color="white">
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+</font>
+</td></tr></table>
+-->
+<!-- END REGULATING TABLE -->
 
-This section lists interface-level changes and 
-other user-visible changes in behavior 
-in the transition from HDF5 Release 1.8.13 to Release 1.8.14.
 
+<!-- MATERIAL DELAYED FROM 18.14 TO 1.8.15
+<a name="1815">
+<h2>Release 1.8.15 of May 2015 (current release) versus Release 1.8.14</h2>
+</a>
+<dir>
 
     <h3>New and Changed Functions, Classes, Subroutines, Wrappers, 
         and Macros</h3>
         <dir>
         <dl>    
             <dt><strong>In the C Interface (main library)</strong>
+                </dt>
 
             <dt>The following new C functions have been added:
                 </dt>
@@ -89,194 +165,166 @@ in the transition from HDF5 Release 1.8.13 to Release 1.8.14.
                     <code>H5Dread_multi</code></a>
                 <li>Related struct: <code>H5D_rw_multi_t</code>
                 </ul>
-                <br />
                 </dd>
-
-
-        </dl>
+        </dl>    
         </dir>
-</dir>
-============= REVEAL THE ABOVE FOR RELEASE 1.8.14 ============= -->
 
+</dir>
+ -->
+        
 
-<a name="1813">
-<h2>Release 1.8.13 of May 2014 (current release) versus Release 1.8.12</h2>
+<a name="1814">
+<h2>Release 1.8.14 of November 2014 (current release) versus Release 1.8.13</h2>
 </a>
 <dir>
 
 This section lists interface-level changes and 
 other user-visible changes in behavior 
-in the transition from HDF5 Release 1.8.12 to Release 1.8.13.
+in the transition from HDF5 Release 1.8.13 to Release 1.8.14.
 
 
     <h3>New and Changed Functions, Classes, Subroutines, Wrappers, 
         and Macros</h3>
         <dir>
         <dl>    
-            <dt><strong>In the C Interface (main library)</strong>
+            <dt><strong>In the main library C Interface</strong>
+                </dt>
 
+            <dt>No new C functions have been added.
+                </dt>
 <!--
-            <dt>The following new high-level C functions have been added:
+            <dt>The following new C functions have been added:
                 </dt>
-            <dd>
-                <ul>
-                <li><a href="../HL/RM_HDF5Optimized.html#H5DOwrite_chunk">
-                    <code>__</code></a> 
-                </ul>
-                    This function ..
-                    <p>
-                    See “<a 
-                    href="../Advanced/DirectChunkWrite/index.html">__
-                    </a>” for additional information.
+            <dd>Names and descriptions.
                 </dd>
 -->
 
             <p>
-            <dt>The following new C functions have been added:
+            <dt>The behavior of the following C function has been changed:
                 </dt>
-            <dd>
-                To free memory allocated by HDF5 function calls:
-                <ul>
-                <li><a href="../RM/RM_H5.html#Library-FreeMemory">
-                    <code>H5free_memory</code></a>
-                    <br>
-                    This function should be used to free memory that has 
-                    been allocated by HDF5 API calls such as
-                    <code>H5Tget_member_name</code> and 
-                    <code>H5Pget_class_name</code>.
-                    <p />
-                    The primary value for this call is on Windows systems, 
-                    where it is common for application code and the 
-                    HDF5 Library to be using different C run-time 
-                    libraries (CRT). Using this new call ensures that the 
-                    same CRT handles both the allocation and free. 
-                    <p />
-                    This function can also be useful in any case where 
-                    the library uses a different memory manager than the 
-                    application, such as when a debug memory manager is 
-                    in use or when the HDF5 Library is wrapped for use 
-                    in a managed language like Python or Java.
-                </ul>
-
-            <dd>
-                New configuration property for the <small>CORE</small> driver:
+            <dd>The function <code>H5Pset_core_write_tracking</code>
+                has been modified to enforce the limitation that the
+                value of the <code>page_size</code> parameter
+                cannot equal <code>0</code> (zero):
                 <ul>
                 <li><a href="../RM/RM_H5P.html#Property-SetCoreWriteTracking">
                     <code>H5Pset_core_write_tracking</code></a>
-                    <br>
-                    <a href="../RM/RM_H5P.html#Property-GetCoreWriteTracking">
-                    <code>H5Pget_core_write_tracking</code></a>
-                    <br>
-                    With this property, the <small>CORE</small> driver,
-                    <a href="../RM/RM_H5P.html#Property-SetFaplCore"><code>H5Pset_fapl_core</code></a>,
-                    can be configured to track dirty regions in the file and 
-                    write out only the changed regions on flush or close 
-                    operations. 
-                    Additionally, a <i>page aggregation size</i> 
-                    can be set that will aggregate small writes into 
-                    larger writes. For example, 
-                    setting a 1 mebibyte (1 MiB) page aggregation size 
-                    will logically partition the the in-memory file 
-                    into 1 MiB pages that will be written out 
-                    in their entirety if even a single byte is dirtied.
-                    
                 </ul>
                 </dd>
 
             <p>
-            <dt>The following C functions have been modified:
+            <dt>The following performance optimization has been implemented 
+                in the Parallel HDF5 library:
                 </dt>
+            <dd>The algoritm for writing chunk fill values for new datasets 
+                has been optimized to write out all chunk fill values 
+                collectively in a single MPI-IO call.  This was previously 
+                done independently by rank 0 (zero) one block at a time. 
+                This optimization should produce a significant performance
+                improvement when creating chunked datasets in parallel,
+                most notably when chunk dimensions are relatively small.
+                This optimization will be evident in use of the following
+                function:
                 <ul>
-                <li><a href="../RM/RM_H5R.html#Reference-GetName">
-                    <code>H5Rget_name</code></a>
-                    <br />
-                    If the <code>name</code> parameter is passed as
-                    <code>NULL</code>, then the <code>size</code>
-                    parameter is ignored and the function returns the size 
-                    of the buffer required to read the name
-                    (not including the NULL terminator).
-                    <br>
-                <li><a href="../RM/RM_H5Z.html#Compression-FilterAvail">
-                    <code>H5Zfilter_avail</code></a> 
-                    <br>
-                    This function has been updated to correctly identify
-                    <a href="../Advanced/DynamicallyLoadedFilters/HDF5DynamicallyLoadedFilters.pdf">dynamically 
-                    loaded filters</a>.
-                    If a filter is not found among registered filters,
-                    the function now checks for dynamically loaded filters.
+                <li><a href="../RM/RM_H5D.html#Dataset-Create">
+                    <code>H5Dcreate</code></a>
                 </ul>
+                </dd>
+
+<!--
+<br> 
+-->
 
             <p>
-            <dt><strong>In the C++ Interface</strong>
+            <dt><strong>In the high-level library C Interface</strong>
+                </dt>
 
-            <dt>The following new features have been added:
+            <dt>High-level HDF5 interfaces now ensure that strings are 
+                null-terminated and will not overflow a buffer.
+                </dt>
+                <dd>In several high-level functions, the type from the file 
+                    was previously re-used as the memory type and
+                    no check is made to ensure that a string was actually 
+                    null-terminated.
+                    <p>
+                    All high-level functions now 
+                    check for <code>NULL</code> pointers; 
+                    verify that a received a string is null-terminated; and 
+                    verify that the string will not overflow the buffer.
+                    The minimum length of the buffers is now used in 
+                    <code>strncmp</code> to avoid overflow.
+                    </dd>
 
-                <dd>Wrappers to the class <code>H5Object</code> to get 
-                    an object’s name:
-<pre>
-    ssize_t getObjName(char *obj_name, size_t buf_size = 0)
-    ssize_t getObjName(H5std_string& obj_name, size_t len = 0)
-    H5std_string getObjName()
-</pre>
-                </dd>
-                <dd>Wrappers to the class <code>H5CommonFG</code> 
-                    to get a child object’s type from a group or file:
-<pre>
-    H5O_type_t childObjType(const H5std_string& objname)
-    H5O_type_t childObjType(const char* objname)
-    H5O_type_t childObjType(hsize_t index,
-        H5_index_t index_type=H5_INDEX_NAME,
-        H5_iter_order_t order=H5_ITER_INC, const char* objname=".")
-</pre>
-                </dd>
-                <dd>Wrappers to the class <code>DSetMemXferPropList</code>
-                    for setting or getting a transform property list:
-<pre>
-    DSetMemXferPropList(const char* expression);
-    void setDataTransform(const char* expression)
-    void setDataTransform(const H5std_string& expression)
-    ssize_t getDataTransform(char* exp, size_t buf_size=0)
-    H5std_string getDataTransform()
-</pre>
-                </dd>
-                <dd>Wrapper to <code>CompType</code> for setting the 
-                    size of a compound datatype:
-<pre>
-    void setSize(size_t size)
-</pre>
-                </dd>
-                <dd>Overloaded functions to provide prototypes that 
-                    declare constant arguments <code>const</code>:  
-<pre>
-    DataSet::fillMemBuf
-    DataSet::getVlenBufSize
-    DataSpace::extentCopy
-    DataType::commit
-    FileAccPropList::setSplit
-    H5File::getVFDHandle
-</pre>
-                </dd>
-                <dd>Additional overload to the class <code>H5Location</code>
-                    to get a comment as a <code>char*</code>:
-<pre>
-    ssize_t getComment(const char* name, size_t buf_size, char* comment) 
-</pre>
-                </dd>
-                <dd>Additional overloads to the 
-                    class <code>Attribute</code>
-                    to get an attribute’s name for convenience:
-<pre>
-    ssize_t getName(char* attr_name, size_t buf_size=0)
-    ssize_t getName(H5std_string& attr_name, size_t buf_size=0)
-</pre>
-                </dd>
+            <p>
+            <dt><strong>In the main library C++ Interface</strong>
+                </dt>
+
+            <dt>No new C++ methods have been added.
+                </dt>
+<!--
+            <dt>The following new features have been added 
+                to the C++ interface:
+                </dt>
+
+                <dd>New methods:
+                    <ul>
+                    <li>None
+                    </ul>
+                    </dd>
+-->
 
+            <p>
+            <dt>The following changes have been made in the C++ interface:
+<!--
+                <dd>Changed methods
+                      <ul>
+                      <li><code>none</code> None
+                      </ul>
+                      </dd>
+                <p>
+-->
+                <dd>Changed defaults
+                      <ul>
+                      <li>Default value of class member <code>id</code>:
+                          <br />
+                          The data member <code>id</code> in several classes
+                          that represent HDF5 objects are now initialized
+                          to <code>H5I_INVALID_ID</code>.
+                      <li>Default value of a <code>PropList</code> 
+                          member <code>id</code>:
+                          <br />
+                          The data member <code>id</code> in class 
+                          <code>PropList</code> is now initialized 
+                          to <code>H5P_DEFAULT</code>.
+                      <li>In HDF5 Release 1.8.13 and earlier, 
+                          the above were initialized to <code>0</code> (zero).
+                      </ul>
+                      </dd>
+                <p>
+                <dd>Changed file access flags
+                      <ul>
+                      <li>The flag <code>H5F_ACC_CREAT</code>
+                          has been removed from the C++ interface.
+                      </ul>
+                      </dd>
+<!--
+                <p>
+                <dd>Other changes
+                      <ul>
+                      <li><code>none</code> None
+                      </ul>
+                      </dd>
+-->
+                <p>
 
             <p>
-            <dt><strong>In the Fortran Interface</strong>
+            <dt><strong>In the main library Fortran Interface</strong>
+
+            <dt>No new Fortran subroutines have been added.
+                </dt>
 
-            <dt>The following new Fortran subroutines have been added:
 <!--
+            <dt>The following new Fortran subroutines have been added:
             <dd>Fortran90 subroutines: 
                 <table width="100%" border="0">
                 <tr><td align="left" valign="top" width="50%">
@@ -293,7 +341,6 @@ in the transition from HDF5 Release 1.8.12 to Release 1.8.13.
                 </table>
                 </dd>
                  
--->
 
             <dd>Fortran2003 subroutines: 
                 <table width="100%" border="0">
@@ -310,10746 +357,158 @@ in the transition from HDF5 Release 1.8.12 to Release 1.8.13.
                     (Added in Release 1.8.11, but not documented at that time.)
                     </i>
                 </table>
+-->
                 </dd>
 
-            <p />
-            <dt>The following Fortran subroutine has been changed:
-                <ul>
-                    <li><code>h5pset_chunk_cache_f</code> 
-                        <br>
-                        The values of the constants
-                        <code>H5D_CHUNK_CACHE_NSLOTS_DFLT_F</code> and 
-                        <code>H5D_CHUNK_CACHE_NBYTES_DFLT_F</code> 
-                        have been changed to
-                        <code>INTEGER(KIND=size_t)</code>.
-                </ul>
-
-        </dl>    
-        </dir>
-
-
-    <h3>Other New Features</h3>
-        <dir>
-        <dl>
-            <dt>Parallel I/O support:</dt>
-            <dd>Parallel I/O support has been enhanced to allow collective I/O 
-                on point selections.
-            <p />
-            <dt>Thread safety (Windows only)</dt>
-            <dd>The thread-safe HDF5 library no longer leaks thread-local 
-                storage resources on Windows with Win32 threads. 
-                This cleanup can only be performed when the library 
-                is built as a shared library, so a 
-                thread-safe HDF5 static library with Win32 threads 
-                is no longer supported.  
-                <p />
-                This change affects only Windows environments.
-                <p />
-                Also see “<a href="#BuildConfig_1.8.13">Build and 
-                Configuration</a>” below.
-            
-        </dir>
-
-
-<!--
-    <h3>New Command-line Tool Options and Option Parameters</h3>
-        <dir>
-        <dl>    
-            <dt><a href="../RM/Tools.html#Tools-Dump">
-                <code>h5dump</code></a>
-            <dd><code>h5dump</code> has a new option for identifying 
-                objects by a full or partial path:
-                <br>
-                <code>   -N<i>P</i></code>
-                <br>
-                <code>   --any-path=<i>P</i></code>
-                <br> 
-
-            <dd>The <code>h5dump</code> attributes-only option, 
-                <code>-A</code> or <code>--only-attr</code>,
-                now accepts an optional parameter value
-                of <code>0</code> (zero):
-                <br>
-                <code>   -A 0</code>
-                <br>
-                <code>   --only-attr=0</code>
-                <br>
-                Specifying this value has the effect of reversing 
-                the role of the option to display everything
-                <i>except</i> attributes.
-                <br> 
-
-            <dt><a href="../RM/Tools.html#Tools-Repack">
-                <code>h5repack</code></a>
-            <dd>The <code>h5repack</code> option 
-                <code>-f</code>, <code>--filter</code> 
-                has a new parameter, <code>UD</code>, 
-                to enable the use of user-defined filters:
-                <br>
-                <code>   -f UD=<i><filter_parameters></i></code>
-                <br>
-                <code>   --filter=UD=<i><filter_parameters></i></code>
-                <br> 
-
-            <dt><a href="../RM/Tools.html#Tools-Stat">
-                <code>h5stat</code></a>
-            <dd><code>h5stat</code> has three new options for setting 
-                print thresholds:
-                <br>
-                <code>   </code>For attributes:
-                <br>
-                <code>      -a<i>N</i></code>
-                <br>
-                <code>      --attribute=<i>N</i></code>
-                <br> 
-
-                <br>
-                <code>   </code>For links in a group:
-                <br>
-                <code>      -l<i>N</i></code>
-                <br>
-                <code>      --links=<i>N</i></code>
-                <br> 
-
-                <br>
-                <code>   </code>For dimension sizes:
-                <br>
-                <code>      -m<i>N</i></code>
-                <br>
-                <code>      --dims=<i>N</i></code>
-
-        </dl>    
-        </dir>
--->
 
+            <p>
+            <dt>Changed Fortran <code>INTEGER</code> parameter types:
+                </dt>
+                <dd>Types of the following Fortran parameter constants
+                    have been changed from <code>INTEGER</code> to
+                    <code>INTEGER(HID_T)</code>:
+                    <pre>
+    H5FD_CORE            H5FD_MULTI
+    H5FD_FAMILY          H5FD_SEC2
+    H5FD_LOG             H5FD_STDIO
+    H5FD_MPIO       </pre>
+                    Other internal <code>int</code> types have been changed to 
+                    <code>hid_t</code>, but this change is expected to be 
+                    transparent to the user.
+                </dt>
 
-    <h3>Command-line Tools with Changed Behavior</h3>
-        <dir>
-        <dl>    
-            <dt><a href="../RM/Tools.html#Tools-Repack">
-                <code>h5repack</code></a>
-            <dd><code>h5repack</code> has been updated to correctly handle
-                <a href="../Advanced/DynamicallyLoadedFilters/HDF5DynamicallyLoadedFilters.pdf">dynamically 
-                loaded filters</a>.
 
-        </dl>    
+        </dl>
         </dir>
 
 
-
-
-    <a name="BuildConfig_1.8.13">
-    <h3>Build and Configuration</h3>
-    </a>
+    <h3>Compatibility Report and Comments</h3>
         <dir>
         <dl>    
-            <dt>Thread safety</dt>
-            <dd>When configuring a thread-safe HDF5 Library with 
-                <code>--enable-threadsafe</code>, 
-                it is no longer necessary to specify <code>--with-pthreads</code> 
-                if the Pthreads library is in a standard location. 
+            <dt><strong>Compatibility report for Release 1.8.14 versus 
+                Release 1.8.13</strong>
+                </dt>
+                <dd>
+                    <a href="Compatibility_Report/CR_1.8.14.html">API 
+                    compatibility report for the HDF5 Library 
+                    between 1.8.13 and 1.8.14 versions on 
+                    x86</a>
                 </dd>
 
-<!--
-            <dt>CMake and Autotools configuration
-            <dd>A new configuration option can be used to change the default 
-                <a href="../Advanced/DynamicallyLoadedFilters/HDF5DynamicallyLoadedFilters.pdf">plugin</a> path:
-                <table>
-                <tr><td><code>   </code></td>
-                    <td>Autotools <code>configure</code> option</td>
-                    <td>    </td>
-                    <td><code>--with-default-plugindir=location</code></td>
-                    </tr>
-                <tr><td> </td>
-                    <td><code>cmake</code> option</td>
-                    <td>    </td>
-                    <td><code>-DH5_DEFAULT_PLUGINDIR:PATH=location</code></td>
-                    </tr>
-                </table>
-                <p />
-
-            <dt>CMake configuration
-            <dd>CMake builds of HDF5 now create 
-                <code>*.so.{lt_version}</code> 
-                files with the same version as <code>configure</code>.
-                <p />
-
-            <dt>Autotools <code>configure</code> flag 
-            <dd>The <code>configure</code> flag 
-                <code>FFLAGS</code> has been renamed to <code>FCFLAGS</code>.
-                
--->
+            <p>
+            <dt><strong>Changed shared library interface version 
+                number (<code>soname</code>)</strong>
+                </dt>
+                <dd>To increase the maintainability of HDF5, an architectural
+                    change has been made that required renaming several 
+                    public symbols in <code>H5Ppublic.h</code>.
+                    <p> 
+                    Due to these changes, the shared library interface version 
+                    number (<code>soname</code>) has been increased.
+                    For a full list of the changed symbols, see the
+                    interface compatibility report linked immediately above.
+                </dd>
         </dl>    
         </dir>
 
-
 <!--
-    <h3>Compile Scripts with Changed Behavior</h3>
+    <h3>[ Additional sections will be added as appropriate. ]</h3>
         <dir>
         <dl>    
-            <dt><a href="../RM/Tools.html#Tools-H5CC">
-                <code>h5cc</code> and <code>h5pcc</code></a>
-            <dt><a href="../RM/Tools.html#Tools-H5C++">
-                <code>h5c++</code></a>
-            <dt><a href="../RM/Tools.html#Tools-H5FC">
-                <code>h5fc</code> and <code>h5pfc</code></a>
-
-            <dd>These compile scripts have been modified 
-                to change the default behavior
-                to link to shared libraries in environments where
-                HDF5 has been configured with <code>--disable-static</code>. 
-        </dl>    
+        </dl>
         </dir>
 -->
 
 
-<!--
-    <h3>Deprecated Functions</h3>
-        <dir>
+</dir>
+<br />
 
-        <dl>    
-            <dt>The following C function has been deprecated:
-                </dt>
-            <dd>
-                <li><a href="../RM/RM_H5P.html#Property-property">
-                    <code>H5Pproperty</code></a> 
-                </dd>
-                    <p>
-                    This function may be removed from the library
-                    in a future release.
-        </dl>    
-        </dir>
+<!--
+<br> 
+<br> 
+<br> 
+<br> 
+<br> 
+<br> 
+<br> 
+<br> 
 -->
 
 
-    <h3>Removed Functions and Wrappers</h3>
-        <dir>
-        <dl>    
-            <dt>The <small>MPI-POSIX</small> driver has been removed.
-                The following C functions and
-                the corresponding Fortran subroutines and C++ wrappers
-                therefore are no longer included in the HDF5 distribution:
-                </dt>
-            <dd>
-                <ul>
-                <li><code>H5Pset_fapl_mpiposix</code>
-                <li><code>H5Pget_fapl_mpiposix</code>
-                </ul>
-                </dd>
-                Applications performing parallel I/O should use the 
-                <small>MPI-IO</small> driver,  
-                <a href="../RM/RM_H5P.html#Property-SetFaplMpio">
-                <code>H5Pset_fapl_mpio</code></a>.
-        </dl>    
-        </dir>
+<a name="18x">
+<h2>Prior Releases in the 1.8.x Series</h2> 
+</a>
 
-</dir>
+<dir>
+
+Change notes for HDF5 Release 1.8.0 to the release immediately 
+preceding the current release are published in 
+“<a href="Changes_1_8_x.html">HDF5 Software Changes from 
+Release to Release for HDF5 Releases 1.8.x</a>”.
 
+</dir>
+<br />
 
 
-<a name="1812">
-<h2>Release 1.8.12 of November 2013 versus Release 1.8.11</h2>
+<a name="1610">
+<h2>Releases 1.6.x and 1.4.x</h2> 
 </a>
+
 <dir>
 
-This section lists interface-level changes and 
-other user-visible changes in behavior 
-in the transition from HDF5 Release 1.8.11 to Release 1.8.12.
+Change notes for HDF5 Release 1.6.10 and earlier releases
+are published in 
+“<a href="Changes_1_4-1_6.html">HDF5 Software Changes from 
+Release to Release for HDF5 Releases 1.4.0 through 1.6.10</a>”.
 
+</dir>
+<br />
 
-    <h3>New and Changed Functions, Classes, Subroutines, Wrappers, 
-        and Macros</h3>
-        <dir>
-        <dl>    
-            <dt><strong>In the C Interface (main library)</strong>
 
 <!--
-            <dt>The following new high-level C functions have been added:
-                </dt>
-            <dd>
-                <ul>
-                <li><a href="../HL/RM_HDF5Optimized.html#H5DOwrite_chunk">
-                    <code>__</code></a> 
-                </ul>
-                    This function ..
-                    <p>
-                    See “<a 
-                    href="../Advanced/DirectChunkWrite/index.html">__
-                    </a>” for additional information.
-                </dd>
-
-            <p>
-            <dt>The following new C functions have been added:
-                </dt>
-            <dd>
-                <ul>
-                <li><a href="../RM/RM_H5D.html#Dataset-Scatter">
-                    <code>__</code></a>
-                <li><a href="../RM/RM_H5D.html#Dataset-Gather">
-                    <code>__</code></a>
-                </ul>
-                    
-                    These functions ... 
-
-                </dd>
+<a name="RELEASE-HISTORY">
+<h2>This and Prior Releases: The RELEASE.txt and HISTORY.txt Files</h2>
+</a>
 
-            <p>
+<dir>
+    The HDF5 source code, as distributed to users and developers, 
+    contains two files that will be of interest to readers of this 
+    document.  Both files are located at the top level of the 
+    source code tree and are duplicated here for your reference:
+    <p>
+    <dl>
+      <dt><a href="RELEASE.txt" target="ExtWin">RELEASE.txt</a>
+        <dd>Technical notes regarding the release, including 
+            new features and the changes since the last release, 
+            notes regarding new or revised utilities,
+            notes regarding alternative language APIs (Fortran90, C++),
+            bugs fixed since the last release,
+            platforms on which the release has been tested, and
+            known problems. 
+            This is the file commonly known as "the release notes."
+      <p>
+      <dt><a href="HISTORY.txt" target="ExtWin">HISTORY.txt</a>
+        <dd>A release-by-release history of the HDF5 Library.  
+            This file is a compiled set of the release notes
+            (i.e., the RELEASE.txt files) from prior releases.
+    <dl>
+</dir>
 -->
-            <dt>The following C functions have been modified:
-                </dt>
-                <ul>
-                <li><a href="../RM/RM_H5Z.html#Compression-Unregister">
-                    <code>H5Zunregister</code></a>
-                    now checks for open objects using a filter 
-                    before allowing the filter to be unregistered.
-                <li><a href="../RM/RM_H5D.html#Dataset-Scatter">
-                    <code>H5Dscatter</code></a> and
-                    <a href="../RM/RM_H5D.html#Dataset-Gather">
-                    <code>H5Dgather</code></a> 
-                    signatures have changed slightly.
-                    <br>
-                    The <code>src_buff</code> parameter type is now
-                    <code>'<em>const void *</em>'</code> 
-                    (previously: <code>'<em>void *</em>'</code>).
-                </ul>
-
-            <p>
-            <dt><strong>In the C++ Interface</strong>
-
-            <dt>The following new C++ class has been added:
-            <dd><dl>
-                <dt><code>H5::H5Location</code>
-                <dd>The class <code>H5::H5Location</code> has been added 
-                    as a base class of <code>H5File</code> and 
-                    <code>H5Object</code>.  It represents the location 
-                    concept in the C library, where an identifier of an 
-                    HDF5 object or an HDF5 file being passed in as a 
-                    <code>loc_id</code> parameter.
-                </dl></dd>
-            <p>
-            <dt>The following member functions and their 
-                overloaded versions have been moved from 
-                various subclasses into the base class 
-                <code>H5Location</code>:
-            <dd><table><tr align="left" valign="top"><td>
-                    <code>createAttribute()</code>
-                    <br>
-                    <code>openAttribute()</code>
-                    <br>
-                    <code>attrExists()</code>
-                    <br>
-                    <code>renameAttr()</code>
-                    <br>
-                    <code>removeAttr()</code>
-                    <br>
-                    <code>flush()</code>
-                    <br>
-                    <code>getFileName()</code>
-                    <br>
-                    <code>getNumAttrs()</code>
-                  </td><td><code>        </code></td><td>
-                    <code>getObjType()</code>
-                    <br>
-                    <code>iterateAttrs()</code>
-                    <br>
-                    <code>setComment()</code>
-                    <br>
-                    <code>getComment()</code>
-                    <br>
-                    <code>removeComment()</code>
-                    <br>
-                    <code>reference()</code>
-                    <br>
-                    <code>dereference()</code>
-                    <br>
-                    <code>getRegion()</code>
-                </td></tr></table>
-            <p>
 
-            <dt>The following wrappers for C functions have been added:
-            <dd><dl>
-                <dt><code>H5Location::getRefObjType</code>
-                <dd>Corresponding C function: <code>H5Rget_obj_type2</code> 
-                <dd>Retrieves the type of the object that an 
-                    object reference points to.
-
-                <dt><code>H5Location::attrExists</code>
-                <dd>Corresponding C function: <code>H5Aexist</code> 
-                <dd>Determines whether a given attribute exists.
-
-                <dt><code>H5Location::setComment</code>
-                <dd>Two overloaded versions of 
-                    <code>H5Location::setComment</code> have been added
-                    to take "." in lieue of the name of the object.
-                 </dl>
-            <p>
-            <dt>In the classes <code>DataSet</code>, 
-                <code>DataType</code>, and <code>Group</code>, 
-                the following constructors have changed as follows:
-            <dd><table border="0"><tr><td>
-                <li>These constructors
-                    <br>
-                    <code>    DataSet(H5Object& obj, const void* ref, H5R_type_t ref_type = H5R_OBJECT);
-                    <br>
-                        DataSet(H5File& h5file, const void* ref, H5R_type_t ref_type = H5R_OBJECT);
-                    <br>
-                        DataSet(Attribute& attr, const void* ref, H5R_type_t ref_type = H5R_OBJECT);</code>
-                    <br>
-                    have changed to
-                    <br>
-	            <code>    DataSet(const H5Location& loc, const void* ref, H5R_type_t ref_type = H5R_OBJECT);
-                    <br>
-	                DataSet(const Attribute& attr, const void* ref, H5R_type_t ref_type = H5R_OBJECT);</code>
-                    <p />
-
-                <li>These constructors
-                    <br>
-                    <code>    DataType(H5Object& obj, const void* ref, H5R_type_t ref_type = H5R_OBJECT);
-                    <br>
-                        DataType(H5File& h5file, const void* ref, H5R_type_t ref_type = H5R_OBJECT);
-                    <br>
-                        DataType(Attribute& attr, const void* ref, H5R_type_t ref_type = H5R_OBJECT);</code>
-                    <br>
-                    have changed to
-                    <br>
-	            <code>    DataType(const H5Location& loc, const void* ref, H5R_type_t ref_type = H5R_OBJECT);
-                    <br>
-	                DataType(const Attribute& attr, const void* ref, H5R_type_t ref_type = H5R_OBJECT);</code>
-                    <br>
-	            <code>                                                                              &nbsp [...]
-
-                 <li>These constructors
-                    <br>
-                    <code>    Group(H5Object& obj, const void* ref, H5R_type_t ref_type = H5R_OBJECT);
-                    <br>
-                        Group(H5File& h5file, const void* ref, H5R_type_t ref_type = H5R_OBJECT);
-                    <br>
-                        Group(Attribute& attr, const void* ref, H5R_type_t ref_type = H5R_OBJECT);</code>
-                    <br>
-                    have changed to
-                    <br>
-	            <code>    Group(const H5Location& loc, const void* ref, H5R_type_t ref_type = H5R_OBJECT);
-                    <br>
-	                Group(const Attribute& attr, const void* ref, H5R_type_t ref_type = H5R_OBJECT);</code>
-                </td></tr></table>
-                <p />
-
-<!--
-
-            <dd><pre>
-        DataSet(H5Object& obj, const void* ref, H5R_type_t ref_type = H5R_OBJECT);
-        DataSet(H5File& h5file, const void* ref, H5R_type_t ref_type = H5R_OBJECT);
-        DataSet(Attribute& attr, const void* ref, H5R_type_t ref_type = H5R_OBJECT);
-    have changed to
-	DataSet(const H5Location& loc, const void* ref, H5R_type_t ref_type = H5R_OBJECT);
-	DataSet(const Attribute& attr, const void* ref, H5R_type_t ref_type = H5R_OBJECT);
-
-        DataType(H5Object& obj, const void* ref, H5R_type_t ref_type = H5R_OBJECT);
-        DataType(H5File& h5file, const void* ref, H5R_type_t ref_type = H5R_OBJECT);
-        DataType(Attribute& attr, const void* ref, H5R_type_t ref_type = H5R_OBJECT);
-    have changed to
-	DataType(const H5Location& loc, const void* ref, H5R_type_t ref_type = H5R_OBJECT);
-	DataType(const Attribute& attr, const void* ref, H5R_type_t ref_type = H5R_OBJECT);
-
-        Group(H5Object& obj, const void* ref, H5R_type_t ref_type = H5R_OBJECT);
-        Group(H5File& h5file, const void* ref, H5R_type_t ref_type = H5R_OBJECT);
-        Group(Attribute& attr, const void* ref, H5R_type_t ref_type = H5R_OBJECT);
-    have changed to
-	Group(const H5Location& loc, const void* ref, H5R_type_t ref_type = H5R_OBJECT);
-	Group(const Attribute& attr, const void* ref, H5R_type_t ref_type = H5R_OBJECT);
-                </pre>
-
-
-
-            <dt>The following new C++ classes, wrappers, and functions 
-                have been added:
-                </dt>
-            <dd>
-                <dl>
-                <dt><code>H5::H5Location</code>
-                    <dd>Class added to represent the location concept 
-                        in the C library, where it is most often 
-                        represented as a <code>loc_id</code>
-                        return type or parameter
-                <dt><code>H5Location::getRefObjType</code>
-                    <dd>Wrapper added for the C function 
-                        <code> H5Rget_obj_type2</code> 
-                        to retrieve the type of the object
-                        that an object reference points to. 
-                <dt><code>H5::H5Location::attrExists</code>
-                    <dd>Overloaded wrapper added for the C function
-                        <code>H5Aexist</code> to determine whether a 
-                        given attribute exists.
-                <dt><code>list_will_be_inserted_here</code>
-                    <dd>Overloaded functions added for convenience.
-                </dl>
--->
-
-<!--
-            <p>
-            <dt><strong>In the Fortran Interface</strong>
-
-            <dt>The following new Fortran subroutines have been added:
-            <dd><i>These changes are not yet available.</i>
-            <dd>Fortran90 subroutines: 
-                <table width="100%" border="0">
-                <tr><td align="left" valign="top" width="50%">
-                <ul>
-                    <li><code>__</code> 
-                </ul>
-                </td><td align="left" valign="top" width="50%">
-                <ul>
-                    <li><code>__</code> 
-                </ul>
-                </td></tr>
-                <td align="left" valign="top" colspan="2">
-                </td></tr>
-                </table>
-                </dd>
-                 
-
-            <dd>Fortran2003 subroutines: 
-                <table width="100%" border="0">
-                <tr><td align="left" valign="top" width="50%">
-                <ul>
-                    <li><code>__</code> 
-                </ul>
-                </td><td align="left" valign="top" width="50%">
-                <ul>
-                    <li><code>__</code>
-                </ul>
-                </td></tr>
-                </table>
-                </dd>
--->
-        </dl>    
-        </dir>
-
-<!--
-
-    <h3>New Feature: <feature_name></h3>
-        <dir>
-            <Description>
-            <p>
-            See “<a href="../Advanced/_dirs_/_file_">__</a>” 
-            for further information.
-        </dir>
-
--->
-
-    <h3>New Command-line Tool Options and Option Parameters</h3>
-        <dir>
-        <dl>    
-            <dt><a href="../RM/Tools.html#Tools-Dump">
-                <code>h5dump</code></a>
-            <dd><code>h5dump</code> has a new option for identifying 
-                objects by a full or partial path:
-                <br>
-                <code>   -N<i>P</i></code>
-                <br>
-                <code>   --any-path=<i>P</i></code>
-                <br> 
-
-            <dd>The <code>h5dump</code> attributes-only option, 
-                <code>-A</code> or <code>--only-attr</code>,
-                now accepts an optional parameter value
-                of <code>0</code> (zero):
-                <br>
-                <code>   -A 0</code>
-                <br>
-                <code>   --only-attr=0</code>
-                <br>
-                Specifying this value has the effect of reversing 
-                the role of the option to display everything
-                <i>except</i> attributes.
-                <br> 
-
-            <dt><a href="../RM/Tools.html#Tools-Repack">
-                <code>h5repack</code></a>
-            <dd>The <code>h5repack</code> option 
-                <code>-f</code>, <code>--filter</code> 
-                has a new parameter, <code>UD</code>, 
-                to enable the use of user-defined filters:
-                <br>
-                <code>   -f UD=<i><filter_parameters></i></code>
-                <br>
-                <code>   --filter=UD=<i><filter_parameters></i></code>
-                <br> 
-
-            <dt><a href="../RM/Tools.html#Tools-Stat">
-                <code>h5stat</code></a>
-            <dd><code>h5stat</code> has three new options for setting 
-                print thresholds:
-                <br>
-                <code>   </code>For attributes:
-                <br>
-                <code>      -a<i>N</i></code>
-                <br>
-                <code>      --attribute=<i>N</i></code>
-                <br> 
-
-                <br>
-                <code>   </code>For links in a group:
-                <br>
-                <code>      -l<i>N</i></code>
-                <br>
-                <code>      --links=<i>N</i></code>
-                <br> 
-
-                <br>
-                <code>   </code>For dimension sizes:
-                <br>
-                <code>      -m<i>N</i></code>
-                <br>
-                <code>      --dims=<i>N</i></code>
-
-        </dl>    
-        </dir>
-
-
-    <h3>Build and Configuration</h3>
-        <dir>
-        <dl>    
-            <dt>CMake and Autotools configuration
-            <dd>A new configuration option can be used to change the default 
-                <a href="../Advanced/DynamicallyLoadedFilters/HDF5DynamicallyLoadedFilters.pdf">plugin</a> path:
-                <table>
-                <tr><td><code>   </code></td>
-                    <td>Autotools <code>configure</code> option</td>
-                    <td>    </td>
-                    <td><code>--with-default-plugindir=location</code></td>
-                    </tr>
-                <tr><td> </td>
-                    <td><code>cmake</code> option</td>
-                    <td>    </td>
-                    <td><code>-DH5_DEFAULT_PLUGINDIR:PATH=location</code></td>
-                    </tr>
-                </table>
-                <p />
-
-            <dt>CMake configuration
-            <dd>CMake builds of HDF5 now create 
-                <code>*.so.{lt_version}</code> 
-                files with the same version as <code>configure</code>.
-                <p />
-
-            <dt>Autotools <code>configure</code> flag 
-            <dd>The <code>configure</code> flag 
-                <code>FFLAGS</code> has been renamed to <code>FCFLAGS</code>.
-                
-        </dl>    
-        </dir>
-
-
-
-<!--
-    <h3>Functions, Subroutines, Wrappers, Macros, 
-        and Features with Changed Syntax or Behavior</h3>
-        <dir>
-        <dl>    
-            <dt>High-level C functions
-            <dd>...
-                <ul>
-                <li><a href="../HL/RM_H5DS.html#H5DSget_scale_name">
-                    <code>H5DSget_scale_name</code></a>
-                </ul>
-                    This function has been changed to <i>not</i>
-                    include the NULL terminator in the returned size of 
-                    of the dimension scale name (bug fix).
-                </dd>
-
-            <p>
-            <dt>
-                Fortran subroutines 
-                </dt>
-            <dd>...
-                <ul>
-                <li><code>h5pset_external_f</code> and
-                <li><code>h5pget_external_f</code>
-                </ul>
-                the type of the <code>offset</code> parameter has changed to
-                <code>INTEGER(KIND=OFF_T)</code> to support 8-byte integers, 
-                matching the C type definition of <code>off_t</code>.
-                </dt>
-            <dd>
-
-        <dl>    
-        </dir>
--->
-
-
-<!--
-    <h3>Deprecated Functions</h3>
-        <dir>
-
-        <dl>    
-            <dt>The following C function has been deprecated:
-                </dt>
-            <dd>
-                <li><a href="../RM/RM_H5P.html#Property-property">
-                    <code>H5Pproperty</code></a> 
-                </dd>
-                    <p>
-                    This function may be removed from the library
-                    in a future release.
-        </dl>    
-        </dir>
--->
-
-
-    <h3>Compile Scripts with Changed Behavior</h3>
-        <dir>
-        <dl>    
-            <dt><a href="../RM/Tools.html#Tools-H5CC">
-                <code>h5cc</code> and <code>h5pcc</code></a>
-            <dt><a href="../RM/Tools.html#Tools-H5C++">
-                <code>h5c++</code></a>
-            <dt><a href="../RM/Tools.html#Tools-H5FC">
-                <code>h5fc</code> and <code>h5pfc</code></a>
-
-            <dd>These compile scripts have been modified 
-                to change the default behavior
-                to link to shared libraries in environments where
-                HDF5 has been configured with <code>--disable-static</code>. 
-        </dl>    
-        </dir>
-
-
-    <h3>Command-line Tools with Changed Behavior</h3>
-        <dir>
-        <dl>    
-            <dt><a href="../RM/Tools.html#Tools-Dump">
-                <code>h5dump</code></a>
-            <dd><code>h5dump</code> output now displays
-                <br>   
-                <code>USER_DEFINED_FILTER</code>
-                <br>
-                where it previously displayed <code>UNKNOWN_FILTER</code>.
-                <br> 
-
-            <dd><code>h5dump</code> now correctly exports subsetted data 
-                to a file using the 
-                <code>-o</code>, <code>--output</code> option.
-
-        </dl>    
-        </dir>
-
-
-<!--
-    <h3>Removed Functions and Wrappers</h3>
-        <dir>
-        <dl>    
-            <dt>The following C functions and
-                the corresponding C++ wrappers
-                have been removed:
-                </dt>
-            <dd>
-                <ul>
-                <li><code>H5Pset_dxpl_multi</code>
-                <li><code>H5Pget_dxpl_multi</code>
-                <br> 
-                <li><code>H5::DSetMemXferPropList:setMulti</code>
-                <li><code>H5::DSetMemXferPropList:getMulti</code>
-                </ul>
-                </dd>
-        </dl>    
-        </dir>
--->
-
-</dir>
-
-
-<a name="1811">
-<h2>Release 1.8.11 of May 2013 versus Release 1.8.10</h2>
-</a>
-<dir>
-
-This section lists interface-level changes and 
-other user-visible changes in behavior 
-in the transition from HDF5 Release 1.8.10 to Release 1.8.11.
-
-
-    <h3>New and Changed Functions and Subroutines <!--and Macros--></h3>
-        <dir>
-        <dl>    
-            <dt>The following new high-level C function has been added:
-                </dt>
-            <dd>
-                <ul>
-                <li><a href="../HL/RM_HDF5Optimized.html#H5DOwrite_chunk">
-                    <code>H5DOwrite_chunk</code></a> 
-                </ul>
-                    This function writes a data chunk directly into a file, 
-                    bypassing hyperslab selection, data conversion, and
-                    the filter pipeline.  
-                    The user must be careful with the function and 
-                    clearly understand the I/O process of the library.
-                    See “<a 
-                    href="../Advanced/DirectChunkWrite/index.html">Direct 
-                    Chunk Write</a>” for additional information.
-                    <p>
-                    <code>H5DOwrite_chunk</code> is the first function in 
-                    HDF5’s new high-level 
-                    “<a href="../HL/RM_HDF5Optimized.html">HDF5 
-                    Optimized Functions</a>” library.
-                </dd>
-
-            <p>
-            <dt>The following new C functions have been added:
-                </dt>
-            <dd>
-                <ul>
-                <li><a href="../RM/RM_H5D.html#Dataset-Scatter">
-                    <code>H5Dscatter</code></a>
-                <li><a href="../RM/RM_H5D.html#Dataset-Gather">
-                    <code>H5Dgather</code></a>
-                </ul>
-                    
-                    These functions scatter data to and gather data from
-                    a selection within a memory buffer.
-                </dd>
-
-            <p>
-            <dt>The following new Fortran subroutines have been added:
-                </dt>
-            <dd>Fortran90 subroutines: 
-                <table width="100%" border="0">
-                <tr><td align="left" valign="top" width="50%">
-                <ul>
-                    <li><code>h5odecr_refcount_f</code> 
-                    <li><code>h5oexists_by_name_f</code> 
-                    <li><code>h5oget_comment_f</code>
-                    <li><code>h5oget_comment_by_name_f</code> 
-                </ul>
-                </td><td align="left" valign="top" width="50%">
-                <ul>
-                    <li><code>h5oincr_refcount_f</code> 
-                    <li><code>h5oopen_by_idx_f</code>
-                    <li><code>h5oset_comment_f</code> 
-                    <li><code>h5oset_comment_by_name_f</code> 
-                </ul>
-                </td></tr>
-                <td align="left" valign="top" colspan="2">
-                 <br>
-                <ul>
-                    <li><code>h5oclose_f</code> was introduced in 
-                        HDF5 Release 1.8.8 but remained undocumented 
-                        until this release.
-                </ul>
-                </td></tr>
-                </table>
-                </dd>
-                 
-
-            <dd>Fortran2003 subroutines: 
-                <table width="100%" border="0">
-                <tr><td align="left" valign="top" width="50%">
-                <ul>
-                    <li><code>h5oget_info_f</code> 
-                    <li><code>h5oget_info_by_idx_f</code> 
-                </ul>
-                </td><td align="left" valign="top" width="50%">
-                <ul>
-                    <li><code>h5ovisit_by_name_f</code>
-                </ul>
-                </td></tr>
-                </table>
-                </dd>
-        </dl>    
-        </dir>
-
-
-    <h3>New Feature: Dynamically Loaded Filters</h3>
-        <dir>
-            HDF5 now detects and dynamically loads external filters,
-            reducing the need for an application to register custom filters 
-            or for a developer building on HDF5 to compile a custom filter 
-            into a customized HDF5 distribution.
-            <p>
-            See “<a href="../Advanced/DynamicallyLoadedFilters/HDF5DynamicallyLoadedFilters.pdf">HDF5 
-            Dynamically Loaded Filters</a>” (PDF only) 
-            for further information.
-        </dir>
-
-
-    <h3>New Command-line Tool Option</h3>
-        <dir>
-        <dl>    
-            <dt><a href="../RM/Tools.html#Tools-Dump">
-                <code>h5dump</code></a> and
-                <a href="../RM/Tools.html#Tools-Import">
-                <code>h5import</code></a> 
-            <dd><code>h5dump</code> has a new option 
-                to output the DDL structure of a file or object:
-                <br>
-                <code>   -O<i><file_name></i></code>
-                <br>
-                <code>   --ddl=<i><file_name></i></code>
-                <br>
-                [‘<code>-O</code>’ above is
-                ‘dash-uppercase-o’.]
-
-                <p>
-                <code>h5import</code> can now take the output of 
-                <br>
-                <code>   h5dump -O<i><ddl_file_name></i>
-                                               -o<i><data_file_name></i>
-                                               </code>
-                <br>
-                directly as input files.
-                <br>
-                See “<a 
-                href="../RM/Tools.html#Tools-Import-UsingDump">Using 
-                <code>h5dump</code> to create input for 
-                <code>h5import</code></a>” in the <code>h5import</code>
-                reference manual entry.
-        </dl>    
-        </dir>
-
-
-    <h3>New Configuration and Build Tool</h3>
-        <dir>
-        <dl>    
-            <dt><code>cmakehdf5</code>
-            <dd>This new build command script is similar to
-                <code>buildhdf5</code> 
-                and is available in the <code>bin/</code> 
-                directory of the distributed source code.
-                <p>
-                For HDF5, the CMake minimum is now 2.8.10.
-        </dl>    
-        </dir>
-
-
-
-    <h3>Function<!--s-->, Subroutines, <!--Wrappers, Macros,--> 
-        and Feature<!--s--> with Changed Syntax or Behavior</h3>
-        <dir>
-        <dl>    
-            <dt>The return value of the following high-level C function 
-                has changed:
-                </dt>
-            <dd>
-                <ul>
-                <li><a href="../HL/RM_H5DS.html#H5DSget_scale_name">
-                    <code>H5DSget_scale_name</code></a>
-                </ul>
-                    This function has been changed to <i>not</i>
-                    include the NULL terminator in the returned size of 
-                    of the dimension scale name (bug fix).
-                </dd>
-
-            <p>
-            <dt>
-                In the Fortran subroutines 
-                </dt>
-            <dd>
-                <ul>
-                <li><code>h5pset_external_f</code> and
-                <li><code>h5pget_external_f</code>
-                </ul>
-                the type of the <code>offset</code> parameter has changed to
-                <code>INTEGER(KIND=OFF_T)</code> to support 8-byte integers, 
-                matching the C type definition of <code>off_t</code>.
-                </dt>
-            <dd>
-
-            <p>
-            <dt>The HDF5 Library now supports data conversion from
-                enumeration to integer and floating-point numeric datatypes.
-                <!-- See Issue 8221. -->
-                </dt>
-
-        <dl>    
-        </dir>
-
-
-<!-- DEPRECATION OF H5Pset_fapl_multi IS ON HOLD PENDING FURTHER INVESTIGATION.
-    <h3>Deprecated Function</h3>
-        <dir>
-        <dl>    
-            <dt>The following C function has been deprecated:
-                </dt>
-            <dd>
-                <li><a href="../RM/RM_H5P.html#Property-SetFcplMulti">
-                    <code>H5Pset_fapl_multi</code></a> 
-                </dd>
-                    <p>
-                    This function may be removed from the library
-                    in a future release.
-        </dl>    
-        </dir>
--->
-
-
-    <h3><!--New andChanged  -->Command-line Tools with Changed Behavior</h3>
-        <dir>
-        <dl>    
-            <dt><a href="../RM/Tools.html#Tools-Diff">
-                <code>h5diff</code></a>
-            <dd>When comparing two files or objects, 
-                <code>h5diff</code> now recognizes a unique extra attribute
-                attached to an object as a difference and 
-                returns with an exit code of <code>1</code>.
-                <p>
-                Previously, <code>h5diff</code> did not recognize the
-                extra attribute as a difference.
-                </dt>
-
-                <p>
-            <dt><a href="../RM/Tools.html#Tools-Ls">
-                <code>h5ls</code></a>
-            <dd>The content of the <code>h5ls --help</code> 
-                output has been revised.
-
-                <p>
-            <dt><a href="../RM/Tools.html#Tools-Dump">
-                <code>h5dump</code></a>
-            <dd><code>h5dump</code> has been updated to display the 
-                compression ratio for user-defined filters.
-            <dd>In <code>h5dump</code> output, 
-                <code>UNKNOWN_FILTER</code> has been changed to  
-                <code>USER_DEFINED_FILTER</code>.
-        </dl>    
-        </dir>
-
-
-    <h3>Removed Functions and Wrappers</h3>
-        <dir>
-        <dl>    
-            <dt>The following C functions and
-                the corresponding C++ wrappers
-                have been removed:
-                </dt>
-            <dd>
-                <ul>
-                <li><code>H5Pset_dxpl_multi</code>
-                <li><code>H5Pget_dxpl_multi</code>
-                <br> 
-                <li><code>H5::DSetMemXferPropList:setMulti</code>
-                <li><code>H5::DSetMemXferPropList:getMulti</code>
-                </ul>
-                </dd>
-        </dl>    
-        </dir>
-
-
-</dir>
-
-
-<a name="1810">
-<h2>Release 1.8.10 of November 2012 versus Release 1.8.9</h2>
-</a>
-<dir>
-
-This section lists interface-level changes and 
-other user-visible changes in behavior 
-in the transition from HDF5 Release 1.8.9 to Release 1.8.10.
-
-
-    <h3>New and Changed Functions and Subroutines <!--and Macros--></h3>
-        <dir>
-        <dl>    
-            <dt>The following new C function has been added:
-                </dt>
-            <dd>
-                <li><code>H5Pget_mpio_no_collective_cause</code>
-                </dd>
-
-            <p>
-            <dt>The following new Fortran subroutine has been added:
-                </dt>
-            <dd>
-                <li><code>h5pget_mpio_actual_io_mode_f</code>
-                </dd>
-
-            <p>
-            <dt>The syntax of the following high-level C function has changed:
-                </dt>
-            <dd>
-                <li><code>H5TBAget_fill</code>
-                    <br>
-                    This function’s return type has been changed to
-                    <code>h5tri_t</code>.
-                    A return value of
-                    <code>1</code> indicates that a fill value is present, 
-                    <code>0</code> indicates that no fill value is present,
-                    and a negative value indicates an error.
-                    (The former return type was <code>herr_t</code>.)
-                    <p>
-                    Note that <code>H5TBAget_fill</code> 
-                    and a companion function <code>H5TBAget_title</code>,
-                    both in the HDF5 Table (H5TB) high-level API,
-                    are undocumented.
-                    These functions will be added to the
-                    <cite>HDF5 Reference Manual</cite> 
-                    shortly after HDF5 Release 1.8.10.
-                </dd>
-
-        </dl>    
-        </dir>
-
-    <h3><!--New and -->Changed Command-line Tool<!--s--></h3>
-        <dir>
-        <dl>    
-            <dt><code>h5import</code> has been updated to 
-                accept an input file created by <code>h5dump</code>.
-                </dt>
-        </dl>    
-        </dir>
-
-</dir>
-
-
-<a name="189">
-<h2>Release 1.8.9 of May 2012 versus Release 1.8.8</h2>
-</a>
-<dir>
-
-This section lists interface-level changes and 
-other user-visible changes in behavior 
-in the transition from HDF5 Release 1.8.8 to Release 1.8.9.
-
-
-    <h3>New and Changed Functions <!--and Macros--></h3>
-
-        <dl>    
-            <dd>A new high level C function and Fortran subroutine were added 
-                to HDF5 Lite (<a href="../HL/RM_H5LT.html">H5LT</a>)
-                to determine whether an HDF5 path is correct 
-                and resolves to a valid HDF5 object:
-                <ul>
-                    <li><a href="../HL/RM_H5LT.html#H5LTpath_valid">
-                        <code>H5LTpath_valid</code></a>
-                    <li><a href="../HL/RM_H5LT.html#H5LTpath_valid">
-                        <code>h5ltpath_valid_f</code></a>
-                </ul>
-
-            <br>
-            <p>
-            <dd>The new file image operations feature consists of the 
-                following functions and their associated callbacks, 
-                struct, and <small>ENUM</small>. 
-                This feature enables an application to load a file
-                into memory (as a file image) and to operate on that 
-                file image without the overhead of disk I/O.
-                This feature provides the following functions:
-                <table width="90%">
-                <tr valign="top">
-                  <td width="46%">
-                    <ul>
-                      <li><a href="../HL/RM_H5LT.html#H5LTopen_file_image">
-                          <code>H5LTopen_file_image</code></a>
-                      <li><a href="../RM/RM_H5F.html#File-GetFileImage">
-                          <code>H5Fget_file_image</code></a>
-                    </ul>
-                  </td><td width="4%"> </td><td> </td>
-                </tr><tr vilign="top">
-                  <td>
-                    <ul>
-                      <li><a href="../RM/RM_H5P.html#Property-SetFileImage">
-                          <code>H5Pset_file_image</code></a>
-                      <li><a href="../RM/RM_H5P.html#Property-GetFileImage">
-                          <code>H5Pget_file_image</code></a>
-                    <ul>
-                  </td><td width="4%"> </td><td width="46%">
-                    <ul>
-                      <li><a href="../RM/RM_H5P.html#Property-SetFileImageCallbacks">
-                          <code>H5Pset_file_image_callbacks</code></a>
-                      <li><a href="../RM/RM_H5P.html#Property-GetFileImageCallbacks">
-                          <code>H5Pget_file_image_callbacks</code></a>
-                    </ul>
-                </table>
-            <dd>For the callbacks, struct, 
-                          and <small>ENUM</small>, see 
-                          <a href="../RM/RM_H5P.html#Property-SetFileImageCallbacks">
-                          <code>H5Pset_file_image_callbacks</code></a>.
-            <dd>Use of this feature is described in
-                          “<a href="../Advanced/FileImageOperations/HDF5FileImageOperations.pdf">HDF5 
-                          File Image Operations</a>” (PDF).
-
-            <br> 
-            <p>
-            <dd>The following functions were modified or added to 
-                the HDF5 Library to allow an application to control 
-                the operation of copying committed datatypes with 
-                <a href="../RM/RM_H5O.html#Object-Copy">
-                <code>H5Ocopy</code></a>:
-            <dd><i>Function with changed interface:</i>
-                <ul>
-                    <li><a href="../RM/RM_H5P.html#Property-SetCopyObject">
-                        <code>H5Pset_copy_object</code></a>
-                </ul>
-            <dd><i>New flag for use with <code>H5Pset_copy_object</code>:</i>
-                <ul>
-                    <li><a href="../RM/RM_H5P.html#Property-SetCopyObject">
-                        <code>H5O_COPY_MERGE_COMMITTED_DTYPE_FLAG</code></a>
-                </ul>
-            <dd><i>Function with changed behavior:</i>
-                <ul>
-                    <li><a href="../RM/RM_H5O.html#Object-Copy">
-                        <code>H5Ocopy</code></a>
-                        <br>
-                        This function’s behavior is changed,
-                        but only with the use of the new flag,
-                        <code>H5O_COPY_MERGE_COMMITTED_DTYPE_FLAG</code>.
-                </ul>
-
-            <dd><i>New functions and callback function:</i>
-                <table width="90%">
-                <tr valign="top">
-                    <td width="46%">
-                      <ul>
-                        <li><a href="../RM/RM_H5P.html#Property-SetMcdtSearchCb">
-                            <code>H5Pset_mcdt_search_cb</code></a>
-                        <li><a href="../RM/RM_H5P.html#Property-GetMcdtSearchCb">
-                            <code>H5Pget_mcdt_search_cb</code></a>
-                        <li><a href="../RM/RM_H5O.html#Object-McdtSearchCb_t">
-                            <code>H5O_mcdt_search_cb_t</code></a>
-                      </ul>
-                    </td><td width="4%"> </td><td width="46%">
-                      <ul>
-                        <li><a href="../RM/RM_H5P.html#Property-AddMergeCommittedDtypePath">
-                            <code>H5Padd_merge_committed_dtype_path</code></a>
-                        <li><a href="../RM/RM_H5P.html#Property-FreeMergeCommittedDtypePaths">
-                            <code>H5Pfree_merge_committed_dtype_paths</code></a>
-                      </ul>
-                    </td></tr>
-                </table>
-            <dd>Use of this capability is described in
-                “<a href="../Advanced/CommittedDatatypeCopying/CopyingCommittedDatatypesWithH5Ocopy.pdf">Copying 
-                Committed Datatypes with 
-                <code>H5Ocopy</code></a>” (PDF).
-
-            <br> 
-            <p>
-            <!-- KEEP THE FOLLOWING ENTRY LAST IN THE 'NEW FUNCTIONS' SECTION. -->
-            <dd>The following C functions and Fortran subroutines 
-                were added to provide a mechanism
-                to ensure sequential consistency 
-                in parallel environments using MPI I/O:
-                <table width="90%">
-                <tr valign="top">
-                    <td width="46%">
-                      <ul>
-                        <li><a href="../RM/RM_H5F.html#File-SetMpiAtomicity">
-                            <code>H5Fset_mpi_atomicity</code></a>
-                        <li><a href="../RM/RM_H5F.html#File-GetMpiAtomicity">
-                            <code>H5Fget_mpi_atomicity</code></a>
-                      </ul>
-                    </td><td width="4%"> </td><td width="46%">
-                      <ul>
-                        <li><a href="../RM/RM_H5F.html#File-SetMpiAtomicity">
-                            <code>h5fset_mpi_atomicity_f</code></a>
-                        <li><a href="../RM/RM_H5F.html#File-GetMpiAtomicity">
-                            <code>h5fget_mpi_atomicity_f</code></a>
-                      </ul>
-                    </td></tr>
-                </table>
-            <dd>Use of this capability is described in
-                “<a href="../Advanced/PHDF5FileConsistencySemantics/PHDF5FileConsistencySemantics.pdf">Enabling 
-                a Strict Consistency Semantics Model in 
-                Parallel HDF5</a>” (PDF).
-
-            <br> 
-            <p>
-            <dd>The following function was added at Release 1.8.5 
-            but was not documented at that time.
-            It is mentioned here for those who may have missed its
-            introduction:
-                <ul>
-                    <li><a href="../RM/RM_H5O.html#Object-ExistsByName">
-                        <code>H5Oexists_by_name</code></a>
-                </ul>
-        </dl>    
-</dir>
-
-
-<dir>
-    <h3>New Fortran Subroutines</h3>
-
-        <dl>    
-            <dd>The following Fortran subroutines have been added 
-              in this release:
-                <ul>
-                    <li><a href="../HL/RM_H5LT.html#H5LTpath_valid">
-                        <code>h5ltpath_valid_f</code></a>
-                    <li><a href="../RM/RM_H5O.html#Object-Copy">
-                        <code>h5ocopy_f</code></a>
-                    <li><a href="../RM/RM_H5F.html#File-SetMpiAtomicity">
-                        <code>h5fset_mpi_atomicity_f</code></a>
-                    <li><a href="../RM/RM_H5F.html#File-GetMpiAtomicity">
-                        <code>h5fget_mpi_atomicity_f</code></a>
-                </ul>
-              Where a subroutine is part of a new HDF5 feature, 
-              that feature is described above.
-        </dl>    
-
-
-    <h3>Fortran Subroutine with Changed Behavior</h3>
-
-        <dl>    
-            <dd>The content of the buffer returned by the following 
-              Fortran subroutine has changed as noted:
-                <ul>
-                    <li><a href="../HL/RM_H5LT.html#H5LTget_attribute_string">
-                        <code>h5ltget_attribute_string_f</code></a>
-                        <br>
-                        If the returned buffer requires padding, 
-                        <code>h5ltget_attribute_string_f</code>
-                        now employs space padding;
-                        this buffer was previously returned with a 
-                        C <small>NULL</small> terminator.
-                </ul>
-        </dl>    
-
-
-</dir>
-
-
-<dir>
-<!--
-    <h3>New Command-line Utility</h3>
-
-        <dl>    
-            <dd>
-                <font color="red"><i>Nothing recorded in RELEASE.txt.</i></font>
-            </dd>
-        </dl>
-
--->
-
-    
-    <h3>Command-line Utilities with New Options and/or Changed Behavior</h3>
-
-        <dl>    
-            <dd>
-            <dd><a href="../RM/Tools.html#Tools-Repack"><code>h5repack</code></a>
-