[hdf5] 01/04: Imported Upstream version 1.8.15+docs

Gilles Filippini pini at debian.org
Mon May 18 12:55:52 UTC 2015


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

pini pushed a commit to branch master
in repository hdf5.

commit b1a5e9a4f524e18c727158c594236b739fb31ca6
Author: pini <pini at pinislim.bou-fi.net>
Date:   Mon May 18 14:20:04 2015 +0200

    Imported Upstream version 1.8.15+docs
---
 CMakeFilters.cmake                                 |   25 +-
 CMakeInstallation.cmake                            |  251 +-
 CMakeLists.txt                                     |   74 +-
 COPYING                                            |    2 +-
 CTestConfig.cmake                                  |    4 +-
 MANIFEST                                           |  132 +-
 Makefile.am                                        |   26 +-
 Makefile.in                                        |   64 +-
 README.txt                                         |   24 +-
 aclocal.m4                                         |    2 +
 bin/buildhdf5                                      |   13 -
 bin/chkmanifest                                    |  141 +-
 bin/cmakehdf5                                      |  193 +-
 bin/h5vers                                         |   61 +-
 bin/locate_sw                                      |   57 -
 bin/release                                        |   32 +-
 bin/trace                                          |   20 +-
 c++/CMakeLists.txt                                 |    2 +-
 c++/Makefile.in                                    |   18 +-
 c++/examples/CMakeLists.txt                        |    6 +-
 c++/examples/Makefile.am                           |    1 +
 c++/examples/Makefile.in                           |   19 +-
 c++/src/CMakeLists.txt                             |    6 +-
 c++/src/H5AbstractDs.cpp                           |   54 +-
 c++/src/H5AbstractDs.h                             |   17 +-
 c++/src/H5ArrayType.h                              |    1 -
 c++/src/H5Attribute.cpp                            |   18 +-
 c++/src/H5Attribute.h                              |   23 +-
 c++/src/H5CommonFG.cpp                             |  125 +-
 c++/src/H5CommonFG.h                               |    9 +
 c++/src/H5CompType.cpp                             |   10 +-
 c++/src/H5DataSet.cpp                              |   14 +-
 c++/src/H5DataSet.h                                |   15 +-
 c++/src/H5DataSpace.cpp                            |    3 +-
 c++/src/H5DataSpace.h                              |    3 +
 c++/src/H5DataType.cpp                             |   44 +-
 c++/src/H5DataType.h                               |    6 +
 c++/src/H5Exception.cpp                            |   48 +-
 c++/src/H5FaccProp.cpp                             |   65 +-
 c++/src/H5FaccProp.h                               |    7 +
 c++/src/H5File.cpp                                 |   53 +-
 c++/src/H5File.h                                   |    6 +-
 c++/src/H5Group.cpp                                |    7 +-
 c++/src/H5IdComponent.cpp                          |   25 +-
 c++/src/H5IdComponent.h                            |   10 +-
 c++/src/H5Include.h                                |   12 +
 c++/src/H5IntType.h                                |    2 +-
 c++/src/H5Location.cpp                             |   77 +-
 c++/src/H5Location.h                               |   13 +-
 c++/src/H5Object.cpp                               |   31 +-
 c++/src/H5Object.h                                 |   13 +-
 c++/src/H5PropList.cpp                             |    3 +-
 c++/src/H5VarLenType.h                             |    1 -
 c++/src/Makefile.am                                |    6 -
 c++/src/Makefile.in                                |   27 +-
 c++/src/cpp_doc_config                             |    2 +-
 c++/src/h5c++.in                                   |    2 +-
 c++/test/CMakeLists.txt                            |    4 +-
 c++/test/Makefile.am                               |    6 -
 c++/test/Makefile.in                               |   25 +-
 c++/test/dsets.cpp                                 |    8 +-
 c++/test/tattr.cpp                                 |   68 +-
 c++/test/tcompound.cpp                             |    2 +-
 c++/test/tfile.cpp                                 |  142 +
 c++/test/tfilter.cpp                               |   12 +-
 c++/test/tobject.cpp                               |   28 +-
 c++/test/trefer.cpp                                |   74 +-
 c++/test/ttypes.cpp                                |   23 +-
 c++/test/tvlstr.cpp                                |   40 +-
 config/cce-fflags                                  |   73 +
 config/cce-flags                                   |   79 +
 config/cmake/ConfigureChecks.cmake                 |  114 +-
 config/cmake/ConversionTests.c                     |  348 +-
 config/cmake/H5pubconf.h.in                        |   89 -
 config/cmake/HDF518_Examples.cmake.in              |   86 +-
 config/cmake/HDF5Macros.cmake                      |    4 +-
 config/cmake/README.txt.cmake.in                   |   10 +-
 config/cmake/cacheinit.cmake                       |   10 +-
 config/cmake/hdf5-config-version.cmake.in          |   56 +-
 config/cmake/hdf5-config.cmake.build.in            |   73 -
 config/cmake/hdf5-config.cmake.in                  |  147 +
 config/cmake/hdf5-config.cmake.install.in          |   81 -
 config/cmake/libhdf5.settings.cmake.in             |    1 -
 config/cmake/patch.xml                             |   11 +
 config/cmake_ext_mod/ConfigureChecks.cmake         |   33 +-
 config/cmake_ext_mod/FindMPI.cmake                 |  207 +-
 config/cmake_ext_mod/HDFLibMacros.cmake            |   20 +-
 config/cmake_ext_mod/HDFMacros.cmake               |  109 +-
 config/cmake_ext_mod/HDFTests.c                    |   43 +-
 config/cmake_ext_mod/NSIS.InstallOptions.ini.in    |    2 +-
 config/cmake_ext_mod/hdf.icns                      |  Bin 2632 -> 326012 bytes
 config/commence.am                                 |    4 +-
 config/irix6.x                                     |  178 -
 config/linux-gnulibc1                              |   24 +-
 config/lt_vers.am                                  |    4 +-
 configure                                          | 3768 +++-----------------
 configure.ac                                       | 1799 +---------
 examples/CMakeLists.txt                            |    6 +-
 examples/Makefile.in                               |   19 +-
 examples/README                                    |    2 +-
 fortran/CMakeLists.txt                             |    2 +-
 fortran/Makefile.in                                |   18 +-
 fortran/examples/CMakeLists.txt                    |   51 +-
 fortran/examples/Makefile.am                       |    1 +
 fortran/examples/Makefile.in                       |   19 +-
 fortran/src/CMakeLists.txt                         |  154 +-
 fortran/src/H5Af.c                                 |   38 +-
 fortran/src/H5Aff_F03.f90                          |   14 +-
 fortran/src/H5Df.c                                 |  322 +-
 fortran/src/H5Dff_F03.f90                          |   30 +-
 fortran/src/H5Ef.c                                 |    2 +-
 fortran/src/H5Eff_F03.f90                          |    8 +-
 fortran/src/H5Ff.c                                 |   11 +-
 fortran/src/H5Fff_F03.f90                          |    7 +-
 fortran/src/H5Gf.c                                 |   39 +-
 fortran/src/H5Lf.c                                 |   29 +-
 fortran/src/H5Lff_F03.f90                          |   21 +-
 fortran/src/H5Of.c                                 |   20 +-
 fortran/src/H5Off_F03.f90                          |   52 +-
 fortran/src/H5Pf.c                                 |  252 +-
 fortran/src/H5Pff.f90                              |  116 +-
 fortran/src/H5Pff_F03.f90                          |   90 +-
 fortran/src/H5Pff_F90.f90                          |    9 +-
 fortran/src/H5Rf.c                                 |   47 +-
 fortran/src/H5Rff.f90                              |   18 +-
 fortran/src/H5Rff_F03.f90                          |   86 +-
 fortran/src/H5Rff_F90.f90                          |   24 +-
 fortran/src/H5Sf.c                                 |   67 +-
 fortran/src/H5Tf.c                                 |  405 ++-
 fortran/src/H5Tff.f90                              |   51 -
 fortran/src/H5Tff_F03.f90                          |  116 +-
 fortran/src/H5Tff_F90.f90                          |   57 +
 fortran/src/H5_f.c                                 |   21 +-
 fortran/src/H5f90global.f90                        |   31 +-
 fortran/src/H5f90proto.h                           |   97 +-
 fortran/src/H5match_types.c                        |  202 +-
 fortran/src/Makefile.in                            |   22 +-
 fortran/src/README                                 |    4 -
 fortran/src/h5fc.in                                |    2 +-
 fortran/src/hdf5_fortrandll.def.in                 |    4 +-
 fortran/test/CMakeLists.txt                        |   66 +-
 fortran/test/CMakeTests.cmake                      |    2 +
 fortran/test/Makefile.in                           |   18 +-
 fortran/test/fortranlib_test_1_8.f90               |    8 +-
 fortran/test/t.h                                   |    2 +-
 fortran/test/tH5A.f90                              |    2 -
 fortran/test/tH5A_1_8.f90                          |  688 ++--
 fortran/test/tH5E_F03.f90                          |    8 +-
 fortran/test/tH5F.f90                              |    2 -
 fortran/test/tH5G_1_8.f90                          |  620 ++--
 fortran/test/tH5MISC_1_8.f90                       |   80 +-
 fortran/test/tH5O.f90                              |    8 +-
 fortran/test/tH5O_F03.f90                          |    4 +-
 fortran/test/tH5P.f90                              |    4 +-
 fortran/test/tH5P_F03.f90                          |   99 +-
 fortran/test/tH5Sselect.f90                        |  340 +-
 fortran/test/tH5T.f90                              |   26 +-
 fortran/test/tH5T_F03.f90                          |   24 +-
 fortran/test/tH5VL.f90                             |    1 -
 fortran/test/tf.f90                                |   40 +-
 fortran/test/tf_F03.f90                            |   10 +-
 fortran/test/tf_F08.f90                            |   10 +-
 fortran/testpar/CMakeLists.txt                     |    7 +-
 fortran/testpar/Makefile.in                        |   18 +-
 fortran/testpar/ptest.f90                          |    1 +
 hl/CMakeLists.txt                                  |    6 +-
 hl/Makefile.am                                     |    2 +-
 hl/Makefile.in                                     |   20 +-
 hl/c++/CMakeLists.txt                              |    2 +-
 hl/c++/Makefile.in                                 |   18 +-
 hl/c++/examples/CMakeLists.txt                     |    4 +-
 hl/c++/examples/Makefile.am                        |    1 +
 hl/c++/examples/Makefile.in                        |   19 +-
 hl/c++/src/CMakeLists.txt                          |    6 +-
 hl/c++/src/Makefile.am                             |    6 -
 hl/c++/src/Makefile.in                             |   27 +-
 hl/c++/test/CMakeLists.txt                         |    4 +-
 hl/c++/test/Makefile.am                            |    6 -
 hl/c++/test/Makefile.in                            |   23 +-
 hl/examples/CMakeLists.txt                         |    4 +-
 hl/examples/Makefile.in                            |   18 +-
 hl/examples/ex_image1.c                            |    9 +-
 hl/examples/ex_image2.c                            |   10 +-
 hl/examples/ex_lite1.c                             |    5 +-
 hl/examples/ex_lite2.c                             |    7 +-
 hl/examples/ex_lite3.c                             |   11 +-
 hl/examples/ex_table_01.c                          |    5 +-
 hl/examples/ex_table_02.c                          |    7 +-
 hl/examples/ex_table_03.c                          |    7 +-
 hl/examples/ex_table_04.c                          |    9 +-
 hl/examples/ex_table_05.c                          |   19 +-
 hl/examples/ex_table_06.c                          |    5 +-
 hl/examples/ex_table_07.c                          |    7 +-
 hl/examples/ex_table_08.c                          |   10 +-
 hl/examples/ex_table_09.c                          |   12 +-
 hl/examples/ex_table_10.c                          |   12 +-
 hl/examples/ex_table_11.c                          |   10 +-
 hl/examples/ex_table_12.c                          |    7 +-
 hl/examples/ptExampleFL.c                          |    1 -
 hl/fortran/CMakeLists.txt                          |    6 +-
 hl/fortran/Makefile.in                             |   18 +-
 hl/fortran/examples/CMakeLists.txt                 |    6 +-
 hl/fortran/examples/Makefile.am                    |    1 +
 hl/fortran/examples/Makefile.in                    |   19 +-
 hl/fortran/src/CMakeLists.txt                      |   60 +-
 hl/fortran/src/H5DSfc.c                            |   14 +-
 hl/fortran/src/H5DSff.f90                          |   37 +-
 hl/fortran/src/H5IMcc.c                            |    6 +-
 hl/fortran/src/H5IMfc.c                            |  106 +-
 hl/fortran/src/H5IMff.f90                          |  102 +-
 hl/fortran/src/H5LTf90proto.h                      |  375 +-
 hl/fortran/src/H5LTfc.c                            |  380 +-
 hl/fortran/src/H5LTff.f90                          | 1090 +++---
 hl/fortran/src/H5TBfc.c                            |  118 +-
 hl/fortran/src/H5TBff.f90                          |  258 +-
 hl/fortran/src/Makefile.in                         |   22 +-
 hl/fortran/test/CMakeLists.txt                     |   14 +-
 hl/fortran/test/Makefile.in                        |   20 +-
 hl/fortran/test/tstds.f90                          |    2 +-
 hl/fortran/test/tstimage.f90                       |    2 -
 hl/fortran/test/tstlite.f90                        |   98 +-
 hl/src/CMakeLists.txt                              |    6 +-
 hl/src/H5DS.c                                      |   79 +-
 hl/src/H5DSprivate.h                               |    2 +-
 hl/src/H5IM.c                                      |   12 +-
 hl/src/H5LT.c                                      |   22 +-
 hl/src/H5LTanalyze.c                               |   19 +
 hl/src/H5LTparse.c                                 |   19 +
 hl/src/H5PT.c                                      |    3 +
 hl/src/Makefile.in                                 |   22 +-
 hl/src/hdf5_hl.h                                   |    2 +-
 hl/test/CMakeLists.txt                             |    8 +-
 hl/test/Makefile.in                                |   26 +-
 hl/test/dectris_hl_perf.c                          |    1 -
 hl/test/h5hltest.h                                 |    2 +-
 hl/test/test_ds.c                                  |    2 +-
 hl/test/test_dset_opt.c                            |   14 +-
 hl/test/test_lite.c                                |   48 +-
 hl/test/test_packet.c                              |  107 +-
 hl/test/test_table.c                               |   84 +-
 hl/tools/CMakeLists.txt                            |   10 +-
 hl/tools/CMakeTests.cmake                          |   20 +-
 hl/tools/Makefile.in                               |   18 +-
 hl/tools/gif2h5/Makefile.in                        |   18 +-
 hl/tools/gif2h5/decompress.c                       |    2 +-
 hl/tools/gif2h5/gif.h                              |    2 +-
 hl/tools/gif2h5/gif2hdf.c                          |    2 +-
 hl/tools/gif2h5/gif2mem.c                          |   30 +-
 hl/tools/gif2h5/h52gifgentst.c                     |    8 +-
 hl/tools/gif2h5/h52giftest.sh.in                   |   75 +-
 hl/tools/gif2h5/hdf2gif.c                          |   21 +-
 hl/tools/gif2h5/hdfgifwr.c                         |    8 +-
 hl/tools/gif2h5/testfiles/REAMDE                   |    6 +
 hl/tools/gif2h5/testfiles/ex_image2.h5             |  Bin 0 -> 224533 bytes
 html/ADGuide.html                                  |    2 +-
 html/ADGuide/Changes.html                          |  442 ++-
 html/ADGuide/Changes_1_8_x.html                    |  260 +-
 html/ADGuide/Compatibility_Report/CR_1.8.15.html   | 1841 ++++++++++
 html/Advanced.html                                 |    2 +-
 html/Copyright.html                                |    2 +-
 html/HL/H5PT_Intro.html                            |  192 +-
 html/HL/H5PT_UseCases.html                         |  143 +-
 html/HL/index.html                                 |    2 +-
 html/RM/H5/H5allocate_memory.htm                   |  183 +
 html/RM/H5/H5free_memory.htm                       |   18 +-
 html/RM/H5/H5resize_memory.htm                     |  219 ++
 html/RM/H5O/H5Oget_info.htm                        |   18 +-
 html/RM/H5P/H5Pcreate.htm                          |  250 +-
 html/RM/H5P/H5Pget_cache.htm                       |    2 +-
 html/RM/H5P/H5Pget_class.htm                       |   23 +-
 html/RM/H5P/H5Pget_class_name.htm                  |  251 +-
 html/RM/H5P/H5Pset_fapl_multi.htm                  |    8 +-
 html/RM/H5P/H5Pset_istore_k.htm                    |   10 +-
 html/RM/H5P/H5Pset_sym_k.htm                       |   14 +-
 html/RM/H5P/H5Pset_type_conv_cb.htm                |    8 +-
 html/RM/H5R/h5rget_object_type_f_F03.htm           |   10 +-
 html/RM/H5R/h5rget_object_type_f_F90.htm           |   10 +-
 html/RM/RM_H5.html                                 |   22 +-
 html/RM/RM_H5Front.html                            |    2 +-
 html/RM/RM_H5O.html                                |    2 +-
 html/RM/RM_H5P.html                                |    2 +-
 html/RM/Tools.html                                 |    4 +-
 html/RM/Tools/h52gif.htm                           |   51 +-
 html/TechNotes.html                                |   18 +-
 .../TechNote-HDF5-CompressionTroubleshooting.docx  |  Bin 0 -> 127714 bytes
 html/UG/14_PropertyLists.html                      |    4 +-
 html/UG/Images/back.png                            |  Bin 0 -> 790 bytes
 html/UG/Images/forward.png                         |  Bin 0 -> 793 bytes
 html/UG/UG_UpdateStatus.html                       |   55 +-
 html/UG/UG_front.html                              |    4 +-
 html/UG/UG_nav00.html                              |    2 +-
 html/UG/UG_navObjectsIdentifiers.html              |    2 +-
 html/doc-info.html                                 |   10 +-
 html/ed_libs/Footer-THGonly.htm                    |    2 +-
 html/ed_libs/Footer-THGonly.lbi                    |    2 +-
 html/ed_libs/Footer-THGonly2.htm                   |    2 +-
 html/ed_libs/Footer-THGonly3.htm                   |    2 +-
 html/ed_libs/Footer.htm                            |    2 +-
 html/ed_libs/Footer.lbi                            |    2 +-
 html/ed_libs/Footer2.htm                           |    2 +-
 html/ed_libs/Footer3.htm                           |    2 +-
 html/index.html                                    |    4 +-
 m4/aclocal_cxx.m4                                  |  121 +
 m4/aclocal_fc.m4                                   |  283 ++
 perform/benchpar.c                                 |  488 ---
 perform/pio_timer.c                                |  258 --
 perform/sio_timer.c                                |  197 -
 perform/sio_timer.h                                |   78 -
 release_docs/HISTORY-1_8.txt                       |  751 ++++
 release_docs/INSTALL                               |  218 +-
 release_docs/INSTALL_CMake.txt                     |  294 +-
 release_docs/INSTALL_Cygwin.txt                    |    6 +-
 release_docs/INSTALL_VMS.txt                       |   82 -
 release_docs/INSTALL_parallel                      |  229 +-
 release_docs/RELEASE.txt                           |  920 +++--
 release_docs/USING_CMake_Examples.txt              |   14 +-
 release_docs/USING_HDF5_CMake.txt                  |   10 +-
 src/CMakeLists.txt                                 |   18 +-
 src/H5.c                                           |  169 +-
 src/H5AC.c                                         |    2 +-
 src/H5ACprivate.h                                  |   30 +-
 src/H5C.c                                          |    2 +-
 src/H5Dchunk.c                                     |    2 +-
 src/H5Dcontig.c                                    |    2 +-
 src/H5Dint.c                                       |    6 +-
 src/H5Dio.c                                        |    7 +-
 src/H5Dmpio.c                                      |   48 +-
 src/H5E.c                                          |   16 +-
 src/H5Edeprec.c                                    |    2 +
 src/H5Eint.c                                       |   16 +-
 src/H5Epublic.h                                    |    2 +-
 src/H5FD.c                                         |    1 +
 src/H5FDcore.c                                     |    4 -
 src/H5FDdirect.c                                   |    4 -
 src/H5FDint.c                                      |   14 +
 src/H5FDlog.c                                      |    4 -
 src/H5FDmpio.c                                     |   49 +-
 src/H5FDprivate.h                                  |    8 -
 src/H5FDpublic.h                                   |   13 +-
 src/H5FDsec2.c                                     |    5 -
 src/H5FDstdio.c                                    |    4 -
 src/H5Fint.c                                       |    2 +-
 src/H5Fmpi.c                                       |    8 +-
 src/H5Fprivate.h                                   |    2 +
 src/H5Gdeprec.c                                    |    2 +-
 src/H5HG.c                                         |    4 +-
 src/H5HGpkg.h                                      |   23 +-
 src/H5I.c                                          |    3 +
 src/H5MFaggr.c                                     |    2 +-
 src/H5MM.c                                         |  121 +-
 src/H5MMprivate.h                                  |    6 -
 src/H5Oalloc.c                                     |    2 +-
 src/H5Obogus.c                                     |   12 +-
 src/H5Ocache.c                                     |    5 +-
 src/H5Odbg.c                                       |    2 +-
 src/H5Omtime.c                                     |   38 +-
 src/H5Oprivate.h                                   |    4 +-
 src/H5Osdspace.c                                   |    4 +-
 src/H5P.c                                          |    1 +
 src/H5PL.c                                         |  221 +-
 src/H5PLextern.h                                   |   15 -
 src/H5PLprivate.h                                  |   17 +-
 src/{H5PLextern.h => H5PLpublic.h}                 |   34 +-
 src/H5Pdxpl.c                                      |    2 +-
 src/H5Pfapl.c                                      |    1 +
 src/H5Pfcpl.c                                      |    6 +
 src/H5R.c                                          |   13 +-
 src/H5RS.c                                         |    4 +-
 src/H5RSprivate.h                                  |    2 +-
 src/H5S.c                                          |   12 +-
 src/H5Sdbg.c                                       |    1 +
 src/H5T.c                                          |   40 -
 src/H5TS.c                                         |    2 +-
 src/H5TSprivate.h                                  |    2 +-
 src/H5Tconv.c                                      |   44 -
 src/H5Tfields.c                                    |    1 +
 src/H5Tnative.c                                    |    2 +-
 src/H5Topaque.c                                    |    1 +
 src/H5Tpkg.h                                       |   78 +-
 src/H5Z.c                                          |   33 +-
 src/H5Zfletcher32.c                                |    7 +-
 src/H5Znbit.c                                      |    4 +-
 src/H5Zpkg.h                                       |   55 +-
 src/H5Zscaleoffset.c                               |    3 -
 src/H5Zshuffle.c                                   |    3 -
 src/H5Ztrans.c                                     |   37 +-
 src/H5api_adpt.h                                   |  196 +-
 src/H5config.h.in                                  |  107 +-
 src/H5detect.c                                     |   41 +-
 src/H5private.h                                    |   95 +-
 src/H5public.h                                     |    6 +-
 src/H5timer.c                                      |   89 +-
 src/H5trace.c                                      |   14 +-
 src/Makefile.am                                    |    2 +-
 src/Makefile.in                                    |   24 +-
 src/hdf5.h                                         |    3 +-
 src/libhdf5.settings.in                            |    4 +-
 test/CMakeLists.txt                                |   33 +-
 test/CMakeTests.cmake                              |  254 +-
 test/Makefile.in                                   |   20 +-
 test/cache.c                                       |    7 +-
 test/cache_api.c                                   |    8 +-
 test/cache_common.c                                |    4 +-
 test/cross_read.c                                  |   98 +-
 test/dsets.c                                       |  450 +--
 test/dt_arith.c                                    |  127 +-
 test/dtransform.c                                  |   30 +-
 test/dtypes.c                                      |  168 +-
 test/fheap.c                                       |    8 +-
 test/fillval.c                                     |    8 +-
 test/flush2.c                                      |   43 +-
 test/gen_bogus.c                                   |    2 +-
 test/gen_cross.c                                   |   84 +-
 test/gen_filters.c                                 |    4 -
 test/h5test.c                                      |  115 +-
 test/h5test.h                                      |    4 +-
 test/hyperslab.c                                   |    6 +-
 test/links.c                                       |    5 +-
 test/mtime.c                                       |    2 +-
 test/objcopy.c                                     |   20 +-
 test/ohdr.c                                        |   33 +-
 test/plugin.c                                      |   94 +-
 test/set_extent.c                                  |    4 +-
 test/tarray.c                                      |   10 +-
 test/tattr.c                                       |   20 +-
 test/tbogus.h5                                     |  Bin 1944 -> 1944 bytes
 test/test_plugin.sh.in                             |   12 +-
 test/testhdf5.c                                    |    6 +-
 test/testhdf5.h                                    |   12 +
 test/testmeta.c                                    |    8 +-
 test/tfile.c                                       |    6 +-
 test/tgenprop.c                                    |    4 +-
 test/th5s.c                                        |  126 +-
 test/tid.c                                         |    6 +-
 test/tmisc.c                                       |  104 +-
 test/trefer.c                                      |   75 +
 test/tsohm.c                                       |    4 +-
 test/ttsafe_cancel.c                               |    7 +-
 test/tunicode.c                                    |    4 +-
 test/tvltypes.c                                    |   16 +-
 testpar/CMakeLists.txt                             |    8 +-
 testpar/Makefile.am                                |    5 +-
 testpar/Makefile.in                                |   52 +-
 testpar/t_cache.c                                  |    3 +-
 testpar/t_chunk_alloc.c                            |   80 +-
 testpar/t_dset.c                                   |   52 +-
 testpar/t_filter_read.c                            |   25 +-
 testpar/t_pflush1.c                                |   11 +-
 testpar/t_pflush2.c                                |    6 +-
 testpar/t_prestart.c                               |  138 +
 testpar/t_pshutdown.c                              |  127 +
 testpar/t_shapesame.c                              |   19 +-
 testpar/testphdf5.c                                |    8 +-
 tools/CMakeLists.txt                               |    5 +-
 tools/Makefile.am                                  |    3 +-
 tools/Makefile.in                                  |   22 +-
 tools/h5copy/CMakeLists.txt                        |    8 +-
 tools/h5copy/Makefile.in                           |   18 +-
 tools/h5diff/CMakeLists.txt                        |   10 +-
 tools/h5diff/CMakeTests.cmake                      |    7 +-
 tools/h5diff/Makefile.in                           |   18 +-
 tools/h5diff/h5diffgentest.c                       |  160 +-
 tools/h5dump/CMakeLists.txt                        |    8 +-
 tools/h5dump/CMakeTests.cmake                      |   26 +-
 tools/h5dump/CMakeTestsXML.cmake                   |    8 -
 tools/h5dump/Makefile.in                           |   18 +-
 tools/h5dump/binread.c                             |   66 +-
 tools/h5dump/errfiles/tarray1_big.err              |   54 +-
 tools/h5dump/errfiles/tattrregR.err                |   36 +-
 tools/h5dump/errfiles/tdataregR.err                |   36 +-
 tools/h5dump/h5dumpgentest.c                       |   82 +-
 tools/h5dump/testh5dump.sh.in                      |   23 +-
 tools/h5dump/testh5dumppbits.sh.in                 |    4 -
 tools/h5dump/testh5dumpxml.sh.in                   |   12 +-
 tools/h5import/CMakeLists.txt                      |    6 +-
 tools/h5import/Makefile.in                         |   18 +-
 tools/h5import/h5importtest.c                      |   12 +-
 tools/h5jam/CMakeLists.txt                         |   12 +-
 tools/h5jam/Makefile.in                            |   20 +-
 tools/h5jam/h5jamgentest.c                         |    4 +-
 tools/h5jam/testh5jam.sh.in                        |    2 -
 tools/h5ls/CMakeLists.txt                          |    4 +-
 tools/h5ls/Makefile.in                             |   18 +-
 tools/h5repack/CMakeLists.txt                      |   14 +-
 tools/h5repack/CMakeTests.cmake                    |  130 +-
 tools/h5repack/Makefile.in                         |   18 +-
 tools/h5repack/h5repack.sh.in                      |  102 +-
 tools/h5repack/h5repack_main.c                     |    2 +-
 tools/h5repack/h5repacktst.c                       |  109 +-
 tools/h5repack/testfiles/README                    |    5 +
 .../testfiles/h5repack_nested_8bit_enum.h5         |  Bin 0 -> 273992 bytes
 .../h5repack_nested_8bit_enum_deflated.h5          |  Bin 0 -> 120630 bytes
 tools/h5stat/CMakeLists.txt                        |    8 +-
 tools/h5stat/Makefile.in                           |   18 +-
 tools/h5stat/testh5stat.sh.in                      |    4 -
 tools/lib/CMakeLists.txt                           |    9 +-
 tools/lib/Makefile.am                              |    2 +-
 tools/lib/Makefile.in                              |   23 +-
 tools/lib/h5tools_filters.c                        |   32 -
 tools/lib/h5tools_str.c                            |    6 +-
 tools/lib/h5tools_utils.c                          |   19 +-
 tools/lib/h5tools_utils.h                          |    6 +-
 tools/lib/h5trav.c                                 |   16 +-
 tools/lib/io_timer.c                               |  232 ++
 perform/pio_timer.h => tools/lib/io_timer.h        |   27 +-
 tools/misc/CMakeLists.txt                          |   14 +-
 tools/misc/Makefile.in                             |   18 +-
 tools/misc/h5cc.in                                 |    2 +-
 {perform => tools/perform}/CMakeLists.txt          |   68 +-
 {perform => tools/perform}/CMakeTests.cmake        |    5 +-
 {perform => tools/perform}/COPYING                 |    0
 {perform => tools/perform}/Makefile.am             |    4 +-
 {perform => tools/perform}/Makefile.in             |   36 +-
 {perform => tools/perform}/build_h5perf_alone.sh   |    0
 .../perform}/build_h5perf_serial_alone.sh          |    0
 {perform => tools/perform}/chunk.c                 |   16 +-
 {perform => tools/perform}/gen_report.pl           |    0
 {perform => tools/perform}/iopipe.c                |   18 +-
 {perform => tools/perform}/overhead.c              |    2 +-
 {perform => tools/perform}/perf.c                  |   18 +-
 {perform => tools/perform}/perf_meta.c             |    0
 {perform => tools/perform}/pio_engine.c            |    7 +-
 {perform => tools/perform}/pio_perf.c              |   54 +-
 {perform => tools/perform}/pio_perf.h              |    6 +-
 {perform => tools/perform}/pio_standalone.c        |    0
 {perform => tools/perform}/pio_standalone.h        |    0
 {perform => tools/perform}/sio_engine.c            |    5 +-
 {perform => tools/perform}/sio_perf.c              |   69 +-
 {perform => tools/perform}/sio_perf.h              |    6 +-
 {perform => tools/perform}/sio_standalone.c        |    0
 {perform => tools/perform}/sio_standalone.h        |    1 -
 {perform => tools/perform}/zip_perf.c              |    8 +-
 tools/testfiles/tbitnopaque.ddl                    |  293 ++
 tools/testfiles/tbitnopaque.h5                     |  Bin 0 -> 8240 bytes
 vms/COPYING                                        |   16 -
 vms/build.com                                      |   67 -
 vms/c++/examples/check.com                         |   53 -
 vms/c++/examples/make.com                          |   89 -
 vms/c++/src/make.com                               |   87 -
 vms/c++/test/H5srcdir_str.h                        |   23 -
 vms/c++/test/check.com                             |   23 -
 vms/c++/test/make.com                              |   49 -
 vms/examples/check.com                             |   31 -
 vms/examples/make.com                              |  125 -
 vms/fortran/examples/check.com                     |   99 -
 vms/fortran/examples/make.com                      |  124 -
 vms/fortran/src/make.com                           |   83 -
 vms/fortran/test/check.com                         |   26 -
 vms/fortran/test/make.com                          |   69 -
 vms/install.com                                    |  166 -
 vms/make.com                                       |  147 -
 vms/src/h5pubconf.h                                |  719 ----
 vms/src/make.com                                   |   87 -
 vms/test/H5srcdir_str.h                            |   22 -
 vms/test/check.com                                 |  253 --
 vms/test/make.com                                  |  338 --
 vms/tools/h5copy/check_h5copy.com                  |  110 -
 vms/tools/h5copy/make.com                          |   40 -
 vms/tools/h5diff/check_h5diff.com                  |  658 ----
 vms/tools/h5diff/make.com                          |   48 -
 vms/tools/h5diff/remove_exit.sh                    |   11 -
 vms/tools/h5dump/check_h5dump.com                  |  547 ---
 vms/tools/h5dump/make.com                          |   41 -
 vms/tools/h5import/check_h5import.com              |  227 --
 vms/tools/h5import/make.com                        |   46 -
 vms/tools/h5jam/check_h5jam.com                    |  178 -
 vms/tools/h5jam/make.com                           |   67 -
 vms/tools/h5ls/check_h5ls.com                      |  225 --
 vms/tools/h5ls/make.com                            |   39 -
 vms/tools/h5repack/check_h5repack.com              |  266 --
 vms/tools/h5repack/make.com                        |   55 -
 vms/tools/h5stat/make.com                          |   39 -
 vms/tools/lib/make.com                             |   34 -
 vms/tools/misc/make.com                            |   90 -
 vms/tools/testfiles/tattr-3.ddl                    |   13 -
 vms/tools/testfiles/tdset-2.ddl                    |   17 -
 vms/tools/testfiles/tgroup-2.ddl                   |   47 -
 vms/tools/testfiles/tperror.ddl                    |    9 -
 578 files changed, 15934 insertions(+), 22428 deletions(-)

diff --git a/CMakeFilters.cmake b/CMakeFilters.cmake
index f52b99b..14e3d33 100644
--- a/CMakeFilters.cmake
+++ b/CMakeFilters.cmake
@@ -11,11 +11,6 @@ MACRO (HDF5_SETUP_FILTERS FILTER)
   # message (STATUS "Filter ${FILTER} is ${HDF5_USE_FILTER_${FILTER}}")
 ENDMACRO (HDF5_SETUP_FILTERS)
 
-HDF5_SETUP_FILTERS (SHUFFLE)
-HDF5_SETUP_FILTERS (FLETCHER32)
-HDF5_SETUP_FILTERS (NBIT)
-HDF5_SETUP_FILTERS (SCALEOFFSET)
-
 include (ExternalProject)
 #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)")
@@ -24,8 +19,8 @@ if (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MAT
   option (ZLIB_USE_EXTERNAL "Use External Library Building for ZLIB" 1)
   option (SZIP_USE_EXTERNAL "Use External Library Building for SZIP" 1)
   if (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN")
-    set (ZLIB_URL ${ZLIB_SVN_URL})
-    set (SZIP_URL ${SZIP_SVN_URL})
+    set (ZLIB_URL ${ZLIB_SVN_URL} CACHE STRING "Path to zlib Subversion repository")
+    set (SZIP_URL ${SZIP_SVN_URL} CACHE STRING "Path to szip Subversion repository")
   elseif (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
     if (NOT TGZPATH)
       set (TGZPATH ${HDF5_SOURCE_DIR})
@@ -45,9 +40,12 @@ option (HDF5_ENABLE_Z_LIB_SUPPORT "Enable Zlib Filters" OFF)
 if (HDF5_ENABLE_Z_LIB_SUPPORT)
   if (NOT H5_ZLIB_HEADER)
     if (NOT ZLIB_USE_EXTERNAL)
-      FIND_PACKAGE (ZLIB NAMES ${ZLIB_PACKAGE_NAME}${HDF_PACKAGE_EXT})
+      find_package (ZLIB NAMES ${ZLIB_PACKAGE_NAME}${HDF_PACKAGE_EXT})
       if (NOT ZLIB_FOUND)
-        FIND_PACKAGE (ZLIB) # Legacy find
+        find_package (ZLIB) # Legacy find
+        if (ZLIB_FOUND)
+          set (LINK_LIBS ${LINK_LIBS} ${ZLIB_LIBRARIES})
+        endif (ZLIB_FOUND)
       endif (NOT ZLIB_FOUND)
     endif (NOT ZLIB_USE_EXTERNAL)
     if (ZLIB_FOUND)
@@ -56,7 +54,7 @@ if (HDF5_ENABLE_Z_LIB_SUPPORT)
       set (H5_HAVE_LIBZ 1)
       set (H5_ZLIB_HEADER "zlib.h")
       set (ZLIB_INCLUDE_DIR_GEN ${ZLIB_INCLUDE_DIR})
-      set (ZLIB_INCLUDE_DIRS ${ZLIB_INCLUDE_DIR})
+      set (ZLIB_INCLUDE_DIRS ${ZLIB_INCLUDE_DIRS} ${ZLIB_INCLUDE_DIR})
     else (ZLIB_FOUND)
       if (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
         EXTERNAL_ZLIB_LIBRARY (${HDF5_ALLOW_EXTERNAL_SUPPORT} ${LIB_TYPE})
@@ -89,9 +87,12 @@ option (HDF5_ENABLE_SZIP_SUPPORT "Use SZip Filter" OFF)
 if (HDF5_ENABLE_SZIP_SUPPORT)
   option (HDF5_ENABLE_SZIP_ENCODING "Use SZip Encoding" OFF)
   if (NOT SZIP_USE_EXTERNAL)
-    FIND_PACKAGE (SZIP NAMES ${SZIP_PACKAGE_NAME}${HDF_PACKAGE_EXT})
+    find_package (SZIP NAMES ${SZIP_PACKAGE_NAME}${HDF_PACKAGE_EXT})
     if (NOT SZIP_FOUND)
-      FIND_PACKAGE (SZIP) # Legacy find
+      find_package (SZIP) # Legacy find
+      if (SZIP_FOUND)
+        set (LINK_LIBS ${LINK_LIBS} ${SZIP_LIBRARIES})
+      endif (SZIP_FOUND)
     endif (NOT SZIP_FOUND)
   endif (NOT SZIP_USE_EXTERNAL)
   if (SZIP_FOUND)
diff --git a/CMakeInstallation.cmake b/CMakeInstallation.cmake
index 1e6a5bf..ad570ae 100644
--- a/CMakeInstallation.cmake
+++ b/CMakeInstallation.cmake
@@ -1,3 +1,16 @@
+include (CMakePackageConfigHelpers)
+
+#-----------------------------------------------------------------------------
+# Check for Installation Utilities
+#-----------------------------------------------------------------------------
+if (WIN32)
+  set (PF_ENV_EXT "(x86)")
+  find_program (NSIS_EXECUTABLE NSIS.exe PATHS "$ENV{ProgramFiles}\\NSIS" "$ENV{ProgramFiles${PF_ENV_EXT}}\\NSIS")
+  if(NOT CPACK_WIX_ROOT)
+    file(TO_CMAKE_PATH "$ENV{WIX}" CPACK_WIX_ROOT)
+  endif()
+  find_program (WIX_EXECUTABLE candle  PATHS "${CPACK_WIX_ROOT}/bin")
+endif (WIN32)
 
 #-----------------------------------------------------------------------------
 # Add file(s) to CMake Install
@@ -16,7 +29,7 @@ endif (NOT HDF5_INSTALL_NO_DEVELOPMENT)
 if (NOT HDF5_EXTERNALLY_CONFIGURED)
   install (
       EXPORT ${HDF5_EXPORTED_TARGETS}
-      DESTINATION ${HDF5_INSTALL_CMAKE_DIR}/${HDF5_PACKAGE}
+      DESTINATION ${HDF5_INSTALL_CMAKE_DIR}
       FILE ${HDF5_PACKAGE}${HDF_PACKAGE_EXT}-targets.cmake
       COMPONENT configinstall
   )
@@ -33,19 +46,32 @@ if (NOT HDF5_EXTERNALLY_CONFIGURED)
 endif (NOT HDF5_EXTERNALLY_CONFIGURED)
 
 #-----------------------------------------------------------------------------
-# Configure the hdf5-config.cmake file for the build directory
+# Set includes needed for build
 #-----------------------------------------------------------------------------
 set (HDF5_INCLUDES_BUILD_TIME
     ${HDF5_SRC_DIR} ${HDF5_CPP_SRC_DIR} ${HDF5_HL_SRC_DIR}
     ${HDF5_TOOLS_SRC_DIR} ${HDF5_BINARY_DIR}
 )
+
+#-----------------------------------------------------------------------------
+# Set variables needed for installation
+#-----------------------------------------------------------------------------
 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 (
-    ${HDF_RESOURCES_DIR}/hdf5-config.cmake.build.in 
-    ${HDF5_BINARY_DIR}/${HDF5_PACKAGE}${HDF_PACKAGE_EXT}-config.cmake @ONLY
+#-----------------------------------------------------------------------------
+# Configure the hdf5-config.cmake file for the build directory
+#-----------------------------------------------------------------------------
+set (INCLUDE_INSTALL_DIR ${HDF5_INSTALL_INCLUDE_DIR})
+set (SHARE_INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/${HDF5_INSTALL_CMAKE_DIR}" )
+set (CURRENT_BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}" )
+configure_package_config_file (
+    ${HDF_RESOURCES_DIR}/hdf5-config.cmake.in
+    "${HDF5_BINARY_DIR}/${HDF5_PACKAGE}${HDF_PACKAGE_EXT}-config.cmake"
+    INSTALL_DESTINATION "${HDF5_INSTALL_CMAKE_DIR}"
+    PATH_VARS INCLUDE_INSTALL_DIR SHARE_INSTALL_DIR CURRENT_BUILD_DIR
+    INSTALL_PREFIX "${CMAKE_CURRENT_BINARY_DIR}"
 )
 
 #-----------------------------------------------------------------------------
@@ -54,11 +80,11 @@ configure_file (
 if (NOT HDF5_EXTERNALLY_CONFIGURED)
   configure_file (
       ${HDF_RESOURCES_DIR}/FindHDF5.cmake.in 
-      ${HDF5_BINARY_DIR}/CMakeFiles/FindHDF5${HDF_PACKAGE_EXT}.cmake @ONLY
+      ${HDF5_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/FindHDF5${HDF_PACKAGE_EXT}.cmake @ONLY
   )
   install (
-      FILES ${HDF5_BINARY_DIR}/CMakeFiles/FindHDF5${HDF_PACKAGE_EXT}.cmake
-      DESTINATION ${HDF5_INSTALL_CMAKE_DIR}/${HDF5_PACKAGE}
+      FILES ${HDF5_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/FindHDF5${HDF_PACKAGE_EXT}.cmake
+      DESTINATION ${HDF5_INSTALL_CMAKE_DIR}
       COMPONENT configinstall
   )
 endif (NOT HDF5_EXTERNALLY_CONFIGURED)
@@ -66,14 +92,20 @@ endif (NOT HDF5_EXTERNALLY_CONFIGURED)
 #-----------------------------------------------------------------------------
 # Configure the hdf5-config.cmake file for the install directory
 #-----------------------------------------------------------------------------
+set (INCLUDE_INSTALL_DIR ${HDF5_INSTALL_INCLUDE_DIR})
+set (SHARE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${HDF5_INSTALL_CMAKE_DIR}" )
+set (CURRENT_BUILD_DIR "${CMAKE_INSTALL_PREFIX}" )
+configure_package_config_file (
+    ${HDF_RESOURCES_DIR}/hdf5-config.cmake.in
+    "${HDF5_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${HDF5_PACKAGE}${HDF_PACKAGE_EXT}-config.cmake"
+    INSTALL_DESTINATION "${HDF5_INSTALL_CMAKE_DIR}"
+    PATH_VARS INCLUDE_INSTALL_DIR SHARE_INSTALL_DIR CURRENT_BUILD_DIR
+)
+
 if (NOT HDF5_EXTERNALLY_CONFIGURED)
-  configure_file (
-      ${HDF_RESOURCES_DIR}/hdf5-config.cmake.install.in
-      ${HDF5_BINARY_DIR}/CMakeFiles/${HDF5_PACKAGE}${HDF_PACKAGE_EXT}-config.cmake @ONLY
-  )
   install (
-      FILES ${HDF5_BINARY_DIR}/CMakeFiles/${HDF5_PACKAGE}${HDF_PACKAGE_EXT}-config.cmake
-      DESTINATION ${HDF5_INSTALL_CMAKE_DIR}/${HDF5_PACKAGE}
+      FILES ${HDF5_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${HDF5_PACKAGE}${HDF_PACKAGE_EXT}-config.cmake
+      DESTINATION ${HDF5_INSTALL_CMAKE_DIR}
       COMPONENT configinstall
   )
 endif (NOT HDF5_EXTERNALLY_CONFIGURED)
@@ -84,11 +116,11 @@ endif (NOT HDF5_EXTERNALLY_CONFIGURED)
 if (NOT HDF5_EXTERNALLY_CONFIGURED)
   configure_file (
       ${HDF_RESOURCES_DIR}/hdf5-config-version.cmake.in
-      ${HDF5_BINARY_DIR}/CMakeFiles/${HDF5_PACKAGE}${HDF_PACKAGE_EXT}-config-version.cmake @ONLY
+      ${HDF5_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${HDF5_PACKAGE}${HDF_PACKAGE_EXT}-config-version.cmake @ONLY
   )
   install (
-      FILES ${HDF5_BINARY_DIR}/CMakeFiles/${HDF5_PACKAGE}${HDF_PACKAGE_EXT}-config-version.cmake
-      DESTINATION ${HDF5_INSTALL_CMAKE_DIR}/${HDF5_PACKAGE}
+      FILES ${HDF5_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${HDF5_PACKAGE}${HDF_PACKAGE_EXT}-config-version.cmake
+      DESTINATION ${HDF5_INSTALL_CMAKE_DIR}
       COMPONENT configinstall
   )
 endif (NOT HDF5_EXTERNALLY_CONFIGURED)
@@ -107,7 +139,7 @@ configure_file (
 )
 install (
     FILES ${HDF5_BINARY_DIR}/libhdf5.settings
-    DESTINATION ${HDF5_INSTALL_CMAKE_DIR}/${HDF5_PACKAGE}
+    DESTINATION ${HDF5_INSTALL_LIB_DIR}
     COMPONENT libraries
 )
 
@@ -126,9 +158,17 @@ if (HDF5_PACK_EXAMPLES)
       COMPONENT hdfdocuments
   )
   if (EXISTS "${HDF5_EXAMPLES_COMPRESSED_DIR}/${HDF5_EXAMPLES_COMPRESSED}")
+    execute_process(
+        COMMAND ${CMAKE_COMMAND} -E tar xzf ${HDF5_EXAMPLES_COMPRESSED_DIR}/${HDF5_EXAMPLES_COMPRESSED}
+    )
+    install (
+      DIRECTORY ${HDF5_BINARY_DIR}/HDF5Examples-0.1.1-Source
+      DESTINATION ${HDF5_INSTALL_DATA_DIR}
+      USE_SOURCE_PERMISSIONS 
+      COMPONENT hdfdocuments
+    )
     install (
         FILES
-            ${HDF5_EXAMPLES_COMPRESSED_DIR}/${HDF5_EXAMPLES_COMPRESSED}
             ${HDF5_SOURCE_DIR}/release_docs/USING_CMake_Examples.txt
         DESTINATION ${HDF5_INSTALL_DATA_DIR}
         COMPONENT hdfdocuments
@@ -142,6 +182,13 @@ endif (HDF5_PACK_EXAMPLES)
 HDF_README_PROPERTIES(HDF5_BUILD_FORTRAN)
 
 #-----------------------------------------------------------------------------
+# Configure the COPYING.txt file for the windows binary package
+#-----------------------------------------------------------------------------
+if (WIN32)
+  configure_file (${HDF5_SOURCE_DIR}/COPYING ${HDF5_BINARY_DIR}/COPYING.txt @ONLY)
+endif (WIN32)
+
+#-----------------------------------------------------------------------------
 # Add Document File(s) to CMake Install
 #-----------------------------------------------------------------------------
 if (NOT HDF5_EXTERNALLY_CONFIGURED)
@@ -197,6 +244,19 @@ if (NOT HDF5_EXTERNALLY_CONFIGURED)
   endif (EXISTS "${HDF5_SOURCE_DIR}/release_docs" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/release_docs")
 endif (NOT HDF5_EXTERNALLY_CONFIGURED)
 
+if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
+  if (CMAKE_HOST_UNIX)
+    set (CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/HDF_Group/${HDF5_PACKAGE_NAME}/${HDF5_PACKAGE_VERSION}"
+      CACHE PATH "Install path prefix, prepended onto install directories." FORCE)
+  else (CMAKE_HOST_UNIX)
+    GetDefaultWindowsPrefixBase(CMAKE_GENERIC_PROGRAM_FILES)
+    set (CMAKE_INSTALL_PREFIX
+      "${CMAKE_GENERIC_PROGRAM_FILES}/HDF_Group/${HDF5_PACKAGE_NAME}/${HDF5_PACKAGE_VERSION}"
+      CACHE PATH "Install path prefix, prepended onto install directories." FORCE)
+    set (CMAKE_GENERIC_PROGRAM_FILES)
+  endif (CMAKE_HOST_UNIX)
+endif (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
+
 #-----------------------------------------------------------------------------
 # Set the cpack variables
 #-----------------------------------------------------------------------------
@@ -222,7 +282,11 @@ if (NOT HDF5_EXTERNALLY_CONFIGURED AND NOT HDF5_NO_PACKAGES)
 
   set (CPACK_GENERATOR "TGZ") 
   if (WIN32)
-    list (APPEND CPACK_GENERATOR "NSIS") 
+    set (CPACK_GENERATOR "ZIP") 
+
+    if (NSIS_EXECUTABLE)    
+      list (APPEND CPACK_GENERATOR "NSIS") 
+    endif (NSIS_EXECUTABLE)    
     # 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)
@@ -243,15 +307,62 @@ if (NOT HDF5_EXTERNALLY_CONFIGURED AND NOT HDF5_NO_PACKAGES)
     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)
+    
+    if (WIX_EXECUTABLE)    
+      list (APPEND CPACK_GENERATOR "WIX") 
+    endif (WIX_EXECUTABLE)    
+#WiX variables
+    set (CPACK_WIX_UNINSTALL "1")
+# .. variable:: CPACK_WIX_LICENSE_RTF
+#  RTF License File
+#
+#  If CPACK_RESOURCE_FILE_LICENSE has an .rtf extension it is used as-is.
+#
+#  If CPACK_RESOURCE_FILE_LICENSE has an .txt extension it is implicitly
+#  converted to RTF by the WiX Generator.
+#  The expected encoding of the .txt file is UTF-8.
+#
+#  With CPACK_WIX_LICENSE_RTF you can override the license file used by the
+#  WiX Generator in case CPACK_RESOURCE_FILE_LICENSE is in an unsupported
+#  format or the .txt -> .rtf conversion does not work as expected.
+    set (CPACK_RESOURCE_FILE_LICENSE "${HDF5_BINARY_DIR}/COPYING.txt")
+# .. variable:: CPACK_WIX_PRODUCT_ICON
+#  The Icon shown next to the program name in Add/Remove programs.
+    set(CPACK_WIX_PRODUCT_ICON "${HDF_RESOURCES_EXT_DIR}\\\\hdf.ico")
+#
+# .. variable:: CPACK_WIX_UI_BANNER
+#
+#  The bitmap will appear at the top of all installer pages other than the
+#  welcome and completion dialogs.
+#
+#  If set, this image will replace the default banner image.
+#
+#  This image must be 493 by 58 pixels.
+#
+# .. variable:: CPACK_WIX_UI_DIALOG
+#
+#  Background bitmap used on the welcome and completion dialogs.
+#
+#  If this variable is set, the installer will replace the default dialog
+#  image.
+#
+#  This image must be 493 by 312 pixels.
+#
+    set(CPACK_WIX_PROPERTY_ARPCOMMENTS "HDF5 (Hierarchical Data Format 5) Software Library and Utilities")
+    set(CPACK_WIX_PROPERTY_ARPURLINFOABOUT "${HDF5_PACKAGE_URL}")
+    set(CPACK_WIX_PROPERTY_ARPHELPLINK "${HDF5_PACKAGE_BUGREPORT}")
+    if (BUILD_SHARED_LIBS)
+      set(CPACK_WIX_PATCH_FILE "${HDF_RESOURCES_DIR}/patch.xml")
+    endif (BUILD_SHARED_LIBS)
   elseif (APPLE)
     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 "${HDF_RESOURCES_EXT_DIR}/hdf.icns")
 
+    option (HDF5_PACK_MACOSX_BUNDLE  "Package the HDF5 Library in a Bundle" OFF)
     if (HDF5_PACK_MACOSX_BUNDLE)
       list (APPEND CPACK_GENERATOR "Bundle")
       set (CPACK_BUNDLE_NAME "${HDF5_PACKAGE_STRING}")
@@ -260,7 +371,7 @@ if (NOT HDF5_EXTERNALLY_CONFIGURED AND NOT HDF5_NO_PACKAGES)
       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.")
+      set (CPACK_APPLE_GUI_COPYRIGHT "Copyright © 2006-2015 by The HDF Group. All rights reserved.")
       set (CPACK_SHORT_VERSION_STRING "${CPACK_PACKAGE_VERSION}")
       set (CPACK_APPLE_GUI_BUNDLE_NAME "${HDF5_PACKAGE_STRING}")
       set (CPACK_APPLE_GUI_VERSION_STRING "${CPACK_PACKAGE_VERSION_STRING}")
@@ -337,45 +448,72 @@ The HDF5 data model, file format, API, library, and tools are open and distribut
   if (HDF5_PACKAGE_EXTLIBS)
     if (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
       if (ZLIB_FOUND AND ZLIB_USE_EXTERNAL)
-        set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${ZLIB_INCLUDE_DIR_GEN};ZLIB;libraries;/")
-        set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${ZLIB_INCLUDE_DIR_GEN};ZLIB;headers;/")
-        set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${ZLIB_INCLUDE_DIR_GEN};ZLIB;configinstall;/")
+        if (WIN32)
+          set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${ZLIB_INCLUDE_DIR_GEN};ZLIB;ALL;/")
+        else (WIN32)
+          set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${ZLIB_INCLUDE_DIR_GEN};ZLIB;libraries;/")
+          set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${ZLIB_INCLUDE_DIR_GEN};ZLIB;headers;/")
+          set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${ZLIB_INCLUDE_DIR_GEN};ZLIB;configinstall;/")
+        endif (WIN32)
       endif (ZLIB_FOUND AND ZLIB_USE_EXTERNAL)
       if (SZIP_FOUND AND SZIP_USE_EXTERNAL)
-        set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${SZIP_INCLUDE_DIR_GEN};SZIP;libraries;/")
-        set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${SZIP_INCLUDE_DIR_GEN};SZIP;headers;/")
-        set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${SZIP_INCLUDE_DIR_GEN};SZIP;configinstall;/")
+        if (WIN32)
+          set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${SZIP_INCLUDE_DIR_GEN};SZIP;ALL;/")
+        else (WIN32)
+          set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${SZIP_INCLUDE_DIR_GEN};SZIP;libraries;/")
+          set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${SZIP_INCLUDE_DIR_GEN};SZIP;headers;/")
+          set (CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${SZIP_INCLUDE_DIR_GEN};SZIP;configinstall;/")
+        endif (WIN32)
       endif (SZIP_FOUND AND SZIP_USE_EXTERNAL)
     endif (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
   endif (HDF5_PACKAGE_EXTLIBS)
   
   include (CPack)
 
+  cpack_add_install_type(Full DISPLAY_NAME "Everything")
+  cpack_add_install_type(Developer)
+
+  cpack_add_component_group(Runtime)
+
+  cpack_add_component_group(Documents
+      EXPANDED
+      DESCRIPTION "Release notes for developing HDF5 applications"
+  )
+
+  cpack_add_component_group(Development
+      EXPANDED
+      DESCRIPTION "All of the tools you'll need to develop HDF5 applications"
+  )
+
+  cpack_add_component_group(Applications
+      EXPANDED
+      DESCRIPTION "Tools for HDF5 files"
+  )
+
   #---------------------------------------------------------------------------
   # Now list the cpack commands
   #---------------------------------------------------------------------------
-  CPACK_ADD_COMPONENT (hdfapplications 
-      DISPLAY_NAME "HDF5 Applications" 
-      DEPENDS libraries
-      GROUP Applications
-  )
   CPACK_ADD_COMPONENT (libraries 
       DISPLAY_NAME "HDF5 Libraries"
       GROUP Runtime
+      INSTALL_TYPES Full Developer User
   )
   CPACK_ADD_COMPONENT (headers 
       DISPLAY_NAME "HDF5 Headers" 
       DEPENDS libraries
       GROUP Development
+      INSTALL_TYPES Full Developer
   )
   CPACK_ADD_COMPONENT (hdfdocuments 
       DISPLAY_NAME "HDF5 Documents"
       GROUP Documents
+      INSTALL_TYPES Full Developer
   )
   CPACK_ADD_COMPONENT (configinstall 
       DISPLAY_NAME "HDF5 CMake files" 
       DEPENDS libraries
       GROUP Development
+      INSTALL_TYPES Full Developer User
   )
   
   if (HDF5_BUILD_FORTRAN)
@@ -383,11 +521,13 @@ The HDF5 data model, file format, API, library, and tools are open and distribut
         DISPLAY_NAME "HDF5 Fortran Libraries" 
         DEPENDS libraries
         GROUP Runtime
+        INSTALL_TYPES Full Developer User
     )
     CPACK_ADD_COMPONENT (fortheaders 
         DISPLAY_NAME "HDF5 Fortran Headers" 
         DEPENDS fortlibraries
         GROUP Development
+        INSTALL_TYPES Full Developer
     )
   endif (HDF5_BUILD_FORTRAN)
   
@@ -396,11 +536,13 @@ The HDF5 data model, file format, API, library, and tools are open and distribut
         DISPLAY_NAME "HDF5 C++ Libraries" 
         DEPENDS libraries
         GROUP Runtime
+        INSTALL_TYPES Full Developer User
     )
     CPACK_ADD_COMPONENT (cppheaders 
         DISPLAY_NAME "HDF5 C++ Headers" 
         DEPENDS cpplibraries
         GROUP Development
+        INSTALL_TYPES Full Developer
     )
   endif (HDF5_BUILD_CPP_LIB)
   
@@ -409,16 +551,19 @@ The HDF5 data model, file format, API, library, and tools are open and distribut
         DISPLAY_NAME "HDF5 Tools Applications" 
         DEPENDS toolslibraries
         GROUP Applications
+        INSTALL_TYPES Full Developer User
     )
     CPACK_ADD_COMPONENT (toolslibraries 
         DISPLAY_NAME "HDF5 Tools Libraries" 
         DEPENDS libraries
         GROUP Runtime
+        INSTALL_TYPES Full Developer User
     )
     CPACK_ADD_COMPONENT (toolsheaders 
         DISPLAY_NAME "HDF5 Tools Headers" 
         DEPENDS toolslibraries
         GROUP Development
+        INSTALL_TYPES Full Developer
     )
   endif (HDF5_BUILD_TOOLS)
   
@@ -427,32 +572,42 @@ The HDF5 data model, file format, API, library, and tools are open and distribut
         DISPLAY_NAME "HDF5 HL Libraries" 
         DEPENDS libraries
         GROUP Runtime
+        INSTALL_TYPES Full Developer User
     )
     CPACK_ADD_COMPONENT (hlheaders 
         DISPLAY_NAME "HDF5 HL Headers" 
         DEPENDS hllibraries
         GROUP Development
+        INSTALL_TYPES Full Developer
     )
     CPACK_ADD_COMPONENT (hltoolsapplications 
         DISPLAY_NAME "HDF5 HL Tools Applications" 
         DEPENDS hllibraries
         GROUP Applications
+        INSTALL_TYPES Full Developer User
     )
-    CPACK_ADD_COMPONENT (hlcpplibraries 
-        DISPLAY_NAME "HDF5 HL C++ Libraries" 
-        DEPENDS hllibraries
-        GROUP Runtime
-    )
-    CPACK_ADD_COMPONENT (hlcppheaders 
-        DISPLAY_NAME "HDF5 HL C++ Headers" 
-        DEPENDS hlcpplibraries
-        GROUP Development
-    )
-    CPACK_ADD_COMPONENT (hlfortlibraries 
-        DISPLAY_NAME "HDF5 HL Fortran Libraries" 
-        DEPENDS fortlibraries
-        GROUP Runtime
-    )
+    if (HDF5_BUILD_CPP_LIB)
+      CPACK_ADD_COMPONENT (hlcpplibraries 
+          DISPLAY_NAME "HDF5 HL C++ Libraries" 
+          DEPENDS hllibraries
+          GROUP Runtime
+          INSTALL_TYPES Full Developer User
+      )
+      CPACK_ADD_COMPONENT (hlcppheaders 
+          DISPLAY_NAME "HDF5 HL C++ Headers" 
+          DEPENDS hlcpplibraries
+          GROUP Development
+          INSTALL_TYPES Full Developer
+      )
+    endif (HDF5_BUILD_CPP_LIB)
+    if (HDF5_BUILD_FORTRAN)
+      CPACK_ADD_COMPONENT (hlfortlibraries 
+          DISPLAY_NAME "HDF5 HL Fortran Libraries" 
+          DEPENDS fortlibraries
+          GROUP Runtime
+          INSTALL_TYPES Full Developer User
+      )
+    endif (HDF5_BUILD_FORTRAN)
   endif (HDF5_BUILD_HL_LIB)
   
 endif (NOT HDF5_EXTERNALLY_CONFIGURED AND NOT HDF5_NO_PACKAGES)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8b8d5c7..eb04332 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required (VERSION 2.8.11)
+cmake_minimum_required (VERSION 3.1.0)
 PROJECT (HDF5 C CXX)
 
 #-----------------------------------------------------------------------------
@@ -145,7 +145,7 @@ set (HDF5_CPP_TST_DIR        ${HDF5_SOURCE_DIR}/c++/test)
 set (HDF5_HL_SRC_DIR         ${HDF5_SOURCE_DIR}/hl)
 set (HDF5_HL_CPP_SRC_DIR     ${HDF5_SOURCE_DIR}/hl/c++)
 set (HDF5_TOOLS_SRC_DIR      ${HDF5_SOURCE_DIR}/tools)
-set (HDF5_PERFORM_SRC_DIR    ${HDF5_SOURCE_DIR}/perform)
+set (HDF5_PERFORM_SRC_DIR    ${HDF5_SOURCE_DIR}/tools/perform)
 set (HDF5_F90_SRC_DIR        ${HDF5_SOURCE_DIR}/fortran)
 
 if (NOT HDF5_INSTALL_BIN_DIR)
@@ -283,8 +283,8 @@ if (BUILD_SHARED_LIBS)
 else (BUILD_SHARED_LIBS)
   set (H5_BUILT_AS_STATIC_LIB 1)
   set (H5_ENABLE_STATIC_LIB YES)
-  set (CMAKE_POSITION_INDEPENDENT_CODE ON)
 endif (BUILD_SHARED_LIBS)
+set (CMAKE_POSITION_INDEPENDENT_CODE ON)
 
 #-----------------------------------------------------------------------------
 # Option to Build Static executables
@@ -369,10 +369,11 @@ endif (MAKE_SYSTEM)
 #-----------------------------------------------------------------------------
 # Add some definitions for Debug Builds
 #-----------------------------------------------------------------------------
+option (HDF5_ENABLE_TRACE "Enable API tracing capability" OFF)
+mark_as_advanced (HDF5_ENABLE_TRACE)
 if (CMAKE_BUILD_TYPE MATCHES Debug)
   add_definitions (-DDEBUG)
   # Enable tracing of the API
-  option (HDF5_ENABLE_TRACE "Enable API tracing capability" ON)
   if (HDF5_ENABLE_TRACE)
     add_definitions (-DH5_DEBUG_API )
   endif (HDF5_ENABLE_TRACE)
@@ -381,14 +382,13 @@ if (CMAKE_BUILD_TYPE MATCHES Debug)
   if (HDF5_ENABLE_INSTRUMENT)
     set (H5_HAVE_INSTRUMENTED_LIBRARY 1)
   endif (HDF5_ENABLE_INSTRUMENT)
-  mark_as_advanced (HDF5_Enable_Instrument)
+  mark_as_advanced (HDF5_ENABLE_INSTRUMENT)
   #-- NMake Makefiles will overwhelm the console with warnings if -Wall is used.
   if (NOT WIN32)
     add_definitions (-Wall)
   endif (NOT WIN32)
 else (CMAKE_BUILD_TYPE MATCHES Debug)
   add_definitions (-DNDEBUG)
-  option (HDF5_ENABLE_TRACE "Enable API tracing capability" OFF)
   if (HDF5_ENABLE_TRACE)
     add_definitions (-DH5_DEBUG_API )
   endif (HDF5_ENABLE_TRACE)
@@ -675,6 +675,9 @@ endif (HDF5_USE_16_API_DEFAULT)
 #-----------------------------------------------------------------------------
 include (UserMacros.cmake)
 
+#-----------------------------------------------------------------------------
+# Include filter (zlib, szip, etc.) macros
+#-----------------------------------------------------------------------------
 include (CMakeFilters.cmake)
 
 #-----------------------------------------------------------------------------
@@ -744,7 +747,7 @@ endif (HDF5_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF5_ALLOW_EXTERNAL_SUPPORT
 #-----------------------------------------------------------------------------
 # Dashboard and Testing Settings
 #-----------------------------------------------------------------------------
-option (BUILD_TESTING "Build HDF5 Unit Testing" OFF)
+option (BUILD_TESTING "Build HDF5 Unit Testing" ON)
 if (BUILD_TESTING)
   set (DART_TESTING_TIMEOUT 1200
       CACHE INTEGER
@@ -757,9 +760,6 @@ if (BUILD_TESTING)
       add_subdirectory (${HDF5_SOURCE_DIR}/tools/lib ${PROJECT_BINARY_DIR}/tools/lib)
       add_subdirectory (${HDF5_SOURCE_DIR}/test      ${PROJECT_BINARY_DIR}/test)
     endif (EXISTS "${HDF5_SOURCE_DIR}/test" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/test")
-    if (EXISTS "${HDF5_SOURCE_DIR}/perform" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/perform")
-      add_subdirectory (${HDF5_SOURCE_DIR}/perform   ${PROJECT_BINARY_DIR}/perform)
-    endif (EXISTS "${HDF5_SOURCE_DIR}/perform" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/perform")
     if (H5_HAVE_PARALLEL)
       if (EXISTS "${HDF5_SOURCE_DIR}/testpar" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/testpar")
         add_subdirectory (${HDF5_SOURCE_DIR}/testpar ${PROJECT_BINARY_DIR}/testpar)
@@ -779,6 +779,27 @@ if (BUILD_TESTING)
 endif (BUILD_TESTING)
 
 #-----------------------------------------------------------------------------
+# Option to build examples
+#-----------------------------------------------------------------------------
+if (EXISTS "${HDF5_SOURCE_DIR}/examples" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/examples")
+  option (HDF5_BUILD_EXAMPLES  "Build HDF5 Library Examples" ON)
+  if (HDF5_BUILD_EXAMPLES)
+    add_subdirectory (${HDF5_SOURCE_DIR}/examples ${PROJECT_BINARY_DIR}/examples)
+  endif (HDF5_BUILD_EXAMPLES)
+endif (EXISTS "${HDF5_SOURCE_DIR}/examples" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/examples")
+
+#-----------------------------------------------------------------------------
+# Option to build High Level API's
+#-----------------------------------------------------------------------------
+if (EXISTS "${HDF5_SOURCE_DIR}/hl" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/hl")
+  option (HDF5_BUILD_HL_LIB  "Build HIGH Level HDF5 Library" ON)
+  if (HDF5_BUILD_HL_LIB)
+    set (H5_INCLUDE_HL 1)
+    add_subdirectory (${HDF5_SOURCE_DIR}/hl ${PROJECT_BINARY_DIR}/hl)
+  endif (HDF5_BUILD_HL_LIB)
+endif (EXISTS "${HDF5_SOURCE_DIR}/hl" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/hl")
+
+#-----------------------------------------------------------------------------
 # Option to build Fortran bindings/tests/examples
 # Make sure this appears before the CONFIGURE_FILE step
 # so that fortran name mangling is detected before writing H5pubconf.h
@@ -792,7 +813,7 @@ if (EXISTS "${HDF5_SOURCE_DIR}/fortran" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/for
     if (BUILD_SHARED_LIBS AND APPLE)
       message (FATAL_ERROR " **** Shared FORTRAN libraries are unsupported **** ")
     endif (BUILD_SHARED_LIBS AND APPLE)
-    option (HDF5_ENABLE_F2003 "Enable FORTRAN 2003 Standard" OFF)
+    option (HDF5_ENABLE_F2003 "Enable FORTRAN 2003 Standard" ON)
     include (${HDF_RESOURCES_EXT_DIR}/HDFUseFortran.cmake)
     if (HDF5_ENABLE_F2003)
       if (NOT FORTRAN_HAVE_ISO_C_BINDING)
@@ -811,20 +832,10 @@ if (EXISTS "${HDF5_SOURCE_DIR}/fortran" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/for
 endif (EXISTS "${HDF5_SOURCE_DIR}/fortran" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/fortran")
 
 #-----------------------------------------------------------------------------
-# Option to build examples
-#-----------------------------------------------------------------------------
-if (EXISTS "${HDF5_SOURCE_DIR}/examples" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/examples")
-  option (HDF5_BUILD_EXAMPLES  "Build HDF5 Library Examples" OFF)
-  if (HDF5_BUILD_EXAMPLES)
-    add_subdirectory (${HDF5_SOURCE_DIR}/examples ${PROJECT_BINARY_DIR}/examples)
-  endif (HDF5_BUILD_EXAMPLES)
-endif (EXISTS "${HDF5_SOURCE_DIR}/examples" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/examples")
-
-#-----------------------------------------------------------------------------
 # Option to build HDF5 C++ Library
 #-----------------------------------------------------------------------------
 if (EXISTS "${HDF5_SOURCE_DIR}/c++" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/c++")
-  option (HDF5_BUILD_CPP_LIB  "Build HDF5 C++ Library" OFF)
+  option (HDF5_BUILD_CPP_LIB  "Build HDF5 C++ Library" ON)
   if (HDF5_BUILD_CPP_LIB)
     # check for unsupported options
     if (HDF5_ENABLE_PARALLEL)
@@ -834,6 +845,12 @@ if (EXISTS "${HDF5_SOURCE_DIR}/c++" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/c++")
       set (H5_NO_STD 1)
     endif (CMAKE_NO_STD_NAMESPACE)
     add_subdirectory (${HDF5_SOURCE_DIR}/c++ ${PROJECT_BINARY_DIR}/c++)
+    if (HDF5_BUILD_HL_LIB)
+      if (EXISTS "${HDF5_SOURCE_DIR}/hl/c++" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/hl/c++")
+        #-- Build the High Level Fortran source codes
+        add_subdirectory (${HDF5_SOURCE_DIR}/hl/c++ ${PROJECT_BINARY_DIR}/hl/c++)
+      endif (EXISTS "${HDF5_SOURCE_DIR}/hl/c++" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/hl/c++")
+    endif (HDF5_BUILD_HL_LIB)
   endif (HDF5_BUILD_CPP_LIB)
 endif (EXISTS "${HDF5_SOURCE_DIR}/c++" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/c++")
 
@@ -841,24 +858,13 @@ endif (EXISTS "${HDF5_SOURCE_DIR}/c++" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/c++"
 # Option to build HDF5 Tools
 #-----------------------------------------------------------------------------
 if (EXISTS "${HDF5_SOURCE_DIR}/tools" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/tools")
-  option (HDF5_BUILD_TOOLS  "Build HDF5 Tools" OFF)
+  option (HDF5_BUILD_TOOLS  "Build HDF5 Tools" ON)
   if (HDF5_BUILD_TOOLS)
     add_subdirectory (${HDF5_SOURCE_DIR}/tools ${PROJECT_BINARY_DIR}/tools)
   endif (HDF5_BUILD_TOOLS)
 endif (EXISTS "${HDF5_SOURCE_DIR}/tools" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/tools")
 
 #-----------------------------------------------------------------------------
-# Option to build High Level API's
-#-----------------------------------------------------------------------------
-if (EXISTS "${HDF5_SOURCE_DIR}/hl" AND IS_DIRECTORY "${HDF5_SOURCE_DIR}/hl")
-  option (HDF5_BUILD_HL_LIB  "Build HIGH Level HDF5 Library" OFF)
-  if (HDF5_BUILD_HL_LIB)
-    set (H5_INCLUDE_HL 1)
-    add_subdirectory (${HDF5_SOURCE_DIR}/hl ${PROJECT_BINARY_DIR}/hl)
-  endif (HDF5_BUILD_HL_LIB)
-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.
 #-----------------------------------------------------------------------------
diff --git a/COPYING b/COPYING
index 76dee1c..b6eee1e 100644
--- a/COPYING
+++ b/COPYING
@@ -4,7 +4,7 @@ HDF5 (Hierarchical Data Format 5) Software Library and Utilities
 -----------------------------------------------------------------------------
 
 HDF5 (Hierarchical Data Format 5) Software Library and Utilities
-Copyright 2006-2014 by The HDF Group.
+Copyright 2006-2015 by The HDF Group.
 
 NCSA HDF5 (Hierarchical Data Format 5) Software Library and Utilities
 Copyright 1998-2006 by the Board of Trustees of the University of Illinois.
diff --git a/CTestConfig.cmake b/CTestConfig.cmake
index a14f686..a0e2a67 100644
--- a/CTestConfig.cmake
+++ b/CTestConfig.cmake
@@ -23,9 +23,9 @@ set (VALGRIND_COMMAND_OPTIONS "-v --tool=memcheck --leak-check=full --track-fds=
 set (CTEST_MEMORYCHECK_COMMAND "/usr/bin/valgrind")
 set (CTEST_MEMORYCHECK_COMMAND_OPTIONS "-v --tool=memcheck --leak-check=full --track-fds=yes --num-callers=50 --show-reachable=yes --track-origins=yes --malloc-fill=0xff --free-fill=0xfe")
 
-set (CTEST_TEST_TIMEOUT 3600 CACHE STRING 
+set (CTEST_TEST_TIMEOUT 1200 CACHE STRING 
     "Maximum time allowed before CTest will kill the test.") 
-set (DART_TESTING_TIMEOUT 3600 CACHE STRING 
+set (DART_TESTING_TIMEOUT 1200 CACHE STRING 
     "Maximum time allowed before CTest will kill the test." FORCE)
 
 SET(CTEST_SUBMIT_RETRY_DELAY 20 CACHE STRING
diff --git a/MANIFEST b/MANIFEST
index 3944ffa..ad7d68d 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -33,6 +33,8 @@
 ./m4/ltversion.m4                       _DO_NOT_DISTRIBUTE_
 ./m4/lt~obsolete.m4                     _DO_NOT_DISTRIBUTE_
 ./m4/ltoptions.m4                       _DO_NOT_DISTRIBUTE_
+./m4/aclocal_cxx.m4
+./m4/aclocal_fc.m4
 ./README.txt
 ./aclocal.m4
 ./acsite.m4
@@ -41,6 +43,7 @@
 
 ./bin/COPYING
 ./bin/buildhdf5
+./bin/build_and_package_hdf5_binaries.sh  _DO_NOT_DISTRIBUTE_
 ./bin/checkapi        _DO_NOT_DISTRIBUTE_
 ./bin/checkposix      _DO_NOT_DISTRIBUTE_
 ./bin/chkconfigure      _DO_NOT_DISTRIBUTE_
@@ -67,6 +70,9 @@
 ./bin/make_overflow
 ./bin/make_vers
 ./bin/makehelp
+./bin/make1814TarFiles.pl       _DO_NOT_DISTRIBUTE_
+./bin/makeInternal1814README.pl _DO_NOT_DISTRIBUTE_
+./bin/makeOuter1814README.pl    _DO_NOT_DISTRIBUTE_
 ./bin/missing
 ./bin/mkdirs
 ./bin/mkinstalldirs
@@ -78,6 +84,7 @@
 ./bin/snapshot
 ./bin/snapshot_version      _DO_NOT_DISTRIBUTE_
 ./bin/test-driver
+./bin/testh51814binary.sh       _DO_NOT_DISTRIBUTE_
 ./bin/timekeeper      _DO_NOT_DISTRIBUTE_
 ./bin/trace
 ./bin/yodconfigure
@@ -85,6 +92,8 @@
 ./config/COPYING
 ./config/BlankForm
 ./config/apple
+./config/cce-fflags
+./config/cce-flags
 ./config/commence.am
 ./config/conclude.am
 ./config/craynv
@@ -101,7 +110,6 @@
 ./config/ibm-flags
 ./config/intel-fflags
 ./config/intel-flags
-./config/irix6.x
 ./config/linux-gnu
 ./config/linux-gnuaout
 ./config/linux-gnulibc1
@@ -441,34 +449,6 @@
 #
 #------------------------------------------------------------------------------
 
-./perform/COPYING
-./perform/Makefile.am
-./perform/Makefile.in
-./perform/benchpar.c
-./perform/build_h5perf_alone.sh
-./perform/build_h5perf_serial_alone.sh
-./perform/chunk.c
-./perform/gen_report.pl
-./perform/iopipe.c
-./perform/overhead.c
-./perform/perf.c
-./perform/perf_meta.c
-./perform/pio_engine.c
-./perform/pio_perf.c
-./perform/pio_perf.h
-./perform/pio_standalone.c
-./perform/pio_standalone.h
-./perform/pio_timer.c
-./perform/pio_timer.h
-./perform/sio_engine.c
-./perform/sio_perf.c
-./perform/sio_perf.h
-./perform/sio_standalone.c
-./perform/sio_standalone.h
-./perform/sio_timer.c
-./perform/sio_timer.h
-./perform/zip_perf.c
-
 ./release_docs/COPYING
 ./release_docs/HISTORY-1_0-1_8_0_rc3.txt
 ./release_docs/HISTORY-1_8.txt
@@ -476,7 +456,6 @@
 ./release_docs/INSTALL_CMake.txt
 ./release_docs/INSTALL_Cygwin.txt
 ./release_docs/INSTALL_parallel
-./release_docs/INSTALL_VMS.txt
 ./release_docs/INSTALL_Windows.txt
 ./release_docs/RELEASE.txt
 ./release_docs/USING_HDF5_CMake.txt
@@ -763,6 +742,7 @@
 ./src/H5Ptest.c
 ./src/H5PL.c
 ./src/H5PLprivate.h
+./src/H5PLpublic.h
 ./src/H5PLextern.h
 ./src/H5R.c
 ./src/H5Rdeprec.c
@@ -1028,6 +1008,8 @@
 ./testpar/t_coll_chunk.c
 ./testpar/t_filter_read.c
 ./testpar/t_shapesame.c
+./testpar/t_pshutdown.c
+./testpar/t_prestart.c
 ./testpar/t_span_tree.c
 ./testpar/testpar.h
 ./testpar/testphdf5.c
@@ -1179,6 +1161,8 @@
 ./tools/lib/h5tools_type.c
 ./tools/lib/ph5diff.h
 ./tools/lib/h5tools_error.h
+./tools/lib/io_timer.c
+./tools/lib/io_timer.h
 
 ./tools/misc/Makefile.am
 ./tools/misc/Makefile.in
@@ -1321,6 +1305,8 @@
 ./tools/testfiles/tbinregR.exp
 ./tools/testfiles/tbinregR.ddl
 ./tools/testfiles/tbitfields.h5
+./tools/testfiles/tbitnopaque.ddl
+./tools/testfiles/tbitnopaque.h5
 ./tools/testfiles/tboot1.ddl
 ./tools/testfiles/tboot2.ddl
 ./tools/testfiles/tboot2A.ddl
@@ -2002,6 +1988,7 @@
 ./tools/h5diff/testfiles/tmpSingleSiteBethe.output.h5
 
 #test files for h5repack
+./tools/h5repack/testfiles/README
 ./tools/h5repack/testfiles/h5repack_attr.h5
 ./tools/h5repack/testfiles/h5repack_attr_refs.h5
 ./tools/h5repack/testfiles/h5repack_deflate.h5
@@ -2019,6 +2006,8 @@
 ./tools/h5repack/testfiles/h5repack_layout3.h5
 ./tools/h5repack/testfiles/h5repack_layout.UD.h5
 ./tools/h5repack/testfiles/h5repack_named_dtypes.h5
+./tools/h5repack/testfiles/h5repack_nested_8bit_enum_deflated.h5
+./tools/h5repack/testfiles/h5repack_nested_8bit_enum.h5
 ./tools/h5repack/testfiles/h5repack_nbit.h5
 ./tools/h5repack/testfiles/h5repack_objs.h5
 ./tools/h5repack/testfiles/h5repack_refs.h5
@@ -2081,6 +2070,29 @@
 ./tools/testfiles/h5mkgrp_single_p.ls
 ./tools/testfiles/h5mkgrp_single_l.ls
 
+./tools/perform/COPYING
+./tools/perform/Makefile.am
+./tools/perform/Makefile.in
+./tools/perform/build_h5perf_alone.sh
+./tools/perform/build_h5perf_serial_alone.sh
+./tools/perform/chunk.c
+./tools/perform/gen_report.pl
+./tools/perform/iopipe.c
+./tools/perform/overhead.c
+./tools/perform/perf.c
+./tools/perform/perf_meta.c
+./tools/perform/pio_engine.c
+./tools/perform/pio_perf.c
+./tools/perform/pio_perf.h
+./tools/perform/pio_standalone.c
+./tools/perform/pio_standalone.h
+./tools/perform/sio_engine.c
+./tools/perform/sio_perf.c
+./tools/perform/sio_perf.h
+./tools/perform/sio_standalone.c
+./tools/perform/sio_standalone.h
+./tools/perform/zip_perf.c
+
 
 # high level libraries
 ./hl/COPYING
@@ -2187,6 +2199,8 @@
 ./hl/tools/gif2h5/writehdf.c
 ./hl/tools/gif2h5/h52gifgentst.c
 ./hl/tools/gif2h5/h52giftest.sh.in
+./hl/tools/gif2h5/testfiles/REAMDE
+./hl/tools/gif2h5/testfiles/ex_image2.h5
 ./hl/tools/gif2h5/testfiles/image1.gif
 ./hl/tools/gif2h5/testfiles/h52giftst.h5
 
@@ -2236,56 +2250,6 @@
 ./hl/c++/test/Makefile.am
 ./hl/c++/test/Makefile.in
 
-#vms files
-./vms/COPYING
-
-./vms/c++/examples/check.com
-./vms/c++/examples/make.com
-./vms/c++/src/make.com
-./vms/c++/test/check.com
-./vms/c++/test/make.com
-./vms/c++/test/H5srcdir_str.h
-
-./vms/fortran/examples/check.com
-./vms/fortran/examples/make.com
-./vms/fortran/src/make.com
-./vms/fortran/test/check.com
-./vms/fortran/test/make.com
-
-./vms/examples/check.com
-./vms/examples/make.com
-./vms/src/make.com
-./vms/src/h5pubconf.h
-./vms/test/check.com
-./vms/test/make.com
-./vms/test/H5srcdir_str.h
-
-./vms/build.com
-./vms/install.com
-./vms/make.com
-./vms/tools/h5copy/make.com
-./vms/tools/h5copy/check_h5copy.com
-./vms/tools/h5dump/make.com
-./vms/tools/h5dump/check_h5dump.com
-./vms/tools/h5ls/check_h5ls.com
-./vms/tools/h5ls/make.com
-./vms/tools/h5diff/check_h5diff.com
-./vms/tools/h5diff/make.com
-./vms/tools/h5diff/remove_exit.sh
-./vms/tools/h5import/check_h5import.com
-./vms/tools/h5import/make.com
-./vms/tools/h5jam/check_h5jam.com
-./vms/tools/h5jam/make.com
-./vms/tools/h5repack/check_h5repack.com
-./vms/tools/h5repack/make.com
-./vms/tools/h5stat/make.com
-./vms/tools/lib/make.com
-./vms/tools/misc/make.com
-./vms/tools/testfiles/tattr-3.ddl
-./vms/tools/testfiles/tdset-2.ddl
-./vms/tools/testfiles/tgroup-2.ddl
-./vms/tools/testfiles/tperror.ddl
-
 # CMake-specific Files
 ./config/cmake/cacheinit.cmake
 ./config/cmake/ConversionTests.c
@@ -2294,12 +2258,12 @@
 ./config/cmake/FindHDF5.cmake.in
 ./config/cmake/H5cxx_config.h.in
 ./config/cmake/H5pubconf.h.in
-./config/cmake/hdf5-config.cmake.build.in
-./config/cmake/hdf5-config.cmake.install.in
+./config/cmake/hdf5-config.cmake.in
 ./config/cmake/hdf5-config-version.cmake.in
 ./config/cmake/HDF5Macros.cmake
 ./config/cmake/libhdf5.settings.cmake.in
 ./config/cmake/mccacheinit.cmake
+./config/cmake/patch.xml
 ./config/cmake/PkgInfo.in
 ./config/cmake/README.txt.cmake.in
 ./config/cmake/userblockTest.cmake
@@ -2377,8 +2341,6 @@
 ./hl/test/CMakeTests.cmake
 ./hl/tools/CMakeLists.txt
 ./hl/tools/CMakeTests.cmake
-./perform/CMakeLists.txt
-./perform/CMakeTests.cmake
 ./src/CMakeLists.txt
 ./test/CMakeLists.txt
 ./test/CMakeTests.cmake
@@ -2406,3 +2368,5 @@
 ./tools/lib/CMakeLists.txt
 ./tools/misc/CMakeLists.txt
 ./tools/misc/CMakeTests.cmake
+./tools/perform/CMakeLists.txt
+./tools/perform/CMakeTests.cmake
diff --git a/Makefile.am b/Makefile.am
index 640fdcb..50e7928 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -73,8 +73,8 @@ else
 endif
 
 SUBDIRS = src test $(TESTPARALLEL_DIR) tools . $(CXX_DIR) $(FORTRAN_DIR) \
-          $(HDF5_HL_DIR) perform
-DIST_SUBDIRS = src test testpar tools . c++ fortran hl perform examples
+          $(HDF5_HL_DIR)
+DIST_SUBDIRS = src test testpar tools . c++ fortran hl examples
 
 # Some files generated during configure that should be cleaned
 DISTCLEANFILES=config/stamp1 config/stamp2
@@ -87,31 +87,23 @@ CHECK_CLEANFILES+=*-tmp
 test _test: check
 
 lib progs check-p check-s:
-	@@SETX@; for d in $(SUBDIRS); do                                \
+	for d in $(SUBDIRS); do                                \
 	  if test $$d != .; then                                        \
 	   (cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1;            \
 	  fi;                                                           \
 	done
 
-# Make all, tests, and (un)install also recurse into perform directory
-all-local:
-	@cd perform && $(MAKE) $(AM_MAKEFLAGS) all
-
+# Make all, tests, and (un)install
 tests:
-	@@SETX@; for d in $(SUBDIRS) perform; do                        \
+	for d in $(SUBDIRS); do                        \
 	  if test $$d != .; then                                        \
 	   (cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1;            \
 	  fi;                                                           \
 	done
 
-install-exec-local:
-	@cd perform && $(MAKE) $(AM_MAKEFLAGS) install
-uninstall-local:
-	@cd perform && $(MAKE) $(AM_MAKEFLAGS) uninstall
-
 # Check-clean also recurses into examples directory
 check-clean:
-	@@SETX@; for d in $(SUBDIRS) examples perform; do               \
+	for d in $(SUBDIRS) examples; do               \
 	  if test $$d != .; then                                        \
 	   (cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1;            \
 	  fi;                                                           \
@@ -138,7 +130,7 @@ uninstall-all:
 
 # Install examples in this directory and recursively
 install-examples uninstall-examples:
-	@@SETX@; for d in examples $(HDF5_INTERFACES) $(HL); do               \
+	for d in examples $(HDF5_INTERFACES) $(HL); do               \
 	    (cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1;           \
 	done
 
@@ -185,7 +177,7 @@ trace:
 # Run tests with different Virtual File Drivers.
 # Currently, only invoke check-vfd in the test directory.
 check-vfd:
-	@@SETX@; for d in src test; do                                 \
+	for d in src test; do                                 \
 	  if test $$d != .; then                                       \
 	    (cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1;          \
 	  fi;                                                          \
@@ -201,4 +193,4 @@ check-vfd:
 $(top_builddir)/config.status:
 
 # Don't include conclude.am in root Makefile; tests target needs to
-# recurse into perform directory as well as reguar subdirs.
+# recurse into reguar subdirs.
diff --git a/Makefile.in b/Makefile.in
index a8e0b61..b46cdd8 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -121,7 +121,8 @@ DIST_COMMON = $(top_srcdir)/config/commence.am $(srcdir)/Makefile.in \
 	$(top_srcdir)/bin/missing
 subdir = .
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \
+	$(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
@@ -244,7 +245,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@
 AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@
 AM_MAKEFLAGS = @AM_MAKEFLAGS@
 AR = @AR@
-AS = @AS@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -276,7 +276,6 @@ DIRECT_VFD = @DIRECT_VFD@
 DLLTOOL = @DLLTOOL@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
-DYNAMIC_DIRS = @DYNAMIC_DIRS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -295,17 +294,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@
 FCLIBS = @FCLIBS@
 FC_VERSION = @FC_VERSION@
 FGREP = @FGREP@
-FILTERS = @FILTERS@
 FSEARCH_DIRS = @FSEARCH_DIRS@
 GREP = @GREP@
 H5_CFLAGS = @H5_CFLAGS@
 H5_CPPFLAGS = @H5_CPPFLAGS@
 H5_CXXFLAGS = @H5_CXXFLAGS@
-H5_CXX_SHARED = @H5_CXX_SHARED@
 H5_FCFLAGS = @H5_FCFLAGS@
 H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@
 H5_LDFLAGS = @H5_LDFLAGS@
-H5_LONE_COLON = @H5_LONE_COLON@
 H5_VERSION = @H5_VERSION@
 HADDR_T = @HADDR_T@
 HAVE_DMALLOC = @HAVE_DMALLOC@
@@ -328,7 +324,6 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INSTRUMENT = @INSTRUMENT@
 INSTRUMENT_LIBRARY = @INSTRUMENT_LIBRARY@
-LARGEFILE = @LARGEFILE@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
@@ -369,7 +364,6 @@ R_INTEGER = @R_INTEGER@
 R_LARGE = @R_LARGE@
 SEARCH = @SEARCH@
 SED = @SED@
-SETX = @SETX@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIZE_T = @SIZE_T@
@@ -384,10 +378,6 @@ TR = @TR@
 TRACE_API = @TRACE_API@
 UNAME_INFO = @UNAME_INFO@
 USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@
-USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@
-USE_FILTER_NBIT = @USE_FILTER_NBIT@
-USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@
-USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@
 USE_FILTER_SZIP = @USE_FILTER_SZIP@
 USINGMEMCHECKER = @USINGMEMCHECKER@
 VERSION = @VERSION@
@@ -501,10 +491,10 @@ TRACE = perl $(top_srcdir)/bin/trace
 
 # .chkexe files are used to mark tests that have run successfully.
 # .chklog files are output from those tests.
-# *.clog are from the MPE option.
+# *.clog and *.clog2 are from the MPE option.
 
 # Some files/directories generated during check that should be cleaned
-CHECK_CLEANFILES = *.chkexe *.chklog *.clog *-tmp
+CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 *-tmp
 @BUILD_PARALLEL_CONDITIONAL_FALSE at TESTPARALLEL_DIR = 
 
 # Define subdirectories to build.
@@ -525,9 +515,9 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog *-tmp
 @BUILD_HDF5_HL_CONDITIONAL_FALSE at HDF5_HL_DIR = 
 @BUILD_HDF5_HL_CONDITIONAL_TRUE at HDF5_HL_DIR = hl
 SUBDIRS = src test $(TESTPARALLEL_DIR) tools . $(CXX_DIR) $(FORTRAN_DIR) \
-          $(HDF5_HL_DIR) perform
+          $(HDF5_HL_DIR)
 
-DIST_SUBDIRS = src test testpar tools . c++ fortran hl perform examples
+DIST_SUBDIRS = src test testpar tools . c++ fortran hl examples
 
 # Some files generated during configure that should be cleaned
 DISTCLEANFILES = config/stamp1 config/stamp2
@@ -872,7 +862,7 @@ distcleancheck: distclean
 	       exit 1; } >&2
 check-am: all-am
 check: check-recursive
-all-am: Makefile all-local
+all-am: Makefile
 installdirs: installdirs-recursive
 installdirs-am:
 install-exec: install-exec-recursive
@@ -932,7 +922,7 @@ install-dvi: install-dvi-recursive
 
 install-dvi-am:
 
-install-exec-am: install-exec-local
+install-exec-am:
 
 install-html: install-html-recursive
 
@@ -973,11 +963,11 @@ ps: ps-recursive
 
 ps-am:
 
-uninstall-am: uninstall-local
+uninstall-am:
 
 .MAKE: $(am__recursive_targets) install-am install-strip
 
-.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am all-local \
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
 	am--refresh check check-am clean clean-cscope clean-generic \
 	clean-libtool cscope cscopelist-am ctags ctags-am dist \
 	dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \
@@ -985,14 +975,14 @@ uninstall-am: uninstall-local
 	distclean-libtool distclean-tags distcleancheck distdir \
 	distuninstallcheck dvi dvi-am html html-am info info-am \
 	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-exec-local \
-	install-html install-html-am install-info install-info-am \
-	install-man install-pdf install-pdf-am install-ps \
-	install-ps-am install-strip installcheck installcheck-am \
-	installcheck-local installdirs installdirs-am maintainer-clean \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installcheck-local \
+	installdirs installdirs-am maintainer-clean \
 	maintainer-clean-generic mostlyclean mostlyclean-generic \
 	mostlyclean-libtool mostlyclean-local pdf pdf-am ps ps-am tags \
-	tags-am uninstall uninstall-am uninstall-local
+	tags-am uninstall uninstall-am
 
 
 # List all build rules defined by HDF5 Makefiles as "PHONY" targets here.
@@ -1011,31 +1001,23 @@ help:
 test _test: check
 
 lib progs check-p check-s:
-	@@SETX@; for d in $(SUBDIRS); do                                \
+	for d in $(SUBDIRS); do                                \
 	  if test $$d != .; then                                        \
 	   (cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1;            \
 	  fi;                                                           \
 	done
 
-# Make all, tests, and (un)install also recurse into perform directory
-all-local:
-	@cd perform && $(MAKE) $(AM_MAKEFLAGS) all
-
+# Make all, tests, and (un)install
 tests:
-	@@SETX@; for d in $(SUBDIRS) perform; do                        \
+	for d in $(SUBDIRS); do                        \
 	  if test $$d != .; then                                        \
 	   (cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1;            \
 	  fi;                                                           \
 	done
 
-install-exec-local:
-	@cd perform && $(MAKE) $(AM_MAKEFLAGS) install
-uninstall-local:
-	@cd perform && $(MAKE) $(AM_MAKEFLAGS) uninstall
-
 # Check-clean also recurses into examples directory
 check-clean:
-	@@SETX@; for d in $(SUBDIRS) examples perform; do               \
+	for d in $(SUBDIRS) examples; do               \
 	  if test $$d != .; then                                        \
 	   (cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1;            \
 	  fi;                                                           \
@@ -1062,7 +1044,7 @@ uninstall-all:
 
 # Install examples in this directory and recursively
 install-examples uninstall-examples:
-	@@SETX@; for d in examples $(HDF5_INTERFACES) $(HL); do               \
+	for d in examples $(HDF5_INTERFACES) $(HL); do               \
 	    (cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1;           \
 	done
 
@@ -1109,7 +1091,7 @@ trace:
 # Run tests with different Virtual File Drivers.
 # Currently, only invoke check-vfd in the test directory.
 check-vfd:
-	@@SETX@; for d in src test; do                                 \
+	for d in src test; do                                 \
 	  if test $$d != .; then                                       \
 	    (cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1;          \
 	  fi;                                                          \
@@ -1125,7 +1107,7 @@ check-vfd:
 $(top_builddir)/config.status:
 
 # Don't include conclude.am in root Makefile; tests target needs to
-# recurse into perform directory as well as reguar subdirs.
+# recurse into reguar subdirs.
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/README.txt b/README.txt
index 4850f47..fffe263 100644
--- a/README.txt
+++ b/README.txt
@@ -1,16 +1,22 @@
-HDF5 version 1.8.14 released on 2014-11-12
+HDF5 version 1.8.15 released on 2015-05-04
 Please refer to the release_docs/INSTALL file for installation instructions.
 ------------------------------------------------------------------------------
 
 This release is fully functional for the API described in the documentation. 
+
 See the RELEASE.txt file in the release_docs/ directory for information 
-specific to this release of the library.  Several INSTALL* files can also be 
-found in the release_docs/ directory:  INSTALL contains instructions for 
-compiling and installing the library;  INSTALL_parallel contains instructions 
-for installing the parallel version of the library;  similarly-named files
-contain instructions for VMS and several environments on MS Windows systems. 
+specific to this release of the library.  
+
+Several INSTALL* files can also be found in the release_docs/ directory:  
+ - INSTALL contains instructions for compiling and installing the HDF5 library  
+ - INSTALL_parallel contains instructions for installing the parallel HDF5
+   library
+ - Similarly-named files contain instructions for building with CMake on 
+   Windows and UNIX systems. 
+
+The HDF5 website is located at http://hdfgroup.org/HDF5/
 
-Documentation for this release can be found at the following URL:
+Documentation for HDF5 can be found at the following URL:
     http://www.hdfgroup.org/HDF5/doc/.
 
 The following  mailing lists are currently set up for HDF5 Library users:
@@ -33,6 +39,4 @@ Periodic code snapshots are provided at the following URL:
 Please read the README.txt file in that directory before working with a 
 library snapshot.
 
-The HDF5 website is located at http://hdfgroup.org/HDF5/
-
-Bugs should be reported to help at hdfgroup.org.
+Bugs and requests should be sent to help at hdfgroup.org.
diff --git a/aclocal.m4 b/aclocal.m4
index 1ecfa26..e10c539 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1183,6 +1183,8 @@ AC_SUBST([am__tar])
 AC_SUBST([am__untar])
 ]) # _AM_PROG_TAR
 
+m4_include([m4/aclocal_cxx.m4])
+m4_include([m4/aclocal_fc.m4])
 # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
 #
 #   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
diff --git a/bin/buildhdf5 b/bin/buildhdf5
index 8ed4696..3a4b0d3 100755
--- a/bin/buildhdf5
+++ b/bin/buildhdf5
@@ -159,19 +159,6 @@ LOCATE_SZLIB()
 		HP-UX)
 		    szlibpaths="/afs/ncsa/projects/hdf/packages/szip_new/HPUX-11.00"
 		    ;;
-		IRIX)
-		    szlibpaths="/afs/ncsa/projects/hdf/packages/szip_new/IRIX64-6.5-32bit"
-		    ;;
-		IRIX64)
-		    case "$CC" in
-		    *-n32)
-			szlibpaths="/afs/ncsa/projects/hdf/packages/szip_new/IRIX64-6.5-32bit"
-			;;
-		    *)
-			szlibpaths="/afs/ncsa/projects/hdf/packages/szip_new/IRIX64-6.5"
-			;;
-		    esac
-		    ;;
 		Linux)
 		    case `uname -m` in
 		    i686)
diff --git a/bin/chkmanifest b/bin/chkmanifest
index 70c38a9..646f815 100755
--- a/bin/chkmanifest
+++ b/bin/chkmanifest
@@ -20,75 +20,17 @@
 
 verbose=yes
 MANIFEST=/tmp/HD_MANIFEST.$$
-SVNENTRY=/tmp/HD_SVNENTRY.$$
-
-# function definitions
-
-GETSVNENTRIES_13 ()
-# Purpose: Extract filenames from the svn v1.3.* entries file
-# $1: directory name in which the svn entries is.
-# steps:
-# 1. remove all single line entries so that step 2 does not fail on them. 
-# 2. merge all multiple lines entries into single lines.
-# 3. remove all non file entries.
-# 4. insert a blank line because some entries files has no kind="file"
-#    entry and ed does not like to do g on an empty file.
-# 5. remove everything except the file name.
-# 6. remove all blank lines, including the inserted one.
-{
-cp $1/entries $SVNENTRY
-chmod u+w $SVNENTRY	# entries file is not writable.
-ed - $SVNENTRY <<EOF
-g/^<.*>$/d
-g/^</.,/>$/j
-v/kind="file"/d
-a
-
-.
-g/.*name="/s///
-g/".*/s///
-g/^$/d
-w
-q
-EOF
-cat $SVNENTRY
-rm $SVNENTRY
-}
-
-GETSVNENTRIES_14 ()
-# Purpose: Extract filenames from the svn v1.4.* entries file
-# $1: directory name in which the svn entries is.
-# steps:
-# 1. all valid files are followed by a line containing "file" only.
-# 2. find them by looking for "file" first, then mark its preceding line as
-#    wanted.
-# 3. remove all non-marked line.
-# 4. insert a blank line because some entries files has no kind="file"
-#    entry and ed does not like to do g on an empty file.
-# 5. remove the marks.
-{
-cp $1/entries $SVNENTRY
-chmod u+w $SVNENTRY	# entries file is not writable.
-ed - $SVNENTRY <<EOF
-g/^file$/-s/^/%WANTED%/
-v/%WANTED%/d
-a
-
-.
-g/^%WANTED%/s///
-w
-q
-EOF
-cat $SVNENTRY
-rm $SVNENTRY
-}
-
 
 # Main
 test "$verbose" && echo "   Checking MANIFEST..." 1>&2
 # clean up $MANIFEST file when exits
 trap "rm -f $MANIFEST" 0
 
+# Only split lines on newline, not whitespace
+set -f
+IFS='
+'
+
 # First make sure i am in the directory in which there is an MANIFEST file
 # and then do the checking from there.  Will try the following,
 # current directory, parent directory, the directory this command resides.
@@ -132,36 +74,55 @@ for file in `cat $MANIFEST`; do
     fi
 done
 
+# Get the list of files under version control and check that they are
+# present.
+#
+# First get a list of all the pending files with svn stat and
+# check those.
+svn_stat=`svn stat -q`
+for file in $svn_stat; do
+
+    # Newly added files are not listed by svn ls, which
+    # we check later.
+
+    # The line listing new files starts with 'A'.
+    letter=`echo $file | head -c 1`
+    if [ "$letter" = "A" ]; then
+        # Convert the seven Subversion status columns to './' so it matches
+        # the manifest file name.
+        #
+        # There is a space between the status columns and file name, hence
+        # the '8' instead of '7'.
+        path=`echo $file | sed 's/^.\{8\}/\.\//g'`
+        # Ignore directories
+        if [ ! -d $path ]; then
+            if (grep ^$path$ $MANIFEST >/dev/null); then
+                :
+            else
+                echo "- $path"
+                fail=yes
+            fi
+        fi
+    fi
+done
 
-# Inspect the .svn/entries to figure out what version of svn file entry is
-# used.
-# The following algorithm is formed via reverse engineering.
-# I don't know what the official svn format is if such a specification exists.
-# Algorithm:
-# If the first line of the file has 'xml version="1.0"' in it, it is created
-# by svn 1.3 or older; else if it has '^file$' in it, it is created by svn 1.4.
-svn_entry_file=.svn/entries
-if head -1 $svn_entry_file | grep 'xml version="1.0"' > /dev/null 2>&1;then
-    getsvnentries=GETSVNENTRIES_13
-elif grep '^file$' $svn_entry_file > /dev/null 2>&1; then
-    getsvnentries=GETSVNENTRIES_14
-else
-    echo "Unknown svn entries format. Aborted"
-    exit 1
-fi
-
-for svn in `find . -type d -name .svn -print`; do
-    path=`echo $svn |sed 's/\/.svn//'`
-    for file in `$getsvnentries $svn`; do
-	if (grep ^$path/$file$ $MANIFEST >/dev/null); then
-	    :
-	else
-	    echo "+ $path/$file"
-	    fail=yes
-	fi
-    done
+# Next check svn ls, which gets a list of all files that are
+# checked in.
+svn_ls=`svn ls -R`
+for file in $svn_ls; do
+    path="./${file}"
+    # Ignore directories
+    if [ ! -d $path ]; then
+        if (grep ^$path$ $MANIFEST >/dev/null); then
+            :
+        else
+            echo "+ $path"
+            fail=yes
+        fi
+    fi
 done
 
+# Finish up
 if [ "X$fail" = "Xyes" ]; then
     cat 1>&2 <<EOF
 The MANIFEST is out of date. Files marked with a minus sign (-) no
diff --git a/bin/cmakehdf5 b/bin/cmakehdf5
index 68a550e..715d6d7 100755
--- a/bin/cmakehdf5
+++ b/bin/cmakehdf5
@@ -23,29 +23,75 @@ makelog="#${progname}_2build.log"
 testlog="#${progname}_3test.log"
 packlog="#${progname}_4pack.log"
 installlog="#${progname}_5install.log"
-srcdir="../hdf5"	# expected source directory
+config_summary=libhdf5.settings
 exit_code=0
 
+# This command should be in the source directory's bin/
+# and should have invoked as "$srcdir/bin/$progname" or
+# "bin/$progname". So, by striping bin/$program from $0,
+# we can find $srcdir.
+if [ $0 == bin/$progname ]; then
+    srcdir="."		# current directory
+else
+    # $0 is $srdir/bin/$progname
+    srcdir=`echo $0 | sed -e s%/bin/$progname\$%%`
+fi
+# Sanity check
+if [ ! -r $srcdir/bin/$progname ]; then
+    echo "encountered error while trying to find srcdir($srdir)"
+    exit 1
+fi
+
 # 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
+cacheinit=$srcdir/config/cmake/cacheinit.cmake
+build_cpp_lib=-DHDF5_BUILD_CPP_LIB:BOOL=OFF	# C++ interface default off
+build_fortran=-DHDF5_BUILD_FORTRAN:BOOL=OFF	# Fortran interface default off
+enable_f2003=-DHDF5_ENABLE_F2003:BOOL=OFF	# Fortran2003 interface default off
 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
+with_zlib=-DHDF5_ENABLE_Z_LIB_SUPPORT=ON	# enable zlib filter default on
+with_szlib=-DHDF5_ENABLE_SZIP_SUPPORT=OFF	# enables zlib filter default off
+shared_lib=-DBUILD_SHARED_LIBS:BOOL=ON		# enables shared lib; default on
 
 
 #=============
 # Function definitions
 #=============
 
-# Show user help page
+# Show user brief help page
+HELP_BRIEF()
+{
+cat << EOF
+Usage: $progname [options]
+  --help: shows details help page
+EOF
+}
+
+# Show user detail help page
 HELP()
 {
-    echo "Usage: $progname [--script]"
-    echo "  --script: Use the ctest scripting method of $progname"
-    echo ""
+cat << EOF
+Usage: $progname [<options>]
+  where options are:
+  --enable-fortran | --disable-fortran:
+    enable or disable fortran API. Default is off.
+  --enable-fortran2003 | --disable-fortran2003:
+    enable or disable fortran2003 API. Default is off.
+  --enable-cxx | --disable-cxx:
+    enable or disable c++ API. Default is off.
+  --enable-hl | --disable-hl:
+    enable or disable high level API. Default is on.
+  --enable-shared | --disable-shared:
+    enable or disable shared lib. Default is on.
+  --enable-tools | --disable-tools:
+    enable or disable building tools. Default is on.
+  --enable-testing | --disable-testing:
+    enable or disable building tests. Default is on.
+  --with-zlib | --without-zlib:
+    Use zlib library for external deflate I/O filter. Default is on.
+  --help: shows details help page
+EOF
 }
 
 # Display a time stamp
@@ -71,7 +117,7 @@ STEP()
     (TIMESTAMP; nerror=0 ;
 	echo "eval $command"
 	eval $command || nerror=1 ;
-	TIMESTAMP; exit $nerror) < /dev/null >> "$logfile" 2>&1
+	TIMESTAMP; exit $nerror) < /dev/null > "$logfile" 2>&1
     if [ $? -ne 0 ]; then
 	echo "error in '$banner'.  $progname aborted."
 	exit 1
@@ -79,6 +125,40 @@ STEP()
 }
 
 
+# Install the generated installation image file.  Different platform uses
+# different image files.
+# Linux: HDF5-<version>-Linux.sh file
+# Mac OS X: Not implemented yet
+# Others: Not implemented yet
+INSTALL_HDF5()
+{
+    myos="`uname -s`"
+    case "$myos" in
+	Linux)
+	    install_file=./HDF5-${version}-Linux.sh
+	    $install_file  --skip-license $*
+	    ;;
+	Darwin)		# Mac OSX DMG file
+	    install_file=HDF5-${version}-Darwin.dmg
+	    test -d hdf5 || mkdir hdf5
+	    basename=`basename $install_file .dmg`
+	    # mount the DMG file as /Volumes/$basename
+	    # echo 'Y' as yes for license.
+	    echo Y | hdiutil mount $install_file
+	    # copy the contents to the install location
+	    cp -R "/Volumes/$basename/HDF_Group" hdf5
+	    # unmount the DMG file
+	    hdiutil unmount /Volumes/$basename
+	    ;;
+	*) 		# unknown/unsupported OS.
+	    echo "INSTALL_HDF5: Error--unknown/unsupported OS($myos)"
+	    return 1
+	    ;;
+    esac
+    return 0
+}
+
+
 #==========
 # main
 #==========
@@ -86,8 +166,80 @@ STEP()
 # Show a start time stamp
 TIMESTAMP
 
-# Always display the help page
-HELP
+# Parse Cmake configure options
+# --enable-XXX or --disable-XXX will enable or disable feature XXX.
+# XXX can be:
+# fortran	Fortran interface
+# cxx		C++ interface
+# hl		Highlevel interface
+# testing	Build tests
+# tools		Build tools
+while [ $# -gt 0 ]; do
+    case "$1" in
+	--enable-fortran)
+	    build_fortran=-DHDF5_BUILD_FORTRAN:BOOL=ON
+	    ;;
+	--disable-fortran)
+	    build_fortran=-DHDF5_BUILD_FORTRAN:BOOL=OFF
+	    ;;
+	--enable-fortran2003)
+	    enable_f2003=-DHDF5_ENABLE_F2003:BOOL=ON
+	    ;;
+	--disable-fortran2003)
+	    enable_f2003=-DHDF5_ENABLE_F2003:BOOL=OFF
+	    ;;
+	--enable-cxx)
+	    build_cpp_lib=-DHDF5_BUILD_CPP_LIB:BOOL=ON
+	    ;;
+	--disable-cxx)
+	    build_cpp_lib=-DHDF5_BUILD_CPP_LIB:BOOL=OFF
+	    ;;
+	--enable-hl)
+	    build_hl_lib=-DHDF5_BUILD_HL_LIB:BOOL=ON
+	    ;;
+	--disable-hl)
+	    build_hl_lib=-DHDF5_BUILD_HL_LIB:BOOL=OFF
+	    ;;
+	--enable-shared)
+	    shared_lib=-DBUILD_SHARED_LIBS:BOOL=ON
+	    ;;
+	--disable-shared)
+	    shared_lib=-DBUILD_SHARED_LIBS:BOOL=OFF
+	    ;;
+	--enable-tools)
+	    build_tools=-DHDF5_BUILD_TOOLS:BOOL=ON
+	    ;;
+	--disable-tools)
+	    build_tools=-DHDF5_BUILD_TOOLS:BOOL=OFF
+	    ;;
+	--enable-testing)
+	    build_testing=-DBUILD_TESTING:BOOL=ON
+	    ;;
+	--disable-testing)
+	    build_testing=-DBUILD_TESTING:BOOL=OFF
+	    ;;
+	--with-zlib)
+	    with_zlib=-DHDF5_ENABLE_Z_LIB_SUPPORT:BOOL=ON
+	    ;;
+	--without-zlib)
+	    with_zlib=-DHDF5_ENABLE_Z_LIB_SUPPORT:BOOL=OFF
+	    ;;
+	--help)
+	    # print the detail help page and exit
+	    HELP
+	    exit 0
+	    ;;
+	*)
+	    echo "Unknown options: $1"
+	    HELP
+	    exit 1
+	    ;;
+    esac
+    shift
+done
+
+# Always display the brief help page
+HELP_BRIEF
 
 # Verify there is a valid hdf5 source directory present
 if [ ! -d $srcdir ]; then
@@ -106,16 +258,22 @@ if [ $? != 0 ]; then
     echo $vers failed. Aborted.
     exit 1
 fi
-echo Running Cmake for HDF5-${version} ...
-
+echo Running Cmake for HDF5-${version} ...  
 #      4. Configure the C library, tools and tests with this command:
+#         If successful, append the configure summary to the configure logfile.
 STEP "Configure..." "cmake \
+    -C $cacheinit \
     $build_cpp_lib \
     $build_fortran \
+    $enable_f2003 \
     $build_hl_lib \
+    $shared_lib \
     $build_testing \
     $build_tools \
-    $hdf5_src" $configlog
+    $with_zlib \
+    $with_szlib \
+    $srcdir" $configlog &&\
+    cat $config_summary >> $configlog
       
 #      5. Build the C library, tools and tests with this command:
 STEP "Build the library, tools and tests, ..." "cmake --build . --config Release" $makelog
@@ -127,7 +285,8 @@ STEP "Test the library and tools..." "ctest . -C Release" $testlog
 STEP "Create an install image..." "cpack -C Release CPackConfig.cmake" $packlog
       
 #      8. Install with this command:
-STEP "Install..." "./HDF5-${version}-Linux.sh --skip-license" $installlog
+#STEP "Install..." "./HDF5-${version}-Linux.sh --skip-license" $installlog
+STEP "Install..." "INSTALL_HDF5" $installlog
 # save the last exit code
 exit_code=$?
 
@@ -191,7 +350,7 @@ EOF
 #==========
 #==========
 cat > $cfgfile <<'EOF'
-cmake_minimum_required(VERSION 2.8.10 FATAL_ERROR)
+cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR)
 ########################################################
 # This dashboard is maintained by The HDF Group
 # For any comments please contact cdashhelp at hdfgroup.org
diff --git a/bin/h5vers b/bin/h5vers
index 475ff5a..2aa8023 100755
--- a/bin/h5vers
+++ b/bin/h5vers
@@ -159,10 +159,10 @@ while ($_ = shift) {
 die "mutually exclusive options given\n" if $set && $inc;
 
 # Determine file to use as H5public.h, README.txt,
-# release_docs/RELEASE.txt, configure.ac, windows/src/H5pubconf.h,
-# vms/src/h5pubconf.h and config/lt_vers.am. 
+# release_docs/RELEASE.txt, configure.ac, windows/src/H5pubconf.h
+# and config/lt_vers.am. 
 # The README.txt, release_docs/RELEASE.txt, configure.ac, 
-# vms/src/h5pubconf.h, windows/src/H5pubconf.h, and config/lt_vers.am 
+# windows/src/H5pubconf.h, and config/lt_vers.am 
 # files are always in the directory above H5public.h
 unless ($file) {
   for (@files) {
@@ -187,10 +187,10 @@ die "unable to read file: $RELEASE\n" unless -r $file;
 my $CONFIGURE = $file;
 $CONFIGURE =~ s/[^\/]*$/..\/configure.ac/;
 die "unable to read file: $CONFIGURE\n" unless -r $file;
-# vms/src/h5pubconf.h
-my $H5VMSPUBCONF = $file;
-$H5VMSPUBCONF =~ s/[^\/]*$/..\/vms\/src\/h5pubconf.h/;
-die "unable to read file: $H5VMSPUBCONF\n" unless -r $file;
+# cpp_doc_config
+my $CPP_DOC_CONFIG = $file;
+$CPP_DOC_CONFIG =~ s/[^\/]*$/..\/c++\/src\/cpp_doc_config/;
+die "unable to read file: $CPP_DOC_CONFIG\n"  unless -r $file;
 
 # Get the current version number.
 open FILE, $file or die "unable to open $file: $!\n";
@@ -238,8 +238,8 @@ if ($set) {
   $README = "";
   $RELEASE = "";
   $CONFIGURE = "";
-  $H5VMSPUBCONF = "";
-  $LT_VERS = "";
+  $CPP_DOC_CONFIG = "";
+  $LT_VERS = "";        
   @newver = @curver;
 }
 
@@ -314,6 +314,46 @@ if ($RELEASE) {
   close FILE;
 }
 
+# Update the c++/src/cpp_doc_config file
+if ($CPP_DOC_CONFIG) {
+  my $data = read_file($CPP_DOC_CONFIG);
+  my $version_string = sprintf("HDF5 version %d.%d.%d%s %s",
+                               @newver[0,1,2],
+                               $newver[3] eq "" ? "" : "-".$newver[3],
+                               "currently under development");
+
+  $data =~ s/PROJECT_NUMBER\s*=.*/PROJECT_NUMBER         = $version_string/;
+
+  write_file($CPP_DOC_CONFIG, $data);  
+}
+
+# helper function to read the file for updating c++/src/cpp_doc_config file.
+# The version string in that file is not at the top, so the string replacement
+# is not for the first line, and reading/writing the entire file as one string
+# facilitates the substring replacement.
+sub read_file {
+   my ($filename) = @_;
+
+    open my $in, $filename or die "Could not open '$filename' for reading $!";
+    local $/ = undef;
+    my $all = <$in>;
+    close $in;
+
+    return $all;
+}
+
+# helper function to write the file for updating c++/src/cpp_doc_config file.
+sub write_file {
+    my ($filename, $content) = @_;
+
+    open my $out, ">$filename" or die "Could not open '$filename' for writing $!";;
+    print $out $content;
+    close $out;
+
+    return;
+}
+
+
 sub gen_configure {
   my ($name, $conf) = @_;
 
@@ -387,9 +427,6 @@ sub gen_h5pubconf {
     close FILE;
 }
 
-# Update the VMS-maintained h5pubconf.h file
-gen_h5pubconf("HDF5", $H5VMSPUBCONF, @newver) if $H5VMSPUBCONF;
-    
 # Print the new version number
 if ($verbose) {
   printf("version %d.%d release %d%s\n", @newver[0,1,2],
diff --git a/bin/locate_sw b/bin/locate_sw
index 2f2b544..c9a7924 100755
--- a/bin/locate_sw
+++ b/bin/locate_sw
@@ -67,33 +67,6 @@ case "$OSname" in
               ;;
         esac
 	;;
-    IRIX)
-	swpaths="/afs/ncsa/packages/hdf/IRIX_6.5"
-	;;
-    IRIX64)
-	case "$CC" in
-	cc|"")	#default cc
-	    abi=`cc -show_defaults 2>&1 | grep 'default abi'`
-	    case $abi in
-	    *-n32)
-		swpaths="/afs/ncsa/packages/hdf/IRIX64-n32_6.5"
-		;;
-	    *-64)
-		swpaths="/afs/ncsa/packages/hdf/IRIX64_6.5"
-		;;
-	    *)
-		swpaths="/afs/ncsa/packages/hdf/IRIX64_6.5"
-		;;
-	    esac	# $abi
-	    ;;
-	*-n32)
-	    swpaths="/afs/ncsa/packages/hdf/IRIX64-n32_6.5"
-	    ;;
-	*)
-	    swpaths="/afs/ncsa/packages/hdf/IRIX64_6.5"
-	    ;;
-	esac
-	;;
     Linux)
 	swpaths="/afs/ncsa/packages/hdf/Linux"
 	;;
@@ -150,36 +123,6 @@ case "$OSname" in
               ;;
         esac
 	;;
-    IRIX)
-	swpaths="/afs/ncsa/packages/hdf5/IRIX_6.5"
-	;;
-    IRIX64)
-	case "$CC" in
-	cc|"")	#default cc
-	    abi=`cc -show_defaults 2>&1 | grep 'default abi'`
-	    case $abi in
-	    *-n32)
-		swpaths="/afs/ncsa/packages/hdf5/IRIX64-n32_6.5"
-		;;
-	    *-64)
-		#swpaths="/afs/ncsa/packages/hdf5/IRIX64_6.5"
-                swpaths="/afs/ncsa/packages/hdf5/5-1.4.3-irix64"
-		;;
-	    *)
-		#swpaths="/afs/ncsa/packages/hdf5/IRIX64_6.5"
-                swpaths="/afs/ncsa/packages/hdf5/5-1.4.3-irix64"  
-		;;
-	    esac	# $abi
-	    ;;
-	*-n32)
-	    swpaths="/afs/ncsa/packages/hdf5/IRIX64-n32_6.5"
-	    ;;
-	*)
-	    #swpaths="/afs/ncsa/packages/hdf5/IRIX64_6.5"
-            swpaths="/afs/ncsa/packages/hdf5/5-1.4.3-irix64"
-	    ;;
-	esac
-	;;
     Linux)
 	swpaths="/afs/ncsa/packages/hdf5/Linux"
 	;;
diff --git a/bin/release b/bin/release
index ed95f4b..add2b39 100755
--- a/bin/release
+++ b/bin/release
@@ -40,46 +40,46 @@
 USAGE()
 {
 cat << EOF
-Usage: $0 [--nocheck] [-d <dir>] [-h] <methods> ...
+Usage: $0 -d <dir> [--docver BRANCHNAME] [-h] [--nocheck] [--private] <methods> ...
    -d DIR	The name of the directory where the releas(es) should be
                 placed.
-
    --docver BRANCHNAME  This is added for 1.8 and beyond to get the correct
                         version of documentation files from the hdf5docs
                         repository.  BRANCHNAME for v1.8 should be hdf5_1_8.
-
+   -h           print the help page.
    --nocheck	Ignore errors in MANIFEST file.
-         
    --private	Make a private release with today's date in version information.
          
 This must be run at the top level of the source directory.
 The other command-line options are the names of the programs to use
 for compressing the resulting tar archive (if none are given then
-"tar md5" is assumed):
+"tar" is assumed):
 
     tar		-- use tar and don't do any compressing.
     gzip	-- use gzip with "-9" and append ".gz" to the output name.
     bzip2       -- use bzip2 with "-9" and append ".bz2" to the output name.
     zip		-- convert all text files to DOS style and form a zip file for Windows use.
-    md5         -- produce a md5 checksum in addition to the archive.
     doc         -- produce the latest doc tree in addition to the archive.
 
+An md5 checksum is produced for each archive created and stored in the md5 file.
+
 Examples:
 
     $ bin/release -d /tmp
     /tmp/hdf5-1.8.13-RELEASE.txt
+    /tmp/hdf5-1.8.13.md5
     /tmp/hdf5-1.8.13.tar
-    /tmp/hdf5-1.8.13.tar.md5
 
     $ bin/release -d /tmp gzip
     /tmp/hdf5-1.8.13-RELEASE.txt
+    /tmp/hdf5-1.8.13.md5
     /tmp/hdf5-1.8.13.tar.gz
 
-    $ bin/release -d /tmp tar gzip zip md5
+    $ bin/release -d /tmp tar gzip zip
     /tmp/hdf5-1.8.13-RELEASE.txt
+    /tmp/hdf5-1.8.13.md5
     /tmp/hdf5-1.8.13.tar
     /tmp/hdf5-1.8.13.tar.gz
-    /tmp/hdf5-1.8.13.tar.md5
     /tmp/hdf5-1.8.13.tar.zip
 
 EOF
@@ -221,9 +221,9 @@ while [ -n "$1" ]; do
     esac
 done
 
-# Default methods are tar and md5
+# Default method is tar
 if [ "X$methods" = "X" ]; then
-    methods="tar md5"
+    methods="tar"
 fi
 
 # Create the temporay work directory.
@@ -303,26 +303,28 @@ test "$verbose" && echo "   Running tar..." 1>&2
 )
 
 # Compress
+MD5file=$HDF5_VERS.md5
+cp /dev/null $DEST/$MD5file
 for comp in $methods; do
     case $comp in
 	tar)
 	    cp -p $tmpdir/$HDF5_VERS.tar $DEST/$HDF5_VERS.tar
+	    (cd $DEST; md5sum $HDF5_VERS.tar >> $MD5file) 
 	    ;;
 	gzip)
 	    test "$verbose" && echo "   Running gzip..." 1>&2
 	    gzip -9 <$tmpdir/$HDF5_VERS.tar >$DEST/$HDF5_VERS.tar.gz
+	    (cd $DEST; md5sum $HDF5_VERS.tar.gz >> $MD5file) 
 	    ;;
 	bzip2)
 	    test "$verbose" && echo "   Running bzip2..." 1>&2
 	    bzip2 -9 <$tmpdir/$HDF5_VERS.tar >$DEST/$HDF5_VERS.tar.bz2
+	    (cd $DEST; md5sum $HDF5_VERS.tar.bz2 >> $MD5file) 
 	    ;;
 	zip)
 	    test "$verbose" && echo "   Creating zip ball..." 1>&2
 	    tar2zip $HDF5_VERS $tmpdir/$HDF5_VERS.tar $DEST/$HDF5_VERS.zip 1>&2
-	    ;;
-	md5)
-	    test "$verbose" && echo "   Creating checksum..." 1>&2
-	    (cd $tmpdir; md5sum $HDF5_VERS.tar ) > $DEST/$HDF5_VERS.tar.md5
+	    (cd $DEST; md5sum $HDF5_VERS.zip >> $MD5file) 
 	    ;;
 	doc)
             if [ "${DOCVERSION}" = "" ]; then
diff --git a/bin/trace b/bin/trace
index 4720680..f2eaf3b 100755
--- a/bin/trace
+++ b/bin/trace
@@ -115,7 +115,8 @@ $Source = "";
                "H5G_iterate_t"              => "x",
 	       "H5G_info_t"                 => "x",
 	       "H5I_free_t"                 => "x",
-               "H5L_class_t"                => "x",
+                "H5I_search_func_t"         => "x",
+                "H5L_class_t"                => "x",
                "H5L_elink_traverse_t"       => "x",
                "H5L_iterate_t"              => "x",
                "H5MM_allocate_t"            => "x",
@@ -278,14 +279,10 @@ sub rewrite_func ($$$$$) {
 
   # The H5TRACE() statement
   if ($body =~ /\/\*[ \t]*NO[ \t]*TRACE[ \t]*\*\//) {
-    if ($body =~ /\s*H5TRACE\d+\s*\(/) {
-      errmesg $file, $name, "warning: trace info was not updated because of NO TRACE comment";
-    } else {
-      errmesg $file, $name, "warning: trace info was not inserted because of NO TRACE comment";
-    }
+    # Ignored due to NO TRACE comment.
   } elsif ($body =~ s/((\n[ \t]*)H5TRACE\d+\s*\(.*?\);)\n/"$2$trace"/es) {
-    # Replaced an H5TRACE macro
-  } elsif ($body=~s/((\n[ \t]*)FUNC_ENTER\w*\s*\(.*?\);??)\n/"$1$2$trace"/es) {
+    # Replaced an H5TRACE macro.
+  } elsif ($body=~s/((\n[ \t]*)FUNC_ENTER\w*\s*(\(.*?\))?;??)\n/"$1$2$trace"/es) {
     # Added an H5TRACE macro after a FUNC_ENTER macro.
   } else {
     errmesg $file, $name, "unable to insert tracing information";
@@ -314,14 +311,14 @@ for $file (@ARGV) {
 
     # Make modifications
     my $original = $Source;
-    my $napi = $Source =~ s/\n([A-Za-z]\w*(\s+[a-z]\w*)*)\s*\n #type
+    my $napi = $Source =~ s/\n([A-Za-z]\w*(\s+[A-Za-z]\w*)*\s*\**)\n #type
                               (H5[A-Z]{0,2}[^_A-Z0-9]\w*)      #name
                               \s*\((.*?)\)\s*               #args
                               (\{.*?\n\}[^\n]*)             #body
                            /rewrite_func($file,$1,$3,$4,$5)/segx;
     $total_api += $napi;
 
-    # If the source changed then print out the new version
+# If the source changed then print out the new version
     if ($original ne $Source) {
       printf "%s: instrumented %d API function%s\n", 
              $file, $napi, 1==$napi?"":"s";
@@ -332,3 +329,6 @@ for $file (@ARGV) {
     }
   }
 }
+
+printf "Finished processing HDF5 API calls\n"
+
diff --git a/c++/CMakeLists.txt b/c++/CMakeLists.txt
index 63fc083..39280e8 100644
--- a/c++/CMakeLists.txt
+++ b/c++/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required (VERSION 2.8.11)
+cmake_minimum_required (VERSION 3.1.0)
 PROJECT (HDF5_CPP)
 
 #-----------------------------------------------------------------------------
diff --git a/c++/Makefile.in b/c++/Makefile.in
index de87fa5..c964e95 100644
--- a/c++/Makefile.in
+++ b/c++/Makefile.in
@@ -101,7 +101,8 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \
 TESTS =
 subdir = c++
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \
+	$(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs
@@ -404,7 +405,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@
 AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@
 AM_MAKEFLAGS = @AM_MAKEFLAGS@
 AR = @AR@
-AS = @AS@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -436,7 +436,6 @@ DIRECT_VFD = @DIRECT_VFD@
 DLLTOOL = @DLLTOOL@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
-DYNAMIC_DIRS = @DYNAMIC_DIRS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -455,17 +454,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@
 FCLIBS = @FCLIBS@
 FC_VERSION = @FC_VERSION@
 FGREP = @FGREP@
-FILTERS = @FILTERS@
 FSEARCH_DIRS = @FSEARCH_DIRS@
 GREP = @GREP@
 H5_CFLAGS = @H5_CFLAGS@
 H5_CPPFLAGS = @H5_CPPFLAGS@
 H5_CXXFLAGS = @H5_CXXFLAGS@
-H5_CXX_SHARED = @H5_CXX_SHARED@
 H5_FCFLAGS = @H5_FCFLAGS@
 H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@
 H5_LDFLAGS = @H5_LDFLAGS@
-H5_LONE_COLON = @H5_LONE_COLON@
 H5_VERSION = @H5_VERSION@
 HADDR_T = @HADDR_T@
 HAVE_DMALLOC = @HAVE_DMALLOC@
@@ -488,7 +484,6 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INSTRUMENT = @INSTRUMENT@
 INSTRUMENT_LIBRARY = @INSTRUMENT_LIBRARY@
-LARGEFILE = @LARGEFILE@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
@@ -529,7 +524,6 @@ R_INTEGER = @R_INTEGER@
 R_LARGE = @R_LARGE@
 SEARCH = @SEARCH@
 SED = @SED@
-SETX = @SETX@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIZE_T = @SIZE_T@
@@ -544,10 +538,6 @@ TR = @TR@
 TRACE_API = @TRACE_API@
 UNAME_INFO = @UNAME_INFO@
 USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@
-USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@
-USE_FILTER_NBIT = @USE_FILTER_NBIT@
-USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@
-USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@
 USE_FILTER_SZIP = @USE_FILTER_SZIP@
 USINGMEMCHECKER = @USINGMEMCHECKER@
 VERSION = @VERSION@
@@ -661,8 +651,8 @@ TRACE = perl $(top_srcdir)/bin/trace
 
 # .chkexe files are used to mark tests that have run successfully.
 # .chklog files are output from those tests.
-# *.clog are from the MPE option.
-CHECK_CLEANFILES = *.chkexe *.chklog *.clog
+# *.clog and *.clog2 are from the MPE option.
+CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2
 @BUILD_CXX_CONDITIONAL_TRUE at SUBDIRS = src test
 DIST_SUBDIRS = src test examples
 
diff --git a/c++/examples/CMakeLists.txt b/c++/examples/CMakeLists.txt
index e3e1077..ff375f3 100644
--- a/c++/examples/CMakeLists.txt
+++ b/c++/examples/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required (VERSION 2.8.11)
+cmake_minimum_required (VERSION 3.1.0)
 # --------------------------------------------------------------------
 # Notes: When creating examples they should be prefixed
 # with "cpp_ex_". This allows for easier filtering of the examples.
@@ -35,7 +35,7 @@ set (tutr_examples
 foreach (example ${examples})
   add_executable (cpp_ex_${example} ${HDF5_CPP_EXAMPLES_SOURCE_DIR}/${example}.cpp)
   TARGET_NAMING (cpp_ex_${example} ${LIB_TYPE})
-  TARGET_C_PROPERTIES (cpp_ex_${example} " " " ")
+  TARGET_C_PROPERTIES (cpp_ex_${example} ${LIB_TYPE} " " " ")
   target_link_libraries (cpp_ex_${example} ${HDF5_CPP_LIB_TARGET} ${HDF5_LIB_TARGET})
   set_target_properties (cpp_ex_${example} PROPERTIES FOLDER examples/cpp)
 endforeach (example ${examples})
@@ -43,7 +43,7 @@ endforeach (example ${examples})
 foreach (example ${tutr_examples})
   add_executable (cpp_ex_${example} ${HDF5_CPP_EXAMPLES_SOURCE_DIR}/${example}.cpp)
   TARGET_NAMING (cpp_ex_${example} ${LIB_TYPE})
-  TARGET_C_PROPERTIES (cpp_ex_${example} " " " ")
+  TARGET_C_PROPERTIES (cpp_ex_${example} ${LIB_TYPE} " " " ")
   target_link_libraries (cpp_ex_${example} ${HDF5_CPP_LIB_TARGET} ${HDF5_LIB_TARGET})
   set_target_properties (cpp_ex_${example} PROPERTIES FOLDER examples/cpp)
 endforeach (example ${tutr_examples})
diff --git a/c++/examples/Makefile.am b/c++/examples/Makefile.am
index 92c757f..2408217 100644
--- a/c++/examples/Makefile.am
+++ b/c++/examples/Makefile.am
@@ -52,6 +52,7 @@ CXX_API=yes
 # Where to install examples
 # Note: no '/' after DESTDIR.  Explanation in commence.am
 EXAMPLEDIR=${DESTDIR}$(exec_prefix)/share/hdf5_examples/c++
+EXAMPLETOPDIR=${DESTDIR}$(exec_prefix)/share/hdf5_examples
 
 # How to build programs using h5c++
 $(EXTRA_PROG): $(H5CPP)
diff --git a/c++/examples/Makefile.in b/c++/examples/Makefile.in
index 90dfed3..03bd135 100644
--- a/c++/examples/Makefile.in
+++ b/c++/examples/Makefile.in
@@ -107,7 +107,8 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \
 TESTS = $(TEST_SCRIPT)
 subdir = c++/examples
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \
+	$(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs
@@ -352,7 +353,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@
 AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@
 AM_MAKEFLAGS = @AM_MAKEFLAGS@
 AR = @AR@
-AS = @AS@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -384,7 +384,6 @@ DIRECT_VFD = @DIRECT_VFD@
 DLLTOOL = @DLLTOOL@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
-DYNAMIC_DIRS = @DYNAMIC_DIRS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -403,17 +402,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@
 FCLIBS = @FCLIBS@
 FC_VERSION = @FC_VERSION@
 FGREP = @FGREP@
-FILTERS = @FILTERS@
 FSEARCH_DIRS = @FSEARCH_DIRS@
 GREP = @GREP@
 H5_CFLAGS = @H5_CFLAGS@
 H5_CPPFLAGS = @H5_CPPFLAGS@
 H5_CXXFLAGS = @H5_CXXFLAGS@
-H5_CXX_SHARED = @H5_CXX_SHARED@
 H5_FCFLAGS = @H5_FCFLAGS@
 H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@
 H5_LDFLAGS = @H5_LDFLAGS@
-H5_LONE_COLON = @H5_LONE_COLON@
 H5_VERSION = @H5_VERSION@
 HADDR_T = @HADDR_T@
 HAVE_DMALLOC = @HAVE_DMALLOC@
@@ -436,7 +432,6 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INSTRUMENT = @INSTRUMENT@
 INSTRUMENT_LIBRARY = @INSTRUMENT_LIBRARY@
-LARGEFILE = @LARGEFILE@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
@@ -477,7 +472,6 @@ R_INTEGER = @R_INTEGER@
 R_LARGE = @R_LARGE@
 SEARCH = @SEARCH@
 SED = @SED@
-SETX = @SETX@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIZE_T = @SIZE_T@
@@ -492,10 +486,6 @@ TR = @TR@
 TRACE_API = @TRACE_API@
 UNAME_INFO = @UNAME_INFO@
 USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@
-USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@
-USE_FILTER_NBIT = @USE_FILTER_NBIT@
-USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@
-USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@
 USE_FILTER_SZIP = @USE_FILTER_SZIP@
 USINGMEMCHECKER = @USINGMEMCHECKER@
 VERSION = @VERSION@
@@ -609,8 +599,8 @@ TRACE = perl $(top_srcdir)/bin/trace
 
 # .chkexe files are used to mark tests that have run successfully.
 # .chklog files are output from those tests.
-# *.clog are from the MPE option.
-CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.h5
+# *.clog and *.clog2 are from the MPE option.
+CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 *.h5
 INSTALL_SCRIPT_FILES = run-c++-ex.sh
 
 # These are the programs that 'make all' or 'make prog' will build and
@@ -637,6 +627,7 @@ CXX_API = yes
 # Where to install examples
 # Note: no '/' after DESTDIR.  Explanation in commence.am
 EXAMPLEDIR = ${DESTDIR}$(exec_prefix)/share/hdf5_examples/c++
+EXAMPLETOPDIR = ${DESTDIR}$(exec_prefix)/share/hdf5_examples
 
 # Assume that all tests in this directory are examples, and tell
 # conclude.am when to build them.
diff --git a/c++/src/CMakeLists.txt b/c++/src/CMakeLists.txt
index b07ab2b..2f3a0c4 100644
--- a/c++/src/CMakeLists.txt
+++ b/c++/src/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required (VERSION 2.8.11)
+cmake_minimum_required (VERSION 3.1.0)
 PROJECT (HDF5_CPP_SRC)
 
 #-----------------------------------------------------------------------------
@@ -84,7 +84,7 @@ set (CPP_HDRS
 )
 
 add_library (${HDF5_CPP_LIB_TARGET} ${LIB_TYPE} ${CPP_SRCS} ${CPP_HDRS})
-TARGET_C_PROPERTIES (${HDF5_CPP_LIB_TARGET} " " " ")
+TARGET_C_PROPERTIES (${HDF5_CPP_LIB_TARGET} ${LIB_TYPE} " " " ")
 target_link_libraries (${HDF5_CPP_LIB_TARGET} ${HDF5_LIB_TARGET})
 set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_CPP_LIB_TARGET}")
 H5_SET_LIB_OPTIONS (${HDF5_CPP_LIB_TARGET} ${HDF5_CPP_LIB_NAME} ${LIB_TYPE})
@@ -110,7 +110,7 @@ install (
 #-----------------------------------------------------------------------------
 if (HDF5_EXPORTED_TARGETS)
   if (BUILD_SHARED_LIBS)
-    INSTALL_TARGET_PDB (${HDF5_CPP_LIB_TARGET} ${HDF5_INSTALL_LIB_DIR} cpplibraries)
+    INSTALL_TARGET_PDB (${HDF5_CPP_LIB_TARGET} ${HDF5_INSTALL_BIN_DIR} cpplibraries)
   endif (BUILD_SHARED_LIBS)
   
   install (
diff --git a/c++/src/H5AbstractDs.cpp b/c++/src/H5AbstractDs.cpp
index e6cacf9..d59c1eb 100644
--- a/c++/src/H5AbstractDs.cpp
+++ b/c++/src/H5AbstractDs.cpp
@@ -21,6 +21,7 @@
 #include "H5PropList.h"
 #include "H5Object.h"
 #include "H5AbstractDs.h"
+#include "H5DataSpace.h"
 #include "H5DcreatProp.h"
 #include "H5CommonFG.h"
 #include "H5Alltypes.h"
@@ -40,6 +41,12 @@ AbstractDs::AbstractDs(){}
 // Function:	AbstractDs default constructor
 ///\brief	Creates an AbstractDs instance using an existing id.
 // Programmer	Binh-Minh Ribler - 2000
+//
+// *** Deprecation warning ***
+// This constructor is no longer appropriate because the data member "id" had
+// been moved to the sub-classes.  It will be removed in 1.10 release.  If its
+// removal does not raise any problems in 1.10, it will be removed from 1.8 in
+// subsequent releases.
 //--------------------------------------------------------------------------
 AbstractDs::AbstractDs(const hid_t ds_id){}
 
@@ -47,8 +54,13 @@ AbstractDs::AbstractDs(const hid_t ds_id){}
 // Function:	AbstractDs copy constructor
 ///\brief	Copy constructor: makes a copy of the original AbstractDs object.
 // Programmer	Binh-Minh Ribler - 2000
+// *** Deprecation warning ***
+// This constructor is no longer appropriate because the data member "id" had
+// been moved to the sub-classes.  It is removed from 1.8.15 because it is
+// a noop and it can be generated by the compiler if needed.
 //--------------------------------------------------------------------------
-AbstractDs::AbstractDs(const AbstractDs& original){}
+//--------------------------------------------------------------------------
+// AbstractDs::AbstractDs(const AbstractDs& original){}
 
 //--------------------------------------------------------------------------
 // Function:	AbstractDs::getTypeClass
@@ -113,8 +125,9 @@ DataType AbstractDs::getDataType() const
    // depending on which object invokes getDataType.  Then, create and
    // return the DataType object
    try {
-      DataType datatype(p_get_type());
-      return(datatype);
+	DataType datatype;
+	f_DataType_setId(&datatype, p_get_type());
+	return(datatype);
    }
    catch (DataSetIException E) {
       throw DataTypeIException("DataSet::getDataType", E.getDetailMsg());
@@ -139,8 +152,9 @@ ArrayType AbstractDs::getArrayType() const
    // depending on which object invokes getArrayType.  Then, create and
    // return the ArrayType object
    try {
-      ArrayType arraytype(p_get_type());
-      return(arraytype);
+	ArrayType arraytype;
+	f_DataType_setId(&arraytype, p_get_type());
+	return(arraytype);
    }
    catch (DataSetIException E) {
       throw DataTypeIException("DataSet::getArrayType", E.getDetailMsg());
@@ -165,8 +179,9 @@ CompType AbstractDs::getCompType() const
    // depending on which object invokes getCompType.  Then, create and
    // return the CompType object
    try {
-      CompType comptype(p_get_type());
-      return(comptype);
+	CompType comptype;
+	f_DataType_setId(&comptype, p_get_type());
+	return(comptype);
    }
    catch (DataSetIException E) {
       throw DataTypeIException("DataSet::getCompType", E.getDetailMsg());
@@ -191,8 +206,9 @@ EnumType AbstractDs::getEnumType() const
    // depending on which object invokes getEnumType.  Then, create and
    // return the EnumType object
    try {
-      EnumType enumtype(p_get_type());
-      return(enumtype);
+	EnumType enumtype;
+	f_DataType_setId(&enumtype, p_get_type());
+	return(enumtype);
    }
    catch (DataSetIException E) {
       throw DataTypeIException("DataSet::getEnumType", E.getDetailMsg());
@@ -217,8 +233,9 @@ IntType AbstractDs::getIntType() const
    // depending on which object invokes getIntType.  Then, create and
    // return the IntType object
    try {
-      IntType inttype(p_get_type());
-      return(inttype);
+	IntType inttype;
+	f_DataType_setId(&inttype, p_get_type());
+	return(inttype);
    }
    catch (DataSetIException E) {
       throw DataTypeIException("DataSet::getIntType", E.getDetailMsg());
@@ -243,8 +260,9 @@ FloatType AbstractDs::getFloatType() const
    // depending on which object invokes getFloatType.  Then, create and
    // return the FloatType object
    try {
-      FloatType floatype(p_get_type());
-      return(floatype);
+	FloatType floatype;
+	f_DataType_setId(&floatype, p_get_type());
+	return(floatype);
    }
    catch (DataSetIException E) {
       throw DataTypeIException("DataSet::getFloatType", E.getDetailMsg());
@@ -269,8 +287,9 @@ StrType AbstractDs::getStrType() const
    // depending on which object invokes getStrType.  Then, create and
    // return the StrType object
    try {
-      StrType strtype(p_get_type());
-      return(strtype);
+	StrType strtype;
+	f_DataType_setId(&strtype, p_get_type());
+	return(strtype);
    }
    catch (DataSetIException E) {
       throw DataTypeIException("DataSet::getStrType", E.getDetailMsg());
@@ -295,8 +314,9 @@ VarLenType AbstractDs::getVarLenType() const
    // depending on which object invokes getVarLenType.  Then, create and
    // return the VarLenType object
    try {
-      VarLenType varlentype(p_get_type());
-      return(varlentype);
+	VarLenType varlentype;
+	f_DataType_setId(&varlentype, p_get_type());
+	return(varlentype);
    }
    catch (DataSetIException E) {
       throw DataTypeIException("DataSet::getVarLenType", E.getDetailMsg());
diff --git a/c++/src/H5AbstractDs.h b/c++/src/H5AbstractDs.h
index 6904d76..ee2e45e 100644
--- a/c++/src/H5AbstractDs.h
+++ b/c++/src/H5AbstractDs.h
@@ -28,6 +28,7 @@ class FloatType;
 class IntType;
 class StrType;
 class VarLenType;
+class DataSpace;
 
 /*! \class AbstractDs
     \brief AbstractDs is an abstract base class, inherited by Attribute
@@ -70,9 +71,6 @@ class H5_DLLCPP AbstractDs {
 	// Returns this class name - pure virtual.
 	virtual H5std_string fromClass() const = 0;
 
-	// Copy constructor
-	AbstractDs( const AbstractDs& original );
-
 	// Destructor
 	virtual ~AbstractDs();
 
@@ -80,8 +78,17 @@ class H5_DLLCPP AbstractDs {
 	// Default constructor
 	AbstractDs();
 
-	// Constructor that takes an attribute id or a dataset id.
-	AbstractDs( const hid_t ds_id );
+        // *** Deprecation warning ***
+        // The following two constructors are no longer appropriate after the
+        // data member "id" had been moved to the sub-classes.
+        // The copy constructor is a noop and is removed in 1.8.15 and the
+        // other will be removed from 1.10 release, and then from 1.8 if its
+        // removal does not raise any problems in two 1.10 releases.
+
+	AbstractDs(const hid_t h5_id);
+
+	// Copy constructor
+	// AbstractDs( const AbstractDs& original );
 
    private:
 	// This member function is implemented by DataSet and Attribute - pure virtual.
diff --git a/c++/src/H5ArrayType.h b/c++/src/H5ArrayType.h
index 511126e..6577a6e 100644
--- a/c++/src/H5ArrayType.h
+++ b/c++/src/H5ArrayType.h
@@ -49,7 +49,6 @@ class H5_DLLCPP ArrayType : public DataType {
 	// Noop destructor
 	virtual ~ArrayType();
 
-   protected:
 	// Default constructor
 	ArrayType();
 
diff --git a/c++/src/H5Attribute.cpp b/c++/src/H5Attribute.cpp
index 0c135a9..71cd431 100644
--- a/c++/src/H5Attribute.cpp
+++ b/c++/src/H5Attribute.cpp
@@ -74,7 +74,8 @@ Attribute::Attribute(const Attribute& original) : AbstractDs(), IdComponent()
 //--------------------------------------------------------------------------
 Attribute::Attribute(const hid_t existing_id) : AbstractDs(), IdComponent()
 {
-   id = existing_id;
+    id = existing_id;
+    incRefCount(); // increment number of references to this id
 }
 
 //--------------------------------------------------------------------------
@@ -270,8 +271,9 @@ DataSpace Attribute::getSpace() const
    // If the dataspace id is valid, create and return the DataSpace object
    if( dataspace_id > 0 )
    {
-      DataSpace dataspace( dataspace_id );
-      return( dataspace );
+	DataSpace dataspace;
+	f_DataSpace_setId(&dataspace, dataspace_id);
+	return(dataspace);
    }
    else
    {
@@ -392,10 +394,12 @@ H5std_string Attribute::getName() const
 //--------------------------------------------------------------------------
 H5std_string Attribute::getName(size_t len) const
 {
-   H5std_string attr_name;
-   ssize_t name_size = getName(attr_name, len);
-   return(attr_name);
-   // let caller catch exception if any
+    H5std_string attr_name;
+    ssize_t name_size = getName(attr_name, len);
+    if (name_size < 0)
+	return("");
+    else
+	return(attr_name);
 }
 
 //--------------------------------------------------------------------------
diff --git a/c++/src/H5Attribute.h b/c++/src/H5Attribute.h
index 33c4db3..f936f04 100644
--- a/c++/src/H5Attribute.h
+++ b/c++/src/H5Attribute.h
@@ -31,6 +31,16 @@ namespace H5 {
 */
 class H5_DLLCPP Attribute : public AbstractDs, public IdComponent {
    public:
+
+	// Copy constructor: makes a copy of an existing Attribute object.
+	Attribute( const Attribute& original );
+
+	// Default constructor
+	Attribute();
+
+	// Creates a copy of an existing attribute using the attribute id
+	Attribute( const hid_t attr_id );
+
 	// Closes this attribute.
 	virtual void close();
 
@@ -70,15 +80,6 @@ class H5_DLLCPP Attribute : public AbstractDs, public IdComponent {
 	///\brief Returns this class name.
 	virtual H5std_string fromClass () const { return("Attribute"); }
 
-	// Creates a copy of an existing attribute using the attribute id
-	Attribute( const hid_t attr_id );
-
-	// Copy constructor: makes a copy of an existing Attribute object.
-	Attribute( const Attribute& original );
-
-	// Default constructor
-	Attribute();
-
 	// Gets the attribute id.
 	virtual hid_t getId() const;
 
@@ -107,6 +108,10 @@ class H5_DLLCPP Attribute : public AbstractDs, public IdComponent {
 
 	// do not inherit H5Object::renameAttr
 	void renameAttr() {}
+
+	// Friend function to set Attribute id.  For library use only.
+	friend void f_Attribute_setId(Attribute* attr, hid_t new_id);
+
 };
 #ifndef H5_NO_NAMESPACE
 }
diff --git a/c++/src/H5CommonFG.cpp b/c++/src/H5CommonFG.cpp
index 3aa0386..42a8ffd 100644
--- a/c++/src/H5CommonFG.cpp
+++ b/c++/src/H5CommonFG.cpp
@@ -33,9 +33,6 @@
 #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
@@ -100,7 +97,9 @@ Group CommonFG::createGroup( const char* name, size_t size_hint ) const
       throwException("createGroup", "H5Gcreate2 failed");
 
    // No failure, create and return the Group object
-   Group group( group_id );
+   Group group;
+    CommonFG *ptr = &group;
+    ptr->p_setId(group_id);
    return( group );
 }
 
@@ -136,7 +135,9 @@ Group CommonFG::openGroup( const char* name ) const
       throwException("openGroup", "H5Gopen2 failed");
 
    // No failure, create and return the Group object
-   Group group( group_id );
+   Group group;
+    CommonFG *ptr = &group;
+    ptr->p_setId(group_id);
    return( group );
 }
 
@@ -178,7 +179,8 @@ DataSet CommonFG::createDataSet( const char* name, const DataType& data_type, co
       throwException("createDataSet", "H5Dcreate2 failed");
 
    // No failure, create and return the DataSet object
-   DataSet dataset( dataset_id );
+   DataSet dataset;
+   f_DataSet_setId(&dataset, dataset_id);
    return( dataset );
 }
 
@@ -213,7 +215,8 @@ DataSet CommonFG::openDataSet( const char* name ) const
       throwException("openDataSet", "H5Dopen2 failed");
 
    // No failure, create and return the DataSet object
-   DataSet dataset( dataset_id );
+   DataSet dataset;
+   f_DataSet_setId(&dataset, dataset_id);
    return( dataset );
 }
 
@@ -576,7 +579,8 @@ DataType CommonFG::openDataType( const char* name ) const
       throwException("openDataType", "H5Topen2 failed");
 
    // No failure, create and return the DataType object
-   DataType data_type(type_id);
+   DataType data_type;
+   f_DataType_setId(&data_type, type_id);
    return(data_type);
 }
 
@@ -611,7 +615,8 @@ ArrayType CommonFG::openArrayType( const char* name ) const
       throwException("openArrayType", "H5Topen2 failed");
 
    // No failure, create and return the ArrayType object
-   ArrayType array_type (type_id);
+   ArrayType array_type;
+   f_DataType_setId(&array_type, type_id);
    return(array_type);
 }
 
@@ -646,7 +651,8 @@ CompType CommonFG::openCompType( const char* name ) const
       throwException("openCompType", "H5Topen2 failed");
 
    // No failure, create and return the CompType object
-   CompType comp_type(type_id);
+   CompType comp_type;
+   f_DataType_setId(&comp_type, type_id);
    return(comp_type);
 }
 
@@ -681,7 +687,8 @@ EnumType CommonFG::openEnumType( const char* name ) const
       throwException("openEnumType", "H5Topen2 failed");
 
    // No failure, create and return the EnumType object
-   EnumType enum_type(type_id);
+   EnumType enum_type;
+   f_DataType_setId(&enum_type, type_id);
    return(enum_type);
 }
 
@@ -716,7 +723,8 @@ IntType CommonFG::openIntType( const char* name ) const
       throwException("openIntType", "H5Topen2 failed");
 
    // No failure, create and return the IntType object
-   IntType int_type(type_id);
+   IntType int_type;
+   f_DataType_setId(&int_type, type_id);
    return(int_type);
 }
 
@@ -751,7 +759,8 @@ FloatType CommonFG::openFloatType( const char* name ) const
       throwException("openFloatType", "H5Topen2 failed");
 
    // No failure, create and return the FloatType object
-   FloatType float_type(type_id);
+   FloatType float_type;
+   f_DataType_setId(&float_type, type_id);
    return(float_type);
 }
 
@@ -786,7 +795,8 @@ StrType CommonFG::openStrType( const char* name ) const
       throwException("openStrType", "H5Topen2 failed");
 
    // No failure, create and return the StrType object
-   StrType str_type(type_id);
+   StrType str_type;
+   f_DataType_setId(&str_type, type_id);
    return(str_type);
 }
 
@@ -821,7 +831,8 @@ VarLenType CommonFG::openVarLenType( const char* name ) const
       throwException("openVarLenType", "H5Topen2 failed");
 
    // No failure, create and return the VarLenType object
-   VarLenType varlen_type(type_id);
+   VarLenType varlen_type;
+   f_DataType_setId(&varlen_type, type_id);
    return(varlen_type);
 }
 
@@ -1100,6 +1111,58 @@ H5O_type_t CommonFG::childObjType(hsize_t index, H5_index_t index_type, H5_iter_
     return(objtype);
 }
 
+//--------------------------------------------------------------------------
+// Function:	CommonFG::childObjVersion
+///\brief	Returns the object header version of an object in this file/group,
+///		given the object's name.
+///\param	objname - IN: Name of the object
+///\return	Object version, which can have the following values:
+///		\li \c H5O_VERSION_1
+///		\li \c H5O_VERSION_2
+///\exception	H5::FileIException or H5::GroupIException
+///		Exception will be thrown when:
+///		- an error returned by the C API
+///		- version number is not one of the valid values above
+// Programmer	Binh-Minh Ribler - April, 2014
+//--------------------------------------------------------------------------
+unsigned CommonFG::childObjVersion(const char* objname) const
+{
+    H5O_info_t objinfo;
+    unsigned version = -1;
+
+    // Use C API to get information of the object
+    herr_t ret_value = H5Oget_info_by_name(getLocId(), objname, &objinfo, H5P_DEFAULT);
+
+    // Throw exception if C API returns failure
+    if (ret_value < 0)
+	throwException("childObjVersion", "H5Oget_info_by_name failed");
+    // Return a valid version or throw an exception for invalid value
+    else
+    {
+	version = objinfo.hdr.version;
+	if (version != H5O_VERSION_1 && version != H5O_VERSION_2)
+	    throwException("childObjVersion", "Invalid version for object");
+    }
+    return(version);
+}
+
+//--------------------------------------------------------------------------
+// Function:	CommonFG::childObjVersion
+///\brief	This is an overloaded member function, provided for convenience.
+///		It takes an \a H5std_string for the object's name.
+///\brief	Returns the type of an object in this group, given the
+///		object's name.
+///\param	objname - IN: Name of the object (H5std_string&)
+///\exception	H5::FileIException or H5::GroupIException
+// Programmer	Binh-Minh Ribler - April, 2014
+//--------------------------------------------------------------------------
+unsigned CommonFG::childObjVersion(const H5std_string& objname) const
+{
+    // Use overloaded function
+    unsigned version = childObjVersion(objname.c_str());
+    return(version);
+}
+
 #ifndef H5_NO_DEPRECATED_SYMBOLS
 #ifndef DOXYGEN_SHOULD_SKIP_THIS
 //--------------------------------------------------------------------------
@@ -1172,6 +1235,7 @@ H5G_obj_t CommonFG::getObjTypeByIdx(hsize_t idx, H5std_string& type_name) const
    }
    return (obj_type);
 }
+
 #endif // DOXYGEN_SHOULD_SKIP_THIS
 #endif /* H5_NO_DEPRECATED_SYMBOLS */
 
@@ -1189,6 +1253,37 @@ CommonFG::CommonFG() {}
 // Programmer	Binh-Minh Ribler - 2000
 //--------------------------------------------------------------------------
 CommonFG::~CommonFG() {}
+
+//--------------------------------------------------------------------------
+// Function:	f_DataType_setId - friend
+// Purpose:	This function is friend to class H5::DataType so that it
+//		can set DataType::id in order to work around a problem
+//		described in the JIRA issue HDFFV-7947.
+//		Applications shouldn't need to use it.
+// param        dtype   - IN/OUT: DataType object to be changed
+// param        new_id - IN: New id to set
+// Programmer	Binh-Minh Ribler - 2015
+//--------------------------------------------------------------------------
+void f_DataType_setId(DataType* dtype, hid_t new_id)
+{
+    dtype->id = new_id;
+}
+
+//--------------------------------------------------------------------------
+// Function:	f_DataSet_setId - friend
+// Purpose:	This function is friend to class H5::DataSet so that it
+//		can set DataSet::id in order to work around a problem
+//		described in the JIRA issue HDFFV-7947.
+//		Applications shouldn't need to use it.
+// param        dset   - IN/OUT: DataSet object to be changed
+// param        new_id - IN: New id to set
+// Programmer	Binh-Minh Ribler - 2015
+//--------------------------------------------------------------------------
+void f_DataSet_setId(DataSet* dset, hid_t new_id)
+{
+    dset->id = new_id;
+}
+
 #endif // DOXYGEN_SHOULD_SKIP_THIS
 
 #ifndef H5_NO_NAMESPACE
diff --git a/c++/src/H5CommonFG.h b/c++/src/H5CommonFG.h
index f11548a..d36d78c 100644
--- a/c++/src/H5CommonFG.h
+++ b/c++/src/H5CommonFG.h
@@ -71,6 +71,11 @@ class H5_DLLCPP CommonFG {
 	H5O_type_t childObjType(const char* objname) const;
 	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=".") const;
 
+	// Returns the object header version of an object in this file or group,
+	// given the object's name.
+	unsigned childObjVersion(const char* objname) const;
+	unsigned childObjVersion(const H5std_string& objname) const;
+
 #ifndef H5_NO_DEPRECATED_SYMBOLS
 	// Returns the type of an object in this group, given the
 	// object's index.
@@ -160,6 +165,10 @@ class H5_DLLCPP CommonFG {
 
 	// Noop destructor.
 	virtual ~CommonFG();
+
+    protected:
+	virtual void p_setId(const hid_t new_id) = 0;
+
 #endif // DOXYGEN_SHOULD_SKIP_THIS
 
 }; // end of CommonFG declaration
diff --git a/c++/src/H5CompType.cpp b/c++/src/H5CompType.cpp
index 191f004..393aafc 100644
--- a/c++/src/H5CompType.cpp
+++ b/c++/src/H5CompType.cpp
@@ -227,7 +227,8 @@ hid_t CompType::p_get_member_type(unsigned member_num) const
 DataType CompType::getMemberDataType( unsigned member_num ) const
 {
    try {
-      DataType datatype(p_get_member_type(member_num));
+      DataType datatype;
+	f_DataType_setId(&datatype, p_get_member_type(member_num));
       return(datatype);
    }
    catch (DataTypeIException E) {
@@ -248,6 +249,7 @@ ArrayType CompType::getMemberArrayType( unsigned member_num ) const
 {
    try {
       ArrayType arraytype(p_get_member_type(member_num));
+	f_DataType_setId(&arraytype, p_get_member_type(member_num));
       return(arraytype);
    }
    catch (DataTypeIException E) {
@@ -268,6 +270,7 @@ CompType CompType::getMemberCompType( unsigned member_num ) const
 {
    try {
       CompType comptype(p_get_member_type(member_num));
+	f_DataType_setId(&comptype, p_get_member_type(member_num));
       return(comptype);
    }
    catch (DataTypeIException E) {
@@ -288,6 +291,7 @@ EnumType CompType::getMemberEnumType( unsigned member_num ) const
 {
    try {
       EnumType enumtype(p_get_member_type(member_num));
+	f_DataType_setId(&enumtype, p_get_member_type(member_num));
       return(enumtype);
    }
    catch (DataTypeIException E) {
@@ -308,6 +312,7 @@ IntType CompType::getMemberIntType( unsigned member_num ) const
 {
    try {
       IntType inttype(p_get_member_type(member_num));
+	f_DataType_setId(&inttype, p_get_member_type(member_num));
       return(inttype);
    }
    catch (DataTypeIException E) {
@@ -328,6 +333,7 @@ FloatType CompType::getMemberFloatType( unsigned member_num ) const
 {
    try {
       FloatType floatype(p_get_member_type(member_num));
+	f_DataType_setId(&floatype, p_get_member_type(member_num));
       return(floatype);
    }
    catch (DataTypeIException E) {
@@ -348,6 +354,7 @@ StrType CompType::getMemberStrType( unsigned member_num ) const
 {
    try {
       StrType strtype(p_get_member_type(member_num));
+	f_DataType_setId(&strtype, p_get_member_type(member_num));
       return(strtype);
    }
    catch (DataTypeIException E) {
@@ -368,6 +375,7 @@ VarLenType CompType::getMemberVarLenType( unsigned member_num ) const
 {
    try {
       VarLenType varlentype(p_get_member_type(member_num));
+	f_DataType_setId(&varlentype, p_get_member_type(member_num));
       return(varlentype);
    }
    catch (DataTypeIException E) {
diff --git a/c++/src/H5DataSet.cpp b/c++/src/H5DataSet.cpp
index 83621f5..b134d39 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(H5I_INVALID_HID) {}
+DataSet::DataSet() : H5Object(), AbstractDs(), id(H5I_INVALID_HID) {}
 
 //--------------------------------------------------------------------------
 // Function:	DataSet overloaded constructor
@@ -60,9 +60,10 @@ DataSet::DataSet() : AbstractDs(), H5Object(), id(H5I_INVALID_HID) {}
 ///\param	existing_id - IN: Id of an existing dataset
 // Programmer	Binh-Minh Ribler - 2000
 //--------------------------------------------------------------------------
-DataSet::DataSet(const hid_t existing_id) : AbstractDs(), H5Object()
+DataSet::DataSet(const hid_t existing_id) : H5Object(), AbstractDs()
 {
     id = existing_id;
+    incRefCount(); // increment number of references to this id
 }
 
 //--------------------------------------------------------------------------
@@ -71,7 +72,7 @@ DataSet::DataSet(const hid_t existing_id) : AbstractDs(), H5Object()
 ///\param	original - IN: DataSet instance to copy
 // Programmer	Binh-Minh Ribler - 2000
 //--------------------------------------------------------------------------
-DataSet::DataSet(const DataSet& original) : AbstractDs(original), H5Object(original)
+DataSet::DataSet(const DataSet& original) : H5Object(), AbstractDs()
 {
     id = original.getId();
     incRefCount(); // increment number of references to this id
@@ -135,7 +136,8 @@ DataSpace DataSet::getSpace() const
       throw DataSetIException("DataSet::getSpace", "H5Dget_space failed");
    }
    //create dataspace object using the existing id then return the object
-   DataSpace data_space( dataspace_id );
+   DataSpace data_space;
+   f_DataSpace_setId(&data_space, dataspace_id);
    return( data_space );
 }
 
@@ -168,8 +170,8 @@ DSetCreatPropList DataSet::getCreatePlist() const
       throw DataSetIException("DataSet::getCreatePlist", "H5Dget_create_plist failed");
    }
    // create and return the DSetCreatPropList object
-   DSetCreatPropList create_plist( create_plist_id );
-   return( create_plist );
+   DSetCreatPropList create_plist(create_plist_id); // ok to use existing id const
+   return(create_plist);
 }
 
 //--------------------------------------------------------------------------
diff --git a/c++/src/H5DataSet.h b/c++/src/H5DataSet.h
index e264751..a539d6b 100644
--- a/c++/src/H5DataSet.h
+++ b/c++/src/H5DataSet.h
@@ -30,6 +30,7 @@ namespace H5 {
 */
 class H5_DLLCPP DataSet : public H5Object, public AbstractDs {
    public:
+
 	// Close this dataset.
 	virtual void close();
 
@@ -107,6 +108,12 @@ class H5_DLLCPP DataSet : public H5Object, public AbstractDs {
 	// Destructor: properly terminates access to this dataset.
 	virtual ~DataSet();
 
+   protected:
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+        // Sets the dataset id.
+        virtual void p_setId(const hid_t new_id);
+#endif // DOXYGEN_SHOULD_SKIP_THIS
+
    private:
 	hid_t id;       // HDF5 dataset id
 
@@ -120,11 +127,9 @@ class H5_DLLCPP DataSet : public H5Object, public AbstractDs {
 	void p_read_fixed_len(const hid_t mem_type_id, const hid_t mem_space_id, const hid_t file_space_id, const hid_t xfer_plist_id, H5std_string& strg) const;
 	void p_read_variable_len(const hid_t mem_type_id, const hid_t mem_space_id, const hid_t file_space_id, const hid_t xfer_plist_id, H5std_string& strg) const;
 
-   protected:
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-        // Sets the dataset id.
-        virtual void p_setId(const hid_t new_id);
-#endif // DOXYGEN_SHOULD_SKIP_THIS
+	// Friend function to set DataSet id.  For library use only.
+	friend void f_DataSet_setId(DataSet* dset, hid_t new_id);
+
 };
 #ifndef H5_NO_NAMESPACE
 }
diff --git a/c++/src/H5DataSpace.cpp b/c++/src/H5DataSpace.cpp
index 20b4e5e..d9c262d 100644
--- a/c++/src/H5DataSpace.cpp
+++ b/c++/src/H5DataSpace.cpp
@@ -85,6 +85,7 @@ DataSpace::DataSpace( int rank, const hsize_t * dims, const hsize_t * maxdims) :
 DataSpace::DataSpace(const hid_t existing_id) : IdComponent()
 {
     id = existing_id;
+    incRefCount(); // increment number of references to this id
 }
 
 //--------------------------------------------------------------------------
@@ -93,7 +94,7 @@ DataSpace::DataSpace(const hid_t existing_id) : IdComponent()
 ///\param	original - IN: DataSpace object to copy
 // Programmer	Binh-Minh Ribler - 2000
 //--------------------------------------------------------------------------
-DataSpace::DataSpace(const DataSpace& original) : IdComponent(original)
+DataSpace::DataSpace(const DataSpace& original) : IdComponent()
 {
     id = original.getId();
     incRefCount(); // increment number of references to this id
diff --git a/c++/src/H5DataSpace.h b/c++/src/H5DataSpace.h
index fd4b1d6..48575a1 100644
--- a/c++/src/H5DataSpace.h
+++ b/c++/src/H5DataSpace.h
@@ -130,6 +130,9 @@ class H5_DLLCPP DataSpace : public IdComponent {
 	virtual void p_setId(const hid_t new_id);
 #endif // DOXYGEN_SHOULD_SKIP_THIS
 
+
+	// Friend function to set DataSpace id.  For library use only.
+	friend void f_DataSpace_setId(DataSpace *dspace, hid_t new_id);
 };
 #ifndef H5_NO_NAMESPACE
 }
diff --git a/c++/src/H5DataType.cpp b/c++/src/H5DataType.cpp
index 0d7d61b..714f55f 100644
--- a/c++/src/H5DataType.cpp
+++ b/c++/src/H5DataType.cpp
@@ -71,6 +71,7 @@ DataType::DataType() : H5Object(), id(H5I_INVALID_HID) {}
 DataType::DataType(const hid_t existing_id) : H5Object()
 {
     id = existing_id;
+    incRefCount(); // increment number of references to this id
 }
 
 //--------------------------------------------------------------------------
@@ -122,7 +123,7 @@ DataType::DataType(const H5Location& loc, const void* ref, H5R_type_t ref_type)
 //	Jul, 2008
 //		Added for application convenience.
 //--------------------------------------------------------------------------
-DataType::DataType(const Attribute& attr, const void* ref, H5R_type_t ref_type) : H5Object(), id(H5I_INVALID_HID)
+DataType::DataType(const Attribute& attr, const void* ref, H5R_type_t ref_type) : H5Object()
 {
     id = H5Location::p_dereference(attr.getId(), ref, ref_type, "constructor - by dereference");
 }
@@ -132,13 +133,34 @@ DataType::DataType(const Attribute& attr, const void* ref, H5R_type_t ref_type)
 ///\brief	Copy constructor: makes a copy of the original DataType object.
 // Programmer	Binh-Minh Ribler - 2000
 //--------------------------------------------------------------------------
-DataType::DataType(const DataType& original) : H5Object(original)
+DataType::DataType(const DataType& original) : H5Object()
 {
     id = original.getId();
     incRefCount(); // increment number of references to this id
 }
 
 //--------------------------------------------------------------------------
+// Function:    DataType overloaded constructor
+///\brief       Creates a DataType instance using a predefined type
+///\param       pred_type - IN: Predefined type instance
+///\exception   H5::DataTypeIException
+// Programmer   Binh-Minh Ribler - 2015
+// Description
+//		Copying the type so that when a predefined type is passed in,
+//		a copy of it is made, not just a duplicate of the HDF5 id.
+//		Note: calling DataType::copy will invoke DataType::close()
+//		unnecessarily and will produce undefined behavior.
+//		-BMR, Apr 2015
+//--------------------------------------------------------------------------
+DataType::DataType(const PredType& pred_type) : H5Object()
+{
+    // call C routine to copy the datatype
+    id = H5Tcopy( pred_type.getId() );
+    if( id < 0 )
+	throw DataTypeIException("DataType constructor", "H5Tcopy failed");
+}
+
+//--------------------------------------------------------------------------
 // Function:	DataType::copy
 ///\brief	Copies an existing datatype to this datatype object
 ///\param	like_type - IN: Datatype to be copied
@@ -201,11 +223,22 @@ void DataType::copy(const DataSet& dset)
 // 		Makes a copy of the type on the right hand side and stores
 //		the new id in the left hand side object.
 // Programmer	Binh-Minh Ribler - 2000
+// Modification
+//		Changed operator= to simply copy the id of rhs instead of
+//		calling H5Tcopy because, when the operator= is invoked, a
+//		different datatype id is created and it won't have the same
+//		characteristics as the original one, specifically, if the
+//		rhs represents a named datatype, "this" would still be a
+//		transient datatype.
+//		BMR - Mar, 2015
 //--------------------------------------------------------------------------
 DataType& DataType::operator=( const DataType& rhs )
 {
     if (this != &rhs)
-	copy(rhs);
+    {
+	id = rhs.id;
+	incRefCount(); // increment number of references to this id
+    }
     return(*this);
 }
 
@@ -461,8 +494,9 @@ DataType DataType::getSuper() const
    // the base type, otherwise, raise exception
    if( base_type_id > 0 )
    {
-      DataType base_type( base_type_id );
-      return( base_type );
+	DataType base_type;
+	base_type.p_setId(base_type_id);
+	return(base_type);
    }
    else
    {
diff --git a/c++/src/H5DataType.h b/c++/src/H5DataType.h
index dca0c87..69f59b1 100644
--- a/c++/src/H5DataType.h
+++ b/c++/src/H5DataType.h
@@ -39,6 +39,9 @@ class H5_DLLCPP DataType : public H5Object {
 	// Copy constructor: makes a copy of the original object
 	DataType( const DataType& original );
 
+	// Creates a copy of a predefined type
+	DataType(const PredType& pred_type);
+
 	// Creates a datatype by way of dereference.
 	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);
@@ -136,6 +139,9 @@ class H5_DLLCPP DataType : public H5Object {
 #endif // DOXYGEN_SHOULD_SKIP_THIS
 
    private:
+	// Friend function to set DataType id.  For library use only.
+	friend void f_DataType_setId(DataType* dtype, hid_t new_id);
+
 	void p_commit(hid_t loc_id, const char* name);
 };
 #ifndef H5_NO_NAMESPACE
diff --git a/c++/src/H5Exception.cpp b/c++/src/H5Exception.cpp
index daf6a74..f2aa38a 100644
--- a/c++/src/H5Exception.cpp
+++ b/c++/src/H5Exception.cpp
@@ -35,11 +35,11 @@ Exception::Exception() : detail_message(""), func_name("") {}
 // Function:	Exception overloaded constructor
 ///\brief	Creates an exception with the name of the function,
 ///		in which the failure occurs, and an optional detailed message.
-///\param	func_name - IN: Name of the function where failure occurs
+///\param	func - IN: Name of the function where failure occurs
 ///\param	message   - IN: Message on the failure
 // Programmer	Binh-Minh Ribler - 2000
 //--------------------------------------------------------------------------
-Exception::Exception(const H5std_string& func_name, const H5std_string& message) : detail_message(message), func_name(func_name) {}
+Exception::Exception(const H5std_string& func, const H5std_string& message) : detail_message(message), func_name(func) {}
 
 //--------------------------------------------------------------------------
 // Function:	Exception copy constructor
@@ -350,10 +350,10 @@ FileIException::FileIException():Exception(){}
 // Function:	FileIException overloaded constructor
 ///\brief	Creates a FileIException with the name of the function,
 ///		in which the failure occurs, and an optional detailed message.
-///\param	func_name - IN: Name of the function where failure occurs
+///\param	func - IN: Name of the function where failure occurs
 ///\param	message   - IN: Message on the failure
 //--------------------------------------------------------------------------
-FileIException::FileIException(const H5std_string& func_name, const H5std_string& message) : Exception(func_name, message) {}
+FileIException::FileIException(const H5std_string& func, const H5std_string& message) : Exception(func, message) {}
 //--------------------------------------------------------------------------
 // Function:	FileIException destructor
 ///\brief	Noop destructor.
@@ -373,10 +373,10 @@ GroupIException::GroupIException():Exception(){}
 // Function:	GroupIException overloaded constructor
 ///\brief	Creates a GroupIException with the name of the function,
 ///		in which the failure occurs, and an optional detailed message.
-///\param	func_name - IN: Name of the function where failure occurs
+///\param	func - IN: Name of the function where failure occurs
 ///\param	message   - IN: Message on the failure
 //--------------------------------------------------------------------------
-GroupIException::GroupIException(const H5std_string& func_name, const H5std_string& message) : Exception(func_name, message) {}
+GroupIException::GroupIException(const H5std_string& func, const H5std_string& message) : Exception(func, message) {}
 //--------------------------------------------------------------------------
 // Function:	GroupIException destructor
 ///\brief	Noop destructor.
@@ -396,10 +396,10 @@ DataSpaceIException::DataSpaceIException():Exception(){}
 // Function:	DataSpaceIException overloaded constructor
 ///\brief	Creates a DataSpaceIException with the name of the function,
 ///		in which the failure occurs, and an optional detailed message.
-///\param	func_name - IN: Name of the function where failure occurs
+///\param	func - IN: Name of the function where failure occurs
 ///\param	message   - IN: Message on the failure
 //--------------------------------------------------------------------------
-DataSpaceIException::DataSpaceIException(const H5std_string& func_name, const H5std_string& message) : Exception(func_name, message) {}
+DataSpaceIException::DataSpaceIException(const H5std_string& func, const H5std_string& message) : Exception(func, message) {}
 //--------------------------------------------------------------------------
 // Function:	DataSpaceIException destructor
 ///\brief	Noop destructor.
@@ -419,10 +419,10 @@ DataTypeIException::DataTypeIException():Exception(){}
 // Function:	DataTypeIException overloaded constructor
 ///\brief	Creates a DataTypeIException with the name of the function,
 ///		in which the failure occurs, and an optional detailed message.
-///\param	func_name - IN: Name of the function where failure occurs
+///\param	func - IN: Name of the function where failure occurs
 ///\param	message   - IN: Message on the failure
 //--------------------------------------------------------------------------
-DataTypeIException::DataTypeIException(const H5std_string& func_name, const H5std_string& message) : Exception(func_name, message) {}
+DataTypeIException::DataTypeIException(const H5std_string& func, const H5std_string& message) : Exception(func, message) {}
 //--------------------------------------------------------------------------
 // Function:	DataTypeIException destructor
 ///\brief	Noop destructor.
@@ -442,10 +442,10 @@ PropListIException::PropListIException():Exception(){}
 // Function:	PropListIException overloaded constructor
 ///\brief	Creates a PropListIException with the name of the function,
 ///		in which the failure occurs, and an optional detailed message.
-///\param	func_name - IN: Name of the function where failure occurs
+///\param	func - IN: Name of the function where failure occurs
 ///\param	message   - IN: Message on the failure
 //--------------------------------------------------------------------------
-PropListIException::PropListIException(const H5std_string& func_name, const H5std_string& message) : Exception(func_name, message) {}
+PropListIException::PropListIException(const H5std_string& func, const H5std_string& message) : Exception(func, message) {}
 //--------------------------------------------------------------------------
 // Function:	PropListIException destructor
 ///\brief	Noop destructor.
@@ -465,10 +465,10 @@ DataSetIException::DataSetIException():Exception(){}
 // Function:	DataSetIException overloaded constructor
 ///\brief	Creates a DataSetIException with the name of the function,
 ///		in which the failure occurs, and an optional detailed message.
-///\param	func_name - IN: Name of the function where failure occurs
+///\param	func - IN: Name of the function where failure occurs
 ///\param	message   - IN: Message on the failure
 //--------------------------------------------------------------------------
-DataSetIException::DataSetIException(const H5std_string& func_name, const H5std_string& message) : Exception(func_name, message) {}
+DataSetIException::DataSetIException(const H5std_string& func, const H5std_string& message) : Exception(func, message) {}
 //--------------------------------------------------------------------------
 // Function:	DataSetIException destructor
 ///\brief	Noop destructor.
@@ -488,10 +488,10 @@ AttributeIException::AttributeIException():Exception(){}
 // Function:	AttributeIException overloaded constructor
 ///\brief	Creates an AttributeIException with the name of the function,
 ///		in which the failure occurs, and an optional detailed message.
-///\param	func_name - IN: Name of the function where failure occurs
+///\param	func - IN: Name of the function where failure occurs
 ///\param	message   - IN: Message on the failure
 //--------------------------------------------------------------------------
-AttributeIException::AttributeIException(const H5std_string& func_name, const H5std_string& message) : Exception(func_name, message) {}
+AttributeIException::AttributeIException(const H5std_string& func, const H5std_string& message) : Exception(func, message) {}
 //--------------------------------------------------------------------------
 // Function:	AttributeIException destructor
 ///\brief	Noop destructor.
@@ -511,10 +511,10 @@ ReferenceException::ReferenceException():Exception(){}
 // Function:	ReferenceException overloaded constructor
 ///\brief	Creates a ReferenceException with the name of the function,
 ///		in which the failure occurs, and an optional detailed message.
-///\param	func_name - IN: Name of the function where failure occurs
+///\param	func - IN: Name of the function where failure occurs
 ///\param	message   - IN: Message on the failure
 //--------------------------------------------------------------------------
-ReferenceException::ReferenceException(const H5std_string& func_name, const H5std_string& message) : Exception(func_name, message) {}
+ReferenceException::ReferenceException(const H5std_string& func, const H5std_string& message) : Exception(func, message) {}
 //--------------------------------------------------------------------------
 // Function:	ReferenceException destructor
 ///\brief	Noop destructor.
@@ -534,10 +534,10 @@ LibraryIException::LibraryIException():Exception(){}
 // Function:	LibraryIException overloaded constructor
 ///\brief	Creates a LibraryIException with the name of the function,
 ///		in which the failure occurs, and an optional detailed message.
-///\param	func_name - IN: Name of the function where failure occurs
+///\param	func - IN: Name of the function where failure occurs
 ///\param	message   - IN: Message on the failure
 //--------------------------------------------------------------------------
-LibraryIException::LibraryIException(const H5std_string& func_name, const H5std_string& message) : Exception(func_name, message) {}
+LibraryIException::LibraryIException(const H5std_string& func, const H5std_string& message) : Exception(func, message) {}
 //--------------------------------------------------------------------------
 // Function:	LibraryIException destructor
 ///\brief	Noop destructor.
@@ -557,10 +557,10 @@ LocationException::LocationException():Exception(){}
 // Function:	LocationException overloaded constructor
 ///\brief	Creates a LocationException with the name of the function,
 ///		in which the failure occurs, and an optional detailed message.
-///\param	func_name - IN: Name of the function where failure occurs
+///\param	func - IN: Name of the function where failure occurs
 ///\param	message   - IN: Message on the failure
 //--------------------------------------------------------------------------
-LocationException::LocationException(const H5std_string& func_name, const H5std_string& message) : Exception(func_name, message) {}
+LocationException::LocationException(const H5std_string& func, const H5std_string& message) : Exception(func, message) {}
 //--------------------------------------------------------------------------
 // Function:	LocationException destructor
 ///\brief	Noop destructor.
@@ -580,10 +580,10 @@ IdComponentException::IdComponentException(): Exception() {}
 // Function:	IdComponentException overloaded constructor
 ///\brief	Creates a IdComponentException with the name of the function,
 ///		in which the failure occurs, and an optional detailed message.
-///\param	func_name - IN: Name of the function where failure occurs
+///\param	func - IN: Name of the function where failure occurs
 ///\param	message   - IN: Message on the failure
 //--------------------------------------------------------------------------
-IdComponentException::IdComponentException(const H5std_string& func_name, const H5std_string& message) : Exception(func_name, message) {}
+IdComponentException::IdComponentException(const H5std_string& func, const H5std_string& message) : Exception(func, message) {}
 //--------------------------------------------------------------------------
 // Function:	IdComponentException destructor
 ///\brief	Noop destructor.
diff --git a/c++/src/H5FaccProp.cpp b/c++/src/H5FaccProp.cpp
index 5696742..5ce9d8e 100644
--- a/c++/src/H5FaccProp.cpp
+++ b/c++/src/H5FaccProp.cpp
@@ -40,10 +40,10 @@ FileAccPropList::FileAccPropList() : PropList( H5P_FILE_ACCESS ) {}
 //--------------------------------------------------------------------------
 // Function:	FileAccPropList copy constructor
 ///\brief	Copy Constructor: makes a copy of the original
-///		FileAccPropList object.
+///\param	original - IN: FileAccPropList instance to copy
 // Programmer:	Binh-Minh Ribler - 2000
 //--------------------------------------------------------------------------
-FileAccPropList::FileAccPropList(const FileAccPropList& orig) : PropList(orig) {}
+FileAccPropList::FileAccPropList(const FileAccPropList& original) : PropList(original) {}
 
 //--------------------------------------------------------------------------
 // Function:	FileAccPropList overloaded constructor
@@ -664,6 +664,67 @@ unsigned FileAccPropList::getGcReferences() const
 }
 
 //--------------------------------------------------------------------------
+// Function:	FileAccPropList::setLibverBounds
+///\brief	Sets bounds on versions of library format to be used when creating
+///		or writing objects.
+///\param	libver_low  - IN: Earliest version of the library that will be
+///				  used for creating or writing objects
+///\param	libver_high - IN: Latest version of the library that will be
+///\exception	H5::PropListIException
+///\par Description
+///		Valid values of \a libver_low are as follows:
+///		\li \c H5F_LIBVER_EARLIEST   (Default)
+///		\li \c H5F_LIBVER_18
+///		\li \c H5F_LIBVER_LATEST
+///
+///		Valid values of \a libver_high are as follows:
+///		\li \c H5F_LIBVER_18
+///		\li \c H5F_LIBVER_LATEST   (Default)
+///
+///		For more details, please refer to
+/// http://www.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-SetLibverBounds
+// Programmer:  Binh-Minh Ribler - March, 2015
+//--------------------------------------------------------------------------
+void FileAccPropList::setLibverBounds(H5F_libver_t libver_low, H5F_libver_t libver_high) const
+{
+    herr_t ret_value = H5Pset_libver_bounds(id, libver_low, libver_high);
+    if (ret_value < 0)
+    {
+	throw PropListIException("FileAccPropList::setLibverBounds", "H5Pset_libver_bounds failed");
+    }
+}
+
+//--------------------------------------------------------------------------
+// Function:	FileAccPropList::getLibverBounds
+///\brief	Gets the current settings for the library version format bounds
+///		from a file access property list.
+///\param	libver_low  - OUT: Earliest version of the library that will be
+///				   used for creating or writing objects
+///\param	libver_high - OUT: Latest version of the library that will be
+///				   used for creating or writing objects
+///\exception	H5::PropListIException
+///\par Description
+///		On success, the argument \a libver_low can have the following
+///		values:
+///		\li \c H5F_LIBVER_EARLIEST
+///		\li \c H5F_LIBVER_18
+///		\li \c H5F_LIBVER_LATEST
+///
+///		and \a libver_high:
+///		\li \c H5F_LIBVER_18
+///		\li \c H5F_LIBVER_LATEST
+// Programmer:  Binh-Minh Ribler - March, 2015
+//--------------------------------------------------------------------------
+void FileAccPropList::getLibverBounds(H5F_libver_t& libver_low, H5F_libver_t& libver_high) const
+{
+    herr_t ret_value = H5Pget_libver_bounds(id, &libver_low, &libver_high);
+    if( ret_value < 0 )
+    {
+	throw PropListIException("FileAccPropList::getLibverBounds", "H5Pget_libver_bounds failed");
+    }
+}
+
+//--------------------------------------------------------------------------
 // Function:	FileAccPropList destructor
 ///\brief	Noop destructor
 // Programmer	Binh-Minh Ribler - 2000
diff --git a/c++/src/H5FaccProp.h b/c++/src/H5FaccProp.h
index 4042eba..2ec2d40 100644
--- a/c++/src/H5FaccProp.h
+++ b/c++/src/H5FaccProp.h
@@ -129,6 +129,13 @@ class H5_DLLCPP FileAccPropList : public PropList {
 	// Returns garbage collecting references setting.
 	unsigned getGcReferences() const;
 
+	// Sets bounds on versions of library format to be used when creating
+	// or writing objects.
+	void setLibverBounds(H5F_libver_t libver_low, H5F_libver_t libver_high) const;
+
+	// Gets the current settings for the library version format bounds.
+	void getLibverBounds(H5F_libver_t& libver_low, H5F_libver_t& libver_high) const;
+
 	///\brief Returns this class name.
 	virtual H5std_string fromClass () const { return("FileAccPropList"); }
 
diff --git a/c++/src/H5File.cpp b/c++/src/H5File.cpp
index 0620070..9cc51b7 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(H5I_INVALID_HID) {}
+H5File::H5File() : H5Location(), CommonFG(), id(H5I_INVALID_HID) {}
 
 //--------------------------------------------------------------------------
 // Function:	H5File overloaded constructor
@@ -86,7 +86,7 @@ H5File::H5File() : H5Location(), id(H5I_INVALID_HID) {}
 //		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(H5I_INVALID_HID)
+H5File::H5File( const char* name, unsigned int flags, const FileCreatPropList& create_plist, const FileAccPropList& access_plist ) : H5Location(), CommonFG(), id(H5I_INVALID_HID)
 {
     try {
 	p_get_file(name, flags, create_plist, access_plist);
@@ -111,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(H5I_INVALID_HID)
+H5File::H5File( const H5std_string& name, unsigned int flags, const FileCreatPropList& create_plist, const FileAccPropList& access_plist ) : H5Location(), CommonFG(), id(H5I_INVALID_HID)
 {
     try {
 	p_get_file(name.c_str(), flags, create_plist, access_plist);
@@ -158,13 +158,32 @@ void H5File::p_get_file(const char* name, unsigned int flags, const FileCreatPro
 #endif // DOXYGEN_SHOULD_SKIP_THIS
 
 //--------------------------------------------------------------------------
+// Function:	H5File overloaded constructor
+///\brief	Creates an H5File object using an existing file id.
+///\param	existing_id - IN: Id of an existing file
+// Programmer	Binh-Minh Ribler - 2015
+// Description
+//	Mar 29, 2015
+//		Added in responding to a request from user Jason Newton.
+//		However, it is not recommended to use the private member "id"
+//		in applications.  Unlike other situations, where similar
+//		constructor is needed by the library in order to return
+//		an object, H5File doesn't need it. -BMR (HDFFV-8766 partially)
+//--------------------------------------------------------------------------
+H5File::H5File(hid_t existing_id) : H5Location(), CommonFG()
+{
+    id = existing_id;
+    incRefCount(); // increment number of references to this id
+}
+
+//--------------------------------------------------------------------------
 // Function:	H5File copy constructor
 ///\brief	Copy constructor: makes a copy of the original
 ///		H5File object.
 ///\param	original - IN: H5File instance to copy
 // Programmer	Binh-Minh Ribler - 2000
 //--------------------------------------------------------------------------
-H5File::H5File(const H5File& original) : H5Location(original)
+H5File::H5File(const H5File& original) : H5Location(), CommonFG()
 {
     id = original.getId();
     incRefCount(); // increment number of references to this id
@@ -225,6 +244,13 @@ bool H5File::isHdf5(const H5std_string& name )
 //--------------------------------------------------------------------------
 void H5File::openFile(const char* name, unsigned int flags, const FileAccPropList& access_plist)
 {
+    try {
+        close();
+    }
+    catch (Exception close_error) {
+        throw FileIException("H5File::openFile", close_error.getDetailMsg());
+    }
+
     hid_t access_plist_id = access_plist.getId();
     id = H5Fopen (name, flags, access_plist_id);
     if (id < 0)  // throw an exception when open fails
@@ -379,25 +405,6 @@ ssize_t H5File::getObjCount(unsigned types) const
 }
 
 //--------------------------------------------------------------------------
-// Function:	H5File::getObjCount
-///\brief	This is an overloaded member function, provided for convenience.
-///		It takes no parameter and returns the object count of all
-///		object types.
-///\return	Number of opened object IDs
-///\exception	H5::FileIException
-// Programmer   Binh-Minh Ribler - May 2004
-//--------------------------------------------------------------------------
-ssize_t H5File::getObjCount() const
-{
-   ssize_t num_objs = H5Fget_obj_count(id, H5F_OBJ_ALL);
-   if( num_objs < 0 )
-   {
-      throw FileIException("H5File::getObjCount", "H5Fget_obj_count failed");
-   }
-   return (num_objs);
-}
-
-//--------------------------------------------------------------------------
 // Function:	H5File::getObjIDs
 ///\brief	Retrieves a list of opened object IDs (files, datasets,
 ///		groups and datatypes) in the same file.
diff --git a/c++/src/H5File.h b/c++/src/H5File.h
index 0ef85b5..fb24447 100644
--- a/c++/src/H5File.h
+++ b/c++/src/H5File.h
@@ -59,8 +59,7 @@ class H5_DLLCPP H5File : public H5Location, public CommonFG {
 
 	// Returns the number of opened object IDs (files, datasets, groups
 	// and datatypes) in the same file.
-	ssize_t getObjCount(unsigned types) const;
-	ssize_t getObjCount() const;
+	ssize_t getObjCount(unsigned types = H5F_OBJ_ALL) const;
 
 	// Retrieves a list of opened object IDs (files, datasets, groups
 	// and datatypes) in the same file.
@@ -84,6 +83,9 @@ class H5_DLLCPP H5File : public H5Location, public CommonFG {
 	// Gets the file id
 	virtual hid_t getLocId() const;
 
+	// Creates an H5File using an existing file id.
+	H5File(hid_t existing_id);
+
 #endif // DOXYGEN_SHOULD_SKIP_THIS
 
 	///\brief Returns this class name.
diff --git a/c++/src/H5Group.cpp b/c++/src/H5Group.cpp
index 41e7fc6..fd04f1a 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(H5I_INVALID_HID) {}
+Group::Group() : H5Object(), CommonFG(), id(H5I_INVALID_HID) {}
 
 //--------------------------------------------------------------------------
 // Function:	Group copy constructor
@@ -59,7 +59,7 @@ Group::Group() : H5Object(), id(H5I_INVALID_HID) {}
 ///\param	original - IN: Original group to copy
 // Programmer	Binh-Minh Ribler - 2000
 //--------------------------------------------------------------------------
-Group::Group(const Group& original) : H5Object(original)
+Group::Group(const Group& original) : H5Object(), CommonFG()
 {
     id = original.getId();
     incRefCount(); // increment number of references to this id
@@ -82,9 +82,10 @@ hid_t Group::getLocId() const
 ///\param	existing_id - IN: Id of an existing group
 // Programmer	Binh-Minh Ribler - 2000
 //--------------------------------------------------------------------------
-Group::Group(const hid_t existing_id) : H5Object()
+Group::Group(const hid_t existing_id) : H5Object(), CommonFG()
 {
     id = existing_id;
+    incRefCount(); // increment number of references to this id
 }
 
 //--------------------------------------------------------------------------
diff --git a/c++/src/H5IdComponent.cpp b/c++/src/H5IdComponent.cpp
index 4a9dcac..c01d41e 100644
--- a/c++/src/H5IdComponent.cpp
+++ b/c++/src/H5IdComponent.cpp
@@ -37,16 +37,33 @@ namespace H5 {
 ///\param	h5_id - IN: Id of an existing object
 ///\exception	H5::DataTypeIException
 // Programmer	Binh-Minh Ribler - 2000
+//
+// *** Deprecation warning ***
+// This constructor is no longer appropriate because the data member "id" had
+// been moved to the sub-classes.  It will be removed in 1.10 release.  If its
+// removal does not raise any problems in 1.10, it will be removed from 1.8 in
+// subsequent releases.
 //--------------------------------------------------------------------------
 IdComponent::IdComponent(const hid_t h5_id) {}
 
+//void IdComponent::p_setId(const hid_t new_id)
+//{
+    //p_setId(new_id);
+//}
+
 //--------------------------------------------------------------------------
 // Function:	IdComponent copy constructor
-///\brief	Copy constructor: makes a copy of the original IdComponent object.
-///\param	original - IN: IdComponent instance to copy
+// Purpose:	This noop copy constructor is removed as a result of the data
+//		member "id" being moved down to sub-classes. (Mar 2015)
+// Parameters:	original - IN: IdComponent instance to copy
 // Programmer	Binh-Minh Ribler - 2000
+//
+// *** Deprecation warning ***
+// This constructor is no longer appropriate because the data member "id" had
+// been moved to the sub-classes.  It is removed from 1.8.15 because it is
+// a noop and it can be generated by the compiler if needed.
 //--------------------------------------------------------------------------
-IdComponent::IdComponent( const IdComponent& original ) {}
+// IdComponent::IdComponent(const IdComponent& original) {}
 
 //--------------------------------------------------------------------------
 // Function:	IdComponent::incRefCount
@@ -82,12 +99,14 @@ void IdComponent::decRefCount(const hid_t obj_id) const
 {
     if (p_valid_id(obj_id))
 	if (H5Idec_ref(obj_id) < 0)
+	{
 	    if (H5Iget_ref(obj_id) <= 0)
 		throw IdComponentException(inMemFunc("decRefCount"),
 					"object ref count is 0 or negative");
 	    else
 		throw IdComponentException(inMemFunc("decRefCount"),
 					"decrementing object ref count failed");
+	}
 }
 
 //--------------------------------------------------------------------------
diff --git a/c++/src/H5IdComponent.h b/c++/src/H5IdComponent.h
index 986e50a..c959e95 100644
--- a/c++/src/H5IdComponent.h
+++ b/c++/src/H5IdComponent.h
@@ -62,11 +62,18 @@ class H5_DLLCPP IdComponent {
 	// Sets the identifier of this object to a new value.
 	void setId(const hid_t new_id);
 
+	// *** Deprecation warning ***
+	// The following two constructors are no longer appropriate after the
+	// data member "id" had been moved to the sub-classes.
+	// The copy constructor is a noop and is removed in 1.8.15 and the
+	// other will be removed from 1.10 release, and then from 1.8 if its
+	// removal does not raise any problems in two 1.10 releases.
+
 	// Creates an object to hold an HDF5 identifier.
 	IdComponent( const hid_t h5_id );
 
 	// Copy constructor: makes copy of the original IdComponent object.
-	IdComponent( const IdComponent& original );
+	// IdComponent( const IdComponent& original );
 
 #ifndef DOXYGEN_SHOULD_SKIP_THIS
 	// Pure virtual function for there are various H5*close for the
@@ -100,6 +107,7 @@ class H5_DLLCPP IdComponent {
 	// Sets the identifier of this object to a new value. - this one
 	// doesn't increment reference count
 	virtual void p_setId(const hid_t new_id) = 0;
+	//virtual void p_setId(const hid_t new_id);
 
 #endif // DOXYGEN_SHOULD_SKIP_THIS
 
diff --git a/c++/src/H5Include.h b/c++/src/H5Include.h
index 87cb182..1e0e952 100644
--- a/c++/src/H5Include.h
+++ b/c++/src/H5Include.h
@@ -28,3 +28,15 @@ typedef int bool;
 const bool  false = 0;
 const bool  true  = 1;
 #endif
+
+// These are defined in H5Opkg.h, which should not be included in the C++ API,
+// so re-define them here for now.
+
+/* Initial version of the object header format */
+#define H5O_VERSION_1	1
+
+/* Revised version - leaves out reserved bytes and alignment padding, and adds
+ *      magic number as prefix and checksum as suffix for all chunks.
+ */
+#define H5O_VERSION_2	2
+
diff --git a/c++/src/H5IntType.h b/c++/src/H5IntType.h
index 95fa642..e28f5c2 100644
--- a/c++/src/H5IntType.h
+++ b/c++/src/H5IntType.h
@@ -24,7 +24,7 @@ namespace H5 {
 //! Class IntType operates on HDF5 integer datatype.
 class H5_DLLCPP IntType : public AtomType {
    public:
-	// Creates a integer type using a predefined type
+	// Creates an integer type using a predefined type
 	IntType(const PredType& pred_type);
 
 	// Gets the integer datatype of the specified dataset
diff --git a/c++/src/H5Location.cpp b/c++/src/H5Location.cpp
index 70be5bf..be11875 100644
--- a/c++/src/H5Location.cpp
+++ b/c++/src/H5Location.cpp
@@ -70,17 +70,28 @@ H5Location::H5Location() : IdComponent() {}
 //		object.
 // Parameters	object_id - IN: Id of an existing HDF5 object
 // Programmer	Binh-Minh Ribler - 2000
+
+// *** Deprecation warning ***
+// This constructor is no longer appropriate because the data member "id" had
+// been moved to the sub-classes.  It will be removed in 1.10 release.  If its
+// removal does not raise any problems in 1.10, it will be removed from 1.8 in
+// subsequent releases.
 //--------------------------------------------------------------------------
-H5Location::H5Location(const hid_t object_id) : IdComponent(object_id) {}
+H5Location::H5Location(const hid_t object_id) : IdComponent() {}
 
 //--------------------------------------------------------------------------
 // Function:	H5Location copy constructor
-///\brief	Copy constructor: makes a copy of the original H5Location
-///		instance.
+// Purpose:	This noop copy constructor is removed as a result of the data
+//		member "id" being moved down to sub-classes. (Mar 2015)
 ///\param	original - IN: H5Location instance to copy
 // Programmer	Binh-Minh Ribler - 2000
+//
+// *** Deprecation warning ***
+// This constructor is no longer appropriate because the data member "id" had
+// been moved to the sub-classes.  It is removed from 1.8.15 because it is
+// a noop and it can be generated by the compiler if needed.
 //--------------------------------------------------------------------------
-H5Location::H5Location( const H5Location& original ) : IdComponent( original ) {}
+// H5Location::H5Location(const H5Location& original) : IdComponent() {}
 
 #endif // DOXYGEN_SHOULD_SKIP_THIS
 
@@ -115,8 +126,9 @@ Attribute H5Location::createAttribute( const char* name, const DataType& data_ty
    // If the attribute id is valid, create and return the Attribute object
    if( attr_id > 0 )
    {
-      Attribute attr( attr_id );
-      return( attr );
+	Attribute attr;
+	f_Attribute_setId(&attr, attr_id);
+	return( attr );
    }
    else
       throw AttributeIException(inMemFunc("createAttribute"), "H5Acreate2 failed");
@@ -147,8 +159,9 @@ Attribute H5Location::openAttribute( const char* name ) const
    hid_t attr_id = H5Aopen(getId(), name, H5P_DEFAULT);
    if( attr_id > 0 )
    {
-      Attribute attr( attr_id );
-      return( attr );
+	Attribute attr;
+	f_Attribute_setId(&attr, attr_id);
+	return( attr );
    }
    else
    {
@@ -182,12 +195,13 @@ Attribute H5Location::openAttribute( const unsigned int idx ) const
 			H5_ITER_INC, (hsize_t)idx, H5P_DEFAULT, H5P_DEFAULT);
    if( attr_id > 0 )
    {
-      Attribute attr( attr_id );
-      return( attr );
+	Attribute attr;
+	f_Attribute_setId(&attr, attr_id);
+	return(attr);
    }
    else
    {
-      throw AttributeIException(inMemFunc("openAttribute"), "H5Aopen_by_idx failed");
+	throw AttributeIException(inMemFunc("openAttribute"), "H5Aopen_by_idx failed");
    }
 }
 
@@ -884,6 +898,12 @@ H5O_type_t H5Location::p_get_ref_obj_type(void *ref, H5R_type_t ref_type) const
 ///\return	DataSpace object
 ///\exception	H5::ReferenceException
 // Programmer	Binh-Minh Ribler - May, 2004
+// Modification
+//	Mar 29, 2015
+//		Used friend function to set id for DataSpace instead of the
+//		existing id constructor or the setId method to avoid incrementing
+//		ref count, as a work-around for a problem described in the JIRA
+//		issue HDFFV-7947. -BMR
 //--------------------------------------------------------------------------
 DataSpace H5Location::getRegion(void *ref, H5R_type_t ref_type) const
 {
@@ -893,8 +913,9 @@ DataSpace H5Location::getRegion(void *ref, H5R_type_t ref_type) const
       throw ReferenceException(inMemFunc("getRegion"), "H5Rget_region failed");
    }
    try {
-      DataSpace dataspace(space_id);
-      return(dataspace);
+	DataSpace dataspace;
+	f_DataSpace_setId(&dataspace, space_id);
+	return(dataspace);
    }
    catch (DataSpaceIException E) {
       throw ReferenceException(inMemFunc("getRegion"), E.getDetailMsg());
@@ -909,6 +930,36 @@ DataSpace H5Location::getRegion(void *ref, H5R_type_t ref_type) const
 //--------------------------------------------------------------------------
 H5Location::~H5Location() {}
 
+//--------------------------------------------------------------------------
+// Function:	f_Attribute_setId - friend
+// Purpose:	This function is friend to class H5::Attribute so that it
+//		can set Attribute::id in order to work around a problem
+//		described in the JIRA issue HDFFV-7947.
+//		Applications shouldn't need to use it.
+// param	attr   - IN/OUT: Attribute object to be changed
+// param	new_id - IN: New id to set
+// Programmer	Binh-Minh Ribler - 2015
+//--------------------------------------------------------------------------
+void f_Attribute_setId(Attribute* attr, hid_t new_id)
+{
+    attr->id = new_id;
+}
+
+//--------------------------------------------------------------------------
+// Function:	f_DataSpace_setId - friend
+// Purpose:	This function is friend to class H5::DataSpace so that it can
+//		can set DataSpace::id in order to work around a problem
+//		described in the JIRA issue HDFFV-7947.
+//		Applications shouldn't need to use it.
+// param	dspace   - IN/OUT: DataSpace object to be changed
+// param	new_id - IN: New id to set
+// Programmer	Binh-Minh Ribler - 2015
+//--------------------------------------------------------------------------
+void f_DataSpace_setId(DataSpace* dspace, hid_t new_id)
+{
+    dspace->id = new_id;
+}
+
 #ifndef H5_NO_NAMESPACE
 } // end namespace
 #endif
diff --git a/c++/src/H5Location.h b/c++/src/H5Location.h
index 592f68d..dc6ae51 100644
--- a/c++/src/H5Location.h
+++ b/c++/src/H5Location.h
@@ -138,11 +138,18 @@ class H5_DLLCPP H5Location : public IdComponent {
 	// Default constructor,
 	H5Location();
 
+	// *** Deprecation warning ***
+	// The following two constructors are no longer appropriate after the
+	// data member "id" had been moved to the sub-classes.
+	// The copy constructor is a noop and is removed in 1.8.15 and the
+	// other will be removed from 1.10 release, and then from 1.8 if its
+	// removal does not raise any problems in two 1.10 releases.
+
 	// Creates a copy of an existing object giving the location id.
 	H5Location(const hid_t loc_id);
 
 	// Copy constructor.
-	H5Location(const H5Location& original);
+	// H5Location(const H5Location& original);
 
 	// Creates a reference to an HDF5 object or a dataset region.
 	void p_reference(void* ref, const char* name, hid_t space_id, H5R_type_t ref_type) const;
@@ -158,6 +165,10 @@ class H5_DLLCPP H5Location : public IdComponent {
 	// Retrieves the type of object that an object reference points to.
 	H5O_type_t p_get_ref_obj_type(void *ref, H5R_type_t ref_type) const;
 
+        // Sets the identifier of this object to a new value. - this one
+        // doesn't increment reference count
+        virtual void p_setId(const hid_t new_id) = 0;
+
 #endif // DOXYGEN_SHOULD_SKIP_THIS
 
 	// Noop destructor.
diff --git a/c++/src/H5Object.cpp b/c++/src/H5Object.cpp
index 94b03ab..56e88e0 100644
--- a/c++/src/H5Object.cpp
+++ b/c++/src/H5Object.cpp
@@ -14,6 +14,7 @@
  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
 
 #include <string>
+#include <iostream>
 
 #include "H5Include.h"
 #include "H5Exception.h"
@@ -35,6 +36,7 @@
 
 #ifndef H5_NO_NAMESPACE
 namespace H5 {
+using namespace std;
 #endif
 
 #ifndef DOXYGEN_SHOULD_SKIP_THIS
@@ -50,8 +52,26 @@ H5Object::H5Object() : H5Location() {}
 // 		object.
 // Parameters	object_id - IN: Id of an existing HDF5 object
 // Programmer	Binh-Minh Ribler - 2000
+// *** Deprecation warning ***
+// This constructor is no longer appropriate because the data member "id" had
+// been moved to the sub-classes.  It will be removed in 1.10 release.  If its
+// removal does not raise any problems in 1.10, it will be removed from 1.8 in
+// subsequent releases.
 //--------------------------------------------------------------------------
-H5Object::H5Object( const hid_t object_id ) : H5Location( object_id ) {}
+H5Object::H5Object(const hid_t object_id) : H5Location() {}
+
+//--------------------------------------------------------------------------
+// Function:	H5Object copy constructor
+///\brief	Copy constructor: makes a copy of the original H5Object
+///		instance.
+///\param	original - IN: H5Object instance to copy
+// Programmer	Binh-Minh Ribler - 2000
+// *** Deprecation warning ***
+// This constructor is no longer appropriate because the data member "id" had
+// been moved to the sub-classes.  It is removed from 1.8.15 because it is
+// a noop and it can be generated by the compiler if needed.
+//--------------------------------------------------------------------------
+// H5Object::H5Object(const H5Object& original) : H5Location() {}
 
 //--------------------------------------------------------------------------
 // Function:    getObjName
@@ -165,15 +185,6 @@ ssize_t H5Object::getObjName(H5std_string& obj_name, size_t len) const
 }
 
 //--------------------------------------------------------------------------
-// Function:	H5Object copy constructor
-///\brief	Copy constructor: makes a copy of the original H5Object
-///		instance.
-///\param	original - IN: H5Object instance to copy
-// Programmer	Binh-Minh Ribler - 2000
-//--------------------------------------------------------------------------
-H5Object::H5Object( const H5Object& original ) : H5Location( original ) {}
-
-//--------------------------------------------------------------------------
 // Function:	H5Object destructor
 ///\brief	Noop destructor.
 // Programmer	Binh-Minh Ribler - 2000
diff --git a/c++/src/H5Object.h b/c++/src/H5Object.h
index 5576d13..f8ac792 100644
--- a/c++/src/H5Object.h
+++ b/c++/src/H5Object.h
@@ -47,9 +47,6 @@ namespace H5 {
 class H5_DLLCPP H5Object : public H5Location {
    public:
 #ifndef DOXYGEN_SHOULD_SKIP_THIS
-	// Copy constructor: makes copy of an H5Object object.
-	H5Object(const H5Object& original);
-
 	// Gets the name of this HDF5 object, i.e., Group, DataSet, or
 	// DataType.
 	ssize_t getObjName(char *obj_name, size_t buf_size = 0) const;
@@ -63,9 +60,19 @@ class H5_DLLCPP H5Object : public H5Location {
 	// Default constructor
 	H5Object();
 
+        // *** Deprecation warning ***
+        // The following two constructors are no longer appropriate after the
+        // data member "id" had been moved to the sub-classes.
+        // The copy constructor is a noop and is removed in 1.8.15 and the
+        // other will be removed from 1.10 release, and then from 1.8 if its
+        // removal does not raise any problems in two 1.10 releases.
+
 	// Creates a copy of an existing object giving the object id
 	H5Object( const hid_t object_id );
 
+	// Copy constructor: makes copy of an H5Object object.
+	// H5Object(const H5Object& original);
+
 #endif // DOXYGEN_SHOULD_SKIP_THIS
 
 }; /* end class H5Object */
diff --git a/c++/src/H5PropList.cpp b/c++/src/H5PropList.cpp
index 5afe80f..70ec629 100644
--- a/c++/src/H5PropList.cpp
+++ b/c++/src/H5PropList.cpp
@@ -54,7 +54,7 @@ PropList::PropList() : IdComponent(), id(H5P_DEFAULT) {}
 ///\param	original - IN: The original property list to copy
 // Programmer	Binh-Minh Ribler - 2000
 //--------------------------------------------------------------------------
-PropList::PropList(const PropList& original) : IdComponent(original)
+PropList::PropList(const PropList& original) : IdComponent()
 {
     id = original.getId();
     incRefCount(); // increment number of references to this id
@@ -258,6 +258,7 @@ void PropList::p_setId(const hid_t new_id)
    // reset object's id to the given id
    id = new_id;
 }
+
 #endif // DOXYGEN_SHOULD_SKIP_THIS
 
 //--------------------------------------------------------------------------
diff --git a/c++/src/H5VarLenType.h b/c++/src/H5VarLenType.h
index 9ad2b40..0a67d12 100644
--- a/c++/src/H5VarLenType.h
+++ b/c++/src/H5VarLenType.h
@@ -43,7 +43,6 @@ class H5_DLLCPP VarLenType : public DataType {
 	// Noop destructor
 	virtual ~VarLenType();
 
-   protected:
 	// Default constructor
 	VarLenType();
 };
diff --git a/c++/src/Makefile.am b/c++/src/Makefile.am
index 7c1f497..cdef7bf 100644
--- a/c++/src/Makefile.am
+++ b/c++/src/Makefile.am
@@ -30,12 +30,6 @@ lib_LTLIBRARIES=libhdf5_cpp.la
 # Add libtool numbers to the HDF5 C++ library (from config/lt_vers.am)
 libhdf5_cpp_la_LDFLAGS= -version-info $(LT_VERS_INTERFACE):$(LT_VERS_REVISION):$(LT_VERS_AGE) $(AM_LDFLAGS)
 
-# Shared C++ libraries aren't universally supported.
-if CXX_SHARED_CONDITIONAL
-else
-  AM_LDFLAGS+=-static
-endif
-
 bin_SCRIPTS=h5c++
 
 # Source files for the library
diff --git a/c++/src/Makefile.in b/c++/src/Makefile.in
index f056075..c7b637d 100644
--- a/c++/src/Makefile.in
+++ b/c++/src/Makefile.in
@@ -103,13 +103,11 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \
 	$(srcdir)/Makefile.am $(top_srcdir)/bin/mkinstalldirs \
 	$(srcdir)/h5c++.in $(top_srcdir)/bin/depcomp \
 	$(include_HEADERS) $(top_srcdir)/bin/test-driver
-
-# Shared C++ libraries aren't universally supported.
- at CXX_SHARED_CONDITIONAL_FALSE@am__append_1 = -static
 TESTS =
 subdir = c++/src
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \
+	$(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs
@@ -415,10 +413,9 @@ AM_CPPFLAGS = @AM_CPPFLAGS@ @H5_CPPFLAGS@ -I$(top_srcdir)/src
 AM_CXXFLAGS = @AM_CXXFLAGS@ @H5_CXXFLAGS@
 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@
-AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ $(am__append_1)
+AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@
 AM_MAKEFLAGS = @AM_MAKEFLAGS@
 AR = @AR@
-AS = @AS@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -450,7 +447,6 @@ DIRECT_VFD = @DIRECT_VFD@
 DLLTOOL = @DLLTOOL@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
-DYNAMIC_DIRS = @DYNAMIC_DIRS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -469,17 +465,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@
 FCLIBS = @FCLIBS@
 FC_VERSION = @FC_VERSION@
 FGREP = @FGREP@
-FILTERS = @FILTERS@
 FSEARCH_DIRS = @FSEARCH_DIRS@
 GREP = @GREP@
 H5_CFLAGS = @H5_CFLAGS@
 H5_CPPFLAGS = @H5_CPPFLAGS@
 H5_CXXFLAGS = @H5_CXXFLAGS@
-H5_CXX_SHARED = @H5_CXX_SHARED@
 H5_FCFLAGS = @H5_FCFLAGS@
 H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@
 H5_LDFLAGS = @H5_LDFLAGS@
-H5_LONE_COLON = @H5_LONE_COLON@
 H5_VERSION = @H5_VERSION@
 HADDR_T = @HADDR_T@
 HAVE_DMALLOC = @HAVE_DMALLOC@
@@ -502,7 +495,6 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INSTRUMENT = @INSTRUMENT@
 INSTRUMENT_LIBRARY = @INSTRUMENT_LIBRARY@
-LARGEFILE = @LARGEFILE@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
@@ -543,7 +535,6 @@ R_INTEGER = @R_INTEGER@
 R_LARGE = @R_LARGE@
 SEARCH = @SEARCH@
 SED = @SED@
-SETX = @SETX@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIZE_T = @SIZE_T@
@@ -558,10 +549,6 @@ TR = @TR@
 TRACE_API = @TRACE_API@
 UNAME_INFO = @UNAME_INFO@
 USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@
-USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@
-USE_FILTER_NBIT = @USE_FILTER_NBIT@
-USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@
-USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@
 USE_FILTER_SZIP = @USE_FILTER_SZIP@
 USINGMEMCHECKER = @USINGMEMCHECKER@
 VERSION = @VERSION@
@@ -675,15 +662,15 @@ TRACE = perl $(top_srcdir)/bin/trace
 
 # .chkexe files are used to mark tests that have run successfully.
 # .chklog files are output from those tests.
-# *.clog are from the MPE option.
-CHECK_CLEANFILES = *.chkexe *.chklog *.clog
+# *.clog and *.clog2 are from the MPE option.
+CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2
 
 # Add libtool shared library version numbers to the HDF5 library
 # See libtool versioning documentation online.
 # 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_INTERFACE = 10
+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 4ebd796..5a73fcb 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.14
+PROJECT_NUMBER         = HDF5 version 1.8.15 currently under development
 
 # 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
diff --git a/c++/src/h5c++.in b/c++/src/h5c++.in
index a4aaf52..069842a 100644
--- a/c++/src/h5c++.in
+++ b/c++/src/h5c++.in
@@ -333,7 +333,7 @@ if test "x$do_link" = "xyes"; then
     hpux*)                flag="-Wl,+b -Wl," ;;
     freebsd*|solaris*)    flag="-R" ;;
     rs6000*|aix*)         flag="-L" ;;
-    irix*|sgi)            flag="-rpath " ;;
+    sgi)                  flag="-rpath " ;;
     *)                    flag="" ;;
   esac
 
diff --git a/c++/test/CMakeLists.txt b/c++/test/CMakeLists.txt
index acb2b7f..dcdf3a3 100644
--- a/c++/test/CMakeLists.txt
+++ b/c++/test/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required (VERSION 2.8.11)
+cmake_minimum_required (VERSION 3.1.0)
 PROJECT (HDF5_CPP_TEST)
 # --------------------------------------------------------------------
 # Notes: When creating unit test executables they should be prefixed
@@ -36,7 +36,7 @@ configure_file (${HDF5_CPP_TEST_SOURCE_DIR}/H5srcdir_str.h.in H5srcdir_str.h  @O
 
 add_executable (cpp_testhdf5 ${CPP_TEST_SRCS} )
 TARGET_NAMING (cpp_testhdf5 ${LIB_TYPE})
-TARGET_C_PROPERTIES (cpp_testhdf5 " " " ")
+TARGET_C_PROPERTIES (cpp_testhdf5 ${LIB_TYPE} " " " ")
 target_link_libraries (cpp_testhdf5
     ${HDF5_CPP_LIB_TARGET}
     ${HDF5_LIB_TARGET}
diff --git a/c++/test/Makefile.am b/c++/test/Makefile.am
index 2717e9c..705ec72 100644
--- a/c++/test/Makefile.am
+++ b/c++/test/Makefile.am
@@ -23,12 +23,6 @@ include $(top_srcdir)/config/commence.am
 # Include src, test, and c++/src directories
 AM_CPPFLAGS+=-I$(top_srcdir)/src -I$(top_srcdir)/test -I$(top_srcdir)/c++/src
 
-# Shared C++ libraries aren't universally supported.
-if CXX_SHARED_CONDITIONAL
-else
-  AM_LDFLAGS+=-static
-endif
-
 # These are our main targets.  They should be listed in the order to be
 # executed, generally most specific tests to least specific tests.
 TEST_PROG=testhdf5
diff --git a/c++/test/Makefile.in b/c++/test/Makefile.in
index 49c08e4..8711eef 100644
--- a/c++/test/Makefile.in
+++ b/c++/test/Makefile.in
@@ -99,14 +99,12 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \
 	$(srcdir)/Makefile.am $(top_srcdir)/bin/mkinstalldirs \
 	$(srcdir)/H5srcdir_str.h.in $(top_srcdir)/bin/depcomp \
 	$(top_srcdir)/bin/test-driver
-
-# Shared C++ libraries aren't universally supported.
- at CXX_SHARED_CONDITIONAL_FALSE@am__append_1 = -static
 check_PROGRAMS = $(am__EXEEXT_1)
 TESTS = $(am__EXEEXT_1)
 subdir = c++/test
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \
+	$(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs
@@ -406,10 +404,9 @@ AM_CPPFLAGS = @AM_CPPFLAGS@ @H5_CPPFLAGS@ -I$(top_srcdir)/src \
 AM_CXXFLAGS = @AM_CXXFLAGS@ @H5_CXXFLAGS@
 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@
-AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ $(am__append_1)
+AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@
 AM_MAKEFLAGS = @AM_MAKEFLAGS@
 AR = @AR@
-AS = @AS@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -441,7 +438,6 @@ DIRECT_VFD = @DIRECT_VFD@
 DLLTOOL = @DLLTOOL@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
-DYNAMIC_DIRS = @DYNAMIC_DIRS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -460,17 +456,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@
 FCLIBS = @FCLIBS@
 FC_VERSION = @FC_VERSION@
 FGREP = @FGREP@
-FILTERS = @FILTERS@
 FSEARCH_DIRS = @FSEARCH_DIRS@
 GREP = @GREP@
 H5_CFLAGS = @H5_CFLAGS@
 H5_CPPFLAGS = @H5_CPPFLAGS@
 H5_CXXFLAGS = @H5_CXXFLAGS@
-H5_CXX_SHARED = @H5_CXX_SHARED@
 H5_FCFLAGS = @H5_FCFLAGS@
 H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@
 H5_LDFLAGS = @H5_LDFLAGS@
-H5_LONE_COLON = @H5_LONE_COLON@
 H5_VERSION = @H5_VERSION@
 HADDR_T = @HADDR_T@
 HAVE_DMALLOC = @HAVE_DMALLOC@
@@ -493,7 +486,6 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INSTRUMENT = @INSTRUMENT@
 INSTRUMENT_LIBRARY = @INSTRUMENT_LIBRARY@
-LARGEFILE = @LARGEFILE@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
@@ -534,7 +526,6 @@ R_INTEGER = @R_INTEGER@
 R_LARGE = @R_LARGE@
 SEARCH = @SEARCH@
 SED = @SED@
-SETX = @SETX@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIZE_T = @SIZE_T@
@@ -549,10 +540,6 @@ TR = @TR@
 TRACE_API = @TRACE_API@
 UNAME_INFO = @UNAME_INFO@
 USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@
-USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@
-USE_FILTER_NBIT = @USE_FILTER_NBIT@
-USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@
-USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@
 USE_FILTER_SZIP = @USE_FILTER_SZIP@
 USINGMEMCHECKER = @USINGMEMCHECKER@
 VERSION = @VERSION@
@@ -666,10 +653,10 @@ TRACE = perl $(top_srcdir)/bin/trace
 
 # .chkexe files are used to mark tests that have run successfully.
 # .chklog files are output from those tests.
-# *.clog are from the MPE option.
+# *.clog and *.clog2 are from the MPE option.
 # Temporary files
-CHECK_CLEANFILES = *.chkexe *.chklog *.clog tattr_multi.h5 tfattrs.h5 \
-	tattr_scalar.h5 tattr_compound.h5 tattr_dtype.h5 \
+CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 tattr_multi.h5 \
+	tfattrs.h5 tattr_scalar.h5 tattr_compound.h5 tattr_dtype.h5 \
 	tattr_basic.h5
 
 # These are our main targets.  They should be listed in the order to be
diff --git a/c++/test/dsets.cpp b/c++/test/dsets.cpp
index fc0ea3a..9f1916d 100644
--- a/c++/test/dsets.cpp
+++ b/c++/test/dsets.cpp
@@ -56,11 +56,12 @@ const H5std_string	DSET_TCONV_NAME	("tconv");
 const H5std_string	DSET_COMPRESS_NAME("compressed");
 const H5std_string	DSET_BOGUS_NAME	("bogus");
 
+/* Temporary filter IDs used for testing */
 const int H5Z_FILTER_BOGUS = 305;
 
-// Local prototypes
 static size_t filter_bogus(unsigned int flags, size_t cd_nelmts,
     const unsigned int *cd_values, size_t nbytes, size_t *buf_size, void **buf);
+// UNUSED variables caused warning, but taking them out caused failure.
 
 /*-------------------------------------------------------------------------
  * Function:	test_create
@@ -458,13 +459,10 @@ const H5Z_class2_t H5Z_BOGUS[1] = {{
  *-------------------------------------------------------------------------
  */
 static size_t
-/*bogus(unsigned int UNUSED flags, size_t UNUSED cd_nelmts,
-      const unsigned int UNUSED cd_values[], size_t nbytes,
-      size_t UNUSED *buf_size, void UNUSED **buf)
-BMR: removed UNUSED for now until asking Q. or R. to pass compilation*/
 filter_bogus(unsigned int flags, size_t cd_nelmts,
       const unsigned int cd_values[], size_t nbytes,
       size_t *buf_size, void **buf)
+// UNUSED variables caused warning, but taking them out caused failure.
 {
     return nbytes;
 }
diff --git a/c++/test/tattr.cpp b/c++/test/tattr.cpp
index e56110c..275a287 100644
--- a/c++/test/tattr.cpp
+++ b/c++/test/tattr.cpp
@@ -53,9 +53,9 @@ const size_t		ATTR_MAX_DIMS = 7;
 
 /* 3-D dataset with fixed dimensions */
 const int SPACE1_RANK = 3;
-const int SPACE1_DIM1 = 3;
-const int SPACE1_DIM2 = 15;
-const int SPACE1_DIM3 = 13;
+const hsize_t SPACE1_DIM1 = 3;
+const hsize_t SPACE1_DIM2 = 15;
+const hsize_t SPACE1_DIM3 = 13;
 
 /* Object names */
 const H5std_string DSET1_NAME("Dataset1");
@@ -65,7 +65,7 @@ const H5std_string TYPE1_NAME("/Type");
 /* Attribute Rank & Dimensions */
 const H5std_string ATTR1_NAME("Attr1");
 const int ATTR1_RANK = 1;
-const int ATTR1_DIM1 = 3;
+const hsize_t ATTR1_DIM1 = 3;
 int attr_data1[ATTR1_DIM1]={512,-234,98123}; /* Test data for 1st attribute */
 
 // File attribute, using the same rank and dimensions as ATTR1_NAME's
@@ -74,8 +74,8 @@ const H5std_string FATTR2_NAME("File Attr2");
 
 const H5std_string ATTR2_NAME("Attr2");
 const int ATTR2_RANK = 2;
-const int ATTR2_DIM1 = 2;
-const int ATTR2_DIM2 = 2;
+const hsize_t ATTR2_DIM1 = 2;
+const hsize_t ATTR2_DIM2 = 2;
 int attr_data2[ATTR2_DIM1][ATTR2_DIM2]={{7614,-416},{197814,-3}}; /* Test data for 2nd attribute */
 
 const H5std_string ATTR3_NAME("Attr3");
@@ -123,7 +123,7 @@ static void test_attr_basic_write()
     hsize_t dims2[] = {ATTR1_DIM1};
     hsize_t dims3[] = {ATTR2_DIM1,ATTR2_DIM2};
     int     read_data1[ATTR1_DIM1]={0}; // Buffer for reading 1st attribute
-    int     i;
+    hsize_t i;
 
     // Output message about test being performed
     SUBTEST("Basic Attribute Writing Functions");
@@ -384,7 +384,7 @@ static void test_attr_getname()
 static void test_attr_rename()
 {
     int read_data1[ATTR1_DIM1]={0}; // Buffer for reading the attribute
-    int i;
+    hsize_t i;
 
     // Output message about test being performed
     SUBTEST("Checking for Existence and Renaming Attribute");
@@ -493,7 +493,7 @@ static void test_attr_rename()
 ********************************************************************/
 static void test_attr_basic_read()
 {
-    int i, j;
+    hsize_t i, j;
 
     // Output message about test being performed
     SUBTEST("Basic Attribute Reading Functions");
@@ -624,7 +624,6 @@ static void test_attr_compound_read()
     size_t      size;   // Attribute datatype size as stored in file
     size_t      offset; // Attribute datatype field offset
     struct attr4_struct read_data4[ATTR4_DIM1][ATTR4_DIM2]; // Buffer for reading 4th attribute
-    hsize_t i,j;
 
     // Output message about test being performed
     SUBTEST("Basic Attribute Functions");
@@ -654,7 +653,7 @@ static void test_attr_compound_read()
 
 	// Get the dims of the dataspace and verify them
 	int ndims = space.getSimpleExtentDims(dims);
-	if(dims[0]!=ATTR4_DIM1)
+	verify_val(ndims, ATTR4_RANK, "DataSpace::getSimpleExtentDims", __LINE__, __FILE__);
         verify_val((long)dims[0], (long)ATTR4_DIM1, "DataSpace::getSimpleExtentDims",__LINE__, __FILE__);
         verify_val((long)dims[1], (long)ATTR4_DIM2, "DataSpace::getSimpleExtentDims",__LINE__, __FILE__);
 
@@ -673,13 +672,14 @@ static void test_attr_compound_read()
 
 	// Verify that the fields have the same names as when the type
 	// was created
-	for(i=0; i<fields; i++)
+	int j;
+	for(j=0; j<fields; j++)
 	{
-	    H5std_string fieldname = datatype.getMemberName(i);
+	    H5std_string fieldname = datatype.getMemberName(j);
 	    if(!((fieldname == ATTR4_FIELDNAME1) ||
 		(fieldname == ATTR4_FIELDNAME2) ||
 		(fieldname == ATTR4_FIELDNAME3)))
-            TestErrPrintf("%d:invalid field name for field #%d: %s\n",__LINE__,i,fieldname.c_str());
+            TestErrPrintf("%d:invalid field name for field #%d: %s\n",__LINE__,j,fieldname.c_str());
 	} /* end for */
 
 	offset = datatype.getMemberOffset(0);
@@ -729,23 +729,38 @@ static void test_attr_compound_read()
 	attr.read(datatype, read_data4);
 
 	// Verify values read in
-	for(i=0; i<ATTR4_DIM1; i++)
-	    for(j=0; j<ATTR4_DIM2; j++)
-		if(HDmemcmp(&attr_data4[i][j],&read_data4[i][j],sizeof(struct attr4_struct))) {
-		    TestErrPrintf("%d:attribute data different: attr_data4[%d][%d].i=%d, read_data4[%d][%d].i=%d\n",__LINE__,i,j,attr_data4[i][j].i,i,j,read_data4[i][j].i);
-		    TestErrPrintf("%d:attribute data different: attr_data4[%d][%d].d=%f, read_data4[%d][%d].d=%f\n",__LINE__,i,j,attr_data4[i][j].d,i,j,read_data4[i][j].d);
-		    TestErrPrintf("%d:attribute data different: attr_data4[%d][%d].c=%c, read_data4[%d][%d].c=%c\n",__LINE__,i,j,attr_data4[i][j].c,i,j,read_data4[i][j].c);
+	hsize_t ii, jj;
+	for(ii=0; ii<ATTR4_DIM1; ii++)
+	    for(jj=0; jj<ATTR4_DIM2; jj++)
+		if(HDmemcmp(&attr_data4[ii][jj],&read_data4[ii][jj],sizeof(struct attr4_struct))) {
+		    TestErrPrintf("%d:attribute data different: attr_data4[%d][%d].i=%d, read_data4[%d][%d].i=%d\n",__LINE__,ii,jj,attr_data4[ii][jj].i,ii,jj,read_data4[ii][jj].i);
+		    TestErrPrintf("%d:attribute data different: attr_data4[%d][%d].d=%f, read_data4[%d][%d].d=%f\n",__LINE__,ii,jj,attr_data4[ii][jj].d,ii,jj,read_data4[ii][jj].d);
+		    TestErrPrintf("%d:attribute data different: attr_data4[%d][%d].c=%c, read_data4[%d][%d].c=%c\n",__LINE__,ii,jj,attr_data4[ii][jj].c,ii,jj,read_data4[ii][jj].c);
              } /* end if */
 
 	// Verify name
 	H5std_string attr_name = attr.getName();
 	verify_val(attr_name, ATTR4_NAME, "Attribute::getName", __LINE__, __FILE__);
-	PASSED();
     } // end try block
 
     catch (Exception E) {
 	issue_fail_msg("test_attr_compound_read()", __LINE__, __FILE__, E.getCDetailMsg());
     }
+
+    try
+    {
+	// Now, try truncating the file to make sure reference counting is good.
+	// If any references to ids in the previous block are left unterminated,
+	// the truncating will fail, because the file will not be closed in
+	// the file.close() above.
+	H5File file1(FILE_COMPOUND, H5F_ACC_TRUNC);
+
+	PASSED();
+    } // end try block
+
+    catch (FileIException E) {
+	issue_fail_msg("test_attr_compound_read()", __LINE__, __FILE__, "Unable to truncate file, possibly because some objects are left opened");
+    }
 }   // test_attr_compound_read()
 
 /****************************************************************
@@ -928,7 +943,7 @@ static void test_attr_mult_read()
     int     read_data1[ATTR1_DIM1]={0}; // Buffer for reading 1st attribute
     int     read_data2[ATTR2_DIM1][ATTR2_DIM2]={{0}}; // Buffer for reading 2nd attribute
     double  read_data3[ATTR3_DIM1][ATTR3_DIM2][ATTR3_DIM3]={{{0}}}; // Buffer for reading 3rd attribute
-    int     i,j,k;
+    hsize_t i,j,k;
 
 	// Output message about test being performed
     SUBTEST("Multiple Attribute Reading Functions");
@@ -959,7 +974,7 @@ static void test_attr_mult_read()
 	// Get the dims of the dataspace and verify them
 	hsize_t dims[ATTR_MAX_DIMS];    // Attribute dimensions
 	int ndims = space.getSimpleExtentDims(dims);
-	if(dims[0]!=ATTR1_DIM1)
+	if ((long)dims[0] != (long)ATTR1_DIM1)
 	    TestErrPrintf("%d:attribute dimensions different: dims[0]=%d, should be %d\n",__LINE__,(int)dims[0],ATTR1_DIM1);
 
 	/* Verify Datatype */
@@ -1010,10 +1025,9 @@ static void test_attr_mult_read()
 
 	// Get the dims of the dataspace and verify them
 	ndims = space.getSimpleExtentDims(dims);
-	if(dims[0]!=ATTR2_DIM1)
-	    TestErrPrintf("%d:attribute dimensions different: dims[0]=%d, should be %d\n",__LINE__,(int)dims[0],ATTR2_DIM1);
-	if(dims[1]!=ATTR2_DIM2)
-	    TestErrPrintf("%d:attribute dimensions different: dims[1]=%d, should be %d\n",__LINE__,(int)dims[1],ATTR2_DIM2);
+
+        verify_val((long)dims[0], (long)ATTR2_DIM1, "DataSpace::getSimpleExtentDims",__LINE__, __FILE__);
+        verify_val((long)dims[1], (long)ATTR2_DIM2, "DataSpace::getSimpleExtentDims",__LINE__, __FILE__);
 
 	/* Verify Datatype */
 
diff --git a/c++/test/tcompound.cpp b/c++/test/tcompound.cpp
index 62a90e8..de4a9b8 100644
--- a/c++/test/tcompound.cpp
+++ b/c++/test/tcompound.cpp
@@ -780,7 +780,7 @@ static void test_compound_set_size()
 	CompType dtype_tmp = file.openCompType("dtype");
 
 	// Make a copy of the data type
-	dtype = dtype_tmp;
+	dtype.copy(dtype_tmp);
 
 	// Verify that the compound is not packed
 	// packed = dtype_tmp.packed(); // not until C library provides API
diff --git a/c++/test/tfile.cpp b/c++/test/tfile.cpp
index e4e8d34..7c2811e 100644
--- a/c++/test/tfile.cpp
+++ b/c++/test/tfile.cpp
@@ -330,6 +330,32 @@ static void test_file_open()
         verify_val(iparm1, F2_SYM_INTERN_K, "FileCreatPropList::getSymk", __LINE__, __FILE__);
         verify_val(iparm2, F2_SYM_LEAF_K, "FileCreatPropList::getSymk", __LINE__, __FILE__);
 
+	// Test H5File constructor with existing file id
+	H5File file2(file1.getId());
+	file1.close();
+
+	// Try truncating the file, and it should fail because the file is
+	// still opened with file2.
+    	try {
+	    H5File file3 (FILE2, H5F_ACC_TRUNC);  // should throw E
+
+	    // Should FAIL but didn't, so throw an invalid action exception
+	    throw InvalidActionException("H5File constructor", "Attempt truncating an opened file.");
+    	}
+	catch( FileIException E ) // catching H5F_ACC_TRUNC on opened file
+	{} // do nothing, FAIL expected
+
+	// Now, really close the file.
+	file2.close();
+
+	// Truncating should succeed now.
+	H5File file3(FILE2, H5F_ACC_TRUNC);
+
+	// Opening another file to file3 object, FILE2 should be closed, so
+	// the next attempt to truncate FILE2 should succeed.
+	file3.openFile(FILE1, H5F_ACC_RDONLY);
+	H5File file4(FILE2, H5F_ACC_TRUNC);
+
 	PASSED();
     }   // end of try block
 
@@ -501,6 +527,7 @@ const H5std_string	FATTR1_NAME ("file attribute 1");
 const H5std_string	FATTR2_NAME ("file attribute 2");
 int fattr_data[ATTR1_DIM1]={512,-234,98123}; /* Test data for file attribute */
 int dattr_data[ATTR1_DIM1]={256,-123,1000}; /* Test data for dataset attribute */
+
 static void test_file_attribute()
 {
     int rdata[ATTR1_DIM1];
@@ -602,6 +629,119 @@ static void test_file_attribute()
     }
 }   // test_file_attribute()
 

+const H5std_string	FILE6("tfile5.h5");
+const H5std_string	ROOTGROUP("/");
+const H5std_string	GROUP1("/G1");
+const H5std_string	SUBGROUP3("/G1/G3");
+
+/*-------------------------------------------------------------------------
+ * Function:	test_libver_bounds_real
+ *
+ * Purpose:	Verify that a file created and modified with the
+ *		specified libver bounds has the specified object header
+ *		versions for the right objects.
+ *
+ * Return:	None
+ *
+ * Programmer:	Binh-Minh Ribler (use C version)
+ *		March, 2015
+ *
+ *-------------------------------------------------------------------------
+ */
+static void test_libver_bounds_real(
+		H5F_libver_t libver_create, unsigned oh_vers_create,
+		H5F_libver_t libver_mod, unsigned oh_vers_mod)
+{
+    try {
+
+    /*
+     * Create a new file using the default creation property and access property
+     * with latest library version.
+     */
+    FileAccPropList fapl;
+    fapl.setLibverBounds(libver_create, H5F_LIBVER_LATEST);
+    H5File file(FILE6, H5F_ACC_TRUNC, FileCreatPropList::DEFAULT, fapl);
+
+    /*
+     * Make sure the root group has the correct object header version
+     */
+    unsigned obj_version = file.childObjVersion(ROOTGROUP);
+    verify_val(obj_version, oh_vers_create, "H5File::childObjVersion", __LINE__, __FILE__);
+
+    /*
+     * Reopen the file and make sure the root group still has the correct version
+     */
+    file.close();
+
+    fapl.setLibverBounds(libver_mod, H5F_LIBVER_LATEST);
+
+    file.openFile(FILE6, H5F_ACC_RDWR, fapl);
+
+    obj_version = file.childObjVersion(ROOTGROUP);
+    verify_val(obj_version, oh_vers_create, "H5File::childObjVersion", __LINE__, __FILE__);
+
+    /*
+     * Create a group named "/G1" in the file, and make sure it has the correct
+     * object header version
+     */
+    Group group = file.createGroup(GROUP1);
+
+    obj_version = file.childObjVersion(GROUP1);
+    verify_val(obj_version, oh_vers_mod, "H5File::childObjVersion", __LINE__, __FILE__);
+
+    group.close(); // close "/G1"
+
+    /*
+     * Create a group named "/G1/G3" in the file, and make sure it has the
+     * correct object header version
+     */
+    group = file.createGroup(SUBGROUP3);
+
+    obj_version = group.childObjVersion(SUBGROUP3);
+    verify_val(obj_version, oh_vers_mod, "H5File::childObjVersion", __LINE__, __FILE__);
+
+    group.close(); // close "/G1/G3"
+
+    /*
+     * Make sure the root group still has the correct object header version
+     */
+    obj_version = file.childObjVersion(ROOTGROUP);
+    verify_val(obj_version, oh_vers_create, "H5File::childObjVersion", __LINE__, __FILE__);
+
+    // Everything should be closed as they go out of scope
+    }   // end of try block
+
+    catch (Exception E) {
+        issue_fail_msg("test_libver_bounds_real()", __LINE__, __FILE__, E.getCDetailMsg());
+    }
+
+} /* end test_libver_bounds_real() */
+
+/*-------------------------------------------------------------------------
+ *
+ * Function:    test_libver_bounds
+ *
+ * Purpose:     Verify that a file created and modified with various
+ *		libver bounds is handled correctly.
+ *
+ * Return:      None
+ *
+ * Programmer:  Binh-Minh Ribler (use C version)
+ *              March 2015
+ *
+ *-------------------------------------------------------------------------
+ */
+static void test_libver_bounds()
+{
+    // Output message about test being performed
+    SUBTEST("Setting library version bounds");
+
+    /* Run the tests */
+    test_libver_bounds_real(H5F_LIBVER_EARLIEST, H5O_VERSION_1, H5F_LIBVER_LATEST, H5O_VERSION_2);
+    test_libver_bounds_real(H5F_LIBVER_LATEST, H5O_VERSION_2, H5F_LIBVER_EARLIEST, H5O_VERSION_1);
+    PASSED();
+} /* end test_libver_bounds() */
+

 /*-------------------------------------------------------------------------
  * Function:    test_file
  *
@@ -629,6 +769,7 @@ void test_file()
     test_file_size();	// Test file size
     test_file_name();	// Test getting file's name
     test_file_attribute();	// Test file attribute feature
+    test_libver_bounds();	// Test format version
 }   // test_file()
 
 

@@ -655,4 +796,5 @@ void cleanup_file()
     HDremove(FILE3.c_str());
     HDremove(FILE4.c_str());
     HDremove(FILE5.c_str());
+    HDremove(FILE6.c_str());
 }   // cleanup_file
diff --git a/c++/test/tfilter.cpp b/c++/test/tfilter.cpp
index 854c7bb..3edb83a 100644
--- a/c++/test/tfilter.cpp
+++ b/c++/test/tfilter.cpp
@@ -57,9 +57,13 @@ static herr_t test_filter_internal(hid_t fid, const char *name, hid_t dcpl,
 #endif
 
 /* Temporary filter IDs used for testing */
-#define H5Z_FILTER_BOGUS        305
+const int H5Z_FILTER_BOGUS = 305;
+
+#if 0 // UNUSED variables caused warning, so duplicated below with NULL instead
 static size_t filter_bogus(unsigned int flags, size_t cd_nelmts,
     const unsigned int *cd_values, size_t nbytes, size_t *buf_size, void **buf);
+#endif
+static size_t filter_bogus(size_t nbytes);
 /* This message derives from H5Z */
 const H5Z_class2_t H5Z_BOGUS[1] = {{
     H5Z_CLASS_T_VERS,       /* H5Z_class_t version */
@@ -88,9 +92,12 @@ const H5Z_class2_t H5Z_BOGUS[1] = {{
  *-------------------------------------------------------------------------
  */
 static size_t
+#if 0 // UNUSED variables caused warning, so duplicated below with NULL instead
 filter_bogus(unsigned int UNUSED flags, size_t UNUSED cd_nelmts,
       const unsigned int UNUSED *cd_values, size_t nbytes,
       size_t UNUSED *buf_size, void UNUSED **buf)
+#endif
+filter_bogus(size_t nbytes)
 {
     return nbytes;
 }
@@ -239,7 +246,8 @@ static void test_szip_filter(H5File& file1)
 #else /* H5_HAVE_FILTER_SZIP */
     SUBTEST("szip filter");
     SKIPPED();
-    puts("    Szip filter not enabled");
+    H5std_string fname = file1.getFileName();
+    cerr << "    Szip filter not enabled for file '" << fname << "'" << endl;
 #endif /* H5_HAVE_FILTER_SZIP */
 }  // test_szip_filter
 
diff --git a/c++/test/tobject.cpp b/c++/test/tobject.cpp
index b86d7cb..2381ec2 100644
--- a/c++/test/tobject.cpp
+++ b/c++/test/tobject.cpp
@@ -181,19 +181,39 @@ static void test_get_objname_ontypes()
 	Group grp = file.createGroup ("typetests");
 
 	// Create a datatype and save it
+	IntType inttype(PredType::STD_B8LE);
+	inttype.commit(file, "INT type of STD_B8LE");
+
+	// Close the type then open it again to test getting its name
+	inttype.close();
+	inttype = file.openIntType("INT type of STD_B8LE");
+
+	// Get and verify its name
+	H5std_string inttype_name = inttype.getObjName();
+	verify_val(inttype_name, "/INT type of STD_B8LE", "DataType::getObjName", __LINE__, __FILE__);
+
+	// Make copy of a predefined type and save it
 	DataType dtype(PredType::STD_B8LE);
 	dtype.commit(file, "STD_B8LE");
 
+	// Close the data type and file
+	dtype.close();
+	file.close();
+
+	// Re-open the file and the data type to test getting its name
+	file.openFile(FILE_OBJECTS, H5F_ACC_RDWR);
+	dtype = file.openDataType("STD_B8LE");
+
 	// Get and verify its name
 	H5std_string type_name = dtype.getObjName();
-	verify_val(type_name, "/STD_B8LE", "DataSet::getObjName", __LINE__, __FILE__);
+	verify_val(type_name, "/STD_B8LE", "DataType::getObjName", __LINE__, __FILE__);
 
 	// Test getting type's name from copied type
 	DataType copied_type;
 	copied_type.copy(dtype);
 	copied_type.commit(file, "copy of STD_B8LE");
 	type_name = copied_type.getObjName();
-	verify_val(type_name, "/copy of STD_B8LE", "DataSet::getObjName", __LINE__, __FILE__);
+	verify_val(type_name, "/copy of STD_B8LE", "DataType::getObjName", __LINE__, __FILE__);
 
 	// Test copying an integer predefined type
 	IntType new_int_type(PredType::NATIVE_INT);
@@ -201,14 +221,14 @@ static void test_get_objname_ontypes()
 	// Name this datatype
 	new_int_type.commit(grp, "IntType NATIVE_INT");
 	ssize_t name_len = new_int_type.getObjName(type_name); // default len
-	verify_val(type_name, "/typetests/IntType NATIVE_INT", "DataSet::getObjName", __LINE__, __FILE__);
+	verify_val(name_len, (ssize_t)HDstrlen("/typetests/IntType NATIVE_INT"), "DataType::getObjName", __LINE__, __FILE__);
+	verify_val(type_name, "/typetests/IntType NATIVE_INT", "DataType::getObjName", __LINE__, __FILE__);
 
 	// Close everything or they can be closed when objects go out of scope
 	dtype.close();
 	copied_type.close();
 	new_int_type.close();
 	grp.close();
-	file.close();
 
 	PASSED();
     } // end top try block
diff --git a/c++/test/trefer.cpp b/c++/test/trefer.cpp
index c4ff9af..0331c8d 100644
--- a/c++/test/trefer.cpp
+++ b/c++/test/trefer.cpp
@@ -463,11 +463,11 @@ test_reference_group(void)
 
 	// Check number of objects in the group dereferenced by constructor
 	hsize_t nobjs = refgroup.getNumObjs();
-	verify_val(nobjs, 3, "H5Group::getNumObjs",__LINE__,__FILE__);
+	verify_val(nobjs, (hsize_t)3, "H5Group::getNumObjs",__LINE__,__FILE__);
 
 	// Check number of objects in the group dereferenced by ::reference
 	nobjs = group.getNumObjs();
-	verify_val(nobjs, 3, "H5Group::getNumObjs",__LINE__,__FILE__);
+	verify_val(nobjs, (hsize_t)3, "H5Group::getNumObjs",__LINE__,__FILE__);
 
 	// Check getting file name given the group dereferenced via constructor
 	H5std_string fname = refgroup.getFileName();
@@ -480,7 +480,7 @@ test_reference_group(void)
 	// Unlink one of the objects in the dereferenced group, and re-check
 	refgroup.unlink(GROUPNAME2);
 	nobjs = refgroup.getNumObjs();
-	verify_val(nobjs, 2, "H5Group::getNumObjs",__LINE__,__FILE__);
+	verify_val(nobjs, (hsize_t)2, "H5Group::getNumObjs",__LINE__,__FILE__);
 
 	// Close resources
 	group.close();
@@ -684,43 +684,43 @@ test_reference_region_1D(void)
 	reg_sp.getSelectHyperBlocklist((hsize_t)0, (hsize_t)nelms, coords);
 
 	// Verify values in the list
-	verify_val(coords[0],   2, "Hyperslab Coordinates",__LINE__,__FILE__);
-	verify_val(coords[1],   3, "Hyperslab Coordinates",__LINE__,__FILE__);
-	verify_val(coords[2],   7, "Hyperslab Coordinates",__LINE__,__FILE__);
-	verify_val(coords[3],   8, "Hyperslab Coordinates",__LINE__,__FILE__);
-	verify_val(coords[4],  12, "Hyperslab Coordinates",__LINE__,__FILE__);
-	verify_val(coords[5],  13, "Hyperslab Coordinates",__LINE__,__FILE__);
-	verify_val(coords[6],  17, "Hyperslab Coordinates",__LINE__,__FILE__);
-	verify_val(coords[7],  18, "Hyperslab Coordinates",__LINE__,__FILE__);
-	verify_val(coords[8],  22, "Hyperslab Coordinates",__LINE__,__FILE__);
-	verify_val(coords[9],  23, "Hyperslab Coordinates",__LINE__,__FILE__);
-	verify_val(coords[10], 27, "Hyperslab Coordinates",__LINE__,__FILE__);
-	verify_val(coords[11], 28, "Hyperslab Coordinates",__LINE__,__FILE__);
-	verify_val(coords[12], 32, "Hyperslab Coordinates",__LINE__,__FILE__);
-	verify_val(coords[13], 33, "Hyperslab Coordinates",__LINE__,__FILE__);
-	verify_val(coords[14], 37, "Hyperslab Coordinates",__LINE__,__FILE__);
-	verify_val(coords[15], 38, "Hyperslab Coordinates",__LINE__,__FILE__);
-	verify_val(coords[16], 42, "Hyperslab Coordinates",__LINE__,__FILE__);
-	verify_val(coords[17], 43, "Hyperslab Coordinates",__LINE__,__FILE__);
-	verify_val(coords[18], 47, "Hyperslab Coordinates",__LINE__,__FILE__);
-	verify_val(coords[19], 48, "Hyperslab Coordinates",__LINE__,__FILE__);
-	verify_val(coords[20], 52, "Hyperslab Coordinates",__LINE__,__FILE__);
-	verify_val(coords[21], 53, "Hyperslab Coordinates",__LINE__,__FILE__);
-	verify_val(coords[22], 57, "Hyperslab Coordinates",__LINE__,__FILE__);
-	verify_val(coords[23], 58, "Hyperslab Coordinates",__LINE__,__FILE__);
-	verify_val(coords[24], 62, "Hyperslab Coordinates",__LINE__,__FILE__);
-	verify_val(coords[25], 63, "Hyperslab Coordinates",__LINE__,__FILE__);
-	verify_val(coords[26], 67, "Hyperslab Coordinates",__LINE__,__FILE__);
-	verify_val(coords[27], 68, "Hyperslab Coordinates",__LINE__,__FILE__);
-	verify_val(coords[28], 72, "Hyperslab Coordinates",__LINE__,__FILE__);
-	verify_val(coords[29], 73, "Hyperslab Coordinates",__LINE__,__FILE__);
+	verify_val(coords[0], (hsize_t)2, "Hyperslab Coordinates",__LINE__,__FILE__);
+	verify_val(coords[1], (hsize_t)3, "Hyperslab Coordinates",__LINE__,__FILE__);
+	verify_val(coords[2], (hsize_t)7, "Hyperslab Coordinates",__LINE__,__FILE__);
+	verify_val(coords[3], (hsize_t)8, "Hyperslab Coordinates",__LINE__,__FILE__);
+	verify_val(coords[4],(hsize_t)12, "Hyperslab Coordinates",__LINE__,__FILE__);
+	verify_val(coords[5],(hsize_t)13, "Hyperslab Coordinates",__LINE__,__FILE__);
+	verify_val(coords[6],(hsize_t)17, "Hyperslab Coordinates",__LINE__,__FILE__);
+	verify_val(coords[7],(hsize_t)18, "Hyperslab Coordinates",__LINE__,__FILE__);
+	verify_val(coords[8],(hsize_t)22, "Hyperslab Coordinates",__LINE__,__FILE__);
+	verify_val(coords[9],(hsize_t)23, "Hyperslab Coordinates",__LINE__,__FILE__);
+	verify_val(coords[10],(hsize_t)27, "Hyperslab Coordinates",__LINE__,__FILE__);
+	verify_val(coords[11],(hsize_t)28, "Hyperslab Coordinates",__LINE__,__FILE__);
+	verify_val(coords[12],(hsize_t)32, "Hyperslab Coordinates",__LINE__,__FILE__);
+	verify_val(coords[13],(hsize_t)33, "Hyperslab Coordinates",__LINE__,__FILE__);
+	verify_val(coords[14],(hsize_t)37, "Hyperslab Coordinates",__LINE__,__FILE__);
+	verify_val(coords[15],(hsize_t)38, "Hyperslab Coordinates",__LINE__,__FILE__);
+	verify_val(coords[16],(hsize_t)42, "Hyperslab Coordinates",__LINE__,__FILE__);
+	verify_val(coords[17],(hsize_t)43, "Hyperslab Coordinates",__LINE__,__FILE__);
+	verify_val(coords[18],(hsize_t)47, "Hyperslab Coordinates",__LINE__,__FILE__);
+	verify_val(coords[19],(hsize_t)48, "Hyperslab Coordinates",__LINE__,__FILE__);
+	verify_val(coords[20],(hsize_t)52, "Hyperslab Coordinates",__LINE__,__FILE__);
+	verify_val(coords[21],(hsize_t)53, "Hyperslab Coordinates",__LINE__,__FILE__);
+	verify_val(coords[22],(hsize_t)57, "Hyperslab Coordinates",__LINE__,__FILE__);
+	verify_val(coords[23],(hsize_t)58, "Hyperslab Coordinates",__LINE__,__FILE__);
+	verify_val(coords[24],(hsize_t)62, "Hyperslab Coordinates",__LINE__,__FILE__);
+	verify_val(coords[25],(hsize_t)63, "Hyperslab Coordinates",__LINE__,__FILE__);
+	verify_val(coords[26],(hsize_t)67, "Hyperslab Coordinates",__LINE__,__FILE__);
+	verify_val(coords[27],(hsize_t)68, "Hyperslab Coordinates",__LINE__,__FILE__);
+	verify_val(coords[28],(hsize_t)72, "Hyperslab Coordinates",__LINE__,__FILE__);
+	verify_val(coords[29],(hsize_t)73, "Hyperslab Coordinates",__LINE__,__FILE__);
 
 	HDfree(coords);
 
 	// Check boundaries
 	reg_sp.getSelectBounds(low, high);
-	verify_val(low[0], 2, "DataSpace::getSelectBounds",__LINE__,__FILE__);
-	verify_val(high[0], 73, "DataSpace::getSelectBounds",__LINE__,__FILE__);
+	verify_val(low[0],(hsize_t)2, "DataSpace::getSelectBounds",__LINE__,__FILE__);
+	verify_val(high[0],(hsize_t)73, "DataSpace::getSelectBounds",__LINE__,__FILE__);
 
 	/* Close region space */
 	reg_sp.close();
@@ -758,8 +758,8 @@ test_reference_region_1D(void)
 
 	// Check boundaries
 	elm_sp.getSelectBounds(low, high);
-	verify_val(low[0], 3, "DataSpace::getSelectBounds",__LINE__,__FILE__);
-	verify_val(high[0], 97, "DataSpace::getSelectBounds",__LINE__,__FILE__);
+	verify_val(low[0],(hsize_t)3, "DataSpace::getSelectBounds",__LINE__,__FILE__);
+	verify_val(high[0],(hsize_t)97, "DataSpace::getSelectBounds",__LINE__,__FILE__);
 
 	// Close element space
 	elm_sp.close();
diff --git a/c++/test/ttypes.cpp b/c++/test/ttypes.cpp
index 5e683c7..9f85613 100644
--- a/c++/test/ttypes.cpp
+++ b/c++/test/ttypes.cpp
@@ -107,7 +107,7 @@ static void test_classes()
 {
     SUBTEST("PredType::getClass()");
     try {
-	int curr_nerrors = GetTestNumErrs();
+	// maybe later, int curr_nerrors = GetTestNumErrs();
 
 	// PredType::NATIVE_INT should be in H5T_INTEGER class
 	H5T_class_t tcls = PredType::NATIVE_INT.getClass();
@@ -280,10 +280,16 @@ static void test_query()
 	tid2.close();
 	file.close();
 
+	// Try truncating the file to make sure reference counting is good.
+	// If any references to ids of tid1 and tid2 are left unterminated,
+	// the truncating will fail, because the file will not be closed in
+	// the file.close() above.
+	H5File file1(FILENAME[2], H5F_ACC_TRUNC);
+
 	PASSED();
     }   // end of try block
     catch (Exception E) {
-        issue_fail_msg("test_query", __LINE__, __FILE__, E.getCDetailMsg());
+	issue_fail_msg("test_query", __LINE__, __FILE__, E.getCDetailMsg());
     }
 }   // test_query
 
@@ -464,27 +470,20 @@ static void test_named ()
 	trans_type.setPrecision(256);
 	trans_type.close();
 
-    /*
-     * Close the committed type and reopen it.  It should return a named type.
-* This had something to do with the way IntType was returned and assigned
-and caused itype.committed not working correctly.  So, use another_type for
-now.
+	// Close the committed type and reopen it.  It should be a named type.
 	itype.close();
 	itype = file.openIntType("native-int");
 	iscommitted = itype.committed();
-*/
-	IntType another_type = file.openIntType("native-int");
-	iscommitted = another_type.committed();
 	if (!iscommitted)
 	    throw InvalidActionException("IntType::committed()", "Opened named types should be named types!");
 
 	// Create a dataset that uses the named type, then get the dataset's
 	// datatype and make sure it's a named type.
-	DataSet dset = file.createDataSet("dset1", another_type, space);
+	DataSet dset = file.createDataSet("dset1", itype, space);
 	ds_type = new DataType(dset.getDataType());
 	iscommitted = ds_type->committed();
 	if (!iscommitted)
-	    throw InvalidActionException("IntType::committed()", "1 Dataset type should be named type!");
+	    throw InvalidActionException("IntType::committed()", "Dataset type should be named type!");
 	dset.close();
 	ds_type->close();
         delete ds_type;
diff --git a/c++/test/tvlstr.cpp b/c++/test/tvlstr.cpp
index a2669db..7c81a8e 100644
--- a/c++/test/tvlstr.cpp
+++ b/c++/test/tvlstr.cpp
@@ -60,6 +60,7 @@ const hsize_t SPACE1_DIM1 = 4;
 **  Note: exact copy from the C version.
 **  (Not used now)
 ****************************************************************/
+#if 0 // not used now
 static void *test_vlstr_alloc_custom(size_t size, void *info)
 {
     void *ret_value=NULL;	// Pointer to return
@@ -81,6 +82,7 @@ static void *test_vlstr_alloc_custom(size_t size, void *info)
 
     return(ret_value);
 }
+#endif
 
 /****************************************************************
 **
@@ -92,6 +94,7 @@ static void *test_vlstr_alloc_custom(size_t size, void *info)
 **  Note: exact copy from the C version.
 **  (Not used now)
 ****************************************************************/
+#if 0 // not used now
 static void test_vlstr_free_custom(void *_mem, void *info)
 {
     unsigned char *mem;
@@ -111,6 +114,7 @@ static void test_vlstr_free_custom(void *_mem, void *info)
         HDfree(mem);
     } // end if
 }
+#endif
 
 /*-------------------------------------------------------------------------
  * Function:	test_vlstring_dataset
@@ -256,7 +260,7 @@ static void test_vlstring_array_dataset()
 	char *string_ds_check[SPACE1_DIM1];
 	dataset.read(string_ds_check, vlst);
 
-	int ii;
+	hsize_t ii;
 	for (ii = 0; ii < SPACE1_DIM1; ii++)
 	{
 	    if(HDstrcmp(string_ds_check[ii], string_ds_array[ii])!=0)
@@ -351,25 +355,25 @@ static void test_vlstrings_special()
 	dataset.read(rdata, vlst);
 
 	// Check data read in.
-	hsize_t i;      	// counting variable
-	for (i=0; i<SPACE1_DIM1; i++)
-	    if(rdata[i]!=NULL)
-		TestErrPrintf("VL doesn't match!, rdata[%d]=%p\n",(int)i,rdata[i]);
+	hsize_t ii;      	// counting variable
+	for (ii=0; ii<SPACE1_DIM1; ii++)
+	    if(rdata[ii]!=NULL)
+		TestErrPrintf("VL doesn't match!, rdata[%d]=%p\n",(int)ii,rdata[ii]);
 
 	// Write dataset to disk, then read it back.
 	dataset.write(wdata, vlst);
 	dataset.read(rdata, vlst);
 
 	// Compare data read in.
-	for (i = 0; i < SPACE1_DIM1; i++) {
-	    size_t wlen = HDstrlen(wdata[i]);
-	    size_t rlen = HDstrlen(rdata[i]);
+	for (ii = 0; ii < SPACE1_DIM1; ii++) {
+	    size_t wlen = HDstrlen(wdata[ii]);
+	    size_t rlen = HDstrlen(rdata[ii]);
 	    if(wlen != rlen) {
-		TestErrPrintf("VL data lengths don't match!, strlen(wdata[%d])=%u, strlen(rdata[%d])=%u\n", (int)i, (unsigned)wlen, (int)i, (unsigned)rlen);
+		TestErrPrintf("VL data lengths don't match!, strlen(wdata[%d])=%u, strlen(rdata[%d])=%u\n", (int)ii, (unsigned)wlen, (int)ii, (unsigned)rlen);
 		continue;
 	    } // end if
-	    if(HDstrcmp(wdata[i],rdata[i]) != 0) {
-		TestErrPrintf("VL data values don't match!, wdata[%d]=%s, rdata[%d]=%s\n", (int)i, wdata[i], (int)i, rdata[i]);
+	    if(HDstrcmp(wdata[ii],rdata[ii]) != 0) {
+		TestErrPrintf("VL data values don't match!, wdata[%d]=%s, rdata[%d]=%s\n", (int)ii, wdata[ii], (int)ii, rdata[ii]);
 		continue;
 	    } // end if
 	} // end for
@@ -398,9 +402,9 @@ static void test_vlstrings_special()
 	dataset.read(rdata, vlst);
 
 	// Check data read in.
-	for (i=0; i<SPACE1_DIM1; i++)
-	  if(rdata[i]!=NULL)
-	    TestErrPrintf("VL doesn't match!, rdata[%d]=%p\n",(int)i,rdata[i]);
+	for (ii=0; ii<SPACE1_DIM1; ii++)
+	  if(rdata[ii]!=NULL)
+	    TestErrPrintf("VL doesn't match!, rdata[%d]=%p\n",(int)ii,rdata[ii]);
 
 	// Try to write nil strings to disk.
 	dataset.write(wdata2, vlst);
@@ -409,9 +413,9 @@ static void test_vlstrings_special()
 	dataset.read(rdata, vlst);
 
 	// Check data read in.
-	for (i=0; i<SPACE1_DIM1; i++)
-	  if(rdata[i]!=NULL)
-	    TestErrPrintf("VL doesn't match!, rdata[%d]=%p\n",(int)i,rdata[i]);
+	for (ii=0; ii<SPACE1_DIM1; ii++)
+	  if(rdata[ii]!=NULL)
+	    TestErrPrintf("VL doesn't match!, rdata[%d]=%p\n",(int)ii,rdata[ii]);
 
 	// Close objects and file.
 	dataset.close();
@@ -793,7 +797,7 @@ static void test_vlstring_array_attribute()
 	char *string_att_check[SPACE1_DIM1];
 	gr_attr.read(vlst, &string_att_check);
 
-	int ii;
+	hsize_t ii;
 	for (ii = 0; ii < SPACE1_DIM1; ii++)
 	{
 	    if(HDstrcmp(string_att_check[ii], string_att_array[ii])!=0)
diff --git a/config/cce-fflags b/config/cce-fflags
new file mode 100644
index 0000000..896e711
--- /dev/null
+++ b/config/cce-fflags
@@ -0,0 +1,73 @@
+#							-*- shell-script -*-
+#
+# Copyright by The HDF Group.
+# 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 should be sourced into configure if the compiler is the
+# Cray Compiling Environment (CCE) compiler or a derivative.  It is careful not to do anything
+# if the compiler is not Cray; otherwise `cc_flags_set' is set to `yes'
+#
+
+# Get the compiler version in a way that works for cce
+# unless a compiler version is already known
+#
+#   cc_vendor:    The compiler name: Cray
+#   cc_version:   Version number: 8.3.0
+#
+if test X = "X$f9x_flags_set"; then
+    f9x_version="`$FC $FCFLAGS $H5_FCFLAGS -V 2>&1 |grep 'Cray'`"
+    if test X != "X$f9x_version"; then
+        f9x_vendor=cce
+        f9x_version=`echo $f9x_version |sed 's/.*Version \([-a-z0-9\.\-]*\).*/\1/'`
+        echo "compiler '$FC' is Cray $f9x_vendor-$f9x_version"
+	fc_version_info=$f9x_version
+    fi
+fi
+
+# Common Cray flags for various situations
+if test "X-cce" = "X-$f9x_vendor"; then
+    # Insert section about version specific problems from compiler flags here,
+    # if necessary.
+
+    arch=
+    # Architecture-specific flags
+    # Nothing currently. (Uncomment code below and modify to add any)
+    #case "$host_os-$host_cpu" in
+    #    *-i686)
+    #        arch="-march=i686"
+    #        ;;
+    #esac
+
+    # General
+    H5_FCFLAGS="${H5_FCFLAGS} -hnocaf"
+
+    # Production
+    # -Wl,-s to remove all symbols for smaller file
+    PROD_FCFLAGS="-O3 -Wl,-s"
+
+    # Debug
+    DEBUG_FCFLAGS="-g -O0"
+
+    # Profile
+    # Use this for profiling with gprof
+    PROFILE_FCFLAGS="-g -p"
+
+    # Flags are set
+    f9x_flags_set=yes
+fi
+
+# Clear f9x info if no flags set
+if test "X-$f9x_flags_set" = "X-"; then
+    f9x_vendor=
+    f9x_version=
+fi
diff --git a/config/cce-flags b/config/cce-flags
new file mode 100644
index 0000000..a34fcbe
--- /dev/null
+++ b/config/cce-flags
@@ -0,0 +1,79 @@
+#							-*- shell-script -*-
+#
+# Copyright by The HDF Group.
+# 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 should be sourced into configure if the compiler is the
+# Cray Compiling Environment (CCE) compiler or a derivative.  It is careful not to do anything
+# if the compiler is not Cray; otherwise `cc_flags_set' is set to `yes'
+#
+
+# Get the compiler version in a way that works for cce
+# unless a compiler version is already known
+#
+#   cc_vendor:    The compiler name: Cray
+#   cc_version:   Version number: 8.3.0
+#
+if test X = "X$cc_flags_set"; then
+    cc_version="`$CC $CFLAGS $H5_CFLAGS -V 2>&1 |grep 'Cray'`"
+    if test X != "X$cc_version"; then
+        cc_vendor=cce
+        cc_version=`echo $cc_version |sed 's/.*Version \([-a-z0-9\.\-]*\).*/\1/'`
+        echo "compiler '$CC' is Cray $cc_vendor-$cc_version"
+	cc_version_info=$cc_version
+	cxx_version_info=$cc_version
+    fi
+fi
+
+# Common Cray flags for various situations
+if test "X-cce" = "X-$cc_vendor"; then
+    # Insert section about version specific problems from compiler flags here,
+    # if necessary.
+
+    arch=
+    # Architecture-specific flags
+    # Nothing currently. (Uncomment code below and modify to add any)
+    #case "$host_os-$host_cpu" in
+    #    *-i686)
+    #        arch="-march=i686"
+    #        ;;
+    #esac
+
+    # General
+    # Default to C99 standard.
+    H5_CFLAGS="${H5_CFLAGS:--hc99 $arch}"
+
+    # Production
+    # -Wl,-s to remove all symbols for smaller file
+    PROD_CFLAGS="-O3 -Wl,-s"
+    PROD_CPPFLAGS=
+
+    # Debug
+    DEBUG_CFLAGS="-g -O0"
+    DEBUG_CPPFLAGS=
+
+    # Profile
+    # Use this for profiling with gprof
+    PROFILE_CFLAGS="-g -p"
+    PROFILE_CPPFLAGS=
+
+    # Flags are set
+    cc_flags_set=yes
+
+fi
+
+# Clear cc info if no flags set
+if test "X-$cc_flags_set" = "X-"; then
+    cc_vendor=
+    cc_version=
+fi
diff --git a/config/cmake/ConfigureChecks.cmake b/config/cmake/ConfigureChecks.cmake
index 444ce0b..2b4c4a3 100644
--- a/config/cmake/ConfigureChecks.cmake
+++ b/config/cmake/ConfigureChecks.cmake
@@ -106,15 +106,6 @@ if (WINDOWS)
   set (H5_HAVE_WINDOW_PATH 1)
 endif (WINDOWS)
 
-if (WINDOWS)
-  #-----------------------------------------------------------------------------
-  # These tests need to be manually SET for windows since there is currently
-  # something not quite correct with the actual test implementation. This affects
-  # the 'dt_arith' test and most likely lots of other code
-  # ----------------------------------------------------------------------------
-  set (H5_FP_TO_ULLONG_RIGHT_MAXIMUM "" CACHE INTERNAL "")
-endif (WINDOWS)
-
 # ----------------------------------------------------------------------
 # END of WINDOWS Hard code Values
 # ----------------------------------------------------------------------
@@ -267,101 +258,6 @@ ENDMACRO (H5MiscConversionTest)
 # Check various conversion capabilities
 #-----------------------------------------------------------------------------
 
-# -----------------------------------------------------------------------
-# Set flag to indicate that the machine can handle conversion from
-# long double to integers accurately.  This flag should be set "yes" for
-# all machines except all SGIs.  For SGIs, some conversions are
-# incorrect and its cache value is set "no" in its config/irix6.x and
-# irix5.x.
-#
-H5MiscConversionTest (H5_SIZEOF_LONG_DOUBLE H5_LDOUBLE_TO_INTEGER_ACCURATE "checking IF converting from long double to integers is accurate")
-# -----------------------------------------------------------------------
-# Set flag to indicate that the machine can do conversion from
-# long double to integers regardless of accuracy.  This flag should be
-# set "yes" for all machines except HP-UX 11.00.  For HP-UX 11.00, the
-# compiler has 'floating exception' when converting 'long double' to all
-# integers except 'unsigned long long'.  Other HP-UX systems are unknown
-# yet. (1/8/05 - SLU)
-#
-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
-# machines except all SGIs, where some conversions are
-# incorrect and its cache value is set "no" in its config/irix6.x and
-# irix5.x)
-#
-H5MiscConversionTest (H5_SIZEOF_LONG_DOUBLE H5_INTEGER_TO_LDOUBLE_ACCURATE "checking IF accurately converting from integers to long double")
-# ----------------------------------------------------------------------
-# Set the flag to indicate that the machine can accurately convert
-# 'unsigned long' to 'float' values.
-# (This flag should be set for all machines, except for Pathscale compiler
-# on Sandia's Linux machine where the compiler interprets 'unsigned long'
-# values as negative when the first bit of 'unsigned long' is on during
-# the conversion to float.)
-#
-H5ConversionTests (H5_ULONG_TO_FLOAT_ACCURATE "Checking IF accurately converting unsigned long to float values")
-# ----------------------------------------------------------------------
-# Set the flag to indicate that the machine can accurately convert
-# 'unsigned (long) long' values to 'float' and 'double' values.
-# (This flag should be set for all machines, except for the SGIs, where
-# the cache value is set in the config/irix6.x config file) and Solaris
-# 64-bit machines, where the short program below tests if round-up is
-# correctly handled.
-#
-if (CMAKE_SYSTEM MATCHES "solaris2.*")
-  H5ConversionTests (H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE "Checking IF accurately converting unsigned long long to floating-point values")
-else (CMAKE_SYSTEM MATCHES "solaris2.*")
-  set (H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE 1)
-endif (CMAKE_SYSTEM MATCHES "solaris2.*")
-# ----------------------------------------------------------------------
-# Set the flag to indicate that the machine can accurately convert
-# 'float' or 'double' to 'unsigned long long' values.
-# (This flag should be set for all machines, except for PGI compiler
-# where round-up happens when the fraction of float-point value is greater
-# than 0.5.
-#
-H5ConversionTests (H5_FP_TO_ULLONG_ACCURATE "Checking IF accurately roundup converting floating-point to unsigned long long values" )
-# ----------------------------------------------------------------------
-# Set the flag to indicate that the machine can accurately convert
-# 'float', 'double' or 'long double' to 'unsigned long long' values.
-# (This flag should be set for all machines, except for HP-UX machines
-# where the maximal number for unsigned long long is 0x7fffffffffffffff
-# during conversion.
-#
-H5ConversionTests (H5_FP_TO_ULLONG_RIGHT_MAXIMUM "Checking IF right maximum converting floating-point to unsigned long long values" )
-# ----------------------------------------------------------------------
-# Set the flag to indicate that the machine can accurately convert
-# 'long double' to 'unsigned int' values.  (This flag should be set for
-# all machines, except for some Intel compilers on some Linux.)
-#
-H5ConversionTests (H5_LDOUBLE_TO_UINT_ACCURATE "Checking IF correctly converting long double to unsigned int values")
-# ----------------------------------------------------------------------
-# Set the flag to indicate that the machine can _compile_
-# 'unsigned long long' to 'float' and 'double' typecasts.
-# (This flag should be set for all machines.)
-#
-if (H5_ULLONG_TO_FP_CAST_WORKS MATCHES ^H5_ULLONG_TO_FP_CAST_WORKS$)
-  set (H5_ULLONG_TO_FP_CAST_WORKS 1 CACHE INTERNAL "Checking IF compiling unsigned long long to floating-point typecasts work")
-  message (STATUS "Checking IF compiling unsigned long long to floating-point typecasts work... yes")
-endif (H5_ULLONG_TO_FP_CAST_WORKS MATCHES ^H5_ULLONG_TO_FP_CAST_WORKS$)
-# ----------------------------------------------------------------------
-# Set the flag to indicate that the machine can _compile_
-# 'long long' to 'float' and 'double' typecasts.
-# (This flag should be set for all machines.)
-#
-if (H5_LLONG_TO_FP_CAST_WORKS MATCHES ^H5_LLONG_TO_FP_CAST_WORKS$)
-  set (H5_LLONG_TO_FP_CAST_WORKS 1 CACHE INTERNAL "Checking IF compiling long long to floating-point typecasts work")
-  message (STATUS "Checking IF compiling long long to floating-point typecasts work... yes")
-endif (H5_LLONG_TO_FP_CAST_WORKS MATCHES ^H5_LLONG_TO_FP_CAST_WORKS$)
-# ----------------------------------------------------------------------
-# Set the flag to indicate that the machine can convert from
-# 'unsigned long long' to 'long double' without precision loss.
-# (This flag should be set for all machines, except for FreeBSD(sleipnir)
-# 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.)
-#
-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.
@@ -379,10 +275,7 @@ H5ConversionTests (H5_FP_TO_INTEGER_OVERFLOW_WORKS  "Checking IF overflows norma
 # The machine's conversion gets the correct value.  We define the macro and disable
 # this kind of test until we figure out what algorithm they use.
 #
-if (H5_LDOUBLE_TO_LONG_SPECIAL MATCHES ^H5_LDOUBLE_TO_LONG_SPECIAL$)
-  set (H5_LDOUBLE_TO_LONG_SPECIAL 0 CACHE INTERNAL "Define if your system converts long double to (unsigned) long values with special algorithm")
-  message (STATUS "Checking IF your system converts long double to (unsigned) long values with special algorithm... no")
-endif (H5_LDOUBLE_TO_LONG_SPECIAL MATCHES ^H5_LDOUBLE_TO_LONG_SPECIAL$)
+H5ConversionTests (H5_LDOUBLE_TO_LONG_SPECIAL  "Checking IF your system converts long double to (unsigned) long values with special algorithm")
 # ----------------------------------------------------------------------
 # Set the flag to indicate that the machine is using a special algorithm
 # to convert some values of '(unsigned) long' to 'long double' values.  
@@ -391,10 +284,7 @@ endif (H5_LDOUBLE_TO_LONG_SPECIAL MATCHES ^H5_LDOUBLE_TO_LONG_SPECIAL$)
 # ..., 7fffff..., the compiler uses a unknown algorithm.  We define a 
 # macro and skip the test for now until we know about the algorithm.
 #
-if (H5_LONG_TO_LDOUBLE_SPECIAL MATCHES ^H5_LONG_TO_LDOUBLE_SPECIAL$)
-  set (H5_LONG_TO_LDOUBLE_SPECIAL 0 CACHE INTERNAL "Define if your system can convert (unsigned) long to long double values with special algorithm")
-  message (STATUS "Checking IF your system can convert (unsigned) long to long double values with special algorithm... no")
-endif (H5_LONG_TO_LDOUBLE_SPECIAL MATCHES ^H5_LONG_TO_LDOUBLE_SPECIAL$)
+H5ConversionTests (H5_LONG_TO_LDOUBLE_SPECIAL "Checking IF your system can convert (unsigned) long to long double values with special algorithm")
 # ----------------------------------------------------------------------
 # Set the flag to indicate that the machine can accurately convert
 # 'long double' to '(unsigned) long long' values.  (This flag should be set for
diff --git a/config/cmake/ConversionTests.c b/config/cmake/ConversionTests.c
index 1ee9842..9a81a20 100644
--- a/config/cmake/ConversionTests.c
+++ b/config/cmake/ConversionTests.c
@@ -13,47 +13,57 @@ done:
 
 #endif
 
-#ifdef H5_FP_TO_ULLONG_ACCURATE_TEST
+#ifdef H5_LDOUBLE_TO_LONG_SPECIAL_TEST
 
 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);
-}
-
-#endif
-
-#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;
+    long double         ld = 20041683600089727.779961L;
+    long                ll;
+    unsigned long       ull;
+    unsigned char       s[16];
+    unsigned char       s2[8];
+    int                 ret = 1;
+
+    if(sizeof(long double) == 16 && sizeof(long) == 8) {
+	/*make sure the long double type 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) {
+
+	    /* Assign the hexadecimal value of long double type. */
+	    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;
+	    s[12]=0x3d; s[13]=0x85; s[14]=0x56; s[15]=0x20;
+
+	    memcpy(&ld, s, 16);
+
+	    ll = (long)ld;
+	    memcpy(s2, &ll, 8);
+
+	    /* The library's algorithm converts it to 0x 00 47 33 ce 17 af 22 82
+	     * and gets wrong value 20041683600089730 on the IBM Power6 Linux.
+	     * But the IBM Power6 Linux converts it to 0x00 47 33 ce 17 af 22 7f
+	     * and gets the correct value 20041683600089727.  It uses some special
+	     * algorithm.  We're going to define the macro and skip the test until
+	     * we can figure out how they do it. */
+	    if(s2[0]==0x00 && s2[1]==0x47 && s2[2]==0x33 && s2[3]==0xce &&
+		    s2[4]==0x17 && s2[5]==0xaf && s2[6]==0x22 && s2[7]==0x7f)
+		ret = 0;
+
+	    ull = (unsigned long)ld;
+	    memcpy(s2, &ull, 8);
+
+	    /* The unsigned long is the same as signed long. */
+	    if(s2[0]==0x00 && s2[1]==0x47 && s2[2]==0x33 && s2[3]==0xce &&
+		    s2[4]==0x17 && s2[5]==0xaf && s2[6]==0x22 && s2[7]==0x7f)
+		ret = 0;
+	}
+    }
 
 done:
     exit(ret);
@@ -61,29 +71,60 @@ done:
 
 #endif
 
-#ifdef H5_LDOUBLE_TO_INTEGER_WORKS_TEST
-
-#include <stdlib.h>
-#include <string.h>
+#ifdef H5_LONG_TO_LDOUBLE_SPECIAL_TEST
 
 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));
+    long double         ld;
+    long                ll;
+    unsigned long       ull;
+    unsigned char       s[16];
+    int                 flag=0, ret=1;
 
+    /*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)==8) {
+	ll = 0x003fffffffffffffL;
+	ld = (long double)ll;
+	memcpy(s, &ld, 16);
+	/* The library converts the value to 0x434fffffffffffff8000000000000000.
+	 * In decimal it is 18014398509481982.000000, one value short of the original.
+	 * The IBM Power6 Linux converts it to 0x4350000000000000bff0000000000000.
+	 * The value is correct in decimal. It uses some special
+	 * algorithm.  We're going to define the macro and skip the test until
+	 * we can figure out how they do it. */
+	if(s[0]==0x43 && s[1]==0x50 && s[2]==0x00 && s[3]==0x00 &&
+		s[4]==0x00 && s[5]==0x00 && s[6]==0x00 && s[7]==0x00 &&
+		s[8]==0xbf && s[9]==0xf0 && s[10]==0x00 && s[11]==0x00 &&
+		s[12]==0x00 && s[13]==0x00 && s[14]==0x00 && s[15]==0x00)
+	    ret = 0;
+    }
+    if(flag==1 && sizeof(unsigned long)==8) {
+	ull = 0xffffffffffffffffUL;
+	ld = (long double)ull;
+	memcpy(s, &ld, 16);
+	/* Use a different value from signed long to test. The problem is the same
+	 * for both long and unsigned long. The value is 18446744073709551615.
+	 * The library converts the value to 0x43effffffffffffffe000000000000000.
+	 * In decimal it's 18446744073709548544.000000, very different from the original.
+	 * The IBM Power6 Linux converts it to 0x43f0000000000000bff0000000000000.
+	 * The value is correct in decimal. It uses some special
+	 * algorithm.  We're going to define the macro and skip the test until
+	 * we can figure out how they do it. */
+	if(s[0]==0x43 && s[1]==0xf0 && s[2]==0x00 && s[3]==0x00 &&
+		s[4]==0x00 && s[5]==0x00 && s[6]==0x00 && s[7]==0x00 &&
+		s[8]==0xbf && s[9]==0xf0 && s[10]==0x00 && s[11]==0x00 &&
+		s[12]==0x00 && s[13]==0x00 && s[14]==0x00 && s[15]==0x00)
+	    ret = 0;
+    }
 done:
     exit(ret);
 }
@@ -129,22 +170,6 @@ done:
 }
 #endif
 
-#ifdef H5_LDOUBLE_TO_UINT_ACCURATE_TEST
-int main(void)
-{
-    long double ld = 2733248032.9183987530L;
-    unsigned int i;
-    int           ret = 0;
-
-    i = (unsigned int)ld;
-    if(i!=2733248032 && i!=2733248031 && i!=2733248033)
-        ret = 1;
-
-done:
-    exit(ret);
-}
-#endif
-
 #ifdef H5_LLONG_TO_LDOUBLE_CORRECT_TEST
 int main(void)
 {
@@ -241,180 +266,3 @@ main ()
 
 #endif
 
-#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);
-}
-
-#endif
-
-
-#ifdef H5_ULONG_TO_FLOAT_ACCURATE_TEST
-
-int main(void)
-{
-    int           ret = 0;
-    unsigned long l1;
-    unsigned long l2;
-    unsigned long l3;
-    float f1;
-    float f2;
-    float f3;
-
-
-    if(sizeof(unsigned long)==8) {
-        l1 = 0xffffffffffffffffUL;
-        l2 = 0xffffffffffff0000UL;
-        l3 = 0xf000000000000000UL;
-
-        f1 = (float)l1;
-        f2 = (float)l2;
-        f3 = (float)l3;
-
-        if((f1 < 0) || (f2 < 0) || (f3 < 0))
-            ret = 1;
-    }
-
-done:
-    exit(ret);
-}
-
-#endif
-
-#ifdef H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE_TEST
-
-#include <string.h>
-
-
-int main(void)
-{
-    unsigned long l1;
-    unsigned long l2;
-    unsigned long l3;
-    unsigned long l4;
-    unsigned long long ld1;
-    unsigned long long ld2;
-    unsigned long long ld3;
-    unsigned long long ld4;
-    double        d1, d2, d3, d4;
-    unsigned char s[8];
-    int           ret = 0;
-
-    if(sizeof(unsigned long)==8) {
-        l1 = 0xf000000000000b00UL; /*Round-down case*/
-        l2 = 0xf000000000000401UL; /*Round-up case*/
-        l3 = 0xf000000000000400UL; /*Round-down case*/
-        l4 = 0xf000000000000c00UL; /*Round-up case*/
-
-        d1 = (double)l1;
-        d2 = (double)l2;
-        d3 = (double)l3;
-        d4 = (double)l4;
-    } else if(sizeof(unsigned long long)==8) {
-        ld1 = 0xf000000000000b00ULL; /*Round-down case*/
-        ld2 = 0xf000000000000401ULL; /*Round-up case*/
-        ld3 = 0xf000000000000400ULL; /*Round-down case*/
-        ld4 = 0xf000000000000c00ULL; /*Round-up case*/
-
-        d1 = (double)ld1;
-        d2 = (double)ld2;
-        d3 = (double)ld3;
-        d4 = (double)ld4;
-    } else {
-        ret = 1;
-        goto done;
-    }
-
-    memcpy(s, &d1, 8);
-    if(s[7]!=1)
-        ret = 1;
-
-    memcpy(s, &d2, 8);
-    if(s[7]!=1)
-        ret = 1;
-
-    memcpy(s, &d3, 8);
-    if(s[7]!=0)
-        ret = 1;
-
-    memcpy(s, &d4, 8);
-    if(s[7]!=2)
-        ret = 1;
-
-done:
-    exit(ret);
-}
-}
-#endif
diff --git a/config/cmake/H5pubconf.h.in b/config/cmake/H5pubconf.h.in
index 79c6c1a..916c4c4 100644
--- a/config/cmake/H5pubconf.h.in
+++ b/config/cmake/H5pubconf.h.in
@@ -53,9 +53,6 @@
 /* Define the default plugins path to compile */
 #cmakedefine H5_DEFAULT_PLUGINDIR "@H5_DEFAULT_PLUGINDIR@"
 
-/* Define the default virtual file driver to compile */
-#cmakedefine H5_DEFAULT_VFD @H5_DEFAULT_VFD@
-
 /* Define if `dev_t' is a scalar */
 #cmakedefine H5_DEV_T_IS_SCALAR @H5_DEV_T_IS_SCALAR@
 
@@ -77,17 +74,6 @@
    integer values. */
 #cmakedefine H5_FP_TO_INTEGER_OVERFLOW_WORKS @H5_FP_TO_INTEGER_OVERFLOW_WORKS@
 
-/* Define if your system roundup accurately converting floating-point to
-   unsigned long long values. */
-#cmakedefine H5_FP_TO_ULLONG_ACCURATE @H5_FP_TO_ULLONG_ACCURATE@
-
-/* Define if your system has right maximum convert floating-point to unsigned
-   long long values. */
-#cmakedefine H5_FP_TO_ULLONG_RIGHT_MAXIMUM @H5_FP_TO_ULLONG_RIGHT_MAXIMUM@
-
-/* Define if gettimeofday() populates the tz pointer passed in */
-#cmakedefine H5_GETTIMEOFDAY_GIVES_TZ @H5_GETTIMEOFDAY_GIVES_TZ@
-
 /* Define to 1 if you have the `alarm' function. */
 #cmakedefine H5_HAVE_ALARM @H5_HAVE_ALARM@
 
@@ -97,9 +83,6 @@
 /* Define if the __attribute__(()) extension is present */
 #cmakedefine H5_HAVE_ATTRIBUTE @H5_HAVE_ATTRIBUTE@
 
-/* Define to 1 if you have the `BSDgettimeofday' function. */
-#cmakedefine H5_HAVE_BSDGETTIMEOFDAY @H5_HAVE_BSDGETTIMEOFDAY@
-
 /* Define if the compiler understands C99 designated initialization of structs
    and unions */
 #cmakedefine H5_HAVE_C99_DESIGNATED_INITIALIZER @H5_HAVE_C99_DESIGNATED_INITIALIZER@
@@ -144,18 +127,6 @@
 /* Define if support for deflate (zlib) filter is enabled */
 #cmakedefine H5_HAVE_FILTER_DEFLATE @H5_HAVE_FILTER_DEFLATE@
 
-/* Define if support for Fletcher32 checksum is enabled */
-#cmakedefine H5_HAVE_FILTER_FLETCHER32 @H5_HAVE_FILTER_FLETCHER32@
-
-/* Define if support for nbit filter is enabled */
-#cmakedefine H5_HAVE_FILTER_NBIT @H5_HAVE_FILTER_NBIT@
-
-/* Define if support for scaleoffset filter is enabled */
-#cmakedefine H5_HAVE_FILTER_SCALEOFFSET @H5_HAVE_FILTER_SCALEOFFSET@
-
-/* Define if support for shuffle filter is enabled */
-#cmakedefine H5_HAVE_FILTER_SHUFFLE @H5_HAVE_FILTER_SHUFFLE@
-
 /* Define if support for szip filter is enabled */
 #cmakedefine H5_HAVE_FILTER_SZIP @H5_HAVE_FILTER_SZIP@
 
@@ -235,9 +206,6 @@
 /* Define to 1 if you have the `dmalloc' library (-ldmalloc). */
 #cmakedefine H5_HAVE_LIBDMALLOC @H5_HAVE_LIBDMALLOC@
 
-/* Define to 1 if you have the `lmpe' library (-llmpe). */
-#cmakedefine H5_HAVE_LIBLMPE @H5_HAVE_LIBLMPE@
-
 /* Define to 1 if you have the `m' library (-lm). */
 #cmakedefine H5_HAVE_LIBM @H5_HAVE_LIBM@
 
@@ -373,12 +341,6 @@
 /* Define if `struct text_info' is defined */
 #cmakedefine H5_HAVE_STRUCT_TEXT_INFO @H5_HAVE_STRUCT_TEXT_INFO@
 
-/* Define if `struct timezone' is defined */
-#cmakedefine H5_HAVE_STRUCT_TIMEZONE @H5_HAVE_STRUCT_TIMEZONE@
-
-/* Define to 1 if `tm_zone' is a member of `struct tm'. */
-#cmakedefine H5_HAVE_STRUCT_TM_TM_ZONE @H5_HAVE_STRUCT_TM_TM_ZONE@
-
 /* Define if `struct videoconfig' is defined */
 #cmakedefine H5_HAVE_STRUCT_VIDEOCONFIG @H5_HAVE_STRUCT_VIDEOCONFIG@
 
@@ -442,14 +404,6 @@
 /* Define if `tm_gmtoff' is a member of `struct tm' */
 #cmakedefine H5_HAVE_TM_GMTOFF @H5_HAVE_TM_GMTOFF@
 
-/* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use
-   `HAVE_STRUCT_TM_TM_ZONE' instead. */
-#cmakedefine H5_HAVE_TM_ZONE @H5_HAVE_TM_ZONE@
-
-/* Define to 1 if you don't have `tm_zone' but do have the external array
-   `tzname'. */
-#cmakedefine H5_HAVE_TZNAME @H5_HAVE_TZNAME@
-
 /* Define to 1 if you have the <unistd.h> header file. */
 #cmakedefine H5_HAVE_UNISTD_H @H5_HAVE_UNISTD_H@
 
@@ -480,9 +434,6 @@
 /* Define to 1 if you have the `_scrsize' function. */
 #cmakedefine H5_HAVE__SCRSIZE @H5_HAVE__SCRSIZE@
 
-/* Define if `__tm_gmtoff' is a member of `struct tm' */
-#cmakedefine H5_HAVE___TM_GMTOFF @H5_HAVE___TM_GMTOFF@
-
 /* Define if your system can't handle converting floating-point values to long
    long. */
 #cmakedefine H5_HW_FP_TO_LLONG_NOT_WORKS @H5_HW_FP_TO_LLONG_NOT_WORKS@
@@ -490,16 +441,6 @@
 /* Define if HDF5's high-level library headers should be included in hdf5.h */
 #cmakedefine H5_INCLUDE_HL @H5_INCLUDE_HL@
 
-/* Define if your system can accurately convert from integers to long double
-   values. */
-#cmakedefine H5_INTEGER_TO_LDOUBLE_ACCURATE @H5_INTEGER_TO_LDOUBLE_ACCURATE@
-
-/* Define if your system can convert long double to integers accurately. */
-#cmakedefine H5_LDOUBLE_TO_INTEGER_ACCURATE @H5_LDOUBLE_TO_INTEGER_ACCURATE@
-
-/* Define if your system can convert from long double to integer values. */
-#cmakedefine H5_LDOUBLE_TO_INTEGER_WORKS @H5_LDOUBLE_TO_INTEGER_WORKS@
-
 /* Define if your system can convert long double to (unsigned) long long
    values correctly. */
 #cmakedefine H5_LDOUBLE_TO_LLONG_ACCURATE @H5_LDOUBLE_TO_LLONG_ACCURATE@
@@ -508,13 +449,6 @@
    special algorithm. */
 #cmakedefine H5_LDOUBLE_TO_LONG_SPECIAL @H5_LDOUBLE_TO_LONG_SPECIAL@
 
-/* Define if your system can convert long double to unsigned int values
-   correctly. */
-#cmakedefine H5_LDOUBLE_TO_UINT_ACCURATE @H5_LDOUBLE_TO_UINT_ACCURATE@
-
-/* Define if your system can compile long long to floating-point casts. */
-#cmakedefine H5_LLONG_TO_FP_CAST_WORKS @H5_LLONG_TO_FP_CAST_WORKS@
-
 /* Define if your system can convert (unsigned) long long to long double
    values correctly. */
 #cmakedefine H5_LLONG_TO_LDOUBLE_CORRECT @H5_LLONG_TO_LDOUBLE_CORRECT@
@@ -536,9 +470,6 @@
 /* Define if deprecated public API symbols are disabled */
 #cmakedefine H5_NO_DEPRECATED_SYMBOLS @H5_NO_DEPRECATED_SYMBOLS@
 
-/* Define if shared writing must be disabled (CodeWarrior only) */
-#cmakedefine H5_NO_SHARED_WRITING @H5_NO_SHARED_WRITING@
-
 /* Name of package */
 #define H5_PACKAGE "@HDF5_PACKAGE@"
 
@@ -715,22 +646,6 @@
 /* Define to 1 if your <sys/time.h> declares `struct tm'. */
 #cmakedefine H5_TM_IN_SYS_TIME @H5_TM_IN_SYS_TIME@
 
-/* Define if your system can compile unsigned long long to floating-point
-   casts. */
-#cmakedefine H5_ULLONG_TO_FP_CAST_WORKS @H5_ULLONG_TO_FP_CAST_WORKS@
-
-/* Define if your system can convert unsigned long long to long double with
-   correct precision. */
-#cmakedefine H5_ULLONG_TO_LDOUBLE_PRECISION @H5_ULLONG_TO_LDOUBLE_PRECISION@
-
-/* Define if your system accurately converting unsigned long to float values.
-   */
-#cmakedefine H5_ULONG_TO_FLOAT_ACCURATE @H5_ULONG_TO_FLOAT_ACCURATE@
-
-/* Define if your system can accurately convert unsigned (long) long values to
-   floating-point values. */
-#cmakedefine H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE @H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE@
-
 /* Define using v1.6 public API symbols by default */
 #cmakedefine H5_USE_16_API_DEFAULT @H5_USE_16_API_DEFAULT@
 
@@ -742,10 +657,6 @@
 /* Version number of package */
 #define H5_VERSION "@HDF5_PACKAGE_VERSION_STRING@"
 
-/* Define if vsnprintf() returns the correct value for formatted strings that
-   don't fit into size allowed */
-#cmakedefine H5_VSNPRINTF_WORKS @H5_VSNPRINTF_WORKS@
-
 /* Data accuracy is prefered to speed during data conversions */
 #cmakedefine H5_WANT_DATA_ACCURACY @H5_WANT_DATA_ACCURACY@
 
diff --git a/config/cmake/HDF518_Examples.cmake.in b/config/cmake/HDF518_Examples.cmake.in
index 48c2b56..febf20a 100644
--- a/config/cmake/HDF518_Examples.cmake.in
+++ b/config/cmake/HDF518_Examples.cmake.in
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 2.8.10 FATAL_ERROR)
+cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR)
 ###############################################################################################################
 # This script will build and run the examples from a compressed file
 # Execute from a command line:
@@ -11,25 +11,27 @@ 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)
+#set(NO_MAC_FORTRAN "true")
+#set(BUILD_OPTIONS "${BUILD_OPTIONS} -DHDF_BUILD_FORTRAN:BOOL=ON")
+set(BUILD_OPTIONS "${BUILD_OPTIONS} -DHDF_ENABLE_F2003:BOOL=ON")
+#set(CTEST_USE_TAR_SOURCE "${CTEST_SCRIPT_ARG}")
 
 ###############################################################################################################
 #     Adjust the following SET Commands as needed
 ###############################################################################################################
 if(WIN32)
   if(STATICLIBRARIES)
-    set(BUILD_OPTIONS "${BUILD_OPTIONS} -DUSE_SHARED_LIBS:BOOL=OFF")
+    set(BUILD_OPTIONS "${BUILD_OPTIONS} -DBUILD_SHARED_LIBS:BOOL=OFF")
   endif(STATICLIBRARIES)
-  set(ENV{HDF5_DIR} "${INSTALLDIR}/cmake/hdf5")
+  set(ENV{HDF5_DIR} "${INSTALLDIR}/cmake")
   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")
+    set(BUILD_OPTIONS "${BUILD_OPTIONS} -DBUILD_SHARED_LIBS:BOOL=OFF -DCMAKE_ANSI_CFLAGS:STRING=-fPIC")
   endif(STATICLIBRARIES)
-  set(ENV{HDF5_DIR} "${INSTALLDIR}/share/cmake/hdf5")
+  set(ENV{HDF5_DIR} "${INSTALLDIR}/share/cmake")
   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}")
@@ -50,38 +52,45 @@ if(APPLE)
   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)
+  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} -DHDF_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(CTEST_USE_TAR_SOURCE)
+  ## Uncompress source if tar or zip file provided
+  ## --------------------------
+  if(WIN32)
+    message(STATUS "extracting... [${CMAKE_EXECUTABLE_NAME} -E tar -xvf ${CTEST_USE_TAR_SOURCE}.zip]")
+    execute_process(COMMAND ${CMAKE_EXECUTABLE_NAME} -E tar -xvf ${CTEST_USE_TAR_SOURCE}.zip RESULT_VARIABLE rv)
+  else(WIN32)
+    message(STATUS "extracting... [${CMAKE_EXECUTABLE_NAME} -E tar -xvf ${CTEST_USE_TAR_SOURCE}.tar]")
+    execute_process(COMMAND ${CMAKE_EXECUTABLE_NAME} -E tar -xvf ${CTEST_USE_TAR_SOURCE}.tar 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)
+  if(NOT rv EQUAL 0)
+    message(STATUS "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)
+endif(CTEST_USE_TAR_SOURCE)
  
 #-----------------------------------------------------------------------------
 ## 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})
+if (EXISTS "${CTEST_BINARY_DIRECTORY}" AND IS_DIRECTORY "${CTEST_BINARY_DIRECTORY}")
+  ctest_empty_binary_directory(${CTEST_BINARY_DIRECTORY})
+else (EXISTS "${CTEST_BINARY_DIRECTORY}" AND IS_DIRECTORY "${CTEST_BINARY_DIRECTORY}")
+  file(MAKE_DIRECTORY "${CTEST_BINARY_DIRECTORY}")
+endif (EXISTS "${CTEST_BINARY_DIRECTORY}" AND IS_DIRECTORY "${CTEST_BINARY_DIRECTORY}")
 
 # Use multiple CPU cores to build
 include(ProcessorCount)
@@ -101,16 +110,17 @@ set (CTEST_CONFIGURE_COMMAND
 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)
+configure_file(${CTEST_SOURCE_DIRECTORY}/config/cmake/CTestCustom.cmake ${CTEST_BINARY_DIRECTORY}/CTestCustom.cmake)
+ctest_read_custom_files ("${CTEST_BINARY_DIRECTORY}")
+## NORMAL process
+## --------------------------
+ctest_start (Experimental)
+ctest_configure (BUILD "${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
+message(STATUS "DONE")
\ No newline at end of file
diff --git a/config/cmake/HDF5Macros.cmake b/config/cmake/HDF5Macros.cmake
index baa18c0..ee9ed84 100644
--- a/config/cmake/HDF5Macros.cmake
+++ b/config/cmake/HDF5Macros.cmake
@@ -1,5 +1,5 @@
 #-------------------------------------------------------------------------------
-MACRO (H5_SET_LIB_OPTIONS libtarget libname libtype)
+macro (H5_SET_LIB_OPTIONS libtarget libname libtype)
   set (LIB_OUT_NAME "${libname}")
   if (${libtype} MATCHES "SHARED")
     if (WIN32)
@@ -28,4 +28,4 @@ MACRO (H5_SET_LIB_OPTIONS libtarget libname libtype)
     endif (HDF5_BUILD_WITH_INSTALL_NAME)
   endif (APPLE)
 
-ENDMACRO (H5_SET_LIB_OPTIONS)
+endmacro (H5_SET_LIB_OPTIONS)
diff --git a/config/cmake/README.txt.cmake.in b/config/cmake/README.txt.cmake.in
index 04a166c..79482bd 100644
--- a/config/cmake/README.txt.cmake.in
+++ b/config/cmake/README.txt.cmake.in
@@ -24,14 +24,15 @@ Installation
 
 After Installation
 ===========================================================================
-The compressed examples file HDF5Examples-0.1.1-Source. at BINARY_EXAMPLE_ENDING@, located in the 
+The examples folder, HDF5Examples-0.1.1-Source, 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.
+been installed in the default location with above compilers. Also, the CMake 
+utility should be installed.
 
 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 HDF5Examples-0.1.1-Source folder to this directory.
     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.)
@@ -40,7 +41,8 @@ To test the installation with the examples;
 
 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.
+add "-VV" to the ctest command. The output should show;
+      100% tests passed, 0 tests failed out of 156.
 
 For more information see USING_CMake_Examples.txt in the install folder. 
 ===========================================================================
diff --git a/config/cmake/cacheinit.cmake b/config/cmake/cacheinit.cmake
index 5ec5568..c782b8f 100644
--- a/config/cmake/cacheinit.cmake
+++ b/config/cmake/cacheinit.cmake
@@ -10,17 +10,9 @@ 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_ENABLE_F2003 ON CACHE BOOL "Enable FORTRAN 2003 Standard" FORCE)
 
 set (HDF5_BUILD_GENERATORS OFF CACHE BOOL "Build Test Generators" FORCE)
 
diff --git a/config/cmake/hdf5-config-version.cmake.in b/config/cmake/hdf5-config-version.cmake.in
index 148a659..5911fa7 100644
--- a/config/cmake/hdf5-config-version.cmake.in
+++ b/config/cmake/hdf5-config-version.cmake.in
@@ -1,27 +1,47 @@
 #-----------------------------------------------------------------------------
 # HDF5 Version file for install directory
 #-----------------------------------------------------------------------------
+#
+# The created file sets PACKAGE_VERSION_EXACT if the current version string and
+# the requested version string are exactly the same and it sets
+# PACKAGE_VERSION_COMPATIBLE if the current version is >= requested version,
+# but only if the requested major.minor version is the same as the current one.
+# The variable HDF5_VERSION_STRING must be set before calling configure_file().
 
-set (PACKAGE_VERSION @HDF5_VERSION_STRING@)
+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_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}" )
+  set(PACKAGE_VERSION_COMPATIBLE FALSE)
+else()
+  if ("${PACKAGE_FIND_VERSION_MAJOR}" STREQUAL "@H5_VERS_MAJOR@")
     
-    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@)
+    # exact match for version @H5_VERS_MAJOR at .@H5_VERS_MINOR@
+    if ("${PACKAGE_FIND_VERSION_MINOR}" STREQUAL "@H5_VERS_MINOR@")
     
-  endif ("${PACKAGE_FIND_VERSION_MINOR}" EQUAL @H5_VERS_MINOR@)
-endif ("${PACKAGE_FIND_VERSION_MAJOR}" EQUAL @H5_VERS_MAJOR@)
+      # compatible with any version @H5_VERS_MAJOR at .@H5_VERS_MINOR at .x
+      set (PACKAGE_VERSION_COMPATIBLE TRUE) 
+        
+      if ("${PACKAGE_FIND_VERSION_PATCH}" STREQUAL "@H5_VERS_RELEASE@")
+        set (PACKAGE_VERSION_EXACT TRUE)
+   
+        if ("${PACKAGE_FIND_VERSION_TWEAK}" STREQUAL "@H5_VERS_SUBRELEASE@")
+          # not using this yet
+        endif ("${PACKAGE_FIND_VERSION_TWEAK}" STREQUAL "@H5_VERS_SUBRELEASE@")
+      endif ("${PACKAGE_FIND_VERSION_PATCH}" STREQUAL "@H5_VERS_RELEASE@")
+    else ("${PACKAGE_FIND_VERSION_MINOR}" STREQUAL "@H5_VERS_MINOR@")
+      set (PACKAGE_VERSION_COMPATIBLE FALSE) 
+    endif ("${PACKAGE_FIND_VERSION_MINOR}" STREQUAL "@H5_VERS_MINOR@")
+  endif ("${PACKAGE_FIND_VERSION_MAJOR}" STREQUAL "@H5_VERS_MAJOR@")
+endif()
 
+# if the installed or the using project don't have CMAKE_SIZEOF_VOID_P set, ignore it:
+if("${CMAKE_SIZEOF_VOID_P}"  STREQUAL ""  OR "@CMAKE_SIZEOF_VOID_P@" STREQUAL "")
+   return()
+endif()
 
+# check that the installed version has the same 32/64bit-ness as the one which is currently searching:
+if(NOT "${CMAKE_SIZEOF_VOID_P}" STREQUAL "@CMAKE_SIZEOF_VOID_P@")
+  math(EXPR installedBits "@CMAKE_SIZEOF_VOID_P@ * 8")
+  set(PACKAGE_VERSION "${PACKAGE_VERSION} (${installedBits}bit)")
+  set(PACKAGE_VERSION_UNSUITABLE TRUE)
+endif()
diff --git a/config/cmake/hdf5-config.cmake.build.in b/config/cmake/hdf5-config.cmake.build.in
deleted file mode 100644
index 0276ea7..0000000
--- a/config/cmake/hdf5-config.cmake.build.in
+++ /dev/null
@@ -1,73 +0,0 @@
-#-----------------------------------------------------------------------------
-# 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.in b/config/cmake/hdf5-config.cmake.in
new file mode 100644
index 0000000..667d3e6
--- /dev/null
+++ b/config/cmake/hdf5-config.cmake.in
@@ -0,0 +1,147 @@
+#-----------------------------------------------------------------------------
+# HDF5 Config file for compiling against hdf5 build/install directory
+#-----------------------------------------------------------------------------
+ at PACKAGE_INIT@
+
+string(TOUPPER @HDF5_PACKAGE@ HDF5_PACKAGE_NAME)
+
+set (${HDF5_PACKAGE_NAME}_VALID_COMPONENTS
+    C
+    CXX
+    Fortran
+    HL
+    CXX_HL
+    Fortran_HL
+    Tools
+)
+
+#-----------------------------------------------------------------------------
+# User Options
+#-----------------------------------------------------------------------------
+set (${HDF5_PACKAGE_NAME}_ENABLE_PARALLEL @HDF5_ENABLE_PARALLEL@)
+set (${HDF5_PACKAGE_NAME}_BUILD_FORTRAN   @HDF5_BUILD_FORTRAN@)
+set (${HDF5_PACKAGE_NAME}_ENABLE_F2003    @HDF5_ENABLE_F2003@)
+set (${HDF5_PACKAGE_NAME}_BUILD_CPP_LIB   @HDF5_BUILD_CPP_LIB@)
+set (${HDF5_PACKAGE_NAME}_BUILD_TOOLS     @HDF5_BUILD_TOOLS@)
+set (${HDF5_PACKAGE_NAME}_BUILD_HL_LIB    @HDF5_BUILD_HL_LIB@)
+set (${HDF5_PACKAGE_NAME}_ENABLE_Z_LIB_SUPPORT @HDF5_ENABLE_Z_LIB_SUPPORT@)
+set (${HDF5_PACKAGE_NAME}_ENABLE_SZIP_SUPPORT  @HDF5_ENABLE_SZIP_SUPPORT@)
+set (${HDF5_PACKAGE_NAME}_ENABLE_SZIP_ENCODING @HDF5_ENABLE_SZIP_ENCODING@)
+set (${HDF5_PACKAGE_NAME}_BUILD_SHARED_LIBS    @BUILD_SHARED_LIBS@)
+set (${HDF5_PACKAGE_NAME}_PACKAGE_EXTLIBS      @HDF5_PACKAGE_EXTLIBS@)
+set (${HDF5_PACKAGE_NAME}_EXPORT_LIBRARIES @HDF5_LIBRARIES_TO_EXPORT@)
+
+#-----------------------------------------------------------------------------
+# Dependencies
+#-----------------------------------------------------------------------------
+if (${HDF5_PACKAGE_NAME}_ENABLE_PARALLEL)
+  set (${HDF5_PACKAGE_NAME}_MPI_C_INCLUDE_PATH "@MPI_C_INCLUDE_PATH@")
+  set (${HDF5_PACKAGE_NAME}_MPI_C_LIBRARIES    "@MPI_C_LIBRARIES@")
+endif ()
+
+#-----------------------------------------------------------------------------
+# Directories
+#-----------------------------------------------------------------------------
+set (${HDF5_PACKAGE_NAME}_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@" "${${HDF5_PACKAGE_NAME}_MPI_C_INCLUDE_PATH}")
+
+set (${HDF5_PACKAGE_NAME}_SHARE_DIR "@PACKAGE_SHARE_INSTALL_DIR@")
+set_and_check (${HDF5_PACKAGE_NAME}_BUILD_DIR "@PACKAGE_CURRENT_BUILD_DIR@")
+
+if (${HDF5_PACKAGE_NAME}_BUILD_FORTRAN)
+  set (${HDF5_PACKAGE_NAME}_INCLUDE_DIR_FORTRAN "@PACKAGE_INCLUDE_INSTALL_DIR@")
+endif ()
+  
+if (${HDF5_PACKAGE_NAME}_BUILD_CPP_LIB)
+  set (${HDF5_PACKAGE_NAME}_INCLUDE_DIR_CPP "@PACKAGE_INCLUDE_INSTALL_DIR@")
+endif ()
+
+if (${HDF5_PACKAGE_NAME}_BUILD_HL_LIB)
+  set (${HDF5_PACKAGE_NAME}_INCLUDE_DIR_HL "@PACKAGE_INCLUDE_INSTALL_DIR@")
+endif ()
+
+if (${HDF5_PACKAGE_NAME}_BUILD_HL_LIB AND ${HDF5_PACKAGE_NAME}_BUILD_CPP_LIB)
+  set (${HDF5_PACKAGE_NAME}_INCLUDE_DIR_HL_CPP "@PACKAGE_INCLUDE_INSTALL_DIR@")
+endif ()
+
+if (${HDF5_PACKAGE_NAME}_BUILD_TOOLS)
+  set (${HDF5_PACKAGE_NAME}_INCLUDE_DIR_TOOLS "@PACKAGE_INCLUDE_INSTALL_DIR@")
+  set_and_check (${HDF5_PACKAGE_NAME}_TOOLS_DIR "@PACKAGE_CURRENT_BUILD_DIR@/bin")
+endif ()
+
+if (HDF5_BUILD_SHARED_LIBS)
+  set (H5_BUILT_AS_DYNAMIC_LIB 1)
+else ()
+  set (H5_BUILT_AS_STATIC_LIB 1)
+endif ()
+
+#-----------------------------------------------------------------------------
+# 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_PACKAGE_NAME}_ENABLE_Z_LIB_SUPPORT AND ${HDF5_PACKAGE_NAME}_PACKAGE_EXTLIBS AND NOT TARGET "zlib")
+    include (@PACKAGE_SHARE_INSTALL_DIR@/@ZLIB_PACKAGE_NAME@@HDF_PACKAGE_EXT at -targets.cmake)
+  endif ()
+  if (${HDF5_PACKAGE_NAME}_ENABLE_SZIP_SUPPORT AND ${HDF5_PACKAGE_NAME}_PACKAGE_EXTLIBS AND NOT TARGET "szip")
+    include (@PACKAGE_SHARE_INSTALL_DIR@/@SZIP_PACKAGE_NAME@@HDF_PACKAGE_EXT at -targets.cmake)
+  endif ()
+  include (@PACKAGE_SHARE_INSTALL_DIR@/@HDF5_PACKAGE@@HDF_PACKAGE_EXT at -targets.cmake)
+endif ()
+
+# Handle default component :
+if (NOT ${HDF5_PACKAGE_NAME}_FIND_COMPONENTS)
+    set (${HDF5_PACKAGE_NAME}_FIND_COMPONENTS C HL)
+    set (${HDF5_PACKAGE_NAME}_FIND_REQUIRED_C true)
+endif ()
+
+# Handle requested components:
+list (REMOVE_DUPLICATES ${HDF5_PACKAGE_NAME}_FIND_COMPONENTS)
+  foreach (comp IN LISTS ${HDF5_PACKAGE_NAME}_FIND_COMPONENTS)
+    set (hdf5_comp2)
+    if (${comp} STREQUAL "C")
+      set (hdf5_comp "hdf5")
+    elseif (${comp} STREQUAL "CXX")
+      set (hdf5_comp "hdf5_cpp")
+    elseif (${comp} STREQUAL "HL")
+      set (hdf5_comp "hdf5_hl")
+    elseif (${comp} STREQUAL "CXX_HL")
+      set (hdf5_comp "hdf5_hl_cpp")
+    elseif (${comp} STREQUAL "Tools")
+      set (hdf5_comp "hdf5_tools")
+    elseif (${comp} STREQUAL "Fortran")
+      set (hdf5_comp2 "hdf5_f90cstub")
+      set (hdf5_comp "hdf5_fortran")
+    elseif (${comp} STREQUAL "Fortran_HL")
+      set (hdf5_comp2 "hdf5_hl_f90cstub")
+      set (hdf5_comp "hdf5_hl_fortran")
+    endif ()
+    list (FIND ${HDF5_PACKAGE_NAME}_EXPORT_LIBRARIES "${hdf5_comp}" HAVE_COMP) 
+    if (${HAVE_COMP} LESS 0) 
+      set (${HDF5_PACKAGE_NAME}_${comp}_FOUND 0)
+    else ()
+      if (hdf5_comp2)
+        list (FIND ${HDF5_PACKAGE_NAME}_EXPORT_LIBRARIES "${hdf5_comp2}" HAVE_COMP2) 
+        if (${HAVE_COMP2} LESS 0)
+          set (${HDF5_PACKAGE_NAME}_${comp}_FOUND 0)
+        else ()
+          set (${HDF5_PACKAGE_NAME}_${comp}_FOUND 1)
+          string(TOUPPER ${HDF5_PACKAGE_NAME}_${comp}_LIBRARY COMP_LIBRARY)
+          set (${HDF5_PACKAGE_NAME}_LIBRARIES ${${HDF5_PACKAGE_NAME}_LIBRARIES} ${hdf5_comp2} ${hdf5_comp})
+        endif ()
+      else ()
+        set (${HDF5_PACKAGE_NAME}_${comp}_FOUND 1)
+        string(TOUPPER ${HDF5_PACKAGE_NAME}_${comp}_LIBRARY COMP_LIBRARY)
+        set (${HDF5_PACKAGE_NAME}_LIBRARIES ${${HDF5_PACKAGE_NAME}_LIBRARIES} ${hdf5_comp})
+      endif ()
+    endif ()
+  endforeach ()
+
+  check_required_components(${HDF5_PACKAGE_NAME}_FIND_COMPONENTS)
+  
\ No newline at end of file
diff --git a/config/cmake/hdf5-config.cmake.install.in b/config/cmake/hdf5-config.cmake.install.in
deleted file mode 100644
index c1c4498..0000000
--- a/config/cmake/hdf5-config.cmake.install.in
+++ /dev/null
@@ -1,81 +0,0 @@
-#-----------------------------------------------------------------------------
-# 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 0c0befa..a036ff8 100644
--- a/config/cmake/libhdf5.settings.cmake.in
+++ b/config/cmake/libhdf5.settings.cmake.in
@@ -65,4 +65,3 @@ Clear file buffers before write: @HDF5_Enable_Clear_File_Buffers@
          Function Stack Tracing: @HDF5_ENABLE_CODESTACK@
       Strict File Format Checks: @HDF5_STRICT_FORMAT_CHECKS@
    Optimization Instrumentation: @HDF5_Enable_Instrument@
-       Large File Support (LFS): @HDF5_ENABLE_LARGE_FILE@
diff --git a/config/cmake/patch.xml b/config/cmake/patch.xml
new file mode 100644
index 0000000..70571c5
--- /dev/null
+++ b/config/cmake/patch.xml
@@ -0,0 +1,11 @@
+<CPackWiXPatch>
+	<CPackWiXFragment Id="CM_CP_libraries.bin.hdf5.dll">
+        <Environment Id="PATH" 
+             Name="PATH" 
+             Value="[CM_DP_libraries.bin]" 
+             Permanent="no" 
+             Part="last" 
+             Action="set" 
+             System="yes"/>
+	</CPackWiXFragment>
+</CPackWiXPatch>
diff --git a/config/cmake_ext_mod/ConfigureChecks.cmake b/config/cmake_ext_mod/ConfigureChecks.cmake
index a402736..588b5d5 100644
--- a/config/cmake_ext_mod/ConfigureChecks.cmake
+++ b/config/cmake_ext_mod/ConfigureChecks.cmake
@@ -11,7 +11,9 @@ 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)
+if(CMAKE_CXX_COMPILER)
+  include (${CMAKE_ROOT}/Modules/TestForSTDNamespace.cmake)
+endif(CMAKE_CXX_COMPILER)
 
 #-----------------------------------------------------------------------------
 # APPLE/Darwin setup
@@ -90,7 +92,6 @@ if (WINDOWS)
   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)
@@ -180,7 +181,7 @@ MACRO (HDF_FUNCTION_TEST OTHER_TEST)
     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
+      file (APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
           "Performing Other Test ${OTHER_TEST} failed with the following output:\n"
           "${OUTPUT}\n"
       )
@@ -280,8 +281,19 @@ if (NOT WINDOWS)
   # 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)
-  
+  # _BSD_SOURCE deprecated in GLIBC >= 2.20
+  TRY_RUN (HAVE_DEFAULT_SOURCE_RUN HAVE_DEFAULT_SOURCE_COMPILE
+        ${CMAKE_BINARY_DIR}
+        ${HDF_RESOURCES_EXT_DIR}/HDFTests.c
+        CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=-DHAVE_DEFAULT_SOURCE
+        OUTPUT_VARIABLE OUTPUT
+    )
+  if (HAVE_DEFAULT_SOURCE_COMPILE AND HAVE_DEFAULT_SOURCE_RUN)
+    set (HDF_EXTRA_FLAGS -D_DEFAULT_SOURCE)
+  else (HAVE_DEFAULT_SOURCE_COMPILE AND HAVE_DEFAULT_SOURCE_RUN)
+    set (HDF_EXTRA_FLAGS -D_BSD_SOURCE)
+  endif (HAVE_DEFAULT_SOURCE_COMPILE AND HAVE_DEFAULT_SOURCE_RUN)
+
   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")
@@ -300,14 +312,14 @@ if (NOT WINDOWS)
       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
+        file (APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/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
+      file (APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
           "Test TEST_LFS_WORKS Compile failed with the following output:\n ${OUTPUT}\n"
       )
     endif (TEST_LFS_WORKS_COMPILE)
@@ -533,7 +545,6 @@ CHECK_SYMBOL_EXISTS (tzname "time.h" ${HDF_PREFIX}_HAVE_DECL_TZNAME)
 #-----------------------------------------------------------------------------
 if (NOT WINDOWS)
   foreach (test
-      LONE_COLON
       HAVE_ATTRIBUTE
       HAVE_C99_FUNC
 #      STDC_HEADERS
@@ -585,17 +596,17 @@ MACRO (HDF_CXX_FUNCTION_TEST OTHER_TEST)
         "${OTHER_TEST_ADD_LIBRARIES}"
         OUTPUT_VARIABLE OUTPUT
     )
-    if ("${OTHER_TEST}" EQUAL 0)
+    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)
+    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} EQUAL 0)
   endif ("${OTHER_TEST}" MATCHES "^${OTHER_TEST}$")
 ENDMACRO (HDF_CXX_FUNCTION_TEST)
 
diff --git a/config/cmake_ext_mod/FindMPI.cmake b/config/cmake_ext_mod/FindMPI.cmake
index 1b67a30..1c9a2e3 100644
--- a/config/cmake_ext_mod/FindMPI.cmake
+++ b/config/cmake_ext_mod/FindMPI.cmake
@@ -1,64 +1,88 @@
-# - Find a Message Passing Interface (MPI) implementation
+#.rst:
+# FindMPI
+# -------
+#
+# Find a Message Passing Interface (MPI) implementation
+#
 # The Message Passing Interface (MPI) is a library used to write
-# high-performance distributed-memory parallel applications, and
-# is typically deployed on a cluster. MPI is a standard interface
-# (defined by the MPI forum) for which many implementations are
-# available. All of them have somewhat different include paths,
-# libraries to link against, etc., and this module tries to smooth
-# out those differences.
+# high-performance distributed-memory parallel applications, and is
+# typically deployed on a cluster.  MPI is a standard interface (defined
+# by the MPI forum) for which many implementations are available.  All
+# of them have somewhat different include paths, libraries to link
+# against, etc., and this module tries to smooth out those differences.
 #
 # === Variables ===
 #
-# This module will set the following variables per language in your project,
-# where <lang> is one of C, CXX, or Fortran:
-#   MPI_<lang>_FOUND           TRUE if FindMPI found MPI flags for <lang>
-#   MPI_<lang>_COMPILER        MPI Compiler wrapper for <lang>
-#   MPI_<lang>_COMPILE_FLAGS   Compilation flags for MPI programs
-#   MPI_<lang>_INCLUDE_PATH    Include path(s) for MPI header
-#   MPI_<lang>_LINK_FLAGS      Linking flags for MPI programs
-#   MPI_<lang>_LIBRARIES       All libraries to link MPI programs against
+# This module will set the following variables per language in your
+# project, where <lang> is one of C, CXX, or Fortran:
+#
+# ::
+#
+#    MPI_<lang>_FOUND           TRUE if FindMPI found MPI flags for <lang>
+#    MPI_<lang>_COMPILER        MPI Compiler wrapper for <lang>
+#    MPI_<lang>_COMPILE_FLAGS   Compilation flags for MPI programs
+#    MPI_<lang>_INCLUDE_PATH    Include path(s) for MPI header
+#    MPI_<lang>_LINK_FLAGS      Linking flags for MPI programs
+#    MPI_<lang>_LIBRARIES       All libraries to link MPI programs against
+#
 # Additionally, FindMPI sets the following variables for running MPI
 # programs from the command line:
-#   MPIEXEC                    Executable for running MPI programs
-#   MPIEXEC_NUMPROC_FLAG       Flag to pass to MPIEXEC before giving
-#                              it the number of processors to run on
-#   MPIEXEC_PREFLAGS           Flags to pass to MPIEXEC directly
-#                              before the executable to run.
-#   MPIEXEC_POSTFLAGS          Flags to pass to MPIEXEC after other flags
+#
+# ::
+#
+#    MPIEXEC                    Executable for running MPI programs
+#    MPIEXEC_NUMPROC_FLAG       Flag to pass to MPIEXEC before giving
+#                               it the number of processors to run on
+#    MPIEXEC_PREFLAGS           Flags to pass to MPIEXEC directly
+#                               before the executable to run.
+#    MPIEXEC_POSTFLAGS          Flags to pass to MPIEXEC after other flags
+#
 # === Usage ===
 #
 # To use this module, simply call FindMPI from a CMakeLists.txt file, or
-# run find_package(MPI), then run CMake.  If you are happy with the auto-
-# detected configuration for your language, then you're done.  If not, you
-# have two options:
-#   1. Set MPI_<lang>_COMPILER to the MPI wrapper (mpicc, etc.) of your
-#      choice and reconfigure.  FindMPI will attempt to determine all the
-#      necessary variables using THAT compiler's compile and link flags.
-#   2. If this fails, or if your MPI implementation does not come with
-#      a compiler wrapper, then set both MPI_<lang>_LIBRARIES and
-#      MPI_<lang>_INCLUDE_PATH.  You may also set any other variables
-#      listed above, but these two are required.  This will circumvent
-#      autodetection entirely.
-# When configuration is successful, MPI_<lang>_COMPILER will be set to the
-# compiler wrapper for <lang>, if it was found.  MPI_<lang>_FOUND and other
-# variables above will be set if any MPI implementation was found for <lang>,
-# regardless of whether a compiler was found.
-#
-# When using MPIEXEC to execute MPI applications, you should typically use
-# all of the MPIEXEC flags as follows:
-#   ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} PROCS
-#     ${MPIEXEC_PREFLAGS} EXECUTABLE ${MPIEXEC_POSTFLAGS} ARGS
-# where PROCS is the number of processors on which to execute the program,
-# EXECUTABLE is the MPI program, and ARGS are the arguments to pass to the
-# MPI program.
+# run find_package(MPI), then run CMake.  If you are happy with the
+# auto- detected configuration for your language, then you're done.  If
+# not, you have two options:
+#
+# ::
+#
+#    1. Set MPI_<lang>_COMPILER to the MPI wrapper (mpicc, etc.) of your
+#       choice and reconfigure.  FindMPI will attempt to determine all the
+#       necessary variables using THAT compiler's compile and link flags.
+#    2. If this fails, or if your MPI implementation does not come with
+#       a compiler wrapper, then set both MPI_<lang>_LIBRARIES and
+#       MPI_<lang>_INCLUDE_PATH.  You may also set any other variables
+#       listed above, but these two are required.  This will circumvent
+#       autodetection entirely.
+#
+# When configuration is successful, MPI_<lang>_COMPILER will be set to
+# the compiler wrapper for <lang>, if it was found.  MPI_<lang>_FOUND
+# and other variables above will be set if any MPI implementation was
+# found for <lang>, regardless of whether a compiler was found.
+#
+# When using MPIEXEC to execute MPI applications, you should typically
+# use all of the MPIEXEC flags as follows:
+#
+# ::
+#
+#    ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} PROCS
+#      ${MPIEXEC_PREFLAGS} EXECUTABLE ${MPIEXEC_POSTFLAGS} ARGS
+#
+# where PROCS is the number of processors on which to execute the
+# program, EXECUTABLE is the MPI program, and ARGS are the arguments to
+# pass to the MPI program.
 #
 # === Backward Compatibility ===
 #
 # For backward compatibility with older versions of FindMPI, these
 # variables are set, but deprecated:
-#   MPI_FOUND           MPI_COMPILER        MPI_LIBRARY
-#   MPI_COMPILE_FLAGS   MPI_INCLUDE_PATH    MPI_EXTRA_LIBRARY
-#   MPI_LINK_FLAGS      MPI_LIBRARIES
+#
+# ::
+#
+#    MPI_FOUND           MPI_COMPILER        MPI_LIBRARY
+#    MPI_COMPILE_FLAGS   MPI_INCLUDE_PATH    MPI_EXTRA_LIBRARY
+#    MPI_LINK_FLAGS      MPI_LIBRARIES
+#
 # In new projects, please use the MPI_<lang>_XXX equivalents.
 
 #=============================================================================
@@ -136,7 +160,7 @@ set(_MPI_XL_Fortran_COMPILER_NAMES         mpixlf95   mpixlf95_r mpxlf95 mpxlf95
 # or if we know it matches the regular compiler.
 foreach (lang C CXX Fortran)
   foreach (id GNU Intel PGI XL)
-    if (NOT CMAKE_${lang}_COMPILER_ID OR "${CMAKE_${lang}_COMPILER_ID}" STREQUAL "${id}")
+    if (NOT CMAKE_${lang}_COMPILER_ID OR CMAKE_${lang}_COMPILER_ID STREQUAL id)
       list(APPEND _MPI_${lang}_COMPILER_NAMES ${_MPI_${id}_${lang}_COMPILER_NAMES})
     endif()
     unset(_MPI_${id}_${lang}_COMPILER_NAMES)    # clean up the namespace here
@@ -150,6 +174,13 @@ set(_MPI_EXEC_NAMES                        mpiexec mpirun lamexec srun)
 # Grab the path to MPI from the registry if we're on windows.
 set(_MPI_PREFIX_PATH)
 if(WIN32)
+  # MSMPI
+  file(TO_CMAKE_PATH "$ENV{MSMPI_BIN}" msmpi_bin_path) # The default path ends with a '\' and doesn't mix with ';' when appending.
+  list(APPEND _MPI_PREFIX_PATH "${msmpi_bin_path}")
+  unset(msmpi_bin_path)
+  list(APPEND _MPI_PREFIX_PATH "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\MPI;InstallRoot]/Bin")
+  list(APPEND _MPI_PREFIX_PATH "$ENV{MSMPI_INC}/..") # The SDK is installed separately from the runtime
+  # MPICH
   list(APPEND _MPI_PREFIX_PATH "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MPICH\\SMPD;binary]/..")
   list(APPEND _MPI_PREFIX_PATH "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MPICH2;Path]")
   list(APPEND _MPI_PREFIX_PATH "$ENV{ProgramW6432}/MPICH2/")
@@ -164,6 +195,21 @@ foreach(SystemPrefixDir ${CMAKE_SYSTEM_PREFIX_PATH})
   endforeach()
 endforeach()
 
+function (_mpi_check_compiler compiler options cmdvar resvar)
+  execute_process(
+    COMMAND "${compiler}" ${options}
+    OUTPUT_VARIABLE  cmdline OUTPUT_STRIP_TRAILING_WHITESPACE
+    ERROR_VARIABLE   cmdline ERROR_STRIP_TRAILING_WHITESPACE
+    RESULT_VARIABLE  success)
+  # Intel MPI 5.0.1 will return a zero return code even when the
+  # argument to the MPI compiler wrapper is unknown.  Attempt to
+  # catch this case.
+  if("${cmdline}" MATCHES "undefined reference")
+    set(success 255 )
+  endif()
+  set(${cmdvar} "${cmdline}" PARENT_SCOPE)
+  set(${resvar} "${success}" PARENT_SCOPE)
+endfunction()
 
 #
 # interrogate_mpi_compiler(lang try_libs)
@@ -196,12 +242,7 @@ function (interrogate_mpi_compiler lang try_libs)
     if (MPI_${lang}_COMPILER)
       # Check whether the -showme:compile option works. This indicates that we have either OpenMPI
       # or a newer version of LAM-MPI, and implies that -showme:link will also work.
-      execute_process(
-        COMMAND ${MPI_${lang}_COMPILER} -showme:compile
-        OUTPUT_VARIABLE  MPI_COMPILE_CMDLINE OUTPUT_STRIP_TRAILING_WHITESPACE
-        ERROR_VARIABLE   MPI_COMPILE_CMDLINE ERROR_STRIP_TRAILING_WHITESPACE
-        RESULT_VARIABLE  MPI_COMPILER_RETURN)
-
+      _mpi_check_compiler("${MPI_${lang}_COMPILER}" "-showme:compile" MPI_COMPILE_CMDLINE MPI_COMPILER_RETURN)
       if (MPI_COMPILER_RETURN EQUAL 0)
         # If we appear to have -showme:compile, then we should
         # also have -showme:link. Try it.
@@ -233,20 +274,12 @@ function (interrogate_mpi_compiler lang try_libs)
 
       # Older versions of LAM-MPI have "-showme". Try to find that.
       if (NOT MPI_COMPILER_RETURN EQUAL 0)
-        execute_process(
-          COMMAND ${MPI_${lang}_COMPILER} -showme
-          OUTPUT_VARIABLE  MPI_COMPILE_CMDLINE OUTPUT_STRIP_TRAILING_WHITESPACE
-          ERROR_VARIABLE   MPI_COMPILE_CMDLINE ERROR_STRIP_TRAILING_WHITESPACE
-          RESULT_VARIABLE  MPI_COMPILER_RETURN)
+        _mpi_check_compiler("${MPI_${lang}_COMPILER}" "-showme" MPI_COMPILE_CMDLINE MPI_COMPILER_RETURN)
       endif()
 
       # MVAPICH uses -compile-info and -link-info.  Try them.
       if (NOT MPI_COMPILER_RETURN EQUAL 0)
-        execute_process(
-          COMMAND ${MPI_${lang}_COMPILER} -compile-info
-          OUTPUT_VARIABLE  MPI_COMPILE_CMDLINE OUTPUT_STRIP_TRAILING_WHITESPACE
-          ERROR_VARIABLE   MPI_COMPILE_CMDLINE ERROR_STRIP_TRAILING_WHITESPACE
-          RESULT_VARIABLE  MPI_COMPILER_RETURN)
+        _mpi_check_compiler("${MPI_${lang}_COMPILER}" "-compile-info" MPI_COMPILE_CMDLINE MPI_COMPILER_RETURN)
 
         # If we have compile-info, also have link-info.
         if (MPI_COMPILER_RETURN EQUAL 0)
@@ -266,11 +299,7 @@ function (interrogate_mpi_compiler lang try_libs)
 
       # MPICH just uses "-show". Try it.
       if (NOT MPI_COMPILER_RETURN EQUAL 0)
-        execute_process(
-          COMMAND ${MPI_${lang}_COMPILER} -show
-          OUTPUT_VARIABLE  MPI_COMPILE_CMDLINE OUTPUT_STRIP_TRAILING_WHITESPACE
-          ERROR_VARIABLE   MPI_COMPILE_CMDLINE ERROR_STRIP_TRAILING_WHITESPACE
-          RESULT_VARIABLE  MPI_COMPILER_RETURN)
+        _mpi_check_compiler("${MPI_${lang}_COMPILER}" "-show" MPI_COMPILE_CMDLINE MPI_COMPILER_RETURN)
       endif()
 
       if (MPI_COMPILER_RETURN EQUAL 0)
@@ -306,7 +335,7 @@ function (interrogate_mpi_compiler lang try_libs)
         string(REGEX MATCHALL "(^| )-I([^\" ]+|\"[^\"]+\")" MPI_ALL_INCLUDE_PATHS "${MPI_COMPILE_CMDLINE}")
         foreach(IPATH ${MPI_ALL_INCLUDE_PATHS})
           string(REGEX REPLACE "^ ?-I" "" IPATH ${IPATH})
-          string(REGEX REPLACE "//" "/" IPATH ${IPATH})
+          string(REPLACE "//" "/" IPATH ${IPATH})
           list(APPEND MPI_INCLUDE_PATH_WORK ${IPATH})
         endforeach()
 
@@ -330,7 +359,7 @@ function (interrogate_mpi_compiler lang try_libs)
         set(MPI_LINK_PATH)
         foreach(LPATH ${MPI_ALL_LINK_PATHS})
           string(REGEX REPLACE "^(| |-Wl,)-L" "" LPATH ${LPATH})
-          string(REGEX REPLACE "//" "/" LPATH ${LPATH})
+          string(REPLACE "//" "/" LPATH ${LPATH})
           list(APPEND MPI_LINK_PATH ${LPATH})
         endforeach()
 
@@ -341,7 +370,7 @@ function (interrogate_mpi_compiler lang try_libs)
         endif()
 
         # Extract linker flags from the link command line
-        string(REGEX MATCHALL "(^| )-Wl,([^\" ]+|\"[^\"]+\")" MPI_ALL_LINK_FLAGS "${MPI_LINK_CMDLINE}")
+        string(REGEX MATCHALL "(^| )(-Wl,|-Xlinker )([^\" ]+|\"[^\"]+\")" MPI_ALL_LINK_FLAGS "${MPI_LINK_CMDLINE}")
         set(MPI_LINK_FLAGS_WORK)
         foreach(FLAG ${MPI_ALL_LINK_FLAGS})
           if (MPI_LINK_FLAGS_WORK)
@@ -354,19 +383,14 @@ function (interrogate_mpi_compiler lang try_libs)
         # Extract the set of libraries to link against from the link command
         # line
         string(REGEX MATCHALL "(^| )-l([^\" ]+|\"[^\"]+\")" MPI_LIBNAMES "${MPI_LINK_CMDLINE}")
+
         # add the compiler implicit directories because some compilers
         # such as the intel compiler have libraries that show up
         # in the showme list that can only be found in the implicit
-        # link directories of the compiler. Do this for C++ and C
-        # compilers if the implicit link directories are defined.
-        if (DEFINED CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES)
+        # link directories of the compiler.
+        if (DEFINED CMAKE_${lang}_IMPLICIT_LINK_DIRECTORIES)
           set(MPI_LINK_PATH
-            "${MPI_LINK_PATH};${CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES}")
-        endif ()
-
-        if (DEFINED CMAKE_C_IMPLICIT_LINK_DIRECTORIES)
-          set(MPI_LINK_PATH
-            "${MPI_LINK_PATH};${CMAKE_C_IMPLICIT_LINK_DIRECTORIES}")
+            "${MPI_LINK_PATH};${CMAKE_${lang}_IMPLICIT_LINK_DIRECTORIES}")
         endif ()
 
         # Determine full path names for all of the libraries that one needs
@@ -404,16 +428,18 @@ function (interrogate_mpi_compiler lang try_libs)
 
       # Decide between 32-bit and 64-bit libraries for Microsoft's MPI
       if("${CMAKE_SIZEOF_VOID_P}" EQUAL 8)
-        set(MS_MPI_ARCH_DIR amd64)
+        set(MS_MPI_ARCH_DIR x64)
+        set(MS_MPI_ARCH_DIR2 amd64)
       else()
-        set(MS_MPI_ARCH_DIR i386)
+        set(MS_MPI_ARCH_DIR x86)
+        set(MS_MPI_ARCH_DIR2 i386)
       endif()
 
       set(MPI_LIB "MPI_LIB-NOTFOUND" CACHE FILEPATH "Cleared" FORCE)
       find_library(MPI_LIB
         NAMES         mpi mpich mpich2 msmpi
         HINTS         ${_MPI_BASE_DIR} ${_MPI_PREFIX_PATH}
-        PATH_SUFFIXES lib lib/${MS_MPI_ARCH_DIR} Lib Lib/${MS_MPI_ARCH_DIR})
+        PATH_SUFFIXES lib lib/${MS_MPI_ARCH_DIR} Lib Lib/${MS_MPI_ARCH_DIR} lib/${MS_MPI_ARCH_DIR2} Lib/${MS_MPI_ARCH_DIR2})
       set(MPI_LIBRARIES_WORK ${MPI_LIB})
 
       # Right now, we only know about the extra libs for C++.
@@ -432,6 +458,14 @@ function (interrogate_mpi_compiler lang try_libs)
       endif()
 
       if (${lang} STREQUAL Fortran)
+        set(MPI_HEADER_PATH "MPI_HEADER_PATH-NOTFOUND" CACHE FILEPATH "Cleared" FORCE)
+        find_path(MPI_HEADER_PATH mpifptr.h
+          HINTS ${_MPI_BASE_DIR} ${_MPI_PREFIX_PATH}
+          PATH_SUFFIXES include include/${MS_MPI_ARCH_DIR} include/${MS_MPI_ARCH_DIR2} Inc Inc/${MS_MPI_ARCH_DIR} Inc/${MS_MPI_ARCH_DIR2})
+        if (MPI_INCLUDE_PATH_WORK AND MPI_HEADER_PATH)
+          list(APPEND MPI_INCLUDE_PATH_WORK ${MPI_HEADER_PATH})
+        endif()
+        
         set(MPI_LIB "MPI_LIB-NOTFOUND" CACHE FILEPATH "Cleared" FORCE)
         find_library(MPI_LIB
           NAMES         fmpi fmpich fmpich2 fmpich2g msmpifec msmpifmc
@@ -514,6 +548,7 @@ endfunction()
 # Most mpi distros have some form of mpiexec which gives us something we can reliably look for.
 find_program(MPIEXEC
   NAMES ${_MPI_EXEC_NAMES}
+  HINTS ${MPI_HOME} $ENV{MPI_HOME}
   PATHS ${_MPI_PREFIX_PATH}
   PATH_SUFFIXES bin
   DOC "Executable for running MPI programs.")
@@ -576,7 +611,9 @@ foreach (lang C CXX Fortran)
 
     find_program(MPI_${lang}_COMPILER
       NAMES  ${_MPI_${lang}_COMPILER_NAMES}
-      PATHS  "${MPI_HOME}/bin" "$ENV{MPI_HOME}/bin" ${_MPI_PREFIX_PATH})
+      HINTS  ${_MPI_BASE_DIR}/bin
+      PATHS  ${_MPI_PREFIX_PATH}
+      )
     interrogate_mpi_compiler(${lang} ${try_libs})
     mark_as_advanced(MPI_${lang}_COMPILER)
 
diff --git a/config/cmake_ext_mod/HDFLibMacros.cmake b/config/cmake_ext_mod/HDFLibMacros.cmake
index f499b00..32c2fb0 100644
--- a/config/cmake_ext_mod/HDFLibMacros.cmake
+++ b/config/cmake_ext_mod/HDFLibMacros.cmake
@@ -10,7 +10,7 @@ MACRO (EXTERNAL_JPEG_LIBRARY compress_type libtype jpeg_pic)
         INSTALL_COMMAND ""
         CMAKE_ARGS
             -DBUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS}
-            -DHDF_PACKAGE_EXT:STRING=${HDF_PACKAGE_EXT}
+            -DJPEG_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}
@@ -25,7 +25,7 @@ MACRO (EXTERNAL_JPEG_LIBRARY compress_type libtype jpeg_pic)
         INSTALL_COMMAND ""
         CMAKE_ARGS
             -DBUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS}
-            -DHDF_PACKAGE_EXT:STRING=${HDF_PACKAGE_EXT}
+            -DJPEG_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}
@@ -41,7 +41,7 @@ MACRO (EXTERNAL_JPEG_LIBRARY compress_type libtype jpeg_pic)
         INSTALL_COMMAND ""
         CMAKE_ARGS
             -DBUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS}
-            -DHDF_PACKAGE_EXT:STRING=${HDF_PACKAGE_EXT}
+            -DJPEG_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}
@@ -53,7 +53,7 @@ MACRO (EXTERNAL_JPEG_LIBRARY compress_type libtype jpeg_pic)
   endif (${compress_type} MATCHES "SVN")
   externalproject_get_property (JPEG BINARY_DIR SOURCE_DIR) 
 
-  # Create imported target szip
+  # Create imported target jpeg
   add_library (jpeg ${libtype} IMPORTED)
   HDF_IMPORT_SET_LIB_OPTIONS (jpeg "jpeg" ${libtype} "")
   add_dependencies (JPEG jpeg)
@@ -89,7 +89,7 @@ MACRO (EXTERNAL_SZIP_LIBRARY compress_type libtype encoding)
         INSTALL_COMMAND ""
         CMAKE_ARGS
             -DBUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS}
-            -DHDF_PACKAGE_EXT:STRING=${HDF_PACKAGE_EXT}
+            -DSZIP_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}
@@ -106,7 +106,7 @@ MACRO (EXTERNAL_SZIP_LIBRARY compress_type libtype encoding)
         INSTALL_COMMAND ""
         CMAKE_ARGS
             -DBUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS}
-            -DHDF_PACKAGE_EXT:STRING=${HDF_PACKAGE_EXT}
+            -DSZIP_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}
@@ -123,7 +123,7 @@ MACRO (EXTERNAL_SZIP_LIBRARY compress_type libtype encoding)
         INSTALL_COMMAND ""
         CMAKE_ARGS
             -DBUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS}
-            -DHDF_PACKAGE_EXT:STRING=${HDF_PACKAGE_EXT}
+            -DSZIP_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}
@@ -172,7 +172,7 @@ MACRO (EXTERNAL_ZLIB_LIBRARY compress_type libtype)
         INSTALL_COMMAND ""
         CMAKE_ARGS
             -DBUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS}
-            -DHDF_PACKAGE_EXT:STRING=${HDF_PACKAGE_EXT}
+            -DZLIB_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}
@@ -188,7 +188,7 @@ MACRO (EXTERNAL_ZLIB_LIBRARY compress_type libtype)
         INSTALL_COMMAND ""
         CMAKE_ARGS
             -DBUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS}
-            -DHDF_PACKAGE_EXT:STRING=${HDF_PACKAGE_EXT}
+            -DZLIB_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}
@@ -204,7 +204,7 @@ MACRO (EXTERNAL_ZLIB_LIBRARY compress_type libtype)
         INSTALL_COMMAND ""
         CMAKE_ARGS
             -DBUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS}
-            -DHDF_PACKAGE_EXT:STRING=${HDF_PACKAGE_EXT}
+            -DZLIB_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}
diff --git a/config/cmake_ext_mod/HDFMacros.cmake b/config/cmake_ext_mod/HDFMacros.cmake
index a18eea4..c9de5ac 100644
--- a/config/cmake_ext_mod/HDFMacros.cmake
+++ b/config/cmake_ext_mod/HDFMacros.cmake
@@ -1,10 +1,10 @@
 #-------------------------------------------------------------------------------
-MACRO (SET_GLOBAL_VARIABLE name value)
+macro (SET_GLOBAL_VARIABLE name value)
   set (${name} ${value} CACHE INTERNAL "Used to pass variables between directories" FORCE)
-ENDMACRO (SET_GLOBAL_VARIABLE)
+endmacro (SET_GLOBAL_VARIABLE)
 
 #-------------------------------------------------------------------------------
-MACRO (IDE_GENERATED_PROPERTIES SOURCE_PATH HEADERS SOURCES)
+macro (IDE_GENERATED_PROPERTIES SOURCE_PATH HEADERS SOURCES)
   #set(source_group_path "Source/AIM/${NAME}")
   string (REPLACE "/" "\\\\" source_group_path ${SOURCE_PATH})
   source_group (${source_group_path} FILES ${HEADERS} ${SOURCES})
@@ -14,10 +14,10 @@ MACRO (IDE_GENERATED_PROPERTIES SOURCE_PATH HEADERS SOURCES)
   #set_property (SOURCE ${HEADERS}
   #       PROPERTY MACOSX_PACKAGE_LOCATION Headers/${NAME}
   #)
-ENDMACRO (IDE_GENERATED_PROPERTIES)
+endmacro (IDE_GENERATED_PROPERTIES)
 
 #-------------------------------------------------------------------------------
-MACRO (IDE_SOURCE_PROPERTIES SOURCE_PATH HEADERS SOURCES)
+macro (IDE_SOURCE_PROPERTIES SOURCE_PATH HEADERS SOURCES)
   #  install (FILES ${HEADERS}
   #       DESTINATION include/R3D/${NAME}
   #       COMPONENT Headers       
@@ -31,19 +31,23 @@ MACRO (IDE_SOURCE_PROPERTIES SOURCE_PATH HEADERS SOURCES)
   #set_property (SOURCE ${HEADERS}
   #       PROPERTY MACOSX_PACKAGE_LOCATION Headers/${NAME}
   #)
-ENDMACRO (IDE_SOURCE_PROPERTIES)
+endmacro (IDE_SOURCE_PROPERTIES)
 
 #-------------------------------------------------------------------------------
-MACRO (TARGET_NAMING libtarget libtype)
+macro (TARGET_NAMING libtarget libtype)
   if (WIN32)
     if (${libtype} MATCHES "SHARED")
       set_target_properties (${libtarget} PROPERTIES OUTPUT_NAME "${libtarget}dll")
     endif (${libtype} MATCHES "SHARED")
+  else (WIN32)
+    if (${libtype} MATCHES "SHARED")
+      set_target_properties (${libtarget} PROPERTIES OUTPUT_NAME "${libtarget}${ARGN}")
+    endif (${libtype} MATCHES "SHARED")
   endif (WIN32)
-ENDMACRO (TARGET_NAMING)
+endmacro (TARGET_NAMING)
 
 #-------------------------------------------------------------------------------
-MACRO (INSTALL_TARGET_PDB libtarget targetdestination targetcomponent)
+macro (INSTALL_TARGET_PDB libtarget targetdestination targetcomponent)
   if (WIN32 AND MSVC)
     get_target_property (target_name ${libtarget} OUTPUT_NAME_RELWITHDEBINFO)
     install (
@@ -55,10 +59,10 @@ MACRO (INSTALL_TARGET_PDB libtarget targetdestination targetcomponent)
       COMPONENT ${targetcomponent}
   )
   endif (WIN32 AND MSVC)
-ENDMACRO (INSTALL_TARGET_PDB)
+endmacro (INSTALL_TARGET_PDB)
 
 #-------------------------------------------------------------------------------
-MACRO (INSTALL_PROGRAM_PDB progtarget targetdestination targetcomponent)
+macro (INSTALL_PROGRAM_PDB progtarget targetdestination targetcomponent)
   if (WIN32 AND MSVC)
     get_target_property (target_name ${progtarget} OUTPUT_NAME_RELWITHDEBINFO)
     get_target_property (target_prefix ${progtarget} PREFIX)
@@ -71,10 +75,10 @@ MACRO (INSTALL_PROGRAM_PDB progtarget targetdestination targetcomponent)
       COMPONENT ${targetcomponent}
   )
   endif (WIN32 AND MSVC)
-ENDMACRO (INSTALL_PROGRAM_PDB)
+endmacro (INSTALL_PROGRAM_PDB)
 
 #-------------------------------------------------------------------------------
-MACRO (HDF_SET_LIB_OPTIONS libtarget libname libtype)
+macro (HDF_SET_LIB_OPTIONS libtarget libname libtype)
   if (${libtype} MATCHES "SHARED")
     if (WIN32)
       set (LIB_RELEASE_NAME "${libname}")
@@ -111,14 +115,14 @@ MACRO (HDF_SET_LIB_OPTIONS libtarget libname libtype)
     )
   endif (MINGW AND ${libtype} MATCHES "SHARED")
 
-ENDMACRO (HDF_SET_LIB_OPTIONS)
+endmacro (HDF_SET_LIB_OPTIONS)
 
 #-------------------------------------------------------------------------------
-MACRO (HDF_IMPORT_SET_LIB_OPTIONS libtarget libname libtype libversion)
+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}")
+    set (importprefix "${CMAKE_STATIC_LIBRARY_PREFIX}")
   endif (${importtype} MATCHES "IMPORT")
   if (${CMAKE_BUILD_TYPE} MATCHES "Debug")
     set (IMPORT_LIB_NAME ${LIB_DEBUG_NAME})
@@ -137,7 +141,7 @@ MACRO (HDF_IMPORT_SET_LIB_OPTIONS libtarget libname libtype libversion)
         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)
@@ -167,83 +171,67 @@ MACRO (HDF_IMPORT_SET_LIB_OPTIONS libtarget libname libtype libversion)
     endif (WIN32 AND NOT MINGW)
   endif (${libtype} MATCHES "SHARED")
 
-ENDMACRO (HDF_IMPORT_SET_LIB_OPTIONS)
+endmacro (HDF_IMPORT_SET_LIB_OPTIONS)
 
 #-------------------------------------------------------------------------------
-MACRO (TARGET_C_PROPERTIES wintarget addcompileflags addlinkflags)
+macro (TARGET_C_PROPERTIES wintarget libtype addcompileflags addlinkflags)
   if (MSVC)
-    TARGET_MSVC_PROPERTIES (${wintarget} "${addcompileflags} ${WIN_COMPILE_FLAGS}" "${addlinkflags} ${WIN_LINK_FLAGS}")
+    TARGET_MSVC_PROPERTIES (${wintarget} ${libtype} "${addcompileflags} ${WIN_COMPILE_FLAGS}" "${addlinkflags} ${WIN_LINK_FLAGS}")
   else (MSVC)
-    if (BUILD_SHARED_LIBS)
-      set_target_properties (${wintarget}
-          PROPERTIES
-              COMPILE_FLAGS "${addcompileflags}"
-              LINK_FLAGS "${addlinkflags}"
-      ) 
-    else (BUILD_SHARED_LIBS)
-      set_target_properties (${wintarget}
-          PROPERTIES
-              COMPILE_FLAGS "${addcompileflags}"
-              LINK_FLAGS "${addlinkflags}"
-      ) 
-    endif (BUILD_SHARED_LIBS)
+    set_target_properties (${wintarget}
+        PROPERTIES
+            COMPILE_FLAGS "${addcompileflags}"
+            LINK_FLAGS "${addlinkflags}"
+    ) 
   endif (MSVC)
-ENDMACRO (TARGET_C_PROPERTIES)
+endmacro (TARGET_C_PROPERTIES)
 
 #-------------------------------------------------------------------------------
-MACRO (TARGET_MSVC_PROPERTIES wintarget addcompileflags addlinkflags)
+macro (TARGET_MSVC_PROPERTIES wintarget libtype addcompileflags addlinkflags)
   if (MSVC)
-    if (BUILD_SHARED_LIBS)
-      set_target_properties (${wintarget}
-          PROPERTIES
-              COMPILE_FLAGS "${addcompileflags}"
-              LINK_FLAGS "${addlinkflags}"
-      ) 
-    else (BUILD_SHARED_LIBS)
-      set_target_properties (${wintarget}
-          PROPERTIES
-              COMPILE_FLAGS "${addcompileflags}"
-              LINK_FLAGS "${addlinkflags}"
-      ) 
-    endif (BUILD_SHARED_LIBS)
+    set_target_properties (${wintarget}
+        PROPERTIES
+            COMPILE_FLAGS "${addcompileflags}"
+            LINK_FLAGS "${addlinkflags}"
+    ) 
   endif (MSVC)
-ENDMACRO (TARGET_MSVC_PROPERTIES)
+endmacro (TARGET_MSVC_PROPERTIES)
 
 #-------------------------------------------------------------------------------
-MACRO (TARGET_FORTRAN_PROPERTIES forttarget addcompileflags addlinkflags)
+macro (TARGET_FORTRAN_PROPERTIES forttarget libtype addcompileflags addlinkflags)
   if (WIN32)
-    TARGET_FORTRAN_WIN_PROPERTIES (${forttarget} "${addcompileflags} ${WIN_COMPILE_FLAGS}" "${addlinkflags} ${WIN_LINK_FLAGS}")
+    TARGET_FORTRAN_WIN_PROPERTIES (${forttarget} ${libtype} "${addcompileflags} ${WIN_COMPILE_FLAGS}" "${addlinkflags} ${WIN_LINK_FLAGS}")
   endif (WIN32)
-ENDMACRO (TARGET_FORTRAN_PROPERTIES)
+endmacro (TARGET_FORTRAN_PROPERTIES)
 
 #-------------------------------------------------------------------------------
-MACRO (TARGET_FORTRAN_WIN_PROPERTIES forttarget addcompileflags addlinkflags)
+macro (TARGET_FORTRAN_WIN_PROPERTIES forttarget libtype addcompileflags addlinkflags)
   if (MSVC)
-    if (BUILD_SHARED_LIBS)
+    if (${libtype} MATCHES "SHARED")
       set_target_properties (${forttarget}
           PROPERTIES
               COMPILE_FLAGS "/dll ${addcompileflags}"
               LINK_FLAGS "/SUBSYSTEM:CONSOLE ${addlinkflags}"
       ) 
-    else (BUILD_SHARED_LIBS)
+    else (${libtype} MATCHES "SHARED")
       set_target_properties (${forttarget}
           PROPERTIES
               COMPILE_FLAGS "${addcompileflags}"
               LINK_FLAGS "/SUBSYSTEM:CONSOLE ${addlinkflags}"
       ) 
-    endif (BUILD_SHARED_LIBS)
+    endif (${libtype} MATCHES "SHARED")
   endif (MSVC)
-ENDMACRO (TARGET_FORTRAN_WIN_PROPERTIES)
+endmacro (TARGET_FORTRAN_WIN_PROPERTIES)
 
 #-----------------------------------------------------------------------------
 # Configure the README.txt file for the binary package
 #-----------------------------------------------------------------------------
-MACRO (HDF_README_PROPERTIES target_fortran)
+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")
+    set (BINARY_INSTALL_ENDING "msi")
     if (CMAKE_CL_64)
       set (BINARY_SYSTEM_NAME "win64")
     else (CMAKE_CL_64)
@@ -277,6 +265,7 @@ MACRO (HDF_README_PROPERTIES target_fortran)
     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)
@@ -285,4 +274,4 @@ MACRO (HDF_README_PROPERTIES target_fortran)
       ${HDF_RESOURCES_DIR}/README.txt.cmake.in 
       ${CMAKE_BINARY_DIR}/README.txt @ONLY
   )
-ENDMACRO (HDF_README_PROPERTIES)
+endmacro (HDF_README_PROPERTIES)
diff --git a/config/cmake_ext_mod/HDFTests.c b/config/cmake_ext_mod/HDFTests.c
index 355c06f..1c23ac3 100644
--- a/config/cmake_ext_mod/HDFTests.c
+++ b/config/cmake_ext_mod/HDFTests.c
@@ -104,27 +104,6 @@ return 0;
 int main() { return 0; }
 #endif /* STDC_HEADERS */
 
-#ifdef HAVE_TM_ZONE
-
-#include <sys/types.h>
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#include <time.h>
-SIMPLE_TEST(struct tm tm; tm.tm_zone);
-
-#endif /* HAVE_TM_ZONE */
-
-#ifdef HAVE_STRUCT_TM_TM_ZONE
-
-#include <sys/types.h>
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#include <time.h>
-SIMPLE_TEST(struct tm tm; tm.tm_zone);
-
-#endif /* HAVE_STRUCT_TM_TM_ZONE */
 
 #ifdef HAVE_ATTRIBUTE
 
@@ -344,6 +323,21 @@ int main(void)
        SIMPLE_TEST(posix_memalign());
 #endif
 
+#ifdef HAVE_DEFAULT_SOURCE
+/* check default source */
+#include <features.h>
+
+int
+main(void)
+{
+#ifdef __GLIBC_PREREQ
+  return __GLIBC_PREREQ(2,19);
+#else
+  return 0;
+#endif /* defined(__GLIBC_PREREQ) */
+}
+#endif
+
 #ifdef TEST_LFS_WORKS
 /* Return 0 when LFS is available and 1 otherwise.  */
 #define _LARGEFILE_SOURCE
@@ -395,13 +389,6 @@ int main(void)
 }
 #endif
 
-#ifdef LONE_COLON
-int main(int argc, char * argv) 
-{
-  return 0;
-}
-#endif
-
 #ifdef CXX_HAVE_OFFSETOF
 
 #include <stdio.h>
diff --git a/config/cmake_ext_mod/NSIS.InstallOptions.ini.in b/config/cmake_ext_mod/NSIS.InstallOptions.ini.in
index 35c1033..9954f28 100644
--- a/config/cmake_ext_mod/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 the @CPACK_PACKAGE_INSTALL_DIRECTORY@/bin directory is added to the system PATH.
+Text=By default the @CPACK_PACKAGE_NAME@ bin directory is added to the system PATH. This allows shared library (dll) discovery (if installed) and running HDF5 tools from the command line.
 Left=0
 Right=-1
 Top=0
diff --git a/config/cmake_ext_mod/hdf.icns b/config/cmake_ext_mod/hdf.icns
index 22afa2e..66f025d 100644
Binary files a/config/cmake_ext_mod/hdf.icns and b/config/cmake_ext_mod/hdf.icns differ
diff --git a/config/commence.am b/config/commence.am
index 4bc005e..554c9fb 100644
--- a/config/commence.am
+++ b/config/commence.am
@@ -89,8 +89,8 @@ F9XMODFLAG=@F9XMODFLAG@
 
 # .chkexe files are used to mark tests that have run successfully.
 # .chklog files are output from those tests.
-# *.clog are from the MPE option.
-CHECK_CLEANFILES=*.chkexe *.chklog *.clog
+# *.clog and *.clog2 are from the MPE option.
+CHECK_CLEANFILES=*.chkexe *.chklog *.clog *.clog2
 
 # List all build rules defined by HDF5 Makefiles as "PHONY" targets here.
 # This tells the Makefiles that these targets are not files to be built but
diff --git a/config/irix6.x b/config/irix6.x
deleted file mode 100644
index 8907a66..0000000
--- a/config/irix6.x
+++ /dev/null
@@ -1,178 +0,0 @@
-#							-*- shell-script -*-
-#
-# 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 is part of the HDF5 build script.  It is processed shortly
-# after configure starts and defines, among other things, flags for
-# the various compile modes.
-#
-# See BlankForm in this directory for details.
-
-# Disable dependency tracking on IRIX unless the user specifically asks for
-# it.
-# IRIX's pmake confuses automake (as of version 1.9) if dependency tracking
-# is enabled and it is not an in-place build.  Simply disabling dependency
-# tracking on IRIX is simpler to implement than detecting pmake, detecting
-# when a build is not in-place, and then disabling dependency tracking.
-if test -z "${enable_dependency_tracking}"; then
-  enable_dependency_tracking="no"
-fi
-
-# Use SGI supplied C compiler by default.  There is no ranlib
-if test "X-" = "X-$CC"; then
-    CC='cc'
-    CC_BASENAME=cc
-    # use c99 compiler if available.
-    if `c99 -version >/dev/null 2>&1` ; then
-        CC='c99'
-    fi
-fi
-RANLIB=:
-
-# Compiler flags
-case "X-$CC_BASENAME" in
-  X-gcc)
-    . $srcdir/config/gnu-flags
-    ;;
-
-  *)
-    if [ "$CC_BASENAME" = "cc" ] || ($CC -version 2>&1 | grep -s "MIPSpro Compilers") 2>&1 > /dev/null; then
-      # use these flags if this is the SGI cc compiler or some compiler
-      # command that eventually uses the SGI cc compiler.
-
-      # Check for old versions of the compiler that don't work right.
-      case "`$CC -version 2>&1 |head -1`" in
-        "Mongoose Compilers: Version 7.00")
-          echo "  +---------------------------------------------------+"
-          echo "  | You have an old version of cc (Mongoose Compilers |"
-          echo "  | version 7.00).  Please upgrade to MIPSpro version |"
-          echo "  | 7.2.1.2m (patches are available from the SGI web  |"
-          echo "  | site).  The 7.00 version may generate incorrect   |"
-          echo "  | code, especially when optimizations are enabled.  |"
-          echo "  +---------------------------------------------------+"
-          sleep 5
-          ;;
-      esac
-
-      # Always turn off these compiler warnings for the -64 compiler:
-      #    1174:  function declared but not used
-      #    1196:  __vfork() (this is an SGI config problem)
-      #    1209:  constant expressions
-      #    1429:  the `long long' type is not standard
-      #    1685:  turn off warnings about turning off invalid warnings
-      #    3201:  remark - parameter not referenced
-      #H5_CFLAGS="$H5_CFLAGS -woff 1174,1429,1209,1196,1685,3201"
-      H5_CFLAGS="$H5_CFLAGS -woff 1209,3201"
-
-      # Always turn off these compiler warnings for the old compiler:
-      #    799:   the `long long' type is not standard
-      #    803:   turn off warnings about turning off invalid warnings
-      #    835:   __vfork() (this is an SGI config problem)
-      #H5_CFLAGS="$H5_CFLAGS -woff 799,803,835"
-
-      # Always turn off these loader warnings:
-      # (notice the peculiar syntax)
-      #      47:  branch instructions that degrade performance on R4000
-      #      84:  a library is not used
-      #      85:  duplicate definition preemption (from -lnsl)
-      #     134:  duplicate weak definition preemption (from -lnsl)
-      H5_CFLAGS="$H5_CFLAGS -Wl,-woff,47,-woff,84,-woff,85,-woff,134"
-    fi
-
-    # Extra debugging flags
-    DEBUG_CFLAGS="-g -fullwarn"
-    DEBUG_CPPFLAGS=
-
-    # Extra production flags
-    PROD_CFLAGS="-O -OPT:Olimit=0 -s"
-    PROD_CPPFLAGS=
-
-    # Extra profiling flags
-    PROFILE_CFLAGS=
-    PROFILE_CPPFLAGS=
-    ;;
-esac
-
-# The default Fortran 90 compiler
-
-if test "X-" = "X-$FC"; then
-  FC="f90"
-fi
-
-if test "X-" = "X-$f9x_flags_set"; then
-  F9XSUFFIXFLAG=""
-  FSEARCH_DIRS=""
-  H5_FCFLAGS="$H5_FCFLAGS -mips4 -O -s"
-  DEBUG_FCFLAGS="-mips4 -O -s"
-  PROD_FCFLAGS="-mips4 -O -s"
-  PROFILE_FCFLAGS="-mips4 -O -s"
-  f9x_flags_set=yes
-fi
-
-# The default C++ compiler
-
-# The default compiler is `MIPSpro CC'
-if test -z "$CXX"; then
-  CXX=CC
-  CXX_BASENAME=CC
-fi
-
-# Try native compiler flags
-if test -z "$cxx_flags_set"; then
-  # -LANG:std required for std use; -ptused causes templates used to be
-  # instantiated
-  AM_CPPFLAGS="$AM_CPPFLAGS -LANG:std"
-  H5_CPPFLAGS="$H5_CPPFLAGS -ptused"
-
-  # libCio is a default library, since libtool before 1.5 doesn't fully 
-  # support C++ yet, default libraries must be explicitly specified.
-  # A new macro is used for this temporary and specific task so it 
-  # won't polute the existing configuration 
-  DEFAULT_LIBS="-lCio"
-
-  DEBUG_CXXFLAGS=-g
-  DEBUG_CPPFLAGS=
-  PROD_CXXFLAGS="-O -s"
-  PROD_CPPFLAGS=
-  PROFILE_CXXFLAGS=-xpg
-  PROFILE_CPPFLAGS=
-  cxx_flags_set=yes
-fi
-
-# Hard set flag to indicate that the 'unsigned long long' to floating-point
-# value conversion are broken by the compilers (as of 4/27/04 - QAK)
-hdf5_cv_ulong_to_fp_bottom_bit_accurate=${hdf5_cv_ulong_to_fp_bottom_bit_accurate='no'}
-
-# Set flags to avoid conversion between 'long double' and integers because of 
-# SGI's compiler problems.  For both IRIX64 6.5 and IRIX 6.5, the compilers
-# have the following problems,
-#       long double -> signed char : incorrect rounding
-#       long double -> unsigned char : incorrect rounding
-#       long double -> short : incorrect rounding
-#       long double -> unsigned short : incorrect rounding
-#       long double -> long or long long: incorrect value
-#       long double -> unsigned long or long long : incorrect value
-#
-#       long or long long -> long double : correct value but incorrect bit pattern
-#       unsigned long or long long -> long double : correct value but incorrect bit pattern
-# (1/5/05 - SLU)
-hdf5_cv_ldouble_to_integer_accurate=${hdf5_cv_ldouble_to_integer_accurate='no'}
-hdf5_cv_integer_to_ldouble_accurate=${hdf5_cv_integer_to_ldouble_accurate='no'}
-
-# Set flag to generate alternate code for H5VM_log2_gen, to avoid
-# problems with the MIPSpro compiler 7.30 and IRIX64 6.5 (ie. other
-# combinations might work, but haven't been tested)
-# (9/15/06 - QAK)
-hdf5_cv_bad_log2_code_generated=${hdf5_cv_bad_log2_code_generated='yes'}
diff --git a/config/linux-gnulibc1 b/config/linux-gnulibc1
index c18c02d..465bfed 100644
--- a/config/linux-gnulibc1
+++ b/config/linux-gnulibc1
@@ -38,6 +38,9 @@ fi
 # Figure out PGI C compiler flags
 . $srcdir/config/pgi-flags
 
+# Figure out CCE C compiler flags
+. $srcdir/config/cce-flags
+
 # Figure out Intel C compiler flags
 . $srcdir/config/intel-flags
 
@@ -89,10 +92,13 @@ else
     esac
 fi
 
-# Figure out PGI F90 compiler flags
+# Figure out PGI FC compiler flags
 . $srcdir/config/pgi-fflags
 
-# Figure out Intel F90 compiler flags
+# Figure out CCE FC compiler flags
+. $srcdir/config/cce-fflags
+
+# Figure out Intel FC compiler flags
 . $srcdir/config/intel-fflags
 
 case $FC_BASENAME in
@@ -125,6 +131,10 @@ if test -z "$CXX"; then
 fi
 
 # compiler version strings
+
+# check if the compiler_version_info is already set
+if test -z "$cc_version_info"; then
+
 case $CC in
     # whatever matches *pgcc* will also match *gcc*, so this one must come first
     *pgcc*)
@@ -153,7 +163,11 @@ case $CC in
         ;;
 esac
 
+fi
+
 # get fortran version info
+# check if the compiler_version_info is already set
+if test -z "$fc_version_info"; then
 case $FC in
     *gfortran*)
         fc_version_info=`$FC $FCFLAGS $H5_FCFLAGS --version 2>&1 |\
@@ -199,9 +213,11 @@ case $FC in
         echo "No match to get fc_version_info for $FC"
         ;;
 esac
-
+fi
 
 # get c++ version info
+# check if the compiler_version_info is already set
+if test -z "$cxx_version_info"; then
 case $CXX in
     *g++*)
         cxx_version_info=`$CXX $CXXFLAGS $H5_CXXFLAGS --version 2>&1 |\
@@ -226,4 +242,4 @@ case $CXX in
         echo "No match to get cxx_version_info for $CXX"
         ;;
 esac
-
+fi
diff --git a/config/lt_vers.am b/config/lt_vers.am
index 6bba170..433a52d 100644
--- a/config/lt_vers.am
+++ b/config/lt_vers.am
@@ -18,8 +18,8 @@
 # See libtool versioning documentation online.
 # 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_INTERFACE = 10
+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 cedf33d..773c6c5 100755
--- a/configure
+++ b/configure
@@ -1,7 +1,7 @@
 #! /bin/sh
-# From configure.ac Id: configure.ac 25753 2014-10-29 23:01:13Z acheng .
+# From configure.ac Id: configure.ac 26957 2015-04-28 21:36:33Z epourmal .
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for HDF5 1.8.14.
+# Generated by GNU Autoconf 2.69 for HDF5 1.8.15.
 #
 # 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.14'
-PACKAGE_STRING='HDF5 1.8.14'
+PACKAGE_VERSION='1.8.15'
+PACKAGE_STRING='HDF5 1.8.15'
 PACKAGE_BUGREPORT='help at hdfgroup.org'
 PACKAGE_URL=''
 
@@ -640,7 +640,6 @@ LTLIBOBJS
 LIBOBJS
 HAVE_SHARED_CONDITIONAL_FALSE
 HAVE_SHARED_CONDITIONAL_TRUE
-SETX
 SEARCH
 BUILD_HDF5_HL_CONDITIONAL_FALSE
 BUILD_HDF5_HL_CONDITIONAL_TRUE
@@ -655,9 +654,6 @@ DEFAULT_API_VERSION
 DEPRECATED_SYMBOLS
 BUILD_ALL_CONDITIONAL_FALSE
 BUILD_ALL_CONDITIONAL_TRUE
-HL_FOR
-HL
-DYNAMIC_DIRS
 ROOT
 CXX_VERSION
 FC_VERSION
@@ -670,18 +666,12 @@ CONFIG_DATE
 H5_VERSION
 DIRECT_VFD_CONDITIONAL_FALSE
 DIRECT_VFD_CONDITIONAL_TRUE
-USE_FILTER_SCALEOFFSET
-USE_FILTER_NBIT
-USE_FILTER_FLETCHER32
-USE_FILTER_SHUFFLE
-FILTERS
 ADD_PARALLEL_FILES
 USINGMEMCHECKER
 CLEARFILEBUF
 INSTRUMENT_LIBRARY
 TRACE_API
 DEBUG_PKG
-H5_LONE_COLON
 HAVE_PTHREAD
 BUILD_SHARED_SZIP_CONDITIONAL_FALSE
 BUILD_SHARED_SZIP_CONDITIONAL_TRUE
@@ -701,6 +691,8 @@ DSYMUTIL
 MANIFEST_TOOL
 RANLIB
 ac_ct_AR
+DLLTOOL
+OBJDUMP
 LN_S
 NM
 ac_ct_DUMPBIN
@@ -711,12 +703,6 @@ EGREP
 GREP
 SED
 LIBTOOL
-OBJDUMP
-DLLTOOL
-AS
-CXX_SHARED_CONDITIONAL_FALSE
-CXX_SHARED_CONDITIONAL_TRUE
-H5_CXX_SHARED
 FORTRAN_SHARED_CONDITIONAL_FALSE
 FORTRAN_SHARED_CONDITIONAL_TRUE
 H5_FORTRAN_SHARED
@@ -728,6 +714,8 @@ TIME
 TR
 AR
 PERL
+HL_FOR
+HL
 CXXCPP
 am__fastdepCXX_FALSE
 am__fastdepCXX_TRUE
@@ -787,7 +775,6 @@ DIRECT_VFD
 HAVE_DMALLOC
 CODESTACK
 INSTRUMENT
-LARGEFILE
 HDF5_HL
 CXX
 HDF_CXX
@@ -895,6 +882,7 @@ enable_unsupported
 enable_fortran
 enable_fortran2003
 enable_cxx
+enable_hl
 enable_shared
 enable_static
 with_pic
@@ -905,8 +893,6 @@ enable_libtool_lock
 enable_static_exec
 enable_sharedlib_rpath
 enable_production
-enable_largefile
-enable_linux_lfs
 with_fnord
 with_dmalloc
 with_zlib
@@ -922,13 +908,10 @@ enable_clear_file_buffers
 enable_using_memchecker
 enable_parallel
 with_mpe
-enable_filters
-with_default_vfd
 enable_direct_vfd
 with_default_plugindir
 enable_dconv_exception
 enable_dconv_accuracy
-enable_hl
 enable_build_all
 enable_deprecated_symbols
 with_default_api_version
@@ -1490,7 +1473,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.14 to adapt to many kinds of systems.
+\`configure' configures HDF5 1.8.15 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1560,7 +1543,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of HDF5 1.8.14:";;
+     short | recursive ) echo "Configuration of HDF5 1.8.15:";;
    esac
   cat <<\_ACEOF
 
@@ -1578,10 +1561,11 @@ Optional Features:
   --disable-dependency-tracking
                           speeds up one-time build
   --enable-unsupported    Allow unsupported combinations of configure options
-  --enable-fortran        Compile the Fortran 77/90/95 interface [default=no]
+  --enable-fortran        Compile the Fortran 90/95 interface [default=no]
   --enable-fortran2003    Compile the Fortran 2003 interface, must also
                           specify --enable-fortran [default=no]
   --enable-cxx            Compile the C++ interface [default=no]
+  --enable-hl             Enable the high level library [default=yes]
   --enable-shared[=PKGS]  build shared libraries [default=yes]
   --enable-static[=PKGS]  build static libraries [default=yes]
   --enable-fast-install[=PKGS]
@@ -1592,10 +1576,6 @@ Optional Features:
   --disable-sharedlib-rpath
                           Disable use of the '=Wl,-rpath' linker option
   --enable-production     Determines how to run the compiler.
-  --disable-largefile     omit support for large files
-  --disable-linux-lfs     Disable support for large (64-bit) files on Linux.
-                          This option is deprecated in favor of
-                          --disable-largefile.
   --enable-threadsafe     Enable thread-safe capability
   --enable-debug=all      Turn on debugging in all packages. One may also
                           specify a comma-separated list of package names
@@ -1620,17 +1600,14 @@ 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-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.
-  --enable-direct-vfd     Build the Direct I/O Virtual File Driver
-                          [default=yes]
+  --enable-direct-vfd     Build the direct I/O virtual file driver (VFD). This
+                          is based on the POSIX (sec2) VFD and requires the
+                          open() call to take the O_DIRECT flag. [default=no]
   --enable-dconv-exception
                           if exception handling functions is checked during
                           data conversions [default=yes]
   --enable-dconv-accuracy if data accuracy is guaranteed during data
                           conversions [default=yes]
-  --enable-hl             Enable the high level library [default=yes]
   --enable-build-all      Build helper programs that only developers should
                           need [default=no]
   --enable-deprecated-symbols
@@ -1666,8 +1643,6 @@ Optional Packages:
   --with-pthread=DIR      Specify alternative path to Pthreads library when
                           thread-safe capability is built
   --with-mpe=DIR          Use MPE instrumentation [default=no]
-  --with-default-vfd=driver
-                          Specify default file driver [default=sec2]
   --with-default-plugindir=location
                           Specify default location for plugins
                           [default="/usr/local/hdf5/lib/plugin"]
@@ -1756,7 +1731,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-HDF5 configure 1.8.14
+HDF5 configure 1.8.15
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1892,13 +1867,13 @@ fi
 
 } # ac_fn_c_try_link
 
-# ac_fn_fc_try_run LINENO
-# -----------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
-# that executables *can* be run.
-ac_fn_fc_try_run ()
+# ac_fn_fc_try_link LINENO
+# ------------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded.
+ac_fn_fc_try_link ()
 {
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  rm -f conftest.$ac_objext conftest$ac_exeext
   if { { ac_try="$ac_link"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
@@ -1906,33 +1881,37 @@ case "(($ac_try" in
 esac
 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
 $as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
-  { { case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_try") 2>&5
+  (eval "$ac_link") 2>conftest.err
   ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }; then :
+  test $ac_status = 0; } && {
+	 test -z "$ac_fc_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 test -x conftest$ac_exeext
+       }; then :
   ac_retval=0
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-       $as_echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_retval=$ac_status
+	ac_retval=1
 fi
+  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+  # interfere with the next link command; also delete a directory that is
+  # left behind by Apple's compiler.  We do this before executing the actions.
   rm -rf conftest.dSYM conftest_ipa8_conftest.oo
   eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   as_fn_set_status $ac_retval
 
-} # ac_fn_fc_try_run
+} # ac_fn_fc_try_link
 
 # ac_fn_cxx_try_compile LINENO
 # ----------------------------
@@ -2009,13 +1988,13 @@ fi
 
 } # ac_fn_cxx_try_cpp
 
-# ac_fn_cxx_try_run LINENO
-# ------------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
-# that executables *can* be run.
-ac_fn_cxx_try_run ()
+# ac_fn_cxx_try_link LINENO
+# -------------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded.
+ac_fn_cxx_try_link ()
 {
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  rm -f conftest.$ac_objext conftest$ac_exeext
   if { { ac_try="$ac_link"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
@@ -2023,33 +2002,37 @@ case "(($ac_try" in
 esac
 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
 $as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
-  { { case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_try") 2>&5
+  (eval "$ac_link") 2>conftest.err
   ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }; then :
+  test $ac_status = 0; } && {
+	 test -z "$ac_cxx_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 test -x conftest$ac_exeext
+       }; then :
   ac_retval=0
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-       $as_echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_retval=$ac_status
+	ac_retval=1
 fi
+  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+  # interfere with the next link command; also delete a directory that is
+  # left behind by Apple's compiler.  We do this before executing the actions.
   rm -rf conftest.dSYM conftest_ipa8_conftest.oo
   eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   as_fn_set_status $ac_retval
 
-} # ac_fn_cxx_try_run
+} # ac_fn_cxx_try_link
 
 # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
 # -------------------------------------------------------
@@ -2236,98 +2219,6 @@ $as_echo "$ac_res" >&6; }
 
 } # ac_fn_c_check_func
 
-# ac_fn_cxx_try_link LINENO
-# -------------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded.
-ac_fn_cxx_try_link ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  rm -f conftest.$ac_objext conftest$ac_exeext
-  if { { ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && {
-	 test -z "$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 test -x conftest$ac_exeext
-       }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_retval=1
-fi
-  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
-  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
-  # interfere with the next link command; also delete a directory that is
-  # left behind by Apple's compiler.  We do this before executing the actions.
-  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_cxx_try_link
-
-# ac_fn_fc_try_link LINENO
-# ------------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded.
-ac_fn_fc_try_link ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  rm -f conftest.$ac_objext conftest$ac_exeext
-  if { { ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && {
-	 test -z "$ac_fc_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 test -x conftest$ac_exeext
-       }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_retval=1
-fi
-  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
-  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
-  # interfere with the next link command; also delete a directory that is
-  # left behind by Apple's compiler.  We do this before executing the actions.
-  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_fc_try_link
-
 # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
 # -------------------------------------------------------
 # Tests whether HEADER exists, giving a warning if it cannot be compiled using
@@ -2773,84 +2664,11 @@ $as_echo "$ac_res" >&6; }
   eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
 
 } # ac_fn_c_check_decl
-
-# ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES
-# ----------------------------------------------------
-# Tries to find if the field MEMBER exists in type AGGR, after including
-# INCLUDES, setting cache variable VAR accordingly.
-ac_fn_c_check_member ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5
-$as_echo_n "checking for $2.$3... " >&6; }
-if eval \${$4+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$5
-#ifdef FC_DUMMY_MAIN
-#ifndef FC_DUMMY_MAIN_EQ_F77
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int FC_DUMMY_MAIN() { return 1; }
-#endif
-#endif
-int
-main ()
-{
-static $2 ac_aggr;
-if (ac_aggr.$3)
-return 0;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  eval "$4=yes"
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$5
-#ifdef FC_DUMMY_MAIN
-#ifndef FC_DUMMY_MAIN_EQ_F77
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int FC_DUMMY_MAIN() { return 1; }
-#endif
-#endif
-int
-main ()
-{
-static $2 ac_aggr;
-if (sizeof ac_aggr.$3)
-return 0;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  eval "$4=yes"
-else
-  eval "$4=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$4
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_member
 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.14, which was
+It was created by HDF5 $as_me 1.8.15, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3721,7 +3539,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='hdf5'
- VERSION='1.8.14'
+ VERSION='1.8.15'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -4002,17 +3820,12 @@ case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
 
 
 
-## Make sure flags are set to something (otherwise macros may set them later).
+## Make sure flags are initialized.
 AM_CFLAGS="${AM_CFLAGS}"
 AM_CXXFLAGS="${AM_CXXFLAGS}"
 AM_FCFLAGS="${AM_FCFLAGS}"
 AM_CPPFLAGS="${AM_CPPFLAGS}"
-# 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
+AM_LDFLAGS="${AM_LDFLAGS}"
 CFLAGS="${CFLAGS}"
 CXXFLAGS="${CXXFLAGS}"
 FCFLAGS="${FCFLAGS}"
@@ -4028,12 +3841,6 @@ saved_user_FCFLAGS="$FCFLAGS"
 saved_user_LDFLAGS="$LDFLAGS"
 saved_user_CPPFLAGS="$CPPFLAGS"
 
-## Different compilers may need default libraries. They are specified in
-## the config/* files, so we put this statement here so that it'll be
-## set by the code which follows...
-##
-DEFAULT_LIBS=""
-
 ## Support F9X variable to define Fortran compiler if FC variable is
 ## not used.  This should be deprecated in the future.
 if test "x" = "x$FC"; then
@@ -4059,7 +3866,6 @@ $as_echo "done" >&6; }
 ## HDF_CXX: whether C++ is enabled. Default no.
 ## CXX: C++ compiler.
 ## HDF5_HL: whether high-level library is enabled. Default is yes.
-## LARGEFILE: whether largefile support is enabled. Default yes.
 ## INSTRUMENT: whether INSTRUMENT is enabled. No default set here.
 ## CODESTACK: whether CODESTACK is enabled. Default no.
 ## HAVE_DMALLOC: whether system has dmalloc support. Default no.
@@ -4080,7 +3886,6 @@ $as_echo "done" >&6; }
  HDF_CXX=no
  HDF_CXX=no
  HDF5_HL=yes
- LARGEFILE=yes
 
  CODESTACK=no
  HAVE_DMALLOC=no
@@ -4094,15 +3899,9 @@ $as_echo "done" >&6; }
 ## ----------------------------------------------------------------------
 ## Some platforms have broken basename, and/or xargs programs. Check
 ## that it actually does what it's supposed to do. Catch this early
-## since configure relies upon them heavily and there's no use continuing
-## if it's broken.
+## since configure and scripts relies upon them heavily and there's
+## no use continuing if it's broken.
 ##
-
-## Avoid depending upon Character Ranges.
-## These are defined by autoconf.
-## as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-## as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if basename works" >&5
 $as_echo_n "checking if basename works... " >&6; }
 BASENAME_TEST="`basename /foo/bar/baz/qux/basename_works`"
@@ -4113,6 +3912,7 @@ else
 $as_echo "yes" >&6; }
 fi
 
+## xargs basename used in configure to get the CC_BASENAME value
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if xargs works" >&5
 $as_echo_n "checking if xargs works... " >&6; }
 XARGS_TEST="`echo /foo/bar/baz/qux/xargs_works | xargs basename`"
@@ -4168,12 +3968,6 @@ case $host_os in
   freebsd*)
     host_os_novers=freebsd
     ;;
-  irix5.*)
-    host_os_novers=irix5.x
-    ;;
-  irix6.*)
-    host_os_novers=irix6.x
-    ;;
   osf4.*)
     host_os_novers=osf4.x
     ;;
@@ -5362,14 +5156,13 @@ if test "X$HDF_FORTRAN2003" = "Xyes" && test "X$HDF_FORTRAN" = "Xno"; then
   echo "no"
   as_fn_error $? "--enable-fortran must be used with --enable-fortran2003" "$LINENO" 5
 else
-  echo "yes"
+  if test "X$HDF_FORTRAN2003" = "Xyes" && test "X$HDF_FORTRAN" = "Xyes"; then
+    echo "yes"
+  else
+    echo "no"
+  fi
 fi
 
-HAVE_SIZEOF="no"
-HAVE_C_SIZEOF="no"
-HAVE_STORAGE_SIZE="no"
-FORTRAN_DEFAULT_REALisDBLE="no"
-
 if test "X$HDF_FORTRAN" = "Xyes"; then
 
    HDF_FORTRAN=yes
@@ -5378,12 +5171,6 @@ if test "X$HDF_FORTRAN" = "Xyes"; then
   HDF5_INTERFACES="$HDF5_INTERFACES fortran"
 
   ## --------------------------------------------------------------------
-  ## Default for FORTRAN 2003 compliant compilers
-  ##
-  HAVE_FORTRAN_2003="no"
-  HAVE_F2003_REQUIREMENTS="no"
-
-  ## --------------------------------------------------------------------
   ## HDF5 integer variables for the H5fortran_types.f90 file.
   ##
 
@@ -5669,14 +5456,14 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
   ## --------------------------------------------------------------------
-  ## Check for a Fortran 9X compiler and how to include modules.
+  ## Check for a Fortran compiler and how to include modules.
   ##
   ac_ext=${ac_fc_srcext-f}
 ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5'
 ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_fc_compiler_gnu
 if test -n "$ac_tool_prefix"; then
-  for ac_prog in f90 pgf90 slf90 f95 g95 xlf95 efc ifort ftn
+  for ac_prog in gfortran ifort pgf90 pathf90 pathf95 xlf90 xlf95 xlf2003 f90 epcf90 f95 fort lf95 g95 ifc efc gfc
   do
     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
@@ -5720,7 +5507,7 @@ fi
 fi
 if test -z "$FC"; then
   ac_ct_FC=$FC
-  for ac_prog in f90 pgf90 slf90 f95 g95 xlf95 efc ifort ftn
+  for ac_prog in gfortran ifort pgf90 pathf90 pathf95 xlf90 xlf95 xlf2003 f90 epcf90 f95 fort lf95 g95 ifc efc gfc
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
@@ -5974,11 +5761,6 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
 
-  ## It seems that libtool (as of Libtool 1.5.14) is trying to
-  ## configure itself for Fortran 77.
-  ## Tell it that our F77 compiler is $FC (actually a F9X compiler)
-  F77=$FC
-
   ## Change to the Fortran 90 language
   ac_ext=${ac_fc_srcext-f}
 ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5'
@@ -6672,21 +6454,11 @@ ac_compiler_gnu=$ac_cv_fc_compiler_gnu
 
 
   ## --------------------------------------------------------------------
-  ## See if the compiler will support the "-I." option
-  ##
-
-
-  ## --------------------------------------------------------------------
   ## See if the fortran compiler supports the intrinsic function "SIZEOF"
 
+  HAVE_SIZEOF_FORTRAN="no"
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if Fortran compiler supports intrinsic SIZEOF" >&5
 $as_echo_n "checking if Fortran compiler supports intrinsic 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
@@ -6694,29 +6466,23 @@ else
    END PROGRAM
 
 _ACEOF
-if ac_fn_fc_try_run "$LINENO"; then :
+if ac_fn_fc_try_link "$LINENO"; then :
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
-     	HAVE_SIZEOF="yes"
+     	HAVE_SIZEOF_FORTRAN="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
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 
 
   ## See if the fortran compiler supports the intrinsic function "C_SIZEOF"
 
+  HAVE_C_SIZEOF_FORTRAN="no"
   { $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
@@ -6727,29 +6493,23 @@ else
    END PROGRAM
 
 _ACEOF
-if ac_fn_fc_try_run "$LINENO"; then :
+if ac_fn_fc_try_link "$LINENO"; then :
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
-     	HAVE_C_SIZEOF="yes"
+     	HAVE_C_SIZEOF_FORTRAN="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
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 
 
   ## See if the fortran compiler supports the intrinsic function "STORAGE_SIZE"
 
+  HAVE_STORAGE_SIZE_FORTRAN="no"
   { $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
@@ -6759,31 +6519,26 @@ else
    END PROGRAM
 
 _ACEOF
-if ac_fn_fc_try_run "$LINENO"; then :
+if ac_fn_fc_try_link "$LINENO"; then :
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
-     	HAVE_STORAGE_SIZE="yes"
+     	HAVE_STORAGE_SIZE_FORTRAN="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
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+
 
 
   ## Check to see if -r8 was specified to determine if we need to
   ## compile the DOUBLE PRECISION interfaces.
 
+  FORTRAN_DEFAULT_REALisDBLE="no"
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if Fortran default REAL is DOUBLE PRECISION" >&5
 $as_echo_n "checking if Fortran default REAL is DOUBLE PRECISION... " >&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
 
      MODULE type_mod
@@ -6808,17 +6563,15 @@ else
      END PROGRAM main
 
 _ACEOF
-if ac_fn_fc_try_run "$LINENO"; then :
+if ac_fn_fc_try_compile "$LINENO"; then :
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
-        FORTRAN_DEFAULT_REALisDBLE="yes"
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+            FORTRAN_DEFAULT_REALisDBLE="yes"
 fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 
   if test "X$HDF_FORTRAN2003" = "Xyes"; then
@@ -6826,26 +6579,26 @@ fi
     ## Checking if the compiler supports the required Fortran 2003 features and
     ## disable Fortran 2003 if it does not.
 
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking if Fortran compiler version compatible with Fortran 2003 HDF" >&5
+   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if Fortran compiler version compatible with Fortran 2003 HDF" >&5
 $as_echo_n "checking if Fortran compiler version compatible with Fortran 2003 HDF... " >&6; }
     HAVE_FORTRAN_2003="no"
-
+    HAVE_F2003_REQUIREMENTS="no"
     cat > conftest.$ac_ext <<_ACEOF
       program main
 
 
-	USE iso_c_binding
-	IMPLICIT NONE
-	TYPE(C_PTR) :: ptr
-	TYPE(C_FUNPTR) :: funptr
-	CHARACTER(LEN=80, KIND=c_char), TARGET :: ichr
+        USE iso_c_binding
+        IMPLICIT NONE
+        TYPE(C_PTR) :: ptr
+        TYPE(C_FUNPTR) :: funptr
+        CHARACTER(LEN=80, KIND=c_char), TARGET :: ichr
 
-	ptr = C_LOC(ichr(1:1))
+        ptr = C_LOC(ichr(1:1))
 
 
       end
 _ACEOF
-if ac_fn_fc_try_compile "$LINENO"; then :
+if ac_fn_fc_try_link "$LINENO"; then :
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
         HAVE_F2003_REQUIREMENTS=yes
@@ -6853,12 +6606,13 @@ else
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+
+
     if test "X$HAVE_F2003_REQUIREMENTS" = "Xno"; then
-    ##  echo $HAVE_FORTRAN_2003
       as_fn_error $? "Fortran compiler lacks required Fortran 2003 features; unsupported Fortran 2003 compiler, remove --enable-fortran2003" "$LINENO" 5
     else
-    ##  echo $HAVE_FORTRAN_2003
       HAVE_FORTRAN_2003="yes"
     fi
   fi
@@ -6874,7 +6628,7 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
- if test "X$HAVE_SIZEOF" = "Xyes"; then
+ if test "X$HAVE_SIZEOF_FORTRAN" = "Xyes"; then
   FORTRAN_HAVE_SIZEOF_TRUE=
   FORTRAN_HAVE_SIZEOF_FALSE='#'
 else
@@ -6882,7 +6636,7 @@ else
   FORTRAN_HAVE_SIZEOF_FALSE=
 fi
 
- if test "X$HAVE_C_SIZEOF" = "Xyes"; then
+ if test "X$HAVE_C_SIZEOF_FORTRAN" = "Xyes"; then
   FORTRAN_HAVE_C_SIZEOF_TRUE=
   FORTRAN_HAVE_C_SIZEOF_FALSE='#'
 else
@@ -6890,7 +6644,7 @@ else
   FORTRAN_HAVE_C_SIZEOF_FALSE=
 fi
 
- if test "X$HAVE_STORAGE_SIZE" = "Xyes"; then
+ if test "X$HAVE_STORAGE_SIZE_FORTRAN" = "Xyes"; then
   FORTRAN_HAVE_STORAGE_SIZE_TRUE=
   FORTRAN_HAVE_STORAGE_SIZE_FALSE='#'
 else
@@ -6915,8 +6669,6 @@ else
 fi
 
 
-
-
 ## ----------------------------------------------------------------------
 ## Check if they would like the C++ interface compiled
 ##
@@ -7495,15 +7247,11 @@ ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ex
 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
 
 
+  # Checking if C++ needs old style header files in includes
+
+
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CXX needs old style header files in includes" >&5
 $as_echo_n "checking if $CXX needs old style header files in includes... " >&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 confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -7512,30 +7260,23 @@ else
 int main(void) { return 0; }
 
 _ACEOF
-if ac_fn_cxx_try_run "$LINENO"; then :
-
-    echo no
-
+if ac_fn_cxx_try_link "$LINENO"; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 else
-
-    echo yes
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
     CXXFLAGS="${CXXFLAGS} -DOLD_HEADER_FILENAME"
     AM_CXXFLAGS="${AM_CXXFLAGS} -DOLD_HEADER_FILENAME"
-
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+
 
+  # Checking if C++ can handle namespaces
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CXX can handle namespaces" >&5
 $as_echo_n "checking if $CXX can handle namespaces... " >&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 confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -7550,91 +7291,20 @@ int main(void) {
 }
 
 _ACEOF
-if ac_fn_cxx_try_run "$LINENO"; then :
-
-     echo yes
-
+if ac_fn_cxx_try_link "$LINENO"; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 else
-
-     echo no
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
      CXXFLAGS="${CXXFLAGS} -DH5_NO_NAMESPACE"
      AM_CXXFLAGS="${AM_CXXFLAGS} -DH5_NO_NAMESPACE"
-
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CXX supports std" >&5
-$as_echo_n "checking if $CXX supports std... " >&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 confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <string>
-
-using namespace std;
-
-int main(void) {
-   string myString("testing namespace std");
-   return 0;
-}
-
-_ACEOF
-if ac_fn_cxx_try_run "$LINENO"; then :
-
-     echo yes
-
-else
-
-     echo no
-     CXXFLAGS="${CXXFLAGS} -DH5_NO_STD"
-     AM_CXXFLAGS="${AM_CXXFLAGS} -DH5_NO_STD"
-
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CXX supports bool types" >&5
-$as_echo_n "checking if $CXX supports bool types... " >&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 confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int main(void) {
-   bool flag;
-   return 0;
-}
-
-_ACEOF
-if ac_fn_cxx_try_run "$LINENO"; then :
-
-     echo yes
-
-else
-
-     echo no
-     CXXFLAGS="${CXXFLAGS} -DBOOL_NOTDEFINED"
-     AM_CXXFLAGS="${AM_CXXFLAGS} -DBOOL_NOTDEFINED"
-
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
+  # Checking if C++ has offsetof extension
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CXX has offsetof extension" >&5
 $as_echo_n "checking if $CXX has offsetof extension... " >&6; }
@@ -7671,26 +7341,24 @@ main ()
   return 0;
 }
 _ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
+if ac_fn_cxx_try_link "$LINENO"; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 
 $as_echo "#define CXX_HAVE_OFFSETOF 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
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+
+
+  # if C++ can handle static cast
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CXX can handle static cast" >&5
 $as_echo_n "checking if $CXX can handle static cast... " >&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 confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -7703,23 +7371,22 @@ int main(void) {
 }
 
 _ACEOF
-if ac_fn_cxx_try_run "$LINENO"; then :
-
-    echo yes
-
+if ac_fn_cxx_try_link "$LINENO"; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 else
-
-    echo no
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
     CXXFLAGS="${CXXFLAGS} -DNO_STATIC_CAST"
     AM_CXXFLAGS="${AM_CXXFLAGS} -DNO_STATIC_CAST"
-
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+
 
 else
-  echo "no"
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
   CXX="no"
 fi
 
@@ -7731,6 +7398,41 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
+
+## ----------------------------------------------------------------------
+## Check if they would like the High Level library  compiled
+##
+
+ HL=""
+## name of fortran folder inside "hl", if FORTRAN compile is requested
+ HL_FOR=""
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if high level library is enabled" >&5
+$as_echo_n "checking if high level library is enabled... " >&6; }
+# Check whether --enable-hl was given.
+if test "${enable_hl+set}" = set; then :
+  enableval=$enable_hl; HDF5_HL=$enableval
+else
+  HDF5_HL=yes
+fi
+
+
+if test "X$HDF5_HL" = "Xyes"; then
+ echo "yes"
+ HL="hl"
+
+$as_echo "#define INCLUDE_HL 1" >>confdefs.h
+
+
+  ## If Fortran's default real is double precision 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
+
+
 ## ----------------------------------------------------------------------
 ## Check if they have Perl installed on their system. We only need Perl
 ## if they're using a GNU compiler.
@@ -7781,7 +7483,6 @@ done
 
 fi
 
-
 ## ----------------------------------------------------------------------
 ## Check which archiving tool to use. This needs to be done before
 ## the AM_PROG_LIBTOOL macro.
@@ -7873,7 +7574,7 @@ fi
 
 
 ## ----------------------------------------------------------------------
-## Check that the tr utility is working properly.
+## Set up ${TR} which is used to process DEBUG_PKG.
 
 # Extract the first word of "tr", so it can be a program name with args.
 set dummy tr; ac_word=$2
@@ -7916,16 +7617,16 @@ fi
 
 
 
-TR_TEST=`echo Test | ${TR} ${as_cr_letters}"," ${as_cr_LETTERS}" "`
-if test "X${TR_TEST}" != "XTEST"; then
-  as_fn_error $? "tr program doesn't work" "$LINENO" 5
-fi
-
 
 ## ----------------------------------------------------------------------
 ## Check that time can be used with srcdir.  This is okay on most systems,
 ## but seems to cause problems on Cygwin.
 ## The solution on Cygwin is not to record execution time for tests.
+##
+## Note: This is still true as of Cygwin 1.7.32 (Aug 2014) on both 32-
+## and 64-bit platforms. Given how long this has been true, it seems
+## unlikely to change, but we should probably re-test this periodically.
+
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if srcdir= and time commands work together" >&5
 $as_echo_n "checking if srcdir= and time commands work together... " >&6; }
 
@@ -7950,16 +7651,14 @@ fi
 ##			   a parallel library even if configure wasn't
 ##			   able to find some header file or library that
 ##			   might be required. This is defined if the
-##			   compiler looks like a parallel compiler (e.g.,
-##			   mpicc or mpcc) or if the user explicitly states
+##			   user explicitly states
 ##			   that a parallel library is being built by supplying
 ##			   the `--enable-parallel' configure switch.
 ##
 ##    PARALLEL		-- This variable is set to a non-null value if
-##			   configure thinks we're compiling a parallel
-##			   version of the library.
+##			   we're building a parallel version of the library.
 ##
-##    RUNSERIAL	-- This is a command which will be prepended to
+##    RUNSERIAL	        -- This is a command which will be prepended to
 ##			   the executable name to run the executable using
 ##			   a single process. For serial versions of the
 ##			   library this will normally be empty. For parallel
@@ -7985,146 +7684,6 @@ fi
 
 
 ## ----------------------------------------------------------------------
-## If the compiler is obviously a parallel compiler then we're building
-## a parallel version of hdf5 and should define HAVE_PARALLEL. Furthermore,
-## the name of the compiler might tell us how to run the resulting
-## executable. For `mpicc' the executable should be run with `mpiexec' from
-## the same directory as mpicc if it exists.
-##
-case "$CC_BASENAME" in
-  mpicc)
-    ## The mpich compiler. Use mpiexec from the same directory if it
-    ## exists.
-    PARALLEL=mpicc
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mpiexec" >&5
-$as_echo_n "checking for mpiexec... " >&6; }
-
-    ## Find the path where mpicc is located.
-    cmd="`echo $CC | cut -f1 -d' '`"
-    if (echo $cmd | grep / >/dev/null); then
-      path="`echo $cmd | sed 's/\(.*\)\/.*$/\1/'`"
-    else
-      for path in `echo $PATH | ${TR} ":" " "`; do
-        if test -x $path/$cmd; then
-          break
-        fi
-      done
-    fi
-
-    ## Is there an mpiexec at that path?
-    if test -x $path/mpiexec; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: $path/mpiexec" >&5
-$as_echo "$path/mpiexec" >&6; }
-      RUNSERIAL="${RUNSERIAL:-none}"
-
-      if test -z "$RUNPARALLEL"; then
-        RUNPARALLEL="$path/mpiexec -n \$\${NPROCS:=6}"
-      fi
-    else
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
-$as_echo "none" >&6; }
-    fi
-    ;;
-
-  mpcc|mpcc_r)
-    ## The IBM compiler
-    PARALLEL="$CC_BASENAME"
-    ;;
-
-  *)
-    ## Probably not a parallel compiler, but if `--enable-parallel'
-    ## is defined below then we're still building a parallel hdf5.
-    ;;
-esac
-
-## ----------------------------------------------------------------------
-## If the Fortran compiler is obviously a parallel compiler then we're
-## building a parallel version of hdf5 and should define HAVE_PARALLEL.
-## Furthermore, the name of the compiler might tell us how to run the
-## resulting executable. For `mpif90' the executable should be run with
-## `mpiexec' from the same directory as mpif90 if it exists.
-##
-
-if test "X$HDF_FORTRAN" = "Xyes" ; then
-  ## Change to the Fortran 90 language
-  ac_ext=${ac_fc_srcext-f}
-ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5'
-ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_fc_compiler_gnu
-
-
-  case "$FC" in
-    *mpif90*)
-      ## The Fortran mpich compiler. Use mpiexec from the same directory
-      ## if it exists.
-      PARALLEL=mpif90
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mpiexec" >&5
-$as_echo_n "checking for mpiexec... " >&6; }
-
-      ## Find the path where mpif90 is located.
-      cmd=`echo $FC |cut -f1 -d' '`
-      if (echo $cmd |grep / >/dev/null); then
-        path="`echo $cmd |sed 's/\(.*\)\/.*$/\1/'`"
-      else
-        for path in `echo $PATH | ${TR} ":" " "`; do
-          if test -x $path/$cmd; then
-            break;
-          fi
-        done
-      fi
-
-      ## Is there an mpiexec at that path?
-      if test -x $path/mpiexec; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: $path/mpiexec" >&5
-$as_echo "$path/mpiexec" >&6; }
-        RUNSERIAL="${RUNSERIAL:-none}"
-
-        if test -z "$RUNPARALLEL"; then
-          RUNPARALLEL="$path/mpiexec -n \$\${NPROCS:=6}"
-        fi
-      else
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
-$as_echo "none" >&6; }
-      fi
-      ;;
-
-    *mpxlf* | *mpxlf_r* | *mpxlf90* | *mpxlf90_r* | *mpxlf95* | *mpxlf95_r*)
-      ## The IBM compiler
-      PARALLEL="$FC"
-      ;;
-
-    *)
-      ## Probably not a parallel compiler, but if `--enable-parallel'
-      ## is defined below then we're still building a parallel hdf5.
-      ;;
-  esac
-
-  ## Change to the C language
-  ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-fi
-
-## -----------------------------------------------------------------------------
-## If shared libraries are being used with parallel, disable them, unless the
-## user explicity enables them via the '--enable-shared' option.
-
-if test "X${enable_shared}" = "X" -a "X${enable_parallel}" = "Xyes"; then
-    echo '    shared libraries disabled in parallel'
-    enable_shared="no"
-elif test "X${enable_shared}" = "Xyes" -a "X${enable_parallel}" = "Xyes"; then
-    echo '    shared libraries explicitly enabled by user'
-elif test "X${enable_shared}" = "X" -a "X${PARALLEL}" != "X"; then
-    echo '    shared libraries disabled when a parallel compiler is being used'
-    enable_shared="no"
-elif test "X${enable_shared}" = "Xyes" -a "X${PARALLEL}" != "X"; then
-    echo '    shared libraries explicitly enabled by user'
-fi
-
-## ----------------------------------------------------------------------
 ## Fortran libraries are not currently supported on Mac. Disable them.
 ## (this is overridable with --enable-unsupported).
 ##
@@ -8180,68 +7739,6 @@ fi
 
 
 ## ----------------------------------------------------------------------
-## Disable C++ shared libraries if +DD64 flag is detected.
-##
-
-H5_CXX_SHARED="no"
-if test "X${HDF_CXX}" = "Xyes" && test "X${enable_shared}" != "Xno"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if shared C++ libraries are supported" >&5
-$as_echo_n "checking if shared C++ libraries are supported... " >&6; }
-  H5_CXX_SHARED="yes"
-
-  ## Disable C++ shared libraries if DD64 flag is being used.
-
-  if (echo dummy ${CXX} ${CXXLD} ${CFLAGS} ${CXXFLAGS} ${LDFLAGS} | grep 'DD64') > /dev/null; then
-    H5_CXX_SHARED="no"
-    CHECK_WARN="Shared C++ libraries not currently supported with +DD64 flag."
-  fi
-
-  ## Report results of check(s)
-
-  if test "X${H5_CXX_SHARED}" = "Xno"; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $CHECK_WARN" >&5
-$as_echo "$as_me: WARNING: $CHECK_WARN" >&2;}
-    if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Disabling shared C++ libraries." >&5
-$as_echo "$as_me: WARNING: Disabling shared C++ libraries." >&2;}
-      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: To override this behavior, please use --enable-unsupported configure option." >&5
-$as_echo "$as_me: WARNING: To override this behavior, please use --enable-unsupported configure option." >&2;}
-      if test "X${enable_static}" = "Xno"; then
-        as_fn_error $? "both static and shared C++ libraries are disabled" "$LINENO" 5
-      fi
-    else
-      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Allowing unsupported C++ shared librares due to use of --enable-unsupported flag" >&5
-$as_echo "$as_me: WARNING: Allowing unsupported C++ shared librares due to use of --enable-unsupported flag" >&2;}
-    fi
-  else
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-  fi
-fi
-
- if test "X$H5_CXX_SHARED" = "Xyes"; then
-  CXX_SHARED_CONDITIONAL_TRUE=
-  CXX_SHARED_CONDITIONAL_FALSE='#'
-else
-  CXX_SHARED_CONDITIONAL_TRUE='#'
-  CXX_SHARED_CONDITIONAL_FALSE=
-fi
-
-
-## ----------------------------------------------------------------------
-## pgcc version 6.0x have optimization (-O, -O2 or -O3) problem.  Detect
-## these versions and add option "-Mx,28,0x8" to the compiler to avoid
-## the problem if optimization is enabled.
-##
-
-if (${CC-cc} -V 2>&1 | grep '^pgcc 6.0') > /dev/null && test "X$enable_production" = "Xyes"; then
-    echo 'adding compiler flag to avoid optimization problem in pgcc'
-    CC="${CC-cc} -Mx,28,0x8"
-fi
-
-## ----------------------------------------------------------------------
 ## Shared libraries are not currently supported under Cygwin, so configure
 ## disables them unless --enable-unsupported has been supplied by the user.
 
@@ -8259,316 +7756,13 @@ if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then
 fi
 
 ## ----------------------------------------------------------------------
-## Windows won't create DLLs without the following macro.
-##
-enable_win32_dll=yes
-
-case $host in
-*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
-  if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
-set dummy ${ac_tool_prefix}as; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_AS+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$AS"; then
-  ac_cv_prog_AS="$AS" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_AS="${ac_tool_prefix}as"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-AS=$ac_cv_prog_AS
-if test -n "$AS"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5
-$as_echo "$AS" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_AS"; then
-  ac_ct_AS=$AS
-  # Extract the first word of "as", so it can be a program name with args.
-set dummy as; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_AS+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_AS"; then
-  ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_AS="as"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_AS=$ac_cv_prog_ac_ct_AS
-if test -n "$ac_ct_AS"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5
-$as_echo "$ac_ct_AS" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_AS" = x; then
-    AS="false"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    AS=$ac_ct_AS
-  fi
-else
-  AS="$ac_cv_prog_AS"
-fi
-
-  if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
-set dummy ${ac_tool_prefix}dlltool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_DLLTOOL+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$DLLTOOL"; then
-  ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-DLLTOOL=$ac_cv_prog_DLLTOOL
-if test -n "$DLLTOOL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
-$as_echo "$DLLTOOL" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_DLLTOOL"; then
-  ac_ct_DLLTOOL=$DLLTOOL
-  # Extract the first word of "dlltool", so it can be a program name with args.
-set dummy dlltool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_DLLTOOL"; then
-  ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_DLLTOOL="dlltool"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
-if test -n "$ac_ct_DLLTOOL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
-$as_echo "$ac_ct_DLLTOOL" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_DLLTOOL" = x; then
-    DLLTOOL="false"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    DLLTOOL=$ac_ct_DLLTOOL
-  fi
-else
-  DLLTOOL="$ac_cv_prog_DLLTOOL"
-fi
-
-  if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
-set dummy ${ac_tool_prefix}objdump; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OBJDUMP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$OBJDUMP"; then
-  ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-OBJDUMP=$ac_cv_prog_OBJDUMP
-if test -n "$OBJDUMP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
-$as_echo "$OBJDUMP" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_OBJDUMP"; then
-  ac_ct_OBJDUMP=$OBJDUMP
-  # Extract the first word of "objdump", so it can be a program name with args.
-set dummy objdump; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_OBJDUMP"; then
-  ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_OBJDUMP="objdump"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
-if test -n "$ac_ct_OBJDUMP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
-$as_echo "$ac_ct_OBJDUMP" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_OBJDUMP" = x; then
-    OBJDUMP="false"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    OBJDUMP=$ac_ct_OBJDUMP
-  fi
-else
-  OBJDUMP="$ac_cv_prog_OBJDUMP"
-fi
-
-  ;;
-esac
-
-test -z "$AS" && AS=as
-
-
-
-
-
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-
-
-
-
-
-test -z "$OBJDUMP" && OBJDUMP=objdump
-
-
-
-
-
-
-
-
-## ----------------------------------------------------------------------
 ## Create libtool.  If shared/static libraries are going to be enabled
 ## or disabled, it should happen before these macros.
 
+
+## ----------------------------------------------------------------------
+## dlopen - This will use an improved version of libtool
+## win32-dll - This will build clean dlls on win32 platforms.
 case `pwd` in
   *\ * | *\	*)
     { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
@@ -9700,6 +8894,9 @@ test -z "$OBJDUMP" && OBJDUMP=objdump
 
 
 
+
+
+
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
 $as_echo_n "checking how to recognize dependent libraries... " >&6; }
 if ${lt_cv_deplibs_check_method+:} false; then :
@@ -10044,6 +9241,9 @@ test -z "$DLLTOOL" && DLLTOOL=dlltool
 
 
 
+
+
+
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
 $as_echo_n "checking how to associate runtime and link libraries... " >&6; }
 if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then :
@@ -12117,6 +11317,8 @@ enable_dlopen=yes
 
 
 
+  enable_win32_dll=no
+
 
             # Check whether --enable-shared was given.
 if test "${enable_shared+set}" = set; then :
@@ -22250,6 +21452,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
 
+
+
 ## ----------------------------------------------------------------------
 ## Check if we should install only statically linked executables.
 ##   This check needs to occur after libtool is initialized because
@@ -22329,84 +21533,6 @@ $as_echo "error" >&6; }
 esac
 
 ## ----------------------------------------------------------------------
-## Sometimes makes think the `.PATH:' appearing before the first rule
-## with an action should override the `all' default target. So we have
-## to decide what the proper syntax is.
-##
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how make searches directories" >&5
-$as_echo_n "checking how make searches directories... " >&6; }
-while true; do #for break
-  ## The most common method is `VPATH=DIR1 DIR2 ...'
-  cat >maketest <<EOF
-VPATH=$srcdir/config $srcdir/src $srcdir/bin
-.c.o:
-	cp $< H5.o
-
-foo: H5.o
-	rm -f H5.o
-	@echo works
-EOF
-
-  if (${MAKE-make} -f maketest foo) >/dev/null 2>&1; then
-    SEARCH_RULE='VPATH='
-    SEARCH_SEP=' '
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: VPATH=DIR1 DIR2 ..." >&5
-$as_echo "VPATH=DIR1 DIR2 ..." >&6; }
-    break
-  fi
-
-  ## The second most common method is like above except with the
-  ## directories separated by colons.
-  cat >maketest <<EOF
-VPATH=$srcdir/config:$srcdir/src:$srcdir/bin
-.c.o:
-	cp $< H5.o
-
-foo: H5.o
-	rm -f H5.o
-	@echo works
-EOF
-
-  if (${MAKE-make} -f maketest foo) >/dev/null 2>&1; then
-    SEARCH_RULE='VPATH='
-    SEARCH_SEP=':'
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: VPATH=DIR1:DIR2:..." >&5
-$as_echo "VPATH=DIR1:DIR2:..." >&6; }
-    break
-  fi
-
-  ## pmake uses the construct `.PATH: DIR1 DIR2
-  cat >maketest <<EOF
-.PATH: $srcdir/config $srcdir/src $srcdir/bin
-.c.o:
-	cp $< H5.o
-
-foo: H5.o
-	rm -f H5.o
-	@echo works
-EOF
-
-  if (MAKE= ${MAKE-make} -f maketest foo) >/dev/null 2>&1; then
-    SEARCH_RULE='.PATH: '
-    SEARCH_SEP=' '
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: .PATH: DIR1 DIR2 ..." >&5
-$as_echo ".PATH: DIR1 DIR2 ..." >&6; }
-    break
-  fi
-
-  ## No way for make to search directories
-  SEARCH_RULE='## SEARCH DISABLED: '
-  SEARCH_SEP=' '
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: it doesn't" >&5
-$as_echo "it doesn't" >&6; }
-  if test ! -f configure; then
-    as_fn_error $? "${MAKE-make} requires the build and source directories to be the same" "$LINENO" 5
-  fi
-  break
-done
-rm maketest
-
-## ----------------------------------------------------------------------
 ## pmake will throw an error if variables are undefined in a Makefile.
 ## These errors can be changed to warnings using the -V flag.
 ##
@@ -22706,7 +21832,6 @@ fi
 
 fi
 
-
 ## ----------------------------------------------------------------------
 ## Check for system header files.
 ##
@@ -22874,113 +21999,6 @@ $as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h
 fi
 
 
-## ----------------------------------------------------------------------
-## Check for these two functions before the time headers are checked
-## for, otherwise they are not detected correctly on Solaris (the
-## configure test will fail due to multiply-defined symbols).
-##
-for ac_func in difftime
-do :
-  ac_fn_c_check_func "$LINENO" "difftime" "ac_cv_func_difftime"
-if test "x$ac_cv_func_difftime" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DIFFTIME 1
-_ACEOF
-
-fi
-done
-
-for ac_func in gettimeofday
-do :
-  ac_fn_c_check_func "$LINENO" "gettimeofday" "ac_cv_func_gettimeofday"
-if test "x$ac_cv_func_gettimeofday" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_GETTIMEOFDAY 1
-_ACEOF
- have_gettime="yes"
-else
-  have_gettime="no"
-fi
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing clock_gettime" >&5
-$as_echo_n "checking for library containing clock_gettime... " >&6; }
-if ${ac_cv_search_clock_gettime+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char clock_gettime ();
-#ifdef FC_DUMMY_MAIN
-#ifndef FC_DUMMY_MAIN_EQ_F77
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int FC_DUMMY_MAIN() { return 1; }
-#endif
-#endif
-int
-main ()
-{
-return clock_gettime ();
-  ;
-  return 0;
-}
-_ACEOF
-for ac_lib in '' rt posix4; do
-  if test -z "$ac_lib"; then
-    ac_res="none required"
-  else
-    ac_res=-l$ac_lib
-    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
-  fi
-  if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_search_clock_gettime=$ac_res
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext
-  if ${ac_cv_search_clock_gettime+:} false; then :
-  break
-fi
-done
-if ${ac_cv_search_clock_gettime+:} false; then :
-
-else
-  ac_cv_search_clock_gettime=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_clock_gettime" >&5
-$as_echo "$ac_cv_search_clock_gettime" >&6; }
-ac_res=$ac_cv_search_clock_gettime
-if test "$ac_res" != no; then :
-  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
-fi
-
-for ac_func in clock_gettime
-do :
-  ac_fn_c_check_func "$LINENO" "clock_gettime" "ac_cv_func_clock_gettime"
-if test "x$ac_cv_func_clock_gettime" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_CLOCK_GETTIME 1
-_ACEOF
- have_clock_gettime="yes"
-else
-  have_clock_gettime="no"
-fi
-done
-
-
 ## Unix
 for ac_header in sys/resource.h sys/time.h unistd.h sys/ioctl.h sys/stat.h
 do :
@@ -23185,7 +22203,7 @@ fi
 done
 
     ;;
-  mips*-sgi*-irix*)
+  mips*-sgi*)
     ## The <sys/fpu.h> is needed on the SGI machines to turn off
     ## denormalized floating-point values going to zero.  We do *not*
     ## attempt to locate these files on other systems because there
@@ -23241,111 +22259,15 @@ $as_echo "no" >&6; }
 fi
 
 ## ----------------------------------------------------------------------
-## Test for Largefile support.
-##
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if configure should try to set up large file support" >&5
-$as_echo_n "checking if configure should try to set up large file support... " >&6; }
-
-# Check whether --enable-largefile was given.
-if test "${enable_largefile+set}" = set; then :
-  enableval=$enable_largefile;
-fi
-
-
-## The linux-lfs option is deprecated, but if it is used to disable
-## largefile support on linux and the largefile option is not specified,
-## then go ahead and disable large-file support.
-case "$host_cpu-$host_vendor-$host_os" in
-  *linux*)
-    # Check whether --enable-linux-lfs was given.
-if test "${enable_linux_lfs+set}" = set; then :
-  enableval=$enable_linux_lfs;
-fi
-
-
-    if test "$enable_linux_lfs" = no; then
-      if test "$enable_largefile" != yes; then
-        enable_largefile=no
-      fi
-    fi
-    ;;
-esac
-
-## If largefile support is enabled, then set up appropriate compiler options.
-if test "$enable_largefile" != no; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-
-  ## Check for needed compiler options. This check is pulled drectly
-  ## from autoconf's AC_SYS_LARGEFILE macro, as of Autoconf v2.65.
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5
-$as_echo_n "checking for special C compiler options needed for large files... " >&6; }
-if ${ac_cv_sys_largefile_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_sys_largefile_CC=no
-     if test "$GCC" != yes; then
-       ac_save_CC=$CC
-       while :; do
-         ## IRIX 6.2 and later do not support large files by default,
-         ## so use the C compiler's -n32 option if that helps.
-         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <sys/types.h>
- /* Check that off_t can represent 2**63 - 1 correctly.
-    We can't simply define LARGE_OFF_T to be 9223372036854775807,
-    since some C++ compilers masquerading as C compilers
-    incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
-  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
-		       && LARGE_OFF_T % 2147483647 == 1)
-		      ? 1 : -1];
-#ifdef FC_DUMMY_MAIN
-#ifndef FC_DUMMY_MAIN_EQ_F77
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int FC_DUMMY_MAIN() { return 1; }
-#endif
-#endif
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-         if ac_fn_c_try_compile "$LINENO"; then :
-  break
-fi
-rm -f core conftest.err conftest.$ac_objext
-         CC="$CC -n32"
-         if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_sys_largefile_CC=' -n32'; break
-fi
-rm -f core conftest.err conftest.$ac_objext
-         break
-       done
-       CC=$ac_save_CC
-       rm -f conftest.$ac_ext
-    fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5
-$as_echo "$ac_cv_sys_largefile_CC" >&6; }
-  if test "$ac_cv_sys_largefile_CC" != no; then
-    CC=$CC$ac_cv_sys_largefile_CC
-  fi
-
-  ## Use the macro _AC_SYS_LARGEFILE_MACRO_VALUE to test defines
-  ## that might need to be set for largefile support to behave
-  ## correctly. This macro is defined in acsite.m4 and overrides
-  ## the version provided by Autoconf (as of v2.65). The custom
-  ## macro additionally adds the appropriate defines to AM_CPPFLAGS
-  ## so that later configure checks have them visible.
-
-  ## Check for _FILE_OFFSET_BITS
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5
+## Use the macro _AC_SYS_LARGEFILE_MACRO_VALUE to test defines
+## that might need to be set for largefile support to behave
+## correctly. This macro is defined in acsite.m4 and overrides
+## the version provided by Autoconf (as of v2.65). The custom
+## macro additionally adds the appropriate defines to AM_CPPFLAGS
+## so that later configure checks have them visible.
+
+## Check for _FILE_OFFSET_BITS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5
 $as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }
 if ${ac_cv_sys_file_offset_bits+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -23431,9 +22353,9 @@ _ACEOF
 esac
 rm -rf conftest*
 
-  ## Check for _LARGE_FILES
-  if test "$ac_cv_sys_file_offset_bits" = unknown; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5
+## Check for _LARGE_FILES
+if test "$ac_cv_sys_file_offset_bits" = unknown; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5
 $as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; }
 if ${ac_cv_sys_large_files+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -23518,68 +22440,6 @@ _ACEOF
      AM_CPPFLAGS="-D_LARGE_FILES=$ac_cv_sys_large_files $AM_CPPFLAGS";;
 esac
 rm -rf conftest*
-  fi
-
-  ## Now actually test to see if we can create large files after we've
-  ## checked for any needed defines.
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if large (64-bit) files are supported on this system." >&5
-$as_echo_n "checking if large (64-bit) files are supported on this system.... " >&6; }
-  if ${hdf5_cv_have_lfs+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  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 confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-      #include <stdio.h>
-      #include <unistd.h>
-      #include <stdlib.h>
-      #include <fcntl.h>
-      #define BIG_FILE (off_t)0x80000000UL
-      int main(void) {
-        int fd;
-        if ((fd=open("test.conf", O_RDWR|O_TRUNC|O_CREAT, 0666)) < 0) exit(1);
-        if (lseek(fd, BIG_FILE, SEEK_SET)!=BIG_FILE) exit(1);
-        if (5!=write(fd, "hello", (size_t)5)) exit(1);
-        if (lseek(fd, 2*BIG_FILE, SEEK_SET) != 2*BIG_FILE) exit(1);
-        if (5!=write(fd, "hello", (size_t)5)) exit(1);
-        if (unlink("test.conf") < 0) exit(1);
-        exit(0);
-      }
-
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  hdf5_cv_have_lfs=yes
-else
-  hdf5_cv_have_lfs=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-
-
-  if test "X${hdf5_cv_have_lfs}" = "Xyes"; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-    LARGEFILE="yes"
-  fi
-  if test "X${hdf5_cv_have_lfs}" = "Xno"; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-    LARGEFILE="no"
-  fi
-
-else
-  LARGEFILE="no"
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
 fi
 
 ## ----------------------------------------------------------------------
@@ -23587,28 +22447,35 @@ fi
 ##
 case "$host_cpu-$host_vendor-$host_os" in
   *linux*)
-    ## If largefile support is enabled, then make available various
-    ## LFS-related routines using the following _LARGEFILE*_SOURCE macros.
-    if test "X$LARGEFILE" != "Xno"; then
-        AM_CPPFLAGS="-D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE $AM_CPPFLAGS"
-    fi
+    ## Make available various LFS-related routines using the following
+    ## _LARGEFILE*_SOURCE macros.
+    AM_CPPFLAGS="-D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE $AM_CPPFLAGS"
 
     ## Add POSIX support on Linux systems, so <features.h> defines
     ## __USE_POSIX, which is required to get the prototype for fdopen
     ## defined correctly in <stdio.h>.
+    ##
     ## This flag was removed from h5cc as of 2009-10-17 when it was found
     ## that the flag broke compiling netCDF-4 code with h5cc, but kept in
     ## H5_CPPFLAGS because fdopen and HDfdopen fail without it. HDfdopen
     ## is used only by H5_debug_mask which is used only when debugging in
     ## H5_init_library (all in H5.c).  When the flag was removed this was
     ## the only compile failure noted.
+    ##
     ## 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.
+    ## correctly. This was later updated to 200112L so that
+    ## posix_memalign() is visible for the direct VFD code on Linux
+    ## systems.
+    ##
     ## POSIX feature information can be found in the gcc manual at:
     ## http://www.gnu.org/s/libc/manual/html_node/Feature-Test-Macros.html
-    H5_CPPFLAGS="-D_POSIX_C_SOURCE=199506L $H5_CPPFLAGS"
+    H5_CPPFLAGS="-D_POSIX_C_SOURCE=200112L $H5_CPPFLAGS"
+
+    ## Need to add this so that O_DIRECT is visible for the direct
+    ## VFD on Linux systems.
+    H5_CPPFLAGS="-D_GNU_SOURCE $H5_CPPFLAGS"
 
     ## Also add BSD support on Linux systems, so <features.h> defines
     ## __USE_BSD, which is required to get the prototype for strdup
@@ -23618,7 +22485,12 @@ case "$host_cpu-$host_vendor-$host_os" in
     ## http://www.gnu.org/s/libc/manual/html_node/Feature-Test-Macros.html
     ## however, we do not do this since it breaks the big test on some
     ## older platforms.
-    AM_CPPFLAGS="-D_BSD_SOURCE $AM_CPPFLAGS"
+    H5_CPPFLAGS="-D_BSD_SOURCE $H5_CPPFLAGS"
+
+    ## _BSD_SOURCE is deprecated as of glibc 2.20, in favor of _DEFAULT_SOURCE.
+    ## To avoid warnings, we define _DEFAULT_SOURCE in addition to _BSD_SOURCE,
+    ## which should work for all versions of glibc.
+    H5_CPPFLAGS="-D_DEFAULT_SOURCE $H5_CPPFLAGS"
     ;;
 esac
 
@@ -25686,15 +24558,6 @@ $as_echo "suppressed" >&6; }
         ;;
     esac
 
-    ## Trying to include -I/usr/include and -L/usr/lib is redundant and
-    ## can mess some compilers up.
-    if test "X$dmalloc_inc" = "X/usr/include"; then
-      dmalloc_inc=""
-    fi
-    if test "X$dmalloc_lib" = "X/usr/lib"; then
-      dmalloc_lib=""
-    fi
-
     saved_CPPFLAGS="$CPPFLAGS"
     saved_AM_CPPFLAGS="$AM_CPPFLAGS"
     saved_LDFLAGS="$LDFLAGS"
@@ -25893,8 +24756,8 @@ fi
     ;;
   no)
     HAVE_ZLIB="no"
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU zlib" >&5
-$as_echo_n "checking for GNU zlib... " >&6; }
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for zlib" >&5
+$as_echo_n "checking for zlib... " >&6; }
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: suppressed" >&5
 $as_echo "suppressed" >&6; }
     ;;
@@ -25913,15 +24776,6 @@ $as_echo "suppressed" >&6; }
         ;;
     esac
 
-    ## Trying to include -I/usr/include and -L/usr/lib is redundant and
-    ## can mess some compilers up.
-    if test "X$zlib_inc" = "X/usr/include"; then
-      zlib_inc=""
-    fi
-    if test "X$zlib_lib" = "X/usr/lib"; then
-      zlib_lib=""
-    fi
-
     saved_CPPFLAGS="$CPPFLAGS"
     saved_AM_CPPFLAGS="$AM_CPPFLAGS"
     saved_LDFLAGS="$LDFLAGS"
@@ -26154,15 +25008,6 @@ $as_echo "suppressed" >&6; }
         ;;
     esac
 
-    ## Trying to include -I/usr/include and -L/usr/lib is redundant and
-    ## can mess some compilers up.
-    if test "X$szlib_inc" = "X/usr/include"; then
-      szlib_inc=""
-    fi
-    if test "X$szlib_lib" = "X/usr/lib"; then
-      szlib_lib=""
-    fi
-
     saved_CPPFLAGS="$CPPFLAGS"
     saved_AM_CPPFLAGS="$AM_CPPFLAGS"
     saved_LDFLAGS="$LDFLAGS"
@@ -26600,15 +25445,6 @@ $as_echo "suppressed" >&6; }
             ;;
         esac
 
-        ## Trying to include -I/usr/include and -L/usr/lib is redundant and
-        ## can mess some compilers up.
-        if test "X$pthread_inc" = "X/usr/include"; then
-          pthread_inc=""
-        fi
-        if test "X$pthread_lib" = "X/usr/lib"; then
-          pthread_lib=""
-        fi
-
         if test -n "$pthread_inc"; then
           saved_CPPFLAGS="$CPPFLAGS"
           saved_AM_CPPFLAGS="$AM_CPPFLAGS"
@@ -26822,42 +25658,6 @@ $as_echo "no" >&6; }
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
-## check if `struct tm' has a `__tm_gmtoff' member.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __tm_gmtoff in struct tm" >&5
-$as_echo_n "checking for __tm_gmtoff in struct tm... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-  #include <sys/time.h>
-  #include <time.h>
-#ifdef FC_DUMMY_MAIN
-#ifndef FC_DUMMY_MAIN_EQ_F77
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int FC_DUMMY_MAIN() { return 1; }
-#endif
-#endif
-int
-main ()
-{
-struct tm tm; tm.__tm_gmtoff=0;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-$as_echo "#define HAVE___TM_GMTOFF 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
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
 ## Check whether the global variable `timezone' is defined.
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for global timezone variable" >&5
 $as_echo_n "checking for global timezone variable... " >&6; }
@@ -26904,217 +25704,6 @@ rm -f core conftest.err conftest.$ac_objext \
     ;;
 esac
 
-## Check whether `struct timezone' is defined.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
-$as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
-if ${ac_cv_struct_tm+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <sys/types.h>
-#include <time.h>
-
-#ifdef FC_DUMMY_MAIN
-#ifndef FC_DUMMY_MAIN_EQ_F77
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int FC_DUMMY_MAIN() { return 1; }
-#endif
-#endif
-int
-main ()
-{
-struct tm tm;
-				     int *p = &tm.tm_sec;
-				     return !p;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_struct_tm=time.h
-else
-  ac_cv_struct_tm=sys/time.h
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5
-$as_echo "$ac_cv_struct_tm" >&6; }
-if test $ac_cv_struct_tm = sys/time.h; then
-
-$as_echo "#define TM_IN_SYS_TIME 1" >>confdefs.h
-
-fi
-
-ac_fn_c_check_member "$LINENO" "struct tm" "tm_zone" "ac_cv_member_struct_tm_tm_zone" "#include <sys/types.h>
-#include <$ac_cv_struct_tm>
-
-"
-if test "x$ac_cv_member_struct_tm_tm_zone" = xyes; then :
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_TM_TM_ZONE 1
-_ACEOF
-
-
-fi
-
-if test "$ac_cv_member_struct_tm_tm_zone" = yes; then
-
-$as_echo "#define HAVE_TM_ZONE 1" >>confdefs.h
-
-else
-  ac_fn_c_check_decl "$LINENO" "tzname" "ac_cv_have_decl_tzname" "#include <time.h>
-"
-if test "x$ac_cv_have_decl_tzname" = xyes; then :
-  ac_have_decl=1
-else
-  ac_have_decl=0
-fi
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_TZNAME $ac_have_decl
-_ACEOF
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tzname" >&5
-$as_echo_n "checking for tzname... " >&6; }
-if ${ac_cv_var_tzname+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <time.h>
-#if !HAVE_DECL_TZNAME
-extern char *tzname[];
-#endif
-
-#ifdef FC_DUMMY_MAIN
-#ifndef FC_DUMMY_MAIN_EQ_F77
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int FC_DUMMY_MAIN() { return 1; }
-#endif
-#endif
-int
-main ()
-{
-return tzname[0][0];
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_var_tzname=yes
-else
-  ac_cv_var_tzname=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_var_tzname" >&5
-$as_echo "$ac_cv_var_tzname" >&6; }
-  if test $ac_cv_var_tzname = yes; then
-
-$as_echo "#define HAVE_TZNAME 1" >>confdefs.h
-
-  fi
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timezone" >&5
-$as_echo_n "checking for struct timezone... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-  #include <sys/types.h>
-  #include <sys/time.h>
-  #include <time.h>
-#ifdef FC_DUMMY_MAIN
-#ifndef FC_DUMMY_MAIN_EQ_F77
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int FC_DUMMY_MAIN() { return 1; }
-#endif
-#endif
-int
-main ()
-{
-struct timezone tz; tz.tz_minuteswest=0;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-$as_echo "#define HAVE_STRUCT_TIMEZONE 1" >>confdefs.h
-
-    have_struct_tz="yes"
-    { $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
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-## If gettimeofday() is going to be used, make sure it uses the timezone struct
-
-if test "$have_gettime" = "yes" -a "$have_struct_tz" = "yes"; then
-   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gettimeofday() gives timezone" >&5
-$as_echo_n "checking whether gettimeofday() gives timezone... " >&6; }
-   if ${hdf5_cv_gettimeofday_tz+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  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 confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-          #include <time.h>
-          #include <sys/time.h>
-          int main(void)
-          {
-             struct timeval tv;
-             struct timezone tz;
-             tz.tz_minuteswest = 7777;  /* Initialize to an unreasonable number */
-             tz.tz_dsttime = 7;
-             gettimeofday(&tv, &tz);
-                /* Check whether the function returned any value at all */
-             if(tz.tz_minuteswest == 7777 && tz.tz_dsttime == 7)
-                exit(1);
-             else exit (0);
-          }
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  hdf5_cv_gettimeofday_tz=yes
-else
-  hdf5_cv_gettimeofday_tz=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-
-
-   if test ${hdf5_cv_gettimeofday_tz} = "yes"; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-
-$as_echo "#define GETTIMEOFDAY_GIVES_TZ 1" >>confdefs.h
-
-   else
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-   fi
-fi
 
 ## ----------------------------------------------------------------------
 ## Does the struct stat have the st_blocks field?  This field is not Posix.
@@ -27334,7 +25923,73 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 ## ----------------------------------------------------------------------
 ## Check for functions.
 ##
-for ac_func in alarm BSDgettimeofday fork frexpf frexpl
+## NOTE: clock_gettime may require linking to the rt or posix4 library
+##       so we'll search for it before calling AC_CHECK_FUNCS.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing clock_gettime" >&5
+$as_echo_n "checking for library containing clock_gettime... " >&6; }
+if ${ac_cv_search_clock_gettime+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char clock_gettime ();
+#ifdef FC_DUMMY_MAIN
+#ifndef FC_DUMMY_MAIN_EQ_F77
+#  ifdef __cplusplus
+     extern "C"
+#  endif
+   int FC_DUMMY_MAIN() { return 1; }
+#endif
+#endif
+int
+main ()
+{
+return clock_gettime ();
+  ;
+  return 0;
+}
+_ACEOF
+for ac_lib in '' rt posix4; do
+  if test -z "$ac_lib"; then
+    ac_res="none required"
+  else
+    ac_res=-l$ac_lib
+    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
+  fi
+  if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_search_clock_gettime=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext
+  if ${ac_cv_search_clock_gettime+:} false; then :
+  break
+fi
+done
+if ${ac_cv_search_clock_gettime+:} false; then :
+
+else
+  ac_cv_search_clock_gettime=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_clock_gettime" >&5
+$as_echo "$ac_cv_search_clock_gettime" >&6; }
+ac_res=$ac_cv_search_clock_gettime
+if test "$ac_res" != no; then :
+  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+for ac_func in alarm clock_gettime difftime fork frexpf frexpl
 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"
@@ -27346,7 +26001,7 @@ _ACEOF
 fi
 done
 
-for ac_func in gethostname getpwuid getrusage lstat
+for ac_func in gethostname getpwuid getrusage gettimeofday
 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"
@@ -27358,7 +26013,7 @@ _ACEOF
 fi
 done
 
-for ac_func in rand_r random setsysinfo
+for ac_func in lstat rand_r random setsysinfo
 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"
@@ -27394,7 +26049,7 @@ _ACEOF
 fi
 done
 
-for ac_func in tmpfile asprintf vasprintf waitpid
+for ac_func in tmpfile asprintf vasprintf vsnprintf 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"
@@ -27407,124 +26062,6 @@ fi
 done
 
 
-## Check for vsnprintf() separately, so we can detect situations where it
-## doesn't return the correct size for formatted strings that are too large
-## for the buffer provided
-for ac_func in vsnprintf
-do :
-  ac_fn_c_check_func "$LINENO" "vsnprintf" "ac_cv_func_vsnprintf"
-if test "x$ac_cv_func_vsnprintf" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_VSNPRINTF 1
-_ACEOF
- ## Check if vsnprintf() returns correct size for strings that don't fit
-    ## into the size allowed.  If vsnprintf() works correctly on this platform,
-    ## it should return a value of 42 for the test below
-    ##
-    ## Note that vsnprintf fails in two different ways:
-    ##         - In IRIX64, calls to vnsprintf() with a formatted string that
-    ##                 is larger than the buffer size allowed incorrectly
-    ##                 return the size of the buffer minus one.
-    ##         - In HP/UX, calls to vsnprintf() with a formatted string that
-    ##                 is larger than the buffer size allowed incorrectly
-    ##                 return (-1)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking if vsnprintf returns correct value" >&5
-$as_echo_n "checking if vsnprintf returns correct value... " >&6; }
-
-    if ${hdf5_cv_vsnprintf_works+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  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 confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdarg.h>
-
-int test_vsnprintf(const char *fmt,...)
-{
-    va_list     ap;
-    char *s = malloc(16);
-    int ret;
-
-    va_start(ap, fmt);
-    ret=vsnprintf(s,16,"%s",ap);
-    va_end(ap);
-
-    return(ret!=42 ? 1 : 0);
-}
-
-int main(void)
-{
-    exit(test_vsnprintf("%s","A string that is longer than 16 characters"));
-}
-
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  hdf5_cv_vsnprintf_works=yes
-else
-  hdf5_cv_vsnprintf_works=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-
-
-       if test ${hdf5_cv_vsnprintf_works} = "yes"; then
-          { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-
-$as_echo "#define VSNPRINTF_WORKS 1" >>confdefs.h
-
-       else
-          { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-       fi
-
-fi
-done
-
-
-## ----------------------------------------------------------------------
-## Check that a lone colon can be used as an argument
-## This is not true on Cray X1, which interprets a lone colon as a
-## system command.
-##
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if lone colon can be used as an argument" >&5
-$as_echo_n "checking if lone colon can be used as an argument... " >&6; }
-if ${hdf5_cv_lone_colon+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-
-  echo "int main(int argc, char * argv) {return 0;}" > conftest.c
-  $CC $CFLAGS conftest.c -o a.out> /dev/null 2> /dev/null
-  echo "./a.out :" > conftest.sh
-  chmod 700 conftest.sh
-
-  ./conftest.sh 2> conftest.out
-  rm -f a.out
-  TEST_OUTPUT=`cat conftest.out`
-
-  if test "X$TEST_OUTPUT" = "X"; then
-    hdf5_cv_lone_colon=yes
-  else
-    hdf5_cv_lone_colon=no
-  fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hdf5_cv_lone_colon" >&5
-$as_echo "$hdf5_cv_lone_colon" >&6; }
-
- H5_LONE_COLON="$hdf5_cv_lone_colon"
-
 ## ----------------------------------------------------------------------
 ## Check compiler characteristics
 ##
@@ -28238,10 +26775,7 @@ rm -f confcache
 
 ## What header files and libraries do we have to look for for parallel
 ## support?  For the most part, search paths are already specified with
-## CPPFLAGS and LDFLAGS or are known to the compiler.  If the user says
-## `--disable-parallel' but specifies a known parallel compiler (like mpicc
-## or mpcc) then parallel support is enabled but configure doesn't search
-## for any parallel header files or libraries.
+## CPPFLAGS and LDFLAGS or are known to the compiler.
 ##
 # Check whether --enable-parallel was given.
 if test "${enable_parallel+set}" = set; then :
@@ -28266,26 +26800,11 @@ if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then
   fi
 fi
 
-## It's possible to build in parallel by specifying a parallel compiler
-## without using the --enable-parallel flag.  This isn't allowed with
-## C++ or threadsafe, either, unless the --enable-unsupported flag
-## has also been specified.
-if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then
-  if test "X${PARALLEL}" != "X" -a "X${enable_cxx}" = "Xyes" ; then
-    as_fn_error $? "An MPI compiler is being used; --enable-cxx is not allowed. Use --enable-unsupported to override this error." "$LINENO" 5
-  fi
-  if test "X${PARALLEL}" != "X" -a "X${THREADSAFE}" = "Xyes"; then
-    as_fn_error $? "An MPI compiler is being used; --enable-threadsafe is not allowed. Use --enable-unsupported to override this error." "$LINENO" 5
-  fi
-fi
-
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for parallel support files" >&5
 $as_echo_n "checking for parallel support files... " >&6; }
 case "X-$enable_parallel" in
   X-|X-no|X-none)
-    ## Either we are not compiling for parallel or the header and
-    ## library files and locations are known to the compiler (this is
-    ## the case for a correct installation of mpicc for instance).
+    ## We are not compiling for parallel.
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: skipped" >&5
 $as_echo "skipped" >&6; }
     ;;
@@ -28297,185 +26816,12 @@ $as_echo "skipped" >&6; }
 $as_echo "provided by compiler" >&6; }
     PARALLEL=yes
 
-    ## Try link a simple MPI program.  If fail, try again with -lmpi and
-    ## -lmpich.
+    ## Try link a simple MPI program.
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a simple MPI-IO C program can be linked" >&5
+$as_echo_n "checking whether a simple MPI-IO C program can be linked... " >&6; }
     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
-#ifdef FC_DUMMY_MAIN
-#ifndef FC_DUMMY_MAIN_EQ_F77
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int FC_DUMMY_MAIN() { return 1; }
-#endif
-#endif
-int
-main ()
-{
-MPI_Init()
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPI_Init in -lmpi" >&5
-$as_echo_n "checking for MPI_Init in -lmpi... " >&6; }
-if ${ac_cv_lib_mpi_MPI_Init+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lmpi  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char MPI_Init ();
-#ifdef FC_DUMMY_MAIN
-#ifndef FC_DUMMY_MAIN_EQ_F77
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int FC_DUMMY_MAIN() { return 1; }
-#endif
-#endif
-int
-main ()
-{
-return MPI_Init ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_mpi_MPI_Init=yes
-else
-  ac_cv_lib_mpi_MPI_Init=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mpi_MPI_Init" >&5
-$as_echo "$ac_cv_lib_mpi_MPI_Init" >&6; }
-if test "x$ac_cv_lib_mpi_MPI_Init" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBMPI 1
-_ACEOF
-
-  LIBS="-lmpi $LIBS"
-
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPI_Init in -lmpich" >&5
-$as_echo_n "checking for MPI_Init in -lmpich... " >&6; }
-if ${ac_cv_lib_mpich_MPI_Init+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lmpich  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char MPI_Init ();
-#ifdef FC_DUMMY_MAIN
-#ifndef FC_DUMMY_MAIN_EQ_F77
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int FC_DUMMY_MAIN() { return 1; }
-#endif
-#endif
-int
-main ()
-{
-return MPI_Init ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_mpich_MPI_Init=yes
-else
-  ac_cv_lib_mpich_MPI_Init=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mpich_MPI_Init" >&5
-$as_echo "$ac_cv_lib_mpich_MPI_Init" >&6; }
-if test "x$ac_cv_lib_mpich_MPI_Init" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBMPICH 1
-_ACEOF
-
-  LIBS="-lmpich $LIBS"
-
-else
-  PARALLEL=no
-fi
-
-fi
-
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-
-    ## Then try link a simple MPI-IO program. If fail, try again with
-    ## -lmpio.
-    if test "X$PARALLEL" = "Xyes"; then
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#ifdef FC_DUMMY_MAIN
-#ifndef FC_DUMMY_MAIN_EQ_F77
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int FC_DUMMY_MAIN() { return 1; }
-#endif
-#endif
-int
-main ()
-{
-MPI_File_open()
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPI_File_open in -lmpio" >&5
-$as_echo_n "checking for MPI_File_open in -lmpio... " >&6; }
-if ${ac_cv_lib_mpio_MPI_File_open+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lmpio  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char MPI_File_open ();
+#include <mpi.h>
 #ifdef FC_DUMMY_MAIN
 #ifndef FC_DUMMY_MAIN_EQ_F77
 #  ifdef __cplusplus
@@ -28487,169 +26833,61 @@ char MPI_File_open ();
 int
 main ()
 {
-return MPI_File_open ();
+ MPI_Init(0, (void *)0);
+		      MPI_File_open(0, (void *)0, 0, 0, (void *)0);
   ;
   return 0;
 }
 _ACEOF
 if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_mpio_MPI_File_open=yes
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 else
-  ac_cv_lib_mpio_MPI_File_open=no
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+		    as_fn_error $? "unable to link a simple MPI-IO C program" "$LINENO" 5
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mpio_MPI_File_open" >&5
-$as_echo "$ac_cv_lib_mpio_MPI_File_open" >&6; }
-if test "x$ac_cv_lib_mpio_MPI_File_open" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBMPIO 1
-_ACEOF
-
-  LIBS="-lmpio $LIBS"
 
-else
-  PARALLEL=no
-fi
+    if test "X$HDF_FORTRAN" = "Xyes"; then
 
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-    fi
 
-    if test "X$HDF_FORTRAN" = "Xyes"; then
-      ## Change to the Fortran 90 language
       ac_ext=${ac_fc_srcext-f}
 ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5'
 ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_fc_compiler_gnu
 
 
-      ## Try link a simple MPI program.  If fail, try again with -lmpi.
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a simple MPI-IO Fortran program can be linked" >&5
+$as_echo_n "checking whether a simple MPI-IO Fortran program can be linked... " >&6; }
       cat > conftest.$ac_ext <<_ACEOF
 
-          program main
-          include 'mpif.h'
-          integer:: ierr
-          call mpi_file_open( ierr )
-          end
+          PROGRAM main
+          USE mpi
+          INTEGER :: comm, amode, info, fh, ierror
+          CHARACTER(LEN=1) :: filename
+          CALL MPI_File_open( comm, filename, amode, info, fh, ierror)
+          END
 _ACEOF
 if ac_fn_fc_try_link "$LINENO"; then :
-
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mpi_file_open in -lmpi" >&5
-$as_echo_n "checking for mpi_file_open in -lmpi... " >&6; }
-if ${ac_cv_lib_mpi_mpi_file_open+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lmpi  $LIBS"
-cat > conftest.$ac_ext <<_ACEOF
-      program main
-      call mpi_file_open
-      end
-_ACEOF
-if ac_fn_fc_try_link "$LINENO"; then :
-  ac_cv_lib_mpi_mpi_file_open=yes
-else
-  ac_cv_lib_mpi_mpi_file_open=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mpi_mpi_file_open" >&5
-$as_echo "$ac_cv_lib_mpi_mpi_file_open" >&6; }
-if test "x$ac_cv_lib_mpi_mpi_file_open" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBMPI 1
-_ACEOF
-
-  LIBS="-lmpi $LIBS"
-
-else
-  PARALLEL=no
-fi
-
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-
-      ## Then try link a simple MPI-IO program.  If fail, try again with
-      ## -lmpio.
-      if test "X$PARALLEL" = "Xyes"; then
-        cat > conftest.$ac_ext <<_ACEOF
-
-            program main
-            include 'mpif.h'
-            integer:: ierr
-            call mpi_file_open( ierr )
-            end
-_ACEOF
-if ac_fn_fc_try_link "$LINENO"; then :
-
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mpi_file_open in -lmpio" >&5
-$as_echo_n "checking for mpi_file_open in -lmpio... " >&6; }
-if ${ac_cv_lib_mpio_mpi_file_open+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lmpio  $LIBS"
-cat > conftest.$ac_ext <<_ACEOF
-      program main
-      call mpi_file_open
-      end
-_ACEOF
-if ac_fn_fc_try_link "$LINENO"; then :
-  ac_cv_lib_mpio_mpi_file_open=yes
-else
-  ac_cv_lib_mpio_mpi_file_open=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mpio_mpi_file_open" >&5
-$as_echo "$ac_cv_lib_mpio_mpi_file_open" >&6; }
-if test "x$ac_cv_lib_mpio_mpi_file_open" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBMPIO 1
-_ACEOF
-
-  LIBS="-lmpio $LIBS"
-
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 else
-  PARALLEL=no
-fi
-
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+	   as_fn_error $? "unable to link a simple MPI-IO Fortran program" "$LINENO" 5
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
-      fi
 
-      ## Change to the C language
       ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
-    fi
 
-    ## Set RUNPARALLEL to mpiexec if not set yet.
-    ## Check for building on Cray if RUNPARALLEL is not yet set by checking
-    ## for 'aprun' command (which is the parallel job launcher, like mpiexec).
-    if test "X$PARALLEL" = "Xyes" -a -z "$RUNPARALLEL"; then
-        ## Find the path where aprun is located.
-  	for path in `echo $PATH | ${TR} ":" " "`; do
-  	  if test -x $path/aprun; then
-            RUNPARALLEL="aprun -q -n \$\${NPROCS:=6}"
-  	    break;
-  	  fi
-	done
     fi
 
     ## Set RUNPARALLEL to mpiexec if not set yet.
@@ -28689,39 +26927,6 @@ $as_echo_n "checking prefix for running in parallel... " >&6; }
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RUNPARALLEL" >&5
 $as_echo "$RUNPARALLEL" >&6; }
 
-  ## Check that we can link a simple MPI and MPI-IO application
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a simple MPI-IO program can be linked" >&5
-$as_echo_n "checking whether a simple MPI-IO program can be linked... " >&6; }
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#ifdef FC_DUMMY_MAIN
-#ifndef FC_DUMMY_MAIN_EQ_F77
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int FC_DUMMY_MAIN() { return 1; }
-#endif
-#endif
-int
-main ()
-{
-MPI_Init(); MPI_File_open();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  { $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; }
-              as_fn_error $? "unable to link a simple MPI-IO application" "$LINENO" 5
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-
   ## There *must* be some way to run in parallel even if it's just the
   ## word `none'.
   if test -z "$RUNPARALLEL"; then
@@ -28729,7 +26934,8 @@ rm -f core conftest.err conftest.$ac_objext \
   fi
 
   ## If RUNSERIAL or RUNPARALLEL is the word `none' then replace it with
-  ## the empty string.
+  ## the empty string. This means that no launch commands were requested,
+  ## so we will not use any launch commands.
   if test "X$RUNSERIAL" = "Xnone"; then
     RUNSERIAL=""
   fi
@@ -28905,61 +27111,6 @@ else
   unset MPE
 fi
 
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPE_Init_mpi_io in -llmpe" >&5
-$as_echo_n "checking for MPE_Init_mpi_io in -llmpe... " >&6; }
-if ${ac_cv_lib_lmpe_MPE_Init_mpi_io+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-llmpe  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char MPE_Init_mpi_io ();
-#ifdef FC_DUMMY_MAIN
-#ifndef FC_DUMMY_MAIN_EQ_F77
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int FC_DUMMY_MAIN() { return 1; }
-#endif
-#endif
-int
-main ()
-{
-return MPE_Init_mpi_io ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_lmpe_MPE_Init_mpi_io=yes
-else
-  ac_cv_lib_lmpe_MPE_Init_mpi_io=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lmpe_MPE_Init_mpi_io" >&5
-$as_echo "$ac_cv_lib_lmpe_MPE_Init_mpi_io" >&6; }
-if test "x$ac_cv_lib_lmpe_MPE_Init_mpi_io" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBLMPE 1
-_ACEOF
-
-  LIBS="-llmpe $LIBS"
-
-else
-  unset MPE
-fi
-
       ;;
     *)
       case "$withval" in
@@ -28975,15 +27126,6 @@ fi
           ;;
       esac
 
-      ## Trying to include -I/usr/include and -L/usr/lib is redundant and
-      ## can mess some compilers up.
-      if test "X$mpe_inc" = "X/usr/include"; then
-        mpe_inc=""
-      fi
-      if test "X$mpe_lib" = "X/usr/lib"; then
-        mpe_lib=""
-      fi
-
       if test -n "$mpe_inc"; then
         saved_CPPFLAGS="$CPPFLAGS"
         saved_AM_CPPFLAGS="$AM_CPPFLAGS"
@@ -29080,62 +27222,6 @@ else
   LDFLAGS="$saved_LDFLAGS"; AM_LDFLAGS="$saved_AM_LDFLAGS"; unset MPE
 fi
 
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPE_Init_mpi_io in -llmpe" >&5
-$as_echo_n "checking for MPE_Init_mpi_io in -llmpe... " >&6; }
-if ${ac_cv_lib_lmpe_MPE_Init_mpi_io+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-llmpe  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char MPE_Init_mpi_io ();
-#ifdef FC_DUMMY_MAIN
-#ifndef FC_DUMMY_MAIN_EQ_F77
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int FC_DUMMY_MAIN() { return 1; }
-#endif
-#endif
-int
-main ()
-{
-return MPE_Init_mpi_io ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_lmpe_MPE_Init_mpi_io=yes
-else
-  ac_cv_lib_lmpe_MPE_Init_mpi_io=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lmpe_MPE_Init_mpi_io" >&5
-$as_echo "$ac_cv_lib_lmpe_MPE_Init_mpi_io" >&6; }
-if test "x$ac_cv_lib_lmpe_MPE_Init_mpi_io" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBLMPE 1
-_ACEOF
-
-  LIBS="-llmpe $LIBS"
-
-else
-  LDFLAGS="$saved_LDFLAGS"; AM_LDFLAGS="$saved_AM_LDFLAGS"; unset MPE
-fi
-
-
       else
         { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPE_Init_log in -lmpe" >&5
 $as_echo_n "checking for MPE_Init_log in -lmpe... " >&6; }
@@ -29192,61 +27278,6 @@ else
   unset MPE
 fi
 
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPE_Init_mpi_io in -llmpe" >&5
-$as_echo_n "checking for MPE_Init_mpi_io in -llmpe... " >&6; }
-if ${ac_cv_lib_lmpe_MPE_Init_mpi_io+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-llmpe  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char MPE_Init_mpi_io ();
-#ifdef FC_DUMMY_MAIN
-#ifndef FC_DUMMY_MAIN_EQ_F77
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int FC_DUMMY_MAIN() { return 1; }
-#endif
-#endif
-int
-main ()
-{
-return MPE_Init_mpi_io ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_lmpe_MPE_Init_mpi_io=yes
-else
-  ac_cv_lib_lmpe_MPE_Init_mpi_io=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lmpe_MPE_Init_mpi_io" >&5
-$as_echo "$ac_cv_lib_lmpe_MPE_Init_mpi_io" >&6; }
-if test "x$ac_cv_lib_lmpe_MPE_Init_mpi_io" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBLMPE 1
-_ACEOF
-
-  LIBS="-llmpe $LIBS"
-
-else
-  unset MPE
-fi
-
       fi
       ;;
   esac
@@ -29259,219 +27290,68 @@ $as_echo "#define HAVE_MPE 1" >>confdefs.h
 fi
 
 ## ----------------------------------------------------------------------
-## Turn on internal I/O filters by setting macros in header files
-## Internal I/O filters are contained entirely within the library and do
-## not depend on external headers or libraries.  The shuffle filter is
-## an example of an internal filter, while the gzip filter is an example of
-## an external filter.  Each external filter is controlled with an
-## "--with-foo=" configure flag.
+## Check if Direct I/O driver is enabled by --enable-direct-vfd
 ##
 
- USE_FILTER_SHUFFLE="no"
- USE_FILTER_FLETCHER32="no"
- USE_FILTER_NBIT="no"
- USE_FILTER_SCALEOFFSET="no"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for I/O filters" >&5
-$as_echo_n "checking for I/O filters... " >&6; }
-# Check whether --enable-filters was given.
-if test "${enable_filters+set}" = set; then :
-  enableval=$enable_filters; FILTERS=$enableval
-fi
-
-
-## Eventually: all_filters="shuffle,foo,bar,baz"
-all_filters="shuffle,fletcher32,nbit,scaleoffset"
-case "X-$FILTERS" in
-  X-|X-all)
-    FILTERS=$all_filters
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: all ($FILTERS)" >&5
-$as_echo "all ($FILTERS)" >&6; }
-    ;;
-  X-no|X-none)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
-$as_echo "none" >&6; }
-    FILTERS="none"
-    ;;
-  *)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FILTERS" >&5
-$as_echo "$FILTERS" >&6; }
-    ;;
-esac
-
-if test -n "$FILTERS"; then
-  for filter in `echo $FILTERS | tr ${as_cr_letters}',' ${as_cr_LETTERS}' '`; do
-    ## ------------------------------------------------------------------
-    ## Have to use separate 'if' construct for each filter, so that
-    ## autoheader can detect the AC_DEFINE for each one...
-    ##
-    if test $filter = "SHUFFLE"; then
-
-$as_echo "#define HAVE_FILTER_SHUFFLE 1" >>confdefs.h
-
-      USE_FILTER_SHUFFLE="yes"
-    fi
-    if test $filter = "FLETCHER32"; then
-
-$as_echo "#define HAVE_FILTER_FLETCHER32 1" >>confdefs.h
-
-      USE_FILTER_FLETCHER32="yes"
-    fi
-    if test $filter = "NBIT"; then
-
-$as_echo "#define HAVE_FILTER_NBIT 1" >>confdefs.h
-
-      USE_FILTER_NBIT="yes"
-    fi
-    if test $filter = "SCALEOFFSET"; then
-
-$as_echo "#define HAVE_FILTER_SCALEOFFSET 1" >>confdefs.h
+## Check these regardless. If the checks are moved inside the main
+## direct VFD block, the output is nested.
 
-      USE_FILTER_SCALEOFFSET="yes"
-    fi
-  done
+if ${hdf5_cv_direct_io+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_fn_c_check_decl "$LINENO" "O_DIRECT" "ac_cv_have_decl_O_DIRECT" "#include <fcntl.h>
+"
+if test "x$ac_cv_have_decl_O_DIRECT" = xyes; then :
+  hdf5_cv_direct_io=yes
+else
+  hdf5_cv_direct_io=no
 fi
 
-## ----------------------------------------------------------------------
-## This is defined only when we're using CodeWarrior, since it has a
-## broken "open()" call.
-#
-if test 1 = 2; then
-
-$as_echo "#define NO_SHARED_WRITING 1" >>confdefs.h
-
 fi
 
-## --------------------------------------------------------------------------
-## Should the Default Virtual File Driver be compiled?
-##
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Default Virtual File Driver definition" >&5
-$as_echo_n "checking for Default Virtual File Driver definition... " >&6; }
-
-# Check whether --with-default-vfd was given.
-if test "${with_default_vfd+set}" = set; then :
-  withval=$with_default_vfd;
+if ${hdf5_cv_posix_memalign+:} false; then :
+  $as_echo_n "(cached) " >&6
 else
-  withval=sec2
-fi
-
-
-if test "X$withval" = "Xsec2"; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-    default_vfd=yes
-    vfd_define=H5FD_SEC2
-elif test "X$withval" = "Xstdio"; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-    default_vfd=yes
-    vfd_define=H5FD_STDIO
+  ac_fn_c_check_func "$LINENO" "posix_memalign" "ac_cv_func_posix_memalign"
+if test "x$ac_cv_func_posix_memalign" = xyes; then :
+  hdf5_cv_posix_memalign=yes
 else
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-    default_vfd=no
+  hdf5_cv_posix_memalign=no
 fi
 
-if test "X$default_vfd" = "Xyes"; then
-
-cat >>confdefs.h <<_ACEOF
-#define DEFAULT_VFD $vfd_define
-_ACEOF
-
 fi
 
-## ----------------------------------------------------------------------
-## Check if Direct I/O driver is enabled by --enable-direct-vfd
-##
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Direct Virtual File Driver support" >&5
-$as_echo_n "checking for Direct Virtual File Driver support... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the direct I/O virtual file driver (VFD) is enabled" >&5
+$as_echo_n "checking if the direct I/O virtual file driver (VFD) is enabled... " >&6; }
 
 # Check whether --enable-direct-vfd was given.
 if test "${enable_direct_vfd+set}" = set; then :
   enableval=$enable_direct_vfd; DIRECT_VFD=$enableval
 else
-  DIRECT_VFD=yes
+  DIRECT_VFD=no
 fi
 
 
-if test "$DIRECT_VFD" = "yes"; then
-   if ${hdf5_cv_direct_io+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  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 confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-	  #include <sys/types.h>
-	  #include <sys/stat.h>
-	  #include <fcntl.h>
-          int main(void)
-          {
-             int fid;
-             if((fid=open("tst_file", O_CREAT | O_TRUNC | O_DIRECT, 0755))<0)
-		exit(1);
-             close(fid);
-             remove("tst_file");
-             exit (0);
-          }
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#ifdef FC_DUMMY_MAIN
-#ifndef FC_DUMMY_MAIN_EQ_F77
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int FC_DUMMY_MAIN() { return 1; }
-#endif
-#endif
-int
-main ()
-{
-posix_memalign()
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  hdf5_cv_direct_io=yes
-else
-  hdf5_cv_direct_io=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-else
-  hdf5_cv_direct_io=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-
-
-   if test ${hdf5_cv_direct_io} = "yes"; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+if test "X$DIRECT_VFD" = "Xyes"; then
+    if test ${hdf5_cv_direct_io} = "yes" && test ${hdf5_cv_posix_memalign} = "yes" ; then
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 
 $as_echo "#define HAVE_DIRECT 1" >>confdefs.h
 
-   else
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+    else
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
-      DIRECT_VFD=no
-   fi
+        DIRECT_VFD=no
+        as_fn_error $? "The direct VFD was requested but cannot be built. This is either
+                     due to O_DIRECT not being found in fcntl.h or a lack of
+                     posix_memalign() on your system. Please re-configure without
+                     specifying --enable-direct-vfd." "$LINENO" 5
+    fi
 else
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: suppressed" >&5
-$as_echo "suppressed" >&6; }
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
  if test "X$DIRECT_VFD" = "Xyes"; then
@@ -29642,707 +27522,6 @@ $as_echo "no" >&6; }
     ;;
 esac
 
-## -----------------------------------------------------------------------
-## Set flag to indicate that the machine can handle conversion from
-## long double to integers accurately.  This flag should be set "yes" for
-## all machines except all SGIs.  For SGIs, some conversions are
-## incorrect and its cache value is set "no" in its config/irix6.x and
-## irix5.x.
-##
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if converting from long double to integers is accurate" >&5
-$as_echo_n "checking if converting from long double to integers is accurate... " >&6; }
-
-if test ${ac_cv_sizeof_long_double} = 0; then
-   hdf5_cv_ldouble_to_integer_accurate=${hdf5_cv_ldouble_to_integer_accurate=no}
-else
-   if ${hdf5_cv_ldouble_to_integer_accurate+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  hdf5_cv_ldouble_to_integer_accurate=yes
-fi
-
-fi
-
-if test "${hdf5_cv_ldouble_to_integer_accurate}" = "yes"; then
-
-$as_echo "#define LDOUBLE_TO_INTEGER_ACCURATE 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 flag to indicate that the machine can do conversion from
-## long double to integers regardless of accuracy.  This flag should be
-## set "yes" for all machines except HP-UX 11.00.  For HP-UX 11.00, the
-## compiler has 'floating exception' when converting 'long double' to all
-## integers except 'unsigned long long'.  Other HP-UX systems are unknown
-## yet. (1/8/05 - SLU)
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if converting from long double to integers works" >&5
-$as_echo_n "checking if converting from long double to integers works... " >&6; }
-
-if test ${ac_cv_sizeof_long_double} = 0; then
-   hdf5_cv_ldouble_to_integer_works=${hdf5_cv_ldouble_to_integer_works=no}
-else
-   if ${hdf5_cv_ldouble_to_integer_works+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  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 confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.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);
-        }
-
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  hdf5_cv_ldouble_to_integer_works=yes
-else
-  hdf5_cv_ldouble_to_integer_works=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-
-fi
-
-if test ${hdf5_cv_ldouble_to_integer_works} = "yes"; then
-
-$as_echo "#define LDOUBLE_TO_INTEGER_WORKS 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 flag to indicate that the machine can handle conversion from
-## integers to long double.  (This flag should be set "yes" for all
-## machines except all SGIs, where some conversions are
-## incorrect and its cache value is set "no" in its config/irix6.x and
-## irix5.x)
-##
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if accurately converting from integers to long double" >&5
-$as_echo_n "checking if accurately converting from integers to long double... " >&6; }
-
-if test ${ac_cv_sizeof_long_double} = 0; then
-   hdf5_cv_integer_to_ldouble_accurate=${hdf5_cv_integer_to_ldouble_accurate=no}
-else
-   if ${hdf5_cv_integer_to_ldouble_accurate+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  hdf5_cv_integer_to_ldouble_accurate=yes
-fi
-
-fi
-
-if test ${hdf5_cv_integer_to_ldouble_accurate} = "yes"; then
-
-$as_echo "#define INTEGER_TO_LDOUBLE_ACCURATE 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 machine can accurately convert
-## 'unsigned long' to 'float' values.
-## (This flag should be set for all machines, except for Pathscale compiler
-## on Sandia's Linux machine where the compiler interprets 'unsigned long'
-## values as negative when the first bit of 'unsigned long' is on during
-## the conversion to float.)
-##
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if accurately converting unsigned long to float values" >&5
-$as_echo_n "checking if accurately converting unsigned long to float values... " >&6; }
-
-if ${hdf5_cv_ulong_to_float_accurate+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  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 confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-    int main(void)
-    {
-        int           ret = 0;
-        unsigned long l1;
-        unsigned long l2;
-        unsigned long l3;
-        float f1;
-        float f2;
-        float f3;
-
-
-        if(sizeof(unsigned long)==8) {
-            l1 = 0xffffffffffffffffUL;
-            l2 = 0xffffffffffff0000UL;
-            l3 = 0xf000000000000000UL;
-
-            f1 = (float)l1;
-            f2 = (float)l2;
-            f3 = (float)l3;
-
-            if((f1 < 0) || (f2 < 0) || (f3 < 0))
-                ret = 1;
-        }
-
-done:
-        exit(ret);
-    }
-
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  hdf5_cv_ulong_to_float_accurate=yes
-else
-  hdf5_cv_ulong_to_float_accurate=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-
-
-if test ${hdf5_cv_ulong_to_float_accurate} = "yes"; then
-
-$as_echo "#define ULONG_TO_FLOAT_ACCURATE 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 machine can accurately convert
-## 'unsigned (long) long' values to 'float' and 'double' values.
-## (This flag should be set for all machines, except for the SGIs, where
-## the cache value is set in the config/irix6.x config file) and Solaris
-## 64-bit machines, where the short program below tests if round-up is
-## correctly handled.
-##
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if accurately converting unsigned long long to floating-point values" >&5
-$as_echo_n "checking if accurately converting unsigned long long to floating-point values... " >&6; }
-
-if test ${host_os_novers} = "solaris2.x"; then
-    if ${hdf5_cv_ulong_to_fp_bottom_bit_accurate+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  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 confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-    int main(void)
-    {
-        unsigned long l1;
-        unsigned long l2;
-        unsigned long l3;
-        unsigned long l4;
-        unsigned long long ld1;
-        unsigned long long ld2;
-        unsigned long long ld3;
-        unsigned long long ld4;
-        double        d1, d2, d3, d4;
-        unsigned char s[8];
-        int           ret = 0;
-
-        if(sizeof(unsigned long)==8) {
-            l1 = 0xf000000000000b00UL; /*Round-down case*/
-            l2 = 0xf000000000000401UL; /*Round-up case*/
-            l3 = 0xf000000000000400UL; /*Round-down case*/
-            l4 = 0xf000000000000c00UL; /*Round-up case*/
-
-            d1 = (double)l1;
-            d2 = (double)l2;
-            d3 = (double)l3;
-            d4 = (double)l4;
-        } else if(sizeof(unsigned long long)==8) {
-            ld1 = 0xf000000000000b00ULL; /*Round-down case*/
-            ld2 = 0xf000000000000401ULL; /*Round-up case*/
-            ld3 = 0xf000000000000400ULL; /*Round-down case*/
-            ld4 = 0xf000000000000c00ULL; /*Round-up case*/
-
-            d1 = (double)ld1;
-            d2 = (double)ld2;
-            d3 = (double)ld3;
-            d4 = (double)ld4;
-        } else {
-            ret = 1;
-            goto done;
-        }
-
-        memcpy(s, &d1, 8);
-        if(s[7]!=1)
-            ret = 1;
-
-        memcpy(s, &d2, 8);
-        if(s[7]!=1)
-            ret = 1;
-
-        memcpy(s, &d3, 8);
-        if(s[7]!=0)
-            ret = 1;
-
-        memcpy(s, &d4, 8);
-        if(s[7]!=2)
-            ret = 1;
-
-done:
-        exit(ret);
-    }
-
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  hdf5_cv_ulong_to_fp_bottom_bit_accurate=yes
-else
-  hdf5_cv_ulong_to_fp_bottom_bit_accurate=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-
-else
-    if ${hdf5_cv_ulong_to_fp_bottom_bit_accurate+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  hdf5_cv_ulong_to_fp_bottom_bit_accurate=yes
-fi
-
-fi
-
-if test ${hdf5_cv_ulong_to_fp_bottom_bit_accurate} = "yes"; then
-
-$as_echo "#define ULONG_TO_FP_BOTTOM_BIT_ACCURATE 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 machine can accurately convert
-## 'float' or 'double' to 'unsigned long long' values.
-## (This flag should be set for all machines, except for PGI compiler
-## where round-up happens when the fraction of float-point value is greater
-## than 0.5.
-##
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if accurately roundup converting floating-point to unsigned long long values" >&5
-$as_echo_n "checking if accurately roundup converting floating-point to unsigned long long values... " >&6; }
-
-if ${hdf5_cv_fp_to_ullong_accurate+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  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 confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-    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);
-    }
-
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  hdf5_cv_fp_to_ullong_accurate=yes
-else
-  hdf5_cv_fp_to_ullong_accurate=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-
-
-if test ${hdf5_cv_fp_to_ullong_accurate} = "yes"; then
-
-$as_echo "#define FP_TO_ULLONG_ACCURATE 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 machine can accurately convert
-## 'float', 'double' or 'long double' to 'unsigned long long' values.
-## (This flag should be set for all machines, except for HP-UX machines
-## where the maximal number for unsigned long long is 0x7fffffffffffffff
-## during conversion.
-##
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if right maximum converting floating-point to unsigned long long values" >&5
-$as_echo_n "checking if right maximum converting floating-point to unsigned long long values... " >&6; }
-
-if ${hdf5_cv_fp_to_ullong_right_maximum+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  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 confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-    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);
-    }
-
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  hdf5_cv_fp_to_ullong_right_maximum=yes
-else
-  hdf5_cv_fp_to_ullong_right_maximum=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-
-
-if test ${hdf5_cv_fp_to_ullong_right_maximum} = "yes"; then
-
-$as_echo "#define FP_TO_ULLONG_RIGHT_MAXIMUM 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 machine can accurately convert
-## 'long double' to 'unsigned int' values.  (This flag should be set for
-## all machines, except for some Intel compilers on some Linux.)
-##
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if correctly converting long double to unsigned int values" >&5
-$as_echo_n "checking if correctly converting long double to unsigned int values... " >&6; }
-
-if test ${ac_cv_sizeof_long_double} = 0; then
-   hdf5_cv_ldouble_to_uint_accurate=${hdf5_cv_ldouble_to_uint_accurate=no}
-else
-   if ${hdf5_cv_ldouble_to_uint_accurate+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  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 confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-        int main(void)
-        {
-            long double ld = 2733248032.9183987530L;
-            unsigned int i;
-            int           ret = 0;
-
-            i = (unsigned int)ld;
-            if(i!=2733248032 && i!=2733248031 && i!=2733248033)
-                ret = 1;
-
-    done:
-            exit(ret);
-        }
-
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  hdf5_cv_ldouble_to_uint_accurate=yes
-else
-  hdf5_cv_ldouble_to_uint_accurate=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-
-fi
-
-if test ${hdf5_cv_ldouble_to_uint_accurate} = "yes"; then
-
-$as_echo "#define LDOUBLE_TO_UINT_ACCURATE 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 machine can _compile_
-## 'unsigned long long' to 'float' and 'double' typecasts.
-## (This flag should be set for all machines, except for under Windows when
-## compiled with Visual Studio 6, where the macro value is set in the
-## src/H5pubconf.h file)
-##
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiling unsigned long long to floating-point typecasts work" >&5
-$as_echo_n "checking if compiling unsigned long long to floating-point typecasts work... " >&6; }
-if ${hdf5_cv_ullong_to_fp_cast_works+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  hdf5_cv_ullong_to_fp_cast_works=yes
-fi
-
-
-if test ${hdf5_cv_ullong_to_fp_cast_works} = "yes"; then
-
-$as_echo "#define ULLONG_TO_FP_CAST_WORKS 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 machine can _compile_
-## 'long long' to 'float' and 'double' typecasts.
-## (This flag should be set for all machines, except for under Windows when
-## compiled with Visual Studio 6, where the macro value is set in the
-## src/H5pubconf.h file)
-##
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiling long long to floating-point typecasts work" >&5
-$as_echo_n "checking if compiling long long to floating-point typecasts work... " >&6; }
-if ${hdf5_cv_llong_to_fp_cast_works+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  hdf5_cv_llong_to_fp_cast_works=yes
-fi
-
-
-if test ${hdf5_cv_llong_to_fp_cast_works} = "yes"; then
-
-$as_echo "#define LLONG_TO_FP_CAST_WORKS 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 machine can convert from
-## 'unsigned long long' to 'long double' without precision loss.
-## (This flag should be set for all machines, except for FreeBSD(sleipnir)
-## 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.)
-##
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if converting unsigned long long to long double with precision" >&5
-$as_echo_n "checking if converting unsigned long long to long double with precision... " >&6; }
-
-if test ${ac_cv_sizeof_long_double} = 0; then
-   hdf5_cv_ullong_to_ldouble_precision=${hdf5_cv_ullong_to_ldouble_precision=no}
-else
-   if ${hdf5_cv_ullong_to_ldouble_precision+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  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 confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.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);
-        }
-
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  hdf5_cv_ullong_to_ldouble_precision=yes
-else
-  hdf5_cv_ullong_to_ldouble_precision=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-
-fi
-
-if test ${hdf5_cv_ullong_to_ldouble_precision} = "yes"; then
-
-$as_echo "#define ULLONG_TO_LDOUBLE_PRECISION 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 machine can handle overflow converting
 ## all floating-point to all integer types.
@@ -30822,7 +28001,7 @@ fi
 
 ## ----------------------------------------------------------------------
 ## Set some variables for general configuration information to be saved
-## and installed with the libraries.
+## and installed with the libraries (used to generate libhdf5.settings).
 ##
 
 ## HDF5 version from the first line of the README.txt file.
@@ -30933,86 +28112,6 @@ fi
  ROOT="`$pwd`"
 
 ## ----------------------------------------------------------------------
-## Move any compiler-specific libraries into the main LIBS varaible.
-##
-LIBS="$DEFAULT_LIBS $LIBS"
-
-## ----------------------------------------------------------------------
-## Determine the runtime libraries we may need to include in the
-## libtools command so that executables will find the correct dynamic
-## libraries.
-##
- DYNAMIC_DIRS=""
-
-if test -n "$AM_LDFLAGS $LDFLAGS"; then
-  for d in $AM_LDFLAGS $LDFLAGS ; do
-    case "$d" in
-      -L*)
-        d="`echo $d | sed -e 's/-L//g'`"
-        case "$d" in
-          .*)
-            ## If the path isn't absolute, make it so by
-            ## prepending the ROOT directory to it.
-            d=${ROOT}/$d
-            ;;
-        esac
-        DYNAMIC_DIRS="-R${d} $DYNAMIC_DIRS"
-        ;;
-    esac
-  done
-fi
-
-if test -n "$AM_CPPFLAGS"; then
-  TEMP_CPPFLAGS=""
-  for d in $AM_CPPFLAGS ; do
-    case "$d" in
-      -I.*)
-        ## If the path isn't absolute, make it so by prepending
-        ## the ROOT directory to it.
-        d="`echo $d | sed -e 's/-I//g'`"
-        d="-I${ROOT}/${d}"
-        ;;
-    esac
-    TEMP_CPPFLAGS="$d $TEMP_CPPFLAGS"
-  done
-  AM_CPPFLAGS=$TEMP_CPPFLAGS
-fi
-
-## ----------------------------------------------------------------------
-## Check if they would like the High Level library  compiled
-##
-
- HL=""
-## name of fortran folder inside "hl", if FORTRAN compile is requested
- HL_FOR=""
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if high level library is enabled" >&5
-$as_echo_n "checking if high level library is enabled... " >&6; }
-# Check whether --enable-hl was given.
-if test "${enable_hl+set}" = set; then :
-  enableval=$enable_hl; HDF5_HL=$enableval
-else
-  HDF5_HL=yes
-fi
-
-
-if test "X$HDF5_HL" = "Xyes"; then
- echo "yes"
- HL="hl"
-
-$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).
 ## Check if they want such programs built anyway.
@@ -31312,18 +28411,8 @@ fi
 
 ## The directory search list
  SEARCH='$(srcdir) $(top_builddir)/src $(top_srcdir)/src'
-cmd='echo $SEARCH |sed "s/ /'$SEARCH_SEP'/g"'
-SEARCH="$SEARCH_RULE`eval $cmd`"
 export SEARCH
 
-## We don't need to say when we're entering directories if we're using
-## GNU make because make does it for us.
-if test "X$GMAKE" = "Xyes"; then
-   SETX=":"
-else
-   SETX="set -x"
-fi
-
 ## Some cleanup stuff
 rm -f conftest conftest.o conftest.c dummy.o *.mod
 
@@ -31756,7 +28845,7 @@ Usage: $0 [OPTIONS]
 Report bugs to <bug-libtool at gnu.org>."
 
 lt_cl_version="\
-HDF5 config.lt 1.8.14
+HDF5 config.lt 1.8.15
 configured by $0, generated by GNU Autoconf 2.69.
 
 Copyright (C) 2011 Free Software Foundation, Inc.
@@ -31799,9 +28888,6 @@ cat >>"$CONFIG_LT" <<_LTEOF
 sed_quote_subst='$sed_quote_subst'
 double_quote_subst='$double_quote_subst'
 delay_variable_subst='$delay_variable_subst'
-AS='`$ECHO "$AS" | $SED "$delay_single_quote_subst"`'
-DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
-OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
 macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`'
 macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`'
 enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`'
@@ -31835,10 +28921,12 @@ lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_q
 lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'
 reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
 reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
+OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
 deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
 file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
 file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`'
 want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`'
+DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
 sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'
 AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
 AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
@@ -32046,10 +29134,7 @@ _LTECHO_EOF'
 }
 
 # Quote evaled strings.
-for var in AS \
-DLLTOOL \
-OBJDUMP \
-SHELL \
+for var in SHELL \
 ECHO \
 PATH_SEPARATOR \
 SED \
@@ -32062,10 +29147,12 @@ LN_S \
 lt_SP2NL \
 lt_NL2SP \
 reload_flag \
+OBJDUMP \
 deplibs_check_method \
 file_magic_cmd \
 file_magic_glob \
 want_nocaseglob \
+DLLTOOL \
 sharedlib_from_linklib_cmd \
 AR \
 AR_FLAGS \
@@ -32312,15 +29399,6 @@ available_tags="CXX FC "
 
 # ### BEGIN LIBTOOL CONFIG
 
-# Assembler program.
-AS=$lt_AS
-
-# DLL creation program.
-DLLTOOL=$lt_DLLTOOL
-
-# Object dumper program.
-OBJDUMP=$lt_OBJDUMP
-
 # Which release of libtool.m4 was used?
 macro_version=$macro_version
 macro_revision=$macro_revision
@@ -32401,6 +29479,9 @@ to_host_file_cmd=$lt_cv_to_host_file_cmd
 # convert \$build files to toolchain format.
 to_tool_file_cmd=$lt_cv_to_tool_file_cmd
 
+# An object symbol dumper.
+OBJDUMP=$lt_OBJDUMP
+
 # Method to check whether dependent libraries are shared objects.
 deplibs_check_method=$lt_deplibs_check_method
 
@@ -32413,6 +29494,9 @@ file_magic_glob=$lt_file_magic_glob
 # Find potential files using nocaseglob when deplibs_check_method = "file_magic".
 want_nocaseglob=$lt_want_nocaseglob
 
+# DLL creation program.
+DLLTOOL=$lt_DLLTOOL
+
 # Command to associate shared and link libraries.
 sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd
 
@@ -33235,23 +30319,6 @@ touch ./config/stamp2
 ## Finally the makefiles
 test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
 
-## Post processing to patch up some deficiencies in libtool
-case $host_os in
-  linux* | freebsd* )
-    ## If gcc is not used, need to set $wl to use "-Wl,"
-    if $CC -v 2>&1 | grep '^gcc' > /dev/null ; then
-      : using gcc
-    else
-      echo 'fixing $wl in' $ofile
-ed - $ofile <<EOF 2> /dev/null
-g/^wl=""/s//wl="-Wl,"/
-w
-q
-EOF
-    fi
-    ;;
-esac
-
 ## Are we compiling static libraries, shared libraries, or both?  This
 ## is only used for the libhdf5.settings file. We can't just look at
 ## $enable_static and $enable_shared because if they're yes the ltconfig
@@ -33292,7 +30359,7 @@ else
 fi
 
 
-ac_config_files="$ac_config_files src/libhdf5.settings Makefile src/Makefile test/Makefile test/testcheck_version.sh test/testerror.sh test/H5srcdir_str.h test/testlibinfo.sh test/testlinks_env.sh test/test_plugin.sh testpar/Makefile perform/Makefile tools/Makefile tools/h5dump/Makefile tools/h5dump/testh5dump.sh tools/h5dump/testh5dumppbits.sh tools/h5dump/testh5dumpxml.sh tools/h5ls/testh5ls.sh tools/h5import/Makefile tools/h5import/h5importtestutil.sh tools/h5diff/Makefile tools/h5dif [...]
+ac_config_files="$ac_config_files src/libhdf5.settings Makefile src/Makefile test/Makefile test/testcheck_version.sh test/testerror.sh test/H5srcdir_str.h test/testlibinfo.sh test/testlinks_env.sh test/test_plugin.sh testpar/Makefile tools/Makefile tools/h5dump/Makefile tools/h5dump/testh5dump.sh tools/h5dump/testh5dumppbits.sh tools/h5dump/testh5dumpxml.sh tools/h5ls/testh5ls.sh tools/h5import/Makefile tools/h5import/h5importtestutil.sh tools/h5diff/Makefile tools/h5diff/testh5diff.sh t [...]
 
 
 cat >confcache <<\_ACEOF
@@ -33460,10 +30527,6 @@ if test -z "${FORTRAN_SHARED_CONDITIONAL_TRUE}" && test -z "${FORTRAN_SHARED_CON
   as_fn_error $? "conditional \"FORTRAN_SHARED_CONDITIONAL\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
-if test -z "${CXX_SHARED_CONDITIONAL_TRUE}" && test -z "${CXX_SHARED_CONDITIONAL_FALSE}"; then
-  as_fn_error $? "conditional \"CXX_SHARED_CONDITIONAL\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
 if test -z "${USE_PLUGINS_CONDITIONAL_TRUE}" && test -z "${USE_PLUGINS_CONDITIONAL_FALSE}"; then
   as_fn_error $? "conditional \"USE_PLUGINS_CONDITIONAL\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -33898,7 +30961,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.14, which was
+This file was extended by HDF5 $as_me 1.8.15, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -33964,7 +31027,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.14
+HDF5 config.status 1.8.15
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
@@ -34093,9 +31156,6 @@ AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
 sed_quote_subst='$sed_quote_subst'
 double_quote_subst='$double_quote_subst'
 delay_variable_subst='$delay_variable_subst'
-AS='`$ECHO "$AS" | $SED "$delay_single_quote_subst"`'
-DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
-OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
 macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`'
 macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`'
 enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`'
@@ -34129,10 +31189,12 @@ lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_q
 lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'
 reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
 reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
+OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
 deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
 file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
 file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`'
 want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`'
+DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
 sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'
 AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
 AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
@@ -34340,10 +31402,7 @@ _LTECHO_EOF'
 }
 
 # Quote evaled strings.
-for var in AS \
-DLLTOOL \
-OBJDUMP \
-SHELL \
+for var in SHELL \
 ECHO \
 PATH_SEPARATOR \
 SED \
@@ -34356,10 +31415,12 @@ LN_S \
 lt_SP2NL \
 lt_NL2SP \
 reload_flag \
+OBJDUMP \
 deplibs_check_method \
 file_magic_cmd \
 file_magic_glob \
 want_nocaseglob \
+DLLTOOL \
 sharedlib_from_linklib_cmd \
 AR \
 AR_FLAGS \
@@ -34572,7 +31633,6 @@ do
     "test/testlinks_env.sh") CONFIG_FILES="$CONFIG_FILES test/testlinks_env.sh" ;;
     "test/test_plugin.sh") CONFIG_FILES="$CONFIG_FILES test/test_plugin.sh" ;;
     "testpar/Makefile") CONFIG_FILES="$CONFIG_FILES testpar/Makefile" ;;
-    "perform/Makefile") CONFIG_FILES="$CONFIG_FILES perform/Makefile" ;;
     "tools/Makefile") CONFIG_FILES="$CONFIG_FILES tools/Makefile" ;;
     "tools/h5dump/Makefile") CONFIG_FILES="$CONFIG_FILES tools/h5dump/Makefile" ;;
     "tools/h5dump/testh5dump.sh") CONFIG_FILES="$CONFIG_FILES tools/h5dump/testh5dump.sh" ;;
@@ -34599,6 +31659,7 @@ do
     "tools/misc/testh5repart.sh") CONFIG_FILES="$CONFIG_FILES tools/misc/testh5repart.sh" ;;
     "tools/h5stat/testh5stat.sh") CONFIG_FILES="$CONFIG_FILES tools/h5stat/testh5stat.sh" ;;
     "tools/h5stat/Makefile") CONFIG_FILES="$CONFIG_FILES tools/h5stat/Makefile" ;;
+    "tools/perform/Makefile") CONFIG_FILES="$CONFIG_FILES tools/perform/Makefile" ;;
     "examples/Makefile") CONFIG_FILES="$CONFIG_FILES examples/Makefile" ;;
     "examples/run-c-ex.sh") CONFIG_FILES="$CONFIG_FILES examples/run-c-ex.sh" ;;
     "examples/testh5cc.sh") CONFIG_FILES="$CONFIG_FILES examples/testh5cc.sh" ;;
@@ -35396,15 +32457,6 @@ available_tags="CXX FC "
 
 # ### BEGIN LIBTOOL CONFIG
 
-# Assembler program.
-AS=$lt_AS
-
-# DLL creation program.
-DLLTOOL=$lt_DLLTOOL
-
-# Object dumper program.
-OBJDUMP=$lt_OBJDUMP
-
 # Which release of libtool.m4 was used?
 macro_version=$macro_version
 macro_revision=$macro_revision
@@ -35485,6 +32537,9 @@ to_host_file_cmd=$lt_cv_to_host_file_cmd
 # convert \$build files to toolchain format.
 to_tool_file_cmd=$lt_cv_to_tool_file_cmd
 
+# An object symbol dumper.
+OBJDUMP=$lt_OBJDUMP
+
 # Method to check whether dependent libraries are shared objects.
 deplibs_check_method=$lt_deplibs_check_method
 
@@ -35497,6 +32552,9 @@ file_magic_glob=$lt_file_magic_glob
 # Find potential files using nocaseglob when deplibs_check_method = "file_magic".
 want_nocaseglob=$lt_want_nocaseglob
 
+# DLL creation program.
+DLLTOOL=$lt_DLLTOOL
+
 # Command to associate shared and link libraries.
 sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd
 
@@ -36354,5 +33412,11 @@ cat >> src/H5config.h <<EOF
 #endif
 EOF
 
+## HDF5 configure code created by autotools with gcc 4.9.2 is adding problematic
+## linker flags:  -l with no library name; -l <libname>, specifically gfortran or m.
+## This sed script corrects "-l <libname>" first and then "-l " with no library name.
+## If the order is not preserved, all instances of "-l " will be removed.
+sed -e '/^postdeps/ s/-l \(a-zA-Z\)/-l\1/g' -e '/^postdeps/ s/-l //g' -i libtool
+
 ## show the configure settings
 cat src/libhdf5.settings
diff --git a/configure.ac b/configure.ac
index 71070ba..fea421f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -16,7 +16,7 @@
 ## ----------------------------------------------------------------------
 ## Initialize configure.
 ##
-AC_REVISION($Id: configure.ac 25805 2014-11-07 13:00:29Z epourmal $)
+AC_REVISION($Id: configure.ac 26991 2015-05-01 19:00:32Z 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.14], [help at hdfgroup.org])
+AC_INIT([HDF5], [1.8.15], [help at hdfgroup.org])
 AC_CONFIG_SRCDIR([src/H5.c])
 AC_CONFIG_HEADER([src/H5config.h])
 
@@ -110,17 +110,12 @@ AC_SUBST([AM_CXXFLAGS])
 AC_SUBST([AM_CPPFLAGS])
 AC_SUBST([AM_LDFLAGS])
 
-## Make sure flags are set to something (otherwise macros may set them later).
+## Make sure flags are initialized.
 AM_CFLAGS="${AM_CFLAGS}"
 AM_CXXFLAGS="${AM_CXXFLAGS}"
 AM_FCFLAGS="${AM_FCFLAGS}"
 AM_CPPFLAGS="${AM_CPPFLAGS}"
-# 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
+AM_LDFLAGS="${AM_LDFLAGS}"
 CFLAGS="${CFLAGS}"
 CXXFLAGS="${CXXFLAGS}"
 FCFLAGS="${FCFLAGS}"
@@ -136,12 +131,6 @@ saved_user_FCFLAGS="$FCFLAGS"
 saved_user_LDFLAGS="$LDFLAGS"
 saved_user_CPPFLAGS="$CPPFLAGS"
 
-## Different compilers may need default libraries. They are specified in
-## the config/* files, so we put this statement here so that it'll be
-## set by the code which follows...
-##
-DEFAULT_LIBS=""
-
 ## Support F9X variable to define Fortran compiler if FC variable is
 ## not used.  This should be deprecated in the future.
 if test "x" = "x$FC"; then
@@ -165,7 +154,6 @@ AC_MSG_RESULT([done])
 ## HDF_CXX: whether C++ is enabled. Default no.
 ## CXX: C++ compiler.
 ## HDF5_HL: whether high-level library is enabled. Default is yes.
-## LARGEFILE: whether largefile support is enabled. Default yes.
 ## INSTRUMENT: whether INSTRUMENT is enabled. No default set here.
 ## CODESTACK: whether CODESTACK is enabled. Default no.
 ## HAVE_DMALLOC: whether system has dmalloc support. Default no.
@@ -186,7 +174,6 @@ AC_SUBST([FC2003]) HDF_FORTRAN2003=no
 AC_SUBST([HDF_CXX]) HDF_CXX=no
 AC_SUBST([CXX]) HDF_CXX=no
 AC_SUBST([HDF5_HL]) HDF5_HL=yes
-AC_SUBST([LARGEFILE]) LARGEFILE=yes
 AC_SUBST([INSTRUMENT])
 AC_SUBST([CODESTACK]) CODESTACK=no
 AC_SUBST([HAVE_DMALLOC]) HAVE_DMALLOC=no
@@ -200,15 +187,9 @@ AC_SUBST([UNAME_INFO]) UNAME_INFO=`uname -a`
 ## ----------------------------------------------------------------------
 ## Some platforms have broken basename, and/or xargs programs. Check
 ## that it actually does what it's supposed to do. Catch this early
-## since configure relies upon them heavily and there's no use continuing
-## if it's broken.
+## since configure and scripts relies upon them heavily and there's 
+## no use continuing if it's broken.
 ##
-
-## Avoid depending upon Character Ranges.
-## These are defined by autoconf.
-## as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-## as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-
 AC_MSG_CHECKING([if basename works])
 BASENAME_TEST="`basename /foo/bar/baz/qux/basename_works`"
 if test $BASENAME_TEST != "basename_works"; then
@@ -217,6 +198,7 @@ else
   AC_MSG_RESULT([yes])
 fi
 
+## xargs basename used in configure to get the CC_BASENAME value
 AC_MSG_CHECKING([if xargs works])
 XARGS_TEST="`echo /foo/bar/baz/qux/xargs_works | xargs basename`"
 if test $XARGS_TEST != "xargs_works"; then
@@ -262,12 +244,6 @@ case $host_os in
   freebsd*)
     host_os_novers=freebsd
     ;;
-  irix5.*)
-    host_os_novers=irix5.x
-    ;;
-  irix6.*)
-    host_os_novers=irix6.x
-    ;;
   osf4.*)
     host_os_novers=osf4.x
     ;;
@@ -377,7 +353,7 @@ AC_SUBST([HDF5_INTERFACES]) HDF5_INTERFACES=""
 AC_MSG_CHECKING([if Fortran interface enabled])
 AC_ARG_ENABLE([fortran],
               [AS_HELP_STRING([--enable-fortran],
-                              [Compile the Fortran 77/90/95 interface [default=no]])],
+                              [Compile the Fortran 90/95 interface [default=no]])],
               [HDF_FORTRAN=$enableval])
 
 if test "X$HDF_FORTRAN" = "Xyes"; then
@@ -404,14 +380,13 @@ if test "X$HDF_FORTRAN2003" = "Xyes" && test "X$HDF_FORTRAN" = "Xno"; then
   echo "no"
   AC_MSG_ERROR([--enable-fortran must be used with --enable-fortran2003])
 else
-  echo "yes"
+  if test "X$HDF_FORTRAN2003" = "Xyes" && test "X$HDF_FORTRAN" = "Xyes"; then
+    echo "yes"
+  else
+    echo "no"
+  fi
 fi
 
-HAVE_SIZEOF="no"
-HAVE_C_SIZEOF="no"
-HAVE_STORAGE_SIZE="no"
-FORTRAN_DEFAULT_REALisDBLE="no"
-
 if test "X$HDF_FORTRAN" = "Xyes"; then
 
   AC_SUBST([FC]) HDF_FORTRAN=yes
@@ -420,12 +395,6 @@ if test "X$HDF_FORTRAN" = "Xyes"; then
   HDF5_INTERFACES="$HDF5_INTERFACES fortran"
 
   ## --------------------------------------------------------------------
-  ## Default for FORTRAN 2003 compliant compilers
-  ##
-  HAVE_FORTRAN_2003="no"
-  HAVE_F2003_REQUIREMENTS="no"
-
-  ## --------------------------------------------------------------------
   ## HDF5 integer variables for the H5fortran_types.f90 file.
   ##
   AC_SUBST([R_LARGE])
@@ -446,16 +415,11 @@ if test "X$HDF_FORTRAN" = "Xyes"; then
   AC_SUBST([FSEARCH_DIRS])
 
   ## --------------------------------------------------------------------
-  ## Check for a Fortran 9X compiler and how to include modules.
+  ## Check for a Fortran compiler and how to include modules.
   ## 
-  AC_PROG_FC([f90 pgf90 slf90 f95 g95 xlf95 efc ifort ftn],)
+  AC_PROG_FC([PAC_FC_SEARCH_LIST],)
   AC_F9X_MODS
 
-  ## It seems that libtool (as of Libtool 1.5.14) is trying to
-  ## configure itself for Fortran 77.
-  ## Tell it that our F77 compiler is $FC (actually a F9X compiler)
-  F77=$FC
-
   ## Change to the Fortran 90 language
   AC_LANG_PUSH(Fortran)
 
@@ -465,116 +429,28 @@ if test "X$HDF_FORTRAN" = "Xyes"; then
   AC_FC_WRAPPERS
 
   ## --------------------------------------------------------------------
-  ## See if the compiler will support the "-I." option
-  ##
-  dnl  AM_FCFLAGS_saved=$AM_FCFLAGS
-  dnl  AM_FCFLAGS="${AM_FCFLAGS} -I."
-
-  dnl  AC_MSG_CHECKING(if compiler supports -I. option)
-  dnl  AC_TRY_FCOMPILE([
-  dnl      program conftest
-  dnl      end
-  dnl  ], AC_MSG_RESULT(yes),
-  dnl     AC_MSG_RESULT(no)
-  dnl     AM_FCFLAGS="$AM_FCFLAGS_saved")
-
-  ## --------------------------------------------------------------------
   ## See if the fortran compiler supports the intrinsic function "SIZEOF"
-
-  AC_MSG_CHECKING([if Fortran compiler supports intrinsic SIZEOF])
-  AC_TRY_RUN([ 
-   PROGRAM main
-     i = sizeof(x)
-   END PROGRAM
-  ], [AC_MSG_RESULT([yes])
-     	HAVE_SIZEOF="yes"],
-     [AC_MSG_RESULT([no])])
+  PAC_PROG_FC_SIZEOF
 
   ## 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])])
+  PAC_PROG_FC_C_SIZEOF
 
   ## 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])])
+  PAC_PROG_FC_STORAGE_SIZE	
 
   ## Check to see if -r8 was specified to determine if we need to
   ## compile the DOUBLE PRECISION interfaces.
-
-  AC_MSG_CHECKING([if Fortran default REAL is DOUBLE PRECISION])
-  
-  AC_TRY_RUN([
-     MODULE type_mod
-       INTERFACE h5t	
-         MODULE PROCEDURE h5t_real
-         MODULE PROCEDURE h5t_dble
-       END INTERFACE
-     CONTAINS
-       SUBROUTINE h5t_real(r)
-         REAL :: r
-       END SUBROUTINE h5t_real
-       SUBROUTINE h5t_dble(d)
-         DOUBLE PRECISION :: d
-       END SUBROUTINE h5t_dble
-     END MODULE type_mod
-     PROGRAM main
-       USE type_mod
-       REAL :: r
-       DOUBLE PRECISION :: d
-       CALL h5t(r)
-       CALL h5t(d)
-     END PROGRAM main
-                  ],
-    [AC_MSG_RESULT([no])], 
-    [AC_MSG_RESULT([yes])
-        FORTRAN_DEFAULT_REALisDBLE="yes"])
+  PAC_PROG_FC_DEFAULT_REALisDBLE	
 
   if test "X$HDF_FORTRAN2003" = "Xyes"; then
 
     ## Checking if the compiler supports the required Fortran 2003 features and
     ## disable Fortran 2003 if it does not.
-
-    AC_MSG_CHECKING([if Fortran compiler version compatible with Fortran 2003 HDF])
-    HAVE_FORTRAN_2003="no"
-	
-    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[
-
-	USE iso_c_binding
-	IMPLICIT NONE
-	TYPE(C_PTR) :: ptr
-	TYPE(C_FUNPTR) :: funptr
-	CHARACTER(LEN=80, KIND=c_char), TARGET :: ichr
-
-	ptr = C_LOC(ichr(1:1))
-
-        ])], 
-      [AC_MSG_RESULT([yes])
-        HAVE_F2003_REQUIREMENTS=[yes]], 
-      [AC_MSG_RESULT([no])])
+    PAC_PROG_FC_HAVE_F2003_REQUIREMENTS
+ 
     if test "X$HAVE_F2003_REQUIREMENTS" = "Xno"; then
-    ##  echo $HAVE_FORTRAN_2003
       AC_MSG_ERROR([Fortran compiler lacks required Fortran 2003 features; unsupported Fortran 2003 compiler, remove --enable-fortran2003])
     else
-    ##  echo $HAVE_FORTRAN_2003
       HAVE_FORTRAN_2003="yes"
     fi
   fi
@@ -585,14 +461,12 @@ fi
 ## Change back to the C language
 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_HAVE_SIZEOF], [test "X$HAVE_SIZEOF_FORTRAN" = "Xyes"])
+AM_CONDITIONAL([FORTRAN_HAVE_C_SIZEOF], [test "X$HAVE_C_SIZEOF_FORTRAN" = "Xyes"])
+AM_CONDITIONAL([FORTRAN_HAVE_STORAGE_SIZE], [test "X$HAVE_STORAGE_SIZE_FORTRAN" = "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
 ##
@@ -616,115 +490,57 @@ if test "X$HDF_CXX" = "Xyes"; then
   ## Change to the C++ language
   AC_LANG_PUSH(C++)
 
-  AC_MSG_CHECKING([if $CXX needs old style header files in includes])
-  AC_TRY_RUN([
-#include <iostream>
-
-int main(void) { return 0; }
-  ], [
-    echo no
-  ], [
-    echo yes
-    CXXFLAGS="${CXXFLAGS} -DOLD_HEADER_FILENAME"
-    AM_CXXFLAGS="${AM_CXXFLAGS} -DOLD_HEADER_FILENAME"
-  ])
-
-  AC_MSG_CHECKING([if $CXX can handle namespaces])
-  AC_TRY_RUN([
-namespace H5 {
-int fnord;
-}
-
-int main(void) {
-   using namespace H5;
-   fnord = 37;
-   return 0;
-} 
-  ], [
-     echo yes
-  ], [
-     echo no
-     CXXFLAGS="${CXXFLAGS} -DH5_NO_NAMESPACE"
-     AM_CXXFLAGS="${AM_CXXFLAGS} -DH5_NO_NAMESPACE"
-  ])
+  # Checking if C++ needs old style header files in includes
+  PAC_PROG_CXX_HEADERS
 
-  AC_MSG_CHECKING([if $CXX supports std])
-  AC_TRY_RUN([
-#include <string>
-
-using namespace std;
-
-int main(void) {
-   string myString("testing namespace std");
-   return 0;
-}
-  ], [
-     echo yes
-  ], [
-     echo no
-     CXXFLAGS="${CXXFLAGS} -DH5_NO_STD"
-     AM_CXXFLAGS="${AM_CXXFLAGS} -DH5_NO_STD"
-  ])
+  # Checking if C++ can handle namespaces
+  PAC_PROG_CXX_NAMESPACE
+  
+  # Checking if C++ has offsetof extension 
+  PAC_PROG_CXX_OFFSETOF
 
-  AC_MSG_CHECKING([if $CXX supports bool types])
-  AC_TRY_RUN([
-int main(void) {
-   bool flag;
-   return 0;
-}
-  ], [
-     echo yes
-  ], [
-     echo no
-     CXXFLAGS="${CXXFLAGS} -DBOOL_NOTDEFINED"
-     AM_CXXFLAGS="${AM_CXXFLAGS} -DBOOL_NOTDEFINED"
-  ])
+  # if C++ can handle static cast
+  PAC_PROG_CXX_STATIC_CAST
 
-  AC_MSG_CHECKING([if $CXX has offsetof extension])
-    AC_TRY_COMPILE([
-  #include <stdio.h>
-  #include <stddef.h>
-    ],[
-    struct index_st
-    {
-      unsigned char type;
-      unsigned char num;
-      unsigned int len;
-    };
-    typedef struct index_st index_t;
-    int x,y;
-    x = offsetof(struct index_st, len);
-    y = offsetof(index_t, num)
-    ],
-    AC_DEFINE([CXX_HAVE_OFFSETOF], [1],
-    [Define if C++ compiler recognizes offsetof])
-    AC_MSG_RESULT([yes]),
-    AC_MSG_RESULT([no]))
-
-  AC_MSG_CHECKING([if $CXX can handle static cast])
-  AC_TRY_RUN([
-int main(void) {
-   float test_float;
-   int test_int;
-   test_float = 37.0;
-   test_int = static_cast <int> (test_float);
-   return 0;
-}
-  ], [
-    echo yes
-  ], [
-    echo no
-    CXXFLAGS="${CXXFLAGS} -DNO_STATIC_CAST"
-    AM_CXXFLAGS="${AM_CXXFLAGS} -DNO_STATIC_CAST"
-  ])
 else
-  echo "no"
+  AC_MSG_RESULT([no])
   CXX="no"
 fi
 
 ## Change back to the C language
 AC_LANG_POP(C++)
 
+
+## ----------------------------------------------------------------------
+## Check if they would like the High Level library  compiled
+##
+
+AC_SUBST(HL) HL=""
+## name of fortran folder inside "hl", if FORTRAN compile is requested
+AC_SUBST(HL_FOR) HL_FOR=""
+AC_MSG_CHECKING([if high level library is enabled])
+AC_ARG_ENABLE([hl],
+     [AS_HELP_STRING([--enable-hl],
+                     [Enable the high level library [default=yes]])],
+     [HDF5_HL=$enableval],
+     [HDF5_HL=yes])
+
+if test "X$HDF5_HL" = "Xyes"; then
+ echo "yes"
+ HL="hl"
+ AC_DEFINE([INCLUDE_HL], [1],
+           [Define if HDF5's high-level library headers should be included in hdf5.h])
+
+  ## If Fortran's default real is double precision 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
+
+
 ## ----------------------------------------------------------------------
 ## Check if they have Perl installed on their system. We only need Perl
 ## if they're using a GNU compiler.
@@ -734,7 +550,6 @@ if test "X$GCC" = "Xyes"; then
   AC_CHECK_PROGS([PERL], [perl],, [$PATH])
 fi
 
-
 ## ----------------------------------------------------------------------
 ## Check which archiving tool to use. This needs to be done before
 ## the AM_PROG_LIBTOOL macro.
@@ -754,20 +569,20 @@ AC_PROG_INSTALL
 
 
 ## ----------------------------------------------------------------------
-## Check that the tr utility is working properly.
+## Set up ${TR} which is used to process DEBUG_PKG.
 
 AC_PATH_PROG([TR], [tr])
 
-TR_TEST=`echo Test | ${TR} ${as_cr_letters}"," ${as_cr_LETTERS}" "`
-if test "X${TR_TEST}" != "XTEST"; then
-  AC_MSG_ERROR([tr program doesn't work])
-fi
-
 
 ## ----------------------------------------------------------------------
 ## Check that time can be used with srcdir.  This is okay on most systems,
 ## but seems to cause problems on Cygwin.
 ## The solution on Cygwin is not to record execution time for tests.
+##
+## Note: This is still true as of Cygwin 1.7.32 (Aug 2014) on both 32-
+## and 64-bit platforms. Given how long this has been true, it seems
+## unlikely to change, but we should probably re-test this periodically.
+
 AC_MSG_CHECKING([if srcdir= and time commands work together])
 
 AC_SUBST([TIME])
@@ -789,16 +604,14 @@ fi
 ##			   a parallel library even if configure wasn't
 ##			   able to find some header file or library that
 ##			   might be required. This is defined if the
-##			   compiler looks like a parallel compiler (e.g.,
-##			   mpicc or mpcc) or if the user explicitly states
+##			   user explicitly states
 ##			   that a parallel library is being built by supplying
 ##			   the `--enable-parallel' configure switch.
 ##
 ##    PARALLEL		-- This variable is set to a non-null value if
-##			   configure thinks we're compiling a parallel
-##			   version of the library.
+##			   we're building a parallel version of the library.
 ##
-##    RUNSERIAL	-- This is a command which will be prepended to
+##    RUNSERIAL	        -- This is a command which will be prepended to
 ##			   the executable name to run the executable using
 ##			   a single process. For serial versions of the
 ##			   library this will normally be empty. For parallel
@@ -824,131 +637,6 @@ AC_SUBST([RUNPARALLEL])
 AC_SUBST([TESTPARALLEL])
 
 ## ----------------------------------------------------------------------
-## If the compiler is obviously a parallel compiler then we're building
-## a parallel version of hdf5 and should define HAVE_PARALLEL. Furthermore,
-## the name of the compiler might tell us how to run the resulting
-## executable. For `mpicc' the executable should be run with `mpiexec' from
-## the same directory as mpicc if it exists.
-##
-case "$CC_BASENAME" in
-  mpicc)
-    ## The mpich compiler. Use mpiexec from the same directory if it
-    ## exists.
-    PARALLEL=mpicc
-    AC_MSG_CHECKING([for mpiexec])
-
-    ## Find the path where mpicc is located.
-    cmd="`echo $CC | cut -f1 -d' '`"
-    if (echo $cmd | grep / >/dev/null); then
-      path="`echo $cmd | sed 's/\(.*\)\/.*$/\1/'`"
-    else
-      for path in `echo $PATH | ${TR} ":" " "`; do
-        if test -x $path/$cmd; then
-          break
-        fi
-      done
-    fi
-
-    ## Is there an mpiexec at that path?
-    if test -x $path/mpiexec; then
-      AC_MSG_RESULT([$path/mpiexec])
-      RUNSERIAL="${RUNSERIAL:-none}"
-
-      if test -z "$RUNPARALLEL"; then
-        RUNPARALLEL="$path/mpiexec -n \$\${NPROCS:=6}"
-      fi
-    else
-      AC_MSG_RESULT([none])
-    fi
-    ;;
-
-  mpcc|mpcc_r)
-    ## The IBM compiler
-    PARALLEL="$CC_BASENAME"
-    ;;
-
-  *)
-    ## Probably not a parallel compiler, but if `--enable-parallel'
-    ## is defined below then we're still building a parallel hdf5.
-    ;;
-esac
-
-## ----------------------------------------------------------------------
-## If the Fortran compiler is obviously a parallel compiler then we're
-## building a parallel version of hdf5 and should define HAVE_PARALLEL.
-## Furthermore, the name of the compiler might tell us how to run the
-## resulting executable. For `mpif90' the executable should be run with
-## `mpiexec' from the same directory as mpif90 if it exists.
-##
-
-if test "X$HDF_FORTRAN" = "Xyes" ; then
-  ## Change to the Fortran 90 language
-  AC_LANG_PUSH(Fortran)
-
-  case "$FC" in
-    *mpif90*)
-      ## The Fortran mpich compiler. Use mpiexec from the same directory
-      ## if it exists.
-      PARALLEL=mpif90
-      AC_MSG_CHECKING([for mpiexec])
-
-      ## Find the path where mpif90 is located.
-      cmd=`echo $FC |cut -f1 -d' '`
-      if (echo $cmd |grep / >/dev/null); then
-        path="`echo $cmd |sed 's/\(.*\)\/.*$/\1/'`"
-      else
-        for path in `echo $PATH | ${TR} ":" " "`; do
-          if test -x $path/$cmd; then
-            break;
-          fi
-        done
-      fi
-
-      ## Is there an mpiexec at that path?
-      if test -x $path/mpiexec; then
-        AC_MSG_RESULT([$path/mpiexec])
-        RUNSERIAL="${RUNSERIAL:-none}"
-
-        if test -z "$RUNPARALLEL"; then
-          RUNPARALLEL="$path/mpiexec -n \$\${NPROCS:=6}"
-        fi
-      else
-        AC_MSG_RESULT([none])
-      fi
-      ;;
-
-    *mpxlf* | *mpxlf_r* | *mpxlf90* | *mpxlf90_r* | *mpxlf95* | *mpxlf95_r*)
-      ## The IBM compiler
-      PARALLEL="$FC"
-      ;;
-
-    *)
-      ## Probably not a parallel compiler, but if `--enable-parallel'
-      ## is defined below then we're still building a parallel hdf5.
-      ;;
-  esac
-
-  ## Change to the C language
-  AC_LANG_POP(Fortran)
-fi
-
-## -----------------------------------------------------------------------------
-## If shared libraries are being used with parallel, disable them, unless the 
-## user explicity enables them via the '--enable-shared' option.
-
-if test "X${enable_shared}" = "X" -a "X${enable_parallel}" = "Xyes"; then
-    echo '    shared libraries disabled in parallel'
-    enable_shared="no"
-elif test "X${enable_shared}" = "Xyes" -a "X${enable_parallel}" = "Xyes"; then
-    echo '    shared libraries explicitly enabled by user'
-elif test "X${enable_shared}" = "X" -a "X${PARALLEL}" != "X"; then
-    echo '    shared libraries disabled when a parallel compiler is being used'
-    enable_shared="no"
-elif test "X${enable_shared}" = "Xyes" -a "X${PARALLEL}" != "X"; then
-    echo '    shared libraries explicitly enabled by user'
-fi
-
-## ----------------------------------------------------------------------
 ## Fortran libraries are not currently supported on Mac. Disable them.
 ## (this is overridable with --enable-unsupported).
 ##
@@ -990,54 +678,6 @@ fi
 AM_CONDITIONAL([FORTRAN_SHARED_CONDITIONAL], [test "X$H5_FORTRAN_SHARED" = "Xyes"])
 
 ## ----------------------------------------------------------------------
-## Disable C++ shared libraries if +DD64 flag is detected.
-##
-AC_SUBST([H5_CXX_SHARED])
-H5_CXX_SHARED="no"
-if test "X${HDF_CXX}" = "Xyes" && test "X${enable_shared}" != "Xno"; then
-  AC_MSG_CHECKING([if shared C++ libraries are supported])
-  H5_CXX_SHARED="yes"
-
-  ## Disable C++ shared libraries if DD64 flag is being used.
-  
-  if (echo dummy ${CXX} ${CXXLD} ${CFLAGS} ${CXXFLAGS} ${LDFLAGS} | grep 'DD64') > /dev/null; then
-    H5_CXX_SHARED="no"
-    CHECK_WARN="Shared C++ libraries not currently supported with +DD64 flag."
-  fi
-
-  ## Report results of check(s)
-  
-  if test "X${H5_CXX_SHARED}" = "Xno"; then
-    AC_MSG_RESULT([no])
-    AC_MSG_WARN([$CHECK_WARN])
-    if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then
-      AC_MSG_WARN([Disabling shared C++ libraries.])
-      AC_MSG_WARN([To override this behavior, please use --enable-unsupported configure option.])
-      if test "X${enable_static}" = "Xno"; then
-        AC_MSG_ERROR([both static and shared C++ libraries are disabled])
-      fi
-    else
-      AC_MSG_WARN([Allowing unsupported C++ shared librares due to use of --enable-unsupported flag])
-    fi
-  else
-    AC_MSG_RESULT([yes])
-  fi
-fi
-
-AM_CONDITIONAL([CXX_SHARED_CONDITIONAL], [test "X$H5_CXX_SHARED" = "Xyes"])
-
-## ----------------------------------------------------------------------
-## pgcc version 6.0x have optimization (-O, -O2 or -O3) problem.  Detect
-## these versions and add option "-Mx,28,0x8" to the compiler to avoid
-## the problem if optimization is enabled.
-##
-
-if (${CC-cc} -V 2>&1 | grep '^pgcc 6.0') > /dev/null && test "X$enable_production" = "Xyes"; then
-    echo 'adding compiler flag to avoid optimization problem in pgcc'
-    CC="${CC-cc} -Mx,28,0x8"
-fi
-
-## ----------------------------------------------------------------------
 ## Shared libraries are not currently supported under Cygwin, so configure
 ## disables them unless --enable-unsupported has been supplied by the user.
 
@@ -1055,15 +695,16 @@ if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then
 fi
 
 ## ----------------------------------------------------------------------
-## Windows won't create DLLs without the following macro.
-##
-AC_LIBTOOL_WIN32_DLL
-
-## ----------------------------------------------------------------------
 ## Create libtool.  If shared/static libraries are going to be enabled
 ## or disabled, it should happen before these macros.
 LT_PREREQ([2.2])
-LT_INIT([dlopen])
+
+## ----------------------------------------------------------------------
+## dlopen - This will use an improved version of libtool
+## win32-dll - This will build clean dlls on win32 platforms.
+LT_INIT([dlopen,win32-dll])
+
+
 
 ## ----------------------------------------------------------------------
 ## Check if we should install only statically linked executables.
@@ -1131,79 +772,6 @@ case "X-$RPATH" in
 esac
 
 ## ----------------------------------------------------------------------
-## Sometimes makes think the `.PATH:' appearing before the first rule
-## with an action should override the `all' default target. So we have
-## to decide what the proper syntax is.
-##
-AC_MSG_CHECKING([how make searches directories])
-while true; do #for break
-  ## The most common method is `VPATH=DIR1 DIR2 ...'
-  cat >maketest <<EOF
-VPATH=$srcdir/config $srcdir/src $srcdir/bin
-.c.o:
-	cp $< H5.o
-
-foo: H5.o
-	rm -f H5.o
-	@echo works
-EOF
-
-  if (${MAKE-make} -f maketest foo) >/dev/null 2>&1; then
-    SEARCH_RULE='VPATH='
-    SEARCH_SEP=' '
-    AC_MSG_RESULT([VPATH=DIR1 DIR2 ...])
-    break
-  fi
-
-  ## The second most common method is like above except with the
-  ## directories separated by colons.
-  cat >maketest <<EOF
-VPATH=$srcdir/config:$srcdir/src:$srcdir/bin
-.c.o:
-	cp $< H5.o
-
-foo: H5.o
-	rm -f H5.o
-	@echo works
-EOF
-
-  if (${MAKE-make} -f maketest foo) >/dev/null 2>&1; then
-    SEARCH_RULE='VPATH='
-    SEARCH_SEP=':'
-    AC_MSG_RESULT([VPATH=DIR1:DIR2:...])
-    break
-  fi
-
-  ## pmake uses the construct `.PATH: DIR1 DIR2
-  cat >maketest <<EOF
-.PATH: $srcdir/config $srcdir/src $srcdir/bin
-.c.o:
-	cp $< H5.o
-
-foo: H5.o
-	rm -f H5.o
-	@echo works
-EOF
-
-  if (MAKE= ${MAKE-make} -f maketest foo) >/dev/null 2>&1; then
-    SEARCH_RULE='.PATH: '
-    SEARCH_SEP=' '
-    AC_MSG_RESULT([.PATH: DIR1 DIR2 ...])
-    break
-  fi
-
-  ## No way for make to search directories
-  SEARCH_RULE='## SEARCH DISABLED: '
-  SEARCH_SEP=' '
-  AC_MSG_RESULT([it doesn't])
-  if test ! -f configure; then
-    AC_MSG_ERROR([${MAKE-make} requires the build and source directories to be the same])
-  fi
-  break
-done
-rm maketest
-
-## ----------------------------------------------------------------------
 ## pmake will throw an error if variables are undefined in a Makefile.
 ## These errors can be changed to warnings using the -V flag.
 ##
@@ -1285,24 +853,12 @@ if test "`uname`" = "SunOS" -o "`uname -sr`" = "HP-UX B.11.00"; then
   AC_CHECK_LIB([nsl], [xdr_int])
 fi
 
-dnl AC_CHECK_LIB([coug], [main])		## ...for ASCI/Red
-
 ## ----------------------------------------------------------------------
 ## Check for system header files.
 ##
 AC_HEADER_STDC
 AC_HEADER_TIME
 
-## ----------------------------------------------------------------------
-## Check for these two functions before the time headers are checked
-## for, otherwise they are not detected correctly on Solaris (the
-## configure test will fail due to multiply-defined symbols).
-##
-AC_CHECK_FUNCS([difftime])
-AC_CHECK_FUNCS([gettimeofday], [have_gettime="yes"], [have_gettime="no"])
-AC_SEARCH_LIBS([clock_gettime], [rt posix4])
-AC_CHECK_FUNCS([clock_gettime],[have_clock_gettime="yes"],[have_clock_gettime="no"])
-
 ## Unix
 AC_CHECK_HEADERS([sys/resource.h sys/time.h unistd.h sys/ioctl.h sys/stat.h])
 AC_CHECK_HEADERS([sys/socket.h sys/types.h])
@@ -1341,7 +897,7 @@ case "$host" in
     ## many problems with including them.
     AC_CHECK_HEADERS([sys/sysinfo.h sys/proc.h])
     ;;
-  mips*-sgi*-irix*)
+  mips*-sgi*)
     ## The <sys/fpu.h> is needed on the SGI machines to turn off
     ## denormalized floating-point values going to zero.  We do *not*
     ## attempt to locate these files on other systems because there
@@ -1373,116 +929,25 @@ if test "X${enable_shared}" = "Xyes"; then
 fi
 
 ## ----------------------------------------------------------------------
-## Test for Largefile support.
-##
-AC_MSG_CHECKING([if configure should try to set up large file support])
-
-AC_ARG_ENABLE([largefile],
-           [AS_HELP_STRING([--disable-largefile],
-                           [omit support for large files])])
-
-## The linux-lfs option is deprecated, but if it is used to disable
-## largefile support on linux and the largefile option is not specified,
-## then go ahead and disable large-file support.
-case "$host_cpu-$host_vendor-$host_os" in
-  *linux*)
-    AC_ARG_ENABLE([linux-lfs],
-                  [AS_HELP_STRING([--disable-linux-lfs],
-                                  [Disable support for large (64-bit)
-                                   files on Linux. This option is 
-                                   deprecated in favor of
-                                   --disable-largefile.])])
-
-    if test "$enable_linux_lfs" = no; then
-      if test "$enable_largefile" != yes; then
-        enable_largefile=no
-      fi
-    fi
-    ;;
-esac
-
-## If largefile support is enabled, then set up appropriate compiler options.
-if test "$enable_largefile" != no; then
-  AC_MSG_RESULT([yes])
+## Use the macro _AC_SYS_LARGEFILE_MACRO_VALUE to test defines
+## that might need to be set for largefile support to behave 
+## correctly. This macro is defined in acsite.m4 and overrides
+## the version provided by Autoconf (as of v2.65). The custom
+## macro additionally adds the appropriate defines to AM_CPPFLAGS 
+## so that later configure checks have them visible. 
 
-  ## Check for needed compiler options. This check is pulled drectly 
-  ## from autoconf's AC_SYS_LARGEFILE macro, as of Autoconf v2.65.
-  AC_CACHE_CHECK([for special C compiler options needed for large files],
-    ac_cv_sys_largefile_CC,
-    [ac_cv_sys_largefile_CC=no
-     if test "$GCC" != yes; then
-       ac_save_CC=$CC
-       while :; do
-         ## IRIX 6.2 and later do not support large files by default,
-         ## so use the C compiler's -n32 option if that helps.
-         AC_LANG_CONFTEST([AC_LANG_PROGRAM([_AC_SYS_LARGEFILE_TEST_INCLUDES])])
-         AC_COMPILE_IFELSE([], [break])
-         CC="$CC -n32"
-         AC_COMPILE_IFELSE([], [ac_cv_sys_largefile_CC=' -n32'; break])
-         break
-       done
-       CC=$ac_save_CC
-       rm -f conftest.$ac_ext
-    fi])
-  if test "$ac_cv_sys_largefile_CC" != no; then
-    CC=$CC$ac_cv_sys_largefile_CC
-  fi
+## Check for _FILE_OFFSET_BITS
+_AC_SYS_LARGEFILE_MACRO_VALUE([_FILE_OFFSET_BITS], [64],
+  [ac_cv_sys_file_offset_bits],
+  [Number of bits in a file offset, on hosts where this is settable.],
+  [_AC_SYS_LARGEFILE_TEST_INCLUDES])
 
-  ## Use the macro _AC_SYS_LARGEFILE_MACRO_VALUE to test defines
-  ## that might need to be set for largefile support to behave 
-  ## correctly. This macro is defined in acsite.m4 and overrides
-  ## the version provided by Autoconf (as of v2.65). The custom
-  ## macro additionally adds the appropriate defines to AM_CPPFLAGS 
-  ## so that later configure checks have them visible. 
-
-  ## Check for _FILE_OFFSET_BITS
-  _AC_SYS_LARGEFILE_MACRO_VALUE([_FILE_OFFSET_BITS], [64],
-    [ac_cv_sys_file_offset_bits],
-    [Number of bits in a file offset, on hosts where this is settable.],
+## Check for _LARGE_FILES
+if test "$ac_cv_sys_file_offset_bits" = unknown; then
+  _AC_SYS_LARGEFILE_MACRO_VALUE([_LARGE_FILES], [1],
+    [ac_cv_sys_large_files],
+    [Define for large files, on AIX-style hosts.],
     [_AC_SYS_LARGEFILE_TEST_INCLUDES])
-
-  ## Check for _LARGE_FILES
-  if test "$ac_cv_sys_file_offset_bits" = unknown; then
-    _AC_SYS_LARGEFILE_MACRO_VALUE([_LARGE_FILES], [1],
-      [ac_cv_sys_large_files],
-      [Define for large files, on AIX-style hosts.],
-      [_AC_SYS_LARGEFILE_TEST_INCLUDES])
-  fi
-
-  ## Now actually test to see if we can create large files after we've
-  ## checked for any needed defines.
-  AC_MSG_CHECKING([if large (64-bit) files are supported on this system.])
-  AC_CACHE_VAL([hdf5_cv_have_lfs],
-    [AC_TRY_RUN([
-      #include <stdio.h>
-      #include <unistd.h>
-      #include <stdlib.h>
-      #include <fcntl.h>
-      #define BIG_FILE (off_t)0x80000000UL 
-      int main(void) {
-        int fd;
-        if ((fd=open("test.conf", O_RDWR|O_TRUNC|O_CREAT, 0666)) < 0) exit(1);
-        if (lseek(fd, BIG_FILE, SEEK_SET)!=BIG_FILE) exit(1);
-        if (5!=write(fd, "hello", (size_t)5)) exit(1);
-        if (lseek(fd, 2*BIG_FILE, SEEK_SET) != 2*BIG_FILE) exit(1);
-        if (5!=write(fd, "hello", (size_t)5)) exit(1);
-        if (unlink("test.conf") < 0) exit(1);
-        exit(0);
-      }
-    ],[hdf5_cv_have_lfs=yes],[hdf5_cv_have_lfs=no],)])
-
-  if test "X${hdf5_cv_have_lfs}" = "Xyes"; then
-    AC_MSG_RESULT([yes])
-    LARGEFILE="yes"
-  fi 
-  if test "X${hdf5_cv_have_lfs}" = "Xno"; then
-    AC_MSG_RESULT([no])
-    LARGEFILE="no"
-  fi 
-
-else
-  LARGEFILE="no"
-  AC_MSG_RESULT([no])
 fi
 
 ## ----------------------------------------------------------------------
@@ -1490,28 +955,35 @@ fi
 ##
 case "$host_cpu-$host_vendor-$host_os" in
   *linux*)
-    ## If largefile support is enabled, then make available various
-    ## LFS-related routines using the following _LARGEFILE*_SOURCE macros.
-    if test "X$LARGEFILE" != "Xno"; then
-        AM_CPPFLAGS="-D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE $AM_CPPFLAGS"
-    fi
+    ## Make available various LFS-related routines using the following 
+    ## _LARGEFILE*_SOURCE macros.
+    AM_CPPFLAGS="-D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE $AM_CPPFLAGS"
 
     ## Add POSIX support on Linux systems, so <features.h> defines
     ## __USE_POSIX, which is required to get the prototype for fdopen
     ## defined correctly in <stdio.h>. 
+    ##
     ## This flag was removed from h5cc as of 2009-10-17 when it was found
     ## that the flag broke compiling netCDF-4 code with h5cc, but kept in 
     ## H5_CPPFLAGS because fdopen and HDfdopen fail without it. HDfdopen
     ## is used only by H5_debug_mask which is used only when debugging in
     ## H5_init_library (all in H5.c).  When the flag was removed this was
     ## the only compile failure noted.
+    ##
     ## 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.
+    ## correctly. This was later updated to 200112L so that
+    ## posix_memalign() is visible for the direct VFD code on Linux
+    ## systems.
+    ##
     ## POSIX feature information can be found in the gcc manual at:
     ## http://www.gnu.org/s/libc/manual/html_node/Feature-Test-Macros.html
-    H5_CPPFLAGS="-D_POSIX_C_SOURCE=199506L $H5_CPPFLAGS"
+    H5_CPPFLAGS="-D_POSIX_C_SOURCE=200112L $H5_CPPFLAGS"
+
+    ## Need to add this so that O_DIRECT is visible for the direct
+    ## VFD on Linux systems.
+    H5_CPPFLAGS="-D_GNU_SOURCE $H5_CPPFLAGS"
 
     ## Also add BSD support on Linux systems, so <features.h> defines
     ## __USE_BSD, which is required to get the prototype for strdup
@@ -1521,7 +993,12 @@ case "$host_cpu-$host_vendor-$host_os" in
     ## http://www.gnu.org/s/libc/manual/html_node/Feature-Test-Macros.html
     ## however, we do not do this since it breaks the big test on some 
     ## older platforms.
-    AM_CPPFLAGS="-D_BSD_SOURCE $AM_CPPFLAGS"
+    H5_CPPFLAGS="-D_BSD_SOURCE $H5_CPPFLAGS"
+
+    ## _BSD_SOURCE is deprecated as of glibc 2.20, in favor of _DEFAULT_SOURCE.
+    ## To avoid warnings, we define _DEFAULT_SOURCE in addition to _BSD_SOURCE,
+    ## which should work for all versions of glibc.
+    H5_CPPFLAGS="-D_DEFAULT_SOURCE $H5_CPPFLAGS"
     ;;
 esac
 
@@ -1697,15 +1174,6 @@ case $withval in
         ;;
     esac
 
-    ## Trying to include -I/usr/include and -L/usr/lib is redundant and
-    ## can mess some compilers up.
-    if test "X$dmalloc_inc" = "X/usr/include"; then
-      dmalloc_inc=""
-    fi
-    if test "X$dmalloc_lib" = "X/usr/lib"; then
-      dmalloc_lib=""
-    fi
-
     saved_CPPFLAGS="$CPPFLAGS"
     saved_AM_CPPFLAGS="$AM_CPPFLAGS"
     saved_LDFLAGS="$LDFLAGS"
@@ -1763,7 +1231,7 @@ case $withval in
     ;;
   no)
     HAVE_ZLIB="no"
-    AC_MSG_CHECKING([for GNU zlib])
+    AC_MSG_CHECKING([for zlib])
     AC_MSG_RESULT([suppressed])
     ;;
   *)
@@ -1781,15 +1249,6 @@ case $withval in
         ;;
     esac
 
-    ## Trying to include -I/usr/include and -L/usr/lib is redundant and
-    ## can mess some compilers up.
-    if test "X$zlib_inc" = "X/usr/include"; then
-      zlib_inc=""
-    fi
-    if test "X$zlib_lib" = "X/usr/lib"; then
-      zlib_lib=""
-    fi
-
     saved_CPPFLAGS="$CPPFLAGS"
     saved_AM_CPPFLAGS="$AM_CPPFLAGS"
     saved_LDFLAGS="$LDFLAGS"
@@ -1880,15 +1339,6 @@ case $withval in
         ;;
     esac
     
-    ## Trying to include -I/usr/include and -L/usr/lib is redundant and
-    ## can mess some compilers up.
-    if test "X$szlib_inc" = "X/usr/include"; then
-      szlib_inc=""
-    fi 
-    if test "X$szlib_lib" = "X/usr/lib"; then
-      szlib_lib=""
-    fi
-    
     saved_CPPFLAGS="$CPPFLAGS"
     saved_AM_CPPFLAGS="$AM_CPPFLAGS"
     saved_LDFLAGS="$LDFLAGS"
@@ -2065,15 +1515,6 @@ if test "X$THREADSAFE" = "Xyes"; then
             ;;
         esac
 
-        ## Trying to include -I/usr/include and -L/usr/lib is redundant and
-        ## can mess some compilers up.
-        if test "X$pthread_inc" = "X/usr/include"; then
-          pthread_inc=""
-        fi
-        if test "X$pthread_lib" = "X/usr/lib"; then
-          pthread_lib=""
-        fi
-
         if test -n "$pthread_inc"; then
           saved_CPPFLAGS="$CPPFLAGS"
           saved_AM_CPPFLAGS="$AM_CPPFLAGS"
@@ -2121,16 +1562,6 @@ AC_TRY_COMPILE([
     AC_MSG_RESULT([yes])],
   [AC_MSG_RESULT([no])])
 
-## check if `struct tm' has a `__tm_gmtoff' member.
-AC_MSG_CHECKING([for __tm_gmtoff in struct tm])
-AC_TRY_COMPILE([
-  #include <sys/time.h>
-  #include <time.h>], [struct tm tm; tm.__tm_gmtoff=0;],
-  [AC_DEFINE([HAVE___TM_GMTOFF], [1],
-          [Define if `__tm_gmtoff' is a member of `struct tm'])
-     AC_MSG_RESULT([yes])],
-  [AC_MSG_RESULT([no])])
-
 ## Check whether the global variable `timezone' is defined.
 AC_MSG_CHECKING([for global timezone variable])
 
@@ -2149,50 +1580,6 @@ case "`uname`" in
     ;;
 esac
 
-## Check whether `struct timezone' is defined.
-AC_STRUCT_TIMEZONE
-AC_MSG_CHECKING([for struct timezone])
-AC_TRY_COMPILE([
-  #include <sys/types.h>
-  #include <sys/time.h>
-  #include <time.h>], [struct timezone tz; tz.tz_minuteswest=0;],
-  [AC_DEFINE([HAVE_STRUCT_TIMEZONE], [1],
-          [Define if `struct timezone' is defined])
-    have_struct_tz="yes"
-    AC_MSG_RESULT([yes])],
-  [AC_MSG_RESULT([no])])
-
-## If gettimeofday() is going to be used, make sure it uses the timezone struct
-
-if test "$have_gettime" = "yes" -a "$have_struct_tz" = "yes"; then
-   AC_MSG_CHECKING(whether gettimeofday() gives timezone)
-   AC_CACHE_VAL([hdf5_cv_gettimeofday_tz],
-       [AC_TRY_RUN([
-          #include <time.h>
-          #include <sys/time.h>
-          int main(void)
-          {
-             struct timeval tv;
-             struct timezone tz;
-             tz.tz_minuteswest = 7777;  /* Initialize to an unreasonable number */
-             tz.tz_dsttime = 7;
-             gettimeofday(&tv, &tz);
-                /* Check whether the function returned any value at all */
-             if(tz.tz_minuteswest == 7777 && tz.tz_dsttime == 7)
-                exit(1);
-             else exit (0);
-          }], 
-          [hdf5_cv_gettimeofday_tz=yes], 
-          [hdf5_cv_gettimeofday_tz=no])])
-
-   if test ${hdf5_cv_gettimeofday_tz} = "yes"; then
-      AC_MSG_RESULT([yes])
-      AC_DEFINE([GETTIMEOFDAY_GIVES_TZ], [1],
-                [Define if gettimeofday() populates the tz pointer passed in])
-   else
-      AC_MSG_RESULT([no])
-   fi
-fi 
 
 ## ----------------------------------------------------------------------
 ## Does the struct stat have the st_blocks field?  This field is not Posix.
@@ -2250,90 +1637,15 @@ AC_TRY_COMPILE([#include <sys/ioctl.h>],[int w=TIOCGETD;],
 ## ----------------------------------------------------------------------
 ## Check for functions.
 ##
-AC_CHECK_FUNCS([alarm BSDgettimeofday fork frexpf frexpl])
-AC_CHECK_FUNCS([gethostname getpwuid getrusage lstat])
-AC_CHECK_FUNCS([rand_r random setsysinfo])
+## NOTE: clock_gettime may require linking to the rt or posix4 library
+##       so we'll search for it before calling AC_CHECK_FUNCS.
+AC_SEARCH_LIBS([clock_gettime], [rt posix4])
+AC_CHECK_FUNCS([alarm clock_gettime difftime fork frexpf frexpl])
+AC_CHECK_FUNCS([gethostname getpwuid getrusage gettimeofday])
+AC_CHECK_FUNCS([lstat 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 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
-## for the buffer provided
-AC_CHECK_FUNCS([vsnprintf],
-
-    ## Check if vsnprintf() returns correct size for strings that don't fit
-    ## into the size allowed.  If vsnprintf() works correctly on this platform,
-    ## it should return a value of 42 for the test below
-    ##
-    ## Note that vsnprintf fails in two different ways:
-    ##         - In IRIX64, calls to vnsprintf() with a formatted string that
-    ##                 is larger than the buffer size allowed incorrectly
-    ##                 return the size of the buffer minus one.
-    ##         - In HP/UX, calls to vsnprintf() with a formatted string that
-    ##                 is larger than the buffer size allowed incorrectly
-    ##                 return (-1)
-    AC_MSG_CHECKING([if vsnprintf returns correct value])
-
-    AC_CACHE_VAL([hdf5_cv_vsnprintf_works],
-        AC_TRY_RUN([
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdarg.h>
-
-int test_vsnprintf(const char *fmt,...)
-{
-    va_list     ap;
-    char *s = malloc(16);
-    int ret;
-
-    va_start(ap, fmt);
-    ret=vsnprintf(s,16,"%s",ap);
-    va_end(ap);
-
-    return(ret!=42 ? 1 : 0);
-}
-
-int main(void)
-{
-    exit(test_vsnprintf("%s","A string that is longer than 16 characters"));
-}
-   ],[hdf5_cv_vsnprintf_works=yes],[hdf5_cv_vsnprintf_works=no],))
-
-       if test ${hdf5_cv_vsnprintf_works} = "yes"; then
-          AC_MSG_RESULT([yes])
-          AC_DEFINE([VSNPRINTF_WORKS], [1],
-                    [Define if vsnprintf() returns the correct value for formatted strings that don't fit into size allowed])
-       else
-          AC_MSG_RESULT([no])
-       fi
-    ,)
-
-## ----------------------------------------------------------------------
-## Check that a lone colon can be used as an argument
-## This is not true on Cray X1, which interprets a lone colon as a
-## system command.
-##
-AC_CACHE_CHECK([if lone colon can be used as an argument],
-               [hdf5_cv_lone_colon],
-               [
-  echo "int main(int argc, char * argv[]) {return 0;}" > conftest.c
-  $CC $CFLAGS conftest.c -o a.out> /dev/null 2> /dev/null
-  echo "./a.out :" > conftest.sh
-  chmod 700 conftest.sh
-
-  ./conftest.sh 2> conftest.out
-  rm -f a.out
-  TEST_OUTPUT=`cat conftest.out`
-
-  if test "X$TEST_OUTPUT" = "X"; then
-    hdf5_cv_lone_colon=yes
-  else
-    hdf5_cv_lone_colon=no
-  fi
-               ])
-
-AC_SUBST([H5_LONE_COLON]) H5_LONE_COLON="$hdf5_cv_lone_colon"
+AC_CHECK_FUNCS([tmpfile asprintf vasprintf vsnprintf waitpid])
 
 ## ----------------------------------------------------------------------
 ## Check compiler characteristics
@@ -2663,10 +1975,7 @@ AC_CACHE_SAVE
 
 ## What header files and libraries do we have to look for for parallel
 ## support?  For the most part, search paths are already specified with
-## CPPFLAGS and LDFLAGS or are known to the compiler.  If the user says
-## `--disable-parallel' but specifies a known parallel compiler (like mpicc
-## or mpcc) then parallel support is enabled but configure doesn't search
-## for any parallel header files or libraries.
+## CPPFLAGS and LDFLAGS or are known to the compiler.
 ##
 AC_ARG_ENABLE([parallel],
               [AS_HELP_STRING([--enable-parallel],
@@ -2689,25 +1998,10 @@ if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then
   fi
 fi
 
-## It's possible to build in parallel by specifying a parallel compiler
-## without using the --enable-parallel flag.  This isn't allowed with
-## C++ or threadsafe, either, unless the --enable-unsupported flag 
-## has also been specified.
-if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then
-  if test "X${PARALLEL}" != "X" -a "X${enable_cxx}" = "Xyes" ; then
-    AC_MSG_ERROR([An MPI compiler is being used; --enable-cxx is not allowed. Use --enable-unsupported to override this error.])
-  fi
-  if test "X${PARALLEL}" != "X" -a "X${THREADSAFE}" = "Xyes"; then
-    AC_MSG_ERROR([An MPI compiler is being used; --enable-threadsafe is not allowed. Use --enable-unsupported to override this error.])
-  fi
-fi
-
 AC_MSG_CHECKING([for parallel support files])
 case "X-$enable_parallel" in
   X-|X-no|X-none)
-    ## Either we are not compiling for parallel or the header and
-    ## library files and locations are known to the compiler (this is
-    ## the case for a correct installation of mpicc for instance).
+    ## We are not compiling for parallel.
     AC_MSG_RESULT([skipped])
     ;;
 
@@ -2717,59 +2011,17 @@ case "X-$enable_parallel" in
     AC_MSG_RESULT([provided by compiler])
     PARALLEL=yes
 
-    ## Try link a simple MPI program.  If fail, try again with -lmpi and
-    ## -lmpich.
-    AC_TRY_LINK(, [MPI_Init()],,
-	[AC_CHECK_LIB([mpi], [MPI_Init],,
-	    [AC_CHECK_LIB([mpich], [MPI_Init],, [PARALLEL=no])])])
-
-    ## Then try link a simple MPI-IO program. If fail, try again with
-    ## -lmpio.
-    if test "X$PARALLEL" = "Xyes"; then
-      AC_TRY_LINK(, [MPI_File_open()],,
-                  [AC_CHECK_LIB([mpio], [MPI_File_open],, [PARALLEL=no])])
-    fi
+    ## Try link a simple MPI program.
+    AC_MSG_CHECKING([whether a simple MPI-IO C program can be linked])
+    AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <mpi.h>]],
+                   [[ MPI_Init(0, (void *)0); 
+		      MPI_File_open(0, (void *)0, 0, 0, (void *)0);]])], 
+		   [AC_MSG_RESULT([yes])],
+	  	   [AC_MSG_RESULT([no])
+		    AC_MSG_ERROR([unable to link a simple MPI-IO C program])])
 
     if test "X$HDF_FORTRAN" = "Xyes"; then
-      ## Change to the Fortran 90 language
-      AC_LANG_PUSH(Fortran)
-
-      ## Try link a simple MPI program.  If fail, try again with -lmpi.
-      AC_LINK_IFELSE([
-          program main
-          include 'mpif.h'
-          integer:: ierr
-          call mpi_file_open( ierr )
-          end],,
-          [AC_CHECK_LIB([mpi], [mpi_file_open],, [PARALLEL=no])])
-
-      ## Then try link a simple MPI-IO program.  If fail, try again with
-      ## -lmpio.
-      if test "X$PARALLEL" = "Xyes"; then
-        AC_LINK_IFELSE([
-            program main
-            include 'mpif.h'
-            integer:: ierr
-            call mpi_file_open( ierr )
-            end],,
-            [AC_CHECK_LIB([mpio], [mpi_file_open],, [PARALLEL=no])])
-      fi
-
-      ## Change to the C language
-      AC_LANG_POP(Fortran)
-    fi
-
-    ## Set RUNPARALLEL to mpiexec if not set yet.
-    ## Check for building on Cray if RUNPARALLEL is not yet set by checking
-    ## for 'aprun' command (which is the parallel job launcher, like mpiexec).
-    if test "X$PARALLEL" = "Xyes" -a -z "$RUNPARALLEL"; then
-        ## Find the path where aprun is located.
-  	for path in `echo $PATH | ${TR} ":" " "`; do
-  	  if test -x $path/aprun; then
-            RUNPARALLEL="aprun -q -n \$\${NPROCS:=6}"
-  	    break;
-  	  fi
-	done
+      PAC_PROG_FC_MPI_CHECK
     fi
 
     ## Set RUNPARALLEL to mpiexec if not set yet.
@@ -2802,13 +2054,6 @@ if test -n "$PARALLEL"; then
   AC_MSG_CHECKING([prefix for running in parallel])
   AC_MSG_RESULT([$RUNPARALLEL])
 
-  ## Check that we can link a simple MPI and MPI-IO application
-  AC_MSG_CHECKING([whether a simple MPI-IO program can be linked])
-  AC_TRY_LINK(, [MPI_Init(); MPI_File_open();],
-              [AC_MSG_RESULT([yes])],
-              [AC_MSG_RESULT([no])
-              AC_MSG_ERROR([unable to link a simple MPI-IO application])])
-
   ## There *must* be some way to run in parallel even if it's just the
   ## word `none'.
   if test -z "$RUNPARALLEL"; then
@@ -2816,7 +2061,8 @@ if test -n "$PARALLEL"; then
   fi
 
   ## If RUNSERIAL or RUNPARALLEL is the word `none' then replace it with
-  ## the empty string.
+  ## the empty string. This means that no launch commands were requested, 
+  ## so we will not use any launch commands.
   if test "X$RUNSERIAL" = "Xnone"; then
     RUNSERIAL=""
   fi
@@ -2867,7 +2113,6 @@ if test -n "$PARALLEL"; then
     X-yes)
       AC_CHECK_HEADERS([mpe.h],, [unset MPE])
       AC_CHECK_LIB([mpe], [MPE_Init_log],, [unset MPE])
-      AC_CHECK_LIB([lmpe], [MPE_Init_mpi_io],, [unset MPE])
       ;;
     *)
       case "$withval" in
@@ -2883,15 +2128,6 @@ if test -n "$PARALLEL"; then
           ;;
       esac
   
-      ## Trying to include -I/usr/include and -L/usr/lib is redundant and
-      ## can mess some compilers up.
-      if test "X$mpe_inc" = "X/usr/include"; then
-        mpe_inc=""
-      fi
-      if test "X$mpe_lib" = "X/usr/lib"; then
-        mpe_lib=""
-      fi
-  
       if test -n "$mpe_inc"; then
         saved_CPPFLAGS="$CPPFLAGS"
         saved_AM_CPPFLAGS="$AM_CPPFLAGS"
@@ -2909,12 +2145,8 @@ if test -n "$PARALLEL"; then
         AM_LDFLAGS="$AM_LDFLAGS -L$mpe_lib"
         AC_CHECK_LIB([mpe], [MPE_Init_log],,
                      [LDFLAGS="$saved_LDFLAGS"; AM_LDFLAGS="$saved_AM_LDFLAGS"; unset MPE])
-        AC_CHECK_LIB([lmpe], [MPE_Init_mpi_io],,
-                     [LDFLAGS="$saved_LDFLAGS"; AM_LDFLAGS="$saved_AM_LDFLAGS"; unset MPE])
-
       else
         AC_CHECK_LIB([mpe], [MPE_Init_log],, [unset MPE])
-        AC_CHECK_LIB([lmpe], [MPE_Init_mpi_io],, [unset MPE])
       fi
       ;;
   esac
@@ -2925,148 +2157,42 @@ if test -n "$PARALLEL"; then
 fi
 
 ## ----------------------------------------------------------------------
-## Turn on internal I/O filters by setting macros in header files
-## Internal I/O filters are contained entirely within the library and do
-## not depend on external headers or libraries.  The shuffle filter is
-## an example of an internal filter, while the gzip filter is an example of
-## an external filter.  Each external filter is controlled with an
-## "--with-foo=" configure flag.
+## Check if Direct I/O driver is enabled by --enable-direct-vfd
 ##
-AC_SUBST([FILTERS])
-AC_SUBST([USE_FILTER_SHUFFLE]) USE_FILTER_SHUFFLE="no"
-AC_SUBST([USE_FILTER_FLETCHER32]) USE_FILTER_FLETCHER32="no"
-AC_SUBST([USE_FILTER_NBIT]) USE_FILTER_NBIT="no"
-AC_SUBST([USE_FILTER_SCALEOFFSET]) USE_FILTER_SCALEOFFSET="no"
-AC_MSG_CHECKING([for I/O filters])
-AC_ARG_ENABLE([filters],
-              [AS_HELP_STRING([--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.])],
-              [FILTERS=$enableval])
-
-## Eventually: all_filters="shuffle,foo,bar,baz"
-all_filters="shuffle,fletcher32,nbit,scaleoffset"
-case "X-$FILTERS" in
-  X-|X-all)
-    FILTERS=$all_filters
-    AC_MSG_RESULT([all ($FILTERS)])
-    ;;
-  X-no|X-none)
-    AC_MSG_RESULT([none])
-    FILTERS="none"
-    ;;
-  *)
-    AC_MSG_RESULT([$FILTERS])
-    ;;
-esac
-
-if test -n "$FILTERS"; then
-  for filter in `echo $FILTERS | tr ${as_cr_letters}',' ${as_cr_LETTERS}' '`; do
-    ## ------------------------------------------------------------------
-    ## Have to use separate 'if' construct for each filter, so that
-    ## autoheader can detect the AC_DEFINE for each one...
-    ##
-    if test $filter = "SHUFFLE"; then
-      AC_DEFINE([HAVE_FILTER_SHUFFLE], [1],
-                [Define if support for shuffle filter is enabled])
-      USE_FILTER_SHUFFLE="yes"
-    fi
-    if test $filter = "FLETCHER32"; then
-      AC_DEFINE([HAVE_FILTER_FLETCHER32], [1],
-                [Define if support for Fletcher32 checksum is enabled])
-      USE_FILTER_FLETCHER32="yes"
-    fi
-    if test $filter = "NBIT"; then
-      AC_DEFINE([HAVE_FILTER_NBIT], [1],
-                [Define if support for nbit filter is enabled])
-      USE_FILTER_NBIT="yes"
-    fi
-    if test $filter = "SCALEOFFSET"; then
-      AC_DEFINE([HAVE_FILTER_SCALEOFFSET], [1],
-                [Define if support for scaleoffset filter is enabled])
-      USE_FILTER_SCALEOFFSET="yes"
-    fi
-  done
-fi
 
-## ----------------------------------------------------------------------
-## This is defined only when we're using CodeWarrior, since it has a
-## broken "open()" call.
-#
-if test 1 = 2; then
-  AC_DEFINE([NO_SHARED_WRITING], [1],
-            [Define if shared writing must be disabled (CodeWarrior only)])
-fi
+## Check these regardless. If the checks are moved inside the main
+## direct VFD block, the output is nested.
 
-## --------------------------------------------------------------------------
-## Should the Default Virtual File Driver be compiled?
-##
+AC_CACHE_VAL([hdf5_cv_direct_io],
+    AC_CHECK_DECL([O_DIRECT], [hdf5_cv_direct_io=yes], [hdf5_cv_direct_io=no], [[#include <fcntl.h>]]))
+AC_CACHE_VAL([hdf5_cv_posix_memalign],
+    AC_CHECK_FUNC([posix_memalign], [hdf5_cv_posix_memalign=yes], [hdf5_cv_posix_memalign=no]))
 
-AC_MSG_CHECKING([for Default Virtual File Driver definition])
-AC_ARG_WITH([default-vfd],
-            [AS_HELP_STRING([--with-default-vfd=driver],
-                            [Specify default file driver
-                             [default=sec2]])],,
-            withval=sec2)
-
-if test "X$withval" = "Xsec2"; then
-    AC_MSG_RESULT([yes])
-    default_vfd=yes
-    vfd_define=H5FD_SEC2
-elif test "X$withval" = "Xstdio"; then
-    AC_MSG_RESULT([yes])
-    default_vfd=yes
-    vfd_define=H5FD_STDIO
-else
-    AC_MSG_RESULT([no])
-    default_vfd=no
-fi
-
-if test "X$default_vfd" = "Xyes"; then
-  AC_DEFINE_UNQUOTED([DEFAULT_VFD], [$vfd_define],
-            [Define the default virtual file driver to compile])
-fi
-
-## ----------------------------------------------------------------------
-## Check if Direct I/O driver is enabled by --enable-direct-vfd
-##
-
-AC_MSG_CHECKING([for Direct Virtual File Driver support])
+AC_MSG_CHECKING([if the direct I/O virtual file driver (VFD) is enabled])
 
 AC_ARG_ENABLE([direct-vfd],
               [AS_HELP_STRING([--enable-direct-vfd],
-                              [Build the Direct I/O Virtual File Driver
-                               [default=yes]])],
-              [DIRECT_VFD=$enableval], [DIRECT_VFD=yes])
-
-if test "$DIRECT_VFD" = "yes"; then
-   AC_CACHE_VAL([hdf5_cv_direct_io],
-       [AC_TRY_RUN([
-	  #include <sys/types.h>
-	  #include <sys/stat.h>
-	  #include <fcntl.h>
-          int main(void)
-          {
-             int fid; 
-             if((fid=open("tst_file", O_CREAT | O_TRUNC | O_DIRECT, 0755))<0)
-		exit(1);
-             close(fid);  
-             remove("tst_file"); 
-             exit (0);
-          }], [AC_TRY_LINK(, [posix_memalign()], [hdf5_cv_direct_io=yes], [hdf5_cv_direct_io=no])], [hdf5_cv_direct_io=no],)])
-
-   if test ${hdf5_cv_direct_io} = "yes"; then
-      AC_MSG_RESULT([yes])
-      AC_DEFINE([HAVE_DIRECT], [1],
-                [Define if the direct I/O virtual file driver should be compiled])
-   else
-      AC_MSG_RESULT([no])
-      DIRECT_VFD=no
-   fi
+                              [Build the direct I/O virtual file driver (VFD).
+                               This is based on the POSIX (sec2) VFD and
+                               requires the open() call to take the O_DIRECT
+                               flag. [default=no]])],
+              [DIRECT_VFD=$enableval], [DIRECT_VFD=no])
+
+if test "X$DIRECT_VFD" = "Xyes"; then
+    if test ${hdf5_cv_direct_io} = "yes" && test ${hdf5_cv_posix_memalign} = "yes" ; then
+        AC_MSG_RESULT([yes])
+        AC_DEFINE([HAVE_DIRECT], [1],
+                [Define if the direct I/O virtual file driver (VFD) should be compiled])
+    else
+        AC_MSG_RESULT([no])
+        DIRECT_VFD=no
+        AC_MSG_ERROR([The direct VFD was requested but cannot be built. This is either
+                     due to O_DIRECT not being found in fcntl.h or a lack of
+                     posix_memalign() on your system. Please re-configure without
+                     specifying --enable-direct-vfd.])
+    fi
 else
-      AC_MSG_RESULT([suppressed])
+    AC_MSG_RESULT([no])
 fi
 
 AM_CONDITIONAL([DIRECT_VFD_CONDITIONAL], [test "X$DIRECT_VFD" = "Xyes"])
@@ -3187,484 +2313,6 @@ case "`uname`" in
     ;;
 esac
 
-## -----------------------------------------------------------------------
-## Set flag to indicate that the machine can handle conversion from 
-## long double to integers accurately.  This flag should be set "yes" for 
-## all machines except all SGIs.  For SGIs, some conversions are
-## incorrect and its cache value is set "no" in its config/irix6.x and 
-## irix5.x.
-##
-AC_MSG_CHECKING([if converting from long double to integers is accurate])
-
-if test ${ac_cv_sizeof_long_double} = 0; then
-   hdf5_cv_ldouble_to_integer_accurate=${hdf5_cv_ldouble_to_integer_accurate=no}
-else
-   AC_CACHE_VAL([hdf5_cv_ldouble_to_integer_accurate], [hdf5_cv_ldouble_to_integer_accurate=yes])
-fi
-
-if test "${hdf5_cv_ldouble_to_integer_accurate}" = "yes"; then
-  AC_DEFINE([LDOUBLE_TO_INTEGER_ACCURATE], [1],
-            [Define if your system can convert long double to integers accurately.])
-  AC_MSG_RESULT([yes])
-else
-  AC_MSG_RESULT([no])
-fi
-
-## -----------------------------------------------------------------------
-## Set flag to indicate that the machine can do conversion from 
-## long double to integers regardless of accuracy.  This flag should be 
-## set "yes" for all machines except HP-UX 11.00.  For HP-UX 11.00, the
-## compiler has 'floating exception' when converting 'long double' to all 
-## integers except 'unsigned long long'.  Other HP-UX systems are unknown
-## yet. (1/8/05 - SLU)
-
-AC_MSG_CHECKING([if converting from long double to integers works])
-
-if test ${ac_cv_sizeof_long_double} = 0; then
-   hdf5_cv_ldouble_to_integer_works=${hdf5_cv_ldouble_to_integer_works=no}
-else
-   AC_CACHE_VAL([hdf5_cv_ldouble_to_integer_works],
-        [AC_TRY_RUN([
-        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);
-        }
-        ], [hdf5_cv_ldouble_to_integer_works=yes], [hdf5_cv_ldouble_to_integer_works=no],)])
-fi
-
-if test ${hdf5_cv_ldouble_to_integer_works} = "yes"; then
-  AC_DEFINE([LDOUBLE_TO_INTEGER_WORKS], [1],
-            [Define if your system can convert from long double to integer values.])
-  AC_MSG_RESULT([yes])
-else
-  AC_MSG_RESULT([no])
-fi
-
-## -----------------------------------------------------------------------
-## Set flag to indicate that the machine can handle conversion from 
-## integers to long double.  (This flag should be set "yes" for all 
-## machines except all SGIs, where some conversions are
-## incorrect and its cache value is set "no" in its config/irix6.x and 
-## irix5.x) 
-##
-AC_MSG_CHECKING([if accurately converting from integers to long double])
-
-if test ${ac_cv_sizeof_long_double} = 0; then
-   hdf5_cv_integer_to_ldouble_accurate=${hdf5_cv_integer_to_ldouble_accurate=no}
-else
-   AC_CACHE_VAL([hdf5_cv_integer_to_ldouble_accurate], [hdf5_cv_integer_to_ldouble_accurate=yes])
-fi
-
-if test ${hdf5_cv_integer_to_ldouble_accurate} = "yes"; then
-  AC_DEFINE([INTEGER_TO_LDOUBLE_ACCURATE], [1],
-            [Define if your system can accurately convert from integers to long double values.])
-  AC_MSG_RESULT([yes])
-else
-  AC_MSG_RESULT([no])
-fi
-
-## ----------------------------------------------------------------------
-## Set the flag to indicate that the machine can accurately convert
-## 'unsigned long' to 'float' values.
-## (This flag should be set for all machines, except for Pathscale compiler
-## on Sandia's Linux machine where the compiler interprets 'unsigned long'
-## values as negative when the first bit of 'unsigned long' is on during 
-## the conversion to float.) 
-##
-AC_MSG_CHECKING([if accurately converting unsigned long to float values])
-
-AC_CACHE_VAL([hdf5_cv_ulong_to_float_accurate],
-    [AC_TRY_RUN([
-    int main(void)
-    {
-        int           ret = 0;
-        unsigned long l1;
-        unsigned long l2;
-        unsigned long l3;
-        float f1;
-        float f2;
-        float f3;
-
-
-        if(sizeof(unsigned long)==8) {
-            l1 = 0xffffffffffffffffUL;
-            l2 = 0xffffffffffff0000UL;
-            l3 = 0xf000000000000000UL;
-
-            f1 = (float)l1;
-            f2 = (float)l2;
-            f3 = (float)l3;
-
-            if((f1 < 0) || (f2 < 0) || (f3 < 0))
-                ret = 1;
-        }
-
-done:
-        exit(ret);
-    }
-    ], [hdf5_cv_ulong_to_float_accurate=yes], [hdf5_cv_ulong_to_float_accurate=no],)])
-
-if test ${hdf5_cv_ulong_to_float_accurate} = "yes"; then
-  AC_DEFINE([ULONG_TO_FLOAT_ACCURATE], [1],
-            [Define if your system accurately converting unsigned long to float values.])
-  AC_MSG_RESULT([yes])
-else
-  AC_MSG_RESULT([no])
-fi
-
-
-## ----------------------------------------------------------------------
-## Set the flag to indicate that the machine can accurately convert
-## 'unsigned (long) long' values to 'float' and 'double' values.
-## (This flag should be set for all machines, except for the SGIs, where
-## the cache value is set in the config/irix6.x config file) and Solaris
-## 64-bit machines, where the short program below tests if round-up is 
-## correctly handled.
-##
-AC_MSG_CHECKING([if accurately converting unsigned long long to floating-point values])
-
-if test ${host_os_novers} = "solaris2.x"; then
-    AC_CACHE_VAL([hdf5_cv_ulong_to_fp_bottom_bit_accurate],
-    [AC_TRY_RUN([
-    int main(void)
-    {
-        unsigned long l1;
-        unsigned long l2;
-        unsigned long l3;
-        unsigned long l4;
-        unsigned long long ld1;
-        unsigned long long ld2;
-        unsigned long long ld3;
-        unsigned long long ld4;
-        double        d1, d2, d3, d4;
-        unsigned char s[8];
-        int           ret = 0;
-
-        if(sizeof(unsigned long)==8) {
-            l1 = 0xf000000000000b00UL; /*Round-down case*/
-            l2 = 0xf000000000000401UL; /*Round-up case*/
-            l3 = 0xf000000000000400UL; /*Round-down case*/
-            l4 = 0xf000000000000c00UL; /*Round-up case*/
-            
-            d1 = (double)l1;
-            d2 = (double)l2;
-            d3 = (double)l3;
-            d4 = (double)l4;
-        } else if(sizeof(unsigned long long)==8) { 
-            ld1 = 0xf000000000000b00ULL; /*Round-down case*/
-            ld2 = 0xf000000000000401ULL; /*Round-up case*/
-            ld3 = 0xf000000000000400ULL; /*Round-down case*/
-            ld4 = 0xf000000000000c00ULL; /*Round-up case*/
-            
-            d1 = (double)ld1;
-            d2 = (double)ld2;
-            d3 = (double)ld3;
-            d4 = (double)ld4;
-        } else {
-            ret = 1;
-            goto done;
-        }
-        
-        memcpy(s, &d1, 8);
-        if(s[7]!=1)
-            ret = 1;
-
-        memcpy(s, &d2, 8);
-        if(s[7]!=1)
-            ret = 1;
-
-        memcpy(s, &d3, 8);
-        if(s[7]!=0)
-            ret = 1;
-
-        memcpy(s, &d4, 8);
-        if(s[7]!=2)
-            ret = 1;
-
-done:
-        exit(ret);
-    }
-    ], [hdf5_cv_ulong_to_fp_bottom_bit_accurate=yes], [hdf5_cv_ulong_to_fp_bottom_bit_accurate=no],)])
-else
-    AC_CACHE_VAL([hdf5_cv_ulong_to_fp_bottom_bit_accurate], [hdf5_cv_ulong_to_fp_bottom_bit_accurate=yes])
-fi
-
-if test ${hdf5_cv_ulong_to_fp_bottom_bit_accurate} = "yes"; then
-  AC_DEFINE([ULONG_TO_FP_BOTTOM_BIT_ACCURATE], [1],
-            [Define if your system can accurately convert unsigned (long) long values to floating-point values.])
-  AC_MSG_RESULT([yes])
-else
-  AC_MSG_RESULT([no])
-fi
-
-## ----------------------------------------------------------------------
-## Set the flag to indicate that the machine can accurately convert
-## 'float' or 'double' to 'unsigned long long' values.
-## (This flag should be set for all machines, except for PGI compiler 
-## where round-up happens when the fraction of float-point value is greater 
-## than 0.5.
-##
-AC_MSG_CHECKING([if accurately roundup converting floating-point to unsigned long long values])
-
-AC_CACHE_VAL([hdf5_cv_fp_to_ullong_accurate],
-    [AC_TRY_RUN([
-    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);
-    }
-    ], [hdf5_cv_fp_to_ullong_accurate=yes], [hdf5_cv_fp_to_ullong_accurate=no],)])
-
-if test ${hdf5_cv_fp_to_ullong_accurate} = "yes"; then
-  AC_DEFINE([FP_TO_ULLONG_ACCURATE], [1],
-            [Define if your system roundup accurately converting floating-point to unsigned long long values.])
-  AC_MSG_RESULT([yes])
-else
-  AC_MSG_RESULT([no])
-fi
-
-## ----------------------------------------------------------------------
-## Set the flag to indicate that the machine can accurately convert
-## 'float', 'double' or 'long double' to 'unsigned long long' values.
-## (This flag should be set for all machines, except for HP-UX machines
-## where the maximal number for unsigned long long is 0x7fffffffffffffff
-## during conversion.
-##
-AC_MSG_CHECKING([if right maximum converting floating-point to unsigned long long values])
-
-AC_CACHE_VAL([hdf5_cv_fp_to_ullong_right_maximum],
-    [AC_TRY_RUN([
-    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);
-    }
-    ], [hdf5_cv_fp_to_ullong_right_maximum=yes], [hdf5_cv_fp_to_ullong_right_maximum=no],)])
-
-if test ${hdf5_cv_fp_to_ullong_right_maximum} = "yes"; then
-  AC_DEFINE([FP_TO_ULLONG_RIGHT_MAXIMUM], [1],
-            [Define if your system has right maximum convert floating-point to unsigned long long values.])
-  AC_MSG_RESULT([yes])
-else
-  AC_MSG_RESULT([no])
-fi
-
-## ----------------------------------------------------------------------
-## Set the flag to indicate that the machine can accurately convert
-## 'long double' to 'unsigned int' values.  (This flag should be set for 
-## all machines, except for some Intel compilers on some Linux.)
-##
-AC_MSG_CHECKING([if correctly converting long double to unsigned int values])
-
-if test ${ac_cv_sizeof_long_double} = 0; then
-   hdf5_cv_ldouble_to_uint_accurate=${hdf5_cv_ldouble_to_uint_accurate=no}
-else
-   AC_CACHE_VAL([hdf5_cv_ldouble_to_uint_accurate],
-        [AC_TRY_RUN([
-        int main(void)
-        {
-            long double ld = 2733248032.9183987530L;
-            unsigned int i;
-            int           ret = 0;
-
-            i = (unsigned int)ld;
-            if(i!=2733248032 && i!=2733248031 && i!=2733248033)
-                ret = 1;
-
-    done:
-            exit(ret);
-        }
-        ], [hdf5_cv_ldouble_to_uint_accurate=yes], [hdf5_cv_ldouble_to_uint_accurate=no],)])
-fi
-
-if test ${hdf5_cv_ldouble_to_uint_accurate} = "yes"; then
-  AC_DEFINE([LDOUBLE_TO_UINT_ACCURATE], [1],
-            [Define if your system can convert long double to unsigned int values correctly.])
-  AC_MSG_RESULT([yes])
-else
-  AC_MSG_RESULT([no])
-fi
-
-## ----------------------------------------------------------------------
-## Set the flag to indicate that the machine can _compile_
-## 'unsigned long long' to 'float' and 'double' typecasts.
-## (This flag should be set for all machines, except for under Windows when
-## compiled with Visual Studio 6, where the macro value is set in the
-## src/H5pubconf.h file)
-##
-AC_MSG_CHECKING([if compiling unsigned long long to floating-point typecasts work])
-AC_CACHE_VAL([hdf5_cv_ullong_to_fp_cast_works], [hdf5_cv_ullong_to_fp_cast_works=yes])
-
-if test ${hdf5_cv_ullong_to_fp_cast_works} = "yes"; then
-  AC_DEFINE([ULLONG_TO_FP_CAST_WORKS], [1],
-            [Define if your system can compile unsigned long long to floating-point casts.])
-  AC_MSG_RESULT([yes])
-else
-  AC_MSG_RESULT([no])
-fi
-
-## ----------------------------------------------------------------------
-## Set the flag to indicate that the machine can _compile_
-## 'long long' to 'float' and 'double' typecasts.
-## (This flag should be set for all machines, except for under Windows when
-## compiled with Visual Studio 6, where the macro value is set in the
-## src/H5pubconf.h file)
-##
-AC_MSG_CHECKING([if compiling long long to floating-point typecasts work])
-AC_CACHE_VAL([hdf5_cv_llong_to_fp_cast_works], [hdf5_cv_llong_to_fp_cast_works=yes])
-
-if test ${hdf5_cv_llong_to_fp_cast_works} = "yes"; then
-  AC_DEFINE([LLONG_TO_FP_CAST_WORKS], [1],
-            [Define if your system can compile long long to floating-point casts.])
-  AC_MSG_RESULT([yes])
-else
-  AC_MSG_RESULT([no])
-fi
-
-## ----------------------------------------------------------------------
-## Set the flag to indicate that the machine can convert from
-## 'unsigned long long' to 'long double' without precision loss.
-## (This flag should be set for all machines, except for FreeBSD(sleipnir)
-## 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.)
-##
-AC_MSG_CHECKING([if converting unsigned long long to long double with precision])
-
-if test ${ac_cv_sizeof_long_double} = 0; then
-   hdf5_cv_ullong_to_ldouble_precision=${hdf5_cv_ullong_to_ldouble_precision=no}
-else
-   AC_CACHE_VAL([hdf5_cv_ullong_to_ldouble_precision],
-        [AC_TRY_RUN([
-        #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);
-        }
-        ], [hdf5_cv_ullong_to_ldouble_precision=yes], [hdf5_cv_ullong_to_ldouble_precision=no],)])
-fi
-
-if test ${hdf5_cv_ullong_to_ldouble_precision} = "yes"; then
-  AC_DEFINE([ULLONG_TO_LDOUBLE_PRECISION], [1],
-            [Define if your system can convert unsigned long long to long double with correct precision.])
-  AC_MSG_RESULT([yes])
-else
-  AC_MSG_RESULT([no])
-fi
-
 ## ----------------------------------------------------------------------
 ## Set the flag to indicate that the machine can handle overflow converting
 ## all floating-point to all integer types.
@@ -4005,7 +2653,7 @@ fi
 
 ## ----------------------------------------------------------------------
 ## Set some variables for general configuration information to be saved
-## and installed with the libraries.
+## and installed with the libraries (used to generate libhdf5.settings).
 ##
 
 ## HDF5 version from the first line of the README.txt file.
@@ -4116,82 +2764,6 @@ fi
 AC_SUBST([ROOT]) ROOT="`$pwd`"
 
 ## ----------------------------------------------------------------------
-## Move any compiler-specific libraries into the main LIBS varaible.
-## 
-LIBS="$DEFAULT_LIBS $LIBS"
-
-## ----------------------------------------------------------------------
-## Determine the runtime libraries we may need to include in the
-## libtools command so that executables will find the correct dynamic
-## libraries.
-## 
-AC_SUBST([DYNAMIC_DIRS]) DYNAMIC_DIRS=""
-
-if test -n "$AM_LDFLAGS $LDFLAGS"; then
-  for d in $AM_LDFLAGS $LDFLAGS ; do
-    case "$d" in
-      -L*)
-        d="`echo $d | sed -e 's/-L//g'`"
-        case "$d" in
-          .*)
-            ## If the path isn't absolute, make it so by
-            ## prepending the ROOT directory to it.
-            d=${ROOT}/$d
-            ;;
-        esac
-        DYNAMIC_DIRS="-R${d} $DYNAMIC_DIRS"
-        ;;
-    esac
-  done
-fi
-
-if test -n "$AM_CPPFLAGS"; then
-  TEMP_CPPFLAGS=""
-  for d in $AM_CPPFLAGS ; do
-    case "$d" in
-      -I.*)
-        ## If the path isn't absolute, make it so by prepending
-        ## the ROOT directory to it.
-        d="`echo $d | sed -e 's/-I//g'`"
-        d="-I${ROOT}/${d}"
-        ;;
-    esac
-    TEMP_CPPFLAGS="$d $TEMP_CPPFLAGS"
-  done
-  AM_CPPFLAGS=$TEMP_CPPFLAGS
-fi
-
-## ----------------------------------------------------------------------
-## Check if they would like the High Level library  compiled
-##
-
-AC_SUBST(HL) HL=""
-## name of fortran folder inside "hl", if FORTRAN compile is requested
-AC_SUBST(HL_FOR) HL_FOR=""
-AC_MSG_CHECKING([if high level library is enabled])
-AC_ARG_ENABLE([hl],
-     [AS_HELP_STRING([--enable-hl],
-                     [Enable the high level library [default=yes]])],
-     [HDF5_HL=$enableval],
-     [HDF5_HL=yes])
-
-if test "X$HDF5_HL" = "Xyes"; then
- echo "yes"
- 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).
 ## Check if they want such programs built anyway.
@@ -4394,18 +2966,8 @@ AM_CONDITIONAL([BUILD_HDF5_HL_CONDITIONAL], [test "X$HDF5_HL" = "Xyes"])
 
 ## The directory search list
 AC_SUBST([SEARCH]) SEARCH='$(srcdir) $(top_builddir)/src $(top_srcdir)/src'
-cmd='echo $SEARCH |sed "s/ /'$SEARCH_SEP'/g"'
-SEARCH="$SEARCH_RULE`eval $cmd`"
 export SEARCH
 
-## We don't need to say when we're entering directories if we're using
-## GNU make because make does it for us.
-if test "X$GMAKE" = "Xyes"; then
-  AC_SUBST([SETX]) SETX=":"
-else
-  AC_SUBST([SETX]) SETX="set -x"
-fi
-
 ## Some cleanup stuff
 rm -f conftest conftest.o conftest.c dummy.o *.mod
 
@@ -4441,23 +3003,6 @@ touch ./config/stamp2
 ## Finally the makefiles
 test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
 
-## Post processing to patch up some deficiencies in libtool
-case $host_os in
-  linux* | freebsd* )
-    ## If gcc is not used, need to set $wl to use "-Wl,"
-    if $CC -v 2>&1 | grep '^gcc' > /dev/null ; then
-      : using gcc
-    else
-      echo 'fixing $wl in' $ofile
-ed - $ofile <<EOF 2> /dev/null
-g/^wl=""/s//wl="-Wl,"/
-w
-q
-EOF
-    fi
-    ;;
-esac
-
 ## Are we compiling static libraries, shared libraries, or both?  This
 ## is only used for the libhdf5.settings file. We can't just look at
 ## $enable_static and $enable_shared because if they're yes the ltconfig
@@ -4502,7 +3047,6 @@ AC_CONFIG_FILES([src/libhdf5.settings
                  test/testlinks_env.sh
                  test/test_plugin.sh
                  testpar/Makefile
-                 perform/Makefile
                  tools/Makefile
                  tools/h5dump/Makefile
                  tools/h5dump/testh5dump.sh
@@ -4529,6 +3073,7 @@ AC_CONFIG_FILES([src/libhdf5.settings
                  tools/misc/testh5repart.sh
                  tools/h5stat/testh5stat.sh
                  tools/h5stat/Makefile
+                 tools/perform/Makefile
                  examples/Makefile
                  examples/run-c-ex.sh
                  examples/testh5cc.sh
@@ -4590,5 +3135,11 @@ cat >> src/H5config.h <<EOF
 #endif
 EOF
 
+## HDF5 configure code created by autotools with gcc 4.9.2 is adding problematic
+## linker flags:  -l with no library name; -l <libname>, specifically gfortran or m.
+## This sed script corrects "-l <libname>" first and then "-l " with no library name.
+## If the order is not preserved, all instances of "-l " will be removed.
+sed -e '/^postdeps/ s/-l \([a-zA-Z]\)/-l\1/g' -e '/^postdeps/ s/-l //g' -i libtool
+
 ## show the configure settings
 cat src/libhdf5.settings
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
index 4cd72a0..1f33f04 100644
--- a/examples/CMakeLists.txt
+++ b/examples/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required (VERSION 2.8.11)
+cmake_minimum_required (VERSION 3.1.0)
 PROJECT (HDF5_EXAMPLES)
 
 #-----------------------------------------------------------------------------
@@ -39,7 +39,7 @@ set (examples
 foreach (example ${examples})
   add_executable (${example} ${HDF5_EXAMPLES_SOURCE_DIR}/${example}.c)
   TARGET_NAMING (${example} ${LIB_TYPE})
-  TARGET_C_PROPERTIES (${example} " " " ")
+  TARGET_C_PROPERTIES (${example} ${LIB_TYPE} " " " ")
   target_link_libraries (${example} ${HDF5_LIB_TARGET})
   set_target_properties (${example} PROPERTIES FOLDER examples)
 endforeach (example ${examples})
@@ -47,7 +47,7 @@ endforeach (example ${examples})
 if (H5_HAVE_PARALLEL)
   add_executable (ph5example ${HDF5_EXAMPLES_SOURCE_DIR}/ph5example.c)
   TARGET_NAMING (ph5example ${LIB_TYPE})
-  TARGET_C_PROPERTIES (ph5example " " " ")
+  TARGET_C_PROPERTIES (ph5example ${LIB_TYPE} " " " ")
   target_link_libraries (ph5example ${HDF5_LIB_TARGET})
   set_target_properties (ph5example PROPERTIES FOLDER examples)
 endif (H5_HAVE_PARALLEL)
diff --git a/examples/Makefile.in b/examples/Makefile.in
index 71a9b4c..5d76be3 100644
--- a/examples/Makefile.in
+++ b/examples/Makefile.in
@@ -107,7 +107,8 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \
 TESTS = $(TEST_SCRIPT)
 subdir = examples
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \
+	$(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs
@@ -352,7 +353,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@
 AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@
 AM_MAKEFLAGS = @AM_MAKEFLAGS@
 AR = @AR@
-AS = @AS@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -384,7 +384,6 @@ DIRECT_VFD = @DIRECT_VFD@
 DLLTOOL = @DLLTOOL@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
-DYNAMIC_DIRS = @DYNAMIC_DIRS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -403,17 +402,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@
 FCLIBS = @FCLIBS@
 FC_VERSION = @FC_VERSION@
 FGREP = @FGREP@
-FILTERS = @FILTERS@
 FSEARCH_DIRS = @FSEARCH_DIRS@
 GREP = @GREP@
 H5_CFLAGS = @H5_CFLAGS@
 H5_CPPFLAGS = @H5_CPPFLAGS@
 H5_CXXFLAGS = @H5_CXXFLAGS@
-H5_CXX_SHARED = @H5_CXX_SHARED@
 H5_FCFLAGS = @H5_FCFLAGS@
 H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@
 H5_LDFLAGS = @H5_LDFLAGS@
-H5_LONE_COLON = @H5_LONE_COLON@
 H5_VERSION = @H5_VERSION@
 HADDR_T = @HADDR_T@
 HAVE_DMALLOC = @HAVE_DMALLOC@
@@ -436,7 +432,6 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INSTRUMENT = @INSTRUMENT@
 INSTRUMENT_LIBRARY = @INSTRUMENT_LIBRARY@
-LARGEFILE = @LARGEFILE@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
@@ -477,7 +472,6 @@ R_INTEGER = @R_INTEGER@
 R_LARGE = @R_LARGE@
 SEARCH = @SEARCH@
 SED = @SED@
-SETX = @SETX@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIZE_T = @SIZE_T@
@@ -492,10 +486,6 @@ TR = @TR@
 TRACE_API = @TRACE_API@
 UNAME_INFO = @UNAME_INFO@
 USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@
-USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@
-USE_FILTER_NBIT = @USE_FILTER_NBIT@
-USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@
-USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@
 USE_FILTER_SZIP = @USE_FILTER_SZIP@
 USINGMEMCHECKER = @USINGMEMCHECKER@
 VERSION = @VERSION@
@@ -609,8 +599,9 @@ TRACE = perl $(top_srcdir)/bin/trace
 
 # .chkexe files are used to mark tests that have run successfully.
 # .chklog files are output from those tests.
-# *.clog are from the MPE option.
-CHECK_CLEANFILES = *.chkexe *.chklog *.clog $(EXTLINK_DIRS) *.h5
+# *.clog and *.clog2 are from the MPE option.
+CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 $(EXTLINK_DIRS) \
+	*.h5
 @BUILD_PARALLEL_CONDITIONAL_TRUE at EXAMPLE_PROG_PARA = ph5example
 INSTALL_SCRIPT_FILES = run-c-ex.sh
 INSTALL_TOP_SCRIPT_FILES = run-all-ex.sh
diff --git a/examples/README b/examples/README
index 0550b15..c8fd7d5 100644
--- a/examples/README
+++ b/examples/README
@@ -3,7 +3,7 @@
 This directory contains example programs for the installed APIs and scripts to 
 compile and run them.  Examples in the c and hl/c subdirectories are always 
 installed, and those in fortan, hl/fortran, c++ and hl/c++ will be installed 
-when fortran or c++ are enabled.
+when Fortran or C++ are enabled.
 
 Running the run-all-ex.sh script in this directory will run the scripts and in 
 turn the examples in all the subdirectories where examples are installed.  The 
diff --git a/fortran/CMakeLists.txt b/fortran/CMakeLists.txt
index 3fe9e7d..c725047 100644
--- a/fortran/CMakeLists.txt
+++ b/fortran/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required (VERSION 2.8.11)
+cmake_minimum_required (VERSION 3.1.0)
 PROJECT (HDF5_F90 C CXX Fortran)
 
 if (H5_HAVE_PARALLEL)
diff --git a/fortran/Makefile.in b/fortran/Makefile.in
index 4d8abdc..55ede05 100644
--- a/fortran/Makefile.in
+++ b/fortran/Makefile.in
@@ -105,7 +105,8 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \
 TESTS =
 subdir = fortran
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \
+	$(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs
@@ -408,7 +409,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@
 AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@
 AM_MAKEFLAGS = @AM_MAKEFLAGS@
 AR = @AR@
-AS = @AS@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -440,7 +440,6 @@ DIRECT_VFD = @DIRECT_VFD@
 DLLTOOL = @DLLTOOL@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
-DYNAMIC_DIRS = @DYNAMIC_DIRS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -459,17 +458,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@
 FCLIBS = @FCLIBS@
 FC_VERSION = @FC_VERSION@
 FGREP = @FGREP@
-FILTERS = @FILTERS@
 FSEARCH_DIRS = @FSEARCH_DIRS@
 GREP = @GREP@
 H5_CFLAGS = @H5_CFLAGS@
 H5_CPPFLAGS = @H5_CPPFLAGS@
 H5_CXXFLAGS = @H5_CXXFLAGS@
-H5_CXX_SHARED = @H5_CXX_SHARED@
 H5_FCFLAGS = @H5_FCFLAGS@
 H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@
 H5_LDFLAGS = @H5_LDFLAGS@
-H5_LONE_COLON = @H5_LONE_COLON@
 H5_VERSION = @H5_VERSION@
 HADDR_T = @HADDR_T@
 HAVE_DMALLOC = @HAVE_DMALLOC@
@@ -492,7 +488,6 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INSTRUMENT = @INSTRUMENT@
 INSTRUMENT_LIBRARY = @INSTRUMENT_LIBRARY@
-LARGEFILE = @LARGEFILE@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
@@ -533,7 +528,6 @@ R_INTEGER = @R_INTEGER@
 R_LARGE = @R_LARGE@
 SEARCH = @SEARCH@
 SED = @SED@
-SETX = @SETX@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIZE_T = @SIZE_T@
@@ -548,10 +542,6 @@ TR = @TR@
 TRACE_API = @TRACE_API@
 UNAME_INFO = @UNAME_INFO@
 USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@
-USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@
-USE_FILTER_NBIT = @USE_FILTER_NBIT@
-USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@
-USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@
 USE_FILTER_SZIP = @USE_FILTER_SZIP@
 USINGMEMCHECKER = @USINGMEMCHECKER@
 VERSION = @VERSION@
@@ -665,8 +655,8 @@ TRACE = perl $(top_srcdir)/bin/trace
 
 # .chkexe files are used to mark tests that have run successfully.
 # .chklog files are output from those tests.
-# *.clog are from the MPE option.
-CHECK_CLEANFILES = *.chkexe *.chklog *.clog
+# *.clog and *.clog2 are from the MPE option.
+CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2
 @BUILD_PARALLEL_CONDITIONAL_TRUE at TESTPARALLEL_DIR = testpar
 
 # Subdirectories in build order, not including examples directory
diff --git a/fortran/examples/CMakeLists.txt b/fortran/examples/CMakeLists.txt
index 322ae35..2bf0bf6 100644
--- a/fortran/examples/CMakeLists.txt
+++ b/fortran/examples/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required (VERSION 2.8.11)
+cmake_minimum_required (VERSION 3.1.0)
 PROJECT (HDF5_F90_EXAMPLES C CXX Fortran)
 # --------------------------------------------------------------------
 # Notes: When creating examples they should be prefixed
@@ -8,7 +8,7 @@ PROJECT (HDF5_F90_EXAMPLES C CXX Fortran)
 #-----------------------------------------------------------------------------
 # Setup include Directories
 #-----------------------------------------------------------------------------
-INCLUDE_DIRECTORIES (${CMAKE_Fortran_MODULE_DIRECTORY} ${HDF5_F90_BINARY_DIR} ${HDF5_F90_SRC_DIR}/src)
+INCLUDE_DIRECTORIES (${HDF5_F90_BINARY_DIR} ${HDF5_F90_SRC_DIR}/src)
 
 #-----------------------------------------------------------------------------
 # Define Sources
@@ -41,57 +41,52 @@ set (F2003_examples
 foreach (example ${examples})
   add_executable (f90_ex_${example} ${HDF5_F90_EXAMPLES_SOURCE_DIR}/${example}.f90)
   TARGET_NAMING (f90_ex_${example} ${LIB_TYPE})
-  TARGET_FORTRAN_PROPERTIES (f90_ex_${example} " " " ")
-  if (WIN32)
-    set_property (TARGET f90_ex_${example} 
-        APPEND PROPERTY COMPILE_DEFINITIONS 
-          HDF5F90_WINDOWS
-    )
-  endif (WIN32)
+  TARGET_FORTRAN_PROPERTIES (f90_ex_${example} ${LIB_TYPE} " " " ")
   target_link_libraries (f90_ex_${example}
       ${HDF5_F90_LIB_TARGET}
       ${HDF5_LIB_TARGET}
   )
-  set_target_properties (f90_ex_${example} PROPERTIES LINKER_LANGUAGE Fortran)
-  set_target_properties (f90_ex_${example} PROPERTIES FOLDER examples/fortran)
+  target_include_directories (f90_ex_${example} PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/static)
+  set_target_properties (f90_ex_${example} PROPERTIES
+      LINKER_LANGUAGE Fortran
+      FOLDER examples/fortran
+      Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}
+  )
 endforeach (example ${examples})
 
 if (HDF5_ENABLE_F2003)
   foreach (example ${F2003_examples})
     add_executable (f03_ex_${example} ${HDF5_F90_EXAMPLES_SOURCE_DIR}/${example}.f90)
     TARGET_NAMING (f03_ex_${example} ${LIB_TYPE})
-    TARGET_FORTRAN_PROPERTIES (f03_ex_${example} " " " ")
-    if (WIN32)
-      set_property (TARGET f03_ex_${example} 
-          APPEND PROPERTY COMPILE_DEFINITIONS HDF5F90_WINDOWS
-      )
-    endif (WIN32)
+    TARGET_FORTRAN_PROPERTIES (f03_ex_${example} ${LIB_TYPE} " " " ")
     target_link_libraries (f03_ex_${example}
         ${HDF5_F90_LIB_TARGET}
         ${HDF5_LIB_TARGET}
     )
-    set_target_properties (f03_ex_${example} PROPERTIES LINKER_LANGUAGE Fortran)
-    set_target_properties (f03_ex_${example} PROPERTIES FOLDER examples/fortran03)
+    target_include_directories (f03_ex_${example} PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/static)
+    set_target_properties (f03_ex_${example} PROPERTIES
+        LINKER_LANGUAGE Fortran
+        FOLDER examples/fortran03
+        Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}
+    )
   endforeach (example ${F2003_examples})
 endif (HDF5_ENABLE_F2003)
 
 if (H5_HAVE_PARALLEL AND MPI_Fortran_FOUND)
   add_executable (f90_ex_ph5example ${HDF5_F90_EXAMPLES_SOURCE_DIR}/ph5example.f90)
   TARGET_NAMING (f90_ex_ph5example ${LIB_TYPE})
-  TARGET_FORTRAN_PROPERTIES (f90_ex_ph5example " " " ")
-  if (WIN32)
-    set_property (TARGET f90_ex_ph5example 
-        APPEND PROPERTY COMPILE_DEFINITIONS 
-          HDF5F90_WINDOWS
-    )
-  endif (WIN32)
+  TARGET_FORTRAN_PROPERTIES (f90_ex_ph5example ${LIB_TYPE} " " " ")
   target_link_libraries (f90_ex_ph5example
       ${HDF5_F90_LIB_TARGET}
       ${HDF5_LIB_TARGET}
       ${MPI_Fortran_LIBRARIES}
   )
-  set_target_properties (f90_ex_ph5example PROPERTIES LINKER_LANGUAGE Fortran)
-  set_target_properties (f90_ex_ph5example PROPERTIES FOLDER examples/fortran)
+  target_include_directories (f90_ex_ph5example PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/static)
+  set_target_properties (f90_ex_ph5example PROPERTIES
+      LINKER_LANGUAGE Fortran
+      FOLDER examples/fortran
+      Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}
+  )
 endif (H5_HAVE_PARALLEL AND MPI_Fortran_FOUND)
 
 if (BUILD_TESTING)
diff --git a/fortran/examples/Makefile.am b/fortran/examples/Makefile.am
index feed32c..caaa08c 100644
--- a/fortran/examples/Makefile.am
+++ b/fortran/examples/Makefile.am
@@ -79,6 +79,7 @@ endif
 # Tell automake how to install examples
 # Note: no '/' after DESTDIR.  Explanation in commence.am
 EXAMPLEDIR=${DESTDIR}$(exec_prefix)/share/hdf5_examples/fortran
+EXAMPLETOPDIR=${DESTDIR}$(exec_prefix)/share/hdf5_examples
 
 # List dependencies for each example.  Normally, automake would take
 # care of this for us, but if we tell automake about the programs it
diff --git a/fortran/examples/Makefile.in b/fortran/examples/Makefile.in
index b9b5efb..c894b75 100644
--- a/fortran/examples/Makefile.in
+++ b/fortran/examples/Makefile.in
@@ -115,7 +115,8 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \
 TESTS = $(TEST_SCRIPT)
 subdir = fortran/examples
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \
+	$(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs
@@ -360,7 +361,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@
 AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@
 AM_MAKEFLAGS = @AM_MAKEFLAGS@
 AR = @AR@
-AS = @AS@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -392,7 +392,6 @@ DIRECT_VFD = @DIRECT_VFD@
 DLLTOOL = @DLLTOOL@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
-DYNAMIC_DIRS = @DYNAMIC_DIRS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -411,17 +410,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@
 FCLIBS = @FCLIBS@
 FC_VERSION = @FC_VERSION@
 FGREP = @FGREP@
-FILTERS = @FILTERS@
 FSEARCH_DIRS = @FSEARCH_DIRS@
 GREP = @GREP@
 H5_CFLAGS = @H5_CFLAGS@
 H5_CPPFLAGS = @H5_CPPFLAGS@
 H5_CXXFLAGS = @H5_CXXFLAGS@
-H5_CXX_SHARED = @H5_CXX_SHARED@
 H5_FCFLAGS = @H5_FCFLAGS@
 H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@
 H5_LDFLAGS = @H5_LDFLAGS@
-H5_LONE_COLON = @H5_LONE_COLON@
 H5_VERSION = @H5_VERSION@
 HADDR_T = @HADDR_T@
 HAVE_DMALLOC = @HAVE_DMALLOC@
@@ -444,7 +440,6 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INSTRUMENT = @INSTRUMENT@
 INSTRUMENT_LIBRARY = @INSTRUMENT_LIBRARY@
-LARGEFILE = @LARGEFILE@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
@@ -485,7 +480,6 @@ R_INTEGER = @R_INTEGER@
 R_LARGE = @R_LARGE@
 SEARCH = @SEARCH@
 SED = @SED@
-SETX = @SETX@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIZE_T = @SIZE_T@
@@ -500,10 +494,6 @@ TR = @TR@
 TRACE_API = @TRACE_API@
 UNAME_INFO = @UNAME_INFO@
 USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@
-USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@
-USE_FILTER_NBIT = @USE_FILTER_NBIT@
-USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@
-USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@
 USE_FILTER_SZIP = @USE_FILTER_SZIP@
 USINGMEMCHECKER = @USINGMEMCHECKER@
 VERSION = @VERSION@
@@ -617,8 +607,8 @@ TRACE = perl $(top_srcdir)/bin/trace
 
 # .chkexe files are used to mark tests that have run successfully.
 # .chklog files are output from those tests.
-# *.clog are from the MPE option.
-CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.h5
+# *.clog and *.clog2 are from the MPE option.
+CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 *.h5
 
 # Compile parallel fortran examples only if parallel is enabled
 @BUILD_PARALLEL_CONDITIONAL_TRUE at EXAMPLE_PROG_PARA = ph5example
@@ -649,6 +639,7 @@ FORTRAN_API = yes
 # Tell automake how to install examples
 # Note: no '/' after DESTDIR.  Explanation in commence.am
 EXAMPLEDIR = ${DESTDIR}$(exec_prefix)/share/hdf5_examples/fortran
+EXAMPLETOPDIR = ${DESTDIR}$(exec_prefix)/share/hdf5_examples
 
 # Assume that all tests in this directory are examples, and tell
 # conclude.am when to build them.
diff --git a/fortran/src/CMakeLists.txt b/fortran/src/CMakeLists.txt
index c91d9e8..c015072 100644
--- a/fortran/src/CMakeLists.txt
+++ b/fortran/src/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required (VERSION 2.8.11)
+cmake_minimum_required (VERSION 3.1.0)
 PROJECT (HDF5_F90_SRC C CXX Fortran)
 
 #-----------------------------------------------------------------------------
@@ -11,6 +11,8 @@ if (WIN32)
       endif (NOT H5_HAVE_PARALLEL)
       if (NOT HDF5_ENABLE_F2003)
         set (H5_NOF03EXP ";")
+      else (NOT HDF5_ENABLE_F2003)
+        set (H5_F03EXP ";")
       endif (NOT HDF5_ENABLE_F2003)
       configure_file (${HDF5_F90_SRC_SOURCE_DIR}/hdf5_fortrandll.def.in ${HDF5_F90_SRC_BINARY_DIR}/hdf5_fortrandll.def @ONLY)
     endif (MSVC)
@@ -52,7 +54,10 @@ if (WIN32 AND MSVC)
           LINK_FLAGS "/SUBSYSTEM:CONSOLE"
   )
 endif (WIN32 AND MSVC)
-set_target_properties (H5test_FortranHavekind PROPERTIES LINKER_LANGUAGE Fortran)
+set_target_properties (H5test_FortranHavekind PROPERTIES
+    LINKER_LANGUAGE Fortran
+    Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}
+)
 
 set (CMD $<TARGET_FILE:H5test_FortranHavekind>)
 add_custom_command (
@@ -132,7 +137,6 @@ if (H5_HAVE_PARALLEL)
       ${HDF5_F90_SRC_SOURCE_DIR}/H5FDmpiof.c
   )
 endif (H5_HAVE_PARALLEL)
-
 set_source_files_properties (${f90CStub_C_SRCS} PROPERTIES LANGUAGE C)
 
 set (f90CStub_C_HDRS
@@ -141,7 +145,7 @@ set (f90CStub_C_HDRS
 )
 
 add_library (${HDF5_F90_C_LIB_TARGET} ${LIB_TYPE} ${f90CStub_C_SRCS} ${f90CStub_C_HDRS})
-TARGET_C_PROPERTIES (${HDF5_F90_C_LIB_TARGET} " " " ")
+TARGET_C_PROPERTIES (${HDF5_F90_C_LIB_TARGET} ${LIB_TYPE} " " " ")
 target_link_libraries (${HDF5_F90_C_LIB_TARGET} ${HDF5_LIB_TARGET} ${LINK_LIBS})
 set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_F90_C_LIB_TARGET}")
 H5_SET_LIB_OPTIONS (${HDF5_F90_C_LIB_TARGET} ${HDF5_F90_C_LIB_NAME} ${LIB_TYPE})
@@ -224,6 +228,7 @@ else (H5_HAVE_PARALLEL AND MPI_Fortran_FOUND)
     ${HDF5_F90_SRC_SOURCE_DIR}/HDF5.f90
   )
 endif (H5_HAVE_PARALLEL AND MPI_Fortran_FOUND)
+set_source_files_properties (${f90_F_SRCS} PROPERTIES LANGUAGE Fortran)
 
 #-----------------------------------------------------------------------------
 # Add Main fortran library
@@ -245,8 +250,7 @@ if (WIN32)
         HDF5F90_WINDOWS
   )
 endif (WIN32)
-TARGET_FORTRAN_PROPERTIES (${HDF5_F90_LIB_TARGET} " " ${SHARED_LINK_FLAGS})
-set_target_properties (${HDF5_F90_LIB_TARGET} PROPERTIES LINKER_LANGUAGE Fortran)
+TARGET_FORTRAN_PROPERTIES (${HDF5_F90_LIB_TARGET} ${LIB_TYPE} " " ${SHARED_LINK_FLAGS})
 target_link_libraries (${HDF5_F90_LIB_TARGET} ${HDF5_F90_C_LIB_TARGET} ${HDF5_LIB_TARGET})
 if (H5_HAVE_PARALLEL AND MPI_Fortran_FOUND)
   target_link_libraries (${HDF5_F90_LIB_TARGET} ${MPI_Fortran_LIBRARIES})
@@ -255,7 +259,9 @@ set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF
 H5_SET_LIB_OPTIONS (${HDF5_F90_LIB_TARGET} ${HDF5_F90_LIB_NAME} ${LIB_TYPE})
 set_target_properties (${HDF5_F90_LIB_TARGET} PROPERTIES
     FOLDER libraries/fortran
+    LINKER_LANGUAGE Fortran
     INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>"
+    Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}
 )
 
 #-----------------------------------------------------------------------------
@@ -275,107 +281,57 @@ install (
 )
 
 if (WIN32)
-  install (
-      FILES
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5fortran_types.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
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5d.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5e.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5f.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5g.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5i.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5l.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5lib.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5o.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5p.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5r.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5s.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5t.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5z.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5a_provisional.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5d_provisional.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5e_provisional.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5f_provisional.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5l_provisional.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5lib_provisional.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5o_provisional.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5p_provisional.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5r_provisional.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5t_provisional.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5_dble_interface.mod
-      DESTINATION
-          ${HDF5_INSTALL_INCLUDE_DIR}
-      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)
+  set (MOD_BUILD_DIR ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE})
 else (WIN32)
-  install (
-      FILES
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/h5fortran_types.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/hdf5.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/h5global.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/h5f.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/h5a.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/h5d.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/h5e.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/h5f.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/h5g.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/h5i.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/h5l.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/h5lib.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/h5o.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/h5p.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/h5r.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/h5s.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/h5t.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/h5z.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/h5a_provisional.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/h5d_provisional.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/h5e_provisional.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/h5e_provisional.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/h5l_provisional.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/h5lib_provisional.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/h5o_provisional.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/h5p_provisional.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/h5r_provisional.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/h5t_provisional.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/h5_dble_interface.mod
-      DESTINATION
-          ${HDF5_INSTALL_INCLUDE_DIR}
-      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)
+  set (MOD_BUILD_DIR ${CMAKE_Fortran_MODULE_DIRECTORY})
 endif (WIN32)
 
+set (mod_files
+    ${MOD_BUILD_DIR}/h5fortran_types.mod
+    ${MOD_BUILD_DIR}/hdf5.mod
+    ${MOD_BUILD_DIR}/h5global.mod
+    ${MOD_BUILD_DIR}/h5a.mod
+    ${MOD_BUILD_DIR}/h5d.mod
+    ${MOD_BUILD_DIR}/h5e.mod
+    ${MOD_BUILD_DIR}/h5f.mod
+    ${MOD_BUILD_DIR}/h5g.mod
+    ${MOD_BUILD_DIR}/h5i.mod
+    ${MOD_BUILD_DIR}/h5l.mod
+    ${MOD_BUILD_DIR}/h5lib.mod
+    ${MOD_BUILD_DIR}/h5o.mod
+    ${MOD_BUILD_DIR}/h5p.mod
+    ${MOD_BUILD_DIR}/h5r.mod
+    ${MOD_BUILD_DIR}/h5s.mod
+    ${MOD_BUILD_DIR}/h5t.mod
+    ${MOD_BUILD_DIR}/h5z.mod
+    ${MOD_BUILD_DIR}/h5a_provisional.mod
+    ${MOD_BUILD_DIR}/h5d_provisional.mod
+    ${MOD_BUILD_DIR}/h5e_provisional.mod
+    ${MOD_BUILD_DIR}/h5f_provisional.mod
+    ${MOD_BUILD_DIR}/h5l_provisional.mod
+    ${MOD_BUILD_DIR}/h5lib_provisional.mod
+    ${MOD_BUILD_DIR}/h5o_provisional.mod
+    ${MOD_BUILD_DIR}/h5p_provisional.mod
+    ${MOD_BUILD_DIR}/h5r_provisional.mod
+    ${MOD_BUILD_DIR}/h5t_provisional.mod
+    ${MOD_BUILD_DIR}/h5_dble_interface.mod
+)
+install (
+    FILES
+        ${mod_files}
+    DESTINATION
+        ${HDF5_INSTALL_INCLUDE_DIR}
+    COMPONENT
+        fortheaders
+)
+
 #-----------------------------------------------------------------------------
 # Add Target(s) to CMake Install for import into other projects
 #-----------------------------------------------------------------------------
 if (HDF5_EXPORTED_TARGETS)
   if (BUILD_SHARED_LIBS)
-    INSTALL_TARGET_PDB (${HDF5_F90_C_LIB_TARGET} ${HDF5_INSTALL_LIB_DIR} fortlibraries)
-    #INSTALL_TARGET_PDB (${HDF5_F90_LIB_TARGET} ${HDF5_INSTALL_LIB_DIR} fortlibraries)
+    INSTALL_TARGET_PDB (${HDF5_F90_C_LIB_TARGET} ${HDF5_INSTALL_BIN_DIR} fortlibraries)
+    #INSTALL_TARGET_PDB (${HDF5_F90_LIB_TARGET} ${HDF5_INSTALL_BIN_DIR} fortlibraries)
   endif (BUILD_SHARED_LIBS)
 
   install (
diff --git a/fortran/src/H5Af.c b/fortran/src/H5Af.c
index 896736d..240fbc3 100644
--- a/fortran/src/H5Af.c
+++ b/fortran/src/H5Af.c
@@ -1652,7 +1652,7 @@ nh5aget_info_c (hid_t_f *loc_id, int_f *corder_valid, int_f *corder,
 
     *corder = (int_f)ainfo.corder;
     *cset = (int_f)ainfo.cset;
-    *data_size = (hsize_t)ainfo.data_size;
+    *data_size = (hsize_t_f)ainfo.data_size;
 
 done:
     return ret_value;
@@ -1728,7 +1728,7 @@ nh5aget_info_by_idx_c (hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen,
         *corder_valid = 1;
     *corder = (int_f)ainfo.corder;
     *cset = (int_f)ainfo.cset;
-    *data_size = (hsize_t)ainfo.data_size;
+    *data_size = (hsize_t_f)ainfo.data_size;
 
 done:
     if(c_obj_name)
@@ -1797,7 +1797,7 @@ nh5aget_info_by_name_c (hid_t_f *loc_id, _fcd obj_name, size_t_f *obj_namelen,
         *corder_valid = 1;
     *corder = (int_f)ainfo.corder;
     *cset = (int_f)ainfo.cset;
-    *data_size = (hsize_t)ainfo.data_size;
+    *data_size = (hsize_t_f)ainfo.data_size;
 
 done:
     if(c_obj_name)
@@ -2081,25 +2081,25 @@ done:
 }
 /****if* H5Af/h5awrite_f_c
  * NAME
- *        h5awrite_f_c
+ *  h5awrite_f_c
  * PURPOSE
- *     Call H5Awrite to write a dataset
+ *  Call H5Awrite to write a dataset
  * INPUTS
- *      attr_id - Identifier of an attribute to write.
- *              mem_type_id - Identifier of the attribute datatype (in memory).
- *              buf      - data pointer buffer
+ *  attr_id     - Identifier of an attribute to write.
+ *  mem_type_id - Identifier of the attribute datatype (in memory).
+ *  buf         - data pointer buffer
  * RETURNS
- *     0 on success, -1 on failure
+ *  0 on success, -1 on failure
  * AUTHOR
  *  M. Scot Breitenfeld
- *              June 11, 2008
+ *  June 11, 2008
  * HISTORY
  *
  *
  * SOURCE
 */
 int_f
-nh5awrite_f_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf)
+h5awrite_f_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf)
 /******/
 {
   int ret_value = -1;
@@ -2114,25 +2114,25 @@ nh5awrite_f_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf)
 
 /****if* H5Af/h5aread_f_c
  * NAME
- *        h5aread_f_c
+ *  h5aread_f_c
  * PURPOSE
- *     Call H5Awrite to write a dataset
+ *  Call H5Awrite to write a dataset
  * INPUTS
- *      attr_id - Identifier of an attribute to write.
- *              mem_type_id - Identifier of the attribute datatype (in memory).
- *              buf      - data pointer buffer
+ *  attr_id     - Identifier of an attribute to write.
+ *  mem_type_id - Identifier of the attribute datatype (in memory).
+ *  buf         - data pointer buffer
  * RETURNS
- *     0 on success, -1 on failure
+ *  0 on success, -1 on failure
  * AUTHOR
  *  M. Scot Breitenfeld
- *              June 11, 2008
+ *  June 11, 2008
  * HISTORY
  *
  *
  * SOURCE
 */
 int_f
-nh5aread_f_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf)
+h5aread_f_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf)
 /******/
 {
   int ret_value = -1;
diff --git a/fortran/src/H5Aff_F03.f90 b/fortran/src/H5Aff_F03.f90
index 807f6fa..5278280 100644
--- a/fortran/src/H5Aff_F03.f90
+++ b/fortran/src/H5Aff_F03.f90
@@ -143,12 +143,9 @@ MODULE H5A_PROVISIONAL
 !  to the C H5Awrite routine
 
   INTERFACE
-     INTEGER FUNCTION h5awrite_f_c(attr_id, mem_type_id, buf)
+     INTEGER FUNCTION h5awrite_f_c(attr_id, mem_type_id, buf) BIND(C, NAME='h5awrite_f_c')
+       USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr
        USE H5GLOBAL
-       USE, INTRINSIC :: ISO_C_BINDING
-       !DEC$IF DEFINED(HDF5F90_WINDOWS)
-       !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AWRITE_F_C'::h5awrite_f_c
-       !DEC$ENDIF
        INTEGER(HID_T), INTENT(IN) :: attr_id
        INTEGER(HID_T), INTENT(IN) :: mem_type_id
        TYPE(C_PTR), VALUE :: buf
@@ -159,12 +156,9 @@ MODULE H5A_PROVISIONAL
 !  to the C H5Aread routine
 
   INTERFACE
-     INTEGER FUNCTION h5aread_f_c(attr_id, mem_type_id, buf)
+     INTEGER FUNCTION h5aread_f_c(attr_id, mem_type_id, buf) BIND(C, NAME='h5aread_f_c')
+       USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr
        USE H5GLOBAL
-       USE, INTRINSIC :: ISO_C_BINDING
-       !DEC$IF DEFINED(HDF5F90_WINDOWS)
-       !DEC$ATTRIBUTES C,reference,decorate,alias:'H5AREAD_F_C'::h5aread_f_c
-       !DEC$ENDIF
        INTEGER(HID_T), INTENT(IN) :: attr_id
        INTEGER(HID_T), INTENT(IN) :: mem_type_id
        TYPE(C_PTR), VALUE :: buf
diff --git a/fortran/src/H5Df.c b/fortran/src/H5Df.c
index 799f40a..f4082a9 100644
--- a/fortran/src/H5Df.c
+++ b/fortran/src/H5Df.c
@@ -25,27 +25,26 @@
 
 /****if* H5Df/h5dcreate_c
  * NAME
- *        h5dcreate_c
+ *  h5dcreate_c
  * PURPOSE
- *     Call H5Dcreate2 to create a dataset
+ *  Call H5Dcreate2 to create a dataset
  * INPUTS
- *      loc_id - file or group identifier
- *              name - name of the dataset
- *              namelen - name length
- *              type_id - datatype identifier
- *              space_id - dataspace identifier
- *              crt_pr  - identifier of creation property list
+ *  loc_id   - file or group identifier
+ *  name     - name of the dataset
+ *  namelen  - name length
+ *  type_id  - datatype identifier
+ *  space_id - dataspace identifier
+ *  crt_pr   - identifier of creation property list
  * OUTPUTS
- *     dset_id - dataset identifier
+ *  dset_id  - dataset identifier
  * RETURNS
- *     0 on success, -1 on failure
+ *  0 on success, -1 on failure
  * AUTHOR
  *  Elena Pourmal
- *              Wednesday, August 4, 1999
+ *  Wednesday, August 4, 1999
  * HISTORY
- *
- *               - Added optional parameters introduced in version 1.8
- *                 February, 2008
+ *   - Added optional parameters introduced in version 1.8
+ *     February, 2008
  * SOURCE
 */
 int_f
@@ -81,9 +80,9 @@ DONE:
 
 /****if* H5Df/h5dopen_c
  * NAME
- *        h5dopen_c
+ *  h5dopen_c
  * PURPOSE
- *     Call H5Dopen2 to open a dataset
+ *  Call H5Dopen2 to open a dataset
  * INPUTS
  *      loc_id - file or group identifier
  *              name - name of the dataset
@@ -132,9 +131,9 @@ DONE:
 
 /****if* H5Df/h5dwritec_c
  * NAME
- *        h5dwritec_c
+ *  h5dwritec_c
  * PURPOSE
- *     Call h5dwrite_c to write a dataset of characters
+ *  Call h5dwrite_c to write a dataset of characters
  * INPUTS
  *      dset_id - dataset identifier
  *              mem_type_id - memory datatype identifier
@@ -281,9 +280,9 @@ nh5dwritec_7_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, h
 
 /****if* H5Df/h5dwrite_c
  * NAME
- *        h5dwrite_c
+ *  h5dwrite_c
  * PURPOSE
- *     Call H5Dwrite to write a dataset
+ *  Call H5Dwrite to write a dataset
  * INPUTS
  *      dset_id - dataset identifier
  *              mem_type_id - memory datatype identifier
@@ -589,9 +588,9 @@ nh5dwrite_double_7_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space
 
 /****if* H5Df/h5dwrite_ref_obj_c
  * NAME
- *        h5dwrite_ref_obj_c
+ *  h5dwrite_ref_obj_c
  * PURPOSE
- *     Call H5Dwrite to write a dataset  of object references
+ *  Call H5Dwrite to write a dataset  of object references
  * INPUTS
  *      dset_id - dataset identifier
  *              mem_type_id - memory datatype identifier
@@ -622,7 +621,7 @@ nh5dwrite_ref_obj_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_
     hid_t c_file_space_id;
     hid_t c_xfer_prp;
     hobj_ref_t *buf_c;
-    int i, n;
+    unsigned int i, n;
 
     /*
      * Define transfer property
@@ -632,8 +631,8 @@ nh5dwrite_ref_obj_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_
     /*
      * Allocate temporary buffer and copy references from Fortran.
      */
-    n = (int)*dims;
-    buf_c = (hobj_ref_t*)HDmalloc(sizeof(hobj_ref_t)*(n));
+    n = (unsigned int)*dims;
+    buf_c = (hobj_ref_t*)HDmalloc(sizeof(hobj_ref_t)*n);
     if ( buf_c != NULL ) {
         for (i = 0; i < n; i++)
              HDmemcpy(&buf_c[i], &buf[i], sizeof(haddr_t));
@@ -656,25 +655,25 @@ nh5dwrite_ref_obj_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_
 
 /****if* H5Df/h5dwrite_ref_reg_c
  * NAME
- *        h5dwrite_ref_reg_c
+ *  h5dwrite_ref_reg_c
  * PURPOSE
- *     Call H5Dwrite to write a dataset of dataset region references
+ *  Call H5Dwrite to write a dataset of dataset region references
  * INPUTS
- *      dset_id - dataset identifier
- *              mem_type_id - memory datatype identifier
- *              mem_space_id - memory dataspace identifier
- *              file_space_id - memory dataspace identifier
- *              xfer_pr  - identifier of transfer property list
- *              buf      - data buffer with references to the objects.
- *              n - number of references to be stored.
+ *  dset_id       - dataset identifier
+ *  mem_type_id   - memory datatype identifier
+ *  mem_space_id  - memory dataspace identifier
+ *  file_space_id - memory dataspace identifier
+ *  xfer_pr       - identifier of transfer property list
+ *  buf           - data buffer with references to the objects.
+ *  n             - number of references to be stored.
  * RETURNS
- *     0 on success, -1 on failure
+ *  0 on success, -1 on failure
  * AUTHOR
  *  Elena Pourmal
- *              Tuesday, May 14, 2002
+ *  Tuesday, May 14, 2002
  * HISTORY
- * This function was added to accomodate h5dwrite_f with the
- *                dims argument being of INTEGER(HSIZE_T) type
+ *  This function was added to accomodate h5dwrite_f with the
+ *  dims argument being of INTEGER(HSIZE_T) type
  * SOURCE
 */
 int_f
@@ -689,9 +688,9 @@ nh5dwrite_ref_reg_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_
      hid_t c_file_space_id;
      hid_t c_xfer_prp;
      hdset_reg_ref_t *buf_c = NULL;
-     int i, n;
+     unsigned int i, n;
 
-      n = (int)*dims;
+      n = (unsigned int)*dims;
      /*
       * Define transfer property
       */
@@ -700,7 +699,7 @@ nh5dwrite_ref_reg_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_
      /*
       * Allocate temporary buffer and copy references from Fortran.
       */
-      buf_c = (hdset_reg_ref_t *)HDmalloc(sizeof(hdset_reg_ref_t)*(n));
+     buf_c = (hdset_reg_ref_t *)HDmalloc(sizeof(hdset_reg_ref_t)*n);
       if ( buf_c != NULL ) {
       for (i = 0; i < n; i++) {
            HDmemcpy(&buf_c[i], buf, H5R_DSET_REG_REF_BUF_SIZE);
@@ -728,9 +727,9 @@ nh5dwrite_ref_reg_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_
 
 /****if* H5Df/h5dreadc_c
  * NAME
- *        h5dreadc_c
+ *  h5dreadc_c
  * PURPOSE
- *     Call h5dread_c to read a dataset of characters
+ *  Call h5dread_c to read a dataset of characters
  * INPUTS
  *      dset_id - dataset identifier
  *              mem_type_id - memory datatype identifier
@@ -877,9 +876,9 @@ nh5dreadc_7_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, hi
 
 /****if* H5Df/h5dread_c
  * NAME
- *        h5dread_c
+ *  h5dread_c
  * PURPOSE
- *     Call H5Draed to read a dataset
+ *  Call H5Draed to read a dataset
  * INPUTS
  *      dset_id - dataset identifier
  *              mem_type_id - memory datatype identifier
@@ -1177,9 +1176,9 @@ nh5dread_double_7_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_
 
 /****if* H5Df/h5dread_ref_obj_c
  * NAME
- *        h5dread_ref_obj_c
+ *  h5dread_ref_obj_c
  * PURPOSE
- *     Call H5Dread to read a dataset  of object references
+ *  Call H5Dread to read a dataset  of object references
  * INPUTS
  *      dset_id - dataset identifier
  *              mem_type_id - memory datatype identifier
@@ -1244,9 +1243,9 @@ nh5dread_ref_obj_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_i
 
 /****if* H5Df/h5dread_ref_reg_c
  * NAME
- *        h5dread_ref_reg_c
+ *  h5dread_ref_reg_c
  * PURPOSE
- *     Call H5Dread to read a dataset of dataset region references
+ *  Call H5Dread to read a dataset of dataset region references
  * INPUTS
  *      dset_id - dataset identifier
  *              mem_type_id - memory datatype identifier
@@ -1314,9 +1313,9 @@ nh5dread_ref_reg_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_i
 
 /****if* H5Df/h5dclose_c
  * NAME
- *        h5dclose_c
+ *  h5dclose_c
  * PURPOSE
- *     Call H5Dclose to close a dataset
+ *  Call H5Dclose to close a dataset
  * INPUTS
  *      dset_id - identifier of the dataset to be closed
  * RETURNS
@@ -1342,9 +1341,9 @@ nh5dclose_c ( hid_t_f *dset_id )
 
 /****if* H5Df/h5dget_space_c
  * NAME
- *        h5dget_space_c
+ *  h5dget_space_c
  * PURPOSE
- *     Call H5Dget_space to obtain dataspace of a dataset
+ *  Call H5Dget_space to obtain dataspace of a dataset
  * INPUTS
  *      dset_id - identifier of the dataset
  * OUTPUTS
@@ -1377,9 +1376,9 @@ nh5dget_space_c ( hid_t_f *dset_id , hid_t_f *space_id)
 
 /****if* H5Df/h5dget_type_c
  * NAME
- *        h5dget_type_c
+ *  h5dget_type_c
  * PURPOSE
- *     Call H5Dget_type to obtain datatype of a dataset
+ *  Call H5Dget_type to obtain datatype of a dataset
  * INPUTS
  *      dset_id - identifier of the dataset
  * OUTPUTS
@@ -1414,9 +1413,9 @@ nh5dget_type_c ( hid_t_f *dset_id , hid_t_f *type_id)
 
 /****if* H5Df/h5dget_create_plist_c
  * NAME
- *        h5dget_create_plist_c
+ *  h5dget_create_plist_c
  * PURPOSE
- *     Call H5Dget_create_plist to obtain creation property list
+ *  Call H5Dget_create_plist to obtain creation property list
  *              of a dataset
  * INPUTS
  *      dset_id - identifier of the dataset
@@ -1453,9 +1452,9 @@ nh5dget_create_plist_c ( hid_t_f *dset_id , hid_t_f *plist_id)
 
 /****if* H5Df/h5dset_extent_c
  * NAME
- *        h5dset_extent_c
+ *  h5dset_extent_c
  * PURPOSE
- *     Call H5Dset_extent to extend dataset with unlimited dimensions
+ *  Call H5Dset_extent to extend dataset with unlimited dimensions
  * INPUTS
  *      dset_id - identifier of the dataset
  * OUTPUTS
@@ -1495,7 +1494,7 @@ nh5dset_extent_c ( hid_t_f *dset_id , hsize_t_f *dims)
    * Reverse dimensions due to C-FORTRAN storage order.
    */
   for(i = 0; i < rank; i++)
-      c_dims[i] = dims[rank - i - 1];
+      c_dims[i] = (hsize_t)dims[rank - i - 1];
 
   status = H5Dset_extent((hid_t)*dset_id, c_dims);
 
@@ -1506,9 +1505,9 @@ nh5dset_extent_c ( hid_t_f *dset_id , hsize_t_f *dims)
 
 /****if* H5Df/nh5dget_storage_size_c
  * NAME
- *        nh5dget_storage_size_c
+ *  nh5dget_storage_size_c
  * PURPOSE
- *     Call H5Dget_storage_size to return the amount of storage
+ *  Call H5Dget_storage_size to return the amount of storage
  *              required for a dataset
  * INPUTS
  *      dset_id - identifier of the dataset
@@ -1542,9 +1541,9 @@ nh5dget_storage_size_c ( hid_t_f *dset_id , hsize_t_f *size)
 
 /****if* H5Df/nh5dvlen_get_max_len_c
  * NAME
- *        nh5dvlen_get_max_len_c
+ *  nh5dvlen_get_max_len_c
  * PURPOSE
- *     Get the maximum size of the VL dataset element
+ *  Get the maximum size of the VL dataset element
  * INPUTS
  *      dset_id - identifier of the dataset
  *              type_id - datatype identifier
@@ -1600,9 +1599,9 @@ DONE:
 }
 /****if* H5Df/nh5dwrite_vl_integer_c
  * NAME
- *        nh5dwrite_vl_integer_c
+ *  nh5dwrite_vl_integer_c
  * PURPOSE
- *     Write variable length dataset
+ *  Write variable length dataset
  * INPUTS
  *      dset_id - identifier of the dataset
  *              mem_type_id - datatype identifier
@@ -1643,7 +1642,7 @@ nh5dwrite_vl_integer_c ( hid_t_f *dset_id ,  hid_t_f *mem_type_id, hid_t_f *mem_
   hsize_t num_elem;
 
   max_len = (size_t)dims[0];
-  num_elem = dims[1];
+  num_elem = (hsize_t)dims[1];
 
   c_dset_id       = (hid_t)*dset_id;
   c_mem_type_id   = (hid_t)*mem_type_id;
@@ -1673,9 +1672,9 @@ DONE:
 
 /****if* H5Df/nh5dread_vl_integer_c
  * NAME
- *        nh5dread_vl_integer_c
+ *  nh5dread_vl_integer_c
  * PURPOSE
- *     Read variable length dataset
+ *  Read variable length dataset
  * INPUTS
  *      dset_id - identifier of the dataset
  *              mem_type_id - datatype identifier
@@ -1712,7 +1711,7 @@ nh5dread_vl_integer_c ( hid_t_f *dset_id ,  hid_t_f *mem_type_id, hid_t_f *mem_s
   size_t max_len;
 
   hvl_t *c_buf;
-  hssize_t i;
+  hsize_t i;
   hssize_t num_elem;
 
   c_dset_id       = (hid_t)*dset_id;
@@ -1723,7 +1722,7 @@ nh5dread_vl_integer_c ( hid_t_f *dset_id ,  hid_t_f *mem_type_id, hid_t_f *mem_s
 
   max_len = (size_t)dims[0];
   num_elem = H5Sget_select_npoints(c_mem_space_id);
-  if(num_elem != dims[1]) return ret_value;
+  if(num_elem != (hssize_t)dims[1]) return ret_value;
 
   c_buf = (hvl_t *)HDmalloc((size_t)num_elem * sizeof(hvl_t));
   if (c_buf == NULL) return ret_value;
@@ -1732,7 +1731,7 @@ nh5dread_vl_integer_c ( hid_t_f *dset_id ,  hid_t_f *mem_type_id, hid_t_f *mem_s
    */
    status = H5Dread(c_dset_id, c_mem_type_id, c_mem_space_id, c_file_space_id, c_xfer_prp, c_buf);
  if ( status < 0 ) goto DONE;
-  for (i=0; i < num_elem; i++) {
+  for (i=0; i < (hsize_t)num_elem; i++) {
        len[i] = (size_t_f)c_buf[i].len;
        memcpy(&buf[i*max_len], c_buf[i].p, c_buf[i].len*sizeof(int_f));
   }
@@ -1745,9 +1744,9 @@ DONE:
 
 /****if* H5Df/nh5dwrite_vl_string_c
  * NAME
- *        nh5dwrite_vl_string_c
+ *  nh5dwrite_vl_string_c
  * PURPOSE
- *     Write variable length strings from Fortran program
+ *  Write variable length strings from Fortran program
  * INPUTS
  *      dset_id - identifier of the dataset
  *              mem_type_id - datatype identifier
@@ -1787,7 +1786,7 @@ nh5dwrite_vl_string_c( hid_t_f *dset_id ,  hid_t_f *mem_type_id, hid_t_f *mem_sp
   hsize_t num_elem;
 
   max_len = (size_t)dims[0];
-  num_elem = dims[1];
+  num_elem = (hsize_t)dims[1];
 
   c_dset_id       = (hid_t)*dset_id;
   c_mem_type_id   = (hid_t)*mem_type_id;
@@ -1832,9 +1831,9 @@ DONE:
 }
 /****if* H5Df/nh5dread_vl_string_c
  * NAME
- *        nh5dread_vl_string_c
+ *  nh5dread_vl_string_c
  * PURPOSE
- *     Read variable length strings from Fortran program
+ *  Read variable length strings from Fortran program
  * INPUTS
  *      dset_id - identifier of the dataset
  *              mem_type_id - datatype identifier
@@ -1874,7 +1873,7 @@ nh5dread_vl_string_c( hid_t_f *dset_id ,  hid_t_f *mem_type_id, hid_t_f *mem_spa
   hsize_t num_elem;
 
   max_len = (size_t)dims[0];
-  num_elem = dims[1];
+  num_elem = (hsize_t)dims[1];
 
   c_dset_id       = (hid_t)*dset_id;
   c_mem_type_id   = (hid_t)*mem_type_id;
@@ -1915,9 +1914,9 @@ nh5dread_vl_string_c( hid_t_f *dset_id ,  hid_t_f *mem_type_id, hid_t_f *mem_spa
 
 /****if* H5Df/nh5dwrite_vl_real_c
  * NAME
- *        nh5dwrite_vl_real_c
+ *  nh5dwrite_vl_real_c
  * PURPOSE
- *     Write variable length dataset
+ *  Write variable length dataset
  * INPUTS
  *      dset_id - identifier of the dataset
  *              mem_type_id - datatype identifier
@@ -1958,7 +1957,7 @@ nh5dwrite_vl_real_c ( hid_t_f *dset_id ,  hid_t_f *mem_type_id, hid_t_f *mem_spa
   hsize_t num_elem;
 
   max_len = (size_t)dims[0];
-  num_elem = dims[1];
+  num_elem = (hsize_t)dims[1];
 
   c_dset_id       = (hid_t)*dset_id;
   c_mem_type_id   = (hid_t)*mem_type_id;
@@ -1988,9 +1987,9 @@ DONE:
 
 /****if* H5Df/nh5dread_vl_real_c
  * NAME
- *        nh5dread_vl_real_c
+ *  nh5dread_vl_real_c
  * PURPOSE
- *     Read variable length dataset
+ *  Read variable length dataset
  * INPUTS
  *      dset_id - identifier of the dataset
  *              mem_type_id - datatype identifier
@@ -2027,7 +2026,7 @@ nh5dread_vl_real_c ( hid_t_f *dset_id ,  hid_t_f *mem_type_id, hid_t_f *mem_spac
   size_t max_len;
 
   hvl_t *c_buf;
-  hssize_t i;
+  hsize_t i;
   hssize_t num_elem;
 
   c_dset_id       = (hid_t)*dset_id;
@@ -2038,7 +2037,7 @@ nh5dread_vl_real_c ( hid_t_f *dset_id ,  hid_t_f *mem_type_id, hid_t_f *mem_spac
 
   max_len = (size_t)dims[0];
   num_elem = H5Sget_select_npoints(c_mem_space_id);
-  if(num_elem != dims[1]) return ret_value;
+  if(num_elem != (hssize_t)dims[1]) return ret_value;
 
   c_buf = (hvl_t *)HDmalloc((size_t)num_elem * sizeof(hvl_t));
   if (c_buf == NULL) return ret_value;
@@ -2047,7 +2046,7 @@ nh5dread_vl_real_c ( hid_t_f *dset_id ,  hid_t_f *mem_type_id, hid_t_f *mem_spac
    */
    status = H5Dread(c_dset_id, c_mem_type_id, c_mem_space_id, c_file_space_id, c_xfer_prp, c_buf);
  if ( status <0  )  goto DONE;
-  for (i=0; i < num_elem; i++) {
+  for (i=0; i < (hsize_t)num_elem; i++) {
        len[i] = (size_t_f)c_buf[i].len;
        memcpy(&buf[i*max_len], c_buf[i].p, c_buf[i].len*sizeof(real_f));
   }
@@ -2061,20 +2060,20 @@ DONE:
 
 /****if* H5Df/h5dfillc_c
  * NAME
- *        h5dfillc_c
+ *  h5dfillc_c
  * PURPOSE
- *     Call h5fill_c to fill memory buffer with a fill value
+ *  Call h5fill_c to fill memory buffer with a fill value
  * INPUTS
- *      fill_value - fill value
- *              fill_type_id - fill value datatype identifier
- *              space_id - memory space selection identifier
- *              buf      - memory buffer to fill
- *              mem_type_id - memory buffer dtatype identifier
+ *  fill_value   - fill value
+ *  fill_type_id - fill value datatype identifier
+ *  space_id     - memory space selection identifier
+ *  buf          - memory buffer to fill
+ *  mem_type_id  - memory buffer dtatype identifier
  * RETURNS
- *     0 on success, -1 on failure
+ *  0 on success, -1 on failure
  * AUTHOR
  *  Elena Pourmal
- *              Wednesday, March 12, 2003
+ *  Wednesday, March 12, 2003
  * HISTORY
  *
  * SOURCE
@@ -2088,32 +2087,32 @@ nh5dfillc_c (_fcd fill_value, hid_t_f *fill_type_id, hid_t_f *space_id, _fcd buf
      /*
       * Call h5dfill_c  function.
       */
-     ret_value = nh5dfill_c(_fcdtocp(fill_value), fill_type_id, space_id, _fcdtocp(buf), mem_type_id);
+     ret_value = h5dfill_c(_fcdtocp(fill_value), fill_type_id, space_id, _fcdtocp(buf), mem_type_id);
 
      return ret_value;
 }
 /****if* H5Df/h5dfill_c
  * NAME
- *        h5dfill_c
+ *  h5dfill_c
  * PURPOSE
- *     Call H5Dfill to fill memory buffer with a fill value
+ *  Call H5Dfill to fill memory buffer with a fill value
  * INPUTS
- *      fill_value - fill value
- *              fill_type_id - fill value datatype identifier
- *              space_id - memory space selection identifier
- *              buf      - memory buffer to fill
- *              mem_type_id - memory buffer dtatype identifier
+ *  fill_value   - fill value
+ *  fill_type_id - fill value datatype identifier
+ *  space_id     - memory space selection identifier
+ *  buf          - memory buffer to fill
+ *  mem_type_id  - memory buffer dtatype identifier
  * RETURNS
- *     0 on success, -1 on failure
+ *  0 on success, -1 on failure
  * AUTHOR
  *  Elena Pourmal
- *              Wednesday, March 12, 2003
+ *  Wednesday, March 12, 2003
  * HISTORY
  *
  * SOURCE
 */
 int_f
-nh5dfill_c (void * fill_value, hid_t_f *fill_type_id, hid_t_f *space_id, void * buf, hid_t_f *mem_type_id)
+h5dfill_c (void * fill_value, hid_t_f *fill_type_id, hid_t_f *space_id, void * buf, hid_t_f *mem_type_id)
 /******/
 {
      int ret_value = -1;
@@ -2210,9 +2209,9 @@ nh5dfill_double_c (void * fill_value, hid_t_f *fill_type_id, hid_t_f *space_id,
 
 /****if* H5Df/h5dget_space_status_c
  * NAME
- *        h5dget_space_status_c
+ *  h5dget_space_status_c
  * PURPOSE
- *     Call H5Dget_space_status to request dataspace allocation status
+ *  Call H5Dget_space_status to request dataspace allocation status
  * INPUTS
  *      dset_id - dataset identifier
  * OUTPUTS
@@ -2249,9 +2248,9 @@ nh5dget_space_status_c ( hid_t_f *dset_id, int_f *flag)
 }
 /****if* H5Df/h5dcreate_anon_c
  * NAME
- *        h5dcreate_anon_c
+ *  h5dcreate_anon_c
  * PURPOSE
- *     Call H5Dcreate_anon
+ *  Call H5Dcreate_anon
  * INPUTS
  *
  *		loc_id	   - Identifier of the file or group within which to create the dataset.
@@ -2290,30 +2289,30 @@ nh5dcreate_anon_c (hid_t_f *loc_id, hid_t_f *type_id, hid_t_f *space_id,
   return ret_value;
 }
 
-/****if* H5Df/nh5dwrite_f_c
+/****if* H5Df/h5dwrite_f_c
  * NAME
- *        nh5dwrite_f_c
+ *  h5dwrite_f_c
  * PURPOSE
- *     Call H5Dwrite to write a dataset
+ *  Call H5Dwrite to write a dataset
  * INPUTS
- *      dset_id - dataset identifier
- *              mem_type_id - memory datatype identifier
- *              mem_space_id - memory dataspace identifier
- *              file_space_id - memory dataspace identifier
- *              xfer_pr  - identifier of transfer property list
- *              buf      - data buffer
+ *  dset_id       - dataset identifier
+ *  mem_type_id   - memory datatype identifier
+ *  mem_space_id  - memory dataspace identifier
+ *  file_space_id - memory dataspace identifier
+ *  xfer_pr       - identifier of transfer property list
+ *  buf           - data buffer
  * RETURNS
- *     0 on success, -1 on failure
+ *  0 on success, -1 on failure
  * AUTHOR
  *  M. Scot Breitenfeld
- *              May 28, 2008
+ *  May 28, 2008
  * HISTORY
  *
  *
  * SOURCE
 */
 int_f
-nh5dwrite_f_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id,
+h5dwrite_f_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id,
 		    hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf)
 /******/
 {
@@ -2325,24 +2324,6 @@ nh5dwrite_f_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id,
   hid_t c_file_space_id;
   hid_t c_xfer_prp;
 
-/*   int i, j; */
-/*   typedef struct { */
-/*     int x; */
-/*     float y; */
-/*   } r_dual_c; */
-
-/*   const r_dual_c *name=buf; */
-
-/*   r_dual_c access[4][4]; */
-
-/*   for ( i=0; i<4; ++i) */
-/*     for (j = 0; j<4; ++j) { */
-/*       access[i][j] = name[i*4+j]; */
-/*     /\* access[i].x = access[i].x + 1; *\/ */
-/*       printf("x = %i \n", access[i][j].x); */
-/*       printf("y = %f \n", access[i][j].y); */
-/*     } */
-
   /*
    * Define transfer property
    */
@@ -2361,36 +2342,36 @@ nh5dwrite_f_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id,
   ret_value = 0;
   return ret_value;
 }
-/****if* H5Df/nh5dread_f_c
+
+/****if* H5Df/h5dread_f_c
  * NAME
- *        nh5dread_f_c
+ *  h5dread_f_c
  * PURPOSE
- *     Read variable length dataset
+ *  Read variable length dataset
  * INPUTS
- *      dset_id - identifier of the dataset
- *              mem_type_id - datatype identifier
- *              mem_space_id - dataspace identifier
- *              file_space_id - file dataspace identifier
- *              xfer          - file transfer property
- *              dims          - one-demnsional array of size 2
- *                              dims[0] = MAXLENGTH
- *                              dims[1] = number of elements of VL type
+ *  dset_id       - identifier of the dataset
+ *  mem_type_id   - datatype identifier
+ *  mem_space_id  - dataspace identifier
+ *  file_space_id - file dataspace identifier
+ *  xfer          - file transfer property
+ *  dims          - one-demnsional array of size 2
+ *                   dims[0] = MAXLENGTH
+ *                   dims[1] = number of elements of VL type
  * OUTPUTS
- *     buf           - data buffer
- *              len           - array element lenghts
+ *  buf - data buffer
+ *  len - array element lenghts
  * RETURNS
- *     0 on success, -1 on failure
+ *  0 on success, -1 on failure
  * AUTHOR
- *  Elena Pourmal
- *              Wednesday, October 24, 2002
+ *  M. Scot Breitenfeld
+ *  May 28, 2008
  * HISTORY
  *
  * SOURCE
 */
-
 int_f
-nh5dread_f_c ( hid_t_f *dset_id ,  hid_t_f *mem_type_id, hid_t_f *mem_space_id,
-		    hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf)
+h5dread_f_c ( hid_t_f *dset_id ,  hid_t_f *mem_type_id, hid_t_f *mem_space_id,
+	      hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf)
 /******/
 {
   int ret_value = -1;
@@ -2417,22 +2398,21 @@ nh5dread_f_c ( hid_t_f *dset_id ,  hid_t_f *mem_type_id, hid_t_f *mem_space_id,
 }
 /****if* H5Df/nh5dget_access_plist_c
  * NAME
- *     nh5dget_access_plist_c
+ *  nh5dget_access_plist_c
  * PURPOSE
- *     Call H5Dget_access_plist
+ *  Call H5Dget_access_plist
  * INPUTS
- *     dset_id   - dataset identifier
+ *  dset_id   - dataset identifier
  * OUTPUTS
- *     plist_id  - the dataset access property list identifier
+ *  plist_id  - the dataset access property list identifier
  * RETURNS
- *     0 on success, -1 on failure
+ *  0 on success, -1 on failure
  * AUTHOR
- *     M. Scot Breitenfeld
- *     April 13, 2009
+ *  M. Scot Breitenfeld
+ *  April 13, 2009
  *
  * SOURCE
 */
-
 int_f
 nh5dget_access_plist_c (hid_t_f *dset_id, hid_t_f *plist_id)
 /******/
@@ -2452,11 +2432,11 @@ nh5dget_access_plist_c (hid_t_f *dset_id, hid_t_f *plist_id)
 
 /****if* H5Df/nh5dvlen_reclaim_c
  * NAME
- *     nh5dvlen_reclaim_c
+ *  h5dvlen_reclaim_c
  * PURPOSE
- *     Call H5Dvlen_reclaim
+ *  Call H5Dvlen_reclaim
  * INPUTS
- *    type_id  - Identifier of the datatype. 
+ *   type_id   - Identifier of the datatype. 
  *   space_id  - Identifier of the dataspace. 
  *   plist_id  - Identifier of the property list used to create the buffer. 
  *   buf       - Pointer to the buffer to be reclaimed.    
@@ -2470,7 +2450,7 @@ nh5dget_access_plist_c (hid_t_f *dset_id, hid_t_f *plist_id)
  * SOURCE
 */
 int_f
-nh5dvlen_reclaim_c(hid_t_f *type_id, hid_t_f *space_id, hid_t_f *plist_id, void *buf)
+h5dvlen_reclaim_c(hid_t_f *type_id, hid_t_f *space_id, hid_t_f *plist_id, void *buf)
 /******/
 {
   int ret_value = -1;
diff --git a/fortran/src/H5Dff_F03.f90 b/fortran/src/H5Dff_F03.f90
index d39c200..7026ae3 100644
--- a/fortran/src/H5Dff_F03.f90
+++ b/fortran/src/H5Dff_F03.f90
@@ -159,12 +159,9 @@ MODULE H5D_PROVISIONAL
      INTEGER FUNCTION h5dwrite_f_c(dset_id, mem_type_id, &
           mem_space_id_default ,                         &
           file_space_id_default,                         &
-          xfer_prp_default, buf )
+          xfer_prp_default, buf ) BIND(C, NAME='h5dwrite_f_c')
        USE H5GLOBAL
-       USE, INTRINSIC :: ISO_C_BINDING
-       !DEC$IF DEFINED(HDF5F90_WINDOWS)
-       !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DWRITE_F_C'::h5dwrite_f_c
-       !DEC$ENDIF
+       USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr
        INTEGER(HID_T), INTENT(IN) :: dset_id
        INTEGER(HID_T), INTENT(IN) :: mem_type_id
        INTEGER(HID_T) :: mem_space_id_default
@@ -181,12 +178,9 @@ MODULE H5D_PROVISIONAL
      INTEGER FUNCTION h5dread_f_c(dset_id, mem_type_id, &
           mem_space_id_default,                         &
           file_space_id_default,                        &
-          xfer_prp_default, buf)
+          xfer_prp_default, buf) BIND(C, NAME='h5dread_f_c')
        USE H5GLOBAL
-       USE, INTRINSIC :: ISO_C_BINDING
-       !DEC$IF DEFINED(HDF5F90_WINDOWS)
-       !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DREAD_F_C'::h5dread_f_c
-       !DEC$ENDIF
+       USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr
        INTEGER(HID_T), INTENT(IN) :: dset_id
        INTEGER(HID_T), INTENT(IN) :: mem_type_id
        INTEGER(HID_T) :: mem_space_id_default
@@ -207,12 +201,9 @@ MODULE H5D_PROVISIONAL
 
   INTERFACE
      INTEGER FUNCTION h5dfill_c(f_ptr_fill_value, fill_type_id, space_id, &
-          f_ptr_buf, mem_type_id)
+          f_ptr_buf, mem_type_id) BIND(C, NAME='h5dfill_c')
        USE H5GLOBAL
-       USE, INTRINSIC :: ISO_C_BINDING
-       !DEC$IF DEFINED(HDF5F90_WINDOWS)
-       !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DFILL_C'::h5dfill_c
-       !DEC$ENDIF
+       USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr
        TYPE(C_PTR), VALUE :: f_ptr_fill_value
        INTEGER(HID_T) :: fill_type_id ! Fill value datatype identifier
        INTEGER(HID_T), INTENT(IN) :: space_id ! Memory dataspace selection identifier
@@ -2369,7 +2360,7 @@ CONTAINS
 !
 ! Fortran2003 Interface:
   SUBROUTINE h5dvlen_reclaim_f(type_id, space_id, plist_id, buf, hdferr)
-    USE, INTRINSIC :: ISO_C_BINDING
+    USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR
     IMPLICIT NONE
     INTEGER(HID_T), INTENT(IN)    :: type_id
     INTEGER(HID_T), INTENT(IN)    :: space_id
@@ -2379,12 +2370,9 @@ CONTAINS
 !*****
 
     INTERFACE
-       INTEGER FUNCTION h5dvlen_reclaim_c(type_id, space_id, plist_id, buf)
+       INTEGER FUNCTION h5dvlen_reclaim_c(type_id, space_id, plist_id, buf) BIND(C, NAME='h5dvlen_reclaim_c')
          USE H5GLOBAL
-         USE, INTRINSIC :: ISO_C_BINDING
-         !DEC$IF DEFINED(HDF5F90_WINDOWS)
-         !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DVLEN_RECLAIM_C'::h5dvlen_reclaim_c
-         !DEC$ENDIF
+         USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR
          INTEGER(HID_T) :: type_id
          INTEGER(HID_T) :: space_id
          INTEGER(HID_T) :: plist_id
diff --git a/fortran/src/H5Ef.c b/fortran/src/H5Ef.c
index 4848d9e..6e476ea 100644
--- a/fortran/src/H5Ef.c
+++ b/fortran/src/H5Ef.c
@@ -291,7 +291,7 @@ done:
 */
 
 int_f
-nh5eset_auto2_c(int_f *printflag, hid_t_f *estack_id, H5E_auto2_t func, void *client_data)
+h5eset_auto2_c(int_f *printflag, hid_t_f *estack_id, H5E_auto2_t func, void *client_data)
 /******/
 {
   int ret_val = -1;
diff --git a/fortran/src/H5Eff_F03.f90 b/fortran/src/H5Eff_F03.f90
index 3ba3ce9..ff8d11c 100644
--- a/fortran/src/H5Eff_F03.f90
+++ b/fortran/src/H5Eff_F03.f90
@@ -81,12 +81,10 @@ CONTAINS
     TYPE(C_FUNPTR) :: func_default
     TYPE(C_PTR)    :: client_data_default
     INTERFACE
-       INTEGER FUNCTION h5eset_auto2_c(printflag, estack_id, func, client_data)
-         USE, INTRINSIC :: ISO_C_BINDING
+       INTEGER FUNCTION h5eset_auto2_c(printflag, estack_id, func, client_data) &
+            BIND(C, NAME='h5eset_auto2_c')
+         USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr, c_funptr
          USE H5GLOBAL
-         !DEC$IF DEFINED(HDF5F90_WINDOWS)
-         !DEC$ATTRIBUTES C,reference,decorate,alias:'H5ESET_AUTO2_C'::h5eset_auto2_c
-         !DEC$ENDIF
          INTEGER :: printflag
          INTEGER(HID_T) :: estack_id
 !!$         TYPE(C_FUNPTR) :: func
diff --git a/fortran/src/H5Ff.c b/fortran/src/H5Ff.c
index 4910aca..1696672 100644
--- a/fortran/src/H5Ff.c
+++ b/fortran/src/H5Ff.c
@@ -632,7 +632,7 @@ nh5fget_name_c(hid_t_f *obj_id, size_t_f *size, _fcd buf, size_t_f *buflen)
      /*
       * Call H5Fget_name function
       */
-     if ((size_c = (size_t_f)H5Fget_name((hid_t)*obj_id, c_buf, (size_t)*buflen)) < 0)
+     if ((size_c = H5Fget_name((hid_t)*obj_id, c_buf, (size_t)*buflen)) < 0)
          HGOTO_DONE(FAIL);
 
      /*
@@ -699,17 +699,20 @@ done:
  * SOURCE
 */
 int_f
-nh5fget_file_image_c(hid_t_f *file_id, void *buf_ptr, size_t_f *buf_len, size_t_f *buf_req)
+h5fget_file_image_c(hid_t_f *file_id, void *buf_ptr, size_t_f *buf_len, size_t_f *buf_req)
 /******/
 {
     herr_t ret_value=0;          /* Return value */
-
+    ssize_t c_buf_req;
     /*
      * Call h5fget_file_image function
      */
-    if ((*buf_req = (size_t_f)H5Fget_file_image((hid_t)*file_id, buf_ptr, (size_t)*buf_len)) < 0)
+    
+    if ( (c_buf_req = H5Fget_file_image((hid_t)*file_id, buf_ptr, (size_t)*buf_len)) < 0)
          HGOTO_DONE(FAIL);
 
+    *buf_req = (size_t_f)c_buf_req;
+
 done:
       return ret_value;
 }
diff --git a/fortran/src/H5Fff_F03.f90 b/fortran/src/H5Fff_F03.f90
index d819c34..8544870 100644
--- a/fortran/src/H5Fff_F03.f90
+++ b/fortran/src/H5Fff_F03.f90
@@ -74,12 +74,9 @@ CONTAINS
     INTEGER(SIZE_T) :: buf_size_default
 
     INTERFACE
-       INTEGER FUNCTION h5fget_file_image_c(file_id, buf_ptr, buf_len, buf_size)
-         USE, INTRINSIC :: ISO_C_BINDING
+       INTEGER FUNCTION h5fget_file_image_c(file_id, buf_ptr, buf_len, buf_size) BIND(C, NAME='h5fget_file_image_c')
+         USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR
          USE H5GLOBAL
-         !DEC$IF DEFINED(HDF5F90_WINDOWS)
-         !DEC$ATTRIBUTES C,reference,decorate,alias:'H5FGET_FILE_IMAGE_C'::h5fget_file_image_c
-         !DEC$ENDIF
          INTEGER(HID_T) , INTENT(IN) :: file_id
          TYPE(C_PTR)    , VALUE      :: buf_ptr
          INTEGER(SIZE_T), INTENT(IN) :: buf_len
diff --git a/fortran/src/H5Gf.c b/fortran/src/H5Gf.c
index 5ebb3e7..7f755b3 100644
--- a/fortran/src/H5Gf.c
+++ b/fortran/src/H5Gf.c
@@ -67,7 +67,7 @@ nh5gcreate_c(hid_t_f *loc_id, _fcd name, int_f *namelen, size_t_f *size_hint,
     /*
      * Call H5Gcreate function.
      */
-    if(*size_hint == OBJECT_NAMELEN_DEFAULT_F ){
+    if(*size_hint == (size_t_f)OBJECT_NAMELEN_DEFAULT_F ){
       c_grp_id = H5Gcreate2((hid_t)*loc_id, c_name,(hid_t)*lcpl_id,(hid_t)*gcpl_id,(hid_t)*gapl_id);}
     else {
       /* Create the group creation property list */
@@ -178,7 +178,7 @@ nh5gget_obj_info_idx_c(hid_t_f *loc_id, _fcd name, int_f *namelen, int_f *idx,
     char *c_name = NULL;
     size_t c_obj_namelen;
     char *c_obj_name = NULL;
-    hsize_t c_idx = *idx;
+    hsize_t c_idx = (hsize_t)*idx;
     hid_t gid = (-1);                 /* Temporary group ID */
     int ret_value = -1;
 
@@ -191,7 +191,7 @@ nh5gget_obj_info_idx_c(hid_t_f *loc_id, _fcd name, int_f *namelen, int_f *idx,
     /*
      * Allocate buffer to hold name of the object
      */
-    c_obj_namelen = *obj_namelen;
+    c_obj_namelen = (size_t)*obj_namelen;
     if(c_obj_namelen)
        if(NULL == (c_obj_name = (char *)HDmalloc(c_obj_namelen + 1)))
            goto DONE;
@@ -352,6 +352,23 @@ nh5glink_c(hid_t_f *loc_id, int_f *link_type, _fcd current_name,
                 goto DONE;
             break;
 
+    /* Cases below were added to remove the warnings in gcc 4.9.2 and probably other */
+        case H5L_TYPE_EXTERNAL:
+            ret_value = -1;
+                goto DONE;
+            break;
+
+        case H5L_TYPE_MAX:
+            ret_value = -1;
+                goto DONE;
+            break;
+
+        case H5L_TYPE_ERROR:
+            ret_value = -1;
+                goto DONE;
+            break;
+    /* End of the warnings fix */
+ 
         default:        /* Unknown/unhandled link type */
             goto DONE;
     } /* end switch */
@@ -421,6 +438,22 @@ nh5glink2_c(hid_t_f *cur_loc_id, _fcd cur_name, int_f *cur_namelen,
             if(H5Lcreate_soft(c_cur_name, (hid_t)*new_loc_id, c_new_name, H5P_DEFAULT, H5P_DEFAULT) < 0)
                 goto DONE;
             break;
+    /* Cases below were added to remove the warnings in gcc 4.9.2 and probably other */
+        case H5L_TYPE_EXTERNAL:
+            ret_value = -1;
+                goto DONE;
+            break;
+
+        case H5L_TYPE_MAX:
+            ret_value = -1;
+                goto DONE;
+            break;
+
+        case H5L_TYPE_ERROR:
+            ret_value = -1;
+                goto DONE;
+            break;
+    /* End of the warnings fix */
 
         default:        /* Unknown/unhandled link type */
             goto DONE;
diff --git a/fortran/src/H5Lf.c b/fortran/src/H5Lf.c
index c5138b6..6523ab4 100644
--- a/fortran/src/H5Lf.c
+++ b/fortran/src/H5Lf.c
@@ -677,9 +677,9 @@ done:
 
 /****if* H5Lf/h5lget_name_by_idx_c
  * NAME
- *        h5lget_name_by_idx_c
+ *  h5lget_name_by_idx_c
  * PURPOSE
- *     Call  H5Lget_name_by_idx
+ *  Call  H5Lget_name_by_idx
  * INPUTS
  *
  *   loc_id      - File or group identifier specifying location of subject group
@@ -694,10 +694,10 @@ done:
  *   name        - Buffer in which link value is returned
  *   size        - The size of the link name on success
  * RETURNS
- *      0 on success, -1 on failure
+ *  0 on success, -1 on failure
  * AUTHOR
  *  M. Scot Breitenfeld
- *              March 10, 2008
+ *  March 10, 2008
  * SOURCE
 */
 int_f
@@ -706,9 +706,10 @@ nh5lget_name_by_idx_c(hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen,
 		      size_t_f *size, _fcd name, hid_t_f *lapl_id)
 /******/
 {
-    char *c_group_name = NULL;          /* Buffer to hold C string */
+    char *c_group_name = NULL;    /* Buffer to hold C string */
     char *c_name = NULL;          /* Buffer to hold C string */
     size_t c_size;
+    ssize_t c_size_link;
     int_f ret_value = 0;          /* Return value */
 
     /*
@@ -725,10 +726,12 @@ nh5lget_name_by_idx_c(hid_t_f *loc_id, _fcd group_name, size_t_f *group_namelen,
     if(NULL == (c_name = (char *)HDmalloc(c_size)))
         HGOTO_DONE(FAIL)
 
-    if((*size = (size_t_f)H5Lget_name_by_idx((hid_t)*loc_id, c_group_name, (H5_index_t)*index_field,
+    if((c_size_link = H5Lget_name_by_idx((hid_t)*loc_id, c_group_name, (H5_index_t)*index_field,
             (H5_iter_order_t)*order, (hsize_t)*n,c_name, c_size, (hid_t)*lapl_id)) < 0)
         HGOTO_DONE(FAIL)
 
+    *size = (size_t_f)c_size_link;
+
     /*
      * Convert C name to FORTRAN and place it in the given buffer
      */
@@ -987,7 +990,7 @@ done:
  * SOURCE
 */
 int_f
-nh5literate_c(hid_t_f *group_id, int_f *index_type, int_f *order, hsize_t_f *idx, H5L_iterate_t op, void *op_data )
+h5literate_c(hid_t_f *group_id, int_f *index_type, int_f *order, hsize_t_f *idx, H5L_iterate_t op, void *op_data )
 /******/
 {
   int_f ret_value = -1;  /* Return value */
@@ -1010,12 +1013,12 @@ nh5literate_c(hid_t_f *group_id, int_f *index_type, int_f *order, hsize_t_f *idx
 
 /****if* H5Lf/h5literate_by_name_c
  * NAME
- *        h5literate_by_name_c
+ *  h5literate_by_name_c
  * PURPOSE
- *     Call H5Literate_by_name
+ *  Call H5Literate_by_name
  * INPUTS
  *
- *     loc_id - Identifier specifying subject group
+ *      loc_id - Identifier specifying subject group
  *         name - Name of subject group
  *      namelen - Name length
  *   index_type - Type of index which determines the order
@@ -1030,14 +1033,14 @@ nh5literate_c(hid_t_f *group_id, int_f *index_type, int_f *order, hsize_t_f *idx
  *          idx - Position at which an interrupted iteration may be restarted
  *
  * RETURNS
- *     >0 on success, 0< on failure
+ *  >0 on success, 0< on failure
  * AUTHOR
  *  M. Scot Breitenfeld
- *              Augest 18, 2008
+ *  August 18, 2008
  * SOURCE
 */
 int_f
-nh5literate_by_name_c(hid_t_f *loc_id, _fcd name, size_t_f *namelen, int_f *index_type, int_f *order, hsize_t_f *idx, H5L_iterate_t op, void *op_data, hid_t_f *lapl_id)
+h5literate_by_name_c(hid_t_f *loc_id, _fcd name, size_t_f *namelen, int_f *index_type, int_f *order, hsize_t_f *idx, H5L_iterate_t op, void *op_data, hid_t_f *lapl_id)
 /******/
 {
   int_f ret_value = -1;       /* Return value */
diff --git a/fortran/src/H5Lff_F03.f90 b/fortran/src/H5Lff_F03.f90
index 7d8713e..0fe7243 100644
--- a/fortran/src/H5Lff_F03.f90
+++ b/fortran/src/H5Lff_F03.f90
@@ -126,12 +126,10 @@ CONTAINS
     INTEGER         , INTENT(OUT)   :: hdferr
 !*****
     INTERFACE
-       INTEGER FUNCTION h5literate_c(group_id, index_type, order, idx, op, op_data)
-         USE, INTRINSIC :: ISO_C_BINDING
+       INTEGER FUNCTION h5literate_c(group_id, index_type, order, idx, op, op_data) &
+            BIND(C, NAME='h5literate_c')
+         USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr, c_funptr
          USE H5GLOBAL
-         !DEC$IF DEFINED(HDF5F90_WINDOWS)
-         !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LITERATE_C'::h5literate_c
-         !DEC$ENDIF
          INTEGER(HID_T), INTENT(IN) :: group_id
          INTEGER, INTENT(IN) :: index_type
          INTEGER, INTENT(IN) :: order
@@ -193,7 +191,8 @@ CONTAINS
 !  Augest 18, 2008
 !
 ! Fortran2003 Interface:
-  SUBROUTINE h5literate_by_name_f(loc_id, group_name, index_type, order, idx, op, op_data, return_value, hdferr, lapl_id)
+  SUBROUTINE h5literate_by_name_f(loc_id, group_name, index_type, order, &
+       idx, op, op_data, return_value, hdferr, lapl_id)
     USE, INTRINSIC :: ISO_C_BINDING
     IMPLICIT NONE
     INTEGER(HID_T)  , INTENT(IN)           :: loc_id
@@ -211,14 +210,12 @@ CONTAINS
     INTEGER(SIZE_T) :: namelen
 
     INTERFACE
-       INTEGER FUNCTION  h5literate_by_name_c(loc_id, name, namelen, index_type, order, idx, op, op_data, lapl_id_default)
-         USE, INTRINSIC :: ISO_C_BINDING
+       INTEGER FUNCTION h5literate_by_name_c(loc_id, name, namelen, index_type, order,&
+            idx, op, op_data, lapl_id_default) BIND(C, NAME='h5literate_by_name_c')
+         USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char, c_ptr, c_funptr
          USE H5GLOBAL
-         !DEC$IF DEFINED(HDF5F90_WINDOWS)
-         !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LITERATE_BY_NAME_C'::h5literate_by_name_c
-         !DEC$ENDIF
          INTEGER(HID_T)  , INTENT(IN) :: loc_id
-         CHARACTER(LEN=*), INTENT(IN) :: name
+         CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name
          INTEGER(SIZE_T) , INTENT(IN) :: namelen
          INTEGER         , INTENT(IN) :: index_type
          INTEGER         , INTENT(IN) :: order
diff --git a/fortran/src/H5Of.c b/fortran/src/H5Of.c
index 05eafcf..ae344a5 100644
--- a/fortran/src/H5Of.c
+++ b/fortran/src/H5Of.c
@@ -23,6 +23,8 @@
 
 #include "H5f90.h"
 #include "H5Eprivate.h"
+int_f
+fill_h5o_info_t_f(H5O_info_t Oinfo, H5O_info_t_f *object_info);
 
 int_f
 fill_h5o_info_t_f(H5O_info_t Oinfo, H5O_info_t_f *object_info) {
@@ -241,7 +243,7 @@ nh5oclose_c ( hid_t_f *object_id )
  * SOURCE
 */
 int_f
-nh5ovisit_c(hid_t_f *group_id, int_f *index_type, int_f *order, H5O_iterate_t op, void *op_data )
+h5ovisit_c(hid_t_f *group_id, int_f *index_type, int_f *order, H5O_iterate_t op, void *op_data )
 /******/
 {
   int_f ret_value = -1;       /* Return value */
@@ -313,7 +315,7 @@ nh5oopen_by_addr_c (hid_t_f *loc_id, haddr_t_f *addr, hid_t_f *obj_id)
  * SOURCE
 */
 int_f
-nh5oget_info_by_name_c (hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lapl_id,
+h5oget_info_by_name_c (hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lapl_id,
 			H5O_info_t_f *object_info)
 /******/
 {
@@ -363,7 +365,7 @@ nh5oget_info_by_name_c (hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *
  * SOURCE
 */
 int_f
-nh5oget_info_by_idx_c (hid_t_f *loc_id, _fcd  group_name, size_t_f *namelen, 
+h5oget_info_by_idx_c (hid_t_f *loc_id, _fcd  group_name, size_t_f *namelen, 
 		       int_f *index_field, int_f *order, hsize_t_f *n, hid_t_f *lapl_id, H5O_info_t_f *object_info)
 /******/
 {
@@ -415,7 +417,7 @@ nh5oget_info_by_idx_c (hid_t_f *loc_id, _fcd  group_name, size_t_f *namelen,
  * SOURCE
 */
 int_f
-nh5oget_info_c (hid_t_f *object_id, H5O_info_t_f *object_info)
+h5oget_info_c (hid_t_f *object_id, H5O_info_t_f *object_info)
 /******/
 {
   int_f ret_value = 0;          /* Return value */
@@ -508,14 +510,14 @@ nh5ocopy_c (hid_t_f *src_loc_id, _fcd src_name, size_t_f *src_name_len,
  *          idx - Position at which an interrupted iteration may be restarted
  *
  * RETURNS
- *     >0 on success, 0< on failure
+ *  >0 on success, 0< on failure
  * AUTHOR
  *  M. Scot Breitenfeld
  *  May 16, 2012
  * SOURCE
 */
 int_f
-nh5ovisit_by_name_c(hid_t_f *loc_id,  _fcd object_name, size_t_f *namelen, int_f *index_type, int_f *order,
+h5ovisit_by_name_c(hid_t_f *loc_id,  _fcd object_name, size_t_f *namelen, int_f *index_type, int_f *order,
 		    H5O_iterate_t op, void *op_data, hid_t_f *lapl_id )
 /******/
 {
@@ -523,7 +525,6 @@ nh5ovisit_by_name_c(hid_t_f *loc_id,  _fcd object_name, size_t_f *namelen, int_f
   herr_t func_ret_value;      /* H5Linterate return value */
   char *c_object_name = NULL; /* Buffer to hold C string */
 
-
   /*
    * Convert FORTRAN name to C name
    */
@@ -875,6 +876,7 @@ nh5oget_comment_by_name_c (hid_t_f *loc_id, _fcd name, size_t_f *name_size,
   char *c_comment = NULL;  /* Buffer to hold C string */
   char *c_name = NULL;     /* Buffer to hold C string */
   int_f ret_value = 0;     /* Return value */
+  ssize_t c_bufsize;
   size_t c_commentsize;
 
   /*
@@ -896,9 +898,11 @@ nh5oget_comment_by_name_c (hid_t_f *loc_id, _fcd name, size_t_f *name_size,
    * Call H5Oget_comment_by_name function.
    */ 
 
-  if((*bufsize = (size_t_f)H5Oget_comment_by_name((hid_t)*loc_id, c_name, c_comment, (size_t)*commentsize,(hid_t)*lapl_id )) < 0)
+  if((c_bufsize = H5Oget_comment_by_name((hid_t)*loc_id, c_name, c_comment, (size_t)*commentsize,(hid_t)*lapl_id )) < 0)
     HGOTO_DONE(FAIL);
 
+  *bufsize = (size_t_f)c_bufsize;
+
   /*
    * Convert C name to FORTRAN and place it in the given buffer
    */
diff --git a/fortran/src/H5Off_F03.f90 b/fortran/src/H5Off_F03.f90
index cfb7d56..36b6246 100644
--- a/fortran/src/H5Off_F03.f90
+++ b/fortran/src/H5Off_F03.f90
@@ -40,11 +40,6 @@ MODULE H5O_PROVISIONAL
 
   IMPLICIT NONE
 
-  enum, bind(c)
-     enumerator :: H5O_TYPE_UNKNOWN_F = -1
-     enumerator :: H5O_TYPE_GROUP_F, H5O_TYPE_DATASET_F, H5O_TYPE_NAMED_DATATYPE_F, H5O_TYPE_NTYPES_F
-  end enum
-
 !****t* H5T (F03)/h5o_info_t
 !
 ! Fortran2003 Derived Type:
@@ -146,12 +141,10 @@ CONTAINS
 !*****
 
     INTERFACE
-       INTEGER FUNCTION h5ovisit_c(object_id, index_type, order, op, op_data)
-         USE, INTRINSIC :: ISO_C_BINDING
+       INTEGER FUNCTION h5ovisit_c(object_id, index_type, order, op, op_data) &
+            BIND(C, NAME='h5ovisit_c')
+         USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr, c_funptr
          USE H5GLOBAL
-         !DEC$IF DEFINED(HDF5F90_WINDOWS)
-         !DEC$ATTRIBUTES C,reference,decorate,alias:'H5OVISIT_C'::h5ovisit_c
-         !DEC$ENDIF
          INTEGER(HID_T), INTENT(IN) :: object_id
          INTEGER, INTENT(IN) :: index_type
          INTEGER, INTENT(IN) :: order
@@ -210,16 +203,12 @@ CONTAINS
     TYPE(C_PTR)     :: ptr
     
     INTERFACE
-       INTEGER FUNCTION h5oget_info_by_name_c(loc_id, name, namelen, lapl_id_default, &
-           object_info)
+       INTEGER FUNCTION h5oget_info_by_name_c(loc_id, name, namelen, lapl_id_default, object_info) &
+            BIND(C, NAME='h5oget_info_by_name_c')
+         USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char, c_ptr
          USE H5GLOBAL
-         USE, INTRINSIC :: ISO_C_BINDING
-         !DEC$IF DEFINED(HDF5F90_WINDOWS)
-         !DEC$ATTRIBUTES C,reference,decorate,alias:'H5OGET_INFO_BY_NAME_C'::h5oget_info_by_name_c
-         !DEC$ENDIF
-         !DEC$ATTRIBUTES reference :: name
          INTEGER(HID_T)  , INTENT(IN)  :: loc_id
-         CHARACTER(LEN=*), INTENT(IN)  :: name
+         CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name
          INTEGER(SIZE_T) , INTENT(IN)  :: namelen
          INTEGER(HID_T)  , INTENT(IN)  :: lapl_id_default
          TYPE(C_PTR),VALUE             :: object_info
@@ -269,15 +258,12 @@ CONTAINS
     TYPE(C_PTR) :: ptr
     
     INTERFACE
-       INTEGER FUNCTION h5oget_info_c(object_id, object_info)
+       INTEGER FUNCTION h5oget_info_c(object_id, object_info) &
+            BIND(C, NAME='h5oget_info_c')
          USE H5GLOBAL
-         USE, INTRINSIC :: ISO_C_BINDING
-         !DEC$IF DEFINED(HDF5F90_WINDOWS)
-         !DEC$ATTRIBUTES C,reference,decorate,alias:'H5OGET_INFO_C'::h5oget_info_c
-         !DEC$ENDIF
+         USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr
          INTEGER(HID_T), INTENT(IN)  :: object_id
          TYPE(C_PTR), VALUE          :: object_info
-
        END FUNCTION h5oget_info_c
     END INTERFACE
 
@@ -334,15 +320,11 @@ CONTAINS
     
     INTERFACE
        INTEGER FUNCTION h5oget_info_by_idx_c(loc_id, group_name, namelen, &
-            index_field, order, n, lapl_id_default, object_info)
+            index_field, order, n, lapl_id_default, object_info) BIND(C, NAME='h5oget_info_by_idx_c')
          USE H5GLOBAL
-         USE, INTRINSIC :: ISO_C_BINDING
-         !DEC$IF DEFINED(HDF5F90_WINDOWS)
-         !DEC$ATTRIBUTES C,reference,decorate,alias:'H5OGET_INFO_BY_IDX_C'::h5oget_info_by_idx_c
-         !DEC$ENDIF
-         !DEC$ATTRIBUTES reference :: group_name
+         USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char, c_ptr, c_funptr
          INTEGER(HID_T)  , INTENT(IN)  :: loc_id
-         CHARACTER(LEN=*), INTENT(IN)  :: group_name
+         CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: group_name
          INTEGER(SIZE_T) , INTENT(IN)  :: namelen
          INTEGER         , INTENT(IN)  :: index_field
          INTEGER         , INTENT(IN)  :: order
@@ -419,15 +401,11 @@ CONTAINS
 
     INTERFACE
        INTEGER FUNCTION h5ovisit_by_name_c(loc_id, object_name, namelen, index_type, order, &
-            op, op_data, lapl_id)
+            op, op_data, lapl_id) BIND(C, NAME='h5ovisit_by_name_c')
          USE, INTRINSIC :: ISO_C_BINDING
          USE H5GLOBAL
-         !DEC$IF DEFINED(HDF5F90_WINDOWS)
-         !DEC$ATTRIBUTES C,reference,decorate,alias:'H5OVISIT_BY_NAME_C'::h5ovisit_by_name_c
-         !DEC$ENDIF
-         !DEC$ATTRIBUTES reference :: object_name
          INTEGER(HID_T)  , INTENT(IN) :: loc_id
-         CHARACTER(LEN=*), INTENT(IN) :: object_name
+         CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: object_name
          INTEGER(SIZE_T)              :: namelen
          INTEGER         , INTENT(IN) :: index_type
          INTEGER         , INTENT(IN) :: order
diff --git a/fortran/src/H5Pf.c b/fortran/src/H5Pf.c
index b66709a..e9082d6 100644
--- a/fortran/src/H5Pf.c
+++ b/fortran/src/H5Pf.c
@@ -160,41 +160,32 @@ done:
 
 /****if* H5Pf/h5pget_class_c
  * NAME
- *        h5pget_class_c
+ *  h5pget_class_c
  * PURPOSE
- *     Call H5Pget_class to determine property list class
+ *  Call H5Pget_class to determine property list class
  * INPUTS
- *      prp_id - identifier of the dataspace
+ *  prp_id    - identifier of the dataspace
  * OUTPUTS
- *     classtype - class type; possible values are:
- *              H5P_ROOT_F       -1
- *              H5P_FILE_CREATE_F     0
- *              H5P_FILE_ACCESS_F     1
- *              H5P_DATASET_CREATE_F  2
- *              H5P_DATASET_XFER_F    3
- *              H5P_FILE_MOUNT_F      4
+ *  classtype - class type
  * 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
-nh5pget_class_c ( hid_t_f *prp_id , int_f *classtype)
+nh5pget_class_c ( hid_t_f *prp_id , hid_t_f *classtype)
 /******/
 {
     hid_t c_classtype;
     int_f ret_value = 0;
 
-    c_classtype = H5Pget_class((hid_t)*prp_id);
-    if(c_classtype == H5P_ROOT) {
-      *classtype = H5P_ROOT;
+    if( (c_classtype = H5Pget_class((hid_t)*prp_id)) < 0)
        HGOTO_DONE(FAIL)
-    }
 
-    *classtype = (int_f)c_classtype;
+    *classtype = (hid_t_f)c_classtype;
 
 done:
     return ret_value;
@@ -388,16 +379,16 @@ nh5pget_chunk_c ( hid_t_f *prp_id, int_f *max_rank, hsize_t_f *dims )
 
 /****if* H5Pf/h5pset_fill_valuec_c
  * NAME
- *        h5pset_fill_valuec_c
+ *  h5pset_fill_valuec_c
  * PURPOSE
- *     Call h5pset_fill_value_c to a character fill value
+ *  Call h5pset_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
+ *  Saturday, August 14, 1999
  * AUTHOR
  *  Elena Pourmal
  * SOURCE
@@ -411,7 +402,7 @@ nh5pset_fill_valuec_c (hid_t_f *prp_id, hid_t_f *type_id, _fcd fillvalue)
      /*
       * Call h5pset_fill_value_c  function.
       */
-     ret_value = nh5pset_fill_value_c(prp_id, type_id, _fcdtocp(fillvalue));
+     ret_value = h5pset_fill_value_c(prp_id, type_id, _fcdtocp(fillvalue));
 
      return ret_value;
 }
@@ -433,7 +424,7 @@ nh5pset_fill_valuec_c (hid_t_f *prp_id, hid_t_f *type_id, _fcd fillvalue)
  * SOURCE
 */
 int_f
-nh5pset_fill_value_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue)
+h5pset_fill_value_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue)
 /******/
 {
      int ret_value = -1;
@@ -460,7 +451,7 @@ nh5pset_fill_value_integer_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue
      /*
       * Call h5pset_fill_value_c  function.
       */
-     return nh5pset_fill_value_c(prp_id, type_id, fillvalue);
+     return h5pset_fill_value_c(prp_id, type_id, fillvalue);
 }
 
 int_f
@@ -469,7 +460,7 @@ nh5pset_fill_value_real_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue)
      /*
       * Call h5pset_fill_value_c  function.
       */
-     return nh5pset_fill_value_c(prp_id, type_id, fillvalue);
+     return h5pset_fill_value_c(prp_id, type_id, fillvalue);
 }
 
 int_f
@@ -478,7 +469,7 @@ nh5pset_fill_value_double_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue)
      /*
       * Call h5pset_fill_value_c  function.
       */
-     return nh5pset_fill_value_c(prp_id, type_id, fillvalue);
+     return h5pset_fill_value_c(prp_id, type_id, fillvalue);
 }
 
 /****if* H5Pf/h5pget_fill_valuec_c
@@ -510,7 +501,7 @@ nh5pget_fill_valuec_c (hid_t_f *prp_id, hid_t_f *type_id, _fcd fillvalue)
      /*
       * Call h5pget_fill_value_c function.
       */
-     ret_value = nh5pget_fill_value_c(prp_id, type_id, _fcdtocp(fillvalue));
+     ret_value = h5pget_fill_value_c(prp_id, type_id, _fcdtocp(fillvalue));
 
      return ret_value;
 }
@@ -532,7 +523,7 @@ nh5pget_fill_valuec_c (hid_t_f *prp_id, hid_t_f *type_id, _fcd fillvalue)
  * SOURCE
 */
 int_f
-nh5pget_fill_value_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue)
+h5pget_fill_value_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue)
 /******/
 {
      int ret_value = -1;
@@ -558,7 +549,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 nh5pget_fill_value_c(prp_id, type_id, fillvalue);
+     return h5pget_fill_value_c(prp_id, type_id, fillvalue);
 }
 
 int_f
@@ -567,7 +558,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 nh5pget_fill_value_c(prp_id, type_id, fillvalue);
+     return h5pget_fill_value_c(prp_id, type_id, fillvalue);
 }
 
 int_f
@@ -576,7 +567,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 nh5pget_fill_value_c(prp_id, type_id, fillvalue);
+     return h5pget_fill_value_c(prp_id, type_id, fillvalue);
 }
 
 /****if* H5Pf/h5pget_version_c
@@ -2742,20 +2733,50 @@ nh5pget_hyper_vector_size_c ( hid_t_f *prp_id , size_t_f *size)
   *size = (size_t_f)c_size;
   return ret_value;
 }
+/****if* H5Pf/h5pcreate_class_c
+ * NAME
+ *  h5pcreate_class_c
+ * PURPOSE
+ *  Call H5Pcreate_class to create a new property class
+ * INPUTS
+ *  parent - property list class identifier
+ *  name   - name of the new class
+ *  name_len - lenght of the "name" buffer
+ * OUTPUTS
+ *  cls - new class identifier
+ * RETURNS
+ *  0 on success, -1 on failure
+ * AUTHOR
+ *  Elena Pourmal
+ *  October 11, 2002
+ *
+ * HISTORY
+ * SOURCE
+*/
+int_f
+nh5pcreate_class_f90_c(hid_t_f *parent, _fcd name, int_f *name_len, hid_t_f *cls)
+/******/
+{
+     int ret_value = -1;
+
+     ret_value = h5pcreate_class_c(parent, name, name_len, cls, NULL, NULL, NULL, NULL, NULL, NULL);
+     return  ret_value;
+}
+
 
 /****if* H5Pf/h5pcreate_class_c
  * NAME
- *        h5pcreate_class_c
+ *  h5pcreate_class_c
  * PURPOSE
- *     Call H5Pcreate_class ito create a new property class
+ *  Call H5Pcreate_class ito create a new property class
  * INPUTS
- *      parent - property list class identifier
- *              name   - name of the new class
- *              name_len - lenght of the "name" buffer
+ *  parent - property list class identifier
+ *  name   - name of the new class
+ *  name_len - lenght of the "name" buffer
  * OUTPUTS
- *     class - new class identifier
+ *  class - new class identifier
  * RETURNS
- *     0 on success, -1 on failure
+ *  0 on success, -1 on failure
  * AUTHOR
  *  Elena Pourmal
  *  October 11, 2002
@@ -2766,7 +2787,7 @@ nh5pget_hyper_vector_size_c ( hid_t_f *prp_id , size_t_f *size)
  * SOURCE
 */
 int_f
-nh5pcreate_class_c(hid_t_f *parent, _fcd name, int_f *name_len, hid_t_f *cls,
+h5pcreate_class_c(hid_t_f *parent, _fcd name, int_f *name_len, hid_t_f *cls,
 		   H5P_cls_create_func_t create, void *create_data,
 		   H5P_cls_copy_func_t copy, void *copy_data,
 		   H5P_cls_close_func_t close, void *close_data)
@@ -2796,17 +2817,17 @@ DONE:
 
 /****if* H5Pf/h5pregisterc_c
  * NAME
- *        h5pregisterc_c
+ *  h5pregisterc_c
  * PURPOSE
- *     Call h5pregister_c to registers a permanent property
+ *  Call h5pregister_c to registers a permanent property
  * INPUTS
- *      class - property list class identifier
- *              name   - name of the new property
- *              name_len - length of the "name" buffer
- *              size - property size
- *              value - property value of character type
+ *  class - property list class identifier
+ *  name   - name of the new property
+ *  name_len - length of the "name" buffer
+ *  size - property size
+ *  value - property value of character type
  * RETURNS
- *     0 on success, -1 on failure
+ *  0 on success, -1 on failure
  * AUTHOR
  *  Elena Pourmal
  *  October 11, 2002
@@ -2823,32 +2844,32 @@ nh5pregisterc_c(hid_t_f *cls, _fcd name, int_f *name_len, size_t_f *size, _fcd v
      /*
       * Call h5pregister_c function
       */
-      ret_value = nh5pregister_c(cls, name, name_len, size, _fcdtocp(value));
+      ret_value = h5pregister_c(cls, name, name_len, size, _fcdtocp(value));
       return ret_value;
 }
 
 /****if* H5Pf/h5pregister_c
  * NAME
- *        h5pregister_c
+ *  h5pregister_c
  * PURPOSE
- *     Call H5Pregister2 to registers a permanent property
+ *  Call H5Pregister2 to registers a permanent property
  * INPUTS
- *      class - property list class identifier
- *              name   - name of the new property
- *              name_len - length of the "name" buffer
- *              size - property size
- *              value - property value
+ *  class - property list class identifier
+ *  name   - name of the new property
+ *  name_len - length of the "name" buffer
+ *  size - property size
+ *  value - property value
  * RETURNS
- *     0 on success, -1 on failure
+ *  0 on success, -1 on failure
  * AUTHOR
  *  Elena Pourmal
- *              October 11, 2002
+ *  October 11, 2002
  * HISTORY
  *
  * SOURCE
 */
 int_f
-nh5pregister_c(hid_t_f *cls, _fcd name, int_f *name_len, size_t_f *size, void UNUSED *value)
+h5pregister_c(hid_t_f *cls, _fcd name, int_f *name_len, size_t_f *size, void UNUSED *value)
 /******/
 {
      char* c_name = NULL;
@@ -2876,7 +2897,7 @@ nh5pregister_integer_c(hid_t_f *cls, _fcd name, int_f *name_len, size_t_f *size,
      /*
       * Call h5pregister_c function
       */
-     return nh5pregister_c(cls, name, name_len, size, value);
+     return h5pregister_c(cls, name, name_len, size, value);
 }
 
 int_f
@@ -2885,7 +2906,7 @@ nh5pregister_real_c(hid_t_f *cls, _fcd name, int_f *name_len, size_t_f *size, vo
      /*
       * Call h5pregister_c function
       */
-     return nh5pregister_c(cls, name, name_len, size, value);
+     return h5pregister_c(cls, name, name_len, size, value);
 }
 
 int_f
@@ -2894,25 +2915,25 @@ nh5pregister_double_c(hid_t_f *cls, _fcd name, int_f *name_len, size_t_f *size,
      /*
       * Call h5pregister_c function
       */
-     return nh5pregister_c(cls, name, name_len, size, value);
+     return h5pregister_c(cls, name, name_len, size, value);
 }
 
 /****if* H5Pf/h5pinsertc_c
  * NAME
- *        h5pinsertc_c
+ *  h5pinsertc_c
  * PURPOSE
- *     Call h5pinsert_c to register a temporary property
+ *  Call h5pinsert_c to register a temporary property
  * INPUTS
- *      plist - property list identifier
- *              name   - name of the new property
- *              name_len - length of the "name" buffer
- *              size - property size
- *              value - property value of character type
+ *  plist - property list identifier
+ *  name   - name of the new property
+ *  name_len - length of the "name" buffer
+ *  size - property size
+ *  value - property value of character type
  * RETURNS
- *     0 on success, -1 on failure
+ *  0 on success, -1 on failure
  * AUTHOR
  *  Elena Pourmal
- *              October 11, 2002
+ *  October 11, 2002
  * HISTORY
  *
  * SOURCE
@@ -2926,32 +2947,32 @@ nh5pinsertc_c(hid_t_f *plist, _fcd name, int_f *name_len, size_t_f *size, _fcd v
      /*
       * Call h5pinsert_c function
       */
-      ret_value = nh5pinsert_c(plist, name, name_len, size, _fcdtocp(value));
+      ret_value = h5pinsert_c(plist, name, name_len, size, _fcdtocp(value));
       return ret_value;
 }
 
 /****if* H5Pf/h5pinsert_c
  * NAME
- *        h5pinsert_c
+ *  h5pinsert_c
  * PURPOSE
- *     Call H5Pinsert2 to iinsert a temporary property
+ *  Call H5Pinsert2 to iinsert a temporary property
  * INPUTS
- *      plist - property list class identifier
- *              name   - name of the new property
- *              name_len - length of the "name" buffer
- *              size - property size
- *              value - property value
+ *  plist - property list class identifier
+ *  name   - name of the new property
+ *  name_len - length of the "name" buffer
+ *  size - property size
+ *  value - property value
  * RETURNS
- *     0 on success, -1 on failure
+ *  0 on success, -1 on failure
  * AUTHOR
  *  Elena Pourmal
- *              October 11, 2002
+ *  October 11, 2002
  * HISTORY
  *
  * SOURCE
 */
 int_f
-nh5pinsert_c(hid_t_f *plist, _fcd name, int_f *name_len, size_t_f *size, void UNUSED *value)
+h5pinsert_c(hid_t_f *plist, _fcd name, int_f *name_len, size_t_f *size, void UNUSED *value)
 /******/
 {
      char* c_name = NULL;
@@ -2979,7 +3000,7 @@ nh5pinsert_integer_c(hid_t_f *plist, _fcd name, int_f *name_len, size_t_f *size,
      /*
       * Call h5pinsert_c function
       */
-     return nh5pinsert_c(plist, name, name_len, size, value);
+     return h5pinsert_c(plist, name, name_len, size, value);
 }
 
 int_f
@@ -2988,7 +3009,7 @@ nh5pinsert_real_c(hid_t_f *plist, _fcd name, int_f *name_len, size_t_f *size, vo
      /*
       * Call h5pinsert_c function
       */
-     return nh5pinsert_c(plist, name, name_len, size, value);
+     return h5pinsert_c(plist, name, name_len, size, value);
 }
 
 int_f
@@ -2997,7 +3018,7 @@ nh5pinsert_double_c(hid_t_f *plist, _fcd name, int_f *name_len, size_t_f *size,
      /*
       * Call h5pinsert_c function
       */
-     return nh5pinsert_c(plist, name, name_len, size, value);
+     return h5pinsert_c(plist, name, name_len, size, value);
 }
 
 /****if* H5Pf/h5pexist_c
@@ -3424,22 +3445,22 @@ nh5psetc_c(hid_t_f *plist, _fcd name, int_f *name_len, _fcd value, int_f UNUSED
      /*
       * Call h5pset_c function
       */
-      ret_value = nh5pset_c(plist, name, name_len, _fcdtocp(value));
+      ret_value = h5pset_c(plist, name, name_len, _fcdtocp(value));
       return ret_value;
 }
 
 /****if* H5Pf/h5pset_c
  * NAME
- *        h5pset_c
+ *  h5pset_c
  * PURPOSE
- *     Call H5Pset to set property value
+ *  Call H5Pset to set property value
  * INPUTS
- *      plist - property list class identifier
- *              name   - name of the new property
- *              name_len - length of the "name" buffer
- *              value - property value
+ *  plist - property list class identifier
+ *  name   - name of the new property
+ *  name_len - length of the "name" buffer
+ *  value - property value
  * RETURNS
- *     0 on success, -1 on failure
+ *  0 on success, -1 on failure
  * AUTHOR
  *  Elena Pourmal
  *  October 11, 2002
@@ -3448,7 +3469,7 @@ nh5psetc_c(hid_t_f *plist, _fcd name, int_f *name_len, _fcd value, int_f UNUSED
  * SOURCE
 */
 int_f
-nh5pset_c(hid_t_f *plist, _fcd name, int_f *name_len, void *value)
+h5pset_c(hid_t_f *plist, _fcd name, int_f *name_len, void *value)
 /******/
 {
      int_f ret_value = -1;
@@ -3474,7 +3495,7 @@ nh5pset_integer_c(hid_t_f *plist, _fcd name, int_f *name_len, void *value)
      /*
       * Call h5pset_c function
       */
-     return nh5pset_c(plist, name, name_len, value);
+     return h5pset_c(plist, name, name_len, value);
 }
 
 int_f
@@ -3483,7 +3504,7 @@ nh5pset_real_c(hid_t_f *plist, _fcd name, int_f *name_len, void *value)
      /*
       * Call h5pset_c function
       */
-     return nh5pset_c(plist, name, name_len, value);
+     return h5pset_c(plist, name, name_len, value);
 }
 
 int_f
@@ -3492,7 +3513,7 @@ nh5pset_double_c(hid_t_f *plist, _fcd name, int_f *name_len, void *value)
      /*
       * Call h5pset_c function
       */
-     return nh5pset_c(plist, name, name_len, value);
+     return h5pset_c(plist, name, name_len, value);
 }
 /****if* H5Pf/h5pgetc_c
  * NAME
@@ -3522,31 +3543,32 @@ nh5pgetc_c(hid_t_f *plist, _fcd name, int_f *name_len, _fcd value, int_f UNUSED
      /*
       * Call h5pget_c function
       */
-      ret_value = nh5pget_c(plist, name, name_len, _fcdtocp(value));
+      ret_value = h5pget_c(plist, name, name_len, _fcdtocp(value));
       return ret_value;
 }
 
 /****if* H5Pf/h5pget_c
  * NAME
- *        h5pget_c
+ *  h5pget_c
  * PURPOSE
- *     Call H5Pget to set property value
+ *  Call H5Pget to set property value
  * INPUTS
- *      plist - property list class identifier
- *              name   - name of the new property
- *              name_len - length of the "name" buffer
- * Output:      value - property value
+ *  plist   - property list class identifier
+ *  name     - name of the new property
+ *  name_len - length of the "name" buffer
+ * Output:  
+ *  value - property value
  * RETURNS
- *     0 on success, -1 on failure
+ *  0 on success, -1 on failure
  * AUTHOR
  *  Elena Pourmal
- *              October 11, 2002
+ *  October 11, 2002
  * HISTORY
  *
  * SOURCE
 */
 int_f
-nh5pget_c(hid_t_f *plist, _fcd name, int_f *name_len, void *value)
+h5pget_c(hid_t_f *plist, _fcd name, int_f *name_len, void *value)
 /******/
 {
      int_f ret_value = -1;
@@ -3572,7 +3594,7 @@ nh5pget_integer_c(hid_t_f *plist, _fcd name, int_f *name_len, void *value)
      /*
       * Call h5pget_c function
       */
-     return nh5pget_c(plist, name, name_len, value);
+     return h5pget_c(plist, name, name_len, value);
 }
 
 int_f
@@ -3581,7 +3603,7 @@ nh5pget_real_c(hid_t_f *plist, _fcd name, int_f *name_len, void *value)
      /*
       * Call h5pget_c function
       */
-     return nh5pget_c(plist, name, name_len, value);
+     return h5pget_c(plist, name, name_len, value);
 }
 
 int_f
@@ -3590,7 +3612,7 @@ nh5pget_double_c(hid_t_f *plist, _fcd name, int_f *name_len, void *value)
      /*
       * Call h5pget_c function
       */
-     return nh5pget_c(plist, name, name_len, value);
+     return h5pget_c(plist, name, name_len, value);
 }
 
 
@@ -5565,7 +5587,7 @@ nh5pget_chunk_cache_c(hid_t_f *dapl_id, size_t_f *rdcc_nslots, size_t_f *rdcc_nb
  *---------------------------------------------------------------------------*/
 
 int_f
-nh5pset_file_image_c(hid_t_f *fapl_id, void *buf_ptr, size_t_f *buf_len)
+h5pset_file_image_c(hid_t_f *fapl_id, void *buf_ptr, size_t_f *buf_len)
 {
   int ret_value = -1;
   /*
@@ -5595,7 +5617,7 @@ nh5pset_file_image_c(hid_t_f *fapl_id, void *buf_ptr, size_t_f *buf_len)
  *---------------------------------------------------------------------------*/
 
 int_f
-nh5pget_file_image_c(hid_t_f *fapl_id, void **buf_ptr, size_t_f *buf_len_ptr)
+h5pget_file_image_c(hid_t_f *fapl_id, void **buf_ptr, size_t_f *buf_len_ptr)
 {
   int ret_value = -1;
   size_t c_buf_len_ptr;
diff --git a/fortran/src/H5Pff.f90 b/fortran/src/H5Pff.f90
index 0d85252..3409f15 100644
--- a/fortran/src/H5Pff.f90
+++ b/fortran/src/H5Pff.f90
@@ -237,18 +237,10 @@ CONTAINS
 !  Returns the property list class for a property list.
 !
 ! INPUTS
-!  
 !  prp_id	- property list identifier
+!
 ! OUTPUTS
-!  
 !  classtype	- property list class
-!		  Possible values are:
-!		   H5P_ROOT_F
-!		   H5P_FILE_CREATE_F
-!		   H5P_FILE_ACCESS_F
-!		   H5P_DATASET_CREATE_F
-!		   H5P_DATASET_XFER_F
-!		   H5P_FILE_MOUNT_F
 !  hdferr:	- error code		
 !		   Success:  0
 !		   Failure: -1 
@@ -265,30 +257,21 @@ CONTAINS
 ! Fortran90 Interface:
   SUBROUTINE h5pget_class_f(prp_id, classtype, hdferr)
     IMPLICIT NONE
-    INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier 
-    INTEGER, INTENT(OUT) :: classtype    ! The type of the property list 
-                                         ! to be created. Possible values are: 
-                                         !  H5P_ROOT_F
-                                         !  H5P_FILE_CREATE_F
-                                         !  H5P_FILE_ACCESS_F
-                                         !  H5P_DATASET_CREATE_F 
-                                         !  H5P_DATASET_XFER_F
-                                         !  H5P_FILE_MOUNT_F
+    INTEGER(HID_T), INTENT(IN) :: prp_id      ! Property list identifier 
+    INTEGER(HID_T), INTENT(OUT) :: classtype  ! The type of the property list 
+                                              ! to be created.
     INTEGER, INTENT(OUT) :: hdferr       ! Error code
                                          ! 0 on success and -1 on failure
 !*****
 
-!   INTEGER, EXTERNAL :: h5pget_class_c
-!  MS FORTRAN needs explicit interface for C functions called here.
-!
     INTERFACE
        INTEGER FUNCTION h5pget_class_c(prp_id, classtype)
          USE H5GLOBAL
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_CLASS_C'::h5pget_class_c
          !DEC$ENDIF
-         INTEGER(HID_T), INTENT(IN) :: prp_id
-         INTEGER, INTENT(OUT) :: classtype 
+         INTEGER(HID_T), INTENT(IN)  :: prp_id
+         INTEGER(HID_T), INTENT(OUT) :: classtype 
        END FUNCTION h5pget_class_c
     END INTERFACE
 
@@ -1449,7 +1432,7 @@ CONTAINS
 
 !****s* H5P/h5pget_fapl_core_f 
 ! NAME
-!   h5pget_fapl_core_f 
+!  h5pget_fapl_core_f 
 !
 ! PURPOSE
 !  Queries core file driver properties. 
@@ -1487,9 +1470,6 @@ CONTAINS
 !*****
     INTEGER :: backing_store_flag 
 
-!            INTEGER, EXTERNAL :: h5pget_fapl_core_c
-!  MS FORTRAN needs explicit interface for C functions called here.
-!
     INTERFACE
        INTEGER FUNCTION h5pget_fapl_core_c(prp_id, increment, backing_store_flag)
          USE H5GLOBAL
@@ -3644,7 +3624,7 @@ CONTAINS
 !  size         - Actual length of the class name
 !                   NOTE: If provided buffer "name" is smaller,
 !                   than name will be truncated to fit into
-!                   provided user buffer
+!                   provided user buffer.
 !  hdferr:	- error code
 !  		   Success: 0
 !  		   Failure: -1   
@@ -4222,50 +4202,46 @@ CONTAINS
 ! Fortran90 Interface:
   SUBROUTINE h5pset_fapl_multi_l(prp_id, memb_map, memb_fapl, memb_name, memb_addr, relax, hdferr)
     IMPLICIT NONE
-    INTEGER(HID_T), INTENT(IN) :: prp_id ! File creation property list identifier 
-    INTEGER, DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(IN) :: memb_map ! Mapping array
-    INTEGER(HID_T), DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(IN) :: memb_fapl ! Property list for each memory usage type
-    CHARACTER(LEN=*), DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(IN) :: memb_name ! Names of member file
-    REAL, DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(IN) :: memb_addr 
-    LOGICAL, INTENT(IN) :: relax     ! Flag
-    INTEGER, INTENT(OUT) :: hdferr   ! Error code
-                                     ! 0 on success and -1 on failure
+    INTEGER(HID_T), INTENT(IN) :: prp_id
+    INTEGER, DIMENSION(*), INTENT(IN) :: memb_map
+    INTEGER(HID_T), DIMENSION(*), INTENT(IN) :: memb_fapl
+    CHARACTER(LEN=*), DIMENSION(*), INTENT(IN) :: memb_name
+    REAL, DIMENSION(*), INTENT(IN) :: memb_addr 
+    LOGICAL, INTENT(IN) :: relax
+    INTEGER, INTENT(OUT) :: hdferr
 !***** 
-    INTEGER, DIMENSION(0:H5FD_MEM_NTYPES_F-1) :: lenm
+    INTEGER, DIMENSION(1:H5FD_MEM_NTYPES_F) :: lenm
     INTEGER :: maxlen
-    INTEGER :: flag
+    INTEGER :: flag = 0
     INTEGER :: i
 
-!            INTEGER, EXTERNAL :: h5pset_fapl_multi_c
-!  MS FORTRAN needs explicit interface for C functions called here.
-!
     INTERFACE
        INTEGER FUNCTION h5pset_fapl_multi_c(prp_id, memb_map, memb_fapl, memb_name, lenm, &
             maxlen, memb_addr, flag)
          USE H5GLOBAL
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_FAPL_MULTI_C'::h5pset_fapl_multi_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: memb_name
          INTEGER(HID_T), INTENT(IN) :: prp_id ! File creation property list identifier 
-         INTEGER, DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(IN) :: memb_map
-         INTEGER(HID_T), DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(IN) :: memb_fapl
-         CHARACTER(LEN=*), DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(IN) :: memb_name
-         REAL, DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(IN) :: memb_addr
-         !INTEGER(HADDR_T), DIMENSION(H5FD_MEM_NTYPES_F), INTENT(IN) :: memb_addr
-         INTEGER, DIMENSION(0:H5FD_MEM_NTYPES_F-1) :: lenm
+         INTEGER, DIMENSION(*), INTENT(IN) :: memb_map
+         INTEGER(HID_T), DIMENSION(*), INTENT(IN) :: memb_fapl
+         CHARACTER(LEN=*), DIMENSION(*), INTENT(IN) :: memb_name
+         REAL, DIMENSION(*), INTENT(IN) :: memb_addr
+         INTEGER, DIMENSION(*) :: lenm
          INTEGER :: maxlen
          INTEGER, INTENT(IN) :: flag
        END FUNCTION h5pset_fapl_multi_c
     END INTERFACE
+
     maxlen = LEN(memb_name(1))
-    DO i=0, H5FD_MEM_NTYPES_F-1
+    DO i=1, H5FD_MEM_NTYPES_F
        lenm(i) = LEN_TRIM(memb_name(i))
     ENDDO
-    flag = 0
-    IF (relax) flag = 1
-    hdferr = h5pset_fapl_multi_c(prp_id, memb_map, memb_fapl, memb_name, lenm, maxlen, memb_addr, flag) 
-    
+    IF(relax) flag = 1
+    hdferr = h5pset_fapl_multi_c(prp_id, memb_map, memb_fapl, memb_name, lenm, maxlen, memb_addr, flag)
+
   END SUBROUTINE h5pset_fapl_multi_l
 !****s* H5P/h5pset_fapl_multi_s 
 ! NAME
@@ -4303,6 +4279,7 @@ CONTAINS
     INTERFACE
        INTEGER FUNCTION h5pset_fapl_multi_sc(prp_id,flag) 
          USE H5GLOBAL
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_FAPL_MULTI_SC'::h5pset_fapl_multi_sc
          !DEC$ENDIF
@@ -4346,51 +4323,50 @@ CONTAINS
   SUBROUTINE h5pget_fapl_multi_f(prp_id, memb_map, memb_fapl, memb_name, memb_addr, relax, hdferr, maxlen_out)
     IMPLICIT NONE
     INTEGER(HID_T), INTENT(IN) :: prp_id ! File creation property list identifier 
-    INTEGER, DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(OUT) :: memb_map
-    INTEGER(HID_T), DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(OUT) :: memb_fapl
-    CHARACTER(LEN=*), DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(OUT) :: memb_name
-    !INTEGER(HADDR_T), DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(OUT) :: memb_addr
-    REAL, DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(OUT) :: memb_addr
+    INTEGER, DIMENSION(*), INTENT(OUT) :: memb_map
+    INTEGER(HID_T), DIMENSION(*), INTENT(OUT) :: memb_fapl
+    CHARACTER(LEN=*), DIMENSION(*), INTENT(OUT) :: memb_name
+    REAL, DIMENSION(*), INTENT(OUT) :: memb_addr
     INTEGER, OPTIONAL, INTENT(OUT) :: maxlen_out 
     LOGICAL, INTENT(OUT) :: relax
     INTEGER, INTENT(OUT) :: hdferr       ! Error code
                                          ! 0 on success and -1 on failure
 !***** 
-    INTEGER, DIMENSION(0:H5FD_MEM_NTYPES_F-1) :: lenm
+    INTEGER, DIMENSION(1:H5FD_MEM_NTYPES_F) :: lenm
     INTEGER :: maxlen
     INTEGER :: c_maxlen_out 
     INTEGER :: flag
     INTEGER :: i
-
-!            INTEGER, EXTERNAL :: h5pget_fapl_multi_c
-!  MS FORTRAN needs explicit interface for C functions called here.
 !
     INTERFACE
        INTEGER FUNCTION h5pget_fapl_multi_c(prp_id, memb_map, memb_fapl, memb_name, lenm, &
             maxlen, memb_addr, flag, c_maxlen_out)
          USE H5GLOBAL
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_FAPL_MULTI_C'::h5pget_fapl_multi_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: memb_name
          INTEGER(HID_T), INTENT(IN) :: prp_id ! File creation property list identifier 
-         INTEGER, DIMENSION(H5FD_MEM_NTYPES_F), INTENT(OUT) :: memb_map
-         INTEGER(HID_T), DIMENSION(H5FD_MEM_NTYPES_F), INTENT(OUT) :: memb_fapl
-         CHARACTER(LEN=*), DIMENSION(H5FD_MEM_NTYPES_F), INTENT(OUT) :: memb_name
-         REAL, DIMENSION(H5FD_MEM_NTYPES_F), INTENT(OUT) :: memb_addr
-         INTEGER, DIMENSION(0:H5FD_MEM_NTYPES_F-1) :: lenm
+         INTEGER, DIMENSION(*), INTENT(OUT) :: memb_map
+         INTEGER(HID_T), DIMENSION(*), INTENT(OUT) :: memb_fapl
+         CHARACTER(LEN=*), DIMENSION(*), INTENT(OUT) :: memb_name
+         REAL, DIMENSION(*), INTENT(OUT) :: memb_addr
+         INTEGER, DIMENSION(*) :: lenm
          INTEGER :: maxlen
          INTEGER :: c_maxlen_out 
          INTEGER, INTENT(OUT) :: flag
        END FUNCTION h5pget_fapl_multi_c
     END INTERFACE
-    maxlen = LEN(memb_name(0))
-    DO i=0, H5FD_MEM_NTYPES_F-1
+
+    maxlen = LEN(memb_name(1))
+    DO i=1, H5FD_MEM_NTYPES_F
        lenm(i) = LEN_TRIM(memb_name(i))
     ENDDO
-    hdferr = h5pget_fapl_multi_c(prp_id, memb_map, memb_fapl, memb_name, lenm, maxlen, memb_addr, flag, c_maxlen_out) 
+    hdferr = h5pget_fapl_multi_c(prp_id, memb_map, memb_fapl, memb_name, lenm, maxlen, memb_addr, flag, c_maxlen_out)
+    
     relax = .TRUE.
-    IF(flag .EQ. 0) relax = .FALSE. 
+    IF(flag .EQ. 0) relax = .FALSE.
     IF(PRESENT(maxlen_out)) maxlen_out = c_maxlen_out
   END SUBROUTINE h5pget_fapl_multi_f
 !****s* H5P/h5pset_szip_f 
diff --git a/fortran/src/H5Pff_F03.f90 b/fortran/src/H5Pff_F03.f90
index 806c308..01d1d98 100644
--- a/fortran/src/H5Pff_F03.f90
+++ b/fortran/src/H5Pff_F03.f90
@@ -89,12 +89,10 @@ MODULE H5P_PROVISIONAL
   END INTERFACE
 
   INTERFACE
-     INTEGER FUNCTION h5pget_fill_value_c(prp_id, type_id, fillvalue)
+     INTEGER FUNCTION h5pget_fill_value_c(prp_id, type_id, fillvalue) &
+          BIND(C, NAME='h5pget_fill_value_c')
        USE H5GLOBAL
-       USE, INTRINSIC :: ISO_C_BINDING
-       !DEC$IF DEFINED(HDF5F90_WINDOWS)
-       !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_FILL_VALUE_C'::h5pget_fill_value_c
-       !DEC$ENDIF
+       USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr
        INTEGER(HID_T), INTENT(IN) :: prp_id  ! Property list identifier
        INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
                                              ! of fillvalue datatype
@@ -104,12 +102,10 @@ MODULE H5P_PROVISIONAL
   END INTERFACE
 
   INTERFACE
-     INTEGER FUNCTION h5pset_fill_value_c(prp_id, type_id, fillvalue)
+     INTEGER FUNCTION h5pset_fill_value_c(prp_id, type_id, fillvalue) &
+          BIND(C, NAME='h5pset_fill_value_c')
        USE H5GLOBAL
-       USE, INTRINSIC :: ISO_C_BINDING
-       !DEC$IF DEFINED(HDF5F90_WINDOWS)
-       !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_FILL_VALUE_C'::h5pset_fill_value_c
-       !DEC$ENDIF
+       USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr
        INTEGER(HID_T), INTENT(IN) :: prp_id  ! Property list identifier
        INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier of
                                              ! of fillvalue datatype
@@ -119,43 +115,36 @@ MODULE H5P_PROVISIONAL
   END INTERFACE
 
   INTERFACE
-     INTEGER FUNCTION h5pset_c(prp_id, name, name_len, value)
+     INTEGER FUNCTION h5pset_c(prp_id, name, name_len, value) &
+          BIND(C, NAME='h5pset_c')
+       USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char, c_ptr
        USE H5GLOBAL
-       USE, INTRINSIC :: ISO_C_BINDING
-       !DEC$IF DEFINED(HDF5F90_WINDOWS)
-       !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_C'::h5pset_c
-       !DEC$ENDIF
        INTEGER(HID_T), INTENT(IN) :: prp_id  ! Property list identifier
-       CHARACTER(LEN=*), INTENT(IN) :: name  ! Name of property to modify
+       CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name  ! Name of property to modify
        INTEGER :: name_len
        TYPE(C_PTR), VALUE :: value ! Property value
      END FUNCTION h5pset_c
   END INTERFACE
 
   INTERFACE
-     INTEGER FUNCTION h5pget_c(prp_id, name, name_len, value)
-       USE, INTRINSIC :: ISO_C_BINDING
+     INTEGER FUNCTION h5pget_c(prp_id, name, name_len, value) &
+          BIND(C, NAME='h5pget_c')
+       USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char, c_ptr
        USE H5GLOBAL
-       !DEC$IF DEFINED(HDF5F90_WINDOWS)
-       !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_C'::h5pget_c
-       !DEC$ENDIF
        INTEGER(HID_T), INTENT(IN) :: prp_id  ! Property list identifier
-       CHARACTER(LEN=*), INTENT(IN) :: name  ! Name of property to modify
+       CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name  ! Name of property to modify
        INTEGER :: name_len
        TYPE(C_PTR), VALUE :: value ! Property value
      END FUNCTION h5pget_c
   END INTERFACE
 
   INTERFACE
-     INTEGER FUNCTION h5pregister_c(class, name, name_len, size, value)
-       USE iso_c_binding
+     INTEGER FUNCTION h5pregister_c(class, name, name_len, size, value) &
+          BIND(C, NAME='h5pregister_c')
+       USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char, c_ptr
        USE H5GLOBAL
-       !DEC$IF DEFINED(HDF5F90_WINDOWS)
-       !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PREGISTER_C'::h5pregister_c
-       !DEC$ENDIF
-       !DEC$ATTRIBUTES reference :: name
        INTEGER(HID_T), INTENT(IN) :: class
-       CHARACTER(LEN=*), INTENT(IN) :: name
+       CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name
        INTEGER, INTENT(IN)         :: name_len
        INTEGER(SIZE_T), INTENT(IN) :: size
        TYPE(C_PTR), INTENT(IN), VALUE :: value
@@ -163,18 +152,15 @@ MODULE H5P_PROVISIONAL
   END INTERFACE
 
   INTERFACE
-     INTEGER FUNCTION h5pinsert_c(plist, name, name_len, size, value)
-       USE iso_c_binding
+     INTEGER FUNCTION h5pinsert_c(plist, name, name_len, size, value) &
+          BIND(C, NAME='h5pinsert_c')
+       USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char, c_ptr
        USE H5GLOBAL
-       !DEC$IF DEFINED(HDF5F90_WINDOWS)
-       !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PINSERT_C'::h5pinsert_c
-       !DEC$ENDIF
-       !DEC$ATTRIBUTES reference :: name
        INTEGER(HID_T), INTENT(IN) :: plist
-       CHARACTER(LEN=*), INTENT(IN) :: name
+       CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name
        INTEGER, INTENT(IN)         :: name_len
        INTEGER(SIZE_T), INTENT(IN) :: size
-       TYPE(c_ptr), INTENT(IN), value :: value
+       TYPE(C_PTR), INTENT(IN), VALUE :: value
      END FUNCTION h5pinsert_c
   END INTERFACE
 
@@ -1140,18 +1126,12 @@ CONTAINS
     TYPE(C_FUNPTR) :: create_default, copy_default, close_default
     INTERFACE
        INTEGER FUNCTION h5pcreate_class_c(parent, name, name_len, class, &
-            create, create_data, &
-            copy, copy_data, &
-            close, close_data)
-
-         USE iso_c_binding
+            create, create_data, copy, copy_data, close, close_data) &
+          BIND(C, NAME='h5pcreate_class_c')
+         USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char, c_ptr, c_funptr
          USE H5GLOBAL
-         !DEC$IF DEFINED(HDCLOSEF90_WINDOWS)
-         !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PCREATE_CLASS_C'::h5pcreate_class_c
-         !DEC$ENDIF
-         !DEC$ATTRIBUTES reference :: name
          INTEGER(HID_T), INTENT(IN) :: parent
-         CHARACTER(LEN=*), INTENT(IN) :: name
+         CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name
          INTEGER, INTENT(IN)         :: name_len
          INTEGER(HID_T), INTENT(OUT) :: class
          TYPE(C_PTR), VALUE :: create_data, copy_data, close_data
@@ -1213,12 +1193,10 @@ CONTAINS
     INTEGER        , INTENT(OUT) :: hdferr
 !*****
     INTERFACE
-       INTEGER FUNCTION h5pset_file_image_c(fapl_id, buf_ptr, buf_len)
-         USE iso_c_binding
+       INTEGER FUNCTION h5pset_file_image_c(fapl_id, buf_ptr, buf_len) &
+            BIND(C, NAME='h5pset_file_image_c')
+         USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr
          USE H5GLOBAL
-         !DEC$IF DEFINED(HDCLOSEF90_WINDOWS)
-         !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PSET_FILE_IMAGE_C'::h5pset_file_image_c
-         !DEC$ENDIF
          INTEGER(HID_T), INTENT(IN) :: fapl_id
          TYPE(C_PTR), VALUE :: buf_ptr
          INTEGER(SIZE_T), INTENT(IN)  :: buf_len
@@ -1271,12 +1249,10 @@ CONTAINS
     
 !*****
     INTERFACE
-       INTEGER FUNCTION h5pget_file_image_c(fapl_id, buf_ptr, buf_len_ptr)
-         USE iso_c_binding
+       INTEGER FUNCTION h5pget_file_image_c(fapl_id, buf_ptr, buf_len_ptr) &
+            BIND(C, NAME='h5pget_file_image_c')
+         USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr
          USE H5GLOBAL
-         !DEC$IF DEFINED(HDCLOSEF90_WINDOWS)
-         !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PGET_FILE_IMAGE_C'::h5pget_file_image_c
-         !DEC$ENDIF
          INTEGER(HID_T), INTENT(IN) :: fapl_id
          TYPE(C_PTR), DIMENSION(*), INTENT(OUT)  :: buf_ptr
          INTEGER(SIZE_T), INTENT(OUT)  :: buf_len_ptr
diff --git a/fortran/src/H5Pff_F90.f90 b/fortran/src/H5Pff_F90.f90
index 5b75643..b5ea13d 100644
--- a/fortran/src/H5Pff_F90.f90
+++ b/fortran/src/H5Pff_F90.f90
@@ -927,22 +927,21 @@ SUBROUTINE h5pinsert_char(plist, name, size, value, hdferr)
     INTEGER :: name_len
 
     INTERFACE
-       INTEGER FUNCTION h5pcreate_class_c(parent, name, name_len,&
-            class)
+       INTEGER FUNCTION h5pcreate_class_f90_c(parent, name, name_len, class)
          USE H5GLOBAL
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
-         !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PCREATE_CLASS_C'::h5pcreate_class_c
+         !DEC$ATTRIBUTES C,reference,decorate,alias:'H5PCREATE_CLASS_F90_C'::h5pcreate_class_f90_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: name
          INTEGER(HID_T), INTENT(IN) :: parent
          CHARACTER(LEN=*), INTENT(IN) :: name
          INTEGER, INTENT(IN)         :: name_len
          INTEGER(HID_T), INTENT(OUT) :: class
-       END FUNCTION h5pcreate_class_c
+       END FUNCTION h5pcreate_class_f90_c
     END INTERFACE
 
     name_len = LEN(name)
-    hdferr = h5pcreate_class_c(parent, name, name_len, class)
+    hdferr = h5pcreate_class_f90_c(parent, name, name_len, class)
 
   END SUBROUTINE h5pcreate_class_f
 
diff --git a/fortran/src/H5Rf.c b/fortran/src/H5Rf.c
index 67d10e3..192baf2 100644
--- a/fortran/src/H5Rf.c
+++ b/fortran/src/H5Rf.c
@@ -143,18 +143,16 @@ done:
  * SOURCE
 */
 int_f
-nh5rcreate_ptr_c (void *ref, hid_t_f *loc_id, _fcd name, int_f *namelen, int_f *ref_type, hid_t_f *space_id)
+h5rcreate_ptr_c (void *ref, hid_t_f *loc_id, _fcd name, int_f *namelen, int_f *ref_type, hid_t_f *space_id)
 /******/
 {
      int ret_value = -1;
      char *c_name;
-     size_t c_namelen;
 
      /*
       * Convert FORTRAN name to C name
       */
-     c_namelen = *namelen;
-     c_name = (char *)HD5f2cstring(name, c_namelen);
+     c_name = (char *)HD5f2cstring(name, (size_t)*namelen);
      if (c_name == NULL) return ret_value;
 
      /*
@@ -252,18 +250,18 @@ done:
 
 /****if* H5Rf/h5rdereference_ptr_c
  * NAME
- *        h5rdereference_ptr_c
+ *  h5rdereference_ptr_c
  * PURPOSE
- *     Call H5Rdereference
+ *  Call H5Rdereference
  * INPUTS
- *      obj_id - Valid identifier for the file containing the
- *                       referenced object or any object in that file.
- *             ref_typ - The reference type of ref.
- *                 ref - Object reference
+ *  obj_id  - Valid identifier for the file containing the
+ *            referenced object or any object in that file.
+ *  ref_typ - The reference type of ref.
+ *  ref     - Object reference
  * OUTPUTS
- *     ref_obj_id - Identifier of referenced object
+ *  ref_obj_id - Identifier of referenced object
  * RETURNS
- *     0 on success, -1 on failure
+ *  0 on success, -1 on failure
  * AUTHOR
  *  M. Scot Breitenfeld
  *  June 20, 2008
@@ -272,7 +270,7 @@ done:
  * SOURCE
 */
 int_f
-nh5rdereference_ptr_c (hid_t_f *obj_id, int_f *ref_type, void *ref, hid_t_f *ref_obj_id)
+h5rdereference_ptr_c (hid_t_f *obj_id, int_f *ref_type, void *ref, hid_t_f *ref_obj_id)
 /******/
 {
   int ret_value = -1;
@@ -351,7 +349,7 @@ done:
  * SOURCE
 */
 int_f
-nh5rget_region_ptr_c(hid_t_f *dset_id, void *ref, hid_t_f *space_id)
+h5rget_region_ptr_c(hid_t_f *dset_id, void *ref, hid_t_f *space_id)
 /******/
 {
      hid_t c_space_id;
@@ -532,9 +530,9 @@ done:
 
 /****if* H5Rf/h5rget_name_ptr_c
  * NAME
- *        h5rget_name_ptr_c
+ *  h5rget_name_ptr_c
  * PURPOSE
- *     Call H5Rget_name
+ *  Call H5Rget_name
  * INPUTS
  *
  *       loc_id - Identifier for the dataset containing the reference or for the group that dataset is in.
@@ -546,7 +544,7 @@ done:
  *     size - The size of the name buffer.
  *
  * RETURNS
- *     0 on success, -1 on failure
+ *  0 on success, -1 on failure
  * AUTHOR
  *  M. Scot Breitenfeld
  *  June 20, 2008
@@ -555,7 +553,7 @@ done:
  * SOURCE
 */
 int_f
-nh5rget_name_ptr_c (hid_t_f *loc_id, int_f *ref_type, void *ref, _fcd name, size_t_f *name_len, size_t_f *size_default)
+h5rget_name_ptr_c (hid_t_f *loc_id, int_f *ref_type, void *ref, _fcd name, size_t_f *name_len, size_t_f *size_default)
 /******/
 {
      int_f ret_value = -1;
@@ -567,7 +565,7 @@ nh5rget_name_ptr_c (hid_t_f *loc_id, int_f *ref_type, void *ref, _fcd name, size
      /*
       * Allocate buffer to hold name of an attribute
       */
-     if ((c_buf = HDmalloc(c_bufsize)) == NULL)
+     if ((c_buf = (char *)HDmalloc(c_bufsize)) == NULL)
        return ret_value;
 
      /*
@@ -601,12 +599,9 @@ nh5rget_name_ptr_c (hid_t_f *loc_id, int_f *ref_type, void *ref, _fcd name, size
  *   ref      - Reference to query.
  *
  * OUTPUTS
- *   obj_type - Type of referenced object. 
- *                H5G_UNKNOWN_F (-1)
- *                H5G_LINK_F      0
- *                H5G_GROUP_F     1
- *                H5G_DATASET_F   2
- *                H5G_TYPE_F      3
+ *   obj_type - Type of referenced object. These are defined in H5Opublic.h,
+ *              enum H5O_type_t
+ *              
  * RETURNS
  *   0 on success, -1 on failure
  * AUTHOR
@@ -616,7 +611,7 @@ nh5rget_name_ptr_c (hid_t_f *loc_id, int_f *ref_type, void *ref, _fcd name, size
  * SOURCE
 */
 int_f
-nh5rget_obj_type_c (hid_t_f *loc_id, int_f *ref_type, void *ref, int_f *obj_type)
+h5rget_obj_type_c (hid_t_f *loc_id, int_f *ref_type, void *ref, int_f *obj_type)
 /******/
 {
   int_f ret_value = -1;
diff --git a/fortran/src/H5Rff.f90 b/fortran/src/H5Rff.f90
index 64f1365..77a1ff8 100644
--- a/fortran/src/H5Rff.f90
+++ b/fortran/src/H5Rff.f90
@@ -75,11 +75,10 @@ CONTAINS
 !  ref 	         - reference to open
 ! OUTPUTS
 !  obj_type 	 - object_type, possible values:
-!                    H5G_UNKNOWN_F     (-1)
-!                    H5G_GROUP_F        0
-!                    H5G_DATASET_F      1
-!                    H5G_TYPE_F         2
-!                    H5G_LINK_F         3
+!                    H5G_UNKNOWN_F
+!                    H5G_GROUP_F 
+!                    H5G_DATASET_F
+!                    H5G_TYPE_F
 !  hdferr 	 - Returns 0 if successful and -1 if fails
 !
 ! AUTHOR
@@ -100,11 +99,10 @@ CONTAINS
     INTEGER(HID_T), INTENT(IN) :: dset_id   ! Dataset identifier
     TYPE(hobj_ref_t_f), INTENT(IN) :: ref   ! Object reference
     INTEGER, INTENT(OUT) :: obj_type     ! Object type
-                                         !  H5G_UNKNOWN_F     (-1)
-                                         !  H5G_GROUP_F        0
-                                         !  H5G_DATASET_F      1
-                                         !  H5G_TYPE_F         2
-                                         !  H5G_LINK_F         3
+                                         !  H5G_UNKNOWN_F
+                                         !  H5G_GROUP_F
+                                         !  H5G_DATASET_F
+                                         !  H5G_TYPE_F
     INTEGER, INTENT(OUT) :: hdferr       ! Error code
 !*****
     INTEGER(HADDR_T) :: ref_f          ! Local buffer to pass reference
diff --git a/fortran/src/H5Rff_F03.f90 b/fortran/src/H5Rff_F03.f90
index e0ffa0a..8f40607 100644
--- a/fortran/src/H5Rff_F03.f90
+++ b/fortran/src/H5Rff_F03.f90
@@ -14,18 +14,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.       *
 !  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 !
 ! NOTES
@@ -90,29 +90,24 @@ MODULE H5R_PROVISIONAL
   END INTERFACE
 
   INTERFACE
-     INTEGER FUNCTION h5rget_name_ptr_c(loc_id, ref_type, ref, name, name_len, size_default)
-       USE, INTRINSIC :: ISO_C_BINDING
+     INTEGER FUNCTION h5rget_name_ptr_c(loc_id, ref_type, ref, name, name_len, size_default) &
+          BIND(C, NAME='h5rget_name_ptr_c')
+       USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char, c_ptr
        USE H5GLOBAL
-       !DEC$IF DEFINED(HDF5F90_WINDOWS)
-       !DEC$ATTRIBUTES C,reference,decorate,alias:'H5RGET_NAME_PTR_C':: h5rget_name_ptr_c
-       !DEC$ENDIF
-       !DEC$ATTRIBUTES reference :: name
        INTEGER(HID_T), INTENT(IN) :: loc_id
        INTEGER, INTENT(IN) :: ref_type
        TYPE(C_PTR), INTENT(IN), VALUE :: ref
-       CHARACTER(LEN=*), INTENT(OUT) :: name
+       CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name
        INTEGER(SIZE_T) :: name_len
        INTEGER(SIZE_T) :: size_default
      END FUNCTION h5rget_name_ptr_c
   END INTERFACE
 
   INTERFACE
-     INTEGER FUNCTION h5rdereference_ptr_c(obj_id, ref_type, ref, ref_obj_id)
+     INTEGER FUNCTION h5rdereference_ptr_c(obj_id, ref_type, ref, ref_obj_id) &
+          BIND(C, NAME='h5rdereference_ptr_c')
+       USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr
        USE H5GLOBAL
-       USE, INTRINSIC :: ISO_C_BINDING
-       !DEC$IF DEFINED(HDF5F90_WINDOWS)
-       !DEC$ATTRIBUTES C,reference,decorate,alias:'H5RDEREFERENCE_PTR_C':: h5rdereference_ptr_c
-       !DEC$ENDIF
        INTEGER(HID_T), INTENT(IN) :: obj_id
        INTEGER, INTENT(IN) :: ref_type
        TYPE(C_PTR), INTENT(IN), VALUE :: ref
@@ -121,16 +116,13 @@ MODULE H5R_PROVISIONAL
   END INTERFACE
 
   INTERFACE
-     INTEGER FUNCTION h5rcreate_ptr_c(ref, loc_id, name, namelen, ref_type, space_id)
-       USE, INTRINSIC :: ISO_C_BINDING
+     INTEGER FUNCTION h5rcreate_ptr_c(ref, loc_id, name, namelen, ref_type, space_id) &
+          BIND(C, NAME='h5rcreate_ptr_c')
+       USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_char, c_ptr
        USE H5GLOBAL
-       !DEC$IF DEFINED(HDF5F90_WINDOWS)
-       !DEC$ATTRIBUTES C,reference,decorate,alias:'H5RCREATE_PTR_C':: h5rcreate_ptr_c
-       !DEC$ENDIF
-       !DEC$ATTRIBUTES reference :: name
        TYPE(C_PTR), VALUE :: ref
        INTEGER(HID_T), INTENT(IN) :: loc_id
-       CHARACTER(LEN=*), INTENT(IN) :: name
+       CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name
        INTEGER :: namelen
        INTEGER, INTENT(IN) :: ref_type
        INTEGER(HID_T), INTENT(IN) :: space_id
@@ -138,12 +130,10 @@ MODULE H5R_PROVISIONAL
   END INTERFACE
 
   INTERFACE
-     INTEGER FUNCTION h5rget_region_ptr_c(dset_id, ref, space_id)
-       USE, INTRINSIC :: ISO_C_BINDING
+     INTEGER FUNCTION h5rget_region_ptr_c(dset_id, ref, space_id) &
+          BIND(C, NAME='h5rget_region_ptr_c')
+       USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr
        USE H5GLOBAL
-       !DEC$IF DEFINED(HDF5F90_WINDOWS)
-       !DEC$ATTRIBUTES C,reference,decorate,alias:'H5RGET_REGION_PTR_C':: h5rget_region_ptr_c
-       !DEC$ENDIF
        INTEGER(HID_T), INTENT(IN) :: dset_id
        TYPE(C_PTR), VALUE :: ref
        INTEGER(HID_T), INTENT(OUT) :: space_id
@@ -281,7 +271,6 @@ CONTAINS
     INTEGER, INTENT(OUT) :: hdferr         ! Error code
 !*****
     INTEGER :: namelen                     ! Name length
-
     TYPE(C_PTR) :: f_ptr
 
     f_ptr = C_LOC(ref)
@@ -562,7 +551,7 @@ CONTAINS
     INTEGER(HID_T), INTENT(IN) :: loc_id
     TYPE(hobj_ref_t_f), INTENT(IN), TARGET :: ref
     INTEGER(SIZE_T), OPTIONAL, INTENT(OUT) :: size
-    CHARACTER(LEN=*), INTENT(OUT) :: name
+    CHARACTER(LEN=*), INTENT(INOUT) :: name
     INTEGER, INTENT(OUT) :: hdferr
 !*****
 
@@ -609,7 +598,7 @@ CONTAINS
     INTEGER(HID_T), INTENT(IN) :: loc_id
     TYPE(hdset_reg_ref_t_f), INTENT(IN), TARGET :: ref
     INTEGER(SIZE_T), OPTIONAL, INTENT(OUT) :: size
-    CHARACTER(LEN=*), INTENT(OUT) :: name
+    CHARACTER(LEN=*), INTENT(INOUT) :: name
     INTEGER, INTENT(OUT) :: hdferr
 !*****
     INTEGER(SIZE_T) :: size_default
@@ -658,7 +647,7 @@ CONTAINS
     INTEGER(HID_T), INTENT(IN) :: loc_id
     INTEGER, INTENT(IN) :: ref_type
     TYPE(C_PTR), INTENT(IN) :: ref
-    CHARACTER(LEN=*), INTENT(OUT) :: name
+    CHARACTER(LEN=*), INTENT(INOUT) :: name
     INTEGER, INTENT(OUT) :: hdferr
     INTEGER(SIZE_T), OPTIONAL, INTENT(OUT) :: size
 !*****
@@ -689,11 +678,10 @@ CONTAINS
   !
   ! Outputs:
   !  obj_type - Type of referenced object. 
-  !               H5G_UNKNOWN_F (-1)
-  !               H5G_LINK_F      0
-  !               H5G_GROUP_F     1
-  !               H5G_DATASET_F   2
-  !               H5G_TYPE_F      3
+  !               H5G_UNKNOWN_F
+  !               H5G_GROUP_F
+  !               H5G_DATASET_F
+  !               H5G_TYPE_F
   !              
   !  hdferr   - Returns 0 if successful and -1 if fails.
   !
@@ -713,12 +701,10 @@ CONTAINS
     !*****
 
     INTERFACE
-       INTEGER FUNCTION h5rget_obj_type_c(loc_id, ref_type, ref, obj_type)
-         USE, INTRINSIC :: ISO_C_BINDING
+       INTEGER FUNCTION h5rget_obj_type_c(loc_id, ref_type, ref, obj_type) &
+            BIND(C, NAME='h5rget_obj_type_c')
+         USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr
          USE H5GLOBAL
-         !DEC$IF DEFINED(HDF5F90_WINDOWS)
-         !DEC$ATTRIBUTES C,reference,decorate,alias:'H5RGET_OBJ_TYPE_C':: h5rget_obj_type_c
-         !DEC$ENDIF
          INTEGER(HID_T), INTENT(IN) :: loc_id
          INTEGER, INTENT(IN) :: ref_type
          TYPE(C_PTR), VALUE :: ref
diff --git a/fortran/src/H5Rff_F90.f90 b/fortran/src/H5Rff_F90.f90
index 3871d99..ac45857 100644
--- a/fortran/src/H5Rff_F90.f90
+++ b/fortran/src/H5Rff_F90.f90
@@ -14,18 +14,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.       *
 !  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 !
 ! NOTES
diff --git a/fortran/src/H5Sf.c b/fortran/src/H5Sf.c
index 8e17026..6947d64 100644
--- a/fortran/src/H5Sf.c
+++ b/fortran/src/H5Sf.c
@@ -97,7 +97,7 @@ nh5sclose_c ( hid_t_f *space_id )
   int ret_value = 0;
   hid_t c_space_id;
 
-  c_space_id = *space_id;
+  c_space_id = (hid_t)*space_id;
   if ( H5Sclose(c_space_id) < 0  ) ret_value = -1;
   return ret_value;
 }
@@ -163,7 +163,7 @@ nh5scopy_c( hid_t_f *space_id , hid_t_f *new_space_id)
   hid_t c_new_space_id;
   hid_t c_space_id;
 
-  c_space_id = *space_id;
+  c_space_id = (hid_t)*space_id;
   c_new_space_id = H5Scopy(c_space_id);
   if ( c_new_space_id < 0  ) ret_value = -1;
 
@@ -201,7 +201,7 @@ nh5sget_select_hyper_nblocks_c( hid_t_f *space_id , hssize_t_f * num_blocks)
   hid_t c_space_id;
   hssize_t c_num_blocks;
 
-  c_space_id = *space_id;
+  c_space_id = (hid_t)*space_id;
   c_num_blocks = H5Sget_select_hyper_nblocks(c_space_id);
   if ( c_num_blocks < 0  ) ret_value = -1;
 
@@ -239,7 +239,7 @@ nh5sget_select_elem_npoints_c( hid_t_f *space_id , hssize_t_f * num_points)
   hid_t c_space_id;
   hssize_t c_num_points;
 
-  c_space_id = *space_id;
+  c_space_id = (hid_t)*space_id;
   c_num_points = H5Sget_select_elem_npoints(c_space_id);
   if ( c_num_points < 0  ) ret_value = -1;
 
@@ -278,8 +278,8 @@ nh5sget_select_elem_npoints_c( hid_t_f *space_id , hssize_t_f * num_points)
 */
 
 int_f
-nh5sget_select_hyper_blocklist_c( hid_t_f *space_id ,hsize_t_f * startblock,
-                                  hsize_t_f * num_blocks, hsize_t_f * buf)
+nh5sget_select_hyper_blocklist_c( hid_t_f *space_id ,hsize_t_f *startblock,
+                                  hsize_t_f *num_blocks, hsize_t_f *buf)
 /******/
 {
   int ret_value = -1;
@@ -291,14 +291,14 @@ nh5sget_select_hyper_blocklist_c( hid_t_f *space_id ,hsize_t_f * startblock,
   int rank;
   hsize_t c_startblock, *c_buf;
 
-  c_space_id = *space_id;
-  c_num_blocks = * num_blocks;
+  c_space_id = (hid_t)*space_id;
+  c_num_blocks = (hsize_t)*num_blocks;
 
   rank = H5Sget_simple_extent_ndims(c_space_id);
   if (rank < 0 ) return ret_value;
   c_startblock = (hsize_t)*startblock;
 
-  c_buf = (hsize_t*)HDmalloc(sizeof(hsize_t)*(size_t)(c_num_blocks*2*rank));
+  c_buf = (hsize_t*)HDmalloc(sizeof(hsize_t)*(size_t)(c_num_blocks*2*(hsize_t)rank));
   if (!c_buf) return ret_value;
 
   ret_value = H5Sget_select_hyper_blocklist(c_space_id, c_startblock,
@@ -360,7 +360,7 @@ nh5sget_select_bounds_c( hid_t_f *space_id , hsize_t_f * start, hsize_t_f * end)
     int i, rank;
     int_f ret_value = 0;
 
-    c_space_id = *space_id;
+    c_space_id = (hid_t)*space_id;
     rank = H5Sget_simple_extent_ndims(c_space_id);
     if(rank < 0 )
         HGOTO_DONE(FAIL)
@@ -418,14 +418,14 @@ nh5sget_select_elem_pointlist_c( hid_t_f *space_id ,hsize_t_f * startpoint,
   int rank;
   int j,i2;
 
-  c_space_id = *space_id;
+  c_space_id = (hid_t)*space_id;
   c_num_points = (hsize_t)* numpoints;
 
   rank = H5Sget_simple_extent_ndims(c_space_id);
   if (rank < 0 ) return ret_value;
 
   c_startpoint = (hsize_t)*startpoint;
-  c_buf = (hsize_t*)HDmalloc(sizeof(hsize_t)*(size_t)(c_num_points*rank));
+  c_buf = (hsize_t*)HDmalloc(sizeof(hsize_t)*(size_t)(c_num_points*(hsize_t)rank));
   if (!c_buf) return ret_value;
   ret_value = H5Sget_select_elem_pointlist(c_space_id, c_startpoint,
                                             c_num_points, c_buf);
@@ -434,7 +434,7 @@ nh5sget_select_elem_pointlist_c( hid_t_f *space_id ,hsize_t_f * startpoint,
   /* and add 1 to account for array's starting at one in Fortran */
   i2 = 0;
   for( i = 0; i < c_num_points; i++) {
-    i1 =  rank*(i+1);
+    i1 =  (hsize_t)rank*(i+1);
     for(j = 0; j < rank; j++) {
       buf[i2] = (hsize_t_f)(c_buf[i1-1]+1);
       i2 = i2 + 1;
@@ -442,10 +442,6 @@ nh5sget_select_elem_pointlist_c( hid_t_f *space_id ,hsize_t_f * startpoint,
     }
   }
 
-/*   for( i = 0; i < c_num_points*rank; i++) { */
-/*     printf("%i \n", (int)c_buf[i]+1); */
-/*   } */
-
   if (ret_value  >= 0  ) ret_value = 0;
 
   HDfree(c_buf);
@@ -453,8 +449,6 @@ nh5sget_select_elem_pointlist_c( hid_t_f *space_id ,hsize_t_f * startpoint,
   return ret_value;
 }
 
-
-
 /****if* H5Sf/h5sselect_all_c
  * NAME
  *        h5sselect_all_c
@@ -479,7 +473,7 @@ nh5sselect_all_c ( hid_t_f *space_id )
   int ret_value = 0;
   hid_t c_space_id;
 
-  c_space_id = *space_id;
+  c_space_id = (hid_t)*space_id;
   if ( H5Sselect_all(c_space_id) < 0  ) ret_value = -1;
   return ret_value;
 }
@@ -508,7 +502,7 @@ nh5sselect_none_c ( hid_t_f *space_id )
   int ret_value = 0;
   hid_t c_space_id;
 
-  c_space_id = *space_id;
+  c_space_id = (hid_t)*space_id;
   if ( H5Sselect_none(c_space_id) < 0  ) ret_value = -1;
   return ret_value;
 }
@@ -542,7 +536,7 @@ nh5sselect_valid_c ( hid_t_f *space_id , int_f *flag )
   hid_t c_space_id;
   htri_t status;
 
-  c_space_id = *space_id;
+  c_space_id = (hid_t)*space_id;
   status = H5Sselect_valid(c_space_id);
   *flag = (int_f)status;
   if ( status < 0  ) ret_value = -1;
@@ -577,7 +571,7 @@ nh5sget_simple_extent_npoints_c ( hid_t_f *space_id , hsize_t_f *npoints )
   hid_t c_space_id;
   hssize_t c_npoints;
 
-  c_space_id = *space_id;
+  c_space_id = (hid_t)*space_id;
   c_npoints = H5Sget_simple_extent_npoints(c_space_id);
   if ( c_npoints == 0  ) ret_value = -1;
   *npoints = (hsize_t_f)c_npoints;
@@ -612,7 +606,7 @@ nh5sget_select_npoints_c ( hid_t_f *space_id , hssize_t_f *npoints )
   hssize_t c_npoints;
   hid_t c_space_id;
 
-  c_space_id = *space_id;
+  c_space_id = (hid_t)*space_id;
   c_npoints = H5Sget_select_npoints(c_space_id);
   if ( c_npoints < 0  ) ret_value = -1;
   *npoints = (hssize_t_f)c_npoints;
@@ -647,7 +641,7 @@ nh5sget_simple_extent_ndims_c ( hid_t_f *space_id , int_f *ndims )
   hid_t c_space_id;
   int c_ndims;
 
-  c_space_id = *space_id;
+  c_space_id = (hid_t)*space_id;
   c_ndims = H5Sget_simple_extent_ndims(c_space_id);
   if ( c_ndims < 0  ) ret_value = -1;
   *ndims = (int_f)c_ndims;
@@ -683,7 +677,7 @@ nh5sget_simple_extent_type_c ( hid_t_f *space_id , int_f *classtype)
   hid_t c_space_id;
   H5S_class_t c_classtype;
 
-  c_space_id = *space_id;
+  c_space_id = (hid_t)*space_id;
   c_classtype = H5Sget_simple_extent_type(c_space_id);
   if ( c_classtype < 0  ) ret_value = -1;
    *classtype = c_classtype;
@@ -724,7 +718,7 @@ nh5soffset_simple_c ( hid_t_f *space_id , hssize_t_f *offset)
     int i;
     int_f ret_value = 0;
 
-    c_space_id = *space_id;
+    c_space_id = (hid_t)*space_id;
     rank = H5Sget_simple_extent_ndims(c_space_id);
     if(rank < 0)
         HGOTO_DONE(FAIL)
@@ -820,7 +814,7 @@ nh5sget_simple_extent_dims_c ( hid_t_f *space_id , hsize_t_f *dims, hsize_t_f *m
     int i;
     int_f ret_value;
 
-    c_space_id = *space_id;
+    c_space_id = (hid_t)*space_id;
     rank = H5Sget_simple_extent_ndims(c_space_id);
     if(rank < 0)
         HGOTO_DONE(FAIL)
@@ -871,7 +865,7 @@ nh5sis_simple_c ( hid_t_f *space_id , int_f *flag )
   hid_t c_space_id;
   htri_t status;
 
-  c_space_id = *space_id;
+  c_space_id = (hid_t)*space_id;
   status = H5Sis_simple(c_space_id);
   *flag = (int_f)status;
   if ( status < 0  ) ret_value = -1;
@@ -905,8 +899,8 @@ nh5sextent_copy_c ( hid_t_f *dest_space_id , hid_t_f *source_space_id)
   hid_t c_dest_space_id, c_source_space_id;
   herr_t status;
 
-  c_dest_space_id = *dest_space_id;
-  c_source_space_id = *source_space_id;
+  c_dest_space_id = (hid_t)*dest_space_id;
+  c_source_space_id = (hid_t)*source_space_id;
   status = H5Sextent_copy(c_dest_space_id, c_source_space_id);
   if ( status < 0  ) ret_value = -1;
   return ret_value;
@@ -937,7 +931,7 @@ nh5sset_extent_none_c ( hid_t_f *space_id )
   hid_t c_space_id;
   herr_t status;
 
-  c_space_id = *space_id;
+  c_space_id = (hid_t)*space_id;
   status = H5Sset_extent_none(c_space_id);
   if ( status < 0  ) ret_value = -1;
   return ret_value;
@@ -1230,7 +1224,8 @@ nh5sselect_elements_c ( hid_t_f *space_id , int_f *op, size_t_f *nelements,  hsi
   H5S_seloper_t c_op;
   herr_t  status;
   int rank;
-  int i, j;
+  size_t i;
+  int j;
   hsize_t *c_coord;
   size_t c_nelements;
 
@@ -1239,11 +1234,11 @@ nh5sselect_elements_c ( hid_t_f *space_id , int_f *op, size_t_f *nelements,  hsi
   c_space_id = *space_id;
   rank = H5Sget_simple_extent_ndims(c_space_id);
 
-  c_coord = (hsize_t *)HDmalloc(sizeof(hsize_t)*rank*(*nelements));
+  c_coord = (hsize_t *)HDmalloc(sizeof(hsize_t)*(size_t)rank*((size_t)*nelements));
   if(!c_coord) return ret_value;
-  for (i=0; i< *nelements; i++) {
+  for (i=0; i< (size_t)*nelements; i++) {
       for (j = 0; j < rank; j++) {
-          c_coord[j+i*rank] = (hsize_t)coord[j + i*rank];
+	c_coord[(size_t)j+i*(size_t)rank] = (hsize_t)coord[(size_t)j + i*(size_t)rank];
       }
   }
 
diff --git a/fortran/src/H5Tf.c b/fortran/src/H5Tf.c
index 32cdb72..7e1aa42 100644
--- a/fortran/src/H5Tf.c
+++ b/fortran/src/H5Tf.c
@@ -26,9 +26,9 @@
 
 /****if* H5Tf/h5topen_c
  * NAME
- *        h5topen_c
+ *  h5topen_c
  * PURPOSE
- *     Call H5Topen2 to open a datatype
+ *  Call H5Topen2 to open a datatype
  * INPUTS
  *      loc_id - file or group identifier
  *              name - name of the datatype within file or  group
@@ -78,9 +78,9 @@ done:
 
 /****if* H5Tf/h5tcommit_c
  * NAME
- *        h5tcommit_c
+ *  h5tcommit_c
  * PURPOSE
- *     Call H5Tcommit2 to commit a datatype
+ *  Call H5Tcommit2 to commit a datatype
  * INPUTS
  *      loc_id - file or group identifier
  *              name - name of the datatype within file or  group
@@ -126,9 +126,9 @@ done:
 
 /****if* H5Tf/h5tclose_c
  * NAME
- *        h5tclose_c
+ *  h5tclose_c
  * PURPOSE
- *     Call H5Tclose to close the datatype
+ *  Call H5Tclose to close the datatype
  * INPUTS
  *      type_id - identifier of the datatype to be closed
  * RETURNS
@@ -156,9 +156,9 @@ nh5tclose_c ( hid_t_f *type_id )
 
 /****if* H5Tf/h5tcopy_c
  * NAME
- *        h5tcopy_c
+ *  h5tcopy_c
  * PURPOSE
- *     Call H5Tcopy to copy a datatype
+ *  Call H5Tcopy to copy a datatype
  * INPUTS
  *      type_id - identifier of the datatype to be copied
  * OUTPUTS
@@ -190,9 +190,9 @@ nh5tcopy_c ( hid_t_f *type_id , hid_t_f *new_type_id)
 
 /****if* H5Tf/h5tequal_c
  * NAME
- *        h5tequal_c
+ *  h5tequal_c
  * PURPOSE
- *     Call H5Tequal to copy a datatype
+ *  Call H5Tequal to copy a datatype
  * INPUTS
  *      type1_id - datatype identifier
  *              type2_id - datatype identifier
@@ -289,9 +289,9 @@ nh5tget_class_c ( hid_t_f *type_id , int_f *classtype)
 
 /****if* H5Tf/h5tget_order_c
  * NAME
- *        h5tget_order_c
+ *  h5tget_order_c
  * PURPOSE
- *     Call H5Tget_order to determine byte order
+ *  Call H5Tget_order to determine byte order
  * INPUTS
  *      type_id - identifier of the dataspace
  * OUTPUTS
@@ -333,9 +333,9 @@ nh5tget_order_c ( hid_t_f *type_id , int_f *order)
 
 /****if* H5Tf/h5tset_order_c
  * NAME
- *        h5tset_order_c
+ *  h5tset_order_c
  * PURPOSE
- *     Call H5Tset_order to set byte order
+ *  Call H5Tset_order to set byte order
  * INPUTS
  *      type_id - identifier of the dataspace
  *              order; possible values are:
@@ -374,9 +374,9 @@ nh5tset_order_c ( hid_t_f *type_id , int_f *order)
 
 /****if* H5Tf/h5tget_size_c
  * NAME
- *        h5tget_size_c
+ *  h5tget_size_c
  * PURPOSE
- *     Call H5Tget_size to get size of the datatype
+ *  Call H5Tget_size to get size of the datatype
  * INPUTS
  *      type_id - identifier of the dataspace
  * OUTPUTS
@@ -409,9 +409,9 @@ nh5tget_size_c ( hid_t_f *type_id , size_t_f *size)
 
 /****if* H5Tf/h5tset_size_c
  * NAME
- *        h5tset_size_c
+ *  h5tset_size_c
  * PURPOSE
- *     Call H5Tget_size to get size of the datatype
+ *  Call H5Tget_size to get size of the datatype
  * INPUTS
  *      type_id - identifier of the dataspace
  * OUTPUTS
@@ -445,9 +445,9 @@ nh5tset_size_c ( hid_t_f *type_id , size_t_f *size)
 
 /****if* H5Tf/h5tget_precision_c
  * NAME
- *        h5tget_precision_c
+ *  h5tget_precision_c
  * PURPOSE
- *     Call H5Tget_precision to get precision of the datatype
+ *  Call H5Tget_precision to get precision of the datatype
  * INPUTS
  *      type_id - identifier of the dataspace
  * OUTPUTS
@@ -480,9 +480,9 @@ nh5tget_precision_c ( hid_t_f *type_id , size_t_f *precision)
 
 /****if* H5Tf/h5tset_precision_c
  * NAME
- *        h5tset_precision_c
+ *  h5tset_precision_c
  * PURPOSE
- *     Call H5Tset_precision to set precision of the datatype
+ *  Call H5Tset_precision to set precision of the datatype
  * INPUTS
  *      type_id - identifier of the dataspace
  *              precision -  number of significant bits
@@ -515,9 +515,9 @@ nh5tset_precision_c ( hid_t_f *type_id , size_t_f *precision)
 
 /****if* H5Tf/h5tget_offset_c
  * NAME
- *        h5tget_offset_c
+ *  h5tget_offset_c
  * PURPOSE
- *     Call H5Tget_offset to get bit offset of the first
+ *  Call H5Tget_offset to get bit offset of the first
  *              significant bit of the datatype
  * INPUTS
  *      type_id - identifier of the dataspace
@@ -552,9 +552,9 @@ nh5tget_offset_c ( hid_t_f *type_id , size_t_f *offset)
 
 /****if* H5Tf/h5tset_offset_c
  * NAME
- *        h5tset_offset_c
+ *  h5tset_offset_c
  * PURPOSE
- *     Call H5Tset_offset to set bit offset of the first
+ *  Call H5Tset_offset to set bit offset of the first
  *              significant bit of the datatype
  * INPUTS
  *      type_id - identifier of the dataspace
@@ -588,9 +588,9 @@ nh5tset_offset_c ( hid_t_f *type_id , size_t_f *offset)
 
 /****if* H5Tf/h5tget_pad_c
  * NAME
- *        h5tget_pad_c
+ *  h5tget_pad_c
  * PURPOSE
- *     Call H5Tget_pad to get the padding type of the least and
+ *  Call H5Tget_pad to get the padding type of the least and
  *              most-significant bit padding
  *
  * INPUTS
@@ -629,11 +629,11 @@ nh5tget_pad_c ( hid_t_f *type_id , int_f * lsbpad, int_f * msbpad)
 
 /****if* H5Tf/h5tset_pad_c
  * NAME
- *        h5tset_pad_c
+ *  h5tset_pad_c
  * INPUTS
  *      type_id - identifier of the dataspace
  * PURPOSE
- *     Call H5Tset_pad to set the padding type of the least and
+ *  Call H5Tset_pad to set the padding type of the least and
  *              most-significant bit padding
  *
  * INPUTS
@@ -670,9 +670,9 @@ nh5tset_pad_c ( hid_t_f *type_id, int_f * lsbpad, int_f* msbpad )
 
 /****if* H5Tf/h5tget_sign_c
  * NAME
- *        h5tget_sign_c
+ *  h5tget_sign_c
  * PURPOSE
- *     Call H5Tget_sign to get sign type for an integer type
+ *  Call H5Tget_sign to get sign type for an integer type
  * INPUTS
  *      type_id - identifier of the dataspace
  * OUTPUTS
@@ -705,9 +705,9 @@ nh5tget_sign_c ( hid_t_f *type_id , int_f *sign)
 
 /****if* H5Tf/h5tset_sign_c
  * NAME
- *        h5tset_sign_c
+ *  h5tset_sign_c
  * PURPOSE
- *     Call H5Tset_sign to set sign type for an integer type
+ *  Call H5Tset_sign to set sign type for an integer type
  * INPUTS
  *      type_id - identifier of the dataspace
  *              sign - sign type for an integer typ
@@ -741,9 +741,9 @@ nh5tset_sign_c ( hid_t_f *type_id , int_f* sign)
 
 /****if* H5Tf/h5tget_fields_c
  * NAME
- *        h5tget_fields_c
+ *  h5tget_fields_c
  * PURPOSE
- *     Call H5Tget_fields to get floating point datatype
+ *  Call H5Tget_fields to get floating point datatype
  *              bit field information
  * INPUTS
  *      type_id - identifier of the dataspace
@@ -785,9 +785,9 @@ nh5tget_fields_c ( hid_t_f *type_id , size_t_f *spos, size_t_f *epos, size_t_f*
 
 /****if* H5Tf/h5tset_fields_c
  * NAME
- *        h5tset_fields_c
+ *  h5tset_fields_c
  * PURPOSE
- *     Call H5Tset_fields to set floating point datatype
+ *  Call H5Tset_fields to set floating point datatype
  *              bit field information
  * INPUTS
  *      type_id - identifier of the dataspace
@@ -829,9 +829,9 @@ nh5tset_fields_c ( hid_t_f *type_id, size_t_f *spos, size_t_f *epos, size_t_f* e
 
 /****if* H5Tf/h5tget_ebias_c
  * NAME
- *        h5tget_ebias_c
+ *  h5tget_ebias_c
  * PURPOSE
- *     Call H5Tget_ebias to get  exponent bias of a
+ *  Call H5Tget_ebias to get  exponent bias of a
  *              floating-point type of the datatype
  * INPUTS
  *      type_id - identifier of the dataspace
@@ -866,9 +866,9 @@ nh5tget_ebias_c ( hid_t_f *type_id , size_t_f *ebias)
 
 /****if* H5Tf/h5tset_ebias_c
  * NAME
- *        h5tset_ebias_c
+ *  h5tset_ebias_c
  * PURPOSE
- *     Call H5Tset_ebias to set exponent bias of a
+ *  Call H5Tset_ebias to set exponent bias of a
  *              floating-point type of the datatype
  * INPUTS
  *      type_id - identifier of the dataspace
@@ -903,9 +903,9 @@ nh5tset_ebias_c ( hid_t_f *type_id , size_t_f *ebias)
 
 /****if* H5Tf/h5tget_norm_c
  * NAME
- *        h5tget_norm_c
+ *  h5tget_norm_c
  * PURPOSE
- *     Call H5Tget_norm to get mantissa normalization
+ *  Call H5Tget_norm to get mantissa normalization
  *              of a floating-point datatype
  * INPUTS
  *      type_id - identifier of the dataspace
@@ -940,9 +940,9 @@ nh5tget_norm_c ( hid_t_f *type_id , int_f *norm)
 
 /****if* H5Tf/h5tset_norm_c
  * NAME
- *        h5tset_norm_c
+ *  h5tset_norm_c
  * PURPOSE
- *     Call H5Tset_norm to set mantissa normalization of
+ *  Call H5Tset_norm to set mantissa normalization of
  *              floating-point type of the datatype
  * INPUTS
  *      type_id - identifier of the dataspace
@@ -977,9 +977,9 @@ nh5tset_norm_c ( hid_t_f *type_id , int_f *norm)
 
 /****if* H5Tf/h5tget_inpad_c
  * NAME
- *        h5tget_inpad_c
+ *  h5tget_inpad_c
  * PURPOSE
- *     Call H5Tget_inpad to get the padding type for
+ *  Call H5Tget_inpad to get the padding type for
  *              unused bits in floating-point datatypes
  *
  * INPUTS
@@ -1016,11 +1016,11 @@ nh5tget_inpad_c ( hid_t_f *type_id , int_f * padtype)
 
 /****if* H5Tf/h5tset_inpad_c
  * NAME
- *        h5tset_inpad_c
+ *  h5tset_inpad_c
  * INPUTS
  *      type_id - identifier of the dataspace
  * PURPOSE
- *     Call H5Tset_inpad to set the padding type
+ *  Call H5Tset_inpad to set the padding type
  *              unused bits in floating-point datatype
  *
  * INPUTS
@@ -1057,9 +1057,9 @@ nh5tset_inpad_c ( hid_t_f *type_id, int_f * padtype)
 
 /****if* H5Tf/h5tget_cset_c
  * NAME
- *        h5tget_cset_c
+ *  h5tget_cset_c
  * PURPOSE
- *     Call H5Tget_cset to get character set
+ *  Call H5Tget_cset to get character set
  *              type of a string datatype
  *
  * INPUTS
@@ -1095,11 +1095,11 @@ nh5tget_cset_c ( hid_t_f *type_id , int_f * cset)
 
 /****if* H5Tf/h5tset_cset_c
  * NAME
- *        h5tset_cset_c
+ *  h5tset_cset_c
  * INPUTS
  *      type_id - identifier of the dataspace
  * PURPOSE
- *     Call H5Tset_cset to set character set
+ *  Call H5Tset_cset to set character set
  *              type of a string datatype
  *
  * INPUTS
@@ -1135,9 +1135,9 @@ nh5tset_cset_c ( hid_t_f *type_id, int_f * cset)
 
 /****if* H5Tf/h5tget_strpad_c
  * NAME
- *        h5tget_strpad_c
+ *  h5tget_strpad_c
  * PURPOSE
- *     Call H5Tget_strpad to get string padding method
+ *  Call H5Tget_strpad to get string padding method
  *              for a string datatype
  * INPUTS
  *      type_id - identifier of the dataspace
@@ -1171,11 +1171,11 @@ nh5tget_strpad_c ( hid_t_f *type_id , int_f * strpad)
 
 /****if* H5Tf/h5tset_strpad_c
  * NAME
- *        h5tset_strpad_c
+ *  h5tset_strpad_c
  * INPUTS
  *      type_id - identifier of the dataspace
  * PURPOSE
- *     Call H5Tset_strpad to set string padding method
+ *  Call H5Tset_strpad to set string padding method
  *              for a string datatype
  *
  * INPUTS
@@ -1211,9 +1211,9 @@ nh5tset_strpad_c ( hid_t_f *type_id, int_f * strpad)
 
 /****if* H5Tf/h5tget_nmembers_c
  * NAME
- *        h5tget_nmembers_c
+ *  h5tget_nmembers_c
  * PURPOSE
- *     Call H5Tget_nmembers to get number of fields
+ *  Call H5Tget_nmembers to get number of fields
  *              in a compound datatype
  * INPUTS
  *      type_id - identifier of the dataspace
@@ -1246,9 +1246,9 @@ nh5tget_nmembers_c ( hid_t_f *type_id , int_f * num_members)
 
 /****if* H5Tf/h5tget_member_name_c
  * NAME
- *        h5tget_member_name_c
+ *  h5tget_member_name_c
  * PURPOSE
- *     Call H5Tget_member_name to get name
+ *  Call H5Tget_member_name to get name
  *              of a compound datatype
  * INPUTS
  *      type_id - identifier of the dataspace
@@ -1287,9 +1287,9 @@ nh5tget_member_name_c ( hid_t_f *type_id ,int_f* idx, _fcd member_name, int_f *n
 }
 /****if* H5Tf/h5tget_member_index_c
  * NAME
- *        h5tget_member_index_c
+ *  h5tget_member_index_c
  * PURPOSE
- *     Call H5Tget_member_index to get an index of
+ *  Call H5Tget_member_index to get an index of
  *              the specified datatype filed or member.
  * INPUTS
  *      type_id - datatype identifier
@@ -1301,7 +1301,7 @@ nh5tget_member_name_c ( hid_t_f *type_id ,int_f* idx, _fcd member_name, int_f *n
  *     0 on success, -1 on failure
  * AUTHOR
  *  Elena Pourmal
- *              Thursday, September 26, 2002
+ *  Thursday, September 26, 2002
  * HISTORY
  *
  * SOURCE
@@ -1312,15 +1312,13 @@ nh5tget_member_index_c (hid_t_f *type_id, _fcd name, int_f *namelen, int_f *idx)
 {
      int ret_value = -1;
      char *c_name;
-     size_t c_namelen;
      hid_t c_type_id;
      int c_index;
 
      /*
       * Convert FORTRAN name to C name
       */
-     c_namelen = *namelen;
-     c_name = (char *)HD5f2cstring(name, c_namelen);
+     c_name = (char *)HD5f2cstring(name, (size_t)*namelen);
      if (c_name == NULL) return ret_value;
 
      /*
@@ -1340,9 +1338,9 @@ DONE:
 
 /****if* H5Tf/h5tget_member_offset_c
  * NAME
- *        h5tget_member_offset_c
+ *  h5tget_member_offset_c
  * PURPOSE
- *     Call H5Tget_member_offset to get byte offset of the
+ *  Call H5Tget_member_offset to get byte offset of the
  *              beginning of a field within a compound datatype with
  *              respect to the beginning of the compound data type datum
  * INPUTS
@@ -1367,12 +1365,8 @@ nh5tget_member_offset_c ( hid_t_f *type_id ,int_f* member_no, size_t_f * offset)
 {
   int ret_value = -1;
   size_t c_offset;
-  hid_t c_type_id;
-  unsigned c_member_no;
 
-  c_type_id = *type_id;
-  c_member_no = *member_no;
-  c_offset = H5Tget_member_offset(c_type_id, c_member_no);
+  c_offset = H5Tget_member_offset((hid_t)*type_id, (unsigned)*member_no);
   *offset = (size_t_f)c_offset;
   ret_value = 0;
   return ret_value;
@@ -1380,9 +1374,9 @@ nh5tget_member_offset_c ( hid_t_f *type_id ,int_f* member_no, size_t_f * offset)
 
 /****if* H5Tf/h5tget_array_dims_c
  * NAME
- *        h5tget_array_dims_c
+ *  h5tget_array_dims_c
  * PURPOSE
- *     Call H5Tget_array_dims2 to get
+ *  Call H5Tget_array_dims2 to get
  *              dimensions of array datatype
  * INPUTS
  *      type_id - identifier of the array datatype
@@ -1423,9 +1417,9 @@ DONE:
 
 /****if* H5Tf/h5tget_array_ndims_c
  * NAME
- *        h5tget_array_ndims_c
+ *  h5tget_array_ndims_c
  * PURPOSE
- *     Call H5Tget_array_ndims to get number
+ *  Call H5Tget_array_ndims to get number
  *              of dimensions of array datatype
  * INPUTS
  *      type_id - identifier of the array datatype
@@ -1460,9 +1454,9 @@ nh5tget_array_ndims_c ( hid_t_f *type_id , int_f * ndims)
 
 /****if* H5Tf/h5tget_super_c
  * NAME
- *        h5tget_super_c
+ *  h5tget_super_c
  * PURPOSE
- *     Call H5Tget_super to get base datatype from which
+ *  Call H5Tget_super to get base datatype from which
  *              datatype was derived
  * INPUTS
  *      type_id - identifier of the array datatype
@@ -1498,9 +1492,9 @@ nh5tget_super_c ( hid_t_f *type_id , hid_t_f *base_type_id)
 
 /****if* H5Tf/h5tget_member_type_c
  * NAME
- *        h5tget_member_type_c
+ *  h5tget_member_type_c
  * PURPOSE
- *     Call H5Tget_member_type to get the identifier of a copy of
+ *  Call H5Tget_member_type to get the identifier of a copy of
  *              the datatype of the field
  * INPUTS
  *      type_id - identifier of the datatype
@@ -1511,7 +1505,7 @@ nh5tget_super_c ( hid_t_f *type_id , hid_t_f *base_type_id)
  *     0 on success, -1 on failure
  * AUTHOR
  *  XIANGYANG SU
- *              Thursday, February 3, 2000
+ *  Thursday, February 3, 2000
  * HISTORY
  *
  * SOURCE
@@ -1522,12 +1516,8 @@ nh5tget_member_type_c ( hid_t_f *type_id ,int_f* field_idx, hid_t_f * datatype)
 /******/
 {
   int ret_value = -1;
-  hid_t c_type_id;
-  unsigned c_field_idx;
 
-  c_type_id = *type_id;
-  c_field_idx = *field_idx;
-  *datatype = (hid_t_f)H5Tget_member_type(c_type_id, c_field_idx);
+  *datatype = (hid_t_f)H5Tget_member_type((hid_t)*type_id, (unsigned)*field_idx);
   if(*datatype < 0) return ret_value;
 
   ret_value = 0;
@@ -1537,9 +1527,9 @@ nh5tget_member_type_c ( hid_t_f *type_id ,int_f* field_idx, hid_t_f * datatype)
 
 /****if* H5Tf/h5tcreate_c
  * NAME
- *        h5tcreate_c
+ *  h5tcreate_c
  * PURPOSE
- *     Call H5Tcreate to create a datatype
+ *  Call H5Tcreate to create a datatype
  * INPUTS
  *      cls - class type
  *     size - size of the class memeber
@@ -1573,20 +1563,20 @@ nh5tcreate_c(int_f *cls, size_t_f *size, hid_t_f *type_id)
 
 /****if* H5Tf/h5tinsert_c
  * NAME
- *        h5tinsert_c
+ *  h5tinsert_c
  * PURPOSE
- *     Call H5Tinsert to adds another member to the compound datatype
+ *  Call H5Tinsert to adds another member to the compound datatype
  * INPUTS
- *      type_id - identifier of the datatype
- *              name  - Name of the field to insert
- *              namelen - length of the name
- *              offset - Offset in memory structure of the field to insert
- *              field_id - datatype identifier of the new member
+ *  type_id  - identifier of the datatype
+ *  name     - Name of the field to insert
+ *  namelen - length of the name
+ *  offset   - Offset in memory structure of the field to insert
+ *  field_id - datatype identifier of the new member
  * RETURNS
- *     0 on success, -1 on failure
+ *  0 on success, -1 on failure
  * AUTHOR
  *  XIANGYANG SU
- *              Thursday, February 3, 2000
+ *  Thursday, February 3, 2000
  * HISTORY
  *
  * SOURCE
@@ -1597,21 +1587,14 @@ nh5tinsert_c(hid_t_f *type_id, _fcd name, int_f* namelen, size_t_f *offset, hid_
 /******/
 {
   int ret_value = -1;
-  hid_t c_type_id;
-  hid_t c_field_id;
   char* c_name;
-  size_t c_namelen;
-  size_t c_offset;
   herr_t error;
 
-  c_offset =(size_t) *offset;
-  c_namelen = *namelen;
-  c_name = (char *)HD5f2cstring(name, c_namelen);
+  c_name = (char *)HD5f2cstring(name, (size_t)*namelen);
   if (c_name == NULL) return ret_value;
 
-  c_type_id = *type_id;
-  c_field_id = *field_id;
-  error = H5Tinsert(c_type_id, c_name, c_offset, c_field_id);
+  error = H5Tinsert((hid_t)*type_id, c_name, (size_t)*offset, (hid_t)*field_id);
+
   HDfree(c_name);
   if(error < 0) return ret_value;
   ret_value = 0;
@@ -1621,18 +1604,18 @@ nh5tinsert_c(hid_t_f *type_id, _fcd name, int_f* namelen, size_t_f *offset, hid_
 
 /****if* H5Tf/h5tpack_c
  * NAME
- *        h5tpack_c
+ *  h5tpack_c
  * PURPOSE
- *     Call H5Tpack tor ecursively remove padding from
- *              within a compound datatype to make it more efficient
- *              (space-wise) to store that data
+ *  Call H5Tpack tor ecursively remove padding from
+ *  within a compound datatype to make it more efficient
+ *  (space-wise) to store that data
  * INPUTS
- *      type_id - identifier of the datatype
+ *  type_id - identifier of the datatype
  * RETURNS
- *     0 on success, -1 on failure
+ *  0 on success, -1 on failure
  * AUTHOR
  *  XIANGYANG SU
- *              Thursday, February 3, 2000
+ *  Thursday, February 3, 2000
  * HISTORY
  *
  * SOURCE
@@ -1656,9 +1639,9 @@ nh5tpack_c(hid_t_f * type_id)
 
 /****if* H5Tf/h5tarray_create_c
  * NAME
- *        h5tarray_create_c
+ *  h5tarray_create_c
  * PURPOSE
- *     Call H5Tarray_create2 to create array datatype
+ *  Call H5Tarray_create2 to create array datatype
  * INPUTS
  *      base_id - identifier of array base datatype
  *              rank - array's rank
@@ -1668,7 +1651,7 @@ nh5tpack_c(hid_t_f * type_id)
  *     0 on success, -1 on failure
  * AUTHOR
  *  Elena Pourmal
- *              Thursday, November 16, 2000
+ *  Thursday, November 16, 2000
  * HISTORY
  *
  * SOURCE
@@ -1687,7 +1670,7 @@ nh5tarray_create_c(hid_t_f * base_id, int_f *rank, hsize_t_f* dims, hid_t_f* typ
      * Transpose dimension arrays because of C-FORTRAN storage order
      */
     for(u = 0; u < (unsigned)*rank ; u++)
-        c_dims[u] =  (hsize_t)dims[(*rank - u) - 1];
+      c_dims[u] =  (hsize_t)dims[((unsigned)*rank - u) - 1];
 
     if((c_type_id = H5Tarray_create2((hid_t)*base_id, (unsigned)*rank, c_dims)) < 0)
         goto DONE;
@@ -1702,19 +1685,19 @@ DONE:
 
 /****if* H5Tf/h5tenum_create_c
  * NAME
- *        h5tenum_create_c
+ *  h5tenum_create_c
  * PURPOSE
- *     Call H5Tenum_create to create a new enumeration datatype
+ *  Call H5Tenum_create to create a new enumeration datatype
  * INPUTS
- *      parent_id - Datatype identifier for the base datatype
+ *  parent_id - Datatype identifier for the base datatype
  * OUTPUTS
- *     new_type_id - datatype identifier for the new
- *                            enumeration datatype
+ *  new_type_id - datatype identifier for the new
+ *                enumeration datatype
  * RETURNS
- *     0 on success, -1 on failure
+ *  0 on success, -1 on failure
  * AUTHOR
  *  Xiangyang Su
- *              Tuesday, February 15, 1999
+ *  Tuesday, February 15, 1999
  * HISTORY
  *
  * SOURCE
@@ -1725,11 +1708,9 @@ nh5tenum_create_c ( hid_t_f *parent_id , hid_t_f *new_type_id)
 /******/
 {
   int ret_value = 0;
-  hid_t c_parent_id;
   hid_t c_new_type_id;
 
-  c_parent_id = *parent_id;
-  c_new_type_id = H5Tenum_create(c_parent_id);
+  c_new_type_id = H5Tenum_create((hid_t)*parent_id);
   if ( c_new_type_id < 0  ) ret_value = -1;
 
   *new_type_id = (hid_t_f)c_new_type_id;
@@ -1738,21 +1719,23 @@ nh5tenum_create_c ( hid_t_f *parent_id , hid_t_f *new_type_id)
 
 /****if* H5Tf/h5tenum_insert_c
  * NAME
- *        h5tenum_insert_c
+ *  h5tenum_insert_c
  * PURPOSE
- *     Call H5Tenum_insert to insert a new enumeration datatype member.
+ *  Call H5Tenum_insert to insert a new enumeration datatype member.
  * INPUTS
- *      type_id - identifier of the datatype
- *              name  - Name of  the new member
- *              namelen - length of the name
- *              value - value of the new member
+ *  type_id - identifier of the datatype
+ *  name    - Name of  the new member
+ *  namelen - length of the name
+ *  value   - value of the new member
  * RETURNS
- *     0 on success, -1 on failure
+ *  0 on success, -1 on failure
  * AUTHOR
  *  XIANGYANG SU
- *              Thursday, February 3, 2000
+ *  Thursday, February 3, 2000
  * HISTORY
- *
+ *  'value' is no longer cast into an int. If the user passes in an 8 byte integer then
+ *  it should not be cast to an int (which might be 4 bytes). Instead the value
+ *  is written as the size of an int_f.
  * SOURCE
 */
 
@@ -1761,19 +1744,16 @@ nh5tenum_insert_c(hid_t_f *type_id, _fcd name, int_f* namelen, int_f* value)
 /******/
 {
   int ret_value = -1;
-  hid_t c_type_id;
   char* c_name;
-  size_t c_namelen;
-  int_f c_value;
   herr_t error;
+  int_f c_value;
 
-  c_namelen = *namelen;
-  c_name = (char *)HD5f2cstring(name, c_namelen);
+  c_name = (char *)HD5f2cstring(name, (size_t)*namelen);
   if (c_name == NULL) return ret_value;
 
-  c_type_id = (hid_t)*type_id;
-  c_value = (int)*value;
-  error = H5Tenum_insert(c_type_id, c_name, &c_value);
+  c_value = *value;
+  error = H5Tenum_insert((hid_t)*type_id, c_name, &c_value);
+
   HDfree(c_name);
   if(error < 0) return ret_value;
 
@@ -1784,9 +1764,9 @@ nh5tenum_insert_c(hid_t_f *type_id, _fcd name, int_f* namelen, int_f* value)
 
 /****if* H5Tf/h5tenum_nameof_c
  * NAME
- *        h5tenum_nameof_c
+ *  h5tenum_nameof_c
  * PURPOSE
- *     Call H5Tenum_nameof to find the symbol name that corresponds to
+ *  Call H5Tenum_nameof to find the symbol name that corresponds to
  *              the specified value of the enumeration datatype type
  * INPUTS
  *      type_id - identifier of the datatype
@@ -1828,9 +1808,9 @@ nh5tenum_nameof_c(hid_t_f *type_id, int_f* value, _fcd name, size_t_f* namelen)
 
 /****if* H5Tf/h5tenum_valueof_c
  * NAME
- *        h5tenum_valueof_c
+ *  h5tenum_valueof_c
  * PURPOSE
- *     Call H5Tenum_valueof to find the value of that corresponds to
+ *  Call H5Tenum_valueof to find the value of that corresponds to
  *              the specified name of the enumeration datatype type
  * INPUTS
  *      type_id - identifier of the datatype
@@ -1852,16 +1832,12 @@ nh5tenum_valueof_c(hid_t_f *type_id, _fcd name, int_f* namelen, int_f* value)
 /******/
 {
   int ret_value = -1;
-  hid_t c_type_id;
   char* c_name;
-  size_t c_namelen;
   herr_t error;
-  c_namelen = *namelen;
-  c_name = (char *)HD5f2cstring(name, c_namelen);
+  c_name = (char *)HD5f2cstring(name, (size_t)*namelen);
   if (c_name == NULL) return ret_value;
 
-  c_type_id = *type_id;
-  error = H5Tenum_valueof(c_type_id, c_name, value);
+  error = H5Tenum_valueof((hid_t)*type_id, c_name, value);
   HDfree(c_name);
 
   if(error < 0) return ret_value;
@@ -1872,9 +1848,9 @@ nh5tenum_valueof_c(hid_t_f *type_id, _fcd name, int_f* namelen, int_f* value)
 
 /****if* H5Tf/h5tget_member_value_c
  * NAME
- *        h5tget_member_value_c
+ *  h5tget_member_value_c
  * PURPOSE
- *     Call H5Tget_member_value to get the value of an
+ *  Call H5Tget_member_value to get the value of an
  *              enumeration datatype member
  * INPUTS
  *      type_id - identifier of the datatype
@@ -1895,14 +1871,10 @@ nh5tget_member_value_c(hid_t_f *type_id, int_f* member_no, int_f* value)
 /******/
 {
   int ret_value = -1;
-  hid_t c_type_id;
-  unsigned c_member_no;
   int c_value;
   herr_t error;
 
-  c_type_id = *type_id;
-  c_member_no = *member_no;
-  error = H5Tget_member_value(c_type_id, c_member_no, &c_value);
+  error = H5Tget_member_value((hid_t)*type_id, (unsigned)*member_no, &c_value);
   if(error < 0) return ret_value;
 
   *value = (int_f)c_value;
@@ -1912,11 +1884,11 @@ nh5tget_member_value_c(hid_t_f *type_id, int_f* member_no, int_f* value)
 
 /****if* H5Tf/h5tset_tag_c
  * NAME
- *        h5tset_tag_c
+ *  h5tset_tag_c
  * INPUTS
  *      type_id - identifier of the dataspace
  * PURPOSE
- *     Call H5Tset_tag to set an opaque datatype tag
+ *  Call H5Tset_tag to set an opaque datatype tag
  * INPUTS
  *      type_id - identifier of the dataspace
  *              tag -  Unique ASCII string with which the opaque
@@ -1936,16 +1908,12 @@ nh5tset_tag_c(hid_t_f* type_id, _fcd tag, int_f* namelen)
 /******/
 {
   int ret_value = -1;
-  hid_t c_type_id;
   herr_t status;
   char* c_tag;
-  size_t c_namelen;
 
-  c_namelen = *namelen;
-  c_tag = (char *)HD5f2cstring(tag, c_namelen);
+  c_tag = (char *)HD5f2cstring(tag, (size_t)*namelen);
 
-  c_type_id = *type_id;
-  status = H5Tset_tag(c_type_id, c_tag);
+  status = H5Tset_tag((hid_t)*type_id, c_tag);
   HDfree(c_tag);
   if ( status < 0 ) return ret_value;
 
@@ -1955,7 +1923,7 @@ nh5tset_tag_c(hid_t_f* type_id, _fcd tag, int_f* namelen)
 
 /****if* H5Tf/h5tget_tag_c
  * NAME
- *        h5tget_tag_c
+ *  h5tget_tag_c
  * PURPOSE
  *  Call H5Tset_tag to set an opaque datatype tag
  * INPUTS
@@ -1993,9 +1961,9 @@ nh5tget_tag_c(hid_t_f* type_id, _fcd tag, size_t_f* tag_size, int_f* taglen)
 }
 /****if* H5Tf/h5tvlen_create_c
  * NAME
- *        h5tvlen_create_c
+ *  h5tvlen_create_c
  * PURPOSE
- *     Call H5Tvlen_create to create VL dtatype
+ *  Call H5Tvlen_create to create VL dtatype
  * INPUTS
  *      type_id - identifier of the base datatype
  * OUTPUTS
@@ -2026,9 +1994,9 @@ nh5tvlen_create_c(hid_t_f* type_id, hid_t_f *vltype_id)
 }
 /****if* H5Tf/h5tis_variable_str_c
  * NAME
- *        h5tis_variable_str_c
+ *  h5tis_variable_str_c
  * PURPOSE
- *     Call H5Tis_variable_str to detrmine if the datatype
+ *  Call H5Tis_variable_str to detrmine if the datatype
  *              is a variable string.
  * INPUTS
  *      type_id - identifier of the dataspace
@@ -2061,9 +2029,9 @@ nh5tis_variable_str_c ( hid_t_f *type_id , int_f *flag )
 }
 /****if* H5Tf/h5tget_member_class_c
  * NAME
- *        h5tget_member_class_c
+ *  h5tget_member_class_c
  * PURPOSE
- *     Call H5Tget_member_class to detrmine ithe class of the compound
+ *  Call H5Tget_member_class to detrmine ithe class of the compound
  *		datatype member
  * INPUTS
  *      type_id - identifier of the dataspace
@@ -2101,9 +2069,9 @@ nh5tget_member_class_c ( hid_t_f *type_id ,  int_f *member_no, int_f *cls )
 
 /****if* H5Tf/h5tcommit_anon_c
  * NAME
- *        h5tcommit_anon_c
+ *  h5tcommit_anon_c
  * PURPOSE
- *     Call H5Tcommit_anon
+ *  Call H5Tcommit_anon
  * INPUTS
  *      loc_id - file or group identifier
  *              dtype_id - dataset identifier
@@ -2137,9 +2105,9 @@ nh5tcommit_anon_c(hid_t_f *loc_id, hid_t_f *dtype_id,
 
 /****if* H5Tf/h5tcommitted_c
  * NAME
- *        h5tcommitted_c
+ *  h5tcommitted_c
  * PURPOSE
- *     Call H5Tcommitted
+ *  Call H5Tcommitted
  *              dtype_id - dataset identifier
  * RETURNS
  *     a positive value, for TRUE, if the datatype has been committed,
@@ -2168,9 +2136,9 @@ nh5tcommitted_c(hid_t_f *dtype_id)
 
 /****if* H5Tf/h5tdecode_c
  * NAME
- *        h5tdecode_c
+ *  h5tdecode_c
  * PURPOSE
- *     Call H5Tdecode
+ *  Call H5Tdecode
  * INPUTS
  *
  *		buf     - Buffer for the data space object to be decoded.
@@ -2214,9 +2182,9 @@ nh5tdecode_c ( _fcd buf, hid_t_f *obj_id )
 
 /****if* H5Tf/h5tencode_c
  * NAME
- *        h5tencode_c
+ *  h5tencode_c
  * PURPOSE
- *     Call H5Tencode
+ *  Call H5Tencode
  * INPUTS
  *
  *            obj_id - Identifier of the object to be encoded.
@@ -2284,9 +2252,9 @@ nh5tencode_c (_fcd buf, hid_t_f *obj_id, size_t_f *nalloc )
 
 /****if* H5Tf/h5tget_create_plist_c
  * NAME
- *        h5tget_create_plist_c
+ *  h5tget_create_plist_c
  * PURPOSE
- *     Call H5Tget_create_plist
+ *  Call H5Tget_create_plist
  * INPUTS
  *      dtype_id          - Datatype identifier
  * OUTPUTS
@@ -2316,9 +2284,9 @@ nh5tget_create_plist_c ( hid_t_f *dtype_id,  hid_t_f *dtpl_id)
 
 /****if* H5Tf/h5tcompiler_conv_c
  * NAME
- *        h5tcompiler_conv_c
+ *  h5tcompiler_conv_c
  * PURPOSE
- *     Call H5Tcompiler_conv
+ *  Call H5Tcompiler_conv
  * INPUTS
  *
  *              src_id - Identifier for the source datatype.
@@ -2350,9 +2318,9 @@ nh5tcompiler_conv_c ( hid_t_f *src_id, hid_t_f *dst_id, int_f *c_flag)
 }
 /****if* H5Tf/h5tget_native_type_c
  * NAME
- *        h5tget_native_type_c
+ *  h5tget_native_type_c
  * PURPOSE
- *     Call H5Tget_native_type
+ *  Call H5Tget_native_type
  * INPUTS
  *
  *              dtype_id         - Datatype identifier for the dataset datatype.
@@ -2385,9 +2353,9 @@ nh5tget_native_type_c(hid_t_f *dtype_id, int_f *direction, hid_t_f *native_dtype
 
 /****if* H5Tf/h5tconvert_c
  * NAME
- *        h5tconvert_c
+ *  h5tconvert_c
  * PURPOSE
- *     Call H5Tconvert
+ *  Call H5Tconvert
  * INPUTS
  *
  *  src_id     - Identifier for the source datatype.
@@ -2401,7 +2369,7 @@ nh5tget_native_type_c(hid_t_f *dtype_id, int_f *direction, hid_t_f *native_dtype
  *  buf        - Array containing post-conversion values.
  *
  * RETURNS
- *     0 on success, -1 on failure
+ *  0 on success, -1 on failure
  * AUTHOR
  *  M. Scot Breitenfeld
  *  December 8, 2008
@@ -2409,7 +2377,7 @@ nh5tget_native_type_c(hid_t_f *dtype_id, int_f *direction, hid_t_f *native_dtype
  * SOURCE
 */
 int_f
-nh5tconvert_c(hid_t_f *src_id, hid_t_f *dst_id, size_t_f *nelmts, void *buf, void *background, hid_t_f *plist_id)
+h5tconvert_c(hid_t_f *src_id, hid_t_f *dst_id, size_t_f *nelmts, void *buf, void *background, hid_t_f *plist_id)
 /******/
 {
   int ret_value = -1;
@@ -2421,3 +2389,44 @@ nh5tconvert_c(hid_t_f *src_id, hid_t_f *dst_id, size_t_f *nelmts, void *buf, voi
   return ret_value;
 }
 
+/****if* H5Tf/h5tenum_insert_ptr_c
+ * NAME
+ *  /h5tenum_insert_ptr_c
+ * PURPOSE
+ *  Calls H5Tenum_insert
+ * INPUTS
+ *  type_id  - Datatype identifier for the enumeration datatype.
+ *  name     - Datatype identifier.
+ *  value    - Pointer to the value of the new member.
+ *
+ * OUTPUTS
+ *
+ * RETURNS
+ *  0 on success, -1 on failure
+ * AUTHOR
+ *  M. Scot Breitenfeld
+ *  February 6, 2015
+ *
+ * SOURCE
+*/
+int_f
+h5tenum_insert_ptr_c(hid_t_f *type_id, _fcd name, int_f* namelen, void *value)
+/******/
+{
+  int ret_value = -1;
+  hid_t status;
+  char *c_name;
+
+  /*
+   * Convert FORTRAN name to C name
+   */
+  c_name = (char *)HD5f2cstring(name, (size_t)*namelen);
+  if (c_name == NULL) return ret_value;
+
+  status = H5Tenum_insert( (hid_t)*type_id, c_name, value);
+  if ( status < 0  ) return ret_value;
+  ret_value = 0;
+  return ret_value;
+}
+
+
diff --git a/fortran/src/H5Tff.f90 b/fortran/src/H5Tff.f90
index 0e1dbb0..4b4c0b6 100644
--- a/fortran/src/H5Tff.f90
+++ b/fortran/src/H5Tff.f90
@@ -2335,57 +2335,6 @@ CONTAINS
 
             hdferr = h5tenum_create_c(parent_id, new_type_id)
           END SUBROUTINE h5tenum_create_f
-
-!
-!****s* H5T/h5tenaum_insert_f
-!
-! NAME
-!  h5tenaum_insert_f
-!
-! PURPOSE
-!  Inserts a new enumeration datatype member.
-!
-! INPUTS
-!  type_id 	 - datatype identifier
-! OUTPUTS
-!  hdferr 	 - Returns 0 if successful and -1 if fails
-!
-! AUTHOR
-!  Elena Pourmal
-!  August 12, 1999
-!
-! HISTORY
-!  Explicit Fortran interfaces were added for
-!  called C functions (it is needed for Windows
-!  port).  March 7, 2001
-! SOURCE
-  SUBROUTINE h5tenum_insert_f(type_id,  name, value, hdferr)
-            IMPLICIT NONE
-            INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
-            CHARACTER(LEN=*), INTENT(IN) :: name  !Name of  the new member
-            INTEGER, INTENT(IN) :: value !value of the new member
-            INTEGER, INTENT(OUT) :: hdferr        ! Error code
-!*****
-            INTEGER :: namelen
-
-            INTERFACE
-              INTEGER FUNCTION h5tenum_insert_c(type_id, name, namelen, value)
-              USE H5GLOBAL
-              !DEC$IF DEFINED(HDF5F90_WINDOWS)
-              !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TENUM_INSERT_C'::h5tenum_insert_c
-              !DEC$ENDIF
-              !DEC$ATTRIBUTES reference :: name
-              INTEGER(HID_T), INTENT(IN) :: type_id
-              CHARACTER(LEN=*), INTENT(IN) :: name
-              INTEGER, INTENT(IN) :: value
-              INTEGER :: namelen
-              END FUNCTION h5tenum_insert_c
-            END INTERFACE
-
-            namelen = LEN(name)
-            hdferr = h5tenum_insert_c(type_id, name, namelen, value)
-          END SUBROUTINE h5tenum_insert_f
-
 !
 !****s* H5T/h5tenum_nameof_f
 !
diff --git a/fortran/src/H5Tff_F03.f90 b/fortran/src/H5Tff_F03.f90
index d16553a..e88eda6 100644
--- a/fortran/src/H5Tff_F03.f90
+++ b/fortran/src/H5Tff_F03.f90
@@ -47,6 +47,11 @@ MODULE H5T_PROVISIONAL
 
 !*****
 
+  INTERFACE h5tenum_insert_f
+     MODULE PROCEDURE h5tenum_insert_f03
+     MODULE PROCEDURE h5tenum_insert_f90
+  END INTERFACE
+
 CONTAINS
 
 !****s* H5T (F03)/H5Tconvert_f_F03
@@ -89,12 +94,11 @@ CONTAINS
     TYPE(C_PTR) :: background_default
 
     INTERFACE
-       INTEGER FUNCTION h5tconvert_c(src_id, dst_id, nelmts, buf, background, plist_id)
-         USE, INTRINSIC :: ISO_C_BINDING
+       INTEGER FUNCTION h5tconvert_c(src_id, dst_id, nelmts, buf, background, plist_id) &
+            BIND(C, NAME='h5tconvert_c')
+         USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr
          USE H5GLOBAL
-         !DEC$IF DEFINED(HDF5F90_WINDOWS)
-         !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TCONVERT_C'::H5Tconvert_c
-         !DEC$ENDIF
+         IMPLICIT NONE
          INTEGER(HID_T) , INTENT(IN)           :: src_id
          INTEGER(HID_T) , INTENT(IN)           :: dst_id
          INTEGER(SIZE_T), INTENT(IN)           :: nelmts
@@ -113,6 +117,108 @@ CONTAINS
     hdferr = H5Tconvert_c(src_id, dst_id, nelmts, buf, background_default, plist_id_default)
 
   END SUBROUTINE h5tconvert_f
+!
+!****s* (F03) H5T/h5tenum_insert_f90
+!
+! NAME
+!  h5tenum_insert_f
+!
+! PURPOSE
+!  Inserts a new enumeration datatype member.
+!
+! INPUTS
+!  type_id  - Datatype identifier for the enumeration datatype.
+!  name     - Datatype identifier.
+!  value    - Value of the new member.
+! OUTPUTS
+!  hdferr   - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+!  Elena Pourmal
+!  August 12, 1999
+!
+! HISTORY
+!  Explicit Fortran interfaces were added for
+!  called C functions (it is needed for Windows
+!  port).  March 7, 2001
+! SOURCE
+  SUBROUTINE h5tenum_insert_f90(type_id,  name, value, hdferr)
+    IMPLICIT NONE
+    INTEGER(HID_T), INTENT(IN) :: type_id ! Datatype identifier
+    CHARACTER(LEN=*), INTENT(IN) :: name  !Name of  the new member
+    INTEGER, INTENT(IN) :: value ! value of the new member
+    INTEGER, INTENT(OUT) :: hdferr        ! Error code
+!*****
+    INTEGER :: namelen
+    INTERFACE
+       INTEGER FUNCTION h5tenum_insert_c(type_id, name, namelen, value)
+         USE H5GLOBAL
+         !DEC$IF DEFINED(HDF5F90_WINDOWS)
+         !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TENUM_INSERT_C'::h5tenum_insert_c
+         !DEC$ENDIF
+         !DEC$ATTRIBUTES reference :: name
+         INTEGER(HID_T), INTENT(IN) :: type_id
+         CHARACTER(LEN=*), INTENT(IN) :: name
+         INTEGER, INTENT(IN) :: value
+         INTEGER :: namelen
+       END FUNCTION h5tenum_insert_c
+    END INTERFACE
+            
+    namelen = LEN(name)
+    hdferr = h5tenum_insert_c(type_id, name, namelen, value)
+  END SUBROUTINE h5tenum_insert_f90
+
+!
+!****s* (F03) H5T/h5tenum_insert_f03
+!
+! NAME
+!  h5tenum_insert_f
+!
+! PURPOSE
+!  Inserts a new enumeration datatype member.
+!
+! INPUTS
+!  type_id  - Datatype identifier for the enumeration datatype.
+!  name     - Datatype identifier.
+!  value    - Pointer to the value of the new member.
+! OUTPUTS
+!  hdferr   - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+!  M. Scot Breitenfeld
+!  February 6, 2015
+!
+! HISTORY
+!  F2003 implementation of function
+! SOURCE
+  SUBROUTINE h5tenum_insert_f03(type_id, name, value, hdferr)
+    USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr, c_char
+    USE H5GLOBAL
+    IMPLICIT NONE
+    INTEGER(HID_T)  , INTENT(IN) :: type_id
+    CHARACTER(LEN=*), INTENT(IN) :: name
+    TYPE(C_PTR)     , INTENT(IN) :: value
+    INTEGER, INTENT(OUT) :: hdferr
+!*****
+    INTEGER :: namelen
+    
+    INTERFACE
+       INTEGER FUNCTION h5tenum_insert_ptr_c(type_id, name, namelen, value) &
+            BIND(C, NAME='h5tenum_insert_ptr_c')
+         USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr, c_char
+         USE H5GLOBAL
+         IMPLICIT NONE
+         INTEGER(HID_T)  , INTENT(IN) :: type_id
+         CHARACTER(KIND=C_CHAR), DIMENSION(*), INTENT(IN) :: name
+         INTEGER :: namelen
+         TYPE(C_PTR), VALUE :: value
+       END FUNCTION h5tenum_insert_ptr_c
+    END INTERFACE
+            
+    namelen = LEN(name)
+    hdferr = h5tenum_insert_ptr_c(type_id, name, namelen, value)
+  END SUBROUTINE h5tenum_insert_f03
+
 
 END MODULE H5T_PROVISIONAL
 
diff --git a/fortran/src/H5Tff_F90.f90 b/fortran/src/H5Tff_F90.f90
index a95b31f..7a9fd39 100644
--- a/fortran/src/H5Tff_F90.f90
+++ b/fortran/src/H5Tff_F90.f90
@@ -36,4 +36,61 @@
 
 MODULE H5T_PROVISIONAL
 
+  USE H5GLOBAL
+
+CONTAINS
+
+!
+!****s* H5T/h5tenum_insert_f
+!
+! NAME
+!  h5tenum_insert_f
+!
+! PURPOSE
+!  Inserts a new enumeration datatype member.
+!
+! INPUTS
+!  type_id  - Datatype identifier for the enumeration datatype.
+!  name     - Datatype identifier.
+!  value    - Value of the new member.
+! OUTPUTS
+!  hdferr   - Returns 0 if successful and -1 if fails
+!
+! AUTHOR
+!  Elena Pourmal
+!  August 12, 1999
+!
+! HISTORY
+!  Explicit Fortran interfaces were added for
+!  called C functions (it is needed for Windows
+!  port).  March 7, 2001
+! SOURCE
+  SUBROUTINE h5tenum_insert_f(type_id,  name, value, hdferr)
+    IMPLICIT NONE
+    INTEGER(HID_T), INTENT(IN) :: type_id
+    CHARACTER(LEN=*), INTENT(IN) :: name
+    INTEGER, INTENT(IN) :: value
+    INTEGER, INTENT(OUT) :: hdferr
+!*****
+    INTEGER :: namelen
+    
+    INTERFACE
+       INTEGER FUNCTION h5tenum_insert_c(type_id, name, namelen, value)
+         USE H5GLOBAL
+         !DEC$IF DEFINED(HDF5F90_WINDOWS)
+         !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TENUM_INSERT_C'::h5tenum_insert_c
+         !DEC$ENDIF
+         !DEC$ATTRIBUTES reference :: name
+         INTEGER(HID_T), INTENT(IN) :: type_id
+         CHARACTER(LEN=*), INTENT(IN) :: name
+         INTEGER, INTENT(IN) :: value
+         INTEGER :: namelen
+       END FUNCTION h5tenum_insert_c
+    END INTERFACE
+    
+    namelen = LEN(name)
+    hdferr = h5tenum_insert_c(type_id, name, namelen, value)
+  END SUBROUTINE h5tenum_insert_f
+  
+
 END MODULE H5T_PROVISIONAL
diff --git a/fortran/src/H5_f.c b/fortran/src/H5_f.c
index 05e525d..a149109 100644
--- a/fortran/src/H5_f.c
+++ b/fortran/src/H5_f.c
@@ -471,14 +471,11 @@ nh5init_flags_c( int_f *h5d_flags, size_t_f *h5d_size_flags,
 /*
  *  H5G flags
  */
-
-    h5g_flags[0] = (int_f)H5O_TYPE_UNKNOWN;
-    h5g_flags[1] = (int_f)H5O_TYPE_GROUP;
-    h5g_flags[2] = (int_f)H5O_TYPE_DATASET;
-    h5g_flags[3] = (int_f)H5O_TYPE_NAMED_DATATYPE;
-/* This value can no longer be returned and all these flags should be updated
- *      to reflect the refinements between links and objects. -QAK */
-/*      h5g_flags[4] = H5G_LINK; */
+    h5g_flags[0] = (int_f)H5O_TYPE_UNKNOWN; /* H5G_UNKNOWN is deprecated */
+    h5g_flags[1] = (int_f)H5O_TYPE_GROUP; /* H5G_GROUP is deprecated  */
+    h5g_flags[2] = (int_f)H5O_TYPE_DATASET; /* H5G_DATASET is deprecated  */
+    h5g_flags[3] = (int_f)H5O_TYPE_NAMED_DATATYPE; /* H5G_TYPE is deprecated  */
+    h5g_flags[4] = (int_f)H5L_SAME_LOC;
     h5g_flags[5] = (int_f)H5L_TYPE_ERROR;
     h5g_flags[6] = (int_f)H5L_TYPE_HARD;
     h5g_flags[7] = (int_f)H5L_TYPE_SOFT;
@@ -491,7 +488,6 @@ nh5init_flags_c( int_f *h5d_flags, size_t_f *h5d_size_flags,
 /*
  *  H5I flags
  */
-
     h5i_flags[0] = (int_f)H5I_FILE;
     h5i_flags[1] = (int_f)H5I_GROUP;
     h5i_flags[2] = (int_f)H5I_DATATYPE;
@@ -551,10 +547,15 @@ nh5init_flags_c( int_f *h5d_flags, size_t_f *h5d_size_flags,
       h5o_flags[20] = (int_f)H5O_SHMESG_MAX_NINDEXES;
       h5o_flags[21] = (int_f)H5O_SHMESG_MAX_LIST_SIZE;
 
+/* Types of objects in file */
+      h5o_flags[22] = (int_f)H5O_TYPE_UNKNOWN;	      /* Unknown object type */
+      h5o_flags[23] = (int_f)H5O_TYPE_GROUP;          /* Object is a group */
+      h5o_flags[24] = (int_f)H5O_TYPE_DATASET;        /* Object is a dataset */
+      h5o_flags[25] = (int_f)H5O_TYPE_NAMED_DATATYPE; /* Object is a named data type */
+      h5o_flags[26] = (int_f)H5O_TYPE_NTYPES;         /* Number of different object types */
 /*
  *  H5P flags
  */
-
       h5p_flags[0] = (hid_t_f)H5P_FILE_CREATE;
       h5p_flags[1] = (hid_t_f)H5P_FILE_ACCESS;
       h5p_flags[2] = (hid_t_f)H5P_DATASET_CREATE;
diff --git a/fortran/src/H5f90global.f90 b/fortran/src/H5f90global.f90
index da1837a..ca50e20 100644
--- a/fortran/src/H5f90global.f90
+++ b/fortran/src/H5f90global.f90
@@ -44,6 +44,8 @@
 MODULE H5GLOBAL
   USE H5FORTRAN_TYPES
 
+  IMPLICIT NONE
+
   ! Definitions for reference datatypes.
   ! If you change the value of these parameters, do not forget to change corresponding
   ! values in the H5f90.h file.
@@ -309,8 +311,6 @@ MODULE H5GLOBAL
   EQUIVALENCE(H5generic_flags(7), H5_ITER_DEC_F)
   EQUIVALENCE(H5generic_flags(8), H5_ITER_NATIVE_F)
   EQUIVALENCE(H5generic_flags(9), H5_ITER_N_F)
-
-
   !
   ! H5G flags declaration
   !
@@ -325,8 +325,9 @@ MODULE H5GLOBAL
   INTEGER :: H5G_GROUP_F
   INTEGER :: H5G_DATASET_F
   INTEGER :: H5G_TYPE_F
-  ! XXX: Fix problems with H5G_LINK_F! - QAK
   INTEGER :: H5G_LINK_F
+  INTEGER :: H5G_UDLINK_F
+  INTEGER :: H5G_SAME_LOC_F
   INTEGER :: H5G_LINK_ERROR_F
   INTEGER :: H5G_LINK_HARD_F
   INTEGER :: H5G_LINK_SOFT_F
@@ -335,16 +336,14 @@ MODULE H5GLOBAL
   INTEGER :: H5G_STORAGE_TYPE_COMPACT_F
   INTEGER :: H5G_STORAGE_TYPE_DENSE_F
 
-  EQUIVALENCE(H5G_flags(1), H5G_UNKNOWN_F)
-  EQUIVALENCE(H5G_flags(2), H5G_GROUP_F)
-  EQUIVALENCE(H5G_flags(3), H5G_DATASET_F)
-  EQUIVALENCE(H5G_flags(4), H5G_TYPE_F)
-  ! XXX: Fix problems with H5G_LINK_F! - QAK ! these are really H5L values -MSB-
-  EQUIVALENCE(H5G_flags(5), H5G_LINK_F)
+  EQUIVALENCE(H5G_flags(1), H5G_UNKNOWN_F) ! Unknown object type
+  EQUIVALENCE(H5G_flags(2), H5G_GROUP_F)   ! Object is a group
+  EQUIVALENCE(H5G_flags(3), H5G_DATASET_F) ! Object is a dataset
+  EQUIVALENCE(H5G_flags(4), H5G_TYPE_F)    ! Object is a named data type
+  EQUIVALENCE(H5G_flags(5), H5G_SAME_LOC_F)
   EQUIVALENCE(H5G_flags(6), H5G_LINK_ERROR_F)
   EQUIVALENCE(H5G_flags(7), H5G_LINK_HARD_F)
   EQUIVALENCE(H5G_flags(8), H5G_LINK_SOFT_F)
-  ! XXX
 
   EQUIVALENCE(H5G_flags(9), H5G_STORAGE_TYPE_UNKNOWN_F )
   EQUIVALENCE(H5G_flags(10), H5G_STORAGE_TYPE_SYMBOL_TABLE_F)
@@ -574,7 +573,7 @@ MODULE H5GLOBAL
   !
   ! H5O flags declaration
   !
-  INTEGER, PARAMETER :: H5O_FLAGS_LEN = 22
+  INTEGER, PARAMETER :: H5O_FLAGS_LEN = 27
   INTEGER :: H5o_flags(H5O_FLAGS_LEN)
   !DEC$if defined(BUILD_HDF5_DLL)
   !DEC$ATTRIBUTES DLLEXPORT :: /H5O_FLAGS/
@@ -603,6 +602,11 @@ MODULE H5GLOBAL
   INTEGER :: H5O_HDR_ALL_FLAGS_F
   INTEGER :: H5O_SHMESG_MAX_NINDEXES_F
   INTEGER :: H5O_SHMESG_MAX_LIST_SIZE_F
+  INTEGER :: H5O_TYPE_UNKNOWN_F
+  INTEGER :: H5O_TYPE_GROUP_F
+  INTEGER :: H5O_TYPE_DATASET_F
+  INTEGER :: H5O_TYPE_NAMED_DATATYPE_F
+  INTEGER :: H5O_TYPE_NTYPES_F
 
   EQUIVALENCE(h5o_flags(1) , H5O_COPY_SHALLOW_HIERARCHY_F)
   EQUIVALENCE(h5o_flags(2) , H5O_COPY_EXPAND_SOFT_LINK_F)
@@ -626,6 +630,11 @@ MODULE H5GLOBAL
   EQUIVALENCE(h5o_flags(20) , H5O_HDR_ALL_FLAGS_F)
   EQUIVALENCE(h5o_flags(21) , H5O_SHMESG_MAX_NINDEXES_F)
   EQUIVALENCE(h5o_flags(22) , H5O_SHMESG_MAX_LIST_SIZE_F)
+  EQUIVALENCE(h5o_flags(23) , H5O_TYPE_UNKNOWN_F)
+  EQUIVALENCE(h5o_flags(24) , H5O_TYPE_GROUP_F)
+  EQUIVALENCE(h5o_flags(25) , H5O_TYPE_DATASET_F)
+  EQUIVALENCE(h5o_flags(26) , H5O_TYPE_NAMED_DATATYPE_F)
+  EQUIVALENCE(h5o_flags(27) , H5O_TYPE_NTYPES_F)
 
   !
   ! H5P flags declaration
diff --git a/fortran/src/H5f90proto.h b/fortran/src/H5f90proto.h
index a0a4f64..6bde877 100644
--- a/fortran/src/H5f90proto.h
+++ b/fortran/src/H5f90proto.h
@@ -93,7 +93,6 @@ typedef struct H5O_info_t_f {
 #define nh5fget_obj_count_c       H5_FC_FUNC_(h5fget_obj_count_c, H5FGET_OBJ_COUNT_C)
 #define nh5fget_obj_ids_c         H5_FC_FUNC_(h5fget_obj_ids_c, H5FGET_OBJ_IDS_C)
 #define nh5fget_freespace_c       H5_FC_FUNC_(h5fget_freespace_c, H5FGET_FREESPACE_C)
-#define nh5fget_file_image_c      H5_FC_FUNC_(h5fget_file_image_c, H5FGET_FILE_IMAGE_C)
 #define nh5fget_name_c            H5_FC_FUNC_(h5fget_name_c, H5FGET_NAME_C)
 #define nh5fget_filesize_c        H5_FC_FUNC_(h5fget_filesize_c, H5FGET_FILESIZE_C)
 
@@ -109,7 +108,7 @@ H5_FCDLL int_f nh5fget_access_plist_c (hid_t_f *file_id, hid_t_f *access_id);
 H5_FCDLL int_f nh5fget_obj_count_c (hid_t_f *file_id, int_f *obj_type, size_t_f *obj_count);
 H5_FCDLL int_f nh5fget_obj_ids_c (hid_t_f *file_id, int_f *obj_type, size_t_f *max_objs, hid_t_f *obj_ids, size_t_f *num_objs);
 H5_FCDLL int_f nh5fget_freespace_c (hid_t_f *file_id, hssize_t_f *free_space);
-H5_FCDLL int_f nh5fget_file_image_c(hid_t_f *file_id, void *buf_ptr, size_t_f *buf_len, size_t_f *buf_req);
+H5_FCDLL int_f h5fget_file_image_c(hid_t_f *file_id, void *buf_ptr, size_t_f *buf_len, size_t_f *buf_req);
 H5_FCDLL int_f nh5fflush_c (hid_t_f *obj_id, int_f *scope);
 H5_FCDLL int_f nh5fget_name_c(hid_t_f *obj_id, size_t_f *size, _fcd buf, size_t_f *buflen);
 H5_FCDLL int_f nh5fget_filesize_c(hid_t_f *file_id, hsize_t_f *size);
@@ -276,16 +275,12 @@ H5_FCDLL int_f nh5sextent_equal_c ( hid_t_f * space1_id, hid_t_f *space2_id, hid
 #define nh5dwrite_vl_string_c       H5_FC_FUNC_(h5dwrite_vl_string_c, H5DWRITE_VL_STRING_C)
 #define nh5dread_vl_string_c        H5_FC_FUNC_(h5dread_vl_string_c, H5DREAD_VL_STRING_C)
 #define nh5dfillc_c                 H5_FC_FUNC_(h5dfillc_c, H5DFILLC_C)
-#define nh5dfill_c                  H5_FC_FUNC_(h5dfill_c, H5DFILL_C)
 #define nh5dfill_integer_c                  H5_FC_FUNC_(h5dfill_integer_c, H5DFILL_INTEGER_C)
 #define nh5dfill_real_c                  H5_FC_FUNC_(h5dfill_real_c, H5DFILL_REAL_C)
 #define nh5dfill_double_c                  H5_FC_FUNC_(h5dfill_double_c, H5DFILL_DOUBLE_C)
 #define nh5dget_space_status_c    H5_FC_FUNC_(h5dget_space_status_c, H5DGET_SPACE_STATUS_C)
 #define nh5dcreate_anon_c         H5_FC_FUNC_(h5dcreate_anon_c, H5DCREATE_ANON_C)
-#define nh5dwrite_f_c             H5_FC_FUNC_(h5dwrite_f_c, H5DWRITE_F_C)
-#define nh5dread_f_c              H5_FC_FUNC_(h5dread_f_c, H5DREAD_F_C)
 #define nh5dget_access_plist_c    H5_FC_FUNC_(h5dget_access_plist_c, H5DGET_ACCESS_PLIST_C)
-#define nh5dvlen_reclaim_c        H5_FC_FUNC_(h5dvlen_reclaim_c, H5DVLEN_RECLAIM_C)
 
 
 H5_FCDLL int_f nh5dcreate_c (hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *type_id, hid_t_f *space_id,
@@ -392,18 +387,18 @@ H5_FCDLL int_f nh5dset_extent_c ( hid_t_f *dset_id , hsize_t_f *dims);
 H5_FCDLL int_f nh5dvlen_get_max_len_c(hid_t_f *dataset_id, hid_t_f *type_id, hid_t_f *space_id, size_t_f *len);
 H5_FCDLL int_f nh5dget_storage_size_c(hid_t_f *dataset_id, hsize_t_f *size);
 H5_FCDLL int_f nh5dfillc_c(_fcd fill_value, hid_t_f *fill_type_id, hid_t_f *space_id, _fcd buf, hid_t_f *mem_type_id);
-H5_FCDLL int_f nh5dfill_c(void * fill_value, hid_t_f *fill_type_id, hid_t_f *space_id, void * buf, hid_t_f *mem_type_id);
+H5_FCDLL int_f h5dfill_c(void * fill_value, hid_t_f *fill_type_id, hid_t_f *space_id, void * buf, hid_t_f *mem_type_id);
 H5_FCDLL int_f nh5dfill_integer_c(void * fill_value, hid_t_f *fill_type_id, hid_t_f *space_id, void * buf, hid_t_f *mem_type_id);
 H5_FCDLL int_f nh5dfill_real_c(void * fill_value, hid_t_f *fill_type_id, hid_t_f *space_id, void * buf, hid_t_f *mem_type_id);
 H5_FCDLL int_f nh5dfill_double_c(void * fill_value, hid_t_f *fill_type_id, hid_t_f *space_id, void * buf, hid_t_f *mem_type_id);
 H5_FCDLL int_f nh5dget_space_status_c ( hid_t_f *dset_id, int_f *flag);
 H5_FCDLL int_f nh5dcreate_anon_c (hid_t_f *loc_id, hid_t_f *type_id, hid_t_f *space_id,
 				  hid_t_f *dcpl_id, hid_t_f *dapl_id, hid_t_f *dset_id);
-H5_FCDLL int_f nh5dwrite_f_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, 
+H5_FCDLL int_f h5dwrite_f_c (hid_t_f *dset_id, hid_t_f *mem_type_id, hid_t_f *mem_space_id, 
 				   hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf);
-H5_FCDLL int_f nh5dread_f_c ( hid_t_f *dset_id ,  hid_t_f *mem_type_id, hid_t_f *mem_space_id, 
+H5_FCDLL int_f h5dread_f_c ( hid_t_f *dset_id ,  hid_t_f *mem_type_id, hid_t_f *mem_space_id, 
 				   hid_t_f *file_space_id, hid_t_f *xfer_prp, void *buf);
-H5_FCDLL int_f nh5dvlen_reclaim_c (hid_t_f *type_id ,  hid_t_f *space_id, hid_t_f *plist_id, void *buf);
+H5_FCDLL int_f h5dvlen_reclaim_c (hid_t_f *type_id ,  hid_t_f *space_id, hid_t_f *plist_id, void *buf);
 /*
  * Functions from H5Gf.c
  */
@@ -490,7 +485,6 @@ H5_FCDLL int_f nh5gget_info_by_name_c(hid_t_f *loc_id, _fcd group_name, size_t_f
 #define nh5awritec_5_c      H5_FC_FUNC_(h5awritec_5_c, H5AWRITEC_5_C)
 #define nh5awritec_6_c      H5_FC_FUNC_(h5awritec_6_c, H5AWRITEC_6_C)
 #define nh5awritec_7_c      H5_FC_FUNC_(h5awritec_7_c, H5AWRITEC_7_C)
-#define nh5awrite_f_c       H5_FC_FUNC_(h5awrite_f_c, H5AWRITE_F_C)
 #define nh5aread_c                 H5_FC_FUNC_(h5aread_c, H5AREAD_C)
 #define nh5aread_integer_s_c        H5_FC_FUNC_(h5aread_integer_s_c, H5AREAD_INTEGER_S_C)
 #define nh5aread_integer_1_c        H5_FC_FUNC_(h5aread_integer_1_c, H5AREAD_INTEGER_1_C)
@@ -525,7 +519,6 @@ H5_FCDLL int_f nh5gget_info_by_name_c(hid_t_f *loc_id, _fcd group_name, size_t_f
 #define nh5areadc_5_c       H5_FC_FUNC_(h5areadc_5_c, H5AREADC_5_C)
 #define nh5areadc_6_c       H5_FC_FUNC_(h5areadc_6_c, H5AREADC_6_C)
 #define nh5areadc_7_c       H5_FC_FUNC_(h5areadc_7_c, H5AREADC_7_C)
-#define nh5aread_f_c        H5_FC_FUNC_(h5aread_f_c, H5AREAD_F_C)
 #define nh5aget_name_c    H5_FC_FUNC_(h5aget_name_c, H5AGET_NAME_C)
 #define nh5aopen_idx_c    H5_FC_FUNC_(h5aopen_idx_c, H5AOPEN_IDX_C)
 #define nh5aget_space_c   H5_FC_FUNC_(h5aget_space_c, H5AGET_SPACE_C)
@@ -586,7 +579,7 @@ H5_FCDLL int_f nh5awrite_double_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, voi
 H5_FCDLL int_f nh5awrite_double_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims);
 H5_FCDLL int_f nh5awrite_double_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims);
 H5_FCDLL int_f nh5awrite_double_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims);
-H5_FCDLL int_f nh5awrite_f_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf);
+H5_FCDLL int_f h5awrite_f_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf);
 H5_FCDLL int_f nh5areadc_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims);
 H5_FCDLL int_f nh5areadc_s_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims);
 H5_FCDLL int_f nh5areadc_1_c (hid_t_f *attr_id, hid_t_f *mem_type_id, _fcd buf, void *dims);
@@ -621,7 +614,7 @@ H5_FCDLL int_f nh5aread_double_4_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void
 H5_FCDLL int_f nh5aread_double_5_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims);
 H5_FCDLL int_f nh5aread_double_6_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims);
 H5_FCDLL int_f nh5aread_double_7_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf, void *dims);
-H5_FCDLL int_f nh5aread_f_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf);
+H5_FCDLL int_f h5aread_f_c (hid_t_f *attr_id, hid_t_f *mem_type_id, void *buf);
 H5_FCDLL int_f nh5aclose_c ( hid_t_f *attr_id );
 H5_FCDLL int_f nh5adelete_c (hid_t_f *obj_id, _fcd name, size_t_f *namelen);
 H5_FCDLL int_f nh5aopen_idx_c (hid_t_f *obj_id, int_f *idx, hid_t_f *attr_id);
@@ -675,7 +668,6 @@ H5_FCDLL int_f nh5arename_c( hid_t_f *loc_id,
 #define nh5topen_c         H5_FC_FUNC_(h5topen_c, H5TOPEN_C)
 #define nh5tcommit_c       H5_FC_FUNC_(h5tcommit_c, H5TCOMMIT_C)
 #define nh5tcommitted_c    H5_FC_FUNC_(h5tcommitted_c, H5TCOMMITTED_C)
-#define nh5tconvert_c      H5_FC_FUNC_(h5tconvert_c, H5TCONVERT_C)
 #define nh5tclose_c        H5_FC_FUNC_(h5tclose_c, H5TCLOSE_C)
 #define nh5tcopy_c         H5_FC_FUNC_(h5tcopy_c, H5TCOPY_C)
 #define nh5tequal_c        H5_FC_FUNC_(h5tequal_c, H5TEQUAL_C)
@@ -780,6 +772,7 @@ H5_FCDLL int_f nh5tinsert_array_c(hid_t_f * parent_id, _fcd name, int_f* namelen
 H5_FCDLL int_f nh5tinsert_array_c2(hid_t_f * parent_id, _fcd name, int_f* namelen, size_t_f* offset, int_f* ndims, size_t_f* dims, hid_t_f* member_id);
 H5_FCDLL int_f nh5tenum_create_c ( hid_t_f *parent_id , hid_t_f *new_type_id);
 H5_FCDLL int_f nh5tenum_insert_c(hid_t_f *type_id, _fcd name, int_f* namelen, int_f* value);
+H5_FCDLL int_f h5tenum_insert_ptr_c(hid_t_f *type_id, _fcd name, int_f* namelen, void *value);
 H5_FCDLL int_f nh5tenum_nameof_c(hid_t_f *type_id, int_f* value, _fcd name, size_t_f* namelen);
 H5_FCDLL int_f nh5tenum_valueof_c(hid_t_f *type_id, _fcd name, int_f* namelen, int_f* value);
 H5_FCDLL int_f nh5tget_member_value_c(hid_t_f *type_id, int_f* member_no, int_f* value);
@@ -798,7 +791,7 @@ H5_FCDLL int_f nh5tencode_c (_fcd buf, hid_t_f *obj_id, size_t_f *nalloc );
 H5_FCDLL int_f nh5tget_create_plist_c ( hid_t_f *dtype_id,  hid_t_f *dtpl_id);
 H5_FCDLL int_f nh5tcompiler_conv_c ( hid_t_f *src_id, hid_t_f *dst_id, int_f *c_flag);
 H5_FCDLL int_f nh5tget_native_type_c(hid_t_f *dtype_id, int_f *direction, hid_t_f *native_dtype_id);
-H5_FCDLL int_f nh5tconvert_c(hid_t_f *src_id, hid_t_f *dst_id, size_t_f *nelmts, void *buf, void *background, hid_t_f *plist_id);
+H5_FCDLL int_f h5tconvert_c(hid_t_f *src_id, hid_t_f *dst_id, size_t_f *nelmts, void *buf, void *background, hid_t_f *plist_id);
 
 
 /*
@@ -808,11 +801,6 @@ H5_FCDLL int_f nh5tconvert_c(hid_t_f *src_id, hid_t_f *dst_id, size_t_f *nelmts,
 #define nh5olink_c       H5_FC_FUNC_(h5olink_c, H5OLINK_C)
 #define nh5oopen_c       H5_FC_FUNC_(h5oopen_c, H5OOPEN_C)
 #define nh5oclose_c      H5_FC_FUNC_(h5oclose_c, H5OCLOSE_C)
-#define nh5ovisit_c      H5_FC_FUNC_(h5ovisit_c, H5OVISIT_C)
-#define nh5ovisit_by_name_c H5_FC_FUNC_(h5ovisit_by_name_c, H5OVISIT_BY_NAME_C)
-#define nh5oget_info_c   H5_FC_FUNC_(h5oget_info_c, H5OGET_INFO_C)
-#define nh5oget_info_by_idx_c H5_FC_FUNC_(h5oget_info_by_idx_c ,H5OGET_INFO_BY_IDX_C)
-#define nh5oget_info_by_name_c H5_FC_FUNC_(h5oget_info_by_name_c ,H5OGET_INFO_BY_NAME_C)
 #define nh5oopen_by_addr_c H5_FC_FUNC_(h5oopen_by_addr_c, H5OOPEN_BY_ADDR_C)
 #define nh5ocopy_c         H5_FC_FUNC_(h5ocopy_c, H5OCOPY_C)
 #define nh5odecr_refcount_c H5_FC_FUNC_(h5odecr_refcount_c, H5ODECR_REFCOUNT_C)
@@ -829,13 +817,13 @@ H5_FCDLL int_f nh5oclose_c (hid_t_f *object_id );
 H5_FCDLL int_f nh5oopen_by_addr_c (hid_t_f *loc_id, haddr_t_f *addr, hid_t_f *obj_id);
 H5_FCDLL int_f nh5olink_c (hid_t_f *object_id, hid_t_f *new_loc_id, _fcd name, size_t_f *namelen,
 			   hid_t_f *lcpl_id, hid_t_f *lapl_id);
-H5_FCDLL int_f nh5ovisit_c (hid_t_f *group_id, int_f *index_type, int_f *order, H5O_iterate_t op, void *op_data);
-H5_FCDLL int_f nh5ovisit_by_name_c(hid_t_f *loc_id,  _fcd object_name, size_t_f *namelen, int_f *index_type, int_f *order,
+H5_FCDLL int_f h5ovisit_c (hid_t_f *group_id, int_f *index_type, int_f *order, H5O_iterate_t op, void *op_data);
+H5_FCDLL int_f h5ovisit_by_name_c(hid_t_f *loc_id,  _fcd object_name, size_t_f *namelen, int_f *index_type, int_f *order,
 				   H5O_iterate_t op, void *op_data, hid_t_f *lapl_id );
-H5_FCDLL int_f nh5oget_info_c (hid_t_f *object_id, H5O_info_t_f *object_info);
-H5_FCDLL int_f nh5oget_info_by_idx_c (hid_t_f *loc_id, _fcd  group_name, size_t_f *namelen, 
+H5_FCDLL int_f h5oget_info_c (hid_t_f *object_id, H5O_info_t_f *object_info);
+H5_FCDLL int_f h5oget_info_by_idx_c (hid_t_f *loc_id, _fcd  group_name, size_t_f *namelen, 
 				      int_f *index_field, int_f *order, hsize_t_f *n, hid_t_f *lapl_id, H5O_info_t_f *object_info);
-H5_FCDLL int_f nh5oget_info_by_name_c (hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lapl_id,
+H5_FCDLL int_f h5oget_info_by_name_c (hid_t_f *loc_id, _fcd name, size_t_f *namelen, hid_t_f *lapl_id,
 				       H5O_info_t_f *object_info);
 H5_FCDLL int_f nh5ocopy_c (hid_t_f *src_loc_id, _fcd src_name, size_t_f *src_name_len,
 			   hid_t_f *dst_loc_id, _fcd dst_name, size_t_f *dst_name_len, 
@@ -856,6 +844,7 @@ H5_FCDLL int_f nh5oget_comment_by_name_c (hid_t_f *loc_id, _fcd name, size_t_f *
 #define nh5pcreate_c       H5_FC_FUNC_(h5pcreate_c, H5PCREATE_C)
 #define nh5pclose_c        H5_FC_FUNC_(h5pclose_c, H5PCLOSE_C)
 #define nh5pcopy_c         H5_FC_FUNC_(h5pcopy_c, H5PCOPY_C)
+#define nh5pcreate_class_f90_c H5_FC_FUNC_(h5pcreate_class_f90_c, H5PCREATE_CLASS_F90_C)
 #define nh5pequal_c         H5_FC_FUNC_(h5pequal_c, H5PEQUAL_C)
 #define nh5pget_class_c    H5_FC_FUNC_(h5pget_class_c, H5PGET_CLASS_C)
 #define nh5pset_deflate_c  H5_FC_FUNC_(h5pset_deflate_c, H5PSET_DEFLATE_C)
@@ -863,15 +852,11 @@ H5_FCDLL int_f nh5oget_comment_by_name_c (hid_t_f *loc_id, _fcd name, size_t_f *
 #define nh5pget_preserve_c  H5_FC_FUNC_(h5pget_preserve_c, H5PGET_PRESERVE_C)
 #define nh5pset_chunk_c    H5_FC_FUNC_(h5pset_chunk_c, H5PSET_CHUNK_C)
 #define nh5pget_chunk_c    H5_FC_FUNC_(h5pget_chunk_c, H5PGET_CHUNK_C)
-#define nh5pset_file_image_c H5_FC_FUNC_(h5pset_file_image_c,H5PSET_FILE_IMAGE_C)
 #define nh5pset_fill_valuec_c        H5_FC_FUNC_(h5pset_fill_valuec_c, H5PSET_FILL_VALUEC_C)
-#define nh5pset_fill_value_c         H5_FC_FUNC_(h5pset_fill_value_c, H5PSET_FILL_VALUE_C)
 #define nh5pset_fill_value_integer_c H5_FC_FUNC_(h5pset_fill_value_integer_c, H5PSET_FILL_VALUE_INTEGER_C)
 #define nh5pset_fill_value_real_c    H5_FC_FUNC_(h5pset_fill_value_real_c, H5PSET_FILL_VALUE_REAL_C)
 #define nh5pset_fill_value_double_c  H5_FC_FUNC_(h5pset_fill_value_double_c, H5PSET_FILL_VALUE_DOUBLE_C)
-#define nh5pget_file_image_c H5_FC_FUNC_(h5pget_file_image_c,H5PGET_FILE_IMAGE_C)
 #define nh5pget_fill_valuec_c        H5_FC_FUNC_(h5pget_fill_valuec_c, H5PGET_FILL_VALUEC_C)
-#define nh5pget_fill_value_c         H5_FC_FUNC_(h5pget_fill_value_c, H5PGET_FILL_VALUE_C)
 #define nh5pget_fill_value_integer_c H5_FC_FUNC_(h5pget_fill_value_integer_c, H5PGET_FILL_VALUE_INTEGER_C)
 #define nh5pget_fill_value_real_c    H5_FC_FUNC_(h5pget_fill_value_real_c, H5PGET_FILL_VALUE_REAL_C)
 #define nh5pget_fill_value_double_c  H5_FC_FUNC_(h5pget_fill_value_double_c, H5PGET_FILL_VALUE_DOUBLE_C)
@@ -935,23 +920,18 @@ H5_FCDLL int_f nh5oget_comment_by_name_c (hid_t_f *loc_id, _fcd name, size_t_f *
 #define nh5pget_hyper_vector_size_c    H5_FC_FUNC_(h5pget_hyper_vector_size_c, H5PGET_HYPER_VECTOR_SIZE_C)
 #define nh5pset_small_data_block_size_c    H5_FC_FUNC_(h5pset_small_data_block_size_c, H5PSET_SMALL_DATA_BLOCK_SIZE_C)
 #define nh5pget_small_data_block_size_c    H5_FC_FUNC_(h5pget_small_data_block_size_c, H5PGET_SMALL_DATA_BLOCK_SIZE_C)
-#define nh5pcreate_class_c             H5_FC_FUNC_(h5pcreate_class_c, H5PCREATE_CLASS_C)
-#define nh5pregister_c                 H5_FC_FUNC_(h5pregister_c, H5PREGISTER_C)
 #define nh5pregister_integer_c                 H5_FC_FUNC_(h5pregister_integer_c, H5PREGISTER_INTEGER_C)
 #define nh5pregister_real_c                    H5_FC_FUNC_(h5pregister_real_c, H5PREGISTER_REAL_C)
 #define nh5pregister_double_c                  H5_FC_FUNC_(h5pregister_double_c, H5PREGISTER_DOUBLE_C)
 #define nh5pregisterc_c                H5_FC_FUNC_(h5pregisterc_c, H5PREGISTERC_C)
-#define nh5pinsert_c                   H5_FC_FUNC_(h5pinsert_c, H5PINSERT_C)
 #define nh5pinsert_integer_c                   H5_FC_FUNC_(h5pinsert_integer_c, H5PINSERT_INTEGER_C)
 #define nh5pinsert_real_c                   H5_FC_FUNC_(h5pinsert_real_c, H5PINSERT_REAL_C)
 #define nh5pinsert_double_c                   H5_FC_FUNC_(h5pinsert_double_c, H5PINSERT_DOUBLE_C)
 #define nh5pinsertc_c                  H5_FC_FUNC_(h5pinsertc_c, H5PINSERTC_C)
-#define nh5pset_c                      H5_FC_FUNC_(h5pset_c, H5PSET_C)
 #define nh5pset_integer_c                      H5_FC_FUNC_(h5pset_integer_c, H5PSET_INTEGER_C)
 #define nh5pset_real_c                         H5_FC_FUNC_(h5pset_real_c, H5PSET_REAL_C)
 #define nh5pset_double_c                       H5_FC_FUNC_(h5pset_double_c, H5PSET_DOUBLE_C)
 #define nh5psetc_c                     H5_FC_FUNC_(h5psetc_c, H5PSETC_C)
-#define nh5pget_c                      H5_FC_FUNC_(h5pget_c, H5PGET_C)
 #define nh5pget_integer_c                      H5_FC_FUNC_(h5pget_integer_c, H5PGET_INTEGER_C)
 #define nh5pget_real_c                         H5_FC_FUNC_(h5pget_real_c, H5PGET_REAL_C)
 #define nh5pget_double_c                       H5_FC_FUNC_(h5pget_double_c, H5PGET_DOUBLE_C)
@@ -1015,19 +995,19 @@ H5_FCDLL int_f nh5pcreate_c ( hid_t_f *cls, hid_t_f *prp_id );
 H5_FCDLL int_f nh5pclose_c ( hid_t_f *prp_id );
 H5_FCDLL int_f nh5pcopy_c ( hid_t_f *prp_id , hid_t_f *new_prp_id);
 H5_FCDLL int_f nh5pequal_c ( hid_t_f *plist1_id , hid_t_f *plist2_id, int_f *c_flag);
-H5_FCDLL int_f nh5pget_class_c ( hid_t_f *prp_id , int_f *classtype);
+H5_FCDLL int_f nh5pget_class_c ( hid_t_f *prp_id , hid_t_f *classtype);
 H5_FCDLL int_f nh5pset_deflate_c ( hid_t_f *prp_id , int_f *level);
 H5_FCDLL int_f nh5pset_chunk_c ( hid_t_f *prp_id, int_f *rank, hsize_t_f *dims );
 H5_FCDLL int_f nh5pget_chunk_c ( hid_t_f *prp_id, int_f *max_rank, hsize_t_f *dims );
-H5_FCDLL int_f nh5pset_file_image_c (hid_t_f *fapl_id, void *buf_ptr, size_t_f *buf_len);
+H5_FCDLL int_f h5pset_file_image_c (hid_t_f *fapl_id, void *buf_ptr, size_t_f *buf_len);
 H5_FCDLL int_f nh5pset_fill_valuec_c (hid_t_f *prp_id, hid_t_f *type_id, _fcd fillvalue);
-H5_FCDLL int_f nh5pset_fill_value_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue);
+H5_FCDLL int_f h5pset_fill_value_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue);
 H5_FCDLL int_f nh5pset_fill_value_integer_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue);
 H5_FCDLL int_f nh5pset_fill_value_real_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue);
 H5_FCDLL int_f nh5pset_fill_value_double_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue);
-H5_FCDLL int_f nh5pget_file_image_c (hid_t_f *fapl_id, void **buf_ptr, size_t_f *buf_len);
+H5_FCDLL int_f h5pget_file_image_c (hid_t_f *fapl_id, void **buf_ptr, size_t_f *buf_len);
 H5_FCDLL int_f nh5pget_fill_valuec_c (hid_t_f *prp_id, hid_t_f *type_id, _fcd fillvalue);
-H5_FCDLL int_f nh5pget_fill_value_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue);
+H5_FCDLL int_f h5pget_fill_value_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue);
 H5_FCDLL int_f nh5pget_fill_value_integer_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue);
 H5_FCDLL int_f nh5pget_fill_value_real_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue);
 H5_FCDLL int_f nh5pget_fill_value_double_c (hid_t_f *prp_id, hid_t_f *type_id, void *fillvalue);
@@ -1092,26 +1072,27 @@ H5_FCDLL int_f nh5pset_small_data_block_size_c(hid_t_f *plist, hsize_t_f *size);
 H5_FCDLL int_f nh5pget_small_data_block_size_c(hid_t_f *plist, hsize_t_f *size);
 H5_FCDLL int_f nh5pset_hyper_vector_size_c(hid_t_f *plist, size_t_f *size);
 H5_FCDLL int_f nh5pget_hyper_vector_size_c(hid_t_f *plist, size_t_f *size);
-H5_FCDLL int_f nh5pcreate_class_c(hid_t_f *parent, _fcd name, int_f *name_len, hid_t_f *cls,
+H5_FCDLL int_f h5pcreate_class_c(hid_t_f *parent, _fcd name, int_f *name_len, hid_t_f *cls,
 				  H5P_cls_create_func_t create, void *create_data,
 				  H5P_cls_copy_func_t copy, void *copy_data,
 				  H5P_cls_close_func_t close, void *close_data);
-H5_FCDLL int_f nh5pregister_c(hid_t_f *cls, _fcd name, int_f * name_len, size_t_f *size, void *value);
+H5_FCDLL int_f nh5pcreate_class_f90_c(hid_t_f *parent, _fcd name, int_f *name_len, hid_t_f *cls);
+H5_FCDLL int_f h5pregister_c(hid_t_f *cls, _fcd name, int_f * name_len, size_t_f *size, void *value);
 H5_FCDLL int_f nh5pregister_integer_c(hid_t_f *cls, _fcd name, int_f * name_len, size_t_f *size, void *value);
 H5_FCDLL int_f nh5pregister_real_c(hid_t_f *cls, _fcd name, int_f * name_len, size_t_f *size, void *value);
 H5_FCDLL int_f nh5pregister_double_c(hid_t_f *cls, _fcd name, int_f * name_len, size_t_f *size, void *value);
 H5_FCDLL int_f nh5pregisterc_c(hid_t_f *cls, _fcd name, int_f * name_len, size_t_f *size, _fcd value, int_f *value_len);
-H5_FCDLL int_f nh5pinsert_c(hid_t_f  *plist, _fcd name, int_f *name_len, size_t_f *size, void *value);
+H5_FCDLL int_f h5pinsert_c(hid_t_f  *plist, _fcd name, int_f *name_len, size_t_f *size, void *value);
 H5_FCDLL int_f nh5pinsert_integer_c(hid_t_f  *plist, _fcd name, int_f *name_len, size_t_f *size, void *value);
 H5_FCDLL int_f nh5pinsert_real_c(hid_t_f  *plist, _fcd name, int_f *name_len, size_t_f *size, void *value);
 H5_FCDLL int_f nh5pinsert_double_c(hid_t_f  *plist, _fcd name, int_f *name_len, size_t_f *size, void *value);
 H5_FCDLL int_f nh5pinsertc_c(hid_t_f  *plist, _fcd name, int_f *name_len, size_t_f *size, _fcd value, int_f *value_len);
-H5_FCDLL int_f nh5pset_c(hid_t_f *prp_id, _fcd name, int_f *name_len, void *value);
+H5_FCDLL int_f h5pset_c(hid_t_f *prp_id, _fcd name, int_f *name_len, void *value);
 H5_FCDLL int_f nh5pset_integer_c(hid_t_f *prp_id, _fcd name, int_f *name_len, void *value);
 H5_FCDLL int_f nh5pset_real_c(hid_t_f *prp_id, _fcd name, int_f *name_len, void *value);
 H5_FCDLL int_f nh5pset_double_c(hid_t_f *prp_id, _fcd name, int_f *name_len, void *value);
 H5_FCDLL int_f nh5psetc_c(hid_t_f *prp_id, _fcd name, int_f *name_len, _fcd value, int_f *value_len);
-H5_FCDLL int_f nh5pget_c(hid_t_f *prp_id, _fcd name, int_f *name_len, void *value);
+H5_FCDLL int_f h5pget_c(hid_t_f *prp_id, _fcd name, int_f *name_len, void *value);
 H5_FCDLL int_f nh5pget_double_c(hid_t_f *prp_id, _fcd name, int_f *name_len, void *value);
 H5_FCDLL int_f nh5pget_integer_c(hid_t_f *prp_id, _fcd name, int_f *name_len, void *value);
 H5_FCDLL int_f nh5pget_real_c(hid_t_f *prp_id, _fcd name, int_f *name_len, void *value);
@@ -1176,32 +1157,27 @@ H5_FCDLL int_f nh5pget_mpio_actual_io_mode_c(hid_t_f *dxpl_id, int_f *actual_io_
  */
 #define nh5rcreate_object_c     H5_FC_FUNC_(h5rcreate_object_c, H5RCREATE_OBJECT_C)
 #define nh5rcreate_region_c     H5_FC_FUNC_(h5rcreate_region_c, H5RCREATE_REGION_C)
-#define nh5rcreate_ptr_c     H5_FC_FUNC_(h5rcreate_ptr_c, H5RCREATE_PTR_C)
 #define nh5rdereference_region_c H5_FC_FUNC_(h5rdereference_region_c, H5RDEREFERENCE_REGION_C)
 #define nh5rdereference_object_c H5_FC_FUNC_(h5rdereference_object_c, H5RDEREFERENCE_OBJECT_C)
-#define nh5rdereference_ptr_c H5_FC_FUNC_(h5rdereference_ptr_c, H5RDEREFERENCE_PTR_C)
 #define nh5rget_region_region_c H5_FC_FUNC_(h5rget_region_region_c, H5RGET_REGION_REGION_C)
-#define nh5rget_region_ptr_c H5_FC_FUNC_(h5rget_region_ptr_c, H5RGET_REGION_PTR_C)
 #define nh5rget_object_type_obj_c H5_FC_FUNC_(h5rget_object_type_obj_c, H5RGET_OBJECT_TYPE_OBJ_C)
 #define nh5rget_name_object_c H5_FC_FUNC_(h5rget_name_object_c, H5RGET_NAME_OBJECT_C)
 #define nh5rget_name_region_c H5_FC_FUNC_(h5rget_name_region_c, H5RGET_NAME_REGION_C)
-#define nh5rget_name_ptr_c H5_FC_FUNC_(h5rget_name_ptr_c, H5RGET_NAME_PTR_C)
-#define nh5rget_obj_type_c H5_FC_FUNC_(h5rget_obj_type_c, H5RGET_OBJ_TYPE_C)
 
 
 H5_FCDLL int_f nh5rcreate_object_c (haddr_t_f *ref, hid_t_f *loc_id, _fcd name, int_f *namelen);
 H5_FCDLL int_f nh5rcreate_region_c (int_f *ref, hid_t_f *loc_id, _fcd name, int_f *namelen, hid_t_f *space_id);
-H5_FCDLL int_f nh5rcreate_ptr_c (void *ref, hid_t_f *loc_id, _fcd name, int_f *namelen, int_f *ref_type, hid_t_f *space_id);
+H5_FCDLL int_f h5rcreate_ptr_c (void *ref, hid_t_f *loc_id, _fcd name, int_f *namelen, int_f *ref_type, hid_t_f *space_id);
 H5_FCDLL int_f nh5rdereference_region_c (hid_t_f *dset_id, int_f *ref, hid_t_f *obj_id);
 H5_FCDLL int_f nh5rdereference_object_c (hid_t_f *dset_id, haddr_t_f *ref, hid_t_f *obj_id);
-H5_FCDLL int_f nh5rdereference_ptr_c (hid_t_f *obj_id, int_f *ref_type, void *ref, hid_t_f *ref_obj_id);
+H5_FCDLL int_f h5rdereference_ptr_c (hid_t_f *obj_id, int_f *ref_type, void *ref, hid_t_f *ref_obj_id);
 H5_FCDLL int_f nh5rget_region_region_c (hid_t_f *dset_id, int_f *ref, hid_t_f *space_id);
-H5_FCDLL int_f nh5rget_region_ptr_c(hid_t_f *dset_id, void *ref, hid_t_f *space_id);
+H5_FCDLL int_f h5rget_region_ptr_c(hid_t_f *dset_id, void *ref, hid_t_f *space_id);
 H5_FCDLL int_f nh5rget_object_type_obj_c (hid_t_f *dset_id, haddr_t_f *ref, int_f *obj_type);
 H5_FCDLL int_f nh5rget_name_object_c (hid_t_f *loc_id, haddr_t_f *ref, _fcd name, size_t_f *name_len, size_t_f *size_default);
 H5_FCDLL int_f nh5rget_name_region_c (hid_t_f *loc_id, int_f *ref, _fcd name, size_t_f *name_len, size_t_f *size_default);
-H5_FCDLL int_f nh5rget_name_ptr_c (hid_t_f *loc_id, int_f *ref_type, void *ref, _fcd name, size_t_f *name_len, size_t_f *size_default);
-H5_FCDLL int_f nh5rget_obj_type_c (hid_t_f *loc_id, int_f *ref_type, void *ref, int_f *obj_type);
+H5_FCDLL int_f h5rget_name_ptr_c (hid_t_f *loc_id, int_f *ref_type, void *ref, _fcd name, size_t_f *name_len, size_t_f *size_default);
+H5_FCDLL int_f h5rget_obj_type_c (hid_t_f *loc_id, int_f *ref_type, void *ref, int_f *obj_type);
 /*
  * Functions from H5If.c
  */
@@ -1230,7 +1206,6 @@ H5_FCDLL int_f nh5iis_valid_c(hid_t_f *obj_id, int_f *c_valid);
 #define nh5eget_major_c H5_FC_FUNC_(h5eget_major_c, H5EGET_MAJOR_C)
 #define nh5eget_minor_c H5_FC_FUNC_(h5eget_minor_c, H5EGET_MINOR_C)
 #define nh5eset_auto_c  H5_FC_FUNC_(h5eset_auto_c, H5ESET_AUTO_C)
-#define nh5eset_auto2_c  H5_FC_FUNC_(h5eset_auto2_c, H5ESET_AUTO2_C)
 #define nprocess_buffer  H5_FC_FUNC_(process_buffer, PROCESS_BUFFER)
 
 
@@ -1240,7 +1215,7 @@ H5_FCDLL int_f nh5eprint_c2(void);
 H5_FCDLL int_f nh5eget_major_c(int_f* error_no, _fcd name, size_t_f* namelen);
 H5_FCDLL int_f nh5eget_minor_c(int_f* error_no, _fcd name, size_t_f* namelen);
 H5_FCDLL int_f nh5eset_auto_c(int_f* printflag);
-H5_FCDLL int_f nh5eset_auto2_c(int_f* printflag, hid_t_f *estack_id, H5E_auto2_t func, void *client_data);
+H5_FCDLL int_f h5eset_auto2_c(int_f* printflag, hid_t_f *estack_id, H5E_auto2_t func, void *client_data);
 H5_FCDLL int_f nprocess_buffer(hid_t_f *estack_id,void **buffer);
 
 /*
@@ -1301,9 +1276,7 @@ H5_FCDLL int_f nh5zget_filter_info_c (int_f *filter, int_f *flag);
 #define nh5lis_registered_c H5_FC_FUNC_(h5lis_registered_c, H5LIS_REGISTERED_C)
 #define nh5lmove_c H5_FC_FUNC_(h5lmove_c, H5LMOVE_C)
 #define nh5lget_name_by_idx_c H5_FC_FUNC_(h5lget_name_by_idx_c, H5LGET_NAME_BY_IDX_C)
-#define nh5lget_val_c H5_FC_FUNC_(h5lget_val_c, H5LGET_VAL_C) 
-#define nh5literate_c H5_FC_FUNC_(h5literate_c, H5LITERATE_C) 
-#define nh5literate_by_name_c H5_FC_FUNC_(h5literate_by_name_c, H5LITERATE_BY_NAME_C)
+#define nh5lget_val_c H5_FC_FUNC_(h5lget_val_c, H5LGET_VAL_C)
 
 H5_FCDLL int_f nh5lcopy_c(hid_t_f *src_loc_id, _fcd src_name, size_t_f *src_namelen, hid_t_f *dest_loc_id,
 			  _fcd dest_name, size_t_f *dest_namelen,
@@ -1339,8 +1312,8 @@ H5_FCDLL int_f nh5lget_name_by_idx_c(hid_t_f *loc_id, _fcd group_name, size_t_f
 H5_FCDLL int_f nh5lget_val_c(hid_t_f *link_loc_id, _fcd link_name, size_t_f *link_namelen, size_t_f *size,
 			     void *linkval_buff, hid_t_f *lapl_id) ;
 
-H5_FCDLL int_f nh5literate_c(hid_t_f *group_id, int_f *index_type, int_f *order, hsize_t_f *idx, H5L_iterate_t op, void *op_data );
-H5_FCDLL int_f nh5literate_by_name_c(hid_t_f *loc_id, _fcd name, size_t_f *namelen, int_f *index_type, int_f *order, hsize_t_f *idx, H5L_iterate_t op, void *op_data, hid_t_f *lapl_id);
+H5_FCDLL int_f h5literate_c(hid_t_f *group_id, int_f *index_type, int_f *order, hsize_t_f *idx, H5L_iterate_t op, void *op_data );
+H5_FCDLL int_f h5literate_by_name_c(hid_t_f *loc_id, _fcd name, size_t_f *namelen, int_f *index_type, int_f *order, hsize_t_f *idx, H5L_iterate_t op, void *op_data, hid_t_f *lapl_id);
 
 
 #endif /* _H5f90proto_H */
diff --git a/fortran/src/H5match_types.c b/fortran/src/H5match_types.c
index 3fa0efc..c4b7f73 100644
--- a/fortran/src/H5match_types.c
+++ b/fortran/src/H5match_types.c
@@ -48,11 +48,9 @@ FILE * fort_header;
 #define FFILE "H5fortran_types.f90"
 
 /* Prototypes for the write routines */
-void writeTypedef(const char* c_type, unsigned int size);
-void writeFloatTypedef(const char* c_type, unsigned int size);
-void writeTypedefDefault(unsigned int size);
-void writeToFiles(const char* fortran_type, const char* c_type, int size, unsigned int kind);
-void writeFloatToFiles(const char* fortran_type, const char* c_type, int size, unsigned int kind);
+void writeTypedef(const char* c_typedef, const char* c_type, unsigned int size);
+void writeTypedefDefault(const char* c_typedef, unsigned int size);
+void writeToFiles(const char* c_typedef, const char* fortran_type, const char* c_type, int size, unsigned int kind);
 
 static void
 initCfile(void)
@@ -121,38 +119,23 @@ endFfile(void)
 }
 
 /* Define a c_int_x type in the C header */
-void writeTypedef(const char* c_type, unsigned int size)
+void writeTypedef(const char* c_typedef, const char* c_type, unsigned int size)
 {
-  fprintf(c_header, "#define c_int_%u %s\n", size, c_type);
-}
-
-/* Define a c_float_x type in the C header */
-void writeFloatTypedef(const char* c_type, unsigned int size)
-{
-  fprintf(c_header, "#define c_float_%u %s\n", size, c_type);
+  fprintf(c_header, "#define c_%s_%u %s\n", c_typedef, size, c_type);
 }
 
 /* Call this function if there is no matching C type for sizes > 1 */
-void writeTypedefDefault(unsigned int size)
+void writeTypedefDefault(const char* c_typedef, unsigned int size)
 {
   assert(size %2 == 0);
-
-  fprintf(c_header, "typedef struct {c_int_%u a; c_int_%u b;} c_int_%u\n", size / 2, size / 2, size);
+  fprintf(c_header, "typedef struct {c_%s_%u a; c_%s_%u b;} c_%s_%u\n", c_typedef, size / 2, c_typedef, size / 2, c_typedef, size);
 }
 
 /* Create matching Fortran and C types by writing to both files */
-void writeToFiles(const char* fortran_type, const char* c_type, int size, unsigned int kind)
-{
-  fprintf(fort_header, "        INTEGER, PARAMETER :: %s = %u\n", fortran_type, kind);
-  fprintf(c_header, "typedef c_int_%d %s;\n", size, c_type);
-}
-
-/* Create matching Fortran and C floating types by writing to both files */
-void writeFloatToFiles(const char* fortran_type, const char* c_type, int size, unsigned int kind)
+void writeToFiles(const char* c_typedef, const char* fortran_type, const char* c_type, int size, unsigned int kind)
 {
   fprintf(fort_header, "        INTEGER, PARAMETER :: %s = %u\n", fortran_type, kind);
-
-  fprintf(c_header, "typedef c_float_%d %s;\n", size, c_type);
+  fprintf(c_header, "typedef c_%s_%d %s;\n", c_typedef, size, c_type);
 }
 
 int main(void)
@@ -180,68 +163,89 @@ int main(void)
 
 #if defined H5_FORTRAN_HAS_INTEGER_1_KIND
   if(sizeof(long long) == 1)
-    writeTypedef("long long", 1);
+    writeTypedef("int", "long long", 1);
   else if(sizeof(long) == 1)
-    writeTypedef("long", 1);
+    writeTypedef("int", "long", 1);
   else if(sizeof(int) == 1)
-    writeTypedef("int", 1);
+    writeTypedef("int", "int", 1);
   else if(sizeof(short) == 1)
-    writeTypedef("short", 1);
+    writeTypedef("int", "short", 1);
   else
-    writeTypedef("char", 1);
+    writeTypedef("int", "char", 1);
   /* Actually, char is not necessarily one byte.
    * But if char isn't, then nothing is, so this
    * is as close as we can get. */
+  if(sizeof(size_t) == 1)
+    writeTypedef("size_t", "size_t", 1);
+  if(sizeof(hsize_t) == 1)
+    writeTypedef("hsize_t", "hsize_t", 1);
 #endif /*H5_FORTRAN_HAS_INTEGER_1_KIND*/
 
 #if defined H5_FORTRAN_HAS_INTEGER_2_KIND
   if(sizeof(long long) == 2)
-    writeTypedef("long long", 2);
+    writeTypedef("int", "long long", 2);
   else if(sizeof(long) == 2)
-    writeTypedef("long", 2);
+    writeTypedef("int", "long", 2);
   else if(sizeof(int) == 2)
-    writeTypedef("int", 2);
+    writeTypedef("int", "int", 2);
   else if(sizeof(short) == 2)
-    writeTypedef("short", 2);
+    writeTypedef("int", "short", 2);
   else
-    writeTypedefDefault(2);
+    writeTypedefDefault("int",2);
+
+  if(sizeof(size_t) == 2)
+    writeTypedef("size_t", "size_t", 2);
+  if(sizeof(hsize_t) == 2)
+    writeTypedef("hsize_t", "hsize_t", 2);
 #endif /*H5_FORTRAN_HAS_INTEGER_2_KIND*/
 
 #if defined H5_FORTRAN_HAS_INTEGER_4_KIND
   if(sizeof(long long) == 4)
-    writeTypedef("long long", 4);
+    writeTypedef("int", "long long", 4);
   else if(sizeof(long) == 4)
-    writeTypedef("long", 4);
+    writeTypedef("int", "long", 4);
   else if(sizeof(int) == 4)
-    writeTypedef("int", 4);
+    writeTypedef("int", "int", 4);
   else if(sizeof(short) == 4)
-    writeTypedef("short", 4);
+    writeTypedef("int", "short", 4);
   else
-    writeTypedefDefault(4);
+    writeTypedefDefault("int",4);
+
+  if(sizeof(size_t) == 4)
+    writeTypedef("size_t", "size_t", 4);
+  if(sizeof(hsize_t) == 4)
+    writeTypedef("hsize_t", "hsize_t", 4);
+    
 #endif /*H5_FORTRAN_HAS_INTEGER_4_KIND*/
 
 #if defined H5_FORTRAN_HAS_INTEGER_8_KIND
   if(sizeof(long long) == 8)
-    writeTypedef("long long", 8);
+    writeTypedef("int", "long long", 8);
   else if(sizeof(long) == 8)
-    writeTypedef("long", 8);
+    writeTypedef("int", "long", 8);
   else if(sizeof(int) == 8)
-    writeTypedef("int", 8);
+    writeTypedef("int", "int", 8);
   else if(sizeof(short) == 8)
-    writeTypedef("short", 8);
+    writeTypedef("int", "short", 8);
   else
-    writeTypedefDefault(8);
+    writeTypedefDefault("int",8);
+
+  if(sizeof(size_t) == 8)
+    writeTypedef("size_t", "size_t",  8);
+  if(sizeof(hsize_t) == 8)
+    writeTypedef("hsize_t", "hsize_t", 8);
+
 #endif /*H5_FORTRAN_HAS_INTEGER_8_KIND*/
 
   /* Define c_float_x */
 
 #if defined H5_FORTRAN_HAS_REAL_NATIVE_4_KIND || defined H5_FORTRAN_HAS_REAL_4_KIND
   if(sizeof(long double) == 4)
-    writeFloatTypedef("long double", 4);
+    writeTypedef("float", "long double", 4);
   else if(sizeof(double) == 4)
-   writeFloatTypedef("double", 4);
+   writeTypedef("float", "double", 4);
   else if(sizeof(float) == 4)
-   writeFloatTypedef("float", 4);
+   writeTypedef("float", "float", 4);
   else
    { printf("Fortran REAL is 4 bytes, no corresponding C floating type\n");
      printf("Quitting....\n");
@@ -251,11 +255,11 @@ int main(void)
 
 #if defined H5_FORTRAN_HAS_REAL_NATIVE_8_KIND || defined H5_FORTRAN_HAS_REAL_8_KIND
   if(sizeof(long double) == 8)
-    writeFloatTypedef("long double", 8);
+    writeTypedef("float", "long double", 8);
   else if(sizeof(double) == 8)
-   writeFloatTypedef("double", 8);
+   writeTypedef("float", "double", 8);
   else if(sizeof(float) == 8)
-   writeFloatTypedef("float", 8);
+   writeTypedef("float", "float", 8);
   else
    { printf("Fortran REAL is 16 bytes, no corresponding C floating type\n");
      printf("Quitting....\n");
@@ -265,11 +269,11 @@ int main(void)
 
 #if defined H5_FORTRAN_HAS_REAL_NATIVE_16_KIND || defined H5_FORTRAN_HAS_REAL_16_KIND
   if(sizeof(long double) == 16)
-    writeFloatTypedef("long double", 16);
+    writeTypedef("float", "long double", 16);
   else if(sizeof(double) == 16)
-   writeFloatTypedef("double", 16);
+   writeTypedef("float", "double", 16);
   else if(sizeof(float) == 16)
-   writeFloatTypedef("float", 16);
+   writeTypedef("float", "float", 16);
   else /*C has no 16 byte float so disable it in Fortran*/
    { printf("warning: Fortran REAL is 16 bytes, no corresponding C floating type\n");
      printf("         Disabling Fortran 16 byte REALs\n");
@@ -281,13 +285,13 @@ int main(void)
   fprintf(c_header, "\n");
   /* haddr_t */
 #if defined H5_FORTRAN_HAS_INTEGER_8_KIND && H5_SIZEOF_HADDR_T >= 8
-  writeToFiles("HADDR_T", "haddr_t_f", 8, H5_FORTRAN_HAS_INTEGER_8_KIND);
+  writeToFiles("int","HADDR_T", "haddr_t_f", 8, H5_FORTRAN_HAS_INTEGER_8_KIND);
 #elif defined H5_FORTRAN_HAS_INTEGER_4_KIND && H5_SIZEOF_HADDR_T >= 4
-  writeToFiles("HADDR_T", "haddr_t_f", 4, H5_FORTRAN_HAS_INTEGER_4_KIND);
+  writeToFiles("int","HADDR_T", "haddr_t_f", 4, H5_FORTRAN_HAS_INTEGER_4_KIND);
 #elif defined H5_FORTRAN_HAS_INTEGER_2_KIND && H5_SIZEOF_HADDR_T >= 2
-  writeToFiles("HADDR_T", "haddr_t_f", 2, H5_FORTRAN_HAS_INTEGER_2_KIND);
+  writeToFiles("int","HADDR_T", "haddr_t_f", 2, H5_FORTRAN_HAS_INTEGER_2_KIND);
 #elif defined H5_FORTRAN_HAS_INTEGER_1_KIND && H5_SIZEOF_HADDR_T >= 1
-  writeToFiles("HADDR_T", "haddr_t_f", 1, H5_FORTRAN_HAS_INTEGER_1_KIND);
+  writeToFiles("int","HADDR_T", "haddr_t_f", 1, H5_FORTRAN_HAS_INTEGER_1_KIND);
 #else
     /* Error: couldn't find a size for haddr_t */
     return -1;
@@ -295,13 +299,13 @@ int main(void)
 
   /* hsize_t */
 #if defined H5_FORTRAN_HAS_INTEGER_8_KIND && H5_SIZEOF_HSIZE_T >= 8
-    writeToFiles("HSIZE_T", "hsize_t_f", 8, H5_FORTRAN_HAS_INTEGER_8_KIND);
+    writeToFiles("hsize_t","HSIZE_T", "hsize_t_f", 8, H5_FORTRAN_HAS_INTEGER_8_KIND);
 #elif defined H5_FORTRAN_HAS_INTEGER_4_KIND && H5_SIZEOF_HSIZE_T >= 4
-    writeToFiles("HSIZE_T", "hsize_t_f", 4, H5_FORTRAN_HAS_INTEGER_4_KIND);
+    writeToFiles("hsize_t","HSIZE_T", "hsize_t_f", 4, H5_FORTRAN_HAS_INTEGER_4_KIND);
 #elif defined H5_FORTRAN_HAS_INTEGER_2_KIND && H5_SIZEOF_HSIZE_T >= 2
-    writeToFiles("HSIZE_T", "hsize_t_f", 2, H5_FORTRAN_HAS_INTEGER_2_KIND);
+    writeToFiles("hsize_t","HSIZE_T", "hsize_t_f", 2, H5_FORTRAN_HAS_INTEGER_2_KIND);
 #elif defined H5_FORTRAN_HAS_INTEGER_1_KIND && H5_SIZEOF_HSIZE_T >= 1
-    writeToFiles("HSIZE_T", "hsize_t_f", 1, H5_FORTRAN_HAS_INTEGER_1_KIND);
+    writeToFiles("hsize_t","HSIZE_T", "hsize_t_f", 1, H5_FORTRAN_HAS_INTEGER_1_KIND);
 #else
     /* Error: couldn't find a size for hsize_t */
     return -1;
@@ -309,13 +313,13 @@ int main(void)
 
   /* hssize_t */
 #if defined H5_FORTRAN_HAS_INTEGER_8_KIND && H5_SIZEOF_HSSIZE_T >= 8
-    writeToFiles("HSSIZE_T", "hssize_t_f", 8, H5_FORTRAN_HAS_INTEGER_8_KIND);
+    writeToFiles("int","HSSIZE_T", "hssize_t_f", 8, H5_FORTRAN_HAS_INTEGER_8_KIND);
 #elif defined H5_FORTRAN_HAS_INTEGER_4_KIND && H5_SIZEOF_HSSIZE_T >= 4
-    writeToFiles("HSSIZE_T", "hssize_t_f", 4, H5_FORTRAN_HAS_INTEGER_4_KIND);
+    writeToFiles("int","HSSIZE_T", "hssize_t_f", 4, H5_FORTRAN_HAS_INTEGER_4_KIND);
 #elif defined H5_FORTRAN_HAS_INTEGER_2_KIND && H5_SIZEOF_HSSIZE_T >= 2
-    writeToFiles("HSSIZE_T", "hssize_t_f", 2, H5_FORTRAN_HAS_INTEGER_2_KIND);
+    writeToFiles("int","HSSIZE_T", "hssize_t_f", 2, H5_FORTRAN_HAS_INTEGER_2_KIND);
 #elif defined H5_FORTRAN_HAS_INTEGER_1_KIND && H5_SIZEOF_HSSIZE_T >= 1
-    writeToFiles("HSSIZE_T", "hssize_t_f", 1, H5_FORTRAN_HAS_INTEGER_1_KIND);
+    writeToFiles("int","HSSIZE_T", "hssize_t_f", 1, H5_FORTRAN_HAS_INTEGER_1_KIND);
 #else
     /* Error: couldn't find a size for hssize_t */
     return -1;
@@ -323,13 +327,13 @@ int main(void)
 
   /* off_t */
 #if defined H5_FORTRAN_HAS_INTEGER_8_KIND && H5_SIZEOF_OFF_T >= 8
-    writeToFiles("OFF_T", "off_t_f", 8, H5_FORTRAN_HAS_INTEGER_8_KIND);
+    writeToFiles("int","OFF_T", "off_t_f", 8, H5_FORTRAN_HAS_INTEGER_8_KIND);
 #elif defined H5_FORTRAN_HAS_INTEGER_4_KIND && H5_SIZEOF_OFF_T >= 4
-    writeToFiles("OFF_T", "off_t_f", 4, H5_FORTRAN_HAS_INTEGER_4_KIND);
+    writeToFiles("int","OFF_T", "off_t_f", 4, H5_FORTRAN_HAS_INTEGER_4_KIND);
 #elif defined H5_FORTRAN_HAS_INTEGER_2_KIND && H5_SIZEOF_OFF_T >= 2
-    writeToFiles("OFF_T", "off_t_f", 2, H5_FORTRAN_HAS_INTEGER_2_KIND);
+    writeToFiles("int","OFF_T", "off_t_f", 2, H5_FORTRAN_HAS_INTEGER_2_KIND);
 #elif defined H5_FORTRAN_HAS_INTEGER_1_KIND && H5_SIZEOF_OFF_T >= 1
-    writeToFiles("OFF_T", "off_t_f", 1, H5_FORTRAN_HAS_INTEGER_1_KIND);
+    writeToFiles("int","OFF_T", "off_t_f", 1, H5_FORTRAN_HAS_INTEGER_1_KIND);
 #else
     /* Error: couldn't find a size for off_t */
     return -1;
@@ -337,13 +341,13 @@ int main(void)
 
   /* size_t */
 #if defined H5_FORTRAN_HAS_INTEGER_8_KIND && H5_SIZEOF_SIZE_T >= 8
-    writeToFiles("SIZE_T", "size_t_f", 8, H5_FORTRAN_HAS_INTEGER_8_KIND);
+    writeToFiles("size_t","SIZE_T", "size_t_f", 8, H5_FORTRAN_HAS_INTEGER_8_KIND);
 #elif defined H5_FORTRAN_HAS_INTEGER_4_KIND && H5_SIZEOF_SIZE_T >= 4
-    writeToFiles("SIZE_T", "size_t_f", 4, H5_FORTRAN_HAS_INTEGER_4_KIND);
+    writeToFiles("size_t","SIZE_T", "size_t_f", 4, H5_FORTRAN_HAS_INTEGER_4_KIND);
 #elif defined H5_FORTRAN_HAS_INTEGER_2_KIND && H5_SIZEOF_SIZE_T >= 2
-    writeToFiles("SIZE_T", "size_t_f", 2, H5_FORTRAN_HAS_INTEGER_2_KIND);
+    writeToFiles("size_t","SIZE_T", "size_t_f", 2, H5_FORTRAN_HAS_INTEGER_2_KIND);
 #elif defined H5_FORTRAN_HAS_INTEGER_1_KIND && H5_SIZEOF_SIZE_T >= 1
-    writeToFiles("SIZE_T", "size_t_f", 1, H5_FORTRAN_HAS_INTEGER_1_KIND);
+    writeToFiles("size_t","SIZE_T", "size_t_f", 1, H5_FORTRAN_HAS_INTEGER_1_KIND);
 #else
     /* Error: couldn't find a size for size_t */
     return -1;
@@ -351,13 +355,13 @@ int main(void)
 
   /* int */
 #if defined H5_FORTRAN_HAS_NATIVE_8_KIND
-    writeToFiles("Fortran_INTEGER", "int_f", 8, H5_FORTRAN_HAS_NATIVE_8_KIND);
+    writeToFiles("int","Fortran_INTEGER", "int_f", 8, H5_FORTRAN_HAS_NATIVE_8_KIND);
 #elif defined H5_FORTRAN_HAS_NATIVE_4_KIND
-    writeToFiles("Fortran_INTEGER", "int_f", 4, H5_FORTRAN_HAS_NATIVE_4_KIND);
+    writeToFiles("int","Fortran_INTEGER", "int_f", 4, H5_FORTRAN_HAS_NATIVE_4_KIND);
 #elif defined H5_FORTRAN_HAS_NATIVE_2_KIND
-    writeToFiles("Fortran_INTEGER", "int_f", 2, H5_FORTRAN_HAS_NATIVE_2_KIND);
+    writeToFiles("int","Fortran_INTEGER", "int_f", 2, H5_FORTRAN_HAS_NATIVE_2_KIND);
 #elif defined H5_FORTRAN_HAS_NATIVE_1_KIND
-    writeToFiles("Fortran_INTEGER", "int_f", 1, H5_FORTRAN_HAS_NATIVE_1_KIND);
+    writeToFiles("int","Fortran_INTEGER", "int_f", 1, H5_FORTRAN_HAS_NATIVE_1_KIND);
 #else
     /* Error: couldn't find a size for int */
     return -1;
@@ -397,7 +401,7 @@ int main(void)
 	{
 	  sprintf(chrA, "Fortran_INTEGER_%d", FoundIntSize[i]);
 	  sprintf(chrB, "int_%d_f", FoundIntSize[i]);
-	  writeToFiles(chrA, chrB, FoundIntSize[i], FoundIntSizeKind[i]);
+	  writeToFiles("int",chrA, chrB, FoundIntSize[i], FoundIntSizeKind[i]);
 	}
       else  /* Did not find the integer type */
 	{
@@ -408,7 +412,7 @@ int main(void)
 		{
 		  sprintf(chrA, "Fortran_INTEGER_%d", (-1)*FoundIntSize[i]);
 		  sprintf(chrB, "int_%d_f", (-1)*FoundIntSize[i]);
-		  writeToFiles(chrA, chrB, FoundIntSize[j], FoundIntSizeKind[j]);
+		  writeToFiles("int",chrA, chrB, FoundIntSize[j], FoundIntSizeKind[j]);
 		  flag = 1;
 		  break;
 		}
@@ -421,7 +425,7 @@ int main(void)
 		    {
 		      sprintf(chrA, "Fortran_INTEGER_%d", (-1)*FoundIntSize[i]);
 		      sprintf(chrB, "int_%d_f", (-1)*FoundIntSize[i]);
-		      writeToFiles(chrA, chrB, FoundIntSize[j], FoundIntSizeKind[j]);
+		      writeToFiles("int",chrA, chrB, FoundIntSize[j], FoundIntSizeKind[j]);
 		      flag = 1;
 		      break;
 		    }
@@ -464,7 +468,7 @@ int main(void)
 	{
 	  sprintf(chrA, "Fortran_REAL_%d", FoundRealSize[i]);
 	  sprintf(chrB, "real_%d_f", FoundRealSize[i]);
-	  writeFloatToFiles(chrA, chrB, FoundRealSize[i], FoundRealSizeKind[i]);
+	  writeToFiles("float",chrA, chrB, FoundRealSize[i], FoundRealSizeKind[i]);
 	}
       else  /* Did not find the real type */
 	{
@@ -476,11 +480,11 @@ int main(void)
 		  sprintf(chrA, "Fortran_REAL_%d", (-1)*FoundRealSize[i]);
 		  sprintf(chrB, "real_%d_f", (-1)*FoundRealSize[i]);
 		  if(FoundRealSize[j]>4) {
-		    writeFloatToFiles(chrA, chrB,  FoundRealSize[j], FoundRealSizeKind[j]);
+		    writeToFiles("float",chrA, chrB,  FoundRealSize[j], FoundRealSizeKind[j]);
 		    flag = 1;
 		  }
 		/*   else { */
-/* 		    writeFloatToFiles(chrA, chrB, FoundRealSize[j]); */
+/* 		    writeToFiles("float", chrA, chrB, FoundRealSize[j]); */
 /* 		  } */
 		  flag = 1;
 		  break;
@@ -495,9 +499,9 @@ int main(void)
 		      sprintf(chrA, "Fortran_REAL_%d", (-1)*FoundRealSize[i]);
 		      sprintf(chrB, "real_%d_f", (-1)*FoundRealSize[i]);
 		      if(FoundRealSize[j]>4)
-			writeFloatToFiles(chrA, chrB,  FoundRealSize[j], FoundRealSizeKind[j]);
+			writeToFiles("float",chrA, chrB,  FoundRealSize[j], FoundRealSizeKind[j]);
 		     /*  else { */
-/* 			writeFloatToFiles(chrA, chrB, FoundRealSize[j]); */
+/* 			writeToFiles("float", chrA, chrB, FoundRealSize[j]); */
 /* 		      } */
 		      flag = 1;
 		      break;
@@ -511,15 +515,15 @@ int main(void)
 
   /* hid_t */
 #if defined H5_FORTRAN_HAS_INTEGER_8_KIND && H5_SIZEOF_HID_T >= 8
-    writeToFiles("HID_T", "hid_t_f", 8, H5_FORTRAN_HAS_INTEGER_8_KIND);
+    writeToFiles("int","HID_T", "hid_t_f", 8, H5_FORTRAN_HAS_INTEGER_8_KIND);
 #elif defined H5_FORTRAN_HAS_INTEGER_4_KIND && H5_SIZEOF_HID_T >= 4
-    writeToFiles("HID_T", "hid_t_f", 4, H5_FORTRAN_HAS_INTEGER_4_KIND);
+    writeToFiles("int","HID_T", "hid_t_f", 4, H5_FORTRAN_HAS_INTEGER_4_KIND);
 #elif defined H5_FORTRAN_HAS_INTEGER_2_KIND && H5_SIZEOF_HID_T >= 2
-    writeToFiles("HID_T", "hid_t_f", 2, H5_FORTRAN_HAS_INTEGER_2_KIND);
+    writeToFiles("int","HID_T", "hid_t_f", 2, H5_FORTRAN_HAS_INTEGER_2_KIND);
 #elif defined H5_FORTRAN_HAS_INTEGER_1_KIND && H5_SIZEOF_HID_T >= 1
-    writeToFiles("HID_T", "hid_t_f", 1, H5_FORTRAN_HAS_INTEGER_1_KIND);
+    writeToFiles("int","HID_T", "hid_t_f", 1, H5_FORTRAN_HAS_INTEGER_1_KIND);
 #elif defined H5_FORTRAN_HAS_INTEGER_8_KIND && H5_SIZEOF_HID_T >= 4
-    writeToFiles("HID_T", "hid_t_f", 8, H5_FORTRAN_HAS_INTEGER_8_KIND);
+    writeToFiles("int","HID_T", "hid_t_f", 8, H5_FORTRAN_HAS_INTEGER_8_KIND);
 #else
     /* Error: couldn't find a size for hid_t */
     return -1;
@@ -528,12 +532,12 @@ int main(void)
   /* real_f */
 #if defined H5_FORTRAN_HAS_REAL_NATIVE_16_KIND
     if(H5_C_HAS_REAL_NATIVE_16 != 0) {
-      writeFloatToFiles("Fortran_REAL", "real_f", 16, H5_FORTRAN_HAS_REAL_NATIVE_16_KIND);
+      writeToFiles("float","Fortran_REAL", "real_f", 16, H5_FORTRAN_HAS_REAL_NATIVE_16_KIND);
     }
 #elif defined H5_FORTRAN_HAS_REAL_NATIVE_8_KIND
-    writeFloatToFiles("Fortran_REAL", "real_f", 8, H5_FORTRAN_HAS_REAL_NATIVE_8_KIND);
+    writeToFiles("float", "Fortran_REAL", "real_f", 8, H5_FORTRAN_HAS_REAL_NATIVE_8_KIND);
 #elif defined H5_FORTRAN_HAS_REAL_NATIVE_4_KIND
-    writeFloatToFiles("Fortran_REAL", "real_f", 4, H5_FORTRAN_HAS_REAL_NATIVE_4_KIND);
+    writeToFiles("float", "Fortran_REAL", "real_f", 4, H5_FORTRAN_HAS_REAL_NATIVE_4_KIND);
 #else
     /* Error: couldn't find a size for real_f */
     return -1;
@@ -542,13 +546,13 @@ int main(void)
   /* double_f */
 #if defined H5_FORTRAN_HAS_DOUBLE_NATIVE_16_KIND
     if(H5_C_HAS_REAL_NATIVE_16 != 0) { /* Check if C has 16 byte floats */
-      writeFloatToFiles("Fortran_DOUBLE", "double_f", 16, H5_FORTRAN_HAS_DOUBLE_NATIVE_16_KIND);
+      writeToFiles("float", "Fortran_DOUBLE", "double_f", 16, H5_FORTRAN_HAS_DOUBLE_NATIVE_16_KIND);
     } else {
 #if defined H5_FORTRAN_HAS_REAL_NATIVE_8_KIND /* Fall back to 8 byte floats */
-    writeFloatToFiles("Fortran_DOUBLE", "double_f", 8, H5_FORTRAN_HAS_REAL_NATIVE_8_KIND);
+    writeToFiles("float", "Fortran_DOUBLE", "double_f", 8, H5_FORTRAN_HAS_REAL_NATIVE_8_KIND);
     }
 #elif defined H5_FORTRAN_HAS_REAL_NATIVE_4_KIND  /* Fall back to 4 byte floats */
-    writeFloatToFiles("Fortran_DOUBLE", "double_f", 4, H5_FORTRAN_HAS_REAL_NATIVE_4_KIND);
+    writeToFiles("float", "Fortran_DOUBLE", "double_f", 4, H5_FORTRAN_HAS_REAL_NATIVE_4_KIND);
     }
 #else
     /* Error: couldn't find a size for double_f when fortran has 16 byte reals */
@@ -557,7 +561,7 @@ int main(void)
 #endif
 
 #elif defined H5_FORTRAN_HAS_DOUBLE_NATIVE_8_KIND
-    writeFloatToFiles("Fortran_DOUBLE", "double_f", 8, H5_FORTRAN_HAS_DOUBLE_NATIVE_8_KIND);
+    writeToFiles("float", "Fortran_DOUBLE", "double_f", 8, H5_FORTRAN_HAS_DOUBLE_NATIVE_8_KIND);
 #else
     /* Error: couldn't find a size for real_f */
     return -1;
diff --git a/fortran/src/Makefile.in b/fortran/src/Makefile.in
index 0b55961..a223a31 100644
--- a/fortran/src/Makefile.in
+++ b/fortran/src/Makefile.in
@@ -112,7 +112,8 @@ noinst_PROGRAMS = H5match_types$(EXEEXT) H5fortran_detect$(EXEEXT) \
 TESTS =
 subdir = fortran/src
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \
+	$(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs
@@ -469,7 +470,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ -I$(top_srcdir)/src \
 AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ $(am__append_1)
 AM_MAKEFLAGS = @AM_MAKEFLAGS@
 AR = @AR@
-AS = @AS@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -501,7 +501,6 @@ DIRECT_VFD = @DIRECT_VFD@
 DLLTOOL = @DLLTOOL@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
-DYNAMIC_DIRS = @DYNAMIC_DIRS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -520,17 +519,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@
 FCLIBS = @FCLIBS@
 FC_VERSION = @FC_VERSION@
 FGREP = @FGREP@
-FILTERS = @FILTERS@
 FSEARCH_DIRS = @FSEARCH_DIRS@
 GREP = @GREP@
 H5_CFLAGS = @H5_CFLAGS@
 H5_CPPFLAGS = @H5_CPPFLAGS@
 H5_CXXFLAGS = @H5_CXXFLAGS@
-H5_CXX_SHARED = @H5_CXX_SHARED@
 H5_FCFLAGS = @H5_FCFLAGS@
 H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@
 H5_LDFLAGS = @H5_LDFLAGS@
-H5_LONE_COLON = @H5_LONE_COLON@
 H5_VERSION = @H5_VERSION@
 HADDR_T = @HADDR_T@
 HAVE_DMALLOC = @HAVE_DMALLOC@
@@ -553,7 +549,6 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INSTRUMENT = @INSTRUMENT@
 INSTRUMENT_LIBRARY = @INSTRUMENT_LIBRARY@
-LARGEFILE = @LARGEFILE@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
@@ -594,7 +589,6 @@ R_INTEGER = @R_INTEGER@
 R_LARGE = @R_LARGE@
 SEARCH = @SEARCH@
 SED = @SED@
-SETX = @SETX@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIZE_T = @SIZE_T@
@@ -609,10 +603,6 @@ TR = @TR@
 TRACE_API = @TRACE_API@
 UNAME_INFO = @UNAME_INFO@
 USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@
-USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@
-USE_FILTER_NBIT = @USE_FILTER_NBIT@
-USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@
-USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@
 USE_FILTER_SZIP = @USE_FILTER_SZIP@
 USINGMEMCHECKER = @USINGMEMCHECKER@
 VERSION = @VERSION@
@@ -726,15 +716,15 @@ TRACE = perl $(top_srcdir)/bin/trace
 
 # .chkexe files are used to mark tests that have run successfully.
 # .chklog files are output from those tests.
-# *.clog are from the MPE option.
-CHECK_CLEANFILES = *.chkexe *.chklog *.clog
+# *.clog and *.clog2 are from the MPE option.
+CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2
 
 # Add libtool shared library version numbers to the HDF5 library
 # See libtool versioning documentation online.
 # 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_INTERFACE = 10
+LT_VERS_REVISION = 0 
 LT_VERS_AGE = 0
 AM_FCLIBS = $(LIBHDF5)
 
diff --git a/fortran/src/README b/fortran/src/README
index 508da69..7af5df3 100644
--- a/fortran/src/README
+++ b/fortran/src/README
@@ -35,8 +35,6 @@ following platforms and compilers:
      *  SunOS 5.6  with  WorkshopCompilers 4.2 Fortran 90 1.2
      *  SunOS 5.7  with  WorkshopCompilers 5.0 Fortran 90 2.0 
      *  OSF1 V4.0  with  Digital Fortran 90 4.1 
-     *  IRIX64 6.5 (64 option only) with  MIPSpro Compilers: Version 7.3.1m    
-                          mpt.1.4
      *  Linux RedHat 6.1, Kernel 2.2.12 with PGF90
      *  T3E with Cray Fortran: Version 3.4.0.0
             with mpt 1.3
@@ -55,7 +53,6 @@ Compilation
 
      solaris
      digunix
-     irix
      linux
 
    Example: On Digital Unix systems use the following command
@@ -91,7 +88,6 @@ Compilation
    grpdsetexample    - creates datasets in the groups
    hyperslabexample  - writes and reads a hyperslab
    selectele         - writes element selections
-   grpit             - iterates through the members of the group
    attrexample       - creates and writes a dataset attribute
    compound          - creates, writes and reads one dim array of structures
    mountexample      - shows how to use mounting files to access a dataset
diff --git a/fortran/src/h5fc.in b/fortran/src/h5fc.in
index b5a6486..6e2c9d3 100644
--- a/fortran/src/h5fc.in
+++ b/fortran/src/h5fc.in
@@ -313,7 +313,7 @@ if test "x$do_link" = "xyes"; then
     hpux*)                flag="-Wl,+b -Wl," ;;
     freebsd*|solaris*)    flag="-R" ;;
     rs6000*|aix*)         flag="-L" ;;
-    irix*|sgi)            flag="-rpath " ;;
+    sgi)                  flag="-rpath " ;;
     *)                    flag="" ;;
   esac
 
diff --git a/fortran/src/hdf5_fortrandll.def.in b/fortran/src/hdf5_fortrandll.def.in
index c9c5e76..48fb343 100644
--- a/fortran/src/hdf5_fortrandll.def.in
+++ b/fortran/src/hdf5_fortrandll.def.in
@@ -543,7 +543,6 @@ 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
@@ -560,6 +559,9 @@ H5T_mp_H5TGET_CREATE_PLIST_F
 H5T_mp_H5TCOMPILER_CONV_F
 H5T_mp_H5TGET_NATIVE_TYPE_F
 @H5_NOF03EXP at H5T_PROVISIONAL_mp_H5TCONVERT_F
+ at H5_F03EXP@H5T_PROVISIONAL_mp_H5TENUM_INSERT_F
+ at H5_NOF03EXP@H5T_PROVISIONAL_mp_H5TENUM_INSERT_F90
+ at H5_NOF03EXP@H5T_PROVISIONAL_mp_H5TENUM_INSERT_F03
 ; H5Z
 H5Z_mp_H5ZUNREGISTER_F
 H5Z_mp_H5ZFILTER_AVAIL_F
diff --git a/fortran/test/CMakeLists.txt b/fortran/test/CMakeLists.txt
index d10f2ef..2893156 100644
--- a/fortran/test/CMakeLists.txt
+++ b/fortran/test/CMakeLists.txt
@@ -1,16 +1,17 @@
-cmake_minimum_required (VERSION 2.8.11)
+cmake_minimum_required (VERSION 3.1.0)
 PROJECT (HDF5_FORTRAN_TESTS C CXX Fortran)
 
 #-----------------------------------------------------------------------------
 # Setup include Directories
 #-----------------------------------------------------------------------------
-INCLUDE_DIRECTORIES (${CMAKE_Fortran_MODULE_DIRECTORY} ${HDF5_F90_BINARY_DIR} ${HDF5_F90_SRC_DIR}/src)
+INCLUDE_DIRECTORIES (${HDF5_F90_BINARY_DIR} ${HDF5_F90_SRC_DIR}/src)
 
 #-----------------------------------------------------------------------------
 # Add Test Lib
 #-----------------------------------------------------------------------------
 add_library (${HDF5_F90_C_TEST_LIB_TARGET} ${LIB_TYPE} t.c)
-TARGET_C_PROPERTIES (${HDF5_F90_C_TEST_LIB_TARGET} " " " ")
+set_source_files_properties (t.c PROPERTIES LANGUAGE C)
+TARGET_C_PROPERTIES (${HDF5_F90_C_TEST_LIB_TARGET} ${LIB_TYPE} " " " ")
 target_link_libraries (${HDF5_F90_C_TEST_LIB_TARGET}
     ${HDF5_F90_C_LIB_TARGET}
     ${HDF5_TEST_LIB_TARGET}
@@ -18,12 +19,14 @@ target_link_libraries (${HDF5_F90_C_TEST_LIB_TARGET}
 H5_SET_LIB_OPTIONS (${HDF5_F90_C_TEST_LIB_TARGET} ${HDF5_F90_C_TEST_LIB_NAME} ${LIB_TYPE})
 set_target_properties (${HDF5_F90_C_TEST_LIB_TARGET} PROPERTIES
     FOLDER libraries/test/fortran
+    LINKER_LANGUAGE C
     INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>"
 )
 
 # 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.
 
+set_source_files_properties (tf_F90.f90 tf_F03.f90 tf_F08.f90 tf.f90 PROPERTIES LANGUAGE Fortran)
 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)
@@ -36,15 +39,14 @@ endif (FORTRAN_HAVE_STORAGE_SIZE AND FORTRAN_HAVE_C_SIZEOF)
 set (SHARED_LINK_FLAGS " ")
 if (WIN32)
   if (BUILD_SHARED_LIBS)
-    set_property (TARGET ${HDF5_F90_TEST_LIB_TARGET} APPEND PROPERTY COMPILE_DEFINITIONS BUILD_HDF5_DLL)
+    set_property (TARGET ${HDF5_F90_TEST_LIB_TARGET} APPEND PROPERTY COMPILE_DEFINITIONS BUILD_HDF5_TEST_DLL)
     if (MSVC)
       set (SHARED_LINK_FLAGS "/DLL")
     endif (MSVC)
   endif (BUILD_SHARED_LIBS)
   set_property (TARGET ${HDF5_F90_TEST_LIB_TARGET} APPEND PROPERTY COMPILE_DEFINITIONS HDF5F90_WINDOWS)
 endif (WIN32)
-TARGET_FORTRAN_PROPERTIES (${HDF5_F90_TEST_LIB_TARGET} " " ${SHARED_LINK_FLAGS})
-set_target_properties (${HDF5_F90_TEST_LIB_TARGET} PROPERTIES LINKER_LANGUAGE Fortran)
+TARGET_FORTRAN_PROPERTIES (${HDF5_F90_TEST_LIB_TARGET} ${LIB_TYPE} " " ${SHARED_LINK_FLAGS})
 target_link_libraries (${HDF5_F90_TEST_LIB_TARGET}
     ${HDF5_F90_C_TEST_LIB_TARGET}
     ${HDF5_F90_LIB_TARGET}
@@ -53,7 +55,9 @@ target_link_libraries (${HDF5_F90_TEST_LIB_TARGET}
 H5_SET_LIB_OPTIONS (${HDF5_F90_TEST_LIB_TARGET} ${HDF5_F90_TEST_LIB_NAME} ${LIB_TYPE})
 set_target_properties (${HDF5_F90_TEST_LIB_TARGET} PROPERTIES
     FOLDER libraries/test/fortran
+    LINKER_LANGUAGE Fortran
     INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>"
+    Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}
 )
 
 #-----------------------------------------------------------------------------
@@ -79,7 +83,7 @@ add_executable (testhdf5_fortran
     tHDF5.f90
 )
 TARGET_NAMING (testhdf5_fortran ${LIB_TYPE})
-TARGET_FORTRAN_PROPERTIES (testhdf5_fortran " " " ")
+TARGET_FORTRAN_PROPERTIES (testhdf5_fortran ${LIB_TYPE} " " " ")
 target_link_libraries (testhdf5_fortran 
     ${HDF5_F90_TEST_LIB_TARGET}
     ${HDF5_F90_LIB_TARGET}
@@ -88,8 +92,12 @@ target_link_libraries (testhdf5_fortran
 if (WIN32 AND MSVC)
   target_link_libraries (testhdf5_fortran "ws2_32.lib")
 endif (WIN32 AND MSVC)
-set_target_properties (testhdf5_fortran PROPERTIES LINKER_LANGUAGE Fortran)
-set_target_properties (testhdf5_fortran PROPERTIES FOLDER test/fortran)
+target_include_directories (testhdf5_fortran PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/static)
+set_target_properties (testhdf5_fortran PROPERTIES
+    LINKER_LANGUAGE Fortran
+    FOLDER test/fortran
+    Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}
+)
 
 #-- Adding test for testhdf5_fortran_1_8
 add_executable (testhdf5_fortran_1_8
@@ -101,7 +109,7 @@ add_executable (testhdf5_fortran_1_8
     tHDF5_1_8.f90
 )
 TARGET_NAMING (testhdf5_fortran_1_8 ${LIB_TYPE})
-TARGET_FORTRAN_PROPERTIES (testhdf5_fortran_1_8 " " " ")
+TARGET_FORTRAN_PROPERTIES (testhdf5_fortran_1_8 ${LIB_TYPE} " " " ")
 target_link_libraries (testhdf5_fortran_1_8 
     ${HDF5_F90_TEST_LIB_TARGET}
     ${HDF5_F90_LIB_TARGET}
@@ -110,8 +118,12 @@ target_link_libraries (testhdf5_fortran_1_8
 if (WIN32 AND MSVC)
   target_link_libraries (testhdf5_fortran_1_8 "ws2_32.lib")
 endif (WIN32 AND MSVC)
-set_target_properties (testhdf5_fortran_1_8 PROPERTIES LINKER_LANGUAGE Fortran)
-set_target_properties (testhdf5_fortran_1_8 PROPERTIES FOLDER test/fortran)
+target_include_directories (testhdf5_fortran_1_8 PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/static)
+set_target_properties (testhdf5_fortran_1_8 PROPERTIES
+    LINKER_LANGUAGE Fortran
+    FOLDER test/fortran
+    Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}
+)
 
 #-- Adding test for fortranlib_test_F03
 if (HDF5_ENABLE_F2003)
@@ -126,7 +138,7 @@ if (HDF5_ENABLE_F2003)
       tHDF5_F03.f90
   )
   TARGET_NAMING (fortranlib_test_F03 ${LIB_TYPE})
-  TARGET_FORTRAN_PROPERTIES (fortranlib_test_F03 " " " ")
+  TARGET_FORTRAN_PROPERTIES (fortranlib_test_F03 ${LIB_TYPE} " " " ")
   target_link_libraries (fortranlib_test_F03 
       ${HDF5_F90_TEST_LIB_TARGET}
       ${HDF5_F90_LIB_TARGET}
@@ -135,14 +147,18 @@ if (HDF5_ENABLE_F2003)
   if (WIN32 AND MSVC)
     target_link_libraries (fortranlib_test_F03 "ws2_32.lib")
   endif (WIN32 AND MSVC)
-  set_target_properties (fortranlib_test_F03 PROPERTIES LINKER_LANGUAGE Fortran)
-  set_target_properties (fortranlib_test_F03 PROPERTIES FOLDER test/fortran)
+  target_include_directories (fortranlib_test_F03 PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/static)
+  set_target_properties (fortranlib_test_F03 PROPERTIES
+      LINKER_LANGUAGE Fortran
+      FOLDER test/fortran
+      Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}
+  )
 endif (HDF5_ENABLE_F2003)
 
 #-- Adding test for fflush1
 add_executable (fflush1 fflush1.f90)
 TARGET_NAMING (fflush1 ${LIB_TYPE})
-TARGET_FORTRAN_PROPERTIES (fflush1 " " " ")
+TARGET_FORTRAN_PROPERTIES (fflush1 ${LIB_TYPE} " " " ")
 target_link_libraries (fflush1 
     ${HDF5_F90_LIB_TARGET}
     ${HDF5_F90_TEST_LIB_TARGET}
@@ -151,13 +167,17 @@ target_link_libraries (fflush1
 if (WIN32 AND MSVC)
   target_link_libraries (fflush1 "ws2_32.lib")
 endif (WIN32 AND MSVC)
-set_target_properties (fflush1 PROPERTIES LINKER_LANGUAGE Fortran)
-set_target_properties (fflush1 PROPERTIES FOLDER test/fortran)
+target_include_directories (fflush1 PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/static)
+set_target_properties (fflush1 PROPERTIES
+    LINKER_LANGUAGE Fortran
+    FOLDER test/fortran
+    Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}
+)
 
 #-- Adding test for fflush2
 add_executable (fflush2 fflush2.f90)
 TARGET_NAMING (fflush2 ${LIB_TYPE})
-TARGET_FORTRAN_PROPERTIES (fflush2 " " " ")
+TARGET_FORTRAN_PROPERTIES (fflush2 ${LIB_TYPE} " " " ")
 target_link_libraries (fflush2 
     ${HDF5_F90_TEST_LIB_TARGET}
     ${HDF5_F90_LIB_TARGET}
@@ -166,7 +186,11 @@ target_link_libraries (fflush2
 if (WIN32 AND MSVC)
   target_link_libraries (fflush2 "ws2_32.lib")
 endif (WIN32 AND MSVC)
-set_target_properties (fflush2 PROPERTIES LINKER_LANGUAGE Fortran)
-set_target_properties (fflush2 PROPERTIES FOLDER test/fortran)
+target_include_directories (fflush2 PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY}/static)
+set_target_properties (fflush2 PROPERTIES
+    LINKER_LANGUAGE Fortran
+    FOLDER test/fortran
+    Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}
+)
 
 include (CMakeTests.cmake)
diff --git a/fortran/test/CMakeTests.cmake b/fortran/test/CMakeTests.cmake
index 6a9c535..4df50ad 100644
--- a/fortran/test/CMakeTests.cmake
+++ b/fortran/test/CMakeTests.cmake
@@ -11,11 +11,13 @@ set_tests_properties (FORTRAN_testhdf5_fortran PROPERTIES PASS_REGULAR_EXPRESSIO
 #-- Adding test for testhdf5_fortran_1_8
 add_test (NAME FORTRAN_testhdf5_fortran_1_8 COMMAND $<TARGET_FILE:testhdf5_fortran_1_8>)
 set_tests_properties (FORTRAN_testhdf5_fortran_1_8 PROPERTIES PASS_REGULAR_EXPRESSION "[ ]*0 error.s")
+set_tests_properties (FORTRAN_testhdf5_fortran_1_8 PROPERTIES DEPENDS FORTRAN_testhdf5_fortran)
 
 #-- Adding test for fortranlib_test_F03
 if (HDF5_ENABLE_F2003)
   add_test (NAME FORTRAN_fortranlib_test_F03 COMMAND $<TARGET_FILE:fortranlib_test_F03>)
   set_tests_properties (FORTRAN_fortranlib_test_F03 PROPERTIES PASS_REGULAR_EXPRESSION "[ ]*0 error.s")
+  set_tests_properties (FORTRAN_fortranlib_test_F03 PROPERTIES DEPENDS FORTRAN_testhdf5_fortran_1_8)
 endif (HDF5_ENABLE_F2003)
 
 #-- Adding test for fflush1
diff --git a/fortran/test/Makefile.in b/fortran/test/Makefile.in
index ca91cf5..4ec1ad5 100644
--- a/fortran/test/Makefile.in
+++ b/fortran/test/Makefile.in
@@ -92,7 +92,8 @@ check_PROGRAMS = $(am__EXEEXT_2)
 TESTS = $(am__EXEEXT_2)
 subdir = fortran/test
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \
+	$(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs
@@ -478,7 +479,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ -I$(top_builddir)/fortran/src \
 AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ $(am__append_1)
 AM_MAKEFLAGS = @AM_MAKEFLAGS@
 AR = @AR@
-AS = @AS@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -510,7 +510,6 @@ DIRECT_VFD = @DIRECT_VFD@
 DLLTOOL = @DLLTOOL@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
-DYNAMIC_DIRS = @DYNAMIC_DIRS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -529,17 +528,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@
 FCLIBS = @FCLIBS@
 FC_VERSION = @FC_VERSION@
 FGREP = @FGREP@
-FILTERS = @FILTERS@
 FSEARCH_DIRS = @FSEARCH_DIRS@
 GREP = @GREP@
 H5_CFLAGS = @H5_CFLAGS@
 H5_CPPFLAGS = @H5_CPPFLAGS@
 H5_CXXFLAGS = @H5_CXXFLAGS@
-H5_CXX_SHARED = @H5_CXX_SHARED@
 H5_FCFLAGS = @H5_FCFLAGS@
 H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@
 H5_LDFLAGS = @H5_LDFLAGS@
-H5_LONE_COLON = @H5_LONE_COLON@
 H5_VERSION = @H5_VERSION@
 HADDR_T = @HADDR_T@
 HAVE_DMALLOC = @HAVE_DMALLOC@
@@ -562,7 +558,6 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INSTRUMENT = @INSTRUMENT@
 INSTRUMENT_LIBRARY = @INSTRUMENT_LIBRARY@
-LARGEFILE = @LARGEFILE@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
@@ -603,7 +598,6 @@ R_INTEGER = @R_INTEGER@
 R_LARGE = @R_LARGE@
 SEARCH = @SEARCH@
 SED = @SED@
-SETX = @SETX@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIZE_T = @SIZE_T@
@@ -618,10 +612,6 @@ TR = @TR@
 TRACE_API = @TRACE_API@
 UNAME_INFO = @UNAME_INFO@
 USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@
-USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@
-USE_FILTER_NBIT = @USE_FILTER_NBIT@
-USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@
-USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@
 USE_FILTER_SZIP = @USE_FILTER_SZIP@
 USINGMEMCHECKER = @USINGMEMCHECKER@
 VERSION = @VERSION@
@@ -735,10 +725,10 @@ TRACE = perl $(top_srcdir)/bin/trace
 
 # .chkexe files are used to mark tests that have run successfully.
 # .chklog files are output from those tests.
-# *.clog are from the MPE option.
+# *.clog and *.clog2 are from the MPE option.
 
 # Temporary files
-CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.h5 *.raw
+CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 *.h5 *.raw
 
 # The Fortran test library
 noinst_LTLIBRARIES = libh5test_fortran.la
diff --git a/fortran/test/fortranlib_test_1_8.f90 b/fortran/test/fortranlib_test_1_8.f90
index 039dc6c..320d661 100644
--- a/fortran/test/fortranlib_test_1_8.f90
+++ b/fortran/test/fortranlib_test_1_8.f90
@@ -89,7 +89,7 @@ PROGRAM fortranlibtest
        total_error)
 
   ret_total_error = 0
-  CALL test_h5s_encode(cleanup, ret_total_error)
+  CALL test_h5s_encode(ret_total_error)
   CALL write_test_status(ret_total_error, &
        ' Testing dataspace encoding and decoding', &
        total_error)
@@ -100,6 +100,12 @@ PROGRAM fortranlibtest
        ' Testing scaleoffset filter', &
        total_error)
 
+  ret_total_error = 0
+  CALL test_genprop_basic_class(ret_total_error )
+  CALL write_test_status(ret_total_error, &
+       ' Testing basic generic property list class creation functionality', &
+       total_error)
+
   WRITE(*,*)
 
   WRITE(*,*) '                  ============================================  '
diff --git a/fortran/test/t.h b/fortran/test/t.h
index d315bda..6d6af52 100644
--- a/fortran/test/t.h
+++ b/fortran/test/t.h
@@ -34,7 +34,7 @@ H5_FCTESTDLL int_f nh5_fixname_c
 H5_FCTESTDLL int_f nh5_cleanup_c
 (_fcd base_name, size_t_f *base_namelen, hid_t_f *fapl);
 
-H5_FCTESTDLL void nh5_exit_c
+H5_FCTESTDLL NORETURN void nh5_exit_c
 (int_f *status);
 
 H5_FCTESTDLL void nh5_env_nocleanup_c
diff --git a/fortran/test/tH5A.f90 b/fortran/test/tH5A.f90
index 07ca6da..e3b3b2a 100644
--- a/fortran/test/tH5A.f90
+++ b/fortran/test/tH5A.f90
@@ -129,8 +129,6 @@ CONTAINS
      !data buffers
      !
      INTEGER, DIMENSION(NX,NY) :: data_in
-     LOGICAL :: differ
-
 
      !
      !Initialize data_in buffer
diff --git a/fortran/test/tH5A_1_8.f90 b/fortran/test/tH5A_1_8.f90
index 02bef53..8e20100 100644
--- a/fortran/test/tH5A_1_8.f90
+++ b/fortran/test/tH5A_1_8.f90
@@ -157,7 +157,7 @@ SUBROUTINE attribute_test_1_8(cleanup, total_error)
                 '   - Testing creating attributes by name', &
                 total_error)
 
-             ! /* More complex tests with both "new format" and "shared" attributes */
+             !  More complex tests with both "new format" and "shared" attributes 
            IF( use_shared(j) ) THEN
               ret_total_error = 0
               CALL test_attr_shared_rename(my_fcpl, my_fapl, ret_total_error)
@@ -190,12 +190,12 @@ END SUBROUTINE attribute_test_1_8
 
 SUBROUTINE test_attr_corder_create_compact(fcpl,fapl, total_error)
 
-!/****************************************************************
+!***************************************************************
 !**
 !**  test_attr_corder_create_compact(): Test basic H5A (attribute) code.
 !**      Tests compact attribute storage on objects with attribute creation order info
 !**
-!****************************************************************/
+!***************************************************************
 
 ! Needed for get_info_by_name
 
@@ -245,17 +245,17 @@ SUBROUTINE test_attr_corder_create_compact(fcpl,fapl, total_error)
   data_dims = 0
 
 !  WRITE(*,*) "     - Testing Compact Storage of Attributes with Creation Order Info"
-  ! /* Create file */
+  !  Create file 
   CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, fid, error, fcpl, fapl)
   CALL check("h5fcreate_f",error,total_error)
-  ! /* Create dataset creation property list */
+  !  Create dataset creation property list 
   CALL H5Pcreate_f(H5P_DATASET_CREATE_F,dcpl,error)
   CALL check("h5Pcreate_f",error,total_error)
 
   CALL H5Pset_attr_creation_order_f(dcpl, IOR(H5P_CRT_ORDER_TRACKED_F, H5P_CRT_ORDER_INDEXED_F), error)
   CALL check("H5Pset_attr_creation_order",error,total_error)
 
-  ! /* Query the attribute creation properties */
+  !  Query the attribute creation properties 
   CALL H5Pget_attr_phase_change_f(dcpl, max_compact, min_dense, error)
   CALL check("H5Pget_attr_phase_change_f",error,total_error)
 
@@ -281,7 +281,7 @@ SUBROUTINE test_attr_corder_create_compact(fcpl,fapl, total_error)
         my_dataset = dset3
      END SELECT
     DO u = 0, max_compact - 1
-       ! /* Create attribute */
+       !  Create attribute 
        WRITE(chr2,'(I2.2)') u
        attrname = 'attr '//chr2
 
@@ -298,7 +298,7 @@ SUBROUTINE test_attr_corder_create_compact(fcpl,fapl, total_error)
     END DO
   END DO
 
-  !  /* Close Datasets */
+  !   Close Datasets 
   CALL h5dclose_f(dset1, error)
   CALL check("h5dclose_f",error,total_error)
   CALL h5dclose_f(dset2, error)
@@ -306,15 +306,15 @@ SUBROUTINE test_attr_corder_create_compact(fcpl,fapl, total_error)
   CALL h5dclose_f(dset3, error)
   CALL check("h5dclose_f",error,total_error)
 
-  !   /* Close file */
+  !    Close file 
   CALL h5fclose_f(fid, error)
   CALL check("h5fclose_f",error,total_error)
 
-  ! /* Close dataspace */
+  !  Close dataspace 
   CALL h5sclose_f(sid, error)
   CALL check("h5sclose_f",error,total_error)
 
-  ! /* Close property list */
+  !  Close property list 
   CALL h5pclose_f(dcpl, error)
   CALL check("h5pclose_f",error,total_error)
 
@@ -341,34 +341,34 @@ SUBROUTINE test_attr_corder_create_compact(fcpl,fapl, total_error)
      DO u = 0,max_compact-1
         WRITE(chr2,'(I2.2)') u
         attrname = 'attr '//chr2
-        ! /* Retrieve information for attribute */
+        !  Retrieve information for attribute 
 
         CALL H5Aget_info_by_name_f(my_dataset, ".", attrname, &
              f_corder_valid, corder, cset, data_size, error, lapl_id = H5P_DEFAULT_F ) !with optional
 
         CALL check("H5Aget_info_by_name_f", error, total_error)
 
-        ! /* Verify creation order of attribute */
+        !  Verify creation order of attribute 
 
         CALL verifyLogical("H5Aget_info_by_name_f", f_corder_valid, .TRUE., total_error)
         CALL verify("H5Aget_info_by_name_f", corder, u, total_error)
 
 
-        ! /* Retrieve information for attribute */
+        !  Retrieve information for attribute 
 
         CALL H5Aget_info_by_name_f(my_dataset, ".", attrname, &
              f_corder_valid, corder, cset, data_size, error) ! without optional
 
         CALL check("H5Aget_info_by_name_f", error, total_error)
 
-        ! /* Verify creation order of attribute */
+        !  Verify creation order of attribute 
 
         CALL verifyLogical("H5Aget_info_by_name_f", f_corder_valid, .TRUE., total_error)
         CALL verify("H5Aget_info_by_name_f", corder, u, total_error)
 
      END DO
   END DO
-  !  /* Close Datasets */
+  !   Close Datasets 
   CALL h5dclose_f(dset1, error)
   CALL check("h5dclose_f",error,total_error)
   CALL h5dclose_f(dset2, error)
@@ -376,19 +376,19 @@ SUBROUTINE test_attr_corder_create_compact(fcpl,fapl, total_error)
   CALL h5dclose_f(dset3, error)
   CALL check("h5dclose_f",error,total_error)
 
-  !   /* Close file */
+  !    Close file 
   CALL h5fclose_f(fid, error)
   CALL check("h5fclose_f",error,total_error)
 
 END SUBROUTINE test_attr_corder_create_compact
 
 SUBROUTINE test_attr_null_space(fcpl, fapl, total_error)
-!/****************************************************************
+!***************************************************************
 !**
 !**  test_attr_null_space(): Test basic H5A (attribute) code.
 !**      Tests storing attribute with "null" dataspace
 !**
-!****************************************************************/
+!***************************************************************
   USE HDF5
   USE TH5_MISC
 
@@ -426,41 +426,41 @@ SUBROUTINE test_attr_null_space(fcpl, fapl, total_error)
 
   data_dims = 0
 
-  ! /* Create file */
+  !  Create file 
   CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, fid, error, fcpl, fapl)
   CALL check("h5fcreate_f",error,total_error)
-  ! /* Close file */
+  !  Close file 
   CALL h5fclose_f(fid, error)
   CALL check("h5fclose_f",error,total_error)
 
-  ! /* Re-open file */
+  !  Re-open file 
   CALL h5fopen_f(FileName, H5F_ACC_RDWR_F, fid, error)
   CALL check("h5open_f",error,total_error)
-  ! /* Create dataspace for dataset attributes */
+  !  Create dataspace for dataset attributes 
   CALL h5screate_f(H5S_SCALAR_F, sid, error)
   CALL check("h5screate_f",error,total_error)
-  ! /* Create "null" dataspace for attribute */
+  !  Create "null" dataspace for attribute 
   CALL h5screate_f(H5S_NULL_F, null_sid, error)
   CALL check("h5screate_f",error,total_error)
-  ! /* Create a dataset */
+  !  Create a dataset 
   CALL h5dcreate_f(fid, DSET1_NAME, H5T_NATIVE_CHARACTER, sid, dataset, error)
   CALL check("h5dcreate_f",error,total_error)
-  ! /* Add attribute with 'null' dataspace */
+  !  Add attribute with 'null' dataspace 
 
-  ! /* Create attribute */
+  !  Create attribute 
   CALL h5acreate_f(dataset, "null attr", H5T_NATIVE_INTEGER, null_sid, attr, error)
   CALL check("h5acreate_f",error,total_error)
 
-  ! /* Try to read data from the attribute */
-  ! /* (shouldn't fail, but should leave buffer alone) */
+  !  Try to read data from the attribute 
+  !  (shouldn't fail, but should leave buffer alone) 
   value(1) = 103
   data_dims(1) = 1
   CALL h5aread_f(attr, H5T_NATIVE_INTEGER, value, data_dims, error)
   CALL check("h5aread_f",error,total_error)
   CALL verify("h5aread_f",value(1),103,total_error)
 
-! /* Try to read data from the attribute again but*/
-! /* for a scalar */
+!  Try to read data from the attribute again but
+!  for a scalar 
 
   value_scalar = 104
   data_dims(1) = 1
@@ -482,7 +482,7 @@ SUBROUTINE test_attr_null_space(fcpl, fapl, total_error)
   CALL h5aget_info_f(attr, f_corder_valid, corder, cset, data_size,  error)
   CALL check("h5aget_info_f", error, total_error)
 
-  ! /* Check the attribute's information */
+  !  Check the attribute's information 
   CALL VERIFY("h5aget_info_f.corder",corder,0,total_error)
 
   CALL VERIFY("h5aget_info_f.cset", cset, H5T_CSET_ASCII_F, total_error)
@@ -513,12 +513,12 @@ END SUBROUTINE test_attr_null_space
 
 SUBROUTINE test_attr_create_by_name(new_format,fcpl,fapl, total_error)
 
-!/****************************************************************
+!***************************************************************
 !**
 !**  test_attr_create_by_name(): Test basic H5A (attribute) code.
 !**      Tests creating attributes by name
 !**
-!****************************************************************/
+!***************************************************************
 
   USE HDF5
   USE TH5_MISC
@@ -563,32 +563,32 @@ SUBROUTINE test_attr_create_by_name(new_format,fcpl,fapl, total_error)
   data_dims = 0
 
 
-  ! /* Create dataspace for dataset & attributes */
+  !  Create dataspace for dataset & attributes 
   CALL h5screate_f(H5S_SCALAR_F, sid, error)
   CALL check("h5screate_f",error,total_error)
 
-  ! /* Create dataset creation property list */
+  !  Create dataset creation property list 
   CALL H5Pcreate_f(H5P_DATASET_CREATE_F,dcpl,error)
   CALL check("h5Pcreate_f",error,total_error)
 
-  ! /* Query the attribute creation properties */
+  !  Query the attribute creation properties 
 
   CALL H5Pget_attr_phase_change_f(dcpl, max_compact, min_dense, error)
   CALL check("H5Pget_attr_phase_change_f",error,total_error)
 
-  ! /* Loop over using index for creation order value */
+  !  Loop over using index for creation order value 
   DO i = 1, 2
-     ! /* Print appropriate test message */
+     !  Print appropriate test message 
      IF(use_index(i))THEN
         WRITE(*,*) "   - Testing Creating Attributes By Name w/Creation Order Index"
      ELSE
         WRITE(*,*) "   - Testing Creating Attributes By Name w/o Creation Order Index"
      ENDIF
-     ! /* Create file */
+     !  Create file 
      CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, fid, error, fcpl, fapl)
      CALL check("h5fcreate_f",error,total_error)
 
-     ! /* Set attribute creation order tracking & indexing for object */
+     !  Set attribute creation order tracking & indexing for object 
      IF(new_format)THEN
 
         IF(use_index(i))THEN
@@ -602,7 +602,7 @@ SUBROUTINE test_attr_create_by_name(new_format,fcpl,fapl, total_error)
 
      ENDIF
 
-     ! /* Create datasets */
+     !  Create datasets 
 
      CALL h5dcreate_f(fid, DSET1_NAME, H5T_NATIVE_CHARACTER, sid, dset1, error, dcpl_id=dcpl )
      CALL check("h5dcreate_f2",error,total_error)
@@ -614,7 +614,7 @@ SUBROUTINE test_attr_create_by_name(new_format,fcpl,fapl, total_error)
      CALL check("h5dcreate_f4",error,total_error)
 
 
-     ! /* Work on all the datasets */
+     !  Work on all the datasets 
 
      DO curr_dset = 0,NUM_DSETS-1
         SELECT CASE (curr_dset)
@@ -632,39 +632,39 @@ SUBROUTINE test_attr_create_by_name(new_format,fcpl,fapl, total_error)
         END SELECT
 
 
-        !/* Create attributes, up to limit of compact form */
+        ! Create attributes, up to limit of compact form 
 
         DO u = 0, max_compact - 1
-           ! /* Create attribute */
+           !  Create attribute 
            WRITE(chr2,'(I2.2)') u
            attrname = 'attr '//chr2
            CALL H5Acreate_by_name_f(fid, dsetname, attrname, H5T_NATIVE_INTEGER, sid, &
                 attr, error, lapl_id=H5P_DEFAULT_F, acpl_id=H5P_DEFAULT_F, aapl_id=H5P_DEFAULT_F)
            CALL check("H5Acreate_by_name_f",error,total_error)
 
-           ! /* Write data into the attribute */
+           !  Write data into the attribute 
 
            data_dims(1) = 1
            CALL h5awrite_f(attr, H5T_NATIVE_INTEGER, u, data_dims, error)
            CALL check("h5awrite_f",error,total_error)
 
-           ! /* Close attribute */
+           !  Close attribute 
            CALL h5aclose_f(attr, error)
            CALL check("h5aclose_f",error,total_error)
 
-           ! /* Verify information for NEW attribute */
+           !  Verify information for NEW attribute 
            CALL attr_info_by_idx_check(my_dataset, attrname, INT(u,HSIZE_T), use_index(i), total_error)
          !   CALL check("FAILED IN attr_info_by_idx_check",total_error)
         ENDDO
 
-        ! /* Test opening attributes stored compactly */
+        !  Test opening attributes stored compactly 
 
         CALL attr_open_check(fid, dsetname, my_dataset, u, total_error)
 
      ENDDO
 
 
-     ! /* Work on all the datasets */
+     !  Work on all the datasets 
      DO curr_dset = 0,NUM_DSETS-1
         SELECT CASE (curr_dset)
         CASE (0)
@@ -678,7 +678,7 @@ SUBROUTINE test_attr_create_by_name(new_format,fcpl,fapl, total_error)
            dsetname = DSET3_NAME
         END SELECT
 
-        ! /* Create more attributes, to push into dense form */
+        !  Create more attributes, to push into dense form 
         DO u = max_compact, max_compact* 2 - 1
 
            WRITE(chr2,'(I2.2)') u
@@ -688,12 +688,12 @@ SUBROUTINE test_attr_create_by_name(new_format,fcpl,fapl, total_error)
                 attr, error, lapl_id=H5P_DEFAULT_F)
            CALL check("H5Acreate_by_name",error,total_error)
 
-           ! /* Write data into the attribute */
+           !  Write data into the attribute 
            data_dims(1) = 1
            CALL h5awrite_f(attr, H5T_NATIVE_INTEGER, u, data_dims, error)
            CALL check("h5awrite_f",error,total_error)
 
-           ! /* Close attribute */
+           !  Close attribute 
            CALL h5aclose_f(attr, error)
            CALL check("h5aclose_f",error,total_error)
 
@@ -701,7 +701,7 @@ SUBROUTINE test_attr_create_by_name(new_format,fcpl,fapl, total_error)
 
      ENDDO
 
-     ! /* Close Datasets */
+     !  Close Datasets 
      CALL h5dclose_f(dset1, error)
      CALL check("h5dclose_f",error,total_error)
      CALL h5dclose_f(dset2, error)
@@ -710,16 +710,16 @@ SUBROUTINE test_attr_create_by_name(new_format,fcpl,fapl, total_error)
      CALL check("h5dclose_f",error,total_error)
 
 
-     ! /* Close file */
+     !  Close file 
      CALL h5fclose_f(fid, error)
      CALL check("h5fclose_f",error,total_error)
   ENDDO
 
-  ! /* Close property list */
+  !  Close property list 
   CALL h5pclose_f(dcpl, error)
   CALL check("h5pclose_f",error,total_error)
 
-  ! /* Close dataspace */
+  !  Close dataspace 
   CALL h5sclose_f(sid, error)
   CALL check("h5sclose_f",error,total_error)
 
@@ -728,12 +728,12 @@ END SUBROUTINE test_attr_create_by_name
 
 SUBROUTINE test_attr_info_by_idx(new_format, fcpl, fapl, total_error)
 
-!/****************************************************************
+!***************************************************************
 !**
 !**  test_attr_info_by_idx(): Test basic H5A (attribute) code.
 !**      Tests querying attribute info by index
 !**
-!****************************************************************/
+!***************************************************************
 
   USE HDF5
   USE TH5_MISC
@@ -790,31 +790,31 @@ SUBROUTINE test_attr_info_by_idx(new_format, fcpl, fapl, total_error)
 
   data_dims = 0
 
-  ! /* Create dataspace for dataset & attributes */
+  !  Create dataspace for dataset & attributes 
 
   CALL h5screate_f(H5S_SCALAR_F, sid, error)
   CALL check("h5screate_f",error,total_error)
 
 
-  ! /* Create dataset creation property list */
+  !  Create dataset creation property list 
 
   CALL H5Pcreate_f(H5P_DATASET_CREATE_F,dcpl,error)
   CALL check("h5Pcreate_f",error,total_error)
 
 
-  ! /* Query the attribute creation properties */
+  !  Query the attribute creation properties 
   CALL H5Pget_attr_phase_change_f(dcpl, max_compact, min_dense, error)
   CALL check("H5Pget_attr_phase_change_f",error,total_error)
 
-  !  /* Loop over using index for creation order value */
+  !   Loop over using index for creation order value 
 
   DO i = 1, 2
 
-     ! /* Create file */
+     !  Create file 
      CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, fid, error, fcpl, fapl)
      CALL check("h5fcreate_f",error,total_error)
 
-     ! /* Set attribute creation order tracking & indexing for object */
+     !  Set attribute creation order tracking & indexing for object 
      IF(new_format)THEN
         IF(use_index(i))THEN
            Input1 = H5P_CRT_ORDER_INDEXED_F
@@ -825,7 +825,7 @@ SUBROUTINE test_attr_info_by_idx(new_format, fcpl, fapl, total_error)
         CALL check("H5Pset_attr_creation_order",error,total_error)
      ENDIF
 
-     ! /* Create datasets */
+     !  Create datasets 
 
      CALL h5dcreate_f(fid, DSET1_NAME, H5T_NATIVE_CHARACTER, sid, dset1, error )
      CALL check("h5dcreate_f",error,total_error)
@@ -836,7 +836,7 @@ SUBROUTINE test_attr_info_by_idx(new_format, fcpl, fapl, total_error)
      CALL h5dcreate_f(fid, DSET3_NAME, H5T_NATIVE_CHARACTER, sid, dset3, error )
      CALL check("h5dcreate_f",error,total_error)
 
-     ! /* Work on all the datasets */
+     !  Work on all the datasets 
 
      DO curr_dset = 0,NUM_DSETS-1
 
@@ -849,7 +849,7 @@ SUBROUTINE test_attr_info_by_idx(new_format, fcpl, fapl, total_error)
            my_dataset = dset3
         END SELECT
 
-        ! /* Check for query on non-existant attribute */
+        !  Check for query on non-existant attribute 
 
         n = 0
 
@@ -879,10 +879,10 @@ SUBROUTINE test_attr_info_by_idx(new_format, fcpl, fapl, total_error)
         CALL VERIFY("h5aget_name_by_idx_f",error,minusone,total_error)
 
 
-        ! /* Create attributes, up to limit of compact form */
+        !  Create attributes, up to limit of compact form 
 
         DO j = 0, max_compact-1
-           ! /* Create attribute */
+           !  Create attribute 
            WRITE(chr2,'(I2.2)') j
            attrname = 'attr '//chr2
 
@@ -890,19 +890,19 @@ SUBROUTINE test_attr_info_by_idx(new_format, fcpl, fapl, total_error)
            CALL h5acreate_f(my_dataset, attrname, H5T_NATIVE_INTEGER, sid, attr, error, H5P_DEFAULT_F, H5P_DEFAULT_F)
            CALL check("h5acreate_f",error,total_error)
 
-           ! /* Write data into the attribute */
+           !  Write data into the attribute 
 
            attr_integer_data(1) = j
            data_dims(1) = 1
            CALL h5awrite_f(attr, H5T_NATIVE_INTEGER, attr_integer_data, data_dims, error)
            CALL check("h5awrite_f",error,total_error)
 
-           ! /* Close attribute */
+           !  Close attribute 
 
            CALL h5aclose_f(attr, error)
            CALL check("h5aclose_f",error,total_error)
 
-           ! /* Verify information for new attribute */
+           !  Verify information for new attribute 
 
 !EP        CALL attr_info_by_idx_check(my_dataset, attrname, INT(j,HSIZE_T), use_index(i), total_error )
            htmp = j
@@ -914,7 +914,7 @@ SUBROUTINE test_attr_info_by_idx(new_format, fcpl, fapl, total_error)
      ENDDO
 
 
-     !  /* Close Datasets */
+     !   Close Datasets 
      CALL h5dclose_f(dset1, error)
      CALL check("h5dclose_f",error,total_error)
      CALL h5dclose_f(dset2, error)
@@ -922,17 +922,17 @@ SUBROUTINE test_attr_info_by_idx(new_format, fcpl, fapl, total_error)
      CALL h5dclose_f(dset3, error)
      CALL check("h5dclose_f",error,total_error)
 
-     !   /* Close file */
+     !    Close file 
      CALL h5fclose_f(fid, error)
      CALL check("h5fclose_f",error,total_error)
 
   END DO
 
-  ! /* Close property list */
+  !  Close property list 
   CALL h5pclose_f(dcpl,error)
   CALL check("h5pclose_f", error, total_error)
 
-  ! /* Close dataspace */
+  !  Close dataspace 
   CALL h5sclose_f(sid, error)
   CALL check("h5sclose_f",error,total_error)
 
@@ -962,13 +962,13 @@ SUBROUTINE attr_info_by_idx_check(obj_id, attrname, n, use_index, total_error )
   INTEGER(HSIZE_T) :: hzero = 0_HSIZE_T
 
 
-  ! /* Verify the information for first attribute, in increasing creation order */
+  !  Verify the information for first attribute, in increasing creation order 
   CALL h5aget_info_by_idx_f(obj_id, ".", H5_INDEX_CRT_ORDER_F, H5_ITER_INC_F, hzero, &
        f_corder_valid, corder, cset, data_size, error)
 
   CALL check("h5aget_info_by_idx_f",error,total_error)
   CALL verify("h5aget_info_by_idx_f",corder,0,total_error)
-  ! /* Verify the information for new attribute, in increasing creation order */
+  !  Verify the information for new attribute, in increasing creation order 
 
   CALL h5aget_info_by_idx_f(obj_id, ".", H5_INDEX_CRT_ORDER_F, H5_ITER_INC_F, n, &
        f_corder_valid, corder, cset, data_size, error)
@@ -976,7 +976,7 @@ SUBROUTINE attr_info_by_idx_check(obj_id, attrname, n, use_index, total_error )
   CALL check("h5aget_info_by_idx_f",error,total_error)
   CALL VERIFY("h5aget_info_by_idx_f",corder,INT(n),total_error)
 
-  ! /* Verify the name for new link, in increasing creation order */
+  !  Verify the name for new link, in increasing creation order 
 
   ! Try with the correct buffer size
 
@@ -990,24 +990,24 @@ SUBROUTINE attr_info_by_idx_check(obj_id, attrname, n, use_index, total_error )
   ENDIF
   CALL VERIFY("h5aget_name_by_idx_f",error,0,total_error)
 
-  !  /* Don't test "native" order if there is no creation order index, since
+  !   Don't test "native" order if there is no creation order index, since
   !   *  there's not a good way to easily predict the attribute's order in the name
   !   *  index.
-  !   */
+  !   
   IF (use_index) THEN
-     ! /* Verify the information for first attribute, in native creation order */
+     !  Verify the information for first attribute, in native creation order 
      CALL h5aget_info_by_idx_f(obj_id, ".", H5_INDEX_CRT_ORDER_F, H5_ITER_NATIVE_F, hzero, &
           f_corder_valid, corder, cset, data_size, error)
      CALL check("h5aget_info_by_idx_f",error,total_error)
      CALL VERIFY("h5aget_info_by_idx_f",corder,0,total_error)
 
-     ! /* Verify the information for new attribute, in native creation order */
+     !  Verify the information for new attribute, in native creation order 
      CALL h5aget_info_by_idx_f(obj_id, ".", H5_INDEX_CRT_ORDER_F, H5_ITER_NATIVE_F, n, &
           f_corder_valid, corder, cset, data_size, error)
      CALL check("h5aget_info_by_idx_f",error,total_error)
      CALL VERIFY("h5aget_info_by_idx_f",corder,INT(n),total_error)
 
-   ! /* Verify the name for new link, in increasing native order */
+   !  Verify the name for new link, in increasing native order 
      CALL h5aget_name_by_idx_f(obj_id, ".", H5_INDEX_CRT_ORDER_F, H5_ITER_NATIVE_F, &
           n, tmpname, error) ! check with no optional parameters
      CALL check("h5aget_name_by_idx_f",error,total_error)
@@ -1075,12 +1075,12 @@ END SUBROUTINE attr_info_by_idx_check
 
 SUBROUTINE test_attr_shared_rename( fcpl, fapl, total_error)
 
-!/****************************************************************
+!***************************************************************
 !**
 !**  test_attr_shared_rename(): Test basic H5A (attribute) code.
 !**      Tests renaming shared attributes in "compact" & "dense" storage
 !**
-!****************************************************************/
+!***************************************************************
 
   USE HDF5
   USE TH5_MISC
@@ -1128,114 +1128,114 @@ SUBROUTINE test_attr_shared_rename( fcpl, fapl, total_error)
   INTEGER(HSIZE_T), DIMENSION(1) :: adims2 = (/1/) ! Attribute dimension
   INTEGER     ::   arank = 1                      ! Attribure rank
 
-  ! /* Initialize "big" attribute data */
+  !  Initialize "big" attribute data 
 
-  ! /* Create dataspace for dataset */
+  !  Create dataspace for dataset 
   CALL h5screate_f(H5S_SCALAR_F, sid, error)
   CALL check("h5screate_f",error,total_error)
 
-  ! /* Create "big" dataspace for "large" attributes */
+  !  Create "big" dataspace for "large" attributes 
 
   CALL h5screate_simple_f(arank, adims2, big_sid, error)
   CALL check("h5screate_simple_f",error,total_error)
 
-  ! /* Loop over type of shared components */
+  !  Loop over type of shared components 
   DO test_shared = 0, 2
-     ! /* Make copy of file creation property list */
+     !  Make copy of file creation property list 
      CALL H5Pcopy_f(fcpl, my_fcpl, error)
      CALL check("H5Pcopy",error,total_error)
 
-     ! /* Set up datatype for attributes */
+     !  Set up datatype for attributes 
 
      CALL H5Tcopy_f(H5T_NATIVE_INTEGER, attr_tid, error)
      CALL check("H5Tcopy",error,total_error)
 
-     ! /* Special setup for each type of shared components */
+     !  Special setup for each type of shared components 
 
      IF( test_shared .EQ. 0) THEN
-        ! /* Make attributes > 500 bytes shared */
+        !  Make attributes > 500 bytes shared 
         CALL H5Pset_shared_mesg_nindexes_f(my_fcpl,1,error)
         CALL check("H5Pset_shared_mesg_nindexes_f",error, total_error)
         CALL H5Pset_shared_mesg_index_f(my_fcpl, 0, H5O_SHMESG_ATTR_FLAG_F, 500,error)
         CALL check(" H5Pset_shared_mesg_index_f",error, total_error)
 
      ELSE
-        ! /* Set up copy of file creation property list */
+        !  Set up copy of file creation property list 
         CALL H5Pset_shared_mesg_nindexes_f(my_fcpl,3,error)
 
-        ! /* Make attributes > 500 bytes shared */
+        !  Make attributes > 500 bytes shared 
         CALL H5Pset_shared_mesg_index_f(my_fcpl, 0, H5O_SHMESG_ATTR_FLAG_F, 500,error)
-        ! /* Make datatypes & dataspaces > 1 byte shared (i.e. all of them :-) */
+        !  Make datatypes & dataspaces > 1 byte shared (i.e. all of them :-) 
         CALL H5Pset_shared_mesg_index_f(my_fcpl, 1, H5O_SHMESG_DTYPE_FLAG_F, 1,error)
         CALL H5Pset_shared_mesg_index_f(my_fcpl, 2,  H5O_SHMESG_SDSPACE_FLAG_F, 1,error)
      ENDIF
 
-     ! /* Create file */
+     !  Create file 
      CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, fid, error, my_fcpl, fapl)
      CALL check("h5fcreate_f",error,total_error)
 
-     ! /* Close FCPL copy */
+     !  Close FCPL copy 
      CALL h5pclose_f(my_fcpl, error)
      CALL check("h5pclose_f", error, total_error)
-     ! /* Close file */
+     !  Close file 
      CALL h5fclose_f(fid, error)
      CALL check("h5fclose_f",error,total_error)
 
-     ! /* Re-open file */
+     !  Re-open file 
      CALL h5fopen_f(FileName, H5F_ACC_RDWR_F, fid, error,fapl)
      CALL check("h5open_f",error,total_error)
 
-     ! /* Commit datatype to file */
+     !  Commit datatype to file 
      IF(test_shared.EQ.2) THEN
         CALL H5Tcommit_f(fid, TYPE1_NAME, attr_tid, error, H5P_DEFAULT_F, H5P_DEFAULT_F, H5P_DEFAULT_F)
         CALL check("H5Tcommit",error,total_error)
      ENDIF
 
-     ! /* Set up to query the object creation properties */
+     !  Set up to query the object creation properties 
      CALL H5Pcreate_f(H5P_DATASET_CREATE_F,dcpl,error)
      CALL check("h5Pcreate_f",error,total_error)
 
-     ! /* Create datasets */
+     !  Create datasets 
      CALL h5dcreate_f(fid, DSET1_NAME, H5T_NATIVE_CHARACTER, sid, dataset, error, dcpl_id=dcpl )
      CALL check("h5dcreate_f",error,total_error)
      CALL h5dcreate_f(fid, DSET2_NAME, H5T_NATIVE_CHARACTER, sid, dataset2, error, dcpl_id=dcpl )
      CALL check("h5dcreate_f",error,total_error)
 
-     ! /* Retrieve limits for compact/dense attribute storage */
+     !  Retrieve limits for compact/dense attribute storage 
      CALL H5Pget_attr_phase_change_f(dcpl, max_compact, min_dense, error)
      CALL check("H5Pget_attr_phase_change_f",error,total_error)
 
-     ! /* Close property list */
+     !  Close property list 
      CALL h5pclose_f(dcpl,error)
      CALL check("h5pclose_f", error, total_error)
 
-     ! /* Add attributes to each dataset, until after converting to dense storage */
+     !  Add attributes to each dataset, until after converting to dense storage 
      DO u = 0, (max_compact * 2) - 1
 
-        ! /* Create attribute name */
+        !  Create attribute name 
         WRITE(chr2,'(I2.2)') u
         attrname = 'attr '//chr2
 
-        ! /* Alternate between creating "small" & "big" attributes */
+        !  Alternate between creating "small" & "big" attributes 
 
         IF(MOD(u+1,2).EQ.0)THEN
-           ! /* Create "small" attribute on first dataset */
+           !  Create "small" attribute on first dataset 
 
            CALL h5acreate_f(dataset, attrname, attr_tid, sid, attr, error, H5P_DEFAULT_F, H5P_DEFAULT_F)
            CALL check("h5acreate_f",error,total_error)
 
-           ! /* Write data into the attribute */
+           !  Write data into the attribute 
            attr_integer_data(1) = u + 1
            data_dims(1) = 1
            CALL h5awrite_f(attr, attr_tid, attr_integer_data, data_dims, error)
            CALL check("h5awrite_f",error,total_error)
         ELSE
-           !  Create "big" attribute on first dataset */
+           !  Create "big" attribute on first dataset 
 
            CALL h5acreate_f(dataset, attrname, attr_tid, big_sid, attr, error, H5P_DEFAULT_F, H5P_DEFAULT_F)
            CALL check("h5acreate_f",error,total_error)
 
-           !  Write data into the attribute */
+           !  Write data into the attribute 
 
            data_dims(1) = 1
            attr_integer_data(1) = u + 1
@@ -1244,19 +1244,19 @@ SUBROUTINE test_attr_shared_rename( fcpl, fapl, total_error)
 
         ENDIF
 
-        ! /* Close attribute */
+        !  Close attribute 
         CALL h5aclose_f(attr, error)
         CALL check("h5aclose_f",error,total_error)
 
-        ! /* Alternate between creating "small" & "big" attributes */
+        !  Alternate between creating "small" & "big" attributes 
         IF(MOD(u+1,2).EQ.0)THEN
 
-           !  /* Create "small" attribute on second dataset */
+           !   Create "small" attribute on second dataset 
 
            CALL h5acreate_f(dataset2, attrname, attr_tid, sid, attr, error, H5P_DEFAULT_F, H5P_DEFAULT_F)
            CALL check("h5acreate_f",error,total_error)
 
-           ! /* Write data into the attribute */
+           !  Write data into the attribute 
 
            attr_integer_data(1) = u + 1
            data_dims(1) = 1
@@ -1264,12 +1264,12 @@ SUBROUTINE test_attr_shared_rename( fcpl, fapl, total_error)
            CALL check("h5awrite_f",error,total_error)
         ELSE
 
-           ! /* Create "big" attribute on second dataset */
+           !  Create "big" attribute on second dataset 
 
            CALL h5acreate_f(dataset2, attrname, attr_tid, big_sid, attr, error, H5P_DEFAULT_F, H5P_DEFAULT_F)
            CALL check("h5acreate_f",error,total_error)
 
-! /* Write data into the attribute */
+!  Write data into the attribute 
 
 
            attr_integer_data(1) = u + 1
@@ -1278,103 +1278,103 @@ SUBROUTINE test_attr_shared_rename( fcpl, fapl, total_error)
 !           CALL check("h5awrite_f",error,total_error)
 
 
-! /* Check refcount for attribute */
+!  Check refcount for attribute 
         ENDIF
-        ! /* Close attribute */
+        !  Close attribute 
         CALL h5aclose_f(attr, error)
         CALL check("h5aclose_f",error,total_error)
 
-        ! /* Create new attribute name */
+        !  Create new attribute name 
 
         WRITE(chr2,'(I2.2)') u
         attrname2 = 'new attr '//chr2
 
 
-        ! /* Change second dataset's attribute's name */
+        !  Change second dataset's attribute's name 
 
         CALL H5Arename_by_name_f(fid, DSET2_NAME, attrname, attrname2, error, lapl_id=H5P_DEFAULT_F)
         CALL check("H5Arename_by_name_f",error,total_error)
 
-        ! /* Check refcount on attributes now */
+        !  Check refcount on attributes now 
 
-        ! /* Check refcount on renamed attribute */
+        !  Check refcount on renamed attribute 
 
         CALL H5Aopen_f(dataset2, attrname2, attr, error, aapl_id=H5P_DEFAULT_F)
         CALL check("H5Aopen_f",error,total_error)
 
-        ! /* Close attribute */
+        !  Close attribute 
         CALL h5aclose_f(attr, error)
         CALL check("h5aclose_f",error,total_error)
 
-        ! /* Check refcount on original attribute */
+        !  Check refcount on original attribute 
         CALL H5Aopen_f(dataset, attrname, attr, error)
         CALL check("H5Aopen",error,total_error)
 
-        ! /* Close attribute */
+        !  Close attribute 
         CALL h5aclose_f(attr, error)
         CALL check("h5aclose_f",error,total_error)
 
 
-        ! /* Change second dataset's attribute's name back to original */
+        !  Change second dataset's attribute's name back to original 
 
         CALL H5Arename_by_name_f(fid, DSET2_NAME, attrname2, attrname, error)
         CALL check("H5Arename_by_name_f",error,total_error)
 
-        ! /* Check refcount on attributes now */
+        !  Check refcount on attributes now 
 
-        ! /* Check refcount on renamed attribute */
+        !  Check refcount on renamed attribute 
         CALL H5Aopen_f(dataset2, attrname, attr, error)
         CALL check("H5Aopen",error,total_error)
 
-        ! /* Close attribute */
+        !  Close attribute 
         CALL h5aclose_f(attr, error)
         CALL check("h5aclose_f",error,total_error)
 
-        ! /* Check refcount on original attribute */
+        !  Check refcount on original attribute 
 
-        ! /* Check refcount on renamed attribute */
+        !  Check refcount on renamed attribute 
         CALL H5Aopen_f(dataset, attrname, attr, error)
         CALL check("H5Aopen",error,total_error)
 
-        ! /* Close attribute */
+        !  Close attribute 
         CALL h5aclose_f(attr, error)
         CALL check("h5aclose_f",error,total_error)
 
      ENDDO
 
-     ! /* Close attribute's datatype */
+     !  Close attribute's datatype 
      CALL h5tclose_f(attr_tid, error)
      CALL check("h5tclose_f",error,total_error)
 
-     ! /* Close attribute's datatype */
+     !  Close attribute's datatype 
      CALL h5dclose_f(dataset, error)
      CALL check("h5dclose_f",error,total_error)
      CALL h5dclose_f(dataset2, error)
      CALL check("h5dclose_f",error,total_error)
 
 
-     ! /* Unlink datasets with attributes */
+     !  Unlink datasets with attributes 
      CALL H5Ldelete_f(fid, DSET1_NAME, error, H5P_DEFAULT_F)
      CALL check("HLdelete",error,total_error)
      CALL H5Ldelete_f(fid, DSET2_NAME, error)
      CALL check("HLdelete",error,total_error)
 
-     !/* Unlink committed datatype */
+     ! Unlink committed datatype 
      IF(test_shared == 2)THEN
         CALL H5Ldelete_f(fid, TYPE1_NAME, error)
         CALL check("HLdelete_f",error,total_error)
      ENDIF
 
-     ! /* Close file */
+     !  Close file 
      CALL h5fclose_f(fid, error)
      CALL check("h5fclose_f",error,total_error)
 
-     ! /* Check size of file */
+     !  Check size of file 
      !filesize = h5_get_file_size(FILENAME);
      !VERIFY(filesize, empty_filesize, "h5_get_file_size");
   ENDDO
 
-  ! /* Close dataspaces */
+  !  Close dataspaces 
   CALL h5sclose_f(sid, error)
   CALL check("h5sclose_f",error,total_error)
   CALL h5sclose_f(big_sid, error)
@@ -1385,12 +1385,12 @@ END SUBROUTINE test_attr_shared_rename
 
 SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error)
 
-!/****************************************************************
+!***************************************************************
 !**
 !**  test_attr_delete_by_idx(): Test basic H5A (attribute) code.
 !**      Tests deleting attribute by index
 !**
-!****************************************************************/
+!***************************************************************
 
   USE HDF5
   USE TH5_MISC
@@ -1402,9 +1402,9 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error)
   INTEGER(HID_T), INTENT(IN) :: fapl
   INTEGER, INTENT(INOUT) :: total_error
   CHARACTER(LEN=8) :: FileName = "tattr.h5"
-  INTEGER(HID_T) :: fid ! /* HDF5 File ID			*/
-  INTEGER(HID_T) :: dcpl ! /* Dataset creation property list ID */
-  INTEGER(HID_T) :: sid ! /* Dataspace ID			*/
+  INTEGER(HID_T) :: fid !  HDF5 File ID			
+  INTEGER(HID_T) :: dcpl !  Dataset creation property list ID 
+  INTEGER(HID_T) :: sid !  Dataspace ID			
 
   CHARACTER(LEN=8) :: DSET1_NAME = "Dataset1"
   CHARACTER(LEN=8) :: DSET2_NAME = "Dataset2"
@@ -1442,40 +1442,40 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error)
 
   INTEGER :: idx_type
   INTEGER :: order
-  INTEGER :: u     ! /* Local index variable */
+  INTEGER :: u     !  Local index variable 
   INTEGER :: Input1
   INTEGER(HSIZE_T) :: hzero = 0_HSIZE_T
   INTEGER :: minusone = -1
 
   data_dims = 0
 
-  ! /* Create dataspace for dataset & attributes */
+  !  Create dataspace for dataset & attributes 
   CALL h5screate_f(H5S_SCALAR_F, sid, error)
   CALL check("h5screate_f",error,total_error)
 
-  !    /* Create dataset creation property list */
+  !     Create dataset creation property list 
   CALL H5Pcreate_f(H5P_DATASET_CREATE_F,dcpl,error)
   CALL check("h5Pcreate_f",error,total_error)
 
-  ! /* Query the attribute creation properties */
+  !  Query the attribute creation properties 
   CALL H5Pget_attr_phase_change_f(dcpl, max_compact, min_dense, error)
   CALL check("H5Pget_attr_phase_change_f",error,total_error)
 
 
-  !/* Loop over operating on different indices on link fields */
+  ! Loop over operating on different indices on link fields 
   DO idx_type = H5_INDEX_NAME_F, H5_INDEX_CRT_ORDER_F
 
-     ! /* Loop over operating in different orders */
+     !  Loop over operating in different orders 
      DO order = H5_ITER_INC_F, H5_ITER_DEC_F
 
-        ! /* Loop over using index for creation order value */
+        !  Loop over using index for creation order value 
         DO i = 1, 2
 
-           ! /* Create file */
+           !  Create file 
            CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, fid, error, fcpl, fapl)
            CALL check("h5fcreate_f",error,total_error)
 
-           !  /* Set attribute creation order tracking & indexing for object */
+           !   Set attribute creation order tracking & indexing for object 
            IF(new_format)THEN
 
               IF(use_index(i))THEN
@@ -1489,7 +1489,7 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error)
 
            ENDIF
 
-           ! /* Create datasets */
+           !  Create datasets 
 
            CALL h5dcreate_f(fid, DSET1_NAME, H5T_NATIVE_CHARACTER, sid, dset1, error, dcpl )
            CALL check("h5dcreate_f2",error,total_error)
@@ -1500,7 +1500,7 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error)
            CALL h5dcreate_f(fid, DSET3_NAME, H5T_NATIVE_CHARACTER, sid, dset3, error, dcpl )
            CALL check("h5dcreate_f4",error,total_error)
 
-           !   /* Work on all the datasets */
+           !    Work on all the datasets 
 
            DO curr_dset = 0,NUM_DSETS-1
               SELECT CASE (curr_dset)
@@ -1515,36 +1515,36 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error)
               END SELECT
 
 
-              ! /* Check for deleting non-existant attribute */
+              !  Check for deleting non-existant attribute 
 !EP              CALL H5Adelete_by_idx_f(my_dataset, '.', idx_type, order, 0_HSIZE_T,error, lapl_id=H5P_DEFAULT_F)
               CALL H5Adelete_by_idx_f(my_dataset, '.', idx_type, order, hzero,error, lapl_id=H5P_DEFAULT_F)
               CALL VERIFY("H5Adelete_by_idx_f",error,minusone,total_error)
 
-              !    /* Create attributes, up to limit of compact form */
+              !     Create attributes, up to limit of compact form 
               DO u = 0, max_compact - 1
-                 ! /* Create attribute */
+                 !  Create attribute 
                  WRITE(chr2,'(I2.2)') u
                  attrname = 'attr '//chr2
 
                  CALL h5acreate_f(my_dataset, attrname, H5T_NATIVE_INTEGER, sid, attr, error, H5P_DEFAULT_F, H5P_DEFAULT_F)
                  CALL check("h5acreate_f",error,total_error)
 
-                 ! /* Write data into the attribute */
+                 !  Write data into the attribute 
                  attr_integer_data(1) = u
                  data_dims(1) = 1
                  CALL h5awrite_f(attr, H5T_NATIVE_INTEGER, attr_integer_data, data_dims, error)
                  CALL check("h5awrite_f",error,total_error)
 
-                 ! /* Close attribute */
+                 !  Close attribute 
                  CALL h5aclose_f(attr, error)
                  CALL check("h5aclose_f",error,total_error)
 
-                 ! /* Verify information for new attribute */
+                 !  Verify information for new attribute 
                  CALL attr_info_by_idx_check(my_dataset, attrname, INT(u,HSIZE_T), use_index(i), total_error )
 
               ENDDO
 
-              !/* Check for out of bound deletions */
+              ! Check for out of bound deletions 
               CALL H5Adelete_by_idx_f(my_dataset, ".", idx_type, order, INT(u,HSIZE_T), error, lapl_id=H5P_DEFAULT_F)
               CALL VERIFY("H5Adelete_by_idx_f",error,minusone,total_error)
 
@@ -1563,11 +1563,11 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error)
                  !        CALL HDassert(0.AND."Toomanydatasets!")
               END SELECT
 
-              ! /* Delete attributes from compact storage */
+              !  Delete attributes from compact storage 
 
               DO u = 0, max_compact - 2
 
-                 ! /* Delete first attribute in appropriate order */
+                 !  Delete first attribute in appropriate order 
 
 
 !EP                 CALL H5Adelete_by_idx_f(my_dataset, ".", idx_type, order, 0_HSIZE_T, error)
@@ -1575,7 +1575,7 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error)
                  CALL check("H5Adelete_by_idx_f",error,total_error)
 
 
-                 ! /* Verify the attribute information for first attribute in appropriate order */
+                 !  Verify the attribute information for first attribute in appropriate order 
                  ! HDmemset(&ainfo, 0, sizeof(ainfo));
 
 !EP                 CALL h5aget_info_by_idx_f(my_dataset, ".", idx_type, order, 0_HSIZE_T, &
@@ -1590,7 +1590,7 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error)
                     CALL VERIFY("H5Aget_info_by_idx_f",corder, max_compact-(u + 2),total_error)
                  ENDIF
 
-                   ! /* Verify the name for first attribute in appropriate order */
+                   !  Verify the name for first attribute in appropriate order 
 
                  size = 7 ! *CHECK* IF NOT THE SAME SIZE
                  CALL h5aget_name_by_idx_f(my_dataset, ".", idx_type, order,INT(0,hsize_t), &
@@ -1607,7 +1607,7 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error)
                  CALL VERIFY("h5aget_name_by_idx_f",error,0,total_error)
               ENDDO
 
-              ! /* Delete last attribute */
+              !  Delete last attribute 
 
 !EP              CALL H5Adelete_by_idx_f(my_dataset, ".", idx_type, order, 0_HSIZE_T, error)
               CALL H5Adelete_by_idx_f(my_dataset, ".", idx_type, order, hzero, error)
@@ -1615,7 +1615,7 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error)
 
            ENDDO
 
-!   /* Work on all the datasets */
+!    Work on all the datasets 
 
            DO curr_dset = 0,NUM_DSETS-1
               SELECT CASE (curr_dset)
@@ -1629,11 +1629,11 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error)
                  !        CALL HDassert(0.AND."Toomanydatasets!")
               END SELECT
 
-              ! /* Create more attributes, to push into dense form */
+              !  Create more attributes, to push into dense form 
 
               DO u = 0, (max_compact * 2) - 1
 
-                 ! /* Create attribute */
+                 !  Create attribute 
                  WRITE(chr2,'(I2.2)') u
                  attrname = 'attr '//chr2
 
@@ -1641,24 +1641,24 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error)
                  CALL check("h5acreate_f",error,total_error)
 
 
-                 ! /* Write data into the attribute */
+                 !  Write data into the attribute 
                  attr_integer_data(1) = u
                  data_dims(1) = 1
                  CALL h5awrite_f(attr, H5T_NATIVE_INTEGER, attr_integer_data, data_dims, error)
                  CALL check("h5awrite_f",error,total_error)
 
-                 ! /* Close attribute */
+                 !  Close attribute 
                  CALL h5aclose_f(attr, error)
                  CALL check("h5aclose_f",error,total_error)
 
 
               ENDDO
-              ! /* Check for out of bound deletion */
+              !  Check for out of bound deletion 
               CALL H5Adelete_by_idx_f(my_dataset, ".", idx_type, order, INT(u,HSIZE_T), error)
               CALL VERIFY("H5Adelete_by_idx_f",error,minusone,total_error)
            ENDDO
 
-           ! /* Work on all the datasets */
+           !  Work on all the datasets 
 
            DO curr_dset = 0,NUM_DSETS-1
               SELECT CASE (curr_dset)
@@ -1670,15 +1670,15 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error)
                  my_dataset = dset3
               END SELECT
 
-              ! /* Delete attributes from dense storage */
+              !  Delete attributes from dense storage 
 
               DO u = 0, (max_compact * 2) - 1 - 1
 
-                 ! /* Delete first attribute in appropriate order */
+                 !  Delete first attribute in appropriate order 
 
                  CALL H5Adelete_by_idx_f(my_dataset, ".", idx_type, order, INT(0,HSIZE_T), error)
                  CALL check("H5Adelete_by_idx_f",error,total_error)
-                 ! /* Verify the attribute information for first attribute in appropriate order */
+                 !  Verify the attribute information for first attribute in appropriate order 
 
                  CALL h5aget_info_by_idx_f(my_dataset, ".", idx_type, order, INT(0,HSIZE_T), &
                       f_corder_valid, corder, cset, data_size, error)
@@ -1690,7 +1690,7 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error)
                     CALL VERIFY("H5Aget_info_by_idx_f",corder, ((max_compact * 2) - (u + 2)), total_error)
                  ENDIF
 
-                 ! /* Verify the name for first attribute in appropriate order */
+                 !  Verify the name for first attribute in appropriate order 
                  ! HDmemset(tmpname, 0, (size_t)NAME_BUF_SIZE);
 
                  size = 7 ! *CHECK* if not the correct size
@@ -1709,17 +1709,17 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error)
 
 
               ENDDO
-              ! /* Delete last attribute */
+              !  Delete last attribute 
 
               CALL H5Adelete_by_idx_f(my_dataset, ".", idx_type, order, INT(0,HSIZE_T), error, lapl_id=H5P_DEFAULT_F)
               CALL check("H5Adelete_by_idx_f",error,total_error)
 
-              !/* Check for deletion on empty attribute storage again */
+              ! Check for deletion on empty attribute storage again 
               CALL H5Adelete_by_idx_f(my_dataset, ".", idx_type, order, INT(0,HSIZE_T), error)
               CALL VERIFY("H5Adelete_by_idx_f",error,minusone,total_error)
            ENDDO
 
-           !  /* Close Datasets */
+           !   Close Datasets 
            CALL h5dclose_f(dset1, error)
            CALL check("h5dclose_f",error,total_error)
            CALL h5dclose_f(dset2, error)
@@ -1727,18 +1727,18 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error)
            CALL h5dclose_f(dset3, error)
            CALL check("h5dclose_f",error,total_error)
 
-           !   /* Close file */
+           !    Close file 
            CALL h5fclose_f(fid, error)
            CALL check("h5fclose_f",error,total_error)
         ENDDO
      ENDDO
   ENDDO
 
-  ! /* Close property list */
+  !  Close property list 
   CALL h5pclose_f(dcpl,error)
   CALL check("h5pclose_f", error, total_error)
 
-  ! /* Close dataspace */
+  !  Close dataspace 
   CALL h5sclose_f(sid, error)
   CALL check("h5sclose_f",error,total_error)
 
@@ -1746,12 +1746,12 @@ END SUBROUTINE test_attr_delete_by_idx
 
 SUBROUTINE test_attr_shared_delete(fcpl, fapl, total_error)
 
-!/****************************************************************
+!***************************************************************
 !**
 !**  test_attr_shared_delete(): Test basic H5A (attribute) code.
 !**      Tests deleting shared attributes in "compact" & "dense" storage
 !**
-!****************************************************************/
+!***************************************************************
 
   USE HDF5
   USE TH5_MISC
@@ -1796,77 +1796,77 @@ SUBROUTINE test_attr_shared_delete(fcpl, fapl, total_error)
   INTEGER(HSIZE_T), DIMENSION(1) :: adims2 = (/1/) ! Attribute dimension
   INTEGER     ::   arank = 1                      ! Attribure rank
 
-  ! /* Output message about test being performed */
+  !  Output message about test being performed 
 
-  ! /* Initialize "big" attribute DATA */
-  !    /* Create dataspace for dataset */
+  !  Initialize "big" attribute DATA 
+  !     Create dataspace for dataset 
   CALL h5screate_f(H5S_SCALAR_F, sid, error)
   CALL check("h5screate_f",error,total_error)
 
-  !/* Create "big" dataspace for "large" attributes */
+  ! Create "big" dataspace for "large" attributes 
 
   CALL h5screate_simple_f(arank, adims2, big_sid, error)
   CALL check("h5screate_simple_f",error,total_error)
 
-  ! /* Loop over type of shared components */
+  !  Loop over type of shared components 
 
   DO test_shared = 0, 2
 
-     ! /* Make copy of file creation property list */
+     !  Make copy of file creation property list 
 
      CALL H5Pcopy_f(fcpl, my_fcpl, error)
      CALL check("H5Pcopy",error,total_error)
 
-     ! /* Set up datatype for attributes */
+     !  Set up datatype for attributes 
 
      CALL H5Tcopy_f(H5T_NATIVE_INTEGER, attr_tid, error)
      CALL check("H5Tcopy",error,total_error)
 
-     ! /* Special setup for each type of shared components */
+     !  Special setup for each type of shared components 
      IF( test_shared .EQ. 0) THEN
-        ! /* Make attributes > 500 bytes shared */
+        !  Make attributes > 500 bytes shared 
         CALL H5Pset_shared_mesg_nindexes_f(my_fcpl,1,error)
         CALL check("H5Pset_shared_mesg_nindexes_f",error, total_error)
         CALL H5Pset_shared_mesg_index_f(my_fcpl, 0, H5O_SHMESG_ATTR_FLAG_F, 500,error)
         CALL check(" H5Pset_shared_mesg_index_f",error, total_error)
 
      ELSE
-        ! /* Set up copy of file creation property list */
+        !  Set up copy of file creation property list 
         CALL H5Pset_shared_mesg_nindexes_f(my_fcpl,3,error)
-        ! /* Make attributes > 500 bytes shared */
+        !  Make attributes > 500 bytes shared 
         CALL H5Pset_shared_mesg_index_f(my_fcpl, 0, H5O_SHMESG_ATTR_FLAG_F, 500,error)
-        ! /* Make datatypes & dataspaces > 1 byte shared (i.e. all of them :-) */
+        !  Make datatypes & dataspaces > 1 byte shared (i.e. all of them :-) 
         CALL H5Pset_shared_mesg_index_f(my_fcpl, 1, H5O_SHMESG_DTYPE_FLAG_F, 1,error)
         CALL H5Pset_shared_mesg_index_f(my_fcpl, 2,  H5O_SHMESG_SDSPACE_FLAG_F, 1,error)
      ENDIF
 
-     ! /* Create file */
+     !  Create file 
      CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, fid, error, my_fcpl, fapl)
      CALL check("h5fcreate_f",error,total_error)
 
-     ! /* Close FCPL copy */
+     !  Close FCPL copy 
      CALL h5pclose_f(my_fcpl, error)
      CALL check("h5pclose_f", error, total_error)
-     ! /* Close file */
+     !  Close file 
      CALL h5fclose_f(fid, error)
      CALL check("h5fclose_f",error,total_error)
 
-     ! /* Re-open file */
+     !  Re-open file 
      CALL h5fopen_f(FileName, H5F_ACC_RDWR_F, fid, error,fapl)
      CALL check("h5open_f",error,total_error)
 
-     ! /* Commit datatype to file */
+     !  Commit datatype to file 
 
      IF(test_shared.EQ.2) THEN
         CALL H5Tcommit_f(fid, TYPE1_NAME, attr_tid, error, H5P_DEFAULT_F, H5P_DEFAULT_F, H5P_DEFAULT_F)
         CALL check("H5Tcommit",error,total_error)
      ENDIF
 
-     ! /* Set up to query the object creation properties */
+     !  Set up to query the object creation properties 
      CALL H5Pcreate_f(H5P_DATASET_CREATE_F,dcpl,error)
      CALL check("h5Pcreate_f",error,total_error)
 
-     ! /* Create datasets */
+     !  Create datasets 
 
      CALL h5dcreate_f(fid, DSET1_NAME, H5T_NATIVE_CHARACTER, sid, dataset, error, dcpl_id=dcpl )
      CALL check("h5dcreate_f",error,total_error)
@@ -1874,42 +1874,42 @@ SUBROUTINE test_attr_shared_delete(fcpl, fapl, total_error)
      CALL h5dcreate_f(fid, DSET2_NAME, H5T_NATIVE_CHARACTER, sid, dataset2, error, dcpl_id=dcpl )
      CALL check("h5dcreate_f",error,total_error)
 
-     ! /* Retrieve limits for compact/dense attribute storage */
+     !  Retrieve limits for compact/dense attribute storage 
      CALL H5Pget_attr_phase_change_f(dcpl, max_compact, min_dense, error)
      CALL check("H5Pget_attr_phase_change_f",error,total_error)
 
-     ! /* Close property list */
+     !  Close property list 
      CALL h5pclose_f(dcpl,error)
      CALL check("h5pclose_f", error, total_error)
 
-     ! /* Add attributes to each dataset, until after converting to dense storage */
+     !  Add attributes to each dataset, until after converting to dense storage 
 
      DO u = 0, (max_compact * 2) - 1
 
-        ! /* Create attribute name */
+        !  Create attribute name 
         WRITE(chr2,'(I2.2)') u
         attrname = 'attr '//chr2
 
-        ! /* Alternate between creating "small" & "big" attributes */
+        !  Alternate between creating "small" & "big" attributes 
 
         IF(MOD(u+1,2).EQ.0)THEN
-           ! /* Create "small" attribute on first dataset */
+           !  Create "small" attribute on first dataset 
 
            CALL h5acreate_f(dataset, attrname, attr_tid, sid, attr, error, H5P_DEFAULT_F, H5P_DEFAULT_F)
            CALL check("h5acreate_f",error,total_error)
 
-           ! /* Write data into the attribute */
+           !  Write data into the attribute 
            attr_integer_data(1) = u + 1
            data_dims(1) = 1
            CALL h5awrite_f(attr, attr_tid, attr_integer_data, data_dims, error)
            CALL check("h5awrite_f",error,total_error)
         ELSE
-           !  Create "big" attribute on first dataset */
+           !  Create "big" attribute on first dataset 
 
            CALL h5acreate_f(dataset, attrname, attr_tid, big_sid, attr, error)
            CALL check("h5acreate_f",error,total_error)
 
-           !  Write data into the attribute */
+           !  Write data into the attribute 
 
            attr_integer_data(1) = u + 1
            data_dims(1) = 1
@@ -1918,31 +1918,31 @@ SUBROUTINE test_attr_shared_delete(fcpl, fapl, total_error)
 
         ENDIF
 
-        ! /* Close attribute */
+        !  Close attribute 
         CALL h5aclose_f(attr, error)
         CALL check("h5aclose_f",error,total_error)
 
-        ! /* Alternate between creating "small" & "big" attributes */
+        !  Alternate between creating "small" & "big" attributes 
         IF(MOD(u+1,2).EQ.0)THEN
 
-           !  /* Create "small" attribute on second dataset */
+           !   Create "small" attribute on second dataset 
 
            CALL h5acreate_f(dataset2, attrname, attr_tid, sid, attr, error)
            CALL check("h5acreate_f",error,total_error)
 
-           ! /* Write data into the attribute */
+           !  Write data into the attribute 
            attr_integer_data(1) = u + 1
            data_dims(1) = 1
            CALL h5awrite_f(attr, attr_tid, attr_integer_data, data_dims, error)
            CALL check("h5awrite_f",error,total_error)
         ELSE
 
-           ! /* Create "big" attribute on second dataset */
+           !  Create "big" attribute on second dataset 
 
            CALL h5acreate_f(dataset2, attrname, attr_tid, big_sid, attr, error, acpl_id=H5P_DEFAULT_F, aapl_id=H5P_DEFAULT_F)
            CALL check("h5acreate_f",error,total_error)
 
-! /* Write data into the attribute */
+!  Write data into the attribute 
 
 
            attr_integer_data(1) = u + 1
@@ -1951,21 +1951,21 @@ SUBROUTINE test_attr_shared_delete(fcpl, fapl, total_error)
            CALL check("h5awrite_f",error,total_error)
 
         ENDIF
-        ! /* Close attribute */
+        !  Close attribute 
         CALL h5aclose_f(attr, error)
         CALL check("h5aclose_f",error,total_error)
 
      ENDDO
 
-     ! /* Delete attributes from second dataset */
+     !  Delete attributes from second dataset 
 
      DO u = 0, max_compact*2-1
 
-        ! /* Create attribute name */
+        !  Create attribute name 
         WRITE(chr2,'(I2.2)') u
         attrname = 'attr '//chr2
 
-        ! /* Delete second dataset's attribute */
+        !  Delete second dataset's attribute 
         CALL H5Adelete_by_name_f(fid, DSET2_NAME, attrname,error,lapl_id=H5P_DEFAULT_F)
         CALL check("H5Adelete_by_name", error, total_error)
 
@@ -1973,31 +1973,31 @@ SUBROUTINE test_attr_shared_delete(fcpl, fapl, total_error)
         CALL check("h5aopen_f",error,total_error)
 
 
-        ! /* Close attribute */
+        !  Close attribute 
         CALL h5aclose_f(attr, error)
         CALL check("h5aclose_f",error,total_error)
      ENDDO
 
-     ! /* Close attribute's datatype */
+     !  Close attribute's datatype 
 
      CALL h5tclose_f(attr_tid, error)
      CALL check("h5tclose_f",error,total_error)
 
-     ! /* Close Datasets */
+     !  Close Datasets 
 
      CALL h5dclose_f(dataset, error)
      CALL check("h5dclose_f",error,total_error)
      CALL h5dclose_f(dataset2, error)
      CALL check("h5dclose_f",error,total_error)
 
-     ! /* Unlink datasets WITH attributes */
+     !  Unlink datasets WITH attributes 
 
      CALL h5ldelete_f(fid, DSET1_NAME, error, H5P_DEFAULT_F)
      CALL check("H5Ldelete_f", error, total_error)
      CALL h5ldelete_f(fid, DSET2_NAME, error)
      CALL check("H5Ldelete_f", error, total_error)
 
-     ! /* Unlink committed datatype */
+     !  Unlink committed datatype 
 
      IF( test_shared == 2) THEN
         CALL h5ldelete_f(fid, TYPE1_NAME, error)
@@ -2005,13 +2005,13 @@ SUBROUTINE test_attr_shared_delete(fcpl, fapl, total_error)
      ENDIF
 
 
-     ! /* Close file */
+     !  Close file 
      CALL h5fclose_f(fid, error)
      CALL check("h5fclose_f",error,total_error)
 
   ENDDO
 
-  ! /* Close dataspaces */
+  !  Close dataspaces 
   CALL h5sclose_f(sid, error)
   CALL check("h5sclose_f",error,total_error)
   CALL h5sclose_f(big_sid, error)
@@ -2023,12 +2023,12 @@ END SUBROUTINE test_attr_shared_delete
 
 SUBROUTINE test_attr_dense_open( fcpl, fapl, total_error)
 
-!/****************************************************************
+!***************************************************************
 !**
 !**  test_attr_dense_open(): Test basic H5A (attribute) code.
 !**      Tests opening attributes in "dense" storage
 !**
-!****************************************************************/
+!***************************************************************
 
   USE HDF5
   USE TH5_MISC
@@ -2064,73 +2064,73 @@ SUBROUTINE test_attr_dense_open( fcpl, fapl, total_error)
   data_dims = 0
 
 
-  ! /* Create file */
+  !  Create file 
 
   CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, fid, error, fcpl, fapl)
   CALL check("h5fcreate_f",error,total_error)
 
-  ! /* Close file */
+  !  Close file 
   CALL h5fclose_f(fid, error)
   CALL check("h5fclose_f",error,total_error)
 
 
 
-  ! /* Re-open file */
+  !  Re-open file 
   CALL h5fopen_f(FileName, H5F_ACC_RDWR_F, fid, error, fapl)
   CALL check("h5open_f",error,total_error)
 
-  ! /* Create dataspace for dataset */
+  !  Create dataspace for dataset 
   CALL h5screate_f(H5S_SCALAR_F, sid, error)
   CALL check("h5screate_f",error,total_error)
 
-  ! /* Query the group creation properties */
+  !  Query the group creation properties 
   CALL H5Pcreate_f(H5P_DATASET_CREATE_F,dcpl,error)
   CALL check("h5Pcreate_f",error,total_error)
 
-  ! /* Enable creation order tracking on attributes, so creation order tests work */
+  !  Enable creation order tracking on attributes, so creation order tests work 
   CALL H5Pset_attr_creation_order_f(dcpl, H5P_CRT_ORDER_TRACKED_F, error)
   CALL check("H5Pset_attr_creation_order",error,total_error)
 
-  ! /* Create a dataset */
+  !  Create a dataset 
 
   CALL h5dcreate_f(fid, DSET1_NAME, H5T_NATIVE_CHARACTER, sid, dataset, error, &
        lcpl_id=H5P_DEFAULT_F, dcpl_id=dcpl, dapl_id=H5P_DEFAULT_F)
   CALL check("h5dcreate_f",error,total_error)
 
-  ! /* Retrieve limits for compact/dense attribute storage */
+  !  Retrieve limits for compact/dense attribute storage 
   CALL H5Pget_attr_phase_change_f(dcpl, max_compact, min_dense, error)
   CALL check("H5Pget_attr_phase_change_f",error,total_error)
 
-  ! /* Close property list */
+  !  Close property list 
   CALL h5pclose_f(dcpl, error)
   CALL check("h5pclose_f",error,total_error)
 
-  ! /* Add attributes, until just before converting to dense storage */
+  !  Add attributes, until just before converting to dense storage 
 
   DO u = 0, max_compact - 1
-     ! /* Create attribute */
+     !  Create attribute 
      WRITE(chr2,'(I2.2)') u
      attrname = 'attr '//chr2
 
      CALL h5acreate_f(dataset, attrname, H5T_NATIVE_INTEGER, sid, attr, error, aapl_id=H5P_DEFAULT_F)
      CALL check("h5acreate_f",error,total_error)
 
-     ! /* Write data into the attribute */
+     !  Write data into the attribute 
 
      data_dims(1) = 1
      CALL h5awrite_f(attr, H5T_NATIVE_INTEGER, u, data_dims, error)
      CALL check("h5awrite_f",error,total_error)
 
-     ! /* Close attribute */
+     !  Close attribute 
      CALL h5aclose_f(attr, error)
      CALL check("h5aclose_f",error,total_error)
 
-     ! /* Verify attributes written so far */
+     !  Verify attributes written so far 
      CALL test_attr_dense_verify(dataset, u, total_error)
   ENDDO
 !
-!    /* Add one more attribute, to push into "dense" storage */
-!    /* Create attribute */
+!     Add one more attribute, to push into "dense" storage 
+!     Create attribute 
 
   WRITE(chr2,'(I2.2)') u
   attrname = 'attr '//chr2
@@ -2138,47 +2138,47 @@ SUBROUTINE test_attr_dense_open( fcpl, fapl, total_error)
   CALL h5acreate_f(dataset, attrname, H5T_NATIVE_INTEGER, sid, attr, error, aapl_id=H5P_DEFAULT_F)
   CALL check("h5acreate_f",error,total_error)
 
-  ! /* Write data into the attribute */
+  !  Write data into the attribute 
   data_dims(1) = 1
   CALL h5awrite_f(attr, H5T_NATIVE_INTEGER, u, data_dims, error)
   CALL check("h5awrite_f",error,total_error)
 
-  ! /* Close attribute */
+  !  Close attribute 
   CALL h5aclose_f(attr, error)
   CALL check("h5aclose_f",error,total_error)
 
-  ! /* Close dataspace */
+  !  Close dataspace 
   CALL h5sclose_f(sid, error)
   CALL check("h5sclose_f",error,total_error)
 
-  ! /* Verify all the attributes written */
+  !  Verify all the attributes written 
   !  ret = test_attr_dense_verify(dataset, (u + 1));
   !  CHECK(ret, FAIL, "test_attr_dense_verify");
 
-  ! /* CLOSE Dataset */
+  !  CLOSE Dataset 
   CALL h5dclose_f(dataset, error)
   CALL check("h5dclose_f",error,total_error)
 
-  ! /* Unlink dataset with attributes */
+  !  Unlink dataset with attributes 
   CALL h5ldelete_f(fid, DSET1_NAME, error, H5P_DEFAULT_F)
   CALL check("H5Ldelete_f", error, total_error)
 
-  ! /* Close file */
+  !  Close file 
   CALL h5fclose_f(fid, error)
   CALL check("h5fclose_f",error,total_error)
 
-  ! /* Check size of file */
+  !  Check size of file 
   !  filesize = h5_get_file_size(FILENAME);
   !  VERIFY(filesize, empty_filesize, "h5_get_file_size")
 
 END SUBROUTINE test_attr_dense_open
 
-!/****************************************************************
+!***************************************************************
 !**
 !**  test_attr_dense_verify(): Test basic H5A (attribute) code.
 !**      Verify attributes on object
 !**
-!****************************************************************/
+!***************************************************************
 
 SUBROUTINE test_attr_dense_verify(loc_id, max_attr, total_error)
 
@@ -2206,21 +2206,21 @@ SUBROUTINE test_attr_dense_verify(loc_id, max_attr, total_error)
   data_dims = 0
 
 
-    ! /* Retrieve the current # of reported errors */
+    !  Retrieve the current # of reported errors 
     ! old_nerrs = GetTestNumErrs();
 
-    ! /* Re-open all the attributes by name and verify the data */
+    !  Re-open all the attributes by name and verify the data 
 
   DO u = 0, max_attr -1
 
-     ! /* Open attribute */
+     !  Open attribute 
      WRITE(chr2,'(I2.2)') u
      attrname = 'attr '//chr2
 
      CALL h5aopen_f(loc_id, attrname, attr, error)
      CALL check("h5aopen_f",error,total_error)
 
-     ! /* Read data from the attribute */
+     !  Read data from the attribute 
 
 !     value = 103
      data_dims(1) = 1
@@ -2229,22 +2229,22 @@ SUBROUTINE test_attr_dense_verify(loc_id, max_attr, total_error)
      CALL CHECK("H5Aread_F", error, total_error)
      CALL VERIFY("H5Aread_F", value, u, total_error)
 
-     ! /* Close attribute */
+     !  Close attribute 
      CALL h5aclose_f(attr, error)
      CALL check("h5aclose_f",error,total_error)
   ENDDO
 
-  ! /* Re-open all the attributes by index and verify the data */
+  !  Re-open all the attributes by index and verify the data 
 
   DO u=0, max_attr-1
 
 
-     ! /* Open attribute */
+     !  Open attribute 
 
      CALL H5Aopen_by_idx_f(loc_id, ".", H5_INDEX_CRT_ORDER_F, H5_ITER_INC_F, INT(u,HSIZE_T), &
           attr, error, aapl_id=H5P_DEFAULT_F)
 
-     ! /* Verify Name */
+     !  Verify Name 
 
      WRITE(chr2,'(I2.2)') u
      attrname = 'attr '//chr2
@@ -2255,26 +2255,26 @@ SUBROUTINE test_attr_dense_verify(loc_id, max_attr, total_error)
         WRITE(*,*) 'ERROR: attribute name different: attr_name = ',check_name, ', should be ', attrname
         total_error = total_error + 1
      ENDIF
-     ! /* Read data from the attribute */
+     !  Read data from the attribute 
      data_dims(1) = 1
      CALL h5aread_f(attr, H5T_NATIVE_INTEGER, value, data_dims, error)
      CALL CHECK("H5Aread_f", error, total_error)
      CALL VERIFY("H5Aread_f", value, u, total_error)
 
 
-     ! /* Close attribute */
+     !  Close attribute 
      CALL h5aclose_f(attr, error)
      CALL check("h5aclose_f",error,total_error)
   ENDDO
 
 END SUBROUTINE test_attr_dense_verify
 
-!/****************************************************************
+!***************************************************************
 !**
 !**  test_attr_corder_create_empty(): Test basic H5A (attribute) code.
 !**      Tests basic code to create objects with attribute creation order info
 !**
-!****************************************************************/
+!***************************************************************
 
 SUBROUTINE test_attr_corder_create_basic( fcpl, fapl, total_error )
 
@@ -2300,30 +2300,30 @@ SUBROUTINE test_attr_corder_create_basic( fcpl, fapl, total_error )
   INTEGER :: crt_order_flags
   INTEGER :: minusone = -1
 
-  ! /* Output message about test being performed */
+  !  Output message about test being performed 
 !  WRITE(*,*) "     - Testing Basic Code for Attributes with Creation Order Info"
 
-  ! /* Create file */
+  !  Create file 
   CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, fid, error, fcpl, fapl)
   CALL check("h5fcreate_f",error,total_error)
 
-  ! /* Create dataset creation property list */
+  !  Create dataset creation property list 
   CALL H5Pcreate_f(H5P_DATASET_CREATE_F,dcpl,error)
   CALL check("h5Pcreate_f",error,total_error)
 
-  ! /* Get creation order indexing on object */
+  !  Get creation order indexing on object 
   CALL H5Pget_attr_creation_order_f(dcpl, crt_order_flags, error)
   CALL check("H5Pget_attr_creation_order_f",error,total_error)
   CALL VERIFY("H5Pget_attr_creation_order_f",crt_order_flags , 0, total_error)
 
-  ! /* Setting invalid combination of a attribute order creation order indexing on should fail */
+  !  Setting invalid combination of a attribute order creation order indexing on should fail 
   CALL H5Pset_attr_creation_order_f(dcpl, H5P_CRT_ORDER_INDEXED_F, error)
   CALL VERIFY("H5Pset_attr_creation_order_f",error , minusone, total_error)
   CALL H5Pget_attr_creation_order_f(dcpl, crt_order_flags, error)
   CALL check("H5Pget_attr_creation_order_f",error,total_error)
   CALL VERIFY("H5Pget_attr_creation_order_f",crt_order_flags , 0, total_error)
 
-  ! /* Set attribute creation order tracking & indexing for object */
+  !  Set attribute creation order tracking & indexing for object 
   CALL h5pset_attr_creation_order_f(dcpl, IOR(H5P_CRT_ORDER_TRACKED_F, H5P_CRT_ORDER_INDEXED_F), error)
   CALL check("H5Pset_attr_creation_order_f",error,total_error)
 
@@ -2332,72 +2332,72 @@ SUBROUTINE test_attr_corder_create_basic( fcpl, fapl, total_error )
   CALL VERIFY("H5Pget_attr_creation_order_f",crt_order_flags , &
        IOR(H5P_CRT_ORDER_TRACKED_F, H5P_CRT_ORDER_INDEXED_F), total_error)
 
-  ! /* Create dataspace for dataset */
+  !  Create dataspace for dataset 
   CALL h5screate_f(H5S_SCALAR_F, sid, error)
   CALL check("h5screate_f",error,total_error)
 
-  ! /* Create a dataset */
+  !  Create a dataset 
   CALL h5dcreate_f(fid, DSET1_NAME, H5T_NATIVE_CHARACTER, sid, dataset, error, &
        lcpl_id=H5P_DEFAULT_F, dapl_id=H5P_DEFAULT_F, dcpl_id=dcpl)
   CALL check("h5dcreate_f",error,total_error)
 
-  ! /* Close dataspace */
+  !  Close dataspace 
   CALL h5sclose_f(sid, error)
   CALL check("h5sclose_f",error,total_error)
 
 
-  ! /* Close Dataset */
+  !  Close Dataset 
   CALL h5dclose_f(dataset, error)
   CALL check("h5dclose_f",error,total_error)
 
-  ! /* Close property list */
+  !  Close property list 
   CALL h5pclose_f(dcpl, error)
   CALL check("h5pclose_f",error,total_error)
 
-  ! /* Close file */
+  !  Close file 
   CALL h5fclose_f(fid, error)
   CALL check("h5fclose_f",error,total_error)
 
-  ! /* Re-open file */
+  !  Re-open file 
   CALL h5fopen_f(FileName, H5F_ACC_RDWR_F, fid, error, fapl)
   CALL check("h5open_f",error,total_error)
 
-  ! /* Open dataset created */
+  !  Open dataset created 
   CALL h5dopen_f(fid, DSET1_NAME, dataset, error, H5P_DEFAULT_F )
   CALL check("h5dopen_f",error,total_error)
 
 
-  ! /* Retrieve dataset creation property list for group */
+  !  Retrieve dataset creation property list for group 
   CALL H5Dget_create_plist_f(dataset, dcpl, error)
   CALL check("H5Dget_create_plist_f",error,total_error)
 
-  ! /* Query the attribute creation properties */
+  !  Query the attribute creation properties 
   CALL H5Pget_attr_creation_order_f(dcpl, crt_order_flags, error)
   CALL check("H5Pget_attr_creation_order_f",error,total_error)
   CALL VERIFY("H5Pget_attr_creation_order_f",crt_order_flags , &
        IOR(H5P_CRT_ORDER_TRACKED_F, H5P_CRT_ORDER_INDEXED_F), total_error )
 
-  ! /* Close property list */
+  !  Close property list 
   CALL h5pclose_f(dcpl, error)
   CALL check("h5pclose_f",error,total_error)
 
-  ! /* Close Dataset */
+  !  Close Dataset 
   CALL h5dclose_f(dataset, error)
   CALL check("h5dclose_f",error,total_error)
 
-  ! /* Close file */
+  !  Close file 
   CALL h5fclose_f(fid, error)
   CALL check("h5fclose_f",error,total_error)
 
 
 END SUBROUTINE test_attr_corder_create_basic
 
-!/****************************************************************
+!***************************************************************
 !**
 !**  test_attr_basic_write(): Test basic H5A (attribute) code.
 !**      Tests integer attributes on both datasets and groups
 !**
-!****************************************************************/
+!***************************************************************
 
 SUBROUTINE test_attr_basic_write(fapl, total_error)
 
@@ -2451,97 +2451,97 @@ SUBROUTINE test_attr_basic_write(fapl, total_error)
   attr_data1a(3) = -99890
 
 
-  ! /* Create file */
+  !  Create file 
   CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, fid1, error, H5P_DEFAULT_F, fapl)
   CALL check("h5fcreate_f",error,total_error)
 
-  ! /* Create dataspace for dataset */
+  !  Create dataspace for dataset 
   CALL h5screate_simple_f(rank1, dims1, sid1, error, maxdims1)
   CALL check("h5screate_simple_f",error,total_error)
 
-  ! /* Create a dataset */
+  !  Create a dataset 
   CALL h5dcreate_f(fid1, DSET1_NAME, H5T_NATIVE_CHARACTER, sid1, dataset, error, H5P_DEFAULT_F, H5P_DEFAULT_F, H5P_DEFAULT_F )
   CALL check("h5dcreate_f",error,total_error)
 
-  ! /* Create dataspace for attribute */
+  !  Create dataspace for attribute 
   CALL h5screate_simple_f(ATTR1_RANK, dimsa, sid2, error)
   CALL check("h5screate_simple_f",error,total_error)
 
-  ! /* Try to create an attribute on the file (should create an attribute on root group) */
+  !  Try to create an attribute on the file (should create an attribute on root group) 
   CALL h5acreate_f(fid1, ATTR1_NAME, H5T_NATIVE_INTEGER, sid2, attr, error, aapl_id=H5P_DEFAULT_F, acpl_id=H5P_DEFAULT_F)
   CALL check("h5acreate_f",error,total_error)
 
-  !  /* Close attribute */
+  !   Close attribute 
   CALL h5aclose_f(attr, error)
   CALL check("h5aclose_f",error,total_error)
 
-  ! /* Open the root group */
+  !  Open the root group 
   CALL H5Gopen_f(fid1, "/", group, error, H5P_DEFAULT_F)
   CALL check("H5Gopen_f",error,total_error)
 
-  ! /* Open attribute again */
+  !  Open attribute again 
   CALL h5aopen_f(group,  ATTR1_NAME, attr, error)
   CALL check("h5aopen_f",error,total_error)
 
-  ! /* Close attribute */
+  !  Close attribute 
   CALL h5aclose_f(attr, error)
   CALL check("h5aclose_f",error,total_error)
 
-  ! /* Close root group */
+  !  Close root group 
   CALL  H5Gclose_f(group, error)
   CALL check("h5gclose_f",error,total_error)
 
-  ! /* Create an attribute for the dataset */
+  !  Create an attribute for the dataset 
   CALL h5acreate_f(dataset, ATTR1_NAME, H5T_NATIVE_INTEGER, sid2, attr, error, H5P_DEFAULT_F, H5P_DEFAULT_F)
   CALL check("h5acreate_f",error,total_error)
 
-  ! /* Write attribute information */
+  !  Write attribute information 
 
   CALL h5awrite_f(attr, H5T_NATIVE_INTEGER, attr_data1, dimsa, error)
   CALL check("h5awrite_f",error,total_error)
 
-  ! /* Create an another attribute for the dataset */
+  !  Create an another attribute for the dataset 
   CALL h5acreate_f(dataset, ATTR1A_NAME, H5T_NATIVE_INTEGER, sid2, attr2, error, H5P_DEFAULT_F, H5P_DEFAULT_F)
   CALL check("h5acreate_f",error,total_error)
 
-  ! /* Write attribute information */
+  !  Write attribute information 
   CALL h5awrite_f(attr2, H5T_NATIVE_INTEGER, attr_data1a, dimsa, error)
   CALL check("h5awrite_f",error,total_error)
 
-  ! /* Check storage size for attribute */
+  !  Check storage size for attribute 
 
   CALL h5aget_storage_size_f(attr, attr_size, error)
   CALL check("h5aget_storage_size_f",error,total_error)
 !EP  CALL VERIFY("h5aget_storage_size_f", INT(attr_size), 2*HSIZE_T, total_error)
 
 
-  ! /* Read attribute information immediately, without closing attribute */
+  !  Read attribute information immediately, without closing attribute 
   CALL h5aread_f(attr, H5T_NATIVE_INTEGER, read_data1, dimsa, error)
   CALL check("h5aread_f",error,total_error)
 
-  ! /* Verify values read in */
+  !  Verify values read in 
   DO i = 1, ATTR1_DIM1
      CALL VERIFY('h5aread_f',attr_data1(i),read_data1(i), total_error)
   ENDDO
 
-  ! /* CLOSE attribute */
+  !  CLOSE attribute 
   CALL h5aclose_f(attr, error)
   CALL check("h5aclose_f",error,total_error)
 
-  ! /* Close attribute */
+  !  Close attribute 
   CALL h5aclose_f(attr2, error)
   CALL check("h5aclose_f",error,total_error)
 
-  ! /* change attribute name */
+  !  change attribute name 
   CALL H5Arename_f(dataset, ATTR1_NAME, ATTR_TMP_NAME, error)
   CALL check("H5Arename_f", error, total_error)
 
-  ! /* Open attribute again */
+  !  Open attribute again 
 
   CALL h5aopen_f(dataset,  ATTR_TMP_NAME, attr, error)
   CALL check("h5aopen_f",error,total_error)
 
-  ! /* Verify new attribute name */
+  !  Verify new attribute name 
   ! Set a deliberately small size
 
   check_name = '                         ' ! need to initialize or does not pass test
@@ -2572,7 +2572,7 @@ SUBROUTINE test_attr_basic_write(fapl, total_error)
   CALL check('H5Aget_name_f',error,total_error)
   CALL VerifyString('H5Aget_name_f',chr_exact_size,ATTR_TMP_NAME, total_error)
 
-  ! /* Close attribute */
+  !  Close attribute 
   CALL h5aclose_f(attr, error)
   CALL check("h5aclose_f",error,total_error)
 
@@ -2580,22 +2580,22 @@ SUBROUTINE test_attr_basic_write(fapl, total_error)
   CALL check("h5sclose_f",error,total_error)
   CALL h5sclose_f(sid2, error)
   CALL check("h5sclose_f",error,total_error)
-  !/* Close Dataset */
+  ! Close Dataset 
   CALL h5dclose_f(dataset, error)
   CALL check("h5dclose_f",error,total_error)
 
-  ! /* Close file */
+  !  Close file 
   CALL h5fclose_f(fid1, error)
   CALL check("h5fclose_f",error,total_error)
 
 END SUBROUTINE test_attr_basic_write
 
-!/****************************************************************
+!***************************************************************
 !**
 !**  test_attr_many(): Test basic H5A (attribute) code.
 !**      Tests storing lots of attributes
 !**
-!****************************************************************/
+!***************************************************************
 
 SUBROUTINE test_attr_many(new_format, fcpl, fapl, total_error)
 
@@ -2630,20 +2630,20 @@ SUBROUTINE test_attr_many(new_format, fcpl, fapl, total_error)
   data_dims = 0
 
 
-  !/* Create file */
+  ! Create file 
   CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, fid, error, fcpl, fapl)
   CALL check("h5fcreate_f",error,total_error)
 
-  ! /* Create dataspace for attribute */
+  !  Create dataspace for attribute 
   CALL h5screate_f(H5S_SCALAR_F, sid, error)
   CALL check("h5screate_f",error,total_error)
 
-  ! /* Create group for attributes */
+  !  Create group for attributes 
 
   CALL H5Gcreate_f(fid, GROUP1_NAME, gid, error)
   CALL check("H5Gcreate_f", error, total_error)
 
-  ! /* Create many attributes */
+  !  Create many attributes 
 
   IF(new_format)THEN
      nattr = 250
@@ -2687,21 +2687,21 @@ SUBROUTINE test_attr_many(new_format, fcpl, fapl, total_error)
 
   ENDDO
 
-  ! /* Close group */
+  !  Close group 
   CALL  H5Gclose_f(gid, error)
   CALL check("h5gclose_f",error,total_error)
 
-  ! /* Close file */
+  !  Close file 
   CALL h5fclose_f(fid, error)
   CALL check("h5fclose_f",error,total_error)
 
-  ! /* Close dataspaces */
+  !  Close dataspaces 
   CALL h5sclose_f(sid, error)
   CALL check("h5sclose_f",error,total_error)
 
 END SUBROUTINE test_attr_many
 
-!/*-------------------------------------------------------------------------
+!-------------------------------------------------------------------------
 ! * Function:    attr_open_check
 ! *
 ! * Purpose:     Check opening attribute on an object
@@ -2713,7 +2713,7 @@ END SUBROUTINE test_attr_many
 ! *              March 21, 2008
 ! *
 ! *-------------------------------------------------------------------------
-! */
+! 
 
 SUBROUTINE attr_open_check(fid, dsetname, obj_id, max_attrs, total_error )
 
@@ -2738,10 +2738,10 @@ SUBROUTINE attr_open_check(fid, dsetname, obj_id, max_attrs, total_error )
   INTEGER(HSIZE_T) :: storage_size   ! attributes storage requirements
   CHARACTER(LEN=2) :: chr2
   INTEGER(HID_T) attr_id
-  ! /* Open each attribute on object by index and check that it's the correct one */
+  !  Open each attribute on object by index and check that it's the correct one 
 
   DO u = 0, max_attrs-1
-     ! /* Open the attribute */
+     !  Open the attribute 
 
      WRITE(chr2,'(I2.2)') u
      attrname = 'attr '//chr2
@@ -2751,12 +2751,12 @@ SUBROUTINE attr_open_check(fid, dsetname, obj_id, max_attrs, total_error )
      CALL check("h5aopen_f",error,total_error)
 
 
-     ! /* Get the attribute's information */
+     !  Get the attribute's information 
 
      CALL h5aget_info_f(attr_id, f_corder_valid, corder, cset, data_size,  error)
      CALL check("h5aget_info_f",error,total_error)
 
-     ! /* Check that the object's attributes are correct */
+     !  Check that the object's attributes are correct 
      CALL VERIFY("h5aget_info_f.corder",corder,u,total_error)
      CALL Verifylogical("h5aget_info_f.corder_valid",f_corder_valid,.TRUE.,total_error)
      CALL VERIFY("h5aget_info_f.cset", cset, H5T_CSET_ASCII_F, total_error)
@@ -2766,18 +2766,18 @@ SUBROUTINE attr_open_check(fid, dsetname, obj_id, max_attrs, total_error )
      CALL VERIFY("h5aget_info_f.data_size", INT(data_size), INT(storage_size), total_error)
 
 
-     ! /* Close attribute */
+     !  Close attribute 
      CALL h5aclose_f(attr_id, error)
      CALL check("h5aclose_f",error,total_error)
 
-     ! /* Open the attribute */
+     !  Open the attribute 
 
      CALL H5Aopen_by_name_f(obj_id, ".", attrname, attr_id, error, lapl_id=H5P_DEFAULT_F, aapl_id=H5P_DEFAULT_F)
      CALL check("H5Aopen_by_name_f", error, total_error)
 
      CALL h5aget_info_f(attr_id, f_corder_valid, corder, cset, data_size,  error)
      CALL check("h5aget_info_f",error,total_error)
-     ! /* Check the attribute's information */
+     !  Check the attribute's information 
      CALL VERIFY("h5aget_info_f",corder,u,total_error)
      CALL Verifylogical("h5aget_info_f",f_corder_valid,.TRUE.,total_error)
      CALL VERIFY("h5aget_info_f", cset, H5T_CSET_ASCII_F, total_error)
@@ -2785,21 +2785,21 @@ SUBROUTINE attr_open_check(fid, dsetname, obj_id, max_attrs, total_error )
      CALL check("h5aget_storage_size_f",error,total_error)
      CALL VERIFY("h5aget_info_f", INT(data_size), INT(storage_size), total_error)
 
-     ! /* Close attribute */
+     !  Close attribute 
      CALL h5aclose_f(attr_id, error)
      CALL check("h5aclose_f",error,total_error)
 
 
-     ! /* Open the attribute */
+     !  Open the attribute 
      CALL H5Aopen_by_name_f(fid, dsetname, attrname, attr_id, error)
      CALL check("H5Aopen_by_name_f", error, total_error)
 
 
-     ! /* Get the attribute's information */
+     !  Get the attribute's information 
      CALL h5aget_info_f(attr_id, f_corder_valid, corder, cset, data_size,  error)
      CALL check("h5aget_info_f",error,total_error)
 
-     ! /* Check the attribute's information */
+     !  Check the attribute's information 
      CALL VERIFY("h5aget_info_f",corder,u,total_error)
      CALL Verifylogical("h5aget_info_f",f_corder_valid,.TRUE.,total_error)
      CALL VERIFY("h5aget_info_f", cset, H5T_CSET_ASCII_F, total_error)
@@ -2807,7 +2807,7 @@ SUBROUTINE attr_open_check(fid, dsetname, obj_id, max_attrs, total_error )
      CALL check("h5aget_storage_size_f",error,total_error)
      CALL VERIFY("h5aget_info_f", INT(data_size), INT(storage_size), total_error)
 
-     ! /* Close attribute */
+     !  Close attribute 
      CALL h5aclose_f(attr_id, error)
      CALL check("h5aclose_f",error,total_error)
   ENDDO
diff --git a/fortran/test/tH5E_F03.f90 b/fortran/test/tH5E_F03.f90
index 82ba27c..a7d45f2 100644
--- a/fortran/test/tH5E_F03.f90
+++ b/fortran/test/tH5E_F03.f90
@@ -39,11 +39,11 @@ MODULE test_my_hdf5_error_handler
 
 CONTAINS
 
-!/****************************************************************
+!***************************************************************
 !**
 !**  my_hdf5_error_handler: Custom error callback routine.
 !**
-!****************************************************************/
+!***************************************************************
 
     INTEGER FUNCTION my_hdf5_error_handler(estack_id, data_inout) bind(C)
 
@@ -173,10 +173,10 @@ SUBROUTINE test_error(total_error)
 !!$#ifdef H5_USE_16_API
 !!$    if (old_func != (H5E_auto_t)H5Eprint)
 !!$	TEST_ERROR;
-!!$#else /* H5_USE_16_API */
+!!$#else  H5_USE_16_API 
 !!$    if (old_func != (H5E_auto2_t)H5Eprint2)
 !!$	TEST_ERROR;
-!!$#endif /* H5_USE_16_API */
+!!$#endif  H5_USE_16_API 
 
 
   ! set the customized error handling routine
diff --git a/fortran/test/tH5F.f90 b/fortran/test/tH5F.f90
index 931a046..0b3c275 100644
--- a/fortran/test/tH5F.f90
+++ b/fortran/test/tH5F.f90
@@ -141,13 +141,11 @@ CONTAINS
           CALL h5fcreate_f(fix_filename1, H5F_ACC_TRUNC_F, file1_id, error)
                CALL check("h5fcreate_f",error,total_error)
 
-
           !
           !Create group "/G" inside file "mount1.h5".
           !
           CALL h5gcreate_f(file1_id, "/G", gid, error)
                CALL check("h5gcreate_f",error,total_error)
-
           !
           !close file and group identifiers.
           !
diff --git a/fortran/test/tH5G_1_8.f90 b/fortran/test/tH5G_1_8.f90
index 5e6f50a..ab75163 100644
--- a/fortran/test/tH5G_1_8.f90
+++ b/fortran/test/tH5G_1_8.f90
@@ -41,7 +41,7 @@ SUBROUTINE group_test(cleanup, total_error)
   LOGICAL, INTENT(IN)  :: cleanup
   INTEGER, INTENT(INOUT) :: total_error
 
-  INTEGER(HID_T) :: fapl, fapl2, my_fapl ! /* File access property lists */
+  INTEGER(HID_T) :: fapl, fapl2, my_fapl !  File access property lists 
 
   INTEGER :: error, ret_total_error
 
@@ -49,15 +49,15 @@ SUBROUTINE group_test(cleanup, total_error)
   CALL H5Pcreate_f(H5P_FILE_ACCESS_F, fapl, error)
   CALL check("H5Pcreate_f",error, total_error)
 
-  ! /* Copy the file access property list */
+  !  Copy the file access property list 
   CALL H5Pcopy_f(fapl, fapl2, error)
   CALL check("H5Pcopy_f",error, total_error)
 
-  ! /* Set the "use the latest version of the format" bounds for creating objects in the file */
+  !  Set the "use the latest version of the format" bounds for creating objects in the file 
   CALL H5Pset_libver_bounds_f(fapl2, H5F_LIBVER_LATEST_F, H5F_LIBVER_LATEST_F, error)
   CALL check("H5Pset_libver_bounds_f",error, total_error)
 
-  ! /* Check for FAPL to USE */
+  !  Check for FAPL to USE 
   my_fapl = fapl2
 
   ret_total_error = 0
@@ -121,7 +121,7 @@ SUBROUTINE group_test(cleanup, total_error)
 
 END SUBROUTINE group_test
 
-!/*-------------------------------------------------------------------------
+!-------------------------------------------------------------------------
 ! * Function:    group_info
 ! *
 ! * Purpose:     Create a group with creation order indices and test querying
@@ -135,7 +135,7 @@ END SUBROUTINE group_test
 ! *              February 18, 2008
 ! *
 ! *-------------------------------------------------------------------------
-! */
+! 
 
 SUBROUTINE group_info(cleanup, fapl, total_error)
 
@@ -146,21 +146,21 @@ SUBROUTINE group_info(cleanup, fapl, total_error)
   INTEGER, INTENT(INOUT) :: total_error
   INTEGER(HID_T), INTENT(IN) :: fapl
 
-  INTEGER(HID_T) :: gcpl_id ! /* Group creation property list ID */
+  INTEGER(HID_T) :: gcpl_id !  Group creation property list ID 
 
-  INTEGER :: max_compact ! /* Maximum # of links to store in group compactly */
-  INTEGER :: min_dense ! /* Minimum # of links to store in group "densely" */
+  INTEGER :: max_compact !  Maximum # of links to store in group compactly 
+  INTEGER :: min_dense !  Minimum # of links to store in group "densely" 
 
-  INTEGER :: idx_type ! /* Type of index to operate on */
-  INTEGER :: order, iorder   ! /* Order within in the index */
-  LOGICAL, DIMENSION(1:2) :: use_index = (/.FALSE.,.TRUE./) ! /* Use index on creation order values */
+  INTEGER :: idx_type !  Type of index to operate on 
+  INTEGER :: order, iorder   !  Order within in the index 
+  LOGICAL, DIMENSION(1:2) :: use_index = (/.FALSE.,.TRUE./) !  Use index on creation order values 
   CHARACTER(LEN=6), PARAMETER :: prefix = 'links0'
-  CHARACTER(LEN=9), PARAMETER :: filename = prefix//'.h5'  ! /* File name */
+  CHARACTER(LEN=9), PARAMETER :: filename = prefix//'.h5'  !  File name 
   INTEGER :: Input1
-  INTEGER(HID_T) :: group_id ! /* Group ID */
-  INTEGER(HID_T) :: soft_group_id ! /* Group ID for soft links */
+  INTEGER(HID_T) :: group_id !  Group ID 
+  INTEGER(HID_T) :: soft_group_id !  Group ID for soft links 
 
-  INTEGER :: i ! /* Local index variables */
+  INTEGER :: i !  Local index variables 
   INTEGER :: storage_type ! Type of storage for links in group:
                                           ! H5G_STORAGE_TYPE_COMPACT: Compact storage
                                           ! H5G_STORAGE_TYPE_DENSE: Indexed storage
@@ -168,34 +168,34 @@ SUBROUTINE group_info(cleanup, fapl, total_error)
   INTEGER :: nlinks ! Number of links in group
   INTEGER :: max_corder ! Current maximum creation order value for group
 
-  INTEGER :: u,v  ! /* Local index variables */
+  INTEGER :: u,v  !  Local index variables 
   CHARACTER(LEN=2) :: chr2
-  INTEGER(HID_T) :: group_id2, group_id3 ! /* Group IDs */
-  CHARACTER(LEN=7) :: objname ! /* Object name */
-  CHARACTER(LEN=7) :: objname2 ! /* Object name */
-  CHARACTER(LEN=19) :: valname !  /* Link value */
+  INTEGER(HID_T) :: group_id2, group_id3 !  Group IDs 
+  CHARACTER(LEN=7) :: objname !  Object name 
+  CHARACTER(LEN=7) :: objname2 !  Object name 
+  CHARACTER(LEN=19) :: valname !   Link value 
   CHARACTER(LEN=12), PARAMETER :: CORDER_GROUP_NAME = "corder_group"
   CHARACTER(LEN=17), PARAMETER :: CORDER_SOFT_GROUP_NAME =  "corder_soft_group"
-  INTEGER(HID_T) :: file_id ! /* File ID */
-  INTEGER :: error ! /* Generic return value */
+  INTEGER(HID_T) :: file_id !  File ID 
+  INTEGER :: error !  Generic return value 
   LOGICAL :: mounted
   LOGICAL :: cleanup
 
-  ! /* Create group creation property list */
+  !  Create group creation property list 
   CALL H5Pcreate_f(H5P_GROUP_CREATE_F, gcpl_id, error )
   CALL check("H5Pcreate_f", error, total_error)
 
-  ! /* Query the group creation properties */
+  !  Query the group creation properties 
   CALL H5Pget_link_phase_change_f(gcpl_id, max_compact, min_dense, error)
   CALL check("H5Pget_link_phase_change_f", error, total_error)
 
-  ! /* Loop over operating on different indices on link fields */
+  !  Loop over operating on different indices on link fields 
   DO idx_type = H5_INDEX_NAME_F, H5_INDEX_CRT_ORDER_F
-     ! /* Loop over operating in different orders */
+     !  Loop over operating in different orders 
      DO iorder = H5_ITER_INC_F,  H5_ITER_NATIVE_F
-        ! /* Loop over using index for creation order value */
+        !  Loop over using index for creation order value 
         DO i = 1, 2
-           ! /* Print appropriate test message */
+           !  Print appropriate test message 
            IF(idx_type == H5_INDEX_CRT_ORDER_F)THEN
               IF(iorder == H5_ITER_INC_F)THEN
                  order = H5_ITER_INC_F
@@ -244,11 +244,11 @@ SUBROUTINE group_info(cleanup, fapl, total_error)
               ENDIF
            END IF
 
-           ! /* Create file */
+           !  Create file 
            CALL H5Fcreate_f(filename, H5F_ACC_TRUNC_F, file_id, error, H5P_DEFAULT_F, fapl)
            CALL check("H5Fcreate_f", error, total_error)
 
-           ! /* Set creation order tracking & indexing on group */
+           !  Set creation order tracking & indexing on group 
            IF(use_index(i))THEN
               Input1 = H5P_CRT_ORDER_INDEXED_F
            ELSE
@@ -257,103 +257,103 @@ SUBROUTINE group_info(cleanup, fapl, total_error)
            CALL H5Pset_link_creation_order_f(gcpl_id, IOR(H5P_CRT_ORDER_TRACKED_F, Input1), error)
            CALL check("H5Pset_link_creation_order_f", error, total_error)
 
-           ! /* Create group with creation order tracking on */
+           !  Create group with creation order tracking on 
            CALL H5Gcreate_f(file_id, CORDER_GROUP_NAME, group_id, error, gcpl_id=gcpl_id)
            CALL check("H5Gcreate_f", error, total_error)
 
-           ! /* Create group with creation order tracking on for soft links */
+           !  Create group with creation order tracking on for soft links 
            CALL H5Gcreate_f(file_id, CORDER_SOFT_GROUP_NAME, soft_group_id, error, &
                 OBJECT_NAMELEN_DEFAULT_F, H5P_DEFAULT_F, gcpl_id)
            CALL check("H5Gcreate_f", error, total_error)
 
-           ! /* Check for out of bound query by index on empty group, should fail */
+           !  Check for out of bound query by index on empty group, should fail 
            CALL H5Gget_info_by_idx_f(group_id, ".", H5_INDEX_NAME_F, order, INT(0,HSIZE_T), &
                 storage_type, nlinks, max_corder, error)
            CALL VERIFY("H5Gget_info_by_idx_f", error, -1, total_error)
 
-           ! /* Create several links, up to limit of compact form */
+           !  Create several links, up to limit of compact form 
            DO u = 0, max_compact-1
 
-              ! /* Make name for link */
+              !  Make name for link 
               WRITE(chr2,'(I2.2)') u
               objname = 'fill '//chr2
 
-              ! /* Create hard link, with group object */
+              !  Create hard link, with group object 
               CALL H5Gcreate_f(group_id, objname, group_id2, error, OBJECT_NAMELEN_DEFAULT_F, H5P_DEFAULT_F, gcpl_id)
               CALL check("H5Gcreate_f", error, total_error)
 
-              ! /* Retrieve group's information */
+              !  Retrieve group's information 
               CALL H5Gget_info_f(group_id2, storage_type, nlinks, max_corder, error, mounted)
               CALL check("H5Gget_info_f", error, total_error)
 
-              ! /* Check (new/empty) group's information */
+              !  Check (new/empty) group's information 
               CALL VERIFY("H5Gget_info_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error)
               CALL VERIFY("H5Gget_info_f", max_corder, 0, total_error)
               CALL VERIFY("H5Gget_info_f", nlinks, 0, total_error)
               CALL verifyLogical("H5Gget_info_f.mounted", mounted,.FALSE.,total_error)
 
-              ! /* Retrieve group's information */
+              !  Retrieve group's information 
               CALL H5Gget_info_by_name_f(group_id, objname, storage_type, nlinks, max_corder, error, mounted=mounted)
               CALL check("H5Gget_info_by_name_f", error, total_error)
 
-              ! /* Check (new/empty) group's information */
+              !  Check (new/empty) group's information 
               CALL VERIFY("H5Gget_info_by_name_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error)
               CALL VERIFY("H5Gget_info_by_name_f", max_corder, 0, total_error)
               CALL VERIFY("H5Gget_info_by_name_f", nlinks, 0, total_error)
               CALL verifyLogical("H5Gget_info_by_name_f.mounted", mounted,.FALSE.,total_error)
 
-              ! /* Retrieve group's information */
+              !  Retrieve group's information 
               CALL H5Gget_info_by_name_f(group_id2, ".", storage_type, nlinks, max_corder, error)
               CALL check("H5Gget_info_by_name", error, total_error)
 
-              ! /* Check (new/empty) group's information */
+              !  Check (new/empty) group's information 
               CALL VERIFY("H5Gget_info_by_name_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error)
               CALL VERIFY("H5Gget_info_by_name_f", max_corder, 0, total_error)
               CALL VERIFY("H5Gget_info_by_name_f", nlinks, 0, total_error)
 
-              ! /* Create objects in new group created */
+              !  Create objects in new group created 
               DO v = 0, u
-                 ! /* Make name for link */
+                 !  Make name for link 
                  WRITE(chr2,'(I2.2)') v
                  objname2 = 'fill '//chr2
 
-                 ! /* Create hard link, with group object */
+                 !  Create hard link, with group object 
                  CALL H5Gcreate_f(group_id2, objname2, group_id3, error )
                  CALL check("H5Gcreate_f", error, total_error)
 
-                 ! /* Close group created */
+                 !  Close group created 
                  CALL H5Gclose_f(group_id3, error)
                  CALL check("H5Gclose_f", error, total_error)
               ENDDO
 
-              ! /* Retrieve group's information */
+              !  Retrieve group's information 
               CALL H5Gget_info_f(group_id2, storage_type, nlinks, max_corder, error)
               CALL check("H5Gget_info_f", error, total_error)
 
-              ! /* Check (new) group's information */
+              !  Check (new) group's information 
               CALL VERIFY("H5Gget_info_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error)
               CALL VERIFY("H5Gget_info_f", max_corder, u+1, total_error)
               CALL VERIFY("H5Gget_info_f", nlinks, u+1, total_error)
 
-              ! /* Retrieve group's information */
+              !  Retrieve group's information 
               CALL H5Gget_info_by_name_f(group_id, objname, storage_type, nlinks, max_corder, error)
               CALL check("H5Gget_info_by_name_f", error, total_error)
 
-              ! /* Check (new) group's information */
+              !  Check (new) group's information 
               CALL VERIFY("H5Gget_info_by_name_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error)
               CALL VERIFY("H5Gget_info_by_name_f",max_corder, u+1, total_error)
               CALL VERIFY("H5Gget_info_by_name_f", nlinks, u+1, total_error)
 
-              ! /* Retrieve group's information */
+              !  Retrieve group's information 
               CALL H5Gget_info_by_name_f(group_id2, ".", storage_type, nlinks, max_corder, error)
               CALL check("H5Gget_info_by_name_f", error, total_error)
 
-              ! /* Check (new) group's information */
+              !  Check (new) group's information 
               CALL VERIFY("H5Gget_info_by_name_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error)
               CALL VERIFY("H5Gget_info_by_name_f", max_corder, u+1, total_error)
               CALL VERIFY("H5Gget_info_by_name_f", nlinks, u+1, total_error)
 
-              ! /* Retrieve group's information */
+              !  Retrieve group's information 
               IF(order.NE.H5_ITER_NATIVE_F)THEN
                  IF(order.EQ.H5_ITER_INC_F) THEN
                     CALL H5Gget_info_by_idx_f(group_id, ".", idx_type, order, INT(u,HSIZE_T), &
@@ -366,72 +366,72 @@ SUBROUTINE group_info(cleanup, fapl, total_error)
                     CALL verifyLogical("H5Gget_info_by_idx_f", mounted,.FALSE.,total_error)
                     CALL check("H5Gget_info_by_idx_f", error, total_error)
                  ENDIF
-              ! /* Check (new) group's information */
+              !  Check (new) group's information 
                  CALL VERIFY("H5Gget_info_by_idx_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error)
                  CALL VERIFY("H5Gget_info_by_idx_f", max_corder, u+1, total_error)
                  CALL VERIFY("H5Gget_info_by_idx_f", nlinks, u+1, total_error)
               ENDIF
-              ! /* Close group created */
+              !  Close group created 
               CALL H5Gclose_f(group_id2, error)
               CALL check("H5Gclose_f", error, total_error)
 
-              ! /* Retrieve main group's information */
+              !  Retrieve main group's information 
               CALL H5Gget_info_f(group_id, storage_type, nlinks, max_corder, error)
               CALL check("H5Gget_info_f", error, total_error)
 
-              ! /* Check main group's information */
+              !  Check main group's information 
               CALL VERIFY("H5Gget_info_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error)
               CALL VERIFY("H5Gget_info_f", max_corder, u+1, total_error)
               CALL VERIFY("H5Gget_info_f", nlinks, u+1, total_error)
 
-              ! /* Retrieve main group's information, by name */
+              !  Retrieve main group's information, by name 
               CALL H5Gget_info_by_name_f(file_id, CORDER_GROUP_NAME, storage_type, nlinks, max_corder, error)
               CALL check("H5Gget_info_by_name_f", error, total_error)
 
-              ! /* Check main group's information */
+              !  Check main group's information 
               CALL VERIFY("H5Gget_info_by_name_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error)
               CALL VERIFY("H5Gget_info_by_name_f", max_corder, u+1, total_error)
               CALL VERIFY("H5Gget_info_by_name_f", nlinks, u+1, total_error)
 
-              ! /* Retrieve main group's information, by name */
+              !  Retrieve main group's information, by name 
               CALL H5Gget_info_by_name_f(group_id, ".", storage_type, nlinks, max_corder, error, H5P_DEFAULT_F)
               CALL check("H5Gget_info_by_name_f", error, total_error)
 
-              ! /* Check main group's information */
+              !  Check main group's information 
               CALL VERIFY("H5Gget_info_by_name_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error)
               CALL VERIFY("H5Gget_info_by_name_f", max_corder, u+1, total_error)
               CALL VERIFY("H5Gget_info_by_name_f", nlinks, u+1, total_error)
 
-              ! /* Create soft link in another group, to objects in main group */
+              !  Create soft link in another group, to objects in main group 
               valname = CORDER_GROUP_NAME//objname
 
               CALL H5Lcreate_soft_f(valname, soft_group_id, objname, error, H5P_DEFAULT_F, H5P_DEFAULT_F)
 
-              ! /* Retrieve soft link group's information, by name */
+              !  Retrieve soft link group's information, by name 
               CALL H5Gget_info_f(soft_group_id, storage_type, nlinks, max_corder, error)
               CALL check("H5Gget_info_f", error, total_error)
 
-              ! /* Check soft link group's information */
+              !  Check soft link group's information 
               CALL VERIFY("H5Gget_info_f", storage_type, H5G_STORAGE_TYPE_COMPACT_F, total_error)
               CALL VERIFY("H5Gget_info_f", max_corder, u+1, total_error)
               CALL VERIFY("H5Gget_info_f", nlinks, u+1, total_error)
            ENDDO
 
-           ! /* Close the groups */
+           !  Close the groups 
 
               CALL H5Gclose_f(group_id, error)
               CALL check("H5Gclose_f", error, total_error)
               CALL H5Gclose_f(soft_group_id, error)
               CALL check("H5Gclose_f", error, total_error)
 
-              ! /* Close the file */
+              !  Close the file 
               CALL H5Fclose_f(file_id, error)
               CALL check("H5Fclose_f", error, total_error)
            ENDDO
         ENDDO
      ENDDO
 
-     ! /* Free resources */
+     !  Free resources 
      CALL H5Pclose_f(gcpl_id, error)
      CALL check("H5Pclose_f", error, total_error)
 
@@ -441,7 +441,7 @@ SUBROUTINE group_info(cleanup, fapl, total_error)
 
    END SUBROUTINE group_info
 
-!/*-------------------------------------------------------------------------
+!-------------------------------------------------------------------------
 ! * Function:    timestamps
 ! *
 ! * Purpose:     Verify that disabling tracking timestamps for an object
@@ -452,7 +452,7 @@ SUBROUTINE group_info(cleanup, fapl, total_error)
 ! *              February 20, 2008
 ! *
 ! *-------------------------------------------------------------------------
-! */
+! 
 
    SUBROUTINE timestamps(cleanup, fapl, total_error)
 
@@ -463,15 +463,15 @@ SUBROUTINE group_info(cleanup, fapl, total_error)
      INTEGER, INTENT(INOUT) :: total_error
      INTEGER(HID_T), INTENT(IN) :: fapl
 
-     INTEGER(HID_T) :: file_id !/* File ID */
-     INTEGER(HID_T) :: group_id !/* Group ID */
-     INTEGER(HID_T) :: group_id2 !/* Group ID */
-     INTEGER(HID_T) :: gcpl_id !/* Group creation property list ID */
-     INTEGER(HID_T) :: gcpl_id2 !/* Group creation property list ID */
+     INTEGER(HID_T) :: file_id ! File ID 
+     INTEGER(HID_T) :: group_id ! Group ID 
+     INTEGER(HID_T) :: group_id2 ! Group ID 
+     INTEGER(HID_T) :: gcpl_id ! Group creation property list ID 
+     INTEGER(HID_T) :: gcpl_id2 ! Group creation property list ID 
 
      CHARACTER(LEN=6), PARAMETER :: prefix = 'links9'
-     CHARACTER(LEN=9), PARAMETER :: filename = prefix//'.h5'  ! /* File name */
-     ! /* Timestamp macros */
+     CHARACTER(LEN=9), PARAMETER :: filename = prefix//'.h5'  !  File name 
+     !  Timestamp macros 
      CHARACTER(LEN=10), PARAMETER :: TIMESTAMP_GROUP_1="timestamp1"
      CHARACTER(LEN=10), PARAMETER :: TIMESTAMP_GROUP_2="timestamp2"
      LOGICAL :: track_times
@@ -479,58 +479,58 @@ SUBROUTINE group_info(cleanup, fapl, total_error)
 
      INTEGER :: error
 
-     ! /* Print test message */
+     !  Print test message 
 !     WRITE(*,*) "timestamps on objects"
 
-     ! /* Create group creation property list */
+     !  Create group creation property list 
      CALL H5Pcreate_f(H5P_GROUP_CREATE_F, gcpl_id, error )
      CALL check("H5Pcreate_f", error, total_error)
 
-     ! /* Query the object timestamp setting */
+     !  Query the object timestamp setting 
      CALL H5Pget_obj_track_times_f(gcpl_id, track_times, error)
      CALL check("H5Pget_obj_track_times_f", error, total_error)
 
-     !/* Check default timestamp information */
+     ! Check default timestamp information 
      CALL VerifyLogical("H5Pget_obj_track_times",track_times,.TRUE.,total_error)
 
-     ! /* Set a non-default object timestamp setting */
+     !  Set a non-default object timestamp setting 
      CALL H5Pset_obj_track_times_f(gcpl_id, .FALSE., error)
      CALL check("H5Pset_obj_track_times_f", error, total_error)
 
-     ! /* Query the object timestamp setting */
+     !  Query the object timestamp setting 
      CALL H5Pget_obj_track_times_f(gcpl_id, track_times, error)
      CALL check("H5Pget_obj_track_times_f", error, total_error)
 
-     ! /* Check default timestamp information */
+     !  Check default timestamp information 
      CALL VerifyLogical("H5Pget_obj_track_times",track_times,.FALSE.,total_error)
 
-     ! /* Create file */
+     !  Create file 
      !h5_fixname(FILENAME[0], fapl, filename, sizeof filename);
 
      CALL H5Fcreate_f(filename, H5F_ACC_TRUNC_F, file_id, error, H5P_DEFAULT_F, fapl)
      CALL check("h5fcreate_f",error,total_error)
 
-    ! /* Create group with non-default object timestamp setting */
+    !  Create group with non-default object timestamp setting 
      CALL h5gcreate_f(file_id, TIMESTAMP_GROUP_1, group_id, error, &
           OBJECT_NAMELEN_DEFAULT_F, H5P_DEFAULT_F, gcpl_id, H5P_DEFAULT_F)
      CALL check("h5fcreate_f",error,total_error)
 
-    ! /* Close the group creation property list */
+    !  Close the group creation property list 
      CALL H5Pclose_f(gcpl_id, error)
      CALL check("H5Pclose_f", error, total_error)
 
-    ! /* Create group with default object timestamp setting */
+    !  Create group with default object timestamp setting 
      CALL h5gcreate_f(file_id, TIMESTAMP_GROUP_2, group_id2, error, &
           OBJECT_NAMELEN_DEFAULT_F, H5P_DEFAULT_F, H5P_DEFAULT_F, H5P_DEFAULT_F)
      CALL check("h5fcreate_f",error,total_error)
 
-    ! /* Retrieve the new groups' creation properties */
+    !  Retrieve the new groups' creation properties 
      CALL H5Gget_create_plist_f(group_id, gcpl_id, error)
      CALL check("H5Gget_create_plist", error, total_error)
      CALL H5Gget_create_plist_f(group_id2, gcpl_id2, error)
      CALL check("H5Gget_create_plist", error, total_error)
 
-    ! /* Query & verify the object timestamp settings */
+    !  Query & verify the object timestamp settings 
      CALL H5Pget_obj_track_times_f(gcpl_id, track_times, error)
      CALL check("H5Pget_obj_track_times_f", error, total_error)
      CALL VerifyLogical("H5Pget_obj_track_times1",track_times,.FALSE.,total_error)
@@ -538,11 +538,11 @@ SUBROUTINE group_info(cleanup, fapl, total_error)
      CALL check("H5Pget_obj_track_times_f", error, total_error)
      CALL VerifyLogical("H5Pget_obj_track_times2",track_times,.TRUE.,total_error)
 
-!    /* Query the object information for each group */
+!     Query the object information for each group 
 !    if(H5Oget_info(group_id, &oinfo) < 0) TEST_ERROR
 !    if(H5Oget_info(group_id2, &oinfo2) < 0) TEST_ERROR
 
-!!$    /* Sanity check object information for each group */
+!!$     Sanity check object information for each group 
 !!$    if(oinfo.atime != 0) TEST_ERROR
 !!$    if(oinfo.mtime != 0) TEST_ERROR
 !!$    if(oinfo.ctime != 0) TEST_ERROR
@@ -556,40 +556,40 @@ SUBROUTINE group_info(cleanup, fapl, total_error)
 !!$    if(oinfo.hdr.space.total >= oinfo2.hdr.space.total) TEST_ERROR
 !!$    if(oinfo.hdr.space.meta >= oinfo2.hdr.space.meta) TEST_ERROR
 
-     ! /* Close the property lists */
+     !  Close the property lists 
      CALL H5Pclose_f(gcpl_id, error)
      CALL check("H5Pclose_f", error, total_error)
      CALL H5Pclose_f(gcpl_id2, error)
      CALL check("H5Pclose_f", error, total_error)
 
-     ! /* Close the groups */
+     !  Close the groups 
      CALL H5Gclose_f(group_id, error)
      CALL check("H5Gclose_f", error, total_error)
      CALL H5Gclose_f(group_id2, error)
      CALL check("H5Gclose_f", error, total_error)
 
-     !/* Close the file */
+     ! Close the file 
      CALL H5Fclose_f(file_id, error)
      CALL check("H5Fclose_f", error, total_error)
 
-     !/* Re-open the file */
+     ! Re-open the file 
 
      CALL h5fopen_f(FileName, H5F_ACC_RDONLY_F, file_id, error, H5P_DEFAULT_F)
      CALL check("h5fopen_f",error,total_error)
 
-     !/* Open groups */
+     ! Open groups 
      CALL H5Gopen_f(file_id, TIMESTAMP_GROUP_1, group_id, error) ! with no optional param.
      CALL check("H5Gopen_f", error, total_error)
      CALL H5Gopen_f(file_id, TIMESTAMP_GROUP_2, group_id2, error, H5P_DEFAULT_F) ! with optional param.
      CALL check("H5Gopen_f", error, total_error)
 
-    ! /* Retrieve the new groups' creation properties */
+    !  Retrieve the new groups' creation properties 
      CALL H5Gget_create_plist_f(group_id, gcpl_id, error)
      CALL check("H5Gget_create_plist", error, total_error)
      CALL H5Gget_create_plist_f(group_id2, gcpl_id2, error)
      CALL check("H5Gget_create_plist", error, total_error)
 
-    ! /* Query & verify the object timestamp settings */
+    !  Query & verify the object timestamp settings 
 
      CALL H5Pget_obj_track_times_f(gcpl_id, track_times, error)
      CALL check("H5Pget_obj_track_times_f", error, total_error)
@@ -598,11 +598,11 @@ SUBROUTINE group_info(cleanup, fapl, total_error)
      CALL check("H5Pget_obj_track_times_f", error, total_error)
      CALL VerifyLogical("H5Pget_obj_track_times2",track_times,.TRUE.,total_error)
 !!$
-!!$    /* Query the object information for each group */
+!!$     Query the object information for each group 
 !!$    if(H5Oget_info(group_id, &oinfo) < 0) TEST_ERROR
 !!$    if(H5Oget_info(group_id2, &oinfo2) < 0) TEST_ERROR
 !!$
-!!$    /* Sanity check object information for each group */
+!!$     Sanity check object information for each group 
 !!$    if(oinfo.atime != 0) TEST_ERROR
 !!$    if(oinfo.mtime != 0) TEST_ERROR
 !!$    if(oinfo.ctime != 0) TEST_ERROR
@@ -616,19 +616,19 @@ SUBROUTINE group_info(cleanup, fapl, total_error)
 !!$    if(oinfo.hdr.space.total >= oinfo2.hdr.space.total) TEST_ERROR
 !!$    if(oinfo.hdr.space.meta >= oinfo2.hdr.space.meta) TEST_ERROR
 
-     ! /* Close the property lists */
+     !  Close the property lists 
      CALL H5Pclose_f(gcpl_id, error)
      CALL check("H5Pclose_f", error, total_error)
      CALL H5Pclose_f(gcpl_id2, error)
      CALL check("H5Pclose_f", error, total_error)
 
-     ! /* Close the groups */
+     !  Close the groups 
      CALL H5Gclose_f(group_id, error)
      CALL check("H5Gclose_f", error, total_error)
      CALL H5Gclose_f(group_id2, error)
      CALL check("H5Gclose_f", error, total_error)
 
-     !/* Close the file */
+     ! Close the file 
      CALL H5Fclose_f(file_id, error)
      CALL check("H5Fclose_f", error, total_error)
 
@@ -637,7 +637,7 @@ SUBROUTINE group_info(cleanup, fapl, total_error)
 
    END SUBROUTINE timestamps
 
-!/*-------------------------------------------------------------------------
+!-------------------------------------------------------------------------
 ! * Function:	mklinks
 ! *
 ! * Purpose:	Build a file with assorted links.
@@ -649,7 +649,7 @@ SUBROUTINE group_info(cleanup, fapl, total_error)
 ! * Modifications:
 ! *
 ! *-------------------------------------------------------------------------
-! */
+! 
 
    SUBROUTINE mklinks(fapl, total_error)
 
@@ -680,29 +680,29 @@ SUBROUTINE group_info(cleanup, fapl, total_error)
 
 !     WRITE(*,*) "link creation (w/new group format)"
 
-     ! /* Create a file */
+     !  Create a file 
      CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, file, error, H5P_DEFAULT_F, fapl)
      CALL check("mklinks.h5fcreate_f",error,total_error)
      CALL h5screate_simple_f(arank, adims2, scalar, error)
      CALL check("mklinks.h5screate_simple_f",error,total_error)
 
-     !/* Create a group */
+     ! Create a group 
      CALL H5Gcreate_f(file, "grp1", grp, error)
      CALL check("H5Gcreate_f", error, total_error)
      CALL H5Gclose_f(grp, error)
      CALL check("h5gclose_f",error,total_error)
 
-     !/* Create a dataset */
+     ! Create a dataset 
      CALL h5dcreate_f(file, "d1", H5T_NATIVE_INTEGER, scalar, d1, error)
      CALL check("h5dcreate_f",error,total_error)
      CALL h5dclose_f(d1, error)
      CALL check("h5dclose_f",error,total_error)
 
-     !/* Create a hard link */
+     ! Create a hard link 
      CALL H5Lcreate_hard_f(file, "d1", INT(H5L_SAME_LOC_F,HID_T), "grp1/hard", error)
      CALL check("H5Lcreate_hard_f", error, total_error)
 
-     !/* Create a symbolic link */
+     ! Create a symbolic link 
      CALL H5Lcreate_soft_f("/d1", file, "grp1/soft",error)
      CALL check("H5Lcreate_soft_f", error, total_error)
 
@@ -718,14 +718,14 @@ SUBROUTINE group_info(cleanup, fapl, total_error)
      ! should be '/d1' + NULL character = 4
      CALL VERIFY("H5Lget_info_by_idx_f", INT(val_size), 4, total_error)
 
-    !/* Create a symbolic link to something that doesn't exist */
+    ! Create a symbolic link to something that doesn't exist 
 
      CALL H5Lcreate_soft_f("foobar", file, "grp1/dangle",error)
 
-    !/* Create a recursive symbolic link */
+    ! Create a recursive symbolic link 
      CALL H5Lcreate_soft_f("/grp1/recursive", file, "/grp1/recursive",error)
 
-    !/* Close */
+    ! Close 
      CALL h5sclose_f(scalar, error)
      CALL check("h5sclose_f",error,total_error)
      CALL h5fclose_f(file, error)
@@ -733,7 +733,7 @@ SUBROUTINE group_info(cleanup, fapl, total_error)
 
   END SUBROUTINE mklinks
 
-!/*-------------------------------------------------------------------------
+!-------------------------------------------------------------------------
 ! * Function:    test_move_preserves
 ! *
 ! * Purpose:     Tests that moving and renaming links preserves their
@@ -745,7 +745,7 @@ SUBROUTINE group_info(cleanup, fapl, total_error)
 ! * Modifications:
 ! *
 ! *-------------------------------------------------------------------------
-! */
+! 
 
   SUBROUTINE test_move_preserves(fapl_id, total_error)
 
@@ -758,20 +758,20 @@ SUBROUTINE group_info(cleanup, fapl, total_error)
 
     INTEGER(HID_T):: file_id
     INTEGER(HID_T):: group_id
-    INTEGER(HID_T):: fcpl_id ! /* Group creation property list ID */
+    INTEGER(HID_T):: fcpl_id !  Group creation property list ID 
     INTEGER(HID_T):: lcpl_id
     !H5O_info_t oinfo;
     !H5L_info_t linfo;
     INTEGER :: old_cset
     INTEGER :: old_corder
     !H5T_cset_t old_cset;
-    !int64_t old_corder;         /* Creation order value of link */
+    !int64_t old_corder;          Creation order value of link 
     !time_t old_modification_time;
     !time_t curr_time;
-    !unsigned crt_order_flags;   /* Status of creation order info for GCPL */
+    !unsigned crt_order_flags;    Status of creation order info for GCPL 
     !char filename[1024];
 
-    INTEGER :: crt_order_flags ! /* Status of creation order info for GCPL */
+    INTEGER :: crt_order_flags !  Status of creation order info for GCPL 
     CHARACTER(LEN=12), PARAMETER :: filename = 'TestLinks.h5'
 
     INTEGER :: cset ! Indicates the character set used for the link’s name.
@@ -789,9 +789,9 @@ SUBROUTINE group_info(cleanup, fapl, total_error)
 
 !    WRITE(*,*) "moving and copying links preserves their properties (w/new group format)"
 
-    !/* Create a file creation property list with creation order stored for links
+    ! Create a file creation property list with creation order stored for links
     ! * in the root group
-    ! */
+    ! 
 
     CALL H5Pcreate_f(H5P_FILE_CREATE_F, fcpl_id, error)
     CALL check("H5Pcreate_f",error, total_error)
@@ -807,26 +807,26 @@ SUBROUTINE group_info(cleanup, fapl, total_error)
     CALL check("H5Pget_link_creation_order_f",error, total_error)
     CALL VERIFY("H5Pget_link_creation_order_f",crt_order_flags, H5P_CRT_ORDER_TRACKED_F, total_error)
 
-    !/* Create file */
-    !/* (with creation order tracking for the root group) */
+    ! Create file 
+    ! (with creation order tracking for the root group) 
 
     CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, file_id, error, fcpl_id, fapl_id)
     CALL check("h5fcreate_f",error,total_error)
 
-    !/* Create a link creation property list with the UTF-8 character encoding */
+    ! Create a link creation property list with the UTF-8 character encoding 
     CALL H5Pcreate_f(H5P_LINK_CREATE_F, lcpl_id, error)
     CALL check("H5Pcreate_f",error, total_error)
 
     CALL H5Pset_char_encoding_f(lcpl_id, H5T_CSET_UTF8_F, error)
     CALL check("H5Pset_char_encoding_f",error, total_error)
 
-    !/* Create a group with that lcpl */
+    ! Create a group with that lcpl 
     CALL H5Gcreate_f(file_id, "group", group_id, error,lcpl_id=lcpl_id, gcpl_id=H5P_DEFAULT_F, gapl_id=H5P_DEFAULT_F)
     CALL check("H5Gcreate_f", error, total_error)
     CALL H5Gclose_f(group_id, error)
     CALL check("H5Gclose_f", error, total_error)
 
-    ! /* Get the group's link's information */
+    !  Get the group's link's information 
     CALL H5Lget_info_f(file_id, "group", &
          cset, corder, f_corder_valid, link_type, address, val_size, &
          error, H5P_DEFAULT_F)
@@ -842,18 +842,18 @@ SUBROUTINE group_info(cleanup, fapl, total_error)
 
 !    old_modification_time = oinfo.mtime;
 
-!    /* If this test happens too quickly, the times will all be the same.  Make sure the time changes. */
+!     If this test happens too quickly, the times will all be the same.  Make sure the time changes. 
 !    curr_time = HDtime(NULL);
 !    while(HDtime(NULL) <= curr_time)
 !        ;
 
-!    /* Close the file and reopen it */
+!     Close the file and reopen it 
     CALL H5Fclose_f(file_id, error)
     CALL check("H5Fclose_f", error, total_error)
 
 !!$    if((file_id = H5Fopen(filename, H5F_ACC_RDWR, fapl_id)) < 0) TEST_ERROR
 !!$
-!!$    /* Get the link's character set & modification time .  They should be unchanged */
+!!$     Get the link's character set & modification time .  They should be unchanged 
 !!$    if(H5Lget_info(file_id, "group", &linfo, H5P_DEFAULT) < 0) TEST_ERROR
 !!$    if(H5Oget_info_by_name(file_id, "group", &oinfo, H5P_DEFAULT) < 0) TEST_ERROR
 !!$    if(old_modification_time != oinfo.mtime) TEST_ERROR
@@ -861,7 +861,7 @@ SUBROUTINE group_info(cleanup, fapl, total_error)
 !!$    if(linfo.corder_valid != TRUE) TEST_ERROR
 !!$    if(old_corder != linfo.corder) TEST_ERROR
 !!$
-!!$    /* Create a new link to the group.  It should have a different creation order value but the same modification time */
+!!$     Create a new link to the group.  It should have a different creation order value but the same modification time 
 !!$    if(H5Lcreate_hard(file_id, "group", file_id, "group2", H5P_DEFAULT, H5P_DEFAULT) < 0) TEST_ERROR
 !!$    if(H5Oget_info_by_name(file_id, "group2", &oinfo, H5P_DEFAULT) < 0) TEST_ERROR
 !!$    if(old_modification_time != oinfo.mtime) TEST_ERROR
@@ -871,10 +871,10 @@ SUBROUTINE group_info(cleanup, fapl, total_error)
 !!$    if(linfo.corder != 1) TEST_ERROR
 !!$    if(linfo.cset != H5T_CSET_ASCII) TEST_ERROR
 !!$
-!!$    /* Copy the first link to a UTF-8 name.
+!!$     Copy the first link to a UTF-8 name.
 !!$     *  Its creation order value should be different, but modification time
 !!$     * should not change.
-!!$     */
+!!$     
 !!$    if(H5Lcopy(file_id, "group", file_id, "group_copied", lcpl_id, H5P_DEFAULT) < 0) TEST_ERROR
 !!$    if(H5Oget_info_by_name(file_id, "group_copied", &oinfo, H5P_DEFAULT) < 0) TEST_ERROR
 !!$    if(old_modification_time != oinfo.mtime) TEST_ERROR
@@ -882,10 +882,10 @@ SUBROUTINE group_info(cleanup, fapl, total_error)
 !!$    if(linfo.corder_valid != TRUE) TEST_ERROR
 !!$    if(linfo.corder != 2) TEST_ERROR
 !!$
-!!$    /* Check that its character encoding is UTF-8 */
+!!$     Check that its character encoding is UTF-8 
 !!$    if(linfo.cset != H5T_CSET_UTF8) TEST_ERROR
 !!$
-!!$    /* Move the link with the default property list. */
+!!$     Move the link with the default property list. 
 !!$    if(H5Lmove(file_id, "group_copied", file_id, "group_copied2", H5P_DEFAULT, H5P_DEFAULT) < 0) TEST_ERROR
 !!$    if(H5Oget_info_by_name(file_id, "group_copied2", &oinfo, H5P_DEFAULT) < 0) TEST_ERROR
 !!$    if(old_modification_time != oinfo.mtime) TEST_ERROR
@@ -893,10 +893,10 @@ SUBROUTINE group_info(cleanup, fapl, total_error)
 !!$    if(linfo.corder_valid != TRUE) TEST_ERROR
 !!$    if(linfo.corder != 3) TEST_ERROR
 !!$
-!!$    /* Check that its character encoding is not UTF-8 */
+!!$     Check that its character encoding is not UTF-8 
 !!$    if(linfo.cset == H5T_CSET_UTF8) TEST_ERROR
 !!$
-!!$    /* Check that the original link is unchanged */
+!!$     Check that the original link is unchanged 
 !!$    if(H5Oget_info_by_name(file_id, "group", &oinfo, H5P_DEFAULT) < 0) TEST_ERROR
 !!$    if(old_modification_time != oinfo.mtime) TEST_ERROR
 !!$    if(H5Lget_info(file_id, "group", &linfo, H5P_DEFAULT) < 0) TEST_ERROR
@@ -904,9 +904,9 @@ SUBROUTINE group_info(cleanup, fapl, total_error)
 !!$    if(old_corder != linfo.corder) TEST_ERROR
 !!$    if(linfo.cset != H5T_CSET_UTF8) TEST_ERROR
 !!$
-!!$    /* Move the first link to a UTF-8 name.
+!!$     Move the first link to a UTF-8 name.
 !!$     *  Its creation order value will change, but modification time should not
-!!$     *  change. */
+!!$     *  change. 
 !!$    if(H5Lmove(file_id, "group", file_id, "group_moved", lcpl_id, H5P_DEFAULT) < 0) TEST_ERROR
 !!$    if(H5Oget_info_by_name(file_id, "group_moved", &oinfo, H5P_DEFAULT) < 0) TEST_ERROR
 !!$    if(old_modification_time != oinfo.mtime) TEST_ERROR
@@ -914,10 +914,10 @@ SUBROUTINE group_info(cleanup, fapl, total_error)
 !!$    if(linfo.corder_valid != TRUE) TEST_ERROR
 !!$    if(linfo.corder != 4) TEST_ERROR
 !!$
-!!$    /* Check that its character encoding is UTF-8 */
+!!$     Check that its character encoding is UTF-8 
 !!$    if(linfo.cset != H5T_CSET_UTF8) TEST_ERROR
 !!$
-!!$    /* Move the link again using the default property list. */
+!!$     Move the link again using the default property list. 
 !!$    if(H5Lmove(file_id, "group_moved", file_id, "group_moved_again", H5P_DEFAULT, H5P_DEFAULT) < 0) TEST_ERROR
 !!$    if(H5Oget_info_by_name(file_id, "group_moved_again", &oinfo, H5P_DEFAULT) < 0) TEST_ERROR
 !!$    if(old_modification_time != oinfo.mtime) TEST_ERROR
@@ -925,10 +925,10 @@ SUBROUTINE group_info(cleanup, fapl, total_error)
 !!$    if(linfo.corder_valid != TRUE) TEST_ERROR
 !!$    if(linfo.corder != 5) TEST_ERROR
 !!$
-!!$    /* Check that its character encoding is not UTF-8 */
+!!$     Check that its character encoding is not UTF-8 
 !!$    if(linfo.cset == H5T_CSET_UTF8) TEST_ERROR
 
-    ! /* Close open IDs */
+    !  Close open IDs 
      CALL H5Pclose_f(fcpl_id, error)
      CALL check("H5Pclose_f", error, total_error)
      CALL H5Pclose_f(lcpl_id, error)
@@ -938,7 +938,7 @@ SUBROUTINE group_info(cleanup, fapl, total_error)
 
    END SUBROUTINE test_move_preserves
 
-!/*-------------------------------------------------------------------------
+!-------------------------------------------------------------------------
 ! * Function:    lifecycle
 ! *
 ! * Purpose:     Test that adding links to a group follow proper "lifecycle"
@@ -953,7 +953,7 @@ SUBROUTINE group_info(cleanup, fapl, total_error)
 ! *              Monday, October 17, 2005
 ! *
 ! *-------------------------------------------------------------------------
-! */
+! 
 SUBROUTINE lifecycle(cleanup, fapl2, total_error)
 
 
@@ -967,14 +967,14 @@ SUBROUTINE lifecycle(cleanup, fapl2, total_error)
 
   INTEGER, PARAMETER :: NAME_BUF_SIZE =7
 
-  INTEGER(HID_T) :: fid            !/* File ID */
-  INTEGER(HID_T) :: gid            !/* Group ID */
-  INTEGER(HID_T) :: gcpl           !/* Group creation property list ID */
-  INTEGER(size_t) :: lheap_size_hint !/* Local heap size hint */
-  INTEGER :: max_compact            !/* Maximum # of links to store in group compactly */
-  INTEGER :: min_dense              !/* Minimum # of links to store in group "densely" */
-  INTEGER :: est_num_entries        !/* Estimated # of entries in group */
-  INTEGER :: est_name_len           !/* Estimated length of entry name */
+  INTEGER(HID_T) :: fid            ! File ID 
+  INTEGER(HID_T) :: gid            ! Group ID 
+  INTEGER(HID_T) :: gcpl           ! Group creation property list ID 
+  INTEGER(size_t) :: lheap_size_hint ! Local heap size hint 
+  INTEGER :: max_compact            ! Maximum # of links to store in group compactly 
+  INTEGER :: min_dense              ! Minimum # of links to store in group "densely" 
+  INTEGER :: est_num_entries        ! Estimated # of entries in group 
+  INTEGER :: est_name_len           ! Estimated length of entry name 
   CHARACTER(LEN=NAME_BUF_SIZE) :: filename = 'fixx.h5'
   INTEGER(SIZE_T) :: LIFECYCLE_LOCAL_HEAP_SIZE_HINT = 256
   INTEGER :: LIFECYCLE_MAX_COMPACT = 4
@@ -991,29 +991,29 @@ SUBROUTINE lifecycle(cleanup, fapl2, total_error)
 
 !  WRITE(*,*) 'group lifecycle'
 
-  ! /* Create file */
+  !  Create file 
   CALL H5Fcreate_f(filename, H5F_ACC_TRUNC_F, fid, error, access_prp=fapl2)
   CALL check("H5Fcreate_f",error,total_error)
 
-  !/* Close file */
+  ! Close file 
   CALL H5Fclose_f(fid,error)
   CALL check("H5Fclose_f",error,total_error)
 
-  ! /* Get size of file as empty */
+  !  Get size of file as empty 
   ! if((empty_size = h5_get_file_size(filename)) < 0) TEST_ERROR
 
-  ! /* Re-open file */
+  !  Re-open file 
 
   CALL H5Fopen_f(filename, H5F_ACC_RDWR_F, fid, error,access_prp=fapl2)
   CALL check("H5Fopen_f",error,total_error)
 
 
-  ! /* Set up group creation property list */
+  !  Set up group creation property list 
   CALL H5Pcreate_f(H5P_GROUP_CREATE_F,gcpl,error)
   CALL check("H5Pcreate_f",error,total_error)
 
 
-  ! /* Query default group creation property settings */
+  !  Query default group creation property settings 
   CALL H5Pget_local_heap_size_hint_f(gcpl, lheap_size_hint, error)
   CALL check("H5Pget_local_heap_size_hint_f",error,total_error)
   CALL verify("H5Pget_local_heap_size_hint_f", INT(lheap_size_hint),0,total_error)
@@ -1030,7 +1030,7 @@ SUBROUTINE lifecycle(cleanup, fapl2, total_error)
   CALL verify("H5Pget_est_link_info_f", est_name_len, H5G_CRT_GINFO_EST_NAME_LEN,total_error)
 
 
-  !/* Set GCPL parameters */
+  ! Set GCPL parameters 
 
   CALL H5Pset_local_heap_size_hint_f(gcpl, LIFECYCLE_LOCAL_HEAP_SIZE_HINT, error)
   CALL check("H5Pset_local_heap_size_hint_f", error, total_error)
@@ -1039,12 +1039,12 @@ SUBROUTINE lifecycle(cleanup, fapl2, total_error)
   CALL H5Pset_est_link_info_f(gcpl, LIFECYCLE_EST_NUM_ENTRIES, LIFECYCLE_EST_NAME_LEN, error)
   CALL check("H5Pset_est_link_info_f", error, total_error)
 
-  ! /* Create group for testing lifecycle */
+  !  Create group for testing lifecycle 
 
   CALL H5Gcreate_f(fid, LIFECYCLE_TOP_GROUP, gid, error, gcpl_id=gcpl)
   CALL check("H5Gcreate_f", error, total_error)
 
-  ! /* Query group creation property settings */
+  !  Query group creation property settings 
 
   CALL H5Pget_local_heap_size_hint_f(gcpl, lheap_size_hint, error)
   CALL check("H5Pget_local_heap_size_hint_f",error,total_error)
@@ -1062,20 +1062,20 @@ SUBROUTINE lifecycle(cleanup, fapl2, total_error)
 
 
 
-    !/* Close top group */
+    ! Close top group 
     CALL H5Gclose_f(gid, error)
     CALL check("H5Gclose_f", error, total_error)
 
-    !/* Unlink top group */
+    ! Unlink top group 
 
     CALL H5Ldelete_f(fid, LIFECYCLE_TOP_GROUP, error)
     CALL check("H5Ldelete_f", error, total_error)
 
-    ! /* Close GCPL */
+    !  Close GCPL 
     CALL H5Pclose_f(gcpl, error)
     CALL check("H5Pclose_f", error, total_error)
 
-    ! /* Close file */
+    !  Close file 
     CALL H5Fclose_f(fid,error)
     CALL check("H5Fclose_f",error,total_error)
 
@@ -1084,7 +1084,7 @@ SUBROUTINE lifecycle(cleanup, fapl2, total_error)
 
   END SUBROUTINE lifecycle
 
-!/*-------------------------------------------------------------------------
+!-------------------------------------------------------------------------
 ! * Function:	cklinks
 ! *
 ! * Purpose:	Open the file created in the first step and check that the
@@ -1100,7 +1100,7 @@ SUBROUTINE lifecycle(cleanup, fapl2, total_error)
 ! * Modifications: Modified original C code
 ! *
 ! *-------------------------------------------------------------------------
-! */
+! 
 
 
   SUBROUTINE cklinks(fapl, total_error)
@@ -1124,25 +1124,25 @@ SUBROUTINE lifecycle(cleanup, fapl2, total_error)
 
   LOGICAL :: Lexists
 
-  ! /* Open the file */
+  !  Open the file 
   CALL H5Fopen_f(filename, H5F_ACC_RDONLY_F, file, error,access_prp=fapl)
   CALL check("H5Fopen_f",error,total_error)
 
 
-  ! /* Hard link */
+  !  Hard link 
 !!$  IF(H5Oget_info_by_name(file, "d1", &oinfo1, H5P_DEFAULT) < 0) FAIL_STACK_ERROR
 !!$  IF(H5Oget_info_by_name(file, "grp1/hard", &oinfo2, H5P_DEFAULT) < 0) FAIL_STACK_ERROR
 !!$  IF(H5O_TYPE_DATASET != oinfo2.type) {
 !!$	H5_FAILED();
 !!$	printf("    %d: Unexpected object type should have been a dataset\n", __LINE__);
 !!$	TEST_ERROR
-!!$    } /* end if */
+!!$    }  end if 
 !!$    if(H5F_addr_ne(oinfo1.addr, oinfo2.addr)) {
 !!$	H5_FAILED();
 !!$	puts("    Hard link test failed. Link seems not to point to the ");
 !!$	puts("    expected file location.");
 !!$	TEST_ERROR
-!!$    } /* end if */
+!!$    }  end if 
 
 
   CALL H5Lexists_f(file,"d1",Lexists, error)
@@ -1151,14 +1151,14 @@ SUBROUTINE lifecycle(cleanup, fapl2, total_error)
   CALL H5Lexists_f(file,"grp1/hard",Lexists, error)
   CALL verifylogical("H5Lexists", Lexists,.TRUE.,total_error)
 
-  ! /* Cleanup */
+  !  Cleanup 
   CALL H5Fclose_f(file,error)
   CALL check("H5Fclose_f",error,total_error)
 
 END SUBROUTINE cklinks
 
 
-!/*-------------------------------------------------------------------------
+!-------------------------------------------------------------------------
 ! * Function:    delete_by_idx
 ! *
 ! * Purpose:     Create a group with creation order indices and test deleting
@@ -1173,7 +1173,7 @@ END SUBROUTINE cklinks
 ! *                     March 3, 2008
 ! *
 ! *-------------------------------------------------------------------------
-! */
+! 
 SUBROUTINE delete_by_idx(cleanup, fapl, total_error)
 
   USE HDF5 ! This module contains all necessary modules
@@ -1183,18 +1183,18 @@ SUBROUTINE delete_by_idx(cleanup, fapl, total_error)
   INTEGER, INTENT(INOUT) :: total_error
   INTEGER(HID_T), INTENT(IN) :: fapl
 
-  INTEGER(HID_T) :: file_id  ! /* File ID */
-  INTEGER(HID_T) :: group_id ! /* Group ID */
-  INTEGER(HID_T) :: gcpl_id  ! /* Group creation property list ID */
+  INTEGER(HID_T) :: file_id  !  File ID 
+  INTEGER(HID_T) :: group_id !  Group ID 
+  INTEGER(HID_T) :: gcpl_id  !  Group creation property list ID 
 
-  INTEGER :: idx_type        ! /* Type of index to operate on */
+  INTEGER :: idx_type        !  Type of index to operate on 
   LOGICAL, DIMENSION(1:2) :: use_index = (/.FALSE.,.TRUE./)
-                             ! /* Use index on creation order values */
-  INTEGER :: max_compact     ! /* Maximum # of links to store in group compactly */
-  INTEGER :: min_dense       ! /* Minimum # of links to store in group "densely" */
+                             !  Use index on creation order values 
+  INTEGER :: max_compact     !  Maximum # of links to store in group compactly 
+  INTEGER :: min_dense       !  Minimum # of links to store in group "densely" 
 
-  CHARACTER(LEN=7) :: objname   ! /* Object name */
-  CHARACTER(LEN=8) :: filename = 'file0.h5' ! /* File name */
+  CHARACTER(LEN=7) :: objname   !  Object name 
+  CHARACTER(LEN=8) :: filename = 'file0.h5' !  File name 
   CHARACTER(LEN=12), PARAMETER :: CORDER_GROUP_NAME = "corder_group"
 
   LOGICAL :: f_corder_valid ! Indicates whether the creation order data is valid for this attribute
@@ -1204,11 +1204,11 @@ SUBROUTINE delete_by_idx(cleanup, fapl, total_error)
   INTEGER :: link_type
   INTEGER(HADDR_T) :: address
 
-  INTEGER :: u ! /* Local index variable */
+  INTEGER :: u !  Local index variable 
   INTEGER :: Input1, i
   INTEGER(HID_T) :: group_id2
   INTEGER(HID_T) :: grp
-  INTEGER :: iorder ! /* Order within in the index */
+  INTEGER :: iorder !  Order within in the index 
   CHARACTER(LEN=2) :: chr2
   INTEGER :: error
   INTEGER :: id_type
@@ -1226,13 +1226,13 @@ SUBROUTINE delete_by_idx(cleanup, fapl, total_error)
      fix_filename2(i:i) = " "
   ENDDO
 
-  ! /* Loop over operating on different indices on link fields */
+  !  Loop over operating on different indices on link fields 
   DO idx_type = H5_INDEX_NAME_F, H5_INDEX_CRT_ORDER_F
-     ! /* Loop over operating in different orders */
+     !  Loop over operating in different orders 
      DO iorder = H5_ITER_INC_F,  H5_ITER_DEC_F
-        ! /* Loop over using index for creation order value */
+        !  Loop over using index for creation order value 
         DO i = 1, 2
-           ! /* Print appropriate test message */
+           !  Print appropriate test message 
 !!$           IF(idx_type == H5_INDEX_CRT_ORDER_F)THEN
 !!$              IF(iorder == H5_ITER_INC_F)THEN
 !!$                 IF(use_index(i))THEN
@@ -1263,15 +1263,15 @@ SUBROUTINE delete_by_idx(cleanup, fapl, total_error)
 !!$              ENDIF
 !!$           ENDIF
 
-           ! /* Create file */
+           !  Create file 
            CALL H5Fcreate_f(filename, H5F_ACC_TRUNC_F, file_id, error, access_prp=fapl)
            CALL check("delete_by_idx.H5Fcreate_f", error, total_error)
 
-           ! /* Create group creation property list */
+           !  Create group creation property list 
            CALL H5Pcreate_f(H5P_GROUP_CREATE_F, gcpl_id, error )
            CALL check("delete_by_idx.H5Pcreate_f", error, total_error)
 
-           ! /* Set creation order tracking & indexing on group */
+           !  Set creation order tracking & indexing on group 
            IF(use_index(i))THEN
               Input1 = H5P_CRT_ORDER_INDEXED_F
            ELSE
@@ -1281,54 +1281,54 @@ SUBROUTINE delete_by_idx(cleanup, fapl, total_error)
            CALL H5Pset_link_creation_order_f(gcpl_id, IOR(H5P_CRT_ORDER_TRACKED_F, Input1), error)
            CALL check("delete_by_idx.H5Pset_link_creation_order_f", error, total_error)
 
-           ! /* Create group with creation order tracking on */
+           !  Create group with creation order tracking on 
            CALL H5Gcreate_f(file_id, CORDER_GROUP_NAME, group_id, error, gcpl_id=gcpl_id)
            CALL check("delete_by_idx.H5Gcreate_f", error, total_error)
 
-           ! /* Query the group creation properties */
+           !  Query the group creation properties 
            CALL H5Pget_link_phase_change_f(gcpl_id, max_compact, min_dense, error)
            CALL check("delete_by_idx.H5Pget_link_phase_change_f", error, total_error)
 
 
-           ! /* Delete links from one end */
+           !  Delete links from one end 
 
-           ! /* Check for deletion on empty group */
+           !  Check for deletion on empty group 
            CALL H5Ldelete_by_idx_f(group_id, ".", idx_type, iorder, INT(0,HSIZE_T), error)
            CALL VERIFY("delete_by_idx.H5Ldelete_by_idx_f", error, -1, total_error) ! test should fail (error = -1)
-           ! /* Create several links, up to limit of compact form */
+           !  Create several links, up to limit of compact form 
            DO u = 0, max_compact-1
-              ! /* Make name for link */
+              !  Make name for link 
               WRITE(chr2,'(I2.2)') u
               objname = 'fill '//chr2
 
-              ! /* Create hard link, with group object */
+              !  Create hard link, with group object 
               CALL H5Gcreate_f(group_id, objname, group_id2, error)
               CALL check("delete_by_idx.H5Gcreate_f", error, total_error)
               CALL H5Gclose_f(group_id2, error)
               CALL check("delete_by_idx.H5Gclose_f", error, total_error)
 
-              ! /* Verify link information for new link */
+              !  Verify link information for new link 
               CALL link_info_by_idx_check(group_id, objname, u, &
                    .TRUE., use_index(i), total_error)
            ENDDO
 
-           ! /* Verify state of group (compact) */
+           !  Verify state of group (compact) 
            ! IF(H5G_has_links_test(group_id, NULL) != TRUE) TEST_ERROR
 
-           ! /* Check for out of bound deletion */
+           !  Check for out of bound deletion 
            htmp =9
 !EP           CALL H5Ldelete_by_idx_f(group_id, ".", idx_type, iorder, INT(u,HSIZE_T), error)
            CALL H5Ldelete_by_idx_f(group_id, ".", idx_type, iorder, htmp, error)
            CALL VERIFY("H5Ldelete_by_idx_f", error, -1, total_error) ! test should fail (error = -1)
 
 
-           ! /* Delete links from compact group */
+           !  Delete links from compact group 
 
            DO u = 0, (max_compact - 1) -1
-              ! /* Delete first link in appropriate order */
+              !  Delete first link in appropriate order 
               CALL H5Ldelete_by_idx_f(group_id, ".", idx_type, iorder, INT(0,HSIZE_T), error)
               CALL check("H5Ldelete_by_idx_f", error, total_error)
-              ! /* Verify the link information for first link in appropriate order */
+              !  Verify the link information for first link in appropriate order 
               ! HDmemset(&linfo, 0, sizeof(linfo));
 
               CALL H5Lget_info_by_idx_f(group_id, ".", idx_type, iorder, INT(0,HSIZE_T), &
@@ -1358,7 +1358,7 @@ SUBROUTINE delete_by_idx(cleanup, fapl, total_error)
 
 
 
-              ! /* Verify the name for first link in appropriate order */
+              !  Verify the name for first link in appropriate order 
               ! HDmemset(tmpname, 0, (size_t)NAME_BUF_SIZE);
 !!$              size_tmp = 20
 !!$              CALL H5Lget_name_by_idx_f(group_id, ".", idx_type, order, INT(0,HSIZE_T), size_tmp, tmpname, error)
@@ -1374,15 +1374,15 @@ SUBROUTINE delete_by_idx(cleanup, fapl, total_error)
 !!$              CALL verifyString("delete_by_idx.H5Lget_name_by_idx_f", objname, tmpname,  total_error)
            ENDDO
 
-           ! /* Close the group */
+           !  Close the group 
            CALL H5Gclose_f(group_id, error)
            CALL check("delete_by_idx.H5Gclose_f", error, total_error)
 
-           !/* Close the group creation property list */
+           ! Close the group creation property list 
            CALL H5Pclose_f(gcpl_id, error)
            CALL check("delete_by_idx.H5Gclose_f", error, total_error)
 
-           !/* Close the file */
+           ! Close the file 
            CALL H5Fclose_f(file_id, error)
            CALL check("delete_by_idx.H5Gclose_f", error, total_error)
 
@@ -1398,7 +1398,7 @@ END SUBROUTINE delete_by_idx
 
 
 
-!/*-------------------------------------------------------------------------
+!-------------------------------------------------------------------------
 ! * Function:    link_info_by_idx_check
 ! *
 ! * Purpose:     Support routine for link_info_by_idx, to verify the link
@@ -1414,7 +1414,7 @@ END SUBROUTINE delete_by_idx
 ! *              Tuesday, November  7, 2006
 ! *
 ! *-------------------------------------------------------------------------
-! */
+! 
 SUBROUTINE link_info_by_idx_check(group_id, linkname, n, &
     hard_link, use_index, total_error)
 
@@ -1436,35 +1436,35 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, &
   INTEGER(HADDR_T) :: address
   INTEGER(SIZE_T) :: val_size   ! Indicates the size, in the number of characters, of the attribute
 
-  CHARACTER(LEN=7) :: tmpname     !/* Temporary link name */
-  CHARACTER(LEN=3) :: tmpname_small !/* to small temporary link name */
-  CHARACTER(LEN=10) :: tmpname_big !/* to big temporary link name */
+  CHARACTER(LEN=7) :: tmpname     ! Temporary link name 
+  CHARACTER(LEN=3) :: tmpname_small ! to small temporary link name 
+  CHARACTER(LEN=10) :: tmpname_big ! to big temporary link name 
 
-  CHARACTER(LEN=7) :: valname     !/* Link value name */
+  CHARACTER(LEN=7) :: valname     ! Link value name 
   CHARACTER(LEN=2) :: chr2
   INTEGER(SIZE_T) :: size_tmp
   INTEGER :: error
 
-  ! /* Make link value for increasing/native order queries */
+  !  Make link value for increasing/native order queries 
 
   WRITE(chr2,'(I2.2)') n
   valname = 'valn.'//chr2
 
-  ! /* Verify the link information for first link, in increasing creation order */
+  !  Verify the link information for first link, in increasing creation order 
   !  HDmemset(&linfo, 0, sizeof(linfo));
   CALL H5Lget_info_by_idx_f(group_id, ".", H5_INDEX_CRT_ORDER_F, H5_ITER_INC_F, INT(0,HSIZE_T), &
        link_type, f_corder_valid, corder, cset, address, val_size, error)
   CALL check("H5Lget_info_by_idx_f", error, total_error)
   CALL VERIFY("H5Lget_info_by_idx_f", corder, 0, total_error)
 
-  ! /* Verify the link information for new link, in increasing creation order */
+  !  Verify the link information for new link, in increasing creation order 
   ! HDmemset(&linfo, 0, sizeof(linfo));
   CALL H5Lget_info_by_idx_f(group_id, ".", H5_INDEX_CRT_ORDER_F, H5_ITER_INC_F, INT(n,HSIZE_T), &
        link_type, f_corder_valid, corder, cset, address, val_size, error)
   CALL check("H5Lget_info_by_idx_f", error, total_error)
   CALL VERIFY("H5Lget_info_by_idx_f", corder, n, total_error)
 
-  ! /* Verify value for new soft link, in increasing creation order */
+  !  Verify value for new soft link, in increasing creation order 
 !!$  IF(hard_link)THEN
 !!$     ! HDmemset(tmpval, 0, (size_t)NAME_BUF_SIZE);
 !!$
@@ -1474,7 +1474,7 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, &
 !!$!     IF(HDstrcmp(valname, tmpval)) TEST_ERROR
 !!$  ENDIF
 
-  ! /* Verify the name for new link, in increasing creation order */
+  !  Verify the name for new link, in increasing creation order 
   !  HDmemset(tmpname, 0, (size_t)NAME_BUF_SIZE);
 
   ! The actual size of tmpname should be 7
@@ -1503,7 +1503,7 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, &
   END SUBROUTINE link_info_by_idx_check
 
 
-!/*-------------------------------------------------------------------------
+!-------------------------------------------------------------------------
 ! * Function:    test_lcpl
 ! *
 ! * Purpose:     Tests Link Creation Property Lists
@@ -1518,7 +1518,7 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, &
 ! * Modifications:
 ! *
 ! *-------------------------------------------------------------------------
-! */
+! 
 
   SUBROUTINE test_lcpl(cleanup, fapl, total_error)
 
@@ -1565,35 +1565,35 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, &
 !  WRITE(*,*) "link creation property lists (w/new group format)"
 
 
-  !/* Actually, intermediate group creation is tested elsewhere (tmisc).
-  ! * Here we only need to test the character encoding property */
+  ! Actually, intermediate group creation is tested elsewhere (tmisc).
+  ! * Here we only need to test the character encoding property 
 
-  !/* Create file */
+  ! Create file 
   !  h5_fixname(FILENAME[0], fapl, filename, sizeof filename);
 
   CALL H5Fcreate_f(filename, H5F_ACC_TRUNC_F, file_id, error, H5P_DEFAULT_F, fapl)
   CALL check("H5Fcreate_f", error, total_error)
 
 
-  ! /* Create and link a group with the default LCPL */
+  !  Create and link a group with the default LCPL 
 
   CALL H5Gcreate_f(file_id, "/group", group_id, error)
   CALL check("H5Gcreate_f", error, total_error)
 
 
-  ! /* Check that its character encoding is the default */
+  !  Check that its character encoding is the default 
 
   CALL H5Lget_info_f(file_id, "group", &
        cset, corder, f_corder_valid, link_type, address, val_size, &
        error, H5P_DEFAULT_F)
 
-!/* File-wide default character encoding can not yet be set via the file
-! * creation property list and is always ASCII. */
+! File-wide default character encoding can not yet be set via the file
+! * creation property list and is always ASCII. 
 !#define H5F_DEFAULT_CSET H5T_CSET_ASCII  -- FROM H5Fprivate.h --
 
   CALL VERIFY("H5Lget_info_f",cset, H5T_CSET_ASCII_F,total_error)
 
-  ! /* Create and commit a datatype with the default LCPL */
+  !  Create and commit a datatype with the default LCPL 
   CALL h5tcopy_f(H5T_NATIVE_INTEGER, type_id, error)
   CALL check("h5tcopy_f",error,total_error)
   CALL h5tcommit_f(file_id, "/type", type_id, error)
@@ -1602,19 +1602,19 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, &
   CALL check("h5tclose_f", error, total_error)
 
 
-  ! /* Check that its character encoding is the default */
+  !  Check that its character encoding is the default 
   CALL H5Lget_info_f(file_id, "type", &
        cset, corder, f_corder_valid, link_type, address, val_size, &
        error)
   CALL check("h5tclose_f", error, total_error)
 
-!/* File-wide default character encoding can not yet be set via the file
-! * creation property list and is always ASCII. */
+! File-wide default character encoding can not yet be set via the file
+! * creation property list and is always ASCII. 
 !#define H5F_DEFAULT_CSET H5T_CSET_ASCII  -- FROM H5Fprivate.h --
 
   CALL verify("H5Lget_info_f",cset, H5T_CSET_ASCII_F,total_error)
 
-  !/* Create a dataspace */
+  ! Create a dataspace 
   CALL h5screate_simple_f(2, dims, space_id, error)
   CALL check("h5screate_simple_f",error,total_error)
   CALL h5pcreate_f(H5P_DATASET_CREATE_F, crp_list, error)
@@ -1624,7 +1624,7 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, &
   CALL h5pcreate_f(H5P_DATASET_CREATE_F, crp_list, error)
   CALL h5pset_chunk_f(crp_list, 2, dims, error)
 
-  ! /* Create a dataset using the default LCPL */
+  !  Create a dataset using the default LCPL 
   CALL h5dcreate_f(file_id, "/dataset", H5T_NATIVE_INTEGER, space_id, dset_id, error, crp_list)
   CALL check("h5dcreate_f", error, total_error)
 
@@ -1636,10 +1636,10 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, &
   CALL H5Dopen_f(file_id, "/dataset", dset_id, error)
   CALL check("h5dopen_f", error, total_error)
 
-  !  /* Extend the  dataset */
+  !   Extend the  dataset 
   CALL H5Dset_extent_f(dset_id, extend_dim, error)
   CALL check("H5Dset_extent_f", error, total_error)
-  !  /* Verify the dataspaces */
+  !   Verify the dataspaces 
         !
           !Get dataset's dataspace handle.
           !
@@ -1658,37 +1658,37 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, &
      CALL VERIFY("H5Sget_simple_extent_dims", tmp1, tmp2, total_error)
   ENDDO
 
-  ! /* close data set */
+  !  close data set 
 
   CALL h5dclose_f(dset_id, error)
   CALL check("h5dclose_f", error, total_error)
 
-  ! /* Check that its character encoding is the default */
+  !  Check that its character encoding is the default 
   CALL H5Lget_info_f(file_id, "dataset", &
        cset, corder, f_corder_valid, link_type, address, val_size, &
        error)
   CALL check("H5Lget_info_f", error, total_error)
 
-!/* File-wide default character encoding can not yet be set via the file
-! * creation property list and is always ASCII. */
+! File-wide default character encoding can not yet be set via the file
+! * creation property list and is always ASCII. 
 !#define H5F_DEFAULT_CSET H5T_CSET_ASCII  -- FROM H5Fprivate.h --
 
   CALL verify("h5tclose_f",cset, H5T_CSET_ASCII_F,total_error)
 
-  !/* Create a link creation property list with the UTF-8 character encoding */
+  ! Create a link creation property list with the UTF-8 character encoding 
   CALL H5Pcreate_f(H5P_LINK_CREATE_F,lcpl_id,error)
   CALL check("h5Pcreate_f",error,total_error)
   CALL H5Pset_char_encoding_f(lcpl_id, H5T_CSET_UTF8_F, error)
   CALL check("H5Pset_char_encoding_f",error, total_error)
 
-  ! /* Create and link a group with the new LCPL */
+  !  Create and link a group with the new LCPL 
   CALL H5Gcreate_f(file_id, "/group2", group_id, error,lcpl_id=lcpl_id)
   CALL check("H5Gcreate_f", error, total_error)
   CALL H5Gclose_f(group_id, error)
   CALL check("H5Gclose_f", error, total_error)
 
 
-  !/* Check that its character encoding is UTF-8 */
+  ! Check that its character encoding is UTF-8 
   CALL H5Lget_info_f(file_id, "group2", &
        cset, corder, f_corder_valid, link_type, address, val_size, &
        error)
@@ -1696,7 +1696,7 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, &
   CALL verify("H5Lget_info_f",cset, H5T_CSET_UTF8_F,total_error)
 
 
-  ! /* Create and commit a datatype with the new LCPL */
+  !  Create and commit a datatype with the new LCPL 
 
   CALL h5tcopy_f(H5T_NATIVE_INTEGER, type_id, error)
   CALL check("h5tcopy_f",error,total_error)
@@ -1706,14 +1706,14 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, &
   CALL check("h5tclose_f", error, total_error)
 
 
-  !/* Check that its character encoding is UTF-8 */
+  ! Check that its character encoding is UTF-8 
   CALL H5Lget_info_f(file_id, "type2", &
        cset, corder, f_corder_valid, link_type, address, val_size, &
        error)
   CALL check("H5Lget_info_f", error, total_error)
   CALL verify("H5Lget_info_f",cset, H5T_CSET_UTF8_F,total_error)
 
-  ! /* Create a dataset using the new LCPL */
+  !  Create a dataset using the new LCPL 
   CALL h5dcreate_f(file_id, "/dataset2", H5T_NATIVE_INTEGER, space_id, dset_id, error,lcpl_id=lcpl_id)
   CALL check("h5dcreate_f", error, total_error)
 
@@ -1724,14 +1724,14 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, &
   CALL check("H5Pget_char_encoding_f", error, total_error)
   CALL VERIFY("H5Pget_char_encoding_f", encoding, H5T_CSET_UTF8_F, total_error)
 
-  ! /* Check that its character encoding is UTF-8 */
+  !  Check that its character encoding is UTF-8 
   CALL H5Lget_info_f(file_id, "dataset2", &
        cset, corder, f_corder_valid, link_type, address, val_size, &
        error)
   CALL check("H5Lget_info_f", error, total_error)
   CALL verify("H5Lget_info_f2",cset, H5T_CSET_UTF8_F,total_error)
 
-  ! /* Create a new link to the dataset with a different character encoding. */
+  !  Create a new link to the dataset with a different character encoding. 
   CALL H5Pclose_f(lcpl_id, error)
   CALL check("H5Pclose_f", error, total_error)
 
@@ -1746,14 +1746,14 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, &
   CALL check("H5Lexists",error, total_error)
   CALL verifylogical("H5Lexists", Lexists,.TRUE.,total_error)
 
-  ! /* Check that its character encoding is ASCII */
+  !  Check that its character encoding is ASCII 
   CALL H5Lget_info_f(file_id, "/dataset2_link", &
        cset, corder, f_corder_valid, link_type, address, val_size, &
        error)
   CALL check("H5Lget_info_f", error, total_error)
   CALL verify("H5Lget_info_f",cset, H5T_CSET_ASCII_F,total_error)
 
-  ! /* Check that the first link's encoding hasn't changed */
+  !  Check that the first link's encoding hasn't changed 
 
   CALL H5Lget_info_f(file_id, "/dataset2", &
        cset, corder, f_corder_valid, link_type, address, val_size, &
@@ -1762,8 +1762,8 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, &
   CALL verify("H5Lget_info_f3",cset, H5T_CSET_UTF8_F,total_error)
 
 
-  !/* Make sure that LCPLs work properly for other API calls: */
-  !/* H5Lcreate_soft */
+  ! Make sure that LCPLs work properly for other API calls: 
+  ! H5Lcreate_soft 
 
   CALL H5Pset_char_encoding_f(lcpl_id, H5T_CSET_UTF8_F, error)
   CALL check("H5Pset_char_encoding_f",error, total_error)
@@ -1777,7 +1777,7 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, &
   CALL verify("H5Lget_info_f",cset, H5T_CSET_UTF8_F,total_error)
 
 
-  ! /* H5Lmove */
+  !  H5Lmove 
   CALL H5Pset_char_encoding_f(lcpl_id, H5T_CSET_ASCII_F, error)
   CALL check("H5Pset_char_encoding_f",error, total_error)
 
@@ -1791,7 +1791,7 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, &
   CALL verify("H5Lget_info_f",cset, H5T_CSET_ASCII_F,total_error)
 
 
-  ! /* H5Lcopy */
+  !  H5Lcopy 
 
   CALL H5Pset_char_encoding_f(lcpl_id, H5T_CSET_UTF8_F, error)
   CALL check("H5Pset_char_encoding_f",error, total_error)
@@ -1805,7 +1805,7 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, &
   CALL verify("H5Lget_info_f",cset, H5T_CSET_UTF8_F,total_error)
 
 
-  ! /* H5Lcreate_external */
+  !  H5Lcreate_external 
 
   CALL H5Lcreate_external_f("filename", "path", file_id, "extlink", error, lcpl_id)
   CALL check("H5Lcreate_external_f", error, total_error)
@@ -1817,7 +1817,7 @@ SUBROUTINE link_info_by_idx_check(group_id, linkname, n, &
   CALL verify("H5Lget_info_f",cset, H5T_CSET_UTF8_F,total_error)
 
 
-  ! /* Close open IDs */
+  !  Close open IDs 
 
   CALL H5Pclose_f(lcpl_id, error)
   CALL check("H5Pclose_f", error, total_error)
@@ -1849,22 +1849,22 @@ SUBROUTINE objcopy(fapl, total_error)
 
   flag = H5O_COPY_SHALLOW_HIERARCHY_F
 
-!/* Copy the file access property list */
+! Copy the file access property list 
   CALL H5Pcopy_f(fapl, fapl2, error)
   CALL check("H5Pcopy_f", error, total_error)
 
-!/* Set the "use the latest version of the format" bounds for creating objects in the file */
+! Set the "use the latest version of the format" bounds for creating objects in the file 
   CALL H5Pset_libver_bounds_f(fapl2, H5F_LIBVER_LATEST_F, H5F_LIBVER_LATEST_F, error)
 
-  ! /* create property to pass copy options */
+  !  create property to pass copy options 
   CALL h5pcreate_f(H5P_OBJECT_COPY_F, pid, error)
   CALL check("h5pcreate_f",error, total_error)
 
-  ! /* set options for object copy */
+  !  set options for object copy 
   CALL H5Pset_copy_object_f(pid, flag, error)
   CALL check("H5Pset_copy_object_f",error, total_error)
 
-  ! /* Verify object copy flags */
+  !  Verify object copy flags 
   CALL H5Pget_copy_object_f(pid, cpy_flags, error)
   CALL check("H5Pget_copy_object_f",error, total_error)
   CALL VERIFY("H5Pget_copy_object_f", cpy_flags, flag, total_error)
@@ -1878,7 +1878,7 @@ SUBROUTINE objcopy(fapl, total_error)
 END SUBROUTINE objcopy
 
 
-!/*-------------------------------------------------------------------------
+!-------------------------------------------------------------------------
 ! * Function:    lapl_nlinks
 ! *
 ! * Purpose:     Check that the maximum number of soft links can be adjusted
@@ -1894,7 +1894,7 @@ END SUBROUTINE objcopy
 ! * Modifications:
 ! *
 ! *-------------------------------------------------------------------------
-! */
+! 
 
 SUBROUTINE lapl_nlinks( fapl, total_error)
 
@@ -1907,30 +1907,30 @@ SUBROUTINE lapl_nlinks( fapl, total_error)
 
   INTEGER :: error
 
-  INTEGER(HID_T) :: fid = (-1) !/* File ID */
-  INTEGER(HID_T) :: gid = (-1), gid2 = (-1) !/* Group IDs */
-  INTEGER(HID_T) :: plist = (-1) ! /* lapl ID */
-  INTEGER(HID_T) :: tid = (-1) ! /* Other IDs */
-  INTEGER(HID_T) :: gapl = (-1), dapl = (-1), tapl = (-1) ! /* Other property lists */
+  INTEGER(HID_T) :: fid = (-1) ! File ID 
+  INTEGER(HID_T) :: gid = (-1), gid2 = (-1) ! Group IDs 
+  INTEGER(HID_T) :: plist = (-1) !  lapl ID 
+  INTEGER(HID_T) :: tid = (-1) !  Other IDs 
+  INTEGER(HID_T) :: gapl = (-1), dapl = (-1), tapl = (-1) !  Other property lists 
 
-  CHARACTER(LEN=7) :: objname ! /* Object name */
-  INTEGER(size_t) :: name_len ! /* Length of object name */
+  CHARACTER(LEN=7) :: objname !  Object name 
+  INTEGER(size_t) :: name_len !  Length of object name 
   CHARACTER(LEN=12) :: filename = 'TestLinks.h5'
-  INTEGER(size_t) ::              nlinks ! /* nlinks for H5Pset_nlinks */
+  INTEGER(size_t) ::              nlinks !  nlinks for H5Pset_nlinks 
   INTEGER(size_t) :: buf_size = 7
 
 !  WRITE(*,*) "adjusting nlinks with LAPL (w/new group format)"
 
 
-  ! /* Create file */
+  !  Create file 
   CALL h5fcreate_f(FileName, H5F_ACC_TRUNC_F, fid, error, access_prp=fapl)
   CALL check(" lapl_nlinks.h5fcreate_f",error,total_error)
 
-  ! /* Create group with short name in file (used as target for links) */
+  !  Create group with short name in file (used as target for links) 
   CALL H5Gcreate_f(fid, "final", gid, error)
   CALL check(" lapl_nlinks.H5Gcreate_f", error, total_error)
 
-  !/* Create chain of soft links to existing object (limited) */
+  ! Create chain of soft links to existing object (limited) 
   CALL H5Lcreate_soft_f("final", fid, "soft1", error)
   CALL H5Lcreate_soft_f("soft1", fid, "soft2", error)
   CALL H5Lcreate_soft_f("soft2", fid, "soft3", error)
@@ -1949,98 +1949,98 @@ SUBROUTINE lapl_nlinks( fapl, total_error)
   CALL H5Lcreate_soft_f("soft15", fid, "soft16", error)
   CALL H5Lcreate_soft_f("soft16", fid, "soft17", error)
 
-  !/* Close objects */
+  ! Close objects 
   CALL H5Gclose_f(gid, error)
   CALL check("h5gclose_f",error,total_error)
   CALL h5fclose_f(fid, error)
   CALL check("h5fclose_f",error,total_error)
 
-  !/* Open file */
+  ! Open file 
 
   CALL h5fopen_f(FileName, H5F_ACC_RDWR_F, fid, error, fapl)
   CALL check("h5open_f",error,total_error)
 
-  !/* Create LAPL with higher-than-usual nlinks value */
-  !/* Create a non-default lapl with udata set to point to the first group */
+  ! Create LAPL with higher-than-usual nlinks value 
+  ! Create a non-default lapl with udata set to point to the first group 
 
   CALL H5Pcreate_f(H5P_LINK_ACCESS_F,plist,error)
   CALL check("h5Pcreate_f",error,total_error)
   nlinks = 20
   CALL H5Pset_nlinks_f(plist, nlinks, error)
   CALL check("H5Pset_nlinks_f",error,total_error)
-  !/* Ensure that nlinks was set successfully */
+  ! Ensure that nlinks was set successfully 
   nlinks = 0
   CALL H5Pget_nlinks_f(plist, nlinks, error)
   CALL check("H5Pset_nlinks_f",error,total_error)
   CALL VERIFY("H5Pset_nlinks_f",INT(nlinks), 20, total_error)
 
 
-  !/* Open object through what is normally too many soft links using
-  ! * new property list */
+  ! Open object through what is normally too many soft links using
+  ! * new property list 
 
   CALL H5Oopen_f(fid,"soft17",gid,error,plist)
   CALL check("H5Oopen_f",error,total_error)
 
-  !/* Check name */
+  ! Check name 
   CALL h5iget_name_f(gid, objname, buf_size, name_len, error)
   CALL check("h5iget_name_f",error,total_error)
   CALL VerifyString("h5iget_name_f", TRIM(objname),"/soft17", total_error)
-  !/* Create group using soft link */
+  ! Create group using soft link 
   CALL H5Gcreate_f(gid, "new_soft", gid2, error)
   CALL check("H5Gcreate_f", error, total_error)
 
-  ! /* Close groups */
+  !  Close groups 
   CALL H5Gclose_f(gid2, error)
   CALL check("H5Gclose_f", error, total_error)
   CALL H5Gclose_f(gid, error)
   CALL check("H5Gclose_f", error, total_error)
 
 
-  !/* Set nlinks to a smaller number */
+  ! Set nlinks to a smaller number 
   nlinks = 4
   CALL H5Pset_nlinks_f(plist, nlinks, error)
   CALL check("H5Pset_nlinks_f", error, total_error)
 
-  !/* Ensure that nlinks was set successfully */
+  ! Ensure that nlinks was set successfully 
   nlinks = 0
 
   CALL H5Pget_nlinks_f(plist, nlinks, error)
   CALL check("H5Pget_nlinks_f",error,total_error)
   CALL VERIFY("H5Pget_nlinks_f", INT(nlinks), 4, total_error)
 
-  ! /* Try opening through what is now too many soft links */
+  !  Try opening through what is now too many soft links 
 
   CALL H5Oopen_f(fid,"soft5",gid,error,plist)
   CALL VERIFY("H5Oopen_f", error, -1, total_error) ! should fail
 
-  ! /* Open object through lesser soft link */
+  !  Open object through lesser soft link 
   CALL H5Oopen_f(fid,"soft4",gid,error,plist)
   CALL check("H5Oopen_",error,total_error)
 
-  ! /* Check name */
+  !  Check name 
   CALL h5iget_name_f(gid, objname, buf_size, name_len, error)
   CALL check("h5iget_name_f",error,total_error)
   CALL VerifyString("h5iget_name_f", TRIM(objname),"/soft4", total_error)
 
-  ! /* Test other functions that should use a LAPL */
+  !  Test other functions that should use a LAPL 
   nlinks = 20
   CALL H5Pset_nlinks_f(plist, nlinks, error)
   CALL check("H5Pset_nlinks_f", error, total_error)
 
-  !/* Try copying and moving when both src and dst contain many soft links
+  ! Try copying and moving when both src and dst contain many soft links
   ! * using a non-default LAPL
-  ! */
+  ! 
   CALL H5Lcopy_f(fid, "soft17", fid, "soft17/newer_soft", error, H5P_DEFAULT_F, plist)
   CALL check("H5Lcopy_f",error,total_error)
 
   CALL H5Lmove_f(fid, "soft17/newer_soft", fid, "soft17/newest_soft", error, lapl_id=plist)
   CALL check("H5Lmove_f",error, total_error)
 
-  ! /* H5Olink */
+  !  H5Olink 
   CALL H5Olink_f(gid, fid, "soft17/link_to_group", error, H5P_DEFAULT_F, plist)
   CALL check("H5Olink_f", error, total_error)
 
-  ! /* H5Lcreate_hard and H5Lcreate_soft */
+  !  H5Lcreate_hard and H5Lcreate_soft 
   CALL H5Lcreate_hard_f(fid, "soft17", fid, "soft17/link2_to_group", error, H5P_DEFAULT_F, plist)
   CALL check("H5Lcreate_hard_f", error, total_error)
 
@@ -2048,27 +2048,27 @@ SUBROUTINE lapl_nlinks( fapl, total_error)
   CALL H5Lcreate_soft_f("/soft4", fid, "soft17/soft_link",error, H5P_DEFAULT_F, plist)
   CALL check("H5Lcreate_soft_f", error, total_error)
 
-  ! /* H5Ldelete */
+  !  H5Ldelete 
   CALL h5ldelete_f(fid, "soft17/soft_link", error, plist)
   CALL check("H5Ldelete_f", error, total_error)
 
-!!$    /* H5Lget_val and H5Lget_info */
+!!$     H5Lget_val and H5Lget_info 
 !!$    if(H5Lget_val(fid, "soft17", NULL, (size_t)0, plist) < 0) TEST_ERROR
 !!$    if(H5Lget_info(fid, "soft17", NULL, plist) < 0) TEST_ERROR
 !!$
 
-  ! /* H5Lcreate_external and H5Lcreate_ud */
+  !  H5Lcreate_external and H5Lcreate_ud 
   CALL H5Lcreate_external_f("filename", "path", fid, "soft17/extlink", error, H5P_DEFAULT_F, plist)
   CALL check("H5Lcreate_external_f", error, total_error)
 
 !!$    if(H5Lregister(UD_rereg_class) < 0) TEST_ERROR
 !!$    if(H5Lcreate_ud(fid, "soft17/udlink", UD_HARD_TYPE, NULL, (size_t)0, H5P_DEFAULT, plist) < 0) TEST_ERROR
 !!$
-    ! /* Close plist */
+    !  Close plist 
   CALL h5pclose_f(plist, error)
   CALL check("h5pclose_f", error, total_error)
 
-    ! /* Create a datatype and dataset as targets inside the group */
+    !  Create a datatype and dataset as targets inside the group 
   CALL h5tcopy_f(H5T_NATIVE_INTEGER, tid, error)
   CALL check("h5tcopy_f",error,total_error)
   CALL h5tcommit_f(gid, "datatype", tid, error)
@@ -2083,12 +2083,12 @@ SUBROUTINE lapl_nlinks( fapl, total_error)
 !!$    if((did = H5Dcreate2(gid, "dataset", H5T_NATIVE_INT, sid, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) < 0) TEST_ERROR
 !!$    if(H5Dclose(did) < 0) TEST_ERROR
 !!$
-  !/* Close group */
+  ! Close group 
   CALL h5gclose_f(gid, error)
   CALL check("h5gclose_f",error,total_error)
 
 !!$
-!!$    /* Try to open the objects using too many symlinks with default *APLs */
+!!$     Try to open the objects using too many symlinks with default *APLs 
 !!$    H5E_BEGIN_TRY {
 !!$        if((gid = H5Gopen2(fid, "soft17", H5P_DEFAULT)) >= 0)
 !!$            FAIL_PUTS_ERROR("    Should have failed for too many nested links.")
@@ -2098,7 +2098,7 @@ SUBROUTINE lapl_nlinks( fapl, total_error)
 !!$            FAIL_PUTS_ERROR("    Should have failed for too many nested links.")
 !!$    } H5E_END_TRY
 !!$
-    ! /* Create property lists with nlinks set */
+    !  Create property lists with nlinks set 
 
   CALL H5Pcreate_f(H5P_GROUP_ACCESS_F,gapl,error)
   CALL check("h5Pcreate_f",error,total_error)
@@ -2116,9 +2116,9 @@ SUBROUTINE lapl_nlinks( fapl, total_error)
   CALL H5Pset_nlinks_f(dapl, nlinks, error)
   CALL check("H5Pset_nlinks_f", error, total_error)
 
-  !/* We should now be able to use these property lists to open each kind
+  ! We should now be able to use these property lists to open each kind
   ! * of object.
-  ! */
+  ! 
 
   CALL H5Gopen_f(fid, "soft17", gid, error, gapl)
   CALL check("H5Gopen_f",error,total_error)
@@ -2128,7 +2128,7 @@ SUBROUTINE lapl_nlinks( fapl, total_error)
 
 !!$    if((did = H5Dopen2(fid, "soft17/dataset", dapl)) < 0) TEST_ERROR
 
-  ! /* Close objects */
+  !  Close objects 
 
   CALL h5gclose_f(gid, error)
   CALL check("h5gclose_f",error,total_error)
@@ -2137,7 +2137,7 @@ SUBROUTINE lapl_nlinks( fapl, total_error)
 
 !!$    if(H5Dclose(did) < 0) TEST_ERROR
 !!$
-  ! /* Close plists */
+  !  Close plists 
 
   CALL h5pclose_f(gapl, error)
   CALL check("h5pclose_f", error, total_error)
@@ -2146,11 +2146,11 @@ SUBROUTINE lapl_nlinks( fapl, total_error)
 
 !!$    if(H5Pclose(dapl) < 0) TEST_ERROR
 !!$
-!!$    /* Unregister UD hard link class */
+!!$     Unregister UD hard link class 
 !!$    if(H5Lunregister(UD_HARD_TYPE) < 0) TEST_ERROR
 !!$
 
-  ! /* Close file */
+  !  Close file 
   CALL H5Fclose_f(fid, error)
   CALL check("H5Fclose_f", error, total_error)
 
diff --git a/fortran/test/tH5MISC_1_8.f90 b/fortran/test/tH5MISC_1_8.f90
index efc350e..efaf594 100644
--- a/fortran/test/tH5MISC_1_8.f90
+++ b/fortran/test/tH5MISC_1_8.f90
@@ -80,38 +80,36 @@ SUBROUTINE dtransform(cleanup, total_error)
   IF(cleanup) CALL h5_cleanup_f("dtransform", H5P_DEFAULT_F, error)
   CALL check("h5_cleanup_f", error, total_error)
 
-
 END SUBROUTINE dtransform
 
 
-!/****************************************************************
+!***************************************************************
 !**
 !**  test_genprop_basic_class(): Test basic generic property list code.
 !**      Tests creating new generic classes.
 !**
-!****************************************************************/
+!***************************************************************
 
-SUBROUTINE test_genprop_basic_class(cleanup, total_error)
+SUBROUTINE test_genprop_basic_class(total_error)
 
   USE HDF5 ! This module contains all necessary modules
   USE TH5_MISC
 
   IMPLICIT NONE
-  LOGICAL, INTENT(IN)  :: cleanup
   INTEGER, INTENT(INOUT) :: total_error
 
-  INTEGER(HID_T) :: cid1    !/* Generic Property class ID */
-  INTEGER(HID_T) :: cid2    !/* Generic Property class ID */
+  INTEGER(HID_T) :: cid1    ! Generic Property class ID 
+  INTEGER(HID_T) :: cid2    ! Generic Property class ID 
 
   CHARACTER(LEN=7) :: CLASS1_NAME = "Class 1"
-  CHARACTER(LEN=7)  :: name              ! /* Name of class */
-  CHARACTER(LEN=10) :: name_big          ! /* Name of class bigger buffer */
-  CHARACTER(LEN=4)  :: name_small        ! /* Name of class smaller buffer*/
+  CHARACTER(LEN=7)  :: name              !  Name of class 
+  CHARACTER(LEN=10) :: name_big          !  Name of class bigger buffer 
+  CHARACTER(LEN=4)  :: name_small        !  Name of class smaller buffer
   INTEGER :: error
   INTEGER :: size
   LOGICAL :: flag
 
-  !/* Output message about test being performed */
+  ! Output message about test being performed 
 
   !WRITE(*,*) "Testing Basic Generic Property List Class Creation Functionality"
 
@@ -121,11 +119,11 @@ SUBROUTINE test_genprop_basic_class(cleanup, total_error)
   CALL H5Pget_class_name_f(cid1, name, size, error)
   CALL VERIFY("H5Pget_class_name", error, -1, error)
 
-  ! /* Create a new generic class, derived from the root of the class hierarchy */
+  !  Create a new generic class, derived from the root of the class hierarchy 
   CALL H5Pcreate_class_f(H5P_ROOT_F, CLASS1_NAME, cid1, error)
   CALL check("H5Pcreate_class", error, total_error)
 
-  ! /* Check class name */
+  !  Check class name 
   CALL H5Pget_class_name_f(cid1, name, size, error)
   CALL check("H5Pget_class_name", error, total_error)
   CALL VERIFY("H5Pget_class_name", size,7,error)
@@ -135,7 +133,7 @@ SUBROUTINE test_genprop_basic_class(cleanup, total_error)
      total_error = total_error + 1
   ENDIF
 
-  ! /* Check class name smaller buffer*/
+  !  Check class name smaller buffer
   CALL H5Pget_class_name_f(cid1, name_small, size, error)
   CALL check("H5Pget_class_name", error, total_error)
   CALL VERIFY("H5Pget_class_name", size,7,error)
@@ -145,7 +143,7 @@ SUBROUTINE test_genprop_basic_class(cleanup, total_error)
      total_error = total_error + 1
   ENDIF
 
-  ! /* Check class name bigger buffer*/
+  !  Check class name bigger buffer
   CALL H5Pget_class_name_f(cid1, name_big, size, error)
   CALL check("H5Pget_class_name", error, total_error)
   CALL VERIFY("H5Pget_class_name", size,7,error)
@@ -155,56 +153,55 @@ SUBROUTINE test_genprop_basic_class(cleanup, total_error)
      total_error = total_error + 1
   ENDIF
 
-  ! /* Check class parent */
+  !  Check class parent 
   CALL H5Pget_class_parent_f(cid1, cid2, error)
   CALL check("H5Pget_class_parent_f", error, total_error)
 
-  ! /* Verify class parent correct */
+  !  Verify class parent correct 
   CALL H5Pequal_f(cid2, H5P_ROOT_F, flag, error)
   CALL check("H5Pequal_f", error, total_error)
   CALL verifylogical("H5Pequal_f", flag, .TRUE., total_error)
 
 
-  ! /* Make certain false postives aren't being returned */
+  !  Make certain false postives aren't being returned 
   CALL H5Pequal_f(cid2, H5P_FILE_CREATE_F, flag, error)
   CALL check("H5Pequal_f", error, total_error)
   CALL verifylogical("H5Pequal_f", flag, .FALSE., total_error)
 
-  !/* Close parent class */
+  ! Close parent class 
   CALL H5Pclose_class_f(cid2, error)
   CALL check("H5Pclose_class_f", error, total_error)
 
 
-  !/* Close class */
+  ! Close class 
   CALL H5Pclose_class_f(cid1, error)
   CALL check("H5Pclose_class_f", error, total_error)
 
 END SUBROUTINE test_genprop_basic_class
 
-SUBROUTINE test_h5s_encode(cleanup, total_error)
+SUBROUTINE test_h5s_encode(total_error)
 
-!/****************************************************************
+!***************************************************************
 !**
 !**  test_h5s_encode(): Test H5S (dataspace) encoding and decoding.
 !**
-!****************************************************************/
+!***************************************************************
 
   USE HDF5 ! This module contains all necessary modules
   USE TH5_MISC
   IMPLICIT NONE
-  LOGICAL, INTENT(IN)  :: cleanup
   INTEGER, INTENT(INOUT) :: total_error
 
-  INTEGER(hid_t) :: sid1, sid3!	/* Dataspace ID		*/
+  INTEGER(hid_t) :: sid1, sid3!	 Dataspace ID		
   INTEGER(hid_t) :: decoded_sid1, decoded_sid3
-  INTEGER :: rank    !/* LOGICAL rank of dataspace	*/
+  INTEGER :: rank    ! LOGICAL rank of dataspace	
   INTEGER(size_t) :: sbuf_size=0, scalar_size=0
 
 ! Make sure the size is large
   CHARACTER(LEN=288) :: sbuf
   CHARACTER(LEN=288) :: scalar_buf
 
-  INTEGER(hsize_t) :: n ! /* Number of dataspace elements */
+  INTEGER(hsize_t) :: n !  Number of dataspace elements 
 
   INTEGER(hsize_t), DIMENSION(1:3) :: start = (/0, 0, 0/)
   INTEGER(hsize_t), DIMENSION(1:3) :: stride = (/2, 5, 3/)
@@ -221,10 +218,10 @@ SUBROUTINE test_h5s_encode(cleanup, total_error)
   INTEGER :: SPACE1_RANK = 3
   INTEGER :: error
 
-  !/*-------------------------------------------------------------------------
+  !-------------------------------------------------------------------------
   ! * Test encoding and decoding of simple dataspace and hyperslab selection.
   ! *-------------------------------------------------------------------------
-  ! */
+  ! 
 
   CALL H5Screate_simple_f(SPACE1_RANK, dims1, sid1, error)
   CALL check("H5Screate_simple", error, total_error)
@@ -234,14 +231,14 @@ SUBROUTINE test_h5s_encode(cleanup, total_error)
   CALL check("h5sselect_hyperslab_f", error, total_error)
 
 
-  !/* Encode simple data space in a buffer */
+  ! Encode simple data space in a buffer 
 
   !         First find the buffer size
   CALL H5Sencode_f(sid1, sbuf, sbuf_size, error)
   CALL check("H5Sencode", error, total_error)
 
 
-  ! /* Try decoding bogus buffer */
+  !  Try decoding bogus buffer 
 
   CALL H5Sdecode_f(sbuf, decoded_sid1, error)
   CALL VERIFY("H5Sdecode", error, -1, total_error)
@@ -249,12 +246,12 @@ SUBROUTINE test_h5s_encode(cleanup, total_error)
   CALL H5Sencode_f(sid1, sbuf, sbuf_size, error)
   CALL check("H5Sencode", error, total_error)
 
-  ! /* Decode from the dataspace buffer and return an object handle */
+  !  Decode from the dataspace buffer and return an object handle 
   CALL H5Sdecode_f(sbuf, decoded_sid1, error)
   CALL check("H5Sdecode", error, total_error)
 
 
-  ! /* Verify the decoded dataspace */
+  !  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), INT(SPACE1_DIM1 * SPACE1_DIM2 * SPACE1_DIM3), &
@@ -269,16 +266,16 @@ SUBROUTINE test_h5s_encode(cleanup, total_error)
   CALL h5sclose_f(decoded_sid1, error)
   CALL check("h5sclose_f", error, total_error)
 
-  ! /*-------------------------------------------------------------------------
+  ! -------------------------------------------------------------------------
   !  * Test encoding and decoding of scalar dataspace.
   !  *-------------------------------------------------------------------------
-  !  */
-  ! /* Create scalar dataspace */
+  !  
+  !  Create scalar dataspace 
 
   CALL H5Screate_f(H5S_SCALAR_F, sid3, error)
   CALL check("H5Screate_f",error, total_error)
 
-  ! /* Encode scalar data space in a buffer */
+  !  Encode scalar data space in a buffer 
 
   !        First find the buffer size
   CALL H5Sencode_f(sid3, scalar_buf, scalar_size, error)
@@ -290,19 +287,19 @@ SUBROUTINE test_h5s_encode(cleanup, total_error)
   CALL check("H5Sencode_f", error, total_error)
 
 
-  ! /* Decode from the dataspace buffer and return an object handle */
+  !  Decode from the dataspace buffer and return an object handle 
 
   CALL H5Sdecode_f(scalar_buf, decoded_sid3, error)
   CALL check("H5Sdecode_f", error, total_error)
 
 
-  ! /* Verify extent type */
+  !  Verify extent type 
 
   CALL H5Sget_simple_extent_type_f(decoded_sid3, space_type, error)
   CALL check("H5Sget_simple_extent_type_f", error, total_error)
   CALL VERIFY("H5Sget_simple_extent_type_f", space_type, H5S_SCALAR_F, total_error)
 
-  ! /* Verify decoded dataspace */
+  !  Verify decoded dataspace 
   CALL h5sget_simple_extent_npoints_f(decoded_sid3, n, error)
   CALL check("h5sget_simple_extent_npoints_f", error, total_error)
   CALL VERIFY("h5sget_simple_extent_npoints_f", INT(n), 1, total_error)
@@ -469,6 +466,9 @@ SUBROUTINE test_scaleoffset(cleanup, total_error )
   CALL H5Fclose_f(file, error)
   CALL CHECK(" H5Fclose_f", error, total_error)
 
+  IF(cleanup) CALL h5_cleanup_f("h5scaleoffset", H5P_DEFAULT_F, error)
+  CALL check("h5_cleanup_f", error, total_error)
+
 END SUBROUTINE test_scaleoffset
 
 END MODULE TH5MISC_1_8
diff --git a/fortran/test/tH5O.f90 b/fortran/test/tH5O.f90
index 8672e3c..99d4c22 100644
--- a/fortran/test/tH5O.f90
+++ b/fortran/test/tH5O.f90
@@ -49,11 +49,11 @@ SUBROUTINE test_h5o(cleanup, total_error)
 
 END SUBROUTINE test_h5o
 
-!/****************************************************************
+!***************************************************************
 !**
 !**  test_h5o_link: Test creating link to object
 !**
-!****************************************************************/
+!***************************************************************
 
 SUBROUTINE test_h5o_link(total_error)
 
@@ -80,10 +80,10 @@ SUBROUTINE test_h5o_link(total_error)
 
   INTEGER, PARAMETER :: TRUE = 1
 
-  LOGICAL :: committed ! /* Whether the named datatype is committed 
+  LOGICAL :: committed !  Whether the named datatype is committed 
 
   INTEGER :: i, j
-  INTEGER ::  error  ! /* Value returned from API calls 
+  INTEGER ::  error  !  Value returned from API calls 
 
   CHARACTER(LEN=14) :: NAME_DATATYPE_SIMPLE="H5T_NATIVE_INT"
   CHARACTER(LEN=16) :: NAME_DATATYPE_SIMPLE2="H5T_NATIVE_INT-2"
diff --git a/fortran/test/tH5O_F03.f90 b/fortran/test/tH5O_F03.f90
index b7003b3..8e014f4 100644
--- a/fortran/test/tH5O_F03.f90
+++ b/fortran/test/tH5O_F03.f90
@@ -116,11 +116,11 @@ END MODULE visit_cb
 MODULE TH5O_F03
 
 CONTAINS
-!/****************************************************************
+!***************************************************************
 !**
 !**  test_h5o_refcount(): Test H5O refcounting functions.
 !**
-!****************************************************************/
+!***************************************************************
 
 SUBROUTINE test_h5o_refcount(total_error)
 
diff --git a/fortran/test/tH5P.f90 b/fortran/test/tH5P.f90
index c94d564..7dcc580 100644
--- a/fortran/test/tH5P.f90
+++ b/fortran/test/tH5P.f90
@@ -306,7 +306,7 @@ SUBROUTINE multi_file_test(cleanup, total_error)
   !
   CALL h5pcreate_f(H5P_FILE_ACCESS_F, fapl, error)
   CALL check("h5pcreate_f", error, total_error)
-  CALL h5pset_fapl_multi_f(fapl, relax, error)
+  CALL h5pset_fapl_multi_f(fapl, memb_map, memb_fapl, memb_name, memb_addr, relax, error)
   CALL check("h5pset_fapl_multi_f", error, total_error)
   CALL h5fopen_f (fix_filename, H5F_ACC_RDWR_F, file_id, error, access_prp = fapl)
   CALL check("h5fopen_f", error, total_error)
@@ -450,8 +450,6 @@ SUBROUTINE test_chunk_cache(cleanup, total_error)
   INTEGER(size_t) rdcc_nelmts
   INTEGER(size_t) rdcc_nbytes
   REAL :: rdcc_w0
-  LOGICAL :: differ
-
 
   CALL h5_fixname_f(filename, fix_filename, H5P_DEFAULT_F, error)
   IF (error .NE. 0) THEN
diff --git a/fortran/test/tH5P_F03.f90 b/fortran/test/tH5P_F03.f90
index 945d0a5..56f9679 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_
@@ -73,7 +73,7 @@ MODULE TH5P_F03
 
 CONTAINS
 
-!/*-------------------------------------------------------------------------
+!-------------------------------------------------------------------------
 ! * Function:	test_create
 ! *
 ! * Purpose:	Tests H5Pset_fill_value_f and H5Pget_fill_value_f
@@ -88,7 +88,7 @@ CONTAINS
 ! * Modifications:
 ! *
 ! *-------------------------------------------------------------------------
-! */
+! 
 
 SUBROUTINE test_create(total_error)
 
@@ -116,9 +116,9 @@ SUBROUTINE test_create(total_error)
   REAL :: rfill
   REAL(KIND=dp) :: dpfill
 
-  !/*
+  !
   ! * Create a file.
-  ! */
+  ! 
   CALL h5fcreate_f(filename,H5F_ACC_TRUNC_F,file,error)
   CALL check("h5fcreate_f", error, total_error)   
 
@@ -131,7 +131,7 @@ SUBROUTINE test_create(total_error)
   CALL h5pset_chunk_f(dcpl, 5, ch_size, error)
   CALL check("h5pset_chunk_f",error, total_error)
 
-  ! /* Create a compound datatype */
+  !  Create a compound datatype 
   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))
@@ -152,7 +152,7 @@ SUBROUTINE test_create(total_error)
   CALL H5Pset_fill_time_f(dcpl, H5D_FILL_TIME_ALLOC_F, error)
   CALL check("H5Pset_fill_time_f",error, total_error)
 
-  ! /* Compound datatype test */
+  !  Compound datatype test 
 
   f_ptr = C_LOC(fill_ctype)
 
@@ -213,7 +213,7 @@ SUBROUTINE test_create(total_error)
   CALL h5fclose_f(file,error)
   CALL check("h5fclose_f", error, total_error)
 
-  ! /* Open the file and get the dataset fill value from each dataset */
+  !  Open the file and get the dataset fill value from each dataset 
   CALL H5Pcreate_f(H5P_FILE_ACCESS_F, fapl, error)
   CALL check("H5Pcreate_f",error, total_error)
 
@@ -223,7 +223,7 @@ SUBROUTINE test_create(total_error)
   CALL h5fopen_f (FILENAME, H5F_ACC_RDONLY_F, file, error, fapl)
   CALL check("h5fopen_f", error, total_error)
 
-  !/* Compound datatype test */
+  ! Compound datatype test 
   CALL h5dopen_f(file, "dset9", dset9, error)
   CALL check("h5dopen_f", error, total_error)
 
@@ -277,14 +277,13 @@ SUBROUTINE test_genprop_class_callback(total_error)
 
   INTEGER, INTENT(INOUT) :: total_error
 
-  INTEGER(hid_t) :: cid1 !/* Generic Property class ID */
-  INTEGER(hid_t) :: lid1 !/* Generic Property list ID */
-  INTEGER(hid_t) :: lid2 !/* 2nd Generic Property list ID */
-  INTEGER(size_t) :: nprops !/* Number of properties in class */
+  INTEGER(hid_t) :: cid1, cid2 ! Generic Property class ID 
+  INTEGER(hid_t) :: lid1, lid2 ! Generic Property list ID 
+  INTEGER(size_t) :: nprops ! Number of properties in class 
 
   TYPE(cop_cb_struct_), TARGET :: crt_cb_struct, cls_cb_struct
-
-  CHARACTER(LEN=7) :: CLASS1_NAME = "Class 1"
+  INTEGER :: CLASS1_NAME_SIZE = 7 ! length of class string
+  CHARACTER(LEN=7) :: CLASS1_NAME = "Class 1", CLASS1_NAME_BUF
   TYPE(C_FUNPTR) :: f1, f5
   TYPE(C_PTR) :: f2, f6
 
@@ -301,7 +300,8 @@ SUBROUTINE test_genprop_class_callback(total_error)
   INTEGER :: PROP3_DEF_VALUE = 10
   INTEGER :: PROP4_DEF_VALUE = 10
 
-  INTEGER :: error ! /* Generic RETURN value	*/
+  INTEGER :: error !  Generic RETURN value	
+  LOGICAL :: flag  ! for tests
 
   f1 = C_FUNLOC(test_genprop_cls_cb1_f)
   f5 = C_FUNLOC(test_genprop_cls_cb1_f)
@@ -309,79 +309,100 @@ SUBROUTINE test_genprop_class_callback(total_error)
   f2 = C_LOC(crt_cb_struct)
   f6 = C_LOC(cls_cb_struct)
 
-  !/* Create a new generic class, derived from the root of the class hierarchy */
-  CALL h5pcreate_class_f(h5p_ROOT_F,CLASS1_NAME, cid1, error, f1, f2, c_null_funptr, c_null_ptr, f5, f6)
+  ! Create a new generic class, derived from the root of the class hierarchy 
+  CALL h5pcreate_class_f(h5p_ROOT_F, CLASS1_NAME, cid1, error, f1, f2, c_null_funptr, c_null_ptr, f5, f6)
   CALL check("h5pcreate_class_f", error, total_error)
 
-  !/* Insert first property into class (with no callbacks) */
+  ! Insert first property into class (with no callbacks) 
   CALL h5pregister_f(cid1, PROP1_NAME, PROP1_SIZE, PROP1_DEF_VALUE, error)
   CALL check("h5pregister_f", error, total_error)
-  !/* Insert second property into class (with no callbacks) */
+  ! Insert second property into class (with no callbacks) 
   CALL h5pregister_f(cid1, PROP2_NAME, PROP2_SIZE, PROP2_DEF_VALUE, error)
   CALL check("h5pregister_f", error, total_error)
-  !/* Insert third property into class (with no callbacks) */
+  ! Insert third property into class (with no callbacks) 
   CALL h5pregister_f(cid1, PROP3_NAME, PROP3_SIZE, PROP3_DEF_VALUE, error)
   CALL check("h5pregister_f", error, total_error)
 
-  !/* Insert fourth property into class (with no callbacks) */
+  ! Insert fourth property into class (with no callbacks) 
   CALL h5pregister_f(cid1, PROP4_NAME, PROP4_SIZE, PROP4_DEF_VALUE, error)
   CALL check("h5pregister_f", error, total_error)
 
-  ! /* Check the number of properties in class */
+  !  Check the number of properties in class 
   CALL h5pget_nprops_f(cid1, nprops, error)
   CALL check("h5pget_nprops_f", error, total_error)
   CALL VERIFY("h5pget_nprops_f", INT(nprops), 4, total_error)
 
-  ! /* Initialize class callback structs */
+  !  Initialize class callback structs 
 
   crt_cb_struct%count = 0
   crt_cb_struct%id    = -1
   cls_cb_struct%count = 0
   cls_cb_struct%id    = -1
 
-  !/* Create a property list from the class */
+  ! Create a property list from the class 
   CALL h5pcreate_f(cid1, lid1, error)
   CALL check("h5pcreate_f", error, total_error)
 
-  !/* Verify that the creation callback occurred */
+  ! Get the list's class 
+  CALL H5Pget_class_f(lid1, cid2, error)
+  CALL check("H5Pget_class_f", error, total_error)
+
+  !  Check that the list's class is correct 
+  CALL H5Pequal_f(cid2, cid1, flag, error)
+  CALL check("H5Pequal_f", error, total_error)
+  CALL verifylogical("H5Pequal_f", flag, .TRUE., total_error)
+
+  ! Check the class name
+  CALL H5Pget_class_name_f(cid2, CLASS1_NAME_BUF, CLASS1_NAME_SIZE, error)
+  CALL check("H5Pget_class_name_f", error, total_error)
+  CALL verifystring("H5Pget_class_name_f", CLASS1_NAME_BUF, CLASS1_NAME, error)
+  IF(error.NE.0)THEN
+     WRITE(*,*) 'Class names do not match! name=',CLASS1_NAME_BUF, 'CLASS1_NAME=',CLASS1_NAME
+     total_error = total_error + 1
+  ENDIF
+  ! Close class 
+  CALL h5pclose_class_f(cid2, error)
+  CALL check("h5pclose_class_f", error, total_error)
+
+  ! Verify that the creation callback occurred 
   CALL VERIFY("h5pcreate_f", crt_cb_struct%count, 1, total_error)
-  CALL VERIFY("h5pcreate_f", INT(crt_cb_struct%id), INT(lid1), total_error)
+  CALL VERIFY_INTEGER_HID_T("h5pcreate_f", crt_cb_struct%id, lid1, total_error)
 
-  ! /* Check the number of properties in list */
+  !  Check the number of properties in list 
   CALL h5pget_nprops_f(lid1,nprops, error)
   CALL check("h5pget_nprops_f", error, total_error)
   CALL VERIFY("h5pget_nprops_f", INT(nprops), 4, total_error)
 
-  ! /* Create another property list from the class */
+  !  Create another property list from the class 
   CALL h5pcreate_f(cid1, lid2, error)
   CALL check("h5pcreate_f", error, total_error)
 
-  ! /* Verify that the creation callback occurred */
+  !  Verify that the creation callback occurred 
   CALL VERIFY("h5pcreate_f", crt_cb_struct%count, 2, total_error)
-  CALL VERIFY("h5pcreate_f", INT(crt_cb_struct%id), INT(lid2), total_error)
+  CALL VERIFY_INTEGER_HID_T("h5pcreate_f", crt_cb_struct%id, lid2, total_error)
 
-  ! /* Check the number of properties in list */
+  !  Check the number of properties in list 
   CALL h5pget_nprops_f(lid2,nprops, error)
   CALL check("h5pget_nprops_f", error, total_error)
   CALL VERIFY("h5pget_nprops_f", INT(nprops), 4, total_error)
 
-  ! /* Close first list */
+  !  Close first list 
   CALL h5pclose_f(lid1, error);
   CALL check("h5pclose_f", error, total_error)
 
-  !/* Verify that the close callback occurred */
+  ! Verify that the close callback occurred 
   CALL VERIFY("h5pcreate_f", cls_cb_struct%count, 1, total_error)
-  CALL VERIFY("h5pcreate_f", INT(cls_cb_struct%id), INT(lid1), total_error)
+  CALL VERIFY_INTEGER_HID_T("h5pcreate_f", cls_cb_struct%id, lid1, total_error)
 
-  !/* Close second list */
+  ! Close second list 
   CALL h5pclose_f(lid2, error);
   CALL check("h5pclose_f", error, total_error)
 
-  !/* Verify that the close callback occurred */
+  ! Verify that the close callback occurred
   CALL VERIFY("h5pcreate_f", cls_cb_struct%count, 2, total_error)
-  CALL VERIFY("h5pcreate_f", INT(cls_cb_struct%id), INT(lid2), total_error)
+  CALL verify_INTEGER_HID_T("h5pcreate_f", cls_cb_struct%id, lid2, total_error)
 
-  !/* Close class */
+  ! Close class 
   CALL h5pclose_class_f(cid1, error)
   CALL check("h5pclose_class_f", error, total_error)
 
diff --git a/fortran/test/tH5Sselect.f90 b/fortran/test/tH5Sselect.f90
index ba68d62..7d07308 100644
--- a/fortran/test/tH5Sselect.f90
+++ b/fortran/test/tH5Sselect.f90
@@ -1027,13 +1027,13 @@ CONTAINS
      RETURN
   END SUBROUTINE  test_basic_select
 
-!/****************************************************************
+!***************************************************************
 !**
 !**  test_select_point(): Test basic H5S (dataspace) selection code.
 !**      Tests element selections between dataspaces of various sizes
 !**      and dimensionalities.
 !**
-!****************************************************************/
+!***************************************************************
 
 SUBROUTINE test_select_point(cleanup, total_error)
   USE HDF5 ! This module contains all necessary modules 
@@ -1056,29 +1056,29 @@ SUBROUTINE test_select_point(cleanup, total_error)
   INTEGER, PARAMETER :: SPACE2_RANK=2
   INTEGER, PARAMETER :: SPACE3_RANK=2
   
-  ! /* Element selection information */
+  !  Element selection information 
   INTEGER, PARAMETER :: POINT1_NPOINTS=10
-  INTEGER(hid_t) ::fid1 ! /* HDF5 File IDs */
-  INTEGER(hid_t) ::dataset !	/* Dataset ID */
-  INTEGER(hid_t) ::sid1,sid2 ! /* Dataspace ID */
+  INTEGER(hid_t) ::fid1 !  HDF5 File IDs 
+  INTEGER(hid_t) ::dataset !	 Dataset ID 
+  INTEGER(hid_t) ::sid1,sid2 !  Dataspace ID 
   INTEGER(hsize_t), DIMENSION(1:3) :: dims1 = (/SPACE1_DIM1, SPACE1_DIM2, SPACE1_DIM3/)
   INTEGER(hsize_t), DIMENSION(1:2) :: dims2 = (/SPACE2_DIM1, SPACE2_DIM2/)
   INTEGER(hsize_t), DIMENSION(1:2) :: dims3 = (/SPACE3_DIM1, SPACE3_DIM2/)
   
-  INTEGER(hsize_t), DIMENSION(1:SPACE1_RANK,1:POINT1_NPOINTS) :: coord1 !/* Coordinates for point selection */
-  INTEGER(hsize_t), DIMENSION(1:SPACE1_RANK,1:POINT1_NPOINTS) :: temp_coord1 !/* Coordinates for point selection */
-  INTEGER(hsize_t), DIMENSION(1:SPACE2_RANK,1:POINT1_NPOINTS) :: coord2 !/* Coordinates for point selection */
-  INTEGER(hsize_t), DIMENSION(1:SPACE2_RANK,1:POINT1_NPOINTS) :: temp_coord2 !/* Coordinates for point selection */
-  INTEGER(hsize_t), DIMENSION(1:SPACE3_RANK,1:POINT1_NPOINTS) :: coord3 !/* Coordinates for point selection */
-  INTEGER(hsize_t), DIMENSION(1:SPACE3_RANK,1:POINT1_NPOINTS) :: temp_coord3 !/* Coordinates for point selection */
+  INTEGER(hsize_t), DIMENSION(1:SPACE1_RANK,1:POINT1_NPOINTS) :: coord1 ! Coordinates for point selection 
+  INTEGER(hsize_t), DIMENSION(1:SPACE1_RANK,1:POINT1_NPOINTS) :: temp_coord1 ! Coordinates for point selection 
+  INTEGER(hsize_t), DIMENSION(1:SPACE2_RANK,1:POINT1_NPOINTS) :: coord2 ! Coordinates for point selection 
+  INTEGER(hsize_t), DIMENSION(1:SPACE2_RANK,1:POINT1_NPOINTS) :: temp_coord2 ! Coordinates for point selection 
+  INTEGER(hsize_t), DIMENSION(1:SPACE3_RANK,1:POINT1_NPOINTS) :: coord3 ! Coordinates for point selection 
+  INTEGER(hsize_t), DIMENSION(1:SPACE3_RANK,1:POINT1_NPOINTS) :: temp_coord3 ! Coordinates for point selection 
   INTEGER(hssize_t) :: npoints
 
-!!$    uint8_t    *wbuf,       /* buffer to write to disk */
-!!$               *rbuf,       /* buffer read from disk */
-!!$               *tbuf;       /* temporary buffer pointer */
-  INTEGER :: i,j;        !/* Counters */
-!    struct pnt_iter pi;     /* Custom Pointer iterator struct */
-  INTEGER :: error    !/* Generic return value		*/
+!!$    uint8_t    *wbuf,        buffer to write to disk 
+!!$               *rbuf,        buffer read from disk 
+!!$               *tbuf;        temporary buffer pointer 
+  INTEGER :: i,j;        ! Counters 
+!    struct pnt_iter pi;      Custom Pointer iterator struct 
+  INTEGER :: error    ! Generic return value		
   CHARACTER(LEN=9) :: filename = 'h5s_hyper'
   CHARACTER(LEN=80) :: fix_filename 
   CHARACTER(LEN=1), DIMENSION(1:SPACE2_DIM1,1:SPACE2_DIM2) :: wbuf
@@ -1091,11 +1091,11 @@ SUBROUTINE test_select_point(cleanup, total_error)
   xfer_plist = H5P_DEFAULT_F
 !    MESSAGE(5, ("Testing Element Selection Functions\n"));
 
-    !/* Allocate write & read buffers */
+    ! Allocate write & read buffers 
 !!$  wbuf = HDmalloc(sizeof(uint8_t) * SPACE2_DIM1 * SPACE2_DIM2);
 !!$  rbuf = HDcalloc(sizeof(uint8_t), (size_t)(SPACE3_DIM1 * SPACE3_DIM2));
 !!$
-  !/* Initialize WRITE buffer */
+  ! Initialize WRITE buffer 
 
   DO i = 1, SPACE2_DIM1
      DO j = 1, SPACE2_DIM2
@@ -1107,19 +1107,19 @@ SUBROUTINE test_select_point(cleanup, total_error)
 !!$  for(j=0; j<SPACE2_DIM2; j++)
 !!$  *tbuf++=(uint8_t)((i*SPACE2_DIM2)+j);
   
-  !/* Create file */
+  ! Create file 
   CALL h5fcreate_f(fix_filename, H5F_ACC_TRUNC_F, fid1, error)
   CALL check("h5fcreate_f", error, total_error)
   
-  !/* Create dataspace for dataset */
+  ! Create dataspace for dataset 
   CALL h5screate_simple_f(SPACE1_RANK, dims1, sid1, error)
   CALL check("h5screate_simple_f", error, total_error)
 
-  !/* Create dataspace for write buffer */
+  ! Create dataspace for write buffer 
   CALL h5screate_simple_f(SPACE2_RANK, dims2, sid2, error)
   CALL check("h5screate_simple_f", error, total_error)
 
-  !/* Select sequence of ten points for disk dataset */
+  ! Select sequence of ten points for disk dataset 
   coord1(1,1)=1; coord1(2,1)=11; coord1(3,1)= 6;
   coord1(1,2)=2; coord1(2,2)= 3; coord1(3,2)= 8;
   coord1(1,3)=3; coord1(2,3)= 5; coord1(3,3)=10;
@@ -1134,7 +1134,7 @@ SUBROUTINE test_select_point(cleanup, total_error)
   CALL h5sselect_elements_f(sid1, H5S_SELECT_SET_F, SPACE1_RANK, INT(POINT1_NPOINTS,size_t), coord1, error)
   CALL check("h5sselect_elements_f", error, total_error)
 
-  !/* Verify correct elements selected */
+  ! Verify correct elements selected 
 
   CALL h5sget_select_elem_pointlist_f(sid1, INT(0,hsize_t), INT(POINT1_NPOINTS,hsize_t),temp_coord1,error)
   CALL check("h5sget_select_elem_pointlist_f", error, total_error)
@@ -1149,7 +1149,7 @@ SUBROUTINE test_select_point(cleanup, total_error)
   CALL check("h5sget_select_npoints_f", error, total_error)
   CALL verify("h5sget_select_npoints_f", INT(npoints), 10, total_error)
 
-  !/* Append another sequence of ten points to disk dataset */
+  ! Append another sequence of ten points to disk dataset 
 
   coord1(1,1)=1; coord1(2,1)=3; coord1(3,1)= 1;
   coord1(1,2)=2; coord1(2,2)=11; coord1(3,2)= 9;
@@ -1165,7 +1165,7 @@ SUBROUTINE test_select_point(cleanup, total_error)
 
   CALL h5sselect_elements_f(sid1, H5S_SELECT_APPEND_F, SPACE1_RANK, INT(POINT1_NPOINTS,size_t), coord1, error)
   CALL check("h5sselect_elements_f", error, total_error)
-  ! /* Verify correct elements selected */
+  !  Verify correct elements selected 
   
   CALL h5sget_select_elem_pointlist_f(sid1, INT(POINT1_NPOINTS,hsize_t), INT(POINT1_NPOINTS,hsize_t),temp_coord1,error)
   CALL check("h5sget_select_elem_pointlist_f", error, total_error)
@@ -1180,7 +1180,7 @@ SUBROUTINE test_select_point(cleanup, total_error)
   CALL check("h5sget_select_npoints_f", error, total_error)
   CALL verify("h5sget_select_npoints_f", INT(npoints), 20, total_error)
 
-  ! /* Select sequence of ten points for memory dataset */
+  !  Select sequence of ten points for memory dataset 
   coord2(1,1)=13; coord2(2,1)= 4;
   coord2(1,2)=16; coord2(2,2)=14;
   coord2(1,3)= 8; coord2(2,3)=26;
@@ -1196,7 +1196,7 @@ SUBROUTINE test_select_point(cleanup, total_error)
   CALL check("h5sselect_elements_f", error, total_error)
 
 
-  !/* Verify correct elements selected */
+  ! Verify correct elements selected 
   
   CALL h5sget_select_elem_pointlist_f(sid2, INT(0,hsize_t), INT(POINT1_NPOINTS,hsize_t),temp_coord2,error)
   CALL check("h5sget_select_elem_pointlist_f", error, total_error)
@@ -1207,9 +1207,9 @@ SUBROUTINE test_select_point(cleanup, total_error)
   ENDDO
 
 !!$
-!!$    /* Save points for later iteration */
-!!$    /* (these are in the second half of the buffer, because we are prepending */
-!!$    /*  the next list of points to the beginning of the point selection list) */
+!!$     Save points for later iteration 
+!!$     (these are in the second half of the buffer, because we are prepending 
+!!$      the next list of points to the beginning of the point selection list) 
 !!$    HDmemcpy(((char *)pi.coord)+sizeof(coord2),coord2,sizeof(coord2));
 !!$
 
@@ -1217,7 +1217,7 @@ SUBROUTINE test_select_point(cleanup, total_error)
   CALL check("h5sget_select_npoints_f", error, total_error)
   CALL verify("h5sget_select_npoints_f", INT(npoints), 10, total_error)
 
-  !/* Append another sequence of ten points to memory dataset */
+  ! Append another sequence of ten points to memory dataset 
   coord2(1,1)=25; coord2(2,1)= 1;
   coord2(1,2)= 3; coord2(2,2)=26;
   coord2(1,3)=14; coord2(2,3)=18;
@@ -1233,7 +1233,7 @@ SUBROUTINE test_select_point(cleanup, total_error)
   CALL check("h5sselect_elements_f", error, total_error)
 
 
-  !/* Verify correct elements selected */
+  ! Verify correct elements selected 
   CALL h5sget_select_elem_pointlist_f(sid2, INT(0,hsize_t), INT(POINT1_NPOINTS,hsize_t),temp_coord2,error)
   CALL check("h5sget_select_elem_pointlist_f", error, total_error)
 
@@ -1246,26 +1246,26 @@ SUBROUTINE test_select_point(cleanup, total_error)
   CALL check("h5sget_select_npoints_f", error, total_error)
   CALL verify("h5sget_select_npoints_f", INT(npoints), 20, total_error)
 
-!!$    /* Save points for later iteration */
+!!$     Save points for later iteration 
 !!$    HDmemcpy(pi.coord,coord2,sizeof(coord2));
 
-  ! /* Create a dataset */
+  !  Create a dataset 
   CALL h5dcreate_f(fid1, "Dataset1", H5T_NATIVE_CHARACTER, sid1, dataset, error)
   CALL check("h5dcreate_f", error, total_error)
 
-  ! /* Write selection to disk */
+  !  Write selection to disk 
   CALL h5dwrite_f(dataset, H5T_NATIVE_CHARACTER, wbuf, dims2, error, sid2, sid1, xfer_plist)
   CALL check("h5dwrite_f", error, total_error)
 
-  ! /* Close memory dataspace */
+  !  Close memory dataspace 
   CALL h5sclose_f(sid2, error)
   CALL check("h5sclose_f", error, total_error)
 
-  ! /* Create dataspace for reading buffer */
+  !  Create dataspace for reading buffer 
   CALL h5screate_simple_f(SPACE3_RANK, dims3, sid2, error)
   CALL check("h5screate_simple_f", error, total_error)
 
-  ! /* Select sequence of points for read dataset */
+  !  Select sequence of points for read dataset 
   coord3(1,1)= 1; coord3(2,1)= 3;
   coord3(1,2)= 5; coord3(2,2)= 9;
   coord3(1,3)=14; coord3(2,3)=14;
@@ -1280,7 +1280,7 @@ SUBROUTINE test_select_point(cleanup, total_error)
   CALL h5sselect_elements_f(sid2, H5S_SELECT_SET_F, SPACE3_RANK, INT(POINT1_NPOINTS,size_t), coord3, error)
   CALL check("h5sselect_elements_f", error, total_error)
 
-  ! /* Verify correct elements selected */
+  !  Verify correct elements selected 
   CALL h5sget_select_elem_pointlist_f(sid2, INT(0,hsize_t), INT(POINT1_NPOINTS,hsize_t),temp_coord3,error)
   CALL check("h5sget_select_elem_pointlist_f", error, total_error)
   DO i= 1, POINT1_NPOINTS
@@ -1292,7 +1292,7 @@ SUBROUTINE test_select_point(cleanup, total_error)
   CALL check("h5sget_select_npoints_f", error, total_error)
   CALL verify("h5sget_select_npoints_f", INT(npoints), 10, total_error)
 
-  !/* Append another sequence of ten points to disk dataset */
+  ! Append another sequence of ten points to disk dataset 
     coord3(1,1)=15; coord3(2,1)=26;
     coord3(1,2)= 1; coord3(2,2)= 1;
     coord3(1,3)=12; coord3(2,3)=12;
@@ -1307,7 +1307,7 @@ SUBROUTINE test_select_point(cleanup, total_error)
     CALL h5sselect_elements_f(sid2, H5S_SELECT_APPEND_F, SPACE3_RANK, INT(POINT1_NPOINTS,size_t), coord3, error)
     CALL check("h5sselect_elements_f", error, total_error)
 
-  ! /* Verify correct elements selected */
+  !  Verify correct elements selected 
   CALL h5sget_select_elem_pointlist_f(sid2, INT(POINT1_NPOINTS,hsize_t), INT(POINT1_NPOINTS,hsize_t),temp_coord3,error)
   CALL check("h5sget_select_elem_pointlist_f", error, total_error)
   DO i= 1, POINT1_NPOINTS
@@ -1320,11 +1320,11 @@ SUBROUTINE test_select_point(cleanup, total_error)
   CALL verify("h5sget_select_npoints_f", INT(npoints), 20, total_error)
 
 ! F2003 feature
-!!$ /* Read selection from disk */
+!!$  Read selection from disk 
 !!$    ret=H5Dread(dataset,H5T_NATIVE_UCHAR,sid2,sid1,xfer_plist,rbuf);
 !!$    CHECK(ret, FAIL, "H5Dread");
 !!$
-!!$    /* Check that the values match with a dataset iterator */
+!!$     Check that the values match with a dataset iterator 
 !!$    pi.buf=wbuf;
 !!$    pi.offset=0;
 !!$    ret = H5Diterate(rbuf,H5T_NATIVE_UCHAR,sid2,test_select_point_iter1,&pi);
@@ -1332,19 +1332,19 @@ SUBROUTINE test_select_point(cleanup, total_error)
 !!$
 ! F2003 feature
 
-  !/* Close memory dataspace */
+  ! Close memory dataspace 
   CALL h5sclose_f(sid2, error)
   CALL check("h5sclose_f", error, total_error)
 
-  !/* Close disk dataspace */
+  ! Close disk dataspace 
   CALL h5sclose_f(sid1, error)
   CALL check("h5sclose_f", error, total_error)
 
-  !/* Close Dataset */
+  ! Close Dataset 
   CALL h5dclose_f(dataset, error)
   CALL check("h5dclose_f", error, total_error)
 
-  !/* Close file */
+  ! Close file 
   CALL h5fclose_f(fid1, error)
   CALL check("h5fclose_f", error, total_error)
 
@@ -1354,13 +1354,13 @@ SUBROUTINE test_select_point(cleanup, total_error)
 END SUBROUTINE test_select_point
 
 
-!/****************************************************************
+!***************************************************************
 !**
 !**  test_select_combine(): Test basic H5S (dataspace) selection code.
 !**      Tests combining "all" and "none" selections with hyperslab
 !**      operations.
 !**
-!****************************************************************/
+!***************************************************************
 
 SUBROUTINE test_select_combine(total_error)
   USE HDF5 ! This module contains all necessary modules 
@@ -1373,25 +1373,25 @@ SUBROUTINE test_select_combine(total_error)
   INTEGER, PARAMETER :: SPACE7_DIM1 = 10
   INTEGER, PARAMETER :: SPACE7_DIM2 = 10
   
-  INTEGER(hid_t) :: base_id !      /* Base dataspace for test */
-  INTEGER(hid_t) :: all_id !       /* Dataspace for "all" selection */
-  INTEGER(hid_t) :: none_id !      /* Dataspace for "none" selection */
-  INTEGER(hid_t) :: space1 !       /* Temporary dataspace #1 */
-  INTEGER(hsize_t), DIMENSION(1:SPACE7_RANK) :: start ! /* Hyperslab start */
-  INTEGER(hsize_t), DIMENSION(1:SPACE7_RANK) :: stride ! /* Hyperslab stride */
-  INTEGER(hsize_t), DIMENSION(1:SPACE7_RANK) :: icount ! /* Hyperslab count */
-  INTEGER(hsize_t), DIMENSION(1:SPACE7_RANK) :: iblock ! /* Hyperslab BLOCK */
-  INTEGER(hsize_t), DIMENSION(1:SPACE7_RANK) :: dims = (/SPACE7_DIM1,SPACE7_DIM2/) !/* Dimensions of dataspace */
-  INTEGER :: sel_type ! /* Selection type */
-  INTEGER(hssize_t) :: nblocks   !/* Number of hyperslab blocks */
-  INTEGER(hsize_t), DIMENSION(1:128,1:2,1:SPACE7_RANK) :: blocks ! /* List of blocks */
+  INTEGER(hid_t) :: base_id !       Base dataspace for test 
+  INTEGER(hid_t) :: all_id !        Dataspace for "all" selection 
+  INTEGER(hid_t) :: none_id !       Dataspace for "none" selection 
+  INTEGER(hid_t) :: space1 !        Temporary dataspace #1 
+  INTEGER(hsize_t), DIMENSION(1:SPACE7_RANK) :: start !  Hyperslab start 
+  INTEGER(hsize_t), DIMENSION(1:SPACE7_RANK) :: stride !  Hyperslab stride 
+  INTEGER(hsize_t), DIMENSION(1:SPACE7_RANK) :: icount !  Hyperslab count 
+  INTEGER(hsize_t), DIMENSION(1:SPACE7_RANK) :: iblock !  Hyperslab BLOCK 
+  INTEGER(hsize_t), DIMENSION(1:SPACE7_RANK) :: dims = (/SPACE7_DIM1,SPACE7_DIM2/) ! Dimensions of dataspace 
+  INTEGER :: sel_type !  Selection type 
+  INTEGER(hssize_t) :: nblocks   ! Number of hyperslab blocks 
+  INTEGER(hsize_t), DIMENSION(1:128,1:2,1:SPACE7_RANK) :: blocks !  List of blocks 
   INTEGER :: error, area
 
-  !/* Create dataspace for dataset on disk */
+  ! Create dataspace for dataset on disk 
   CALL h5screate_simple_f(SPACE7_RANK, dims, base_id, error)
   CALL check("h5screate_simple_f", error, total_error)
 
-  ! /* Copy base dataspace and set selection to "all" */
+  !  Copy base dataspace and set selection to "all" 
   CALL h5scopy_f(base_id, all_id, error)  
   CALL check("h5scopy_f", error, total_error)
 
@@ -1402,7 +1402,7 @@ SUBROUTINE test_select_combine(total_error)
   CALL check("H5Sget_select_type_f", error, total_error)
   CALL VERIFY("H5Sget_select_type_f", INT(sel_type), INT(H5S_SEL_ALL_F), total_error)
 
-  !/* Copy base dataspace and set selection to "none" */
+  ! Copy base dataspace and set selection to "none" 
   CALL h5scopy_f(base_id, none_id, error)  
   CALL check("h5scopy_f", error, total_error)
 
@@ -1413,11 +1413,11 @@ SUBROUTINE test_select_combine(total_error)
   CALL check("H5Sget_select_type_f", error, total_error)
   CALL VERIFY("H5Sget_select_type_f", INT(sel_type), INT(H5S_SEL_NONE_F), total_error)
   
-  !/* Copy "all" selection & space */
+  ! Copy "all" selection & space 
   CALL H5Scopy_f(all_id, space1, error)  
   CALL check("h5scopy_f", error, total_error)
 
-  !/* 'OR' "all" selection with another hyperslab */
+  ! 'OR' "all" selection with another hyperslab 
   start(1:2) = 0
   stride(1:2) = 1
   icount(1:2) = 1
@@ -1426,20 +1426,20 @@ SUBROUTINE test_select_combine(total_error)
                                 icount, error, stride, iblock) 
   CALL check("h5sselect_hyperslab_f", error, total_error)
 
-  !/* Verify that it's still "all" selection */
+  ! Verify that it's still "all" selection 
   CALL H5Sget_select_type_f(space1, sel_type, error)
   CALL check("H5Sget_select_type_f", error, total_error)
   CALL VERIFY("H5Sget_select_type_f", INT(sel_type), INT(H5S_SEL_ALL_F), total_error)
 
-  !/* Close temporary dataspace */
+  ! Close temporary dataspace 
   CALL h5sclose_f(space1, error)
   CALL check("h5sclose_f", error, total_error)
 
-  !/* Copy "all" selection & space */
+  ! Copy "all" selection & space 
   CALL H5Scopy_f(all_id, space1, error)  
   CALL check("h5scopy_f", error, total_error)
 
-  ! /* 'AND' "all" selection with another hyperslab */
+  !  'AND' "all" selection with another hyperslab 
   start(1:2) = 0
   stride(1:2) = 1
   icount(1:2) = 1
@@ -1448,36 +1448,36 @@ SUBROUTINE test_select_combine(total_error)
        icount, error, stride, iblock) 
   CALL check("h5sselect_hyperslab_f", error, total_error)
 
-  !/* Verify that the new selection is the same at the original block */
+  ! Verify that the new selection is the same at the original block 
   CALL H5Sget_select_type_f(space1, sel_type, error)
   CALL check("H5Sget_select_type_f", error, total_error)
   CALL VERIFY("H5Sget_select_type_f", INT(sel_type), INT( H5S_SEL_HYPERSLABS_F), total_error)
 
-  !/* Verify that there is only one block */
+  ! Verify that there is only one block 
   CALL h5sget_select_hyper_nblocks_f(space1, nblocks, error)
   CALL check("h5sget_select_hyper_nblocks_f", error, total_error)
   CALL VERIFY("h5sget_select_hyper_nblocks_f", INT(nblocks), 1, total_error)
   
-  !/* Retrieve the block defined */
+  ! Retrieve the block defined 
   CALL h5sget_select_hyper_blocklist_f(space1, INT(0, hsize_t), INT(nblocks,hsize_t), blocks, error)
   CALL check("h5sget_select_hyper_blocklist_f", error, total_error)
 
-  !/* Verify that the correct block is defined */
+  ! Verify that the correct block is defined 
 
   CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(1,1,1)), 1, total_error)
   CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(2,1,1)), 1, total_error)
   CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(3,1,1)), 5, total_error)
   CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(4,1,1)), 4, total_error)
 
-  !/* Close temporary dataspace */
+  ! Close temporary dataspace 
   CALL h5sclose_f(space1, error)
   CALL check("h5sclose_f", error, total_error)
 
-  !/* Copy "all" selection & space */
+  ! Copy "all" selection & space 
   CALL H5Scopy_f(all_id, space1, error)  
   CALL check("h5scopy_f", error, total_error)
 
-  ! /* 'XOR' "all" selection with another hyperslab */
+  !  'XOR' "all" selection with another hyperslab 
   start(1:2) = 0
   stride(1:2) = 1
   icount(1:2) = 1
@@ -1487,23 +1487,23 @@ SUBROUTINE test_select_combine(total_error)
        icount, error, stride, iblock) 
   CALL check("h5sselect_hyperslab_f", error, total_error)
 
-  ! /* Verify that the new selection is an inversion of the original block */
+  !  Verify that the new selection is an inversion of the original block 
   CALL H5Sget_select_type_f(space1, sel_type, error)
   CALL check("H5Sget_select_type_f", error, total_error)
   CALL VERIFY("H5Sget_select_type_f", INT(sel_type), INT( H5S_SEL_HYPERSLABS_F), total_error)
 
-  ! /* Verify that there are two blocks */
+  !  Verify that there are two blocks 
   CALL h5sget_select_hyper_nblocks_f(space1, nblocks, error)
   CALL check("h5sget_select_hyper_nblocks_f", error, total_error)
   CALL VERIFY("h5sget_select_hyper_nblocks_f", INT(nblocks), 2, total_error)
 
-  ! /* Retrieve the block defined */
+  !  Retrieve the block defined 
 
-  blocks = -1 ! /* Reset block list */
+  blocks = -1 !  Reset block list 
   CALL h5sget_select_hyper_blocklist_f(space1, INT(0, hsize_t), INT(nblocks,hsize_t), blocks, error)
   CALL check("h5sget_select_hyper_blocklist_f", error, total_error)
 
-  ! /* Verify that the correct block is defined */
+  !  Verify that the correct block is defined 
 
   ! No guarantee is implied as the order in which blocks are listed. 
   ! So this will ONLY work for square domains iblock(1:2) = (/5,5/)
@@ -1521,15 +1521,15 @@ SUBROUTINE test_select_combine(total_error)
   area = area + (ABS(INT(blocks(5,1,1)-blocks(7,1,1)))+1)*(ABS(INT(blocks(6,1,1)-blocks(8,1,1)))+1)
   CALL VERIFY("h5sget_select_hyper_blocklist_f", area, 80, total_error)
 
-  !/* Close temporary dataspace */
+  ! Close temporary dataspace 
   CALL h5sclose_f(space1, error)
   CALL check("h5sclose_f", error, total_error)
 
-  ! /* Copy "all" selection & space */
+  !  Copy "all" selection & space 
   CALL H5Scopy_f(all_id, space1, error)  
   CALL check("h5scopy_f", error, total_error)
 
-  ! /* 'NOTB' "all" selection with another hyperslab */
+  !  'NOTB' "all" selection with another hyperslab 
   start(1:2) = 0
   stride(1:2) = 1
   icount(1:2) = 1
@@ -1539,22 +1539,22 @@ SUBROUTINE test_select_combine(total_error)
        icount, error, stride, iblock) 
   CALL check("h5sselect_hyperslab_f", error, total_error)
 
-  ! /* Verify that the new selection is an inversion of the original block */
+  !  Verify that the new selection is an inversion of the original block 
   CALL H5Sget_select_type_f(space1, sel_type, error)
   CALL check("H5Sget_select_type_f", error, total_error)
   CALL VERIFY("H5Sget_select_type_f", INT(sel_type), INT( H5S_SEL_HYPERSLABS_F), total_error)
 
-  ! /* Verify that there are two blocks */
+  !  Verify that there are two blocks 
   CALL h5sget_select_hyper_nblocks_f(space1, nblocks, error)
   CALL check("h5sget_select_hyper_nblocks_f", error, total_error)
   CALL VERIFY("h5sget_select_hyper_nblocks_f", INT(nblocks), 2, total_error)
 
-  ! /* Retrieve the block defined */
-  blocks = -1 ! /* Reset block list */
+  !  Retrieve the block defined 
+  blocks = -1 !  Reset block list 
   CALL h5sget_select_hyper_blocklist_f(space1, INT(0, hsize_t), INT(nblocks,hsize_t), blocks, error)
   CALL check("h5sget_select_hyper_blocklist_f", error, total_error)
 
-  ! /* Verify that the correct block is defined */ 
+  !  Verify that the correct block is defined  
 
   ! No guarantee is implied as the order in which blocks are listed. 
   ! So this will ONLY work for square domains iblock(1:2) = (/5,5/)
@@ -1574,14 +1574,14 @@ SUBROUTINE test_select_combine(total_error)
   CALL VERIFY("h5sget_select_hyper_blocklist_f", area, 80, total_error)
 
 
-  ! /* Close temporary dataspace */
+  !  Close temporary dataspace 
   CALL h5sclose_f(space1, error)
   CALL check("h5sclose_f", error, total_error)
-  ! /* Copy "all" selection & space */
+  !  Copy "all" selection & space 
   CALL H5Scopy_f(all_id, space1, error)  
   CALL check("h5scopy_f", error, total_error)
 
-  ! /* 'NOTA' "all" selection with another hyperslab */
+  !  'NOTA' "all" selection with another hyperslab 
   start(1:2) = 0
   stride(1:2) = 1
   icount(1:2) = 1
@@ -1591,20 +1591,20 @@ SUBROUTINE test_select_combine(total_error)
        icount, error, stride, iblock) 
   CALL check("h5sselect_hyperslab_f", error, total_error)
 
-  !/* Verify that the new selection is the "none" selection */
+  ! Verify that the new selection is the "none" selection 
   CALL H5Sget_select_type_f(space1, sel_type, error)
   CALL check("H5Sget_select_type_f", error, total_error)
   CALL VERIFY("H5Sget_select_type_f", INT(sel_type), INT( H5S_SEL_NONE_F), total_error)
 
-  ! /* Close temporary dataspace */
+  !  Close temporary dataspace 
   CALL h5sclose_f(space1, error)
   CALL check("h5sclose_f", error, total_error)
 
-  ! /* Copy "none" selection & space */
+  !  Copy "none" selection & space 
   CALL H5Scopy_f(none_id, space1, error)  
   CALL check("h5scopy_f", error, total_error)
 
-  ! /* 'OR' "none" selection with another hyperslab */
+  !  'OR' "none" selection with another hyperslab 
   start(1:2) = 0
   stride(1:2) = 1
   icount(1:2) = 1
@@ -1614,37 +1614,37 @@ SUBROUTINE test_select_combine(total_error)
        icount, error, stride, iblock) 
   CALL check("h5sselect_hyperslab_f", error, total_error)
 
-  ! /* Verify that the new selection is the same as the original hyperslab */
+  !  Verify that the new selection is the same as the original hyperslab 
   CALL H5Sget_select_type_f(space1, sel_type, error)
   CALL check("H5Sget_select_type_f", error, total_error)
   CALL VERIFY("H5Sget_select_type_f", INT(sel_type), INT( H5S_SEL_HYPERSLABS_F), total_error)
   
 
-  ! /* Verify that there is only one block */
+  !  Verify that there is only one block 
   CALL h5sget_select_hyper_nblocks_f(space1, nblocks, error)
   CALL check("h5sget_select_hyper_nblocks_f", error, total_error)
   CALL VERIFY("h5sget_select_hyper_nblocks_f", INT(nblocks), 1, total_error)
 
-  ! /* Retrieve the block defined */
-  blocks = -1 ! /* Reset block list */
+  !  Retrieve the block defined 
+  blocks = -1 !  Reset block list 
   CALL h5sget_select_hyper_blocklist_f(space1, INT(0, hsize_t), INT(nblocks,hsize_t), blocks, error)
   CALL check("h5sget_select_hyper_blocklist_f", error, total_error)
 
-  ! /* Verify that the correct block is defined */
+  !  Verify that the correct block is defined 
   CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(1,1,1)), 1, total_error)
   CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(2,1,1)), 1, total_error)
   CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(3,1,1)), 5, total_error)
   CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(4,1,1)), 4, total_error)
 
-  ! /* Close temporary dataspace */
+  !  Close temporary dataspace 
   CALL h5sclose_f(space1, error)
   CALL check("h5sclose_f", error, total_error)
 
-  ! /* Copy "none" selection & space */
+  !  Copy "none" selection & space 
   CALL H5Scopy_f(none_id, space1, error)  
   CALL check("h5scopy_f", error, total_error)
 
-  ! /* 'AND' "none" selection with another hyperslab */
+  !  'AND' "none" selection with another hyperslab 
   start(1:2) = 0
   stride(1:2) = 1
   icount(1:2) = 1
@@ -1654,20 +1654,20 @@ SUBROUTINE test_select_combine(total_error)
        icount, error, stride, iblock) 
   CALL check("h5sselect_hyperslab_f", error, total_error)
 
-  ! /* Verify that the new selection is the "none" selection */
+  !  Verify that the new selection is the "none" selection 
   CALL H5Sget_select_type_f(space1, sel_type, error)
   CALL check("H5Sget_select_type_f", error, total_error)
   CALL VERIFY("H5Sget_select_type_f", INT(sel_type), INT( H5S_SEL_NONE_F), total_error)
 
-  ! /* Close temporary dataspace */
+  !  Close temporary dataspace 
   CALL h5sclose_f(space1, error)
   CALL check("h5sclose_f", error, total_error)
 
-  ! /* Copy "none" selection & space */
+  !  Copy "none" selection & space 
   CALL H5Scopy_f(none_id, space1, error)  
   CALL check("h5scopy_f", error, total_error)
 
-  ! /* 'XOR' "none" selection with another hyperslab */
+  !  'XOR' "none" selection with another hyperslab 
   start(1:2) = 0
   stride(1:2) = 1
   icount(1:2) = 1
@@ -1677,36 +1677,36 @@ SUBROUTINE test_select_combine(total_error)
        icount, error, stride, iblock) 
   CALL check("h5sselect_hyperslab_f", error, total_error)
 
-  ! /* Verify that the new selection is the same as the original hyperslab */
+  !  Verify that the new selection is the same as the original hyperslab 
   CALL H5Sget_select_type_f(space1, sel_type, error)
   CALL check("H5Sget_select_type_f", error, total_error)
   CALL VERIFY("H5Sget_select_type_f", INT(sel_type), INT( H5S_SEL_HYPERSLABS_F), total_error)
   
 
-  ! /* Verify that there is only one block */
+  !  Verify that there is only one block 
   CALL h5sget_select_hyper_nblocks_f(space1, nblocks, error)
   CALL check("h5sget_select_hyper_nblocks_f", error, total_error)
   CALL VERIFY("h5sget_select_hyper_nblocks_f", INT(nblocks), 1, total_error)
 
-  ! /* Retrieve the block defined */
-  blocks = -1 ! /* Reset block list */
+  !  Retrieve the block defined 
+  blocks = -1 !  Reset block list 
   CALL h5sget_select_hyper_blocklist_f(space1, INT(0, hsize_t), INT(nblocks,hsize_t), blocks, error)
   CALL check("h5sget_select_hyper_blocklist_f", error, total_error)
-  ! /* Verify that the correct block is defined */
+  !  Verify that the correct block is defined 
   CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(1,1,1)), 1, total_error)
   CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(2,1,1)), 1, total_error)
   CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(3,1,1)), 5, total_error)
   CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(4,1,1)), 4, total_error)
   
-  ! /* Close temporary dataspace */
+  !  Close temporary dataspace 
   CALL h5sclose_f(space1, error)
   CALL check("h5sclose_f", error, total_error)
 
-  ! /* Copy "none" selection & space */
+  !  Copy "none" selection & space 
   CALL H5Scopy_f(none_id, space1, error)  
   CALL check("h5scopy_f", error, total_error)
 
-  ! /* 'NOTB' "none" selection with another hyperslab */
+  !  'NOTB' "none" selection with another hyperslab 
   start(1:2) = 0
   stride(1:2) = 1
   icount(1:2) = 1
@@ -1716,20 +1716,20 @@ SUBROUTINE test_select_combine(total_error)
        icount, error, stride, iblock) 
   CALL check("h5sselect_hyperslab_f", error, total_error)
 
-  ! /* Verify that the new selection is the "none" selection */
+  !  Verify that the new selection is the "none" selection 
   CALL H5Sget_select_type_f(space1, sel_type, error)
   CALL check("H5Sget_select_type_f", error, total_error)
   CALL VERIFY("H5Sget_select_type_f", INT(sel_type), INT( H5S_SEL_NONE_F), total_error)
 
-  ! /* Close temporary dataspace */
+  !  Close temporary dataspace 
   CALL h5sclose_f(space1, error)
   CALL check("h5sclose_f", error, total_error)
 
-  ! /* Copy "none" selection & space */
+  !  Copy "none" selection & space 
   CALL H5Scopy_f(none_id, space1, error)  
   CALL check("h5scopy_f", error, total_error)
 
-  ! /* 'NOTA' "none" selection with another hyperslab */
+  !  'NOTA' "none" selection with another hyperslab 
   start(1:2) = 0
   stride(1:2) = 1
   icount(1:2) = 1
@@ -1738,35 +1738,35 @@ SUBROUTINE test_select_combine(total_error)
        icount, error, stride, iblock) 
   CALL check("h5sselect_hyperslab_f", error, total_error)
 
-  ! /* Verify that the new selection is the same as the original hyperslab */
+  !  Verify that the new selection is the same as the original hyperslab 
   CALL H5Sget_select_type_f(space1, sel_type, error)
   CALL check("H5Sget_select_type_f", error, total_error)
   CALL VERIFY("H5Sget_select_type_f", INT(sel_type), INT( H5S_SEL_HYPERSLABS_F), total_error)
     
-  ! /* Verify that there is ONLY one BLOCK */
+  !  Verify that there is ONLY one BLOCK 
   CALL h5sget_select_hyper_nblocks_f(space1, nblocks, error)
   CALL check("h5sget_select_hyper_nblocks_f", error, total_error)
   CALL VERIFY("h5sget_select_hyper_nblocks_f", INT(nblocks), 1, total_error)
 
-  ! /* Retrieve the block defined */
+  !  Retrieve the block defined 
 
-  blocks = -1 ! /* Reset block list */
+  blocks = -1 !  Reset block list 
   CALL h5sget_select_hyper_blocklist_f(space1, INT(0, hsize_t), INT(nblocks,hsize_t), blocks, error)
   CALL check("h5sget_select_hyper_blocklist_f", error, total_error)
 
 
-  ! /* Verify that the correct block is defined */
+  !  Verify that the correct block is defined 
 
   CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(1,1,1)), 1, total_error)
   CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(2,1,1)), 1, total_error)
   CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(3,1,1)), 5, total_error)
   CALL VERIFY("h5sget_select_hyper_blocklist_f", INT(blocks(4,1,1)), 4, total_error)
   
-  ! /* Close temporary dataspace */
+  !  Close temporary dataspace 
   CALL h5sclose_f(space1, error)
   CALL check("h5sclose_f", error, total_error)
 
-  ! /* Close dataspaces */
+  !  Close dataspaces 
   
   CALL h5sclose_f(base_id, error)
   CALL check("h5sclose_f", error, total_error)
@@ -1777,12 +1777,12 @@ SUBROUTINE test_select_combine(total_error)
 
 END SUBROUTINE test_select_combine
 
-!/****************************************************************
+!***************************************************************
 !**
 !**  test_select_bounds(): Tests selection bounds on dataspaces,
 !**      both with and without offsets.
 !**
-!****************************************************************/
+!***************************************************************
 
 SUBROUTINE test_select_bounds(total_error)
   USE HDF5 ! This module contains all necessary modules 
@@ -1796,24 +1796,24 @@ SUBROUTINE test_select_bounds(total_error)
   INTEGER, PARAMETER :: SPACE11_DIM2=50
   INTEGER, PARAMETER :: SPACE11_NPOINTS=4
   
-  INTEGER(hid_t) :: sid ! /* Dataspace ID */
+  INTEGER(hid_t) :: sid !  Dataspace ID 
   INTEGER(hsize_t), DIMENSION(1:SPACE11_RANK) :: dims = (/SPACE11_DIM1, SPACE11_DIM2/) !Dataspace dimensions
-  INTEGER(hsize_t), DIMENSION(SPACE11_RANK, SPACE11_NPOINTS) :: coord !/* Coordinates for point selection
-  INTEGER(hsize_t), DIMENSION(SPACE11_RANK) :: start ! /* The start of the hyperslab */
-  INTEGER(hsize_t), DIMENSION(SPACE11_RANK) :: stride !/* The stride between block starts for the hyperslab */
-  INTEGER(hsize_t), DIMENSION(SPACE11_RANK) :: count !/* The number of blocks for the hyperslab */
-  INTEGER(hsize_t), DIMENSION(SPACE11_RANK) :: BLOCK !/* The size of each block for the hyperslab */
-  INTEGER(hssize_t), DIMENSION(SPACE11_RANK) :: offset !/* Offset amount for selection */
-  INTEGER(hsize_t), DIMENSION(SPACE11_RANK) :: low_bounds !/* The low bounds for the selection */
-  INTEGER(hsize_t), DIMENSION(SPACE11_RANK) :: high_bounds !/* The high bounds for the selection */
+  INTEGER(hsize_t), DIMENSION(SPACE11_RANK, SPACE11_NPOINTS) :: coord ! Coordinates for point selection
+  INTEGER(hsize_t), DIMENSION(SPACE11_RANK) :: start !  The start of the hyperslab 
+  INTEGER(hsize_t), DIMENSION(SPACE11_RANK) :: stride ! The stride between block starts for the hyperslab 
+  INTEGER(hsize_t), DIMENSION(SPACE11_RANK) :: count ! The number of blocks for the hyperslab 
+  INTEGER(hsize_t), DIMENSION(SPACE11_RANK) :: BLOCK ! The size of each block for the hyperslab 
+  INTEGER(hssize_t), DIMENSION(SPACE11_RANK) :: offset ! Offset amount for selection 
+  INTEGER(hsize_t), DIMENSION(SPACE11_RANK) :: low_bounds ! The low bounds for the selection 
+  INTEGER(hsize_t), DIMENSION(SPACE11_RANK) :: high_bounds ! The high bounds for the selection 
     
   INTEGER :: error
 
-  !/* Create dataspace */
+  ! Create dataspace 
   CALL h5screate_simple_f(SPACE11_RANK, dims, sid, error)
   CALL check("h5screate_simple_f", error, total_error)
 
-  ! /* Get bounds for 'all' selection */
+  !  Get bounds for 'all' selection 
   CALL h5sget_select_bounds_f(sid, low_bounds, high_bounds, error)
   CALL check("h5sget_select_bounds_f", error, total_error)
 
@@ -1822,12 +1822,12 @@ SUBROUTINE test_select_bounds(total_error)
   CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(1)), SPACE11_DIM1, total_error)
   CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(2)), SPACE11_DIM2, total_error)
 
-  !/* Set offset for selection */
+  ! Set offset for selection 
   offset(1:2) = 1
   CALL H5Soffset_simple_f(sid, offset, error)
   CALL check("H5Soffset_simple_f", error, total_error)
 
-  !/* Get bounds for 'all' selection with offset (which should be ignored) */
+  ! Get bounds for 'all' selection with offset (which should be ignored) 
   CALL h5sget_select_bounds_f(sid, low_bounds, high_bounds, error)
   CALL check("h5sget_select_bounds_f", error, total_error)
 
@@ -1836,20 +1836,20 @@ SUBROUTINE test_select_bounds(total_error)
   CALL verify("h5sget_select_bounds_f", INT(high_bounds(1)), SPACE11_DIM1, total_error)
   CALL verify("h5sget_select_bounds_f", INT(high_bounds(2)), SPACE11_DIM2, total_error)
 
-  !/* Reset offset for selection */
+  ! Reset offset for selection 
   offset(1:2) = 0
   CALL H5Soffset_simple_f(sid, offset, error)
   CALL check("H5Soffset_simple_f", error, total_error)
 
-  !/* Set 'none' selection */
+  ! Set 'none' selection 
   CALL H5Sselect_none_f(sid, error)
   CALL check("H5Sselect_none_f", error, total_error)
 
-  !/* Get bounds for 'none' selection, should fail */
+  ! Get bounds for 'none' selection, should fail 
   CALL h5sget_select_bounds_f(sid, low_bounds, high_bounds, error)
   CALL VERIFY("h5sget_select_bounds_f", error, -1, total_error)
 
-  !/* Set point selection */
+  ! Set point selection 
   
   coord(1,1)=  3; coord(2,1)=  3;
   coord(1,2)=  3; coord(2,2)= 46;
@@ -1859,7 +1859,7 @@ SUBROUTINE test_select_bounds(total_error)
   CALL h5sselect_elements_f(sid, H5S_SELECT_SET_F, SPACE11_RANK, INT(SPACE11_NPOINTS,size_t), coord, error)
   CALL check("h5sselect_elements_f", error, total_error)
 
-  !/* Get bounds for point selection */
+  ! Get bounds for point selection 
   CALL h5sget_select_bounds_f(sid, low_bounds, high_bounds, error)
   CALL check("h5sget_select_bounds_f", error, total_error)
 
@@ -1868,22 +1868,22 @@ SUBROUTINE test_select_bounds(total_error)
   CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(1)), INT(SPACE11_DIM1-4), total_error)
   CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(2)), INT(SPACE11_DIM2-4), total_error)
 
-  ! /* Set bad offset for selection */
+  !  Set bad offset for selection 
 
   offset(1:2) = (/5,-5/)
   CALL H5Soffset_simple_f(sid, offset, error)
   CALL check("H5Soffset_simple_f", error, total_error)
 
-  ! /* Get bounds for hyperslab selection with negative offset */
+  !  Get bounds for hyperslab selection with negative offset 
   CALL h5sget_select_bounds_f(sid, low_bounds, high_bounds, error)
   CALL VERIFY("h5sget_select_bounds_f", error, -1, total_error)
  
-  ! /* Set valid offset for selection */
+  !  Set valid offset for selection 
   offset(1:2) = (/2,-2/)
   CALL H5Soffset_simple_f(sid, offset, error)
   CALL check("H5Soffset_simple_f", error, total_error)
 
-  ! /* Get bounds for point selection with offset */
+  !  Get bounds for point selection with offset 
   CALL h5sget_select_bounds_f(sid, low_bounds, high_bounds, error)
   CALL check("h5sget_select_bounds_f", error, total_error)
 
@@ -1892,12 +1892,12 @@ SUBROUTINE test_select_bounds(total_error)
   CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(1)), INT(SPACE11_DIM1-2), total_error)
   CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(2)), INT(SPACE11_DIM2-6), total_error)
 
-  ! /* Reset offset for selection */
+  !  Reset offset for selection 
   offset(1:2) = 0
   CALL H5Soffset_simple_f(sid, offset, error)
   CALL check("H5Soffset_simple_f", error, total_error)
 
-  ! /* Set "regular" hyperslab selection */
+  !  Set "regular" hyperslab selection 
   start(1:2) = 2
   stride(1:2) = 10
   count(1:2) = 4
@@ -1907,7 +1907,7 @@ SUBROUTINE test_select_bounds(total_error)
        count, error, stride, block) 
   CALL check("h5sselect_hyperslab_f", error, total_error)
 
-  !/* Get bounds for hyperslab selection */
+  ! Get bounds for hyperslab selection 
   CALL h5sget_select_bounds_f(sid, low_bounds, high_bounds, error)
   CALL check("h5sget_select_bounds_f", error, total_error)
 
@@ -1916,21 +1916,21 @@ SUBROUTINE test_select_bounds(total_error)
   CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(1)), 37, total_error)
   CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(2)), 37, total_error)
 
-  !/* Set bad offset for selection */
+  ! Set bad offset for selection 
   offset(1:2) = (/5,-5/)
   CALL H5Soffset_simple_f(sid, offset, error)
   CALL check("H5Soffset_simple_f", error, total_error)
 
-  ! /* Get bounds for hyperslab selection with negative offset */
+  !  Get bounds for hyperslab selection with negative offset 
   CALL h5sget_select_bounds_f(sid, low_bounds, high_bounds, error)
   CALL VERIFY("h5sget_select_bounds_f", error, -1, total_error)
 
-  ! /* Set valid offset for selection */
+  !  Set valid offset for selection 
   offset(1:2) = (/5,-2/)
   CALL H5Soffset_simple_f(sid, offset, error)
   CALL check("H5Soffset_simple_f", error, total_error)
 
-  !/* Get bounds for hyperslab selection with offset */
+  ! Get bounds for hyperslab selection with offset 
   CALL h5sget_select_bounds_f(sid, low_bounds, high_bounds, error)
   CALL check("h5sget_select_bounds_f", error, total_error)
 
@@ -1939,12 +1939,12 @@ SUBROUTINE test_select_bounds(total_error)
   CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(1)), 42, total_error)
   CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(2)), 35, total_error)
 
-  !/* Reset offset for selection */
+  ! Reset offset for selection 
   offset(1:2) = 0
   CALL H5Soffset_simple_f(sid, offset, error)
   CALL check("H5Soffset_simple_f", error, total_error)
   
-  ! /* Make "irregular" hyperslab selection */
+  !  Make "irregular" hyperslab selection 
   start(1:2) = 20
   stride(1:2) = 20
   count(1:2) = 2
@@ -1954,7 +1954,7 @@ SUBROUTINE test_select_bounds(total_error)
        count, error, stride, block) 
   CALL check("h5sselect_hyperslab_f", error, total_error)
 
-  !/* Get bounds for hyperslab selection */
+  ! Get bounds for hyperslab selection 
   CALL h5sget_select_bounds_f(sid, low_bounds, high_bounds, error)
   CALL check("h5sget_select_bounds_f", error, total_error)
 
@@ -1963,21 +1963,21 @@ SUBROUTINE test_select_bounds(total_error)
   CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(1)), 50, total_error)
   CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(2)), 50, total_error)
 
-  ! /* Set bad offset for selection */
+  !  Set bad offset for selection 
   offset(1:2) = (/5,-5/)
   CALL H5Soffset_simple_f(sid, offset, error)
   CALL check("H5Soffset_simple_f", error, total_error)
 
-  ! /* Get bounds for hyperslab selection with negative offset */
+  !  Get bounds for hyperslab selection with negative offset 
   CALL h5sget_select_bounds_f(sid, low_bounds, high_bounds, error)
   CALL VERIFY("h5sget_select_bounds_f", error, -1, total_error)
 
-  !/* Set valid offset for selection */
+  ! Set valid offset for selection 
   offset(1:2) = (/5,-2/)
   CALL H5Soffset_simple_f(sid, offset, error)
   CALL check("H5Soffset_simple_f", error, total_error)
 
-  !/* Get bounds for hyperslab selection with offset */
+  ! Get bounds for hyperslab selection with offset 
   CALL h5sget_select_bounds_f(sid, low_bounds, high_bounds, error)
   CALL check("h5sget_select_bounds_f", error, total_error)
 
@@ -1986,12 +1986,12 @@ SUBROUTINE test_select_bounds(total_error)
   CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(1)), 55, total_error)
   CALL VERIFY("h5sget_select_bounds_f", INT(high_bounds(2)), 48, total_error)
 
-  !/* Reset offset for selection */
+  ! Reset offset for selection 
   offset(1:2) = 0
   CALL H5Soffset_simple_f(sid, offset, error)
   CALL check("H5Soffset_simple_f", error, total_error)
 
-  !/* Close the dataspace */
+  ! Close the dataspace 
   CALL h5sclose_f(sid, error)
   CALL check("h5sclose_f", error, total_error)
 
diff --git a/fortran/test/tH5T.f90 b/fortran/test/tH5T.f90
index 8ac91d2..7822c16 100644
--- a/fortran/test/tH5T.f90
+++ b/fortran/test/tH5T.f90
@@ -112,7 +112,7 @@ CONTAINS
      INTEGER(HID_T) :: decoded_tid1
 
      INTEGER(HID_T) :: fixed_str1, fixed_str2
-     LOGICAL :: are_equal, differ
+     LOGICAL :: are_equal
      INTEGER(SIZE_T), PARAMETER :: str_size = 10 
      INTEGER(SIZE_T) :: query_size
 
@@ -556,13 +556,13 @@ CONTAINS
      ! * Test encoding and decoding compound datatypes
      ! *-----------------------------------------------------------------------
      !
-     !    /* Encode compound type in a buffer */
+     !     Encode compound type in a buffer 
      !         -- First find the buffer size
 
      CALL H5Tencode_f(dtype_id, cmpd_buf, cmpd_buf_size, error)
      CALL check("H5Tencode_f", error, total_error)
 
-     ! /* Try decoding bogus buffer */
+     !  Try decoding bogus buffer 
 
      CALL H5Tdecode_f(cmpd_buf, decoded_tid1, error)
      CALL VERIFY("H5Tdecode_f", error, -1, total_error)
@@ -570,11 +570,11 @@ CONTAINS
      CALL H5Tencode_f(dtype_id, cmpd_buf, cmpd_buf_size, error)
      CALL check("H5Tencode_f", error, total_error)
 
-     ! /* Decode from the compound buffer and return an object handle */
+     !  Decode from the compound buffer and return an object handle 
      CALL H5Tdecode_f(cmpd_buf, decoded_tid1, error)
      CALL check("H5Tdecode_f", error, total_error)
 
-     ! /* Verify that the datatype was copied exactly */
+     !  Verify that the datatype was copied exactly 
 
      CALL H5Tequal_f(decoded_tid1, dtype_id, flag, error)
      CALL check("H5Tequal_f", error, total_error)
@@ -897,7 +897,7 @@ CONTAINS
     CALL H5Tget_native_type_f(dtype, H5T_DIR_ASCEND_F, native_type, error)
     CALL check("H5Tget_native_type_f",error, total_error)
 
-    !/* Verify the datatype retrieved and converted */
+    ! Verify the datatype retrieved and converted 
     CALL H5Tget_order_f(native_type, order1, error)
     CALL check("H5Tget_order_f",error, total_error)
     CALL H5Tget_order_f(H5T_NATIVE_INTEGER, order2, error)
@@ -952,7 +952,7 @@ CONTAINS
     RETURN
   END SUBROUTINE enumtest
 
-!/*-------------------------------------------------------------------------
+!-------------------------------------------------------------------------
 ! * Function:    test_derived_flt
 ! *
 ! * Purpose:     Tests user-define and query functions of floating-point types.
@@ -968,7 +968,7 @@ CONTAINS
 ! * Modifications:
 ! *
 ! *-------------------------------------------------------------------------
-! */
+! 
 
 SUBROUTINE test_derived_flt(cleanup, total_error)
 
@@ -990,7 +990,7 @@ SUBROUTINE test_derived_flt(cleanup, total_error)
 
   INTEGER :: error
 
-  !/* Create File */
+  ! Create File 
   CALL h5_fixname_f(filename, fix_filename, H5P_DEFAULT_F, error)
   IF (error .NE. 0) THEN
      WRITE(*,*) "Cannot modify filename"
@@ -1009,7 +1009,7 @@ SUBROUTINE test_derived_flt(cleanup, total_error)
   CALL h5tcopy_f(H5T_IEEE_F32LE, tid2, error)
   CALL check("h5tcopy_f",error,total_error)
 
-  !/*------------------------------------------------------------------------
+  !------------------------------------------------------------------------
   ! *                   1st floating-point type
   ! * size=7 byte, precision=42 bits, offset=3 bits, mantissa size=31 bits,
   ! * mantissa position=3, exponent size=10 bits, exponent position=34,
@@ -1026,7 +1026,7 @@ SUBROUTINE test_derived_flt(cleanup, total_error)
   ! * bigger than original size but can be decreased.  There should be no
   ! * holes among the significant bits.  Exponent bias usually is set
   ! * 2^(n-1)-1, where n is the exponent size.
-  ! *-----------------------------------------------------------------------*/
+  ! *-----------------------------------------------------------------------
 
   CALL H5Tset_fields_f(tid1, INT(44,size_t), INT(34,size_t), INT(10,size_t), &
        INT(3,size_t), INT(31,size_t), error)
@@ -1079,7 +1079,7 @@ SUBROUTINE test_derived_flt(cleanup, total_error)
   CALL check("H5Tget_ebias_f", error, total_error)
   CALL VERIFY("H5Tget_ebias_f", INT(ebias1), 511, total_error)
 
-  !/*--------------------------------------------------------------------------
+  !--------------------------------------------------------------------------
   ! *                   2nd floating-point type
   ! * size=3 byte, precision=24 bits, offset=0 bits, mantissa size=16 bits,
   ! * mantissa position=0, exponent size=7 bits, exponent position=16, exponent
@@ -1087,7 +1087,7 @@ SUBROUTINE test_derived_flt(cleanup, total_error)
   ! *
   ! *          2       1       0
   ! *    SEEEEEEE MMMMMMMM MMMMMMMM
-  ! *--------------------------------------------------------------------------*/
+  ! *--------------------------------------------------------------------------
 
   CALL H5Tset_fields_f(tid2, INT(23,size_t), INT(16,size_t), INT(7,size_t), &
        INT(0,size_t), INT(16,size_t), error)
diff --git a/fortran/test/tH5T_F03.f90 b/fortran/test/tH5T_F03.f90
index f15424d..32531b0 100644
--- a/fortran/test/tH5T_F03.f90
+++ b/fortran/test/tH5T_F03.f90
@@ -34,12 +34,12 @@
 ! ***        H 5 T   T E S T S
 ! *****************************************
 
-!/****************************************************************
+!***************************************************************
 !**
 !**  test_array_compound_atomic(): Test basic array datatype code.
 !**  Tests 1-D array of compound datatypes (with no array fields)
 !**
-!****************************************************************/
+!***************************************************************
 !
 
 MODULE TH5T_F03
@@ -1419,7 +1419,7 @@ SUBROUTINE t_enum(total_error)
      ! Insert enumerated value for memtype.
      !
      val(1) = i
-     CALL H5Tenum_insert_f(memtype, TRIM(names(i+1)), val(1), error)
+     CALL H5Tenum_insert_f(memtype, TRIM(names(i+1)), C_LOC(val(1)), error)
      CALL check("H5Tenum_insert_f", error, total_error)
      !
      ! Insert enumerated value for filetype.  We must first convert
@@ -1428,7 +1428,11 @@ SUBROUTINE t_enum(total_error)
      f_ptr = C_LOC(val(1))
      CALL H5Tconvert_f(M_BASET, F_BASET, INT(1,SIZE_T), f_ptr, error)
      CALL check("H5Tconvert_f",error, total_error)
-     CALL H5Tenum_insert_f(filetype, TRIM(names(i+1)), val(1), error)
+     IF(i.GE.1)THEN ! test both F90 and F03 APIs
+        CALL H5Tenum_insert_f(filetype, TRIM(names(i+1)), f_ptr, error)
+     ELSE
+        CALL H5Tenum_insert_f(filetype, TRIM(names(i+1)), val(1), error)
+     ENDIF
      CALL check("H5Tenum_insert_f",error, total_error)
   ENDDO
   !
@@ -3134,7 +3138,7 @@ SUBROUTINE t_enum_conv(total_error)
     ENUMERATOR :: E1_RED, E1_GREEN, E1_BLUE, E1_WHITE, E1_BLACK
   END ENUM
 
-  INTEGER :: val
+  INTEGER(KIND(E1_RED)), TARGET :: val
 
   ! Enumerated data array 
   ! Some values are out of range for testing. The library should accept them
@@ -3185,19 +3189,19 @@ SUBROUTINE t_enum_conv(total_error)
   ! Initialize enum data.
   !
   val = E1_RED
-  CALL H5Tenum_insert_f(dtype, "RED", val, error)
+  CALL H5Tenum_insert_f(dtype, "RED", C_LOC(val), error)
   CALL check("h5tenum_insert_f",error, total_error)
   val = E1_GREEN
-  CALL H5Tenum_insert_f(dtype, "GREEN", val, error)
+  CALL H5Tenum_insert_f(dtype, "GREEN", C_LOC(val), error)
   CALL check("h5tenum_insert_f",error, total_error)
   val = E1_BLUE
-  CALL H5Tenum_insert_f(dtype, "BLUE", val, error)
+  CALL H5Tenum_insert_f(dtype, "BLUE", C_LOC(val), error)
   CALL check("h5tenum_insert_f",error, total_error)
   val = E1_WHITE
-  CALL H5Tenum_insert_f(dtype, "WHITE", val, error)
+  CALL H5Tenum_insert_f(dtype, "WHITE", C_LOC(val), error)
   CALL check("h5tenum_insert_f",error, total_error)
   val = E1_BLACK
-  CALL H5Tenum_insert_f(dtype, "BLACK", val, error)
+  CALL H5Tenum_insert_f(dtype, "BLACK", C_LOC(val), error)
   CALL check("h5tenum_insert_f",error, total_error)
   !
   ! Create dataspace.  Setting maximum size to be the current size.
diff --git a/fortran/test/tH5VL.f90 b/fortran/test/tH5VL.f90
index f063722..651ca75 100644
--- a/fortran/test/tH5VL.f90
+++ b/fortran/test/tH5VL.f90
@@ -226,7 +226,6 @@ CONTAINS
           INTEGER(SIZE_T)  max_len
           INTEGER(HID_T) ::  vl_type_id
           LOGICAL        ::  vl_flag
-          LOGICAL        ::  differ
 
           !
           ! Initialize the vl_int_data array.
diff --git a/fortran/test/tf.f90 b/fortran/test/tf.f90
index 063e93d..450daf2 100644
--- a/fortran/test/tf.f90
+++ b/fortran/test/tf.f90
@@ -36,7 +36,7 @@ MODULE TH5_MISC
 CONTAINS
 
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_TEST_DLL)
 !DEC$attributes dllexport :: dreal_eq
 !DEC$endif
   LOGICAL FUNCTION dreal_eq(a,b)
@@ -49,7 +49,7 @@ CONTAINS
   END FUNCTION dreal_eq
 
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_TEST_DLL)
 !DEC$attributes dllexport :: verify_real_kind_7
 !DEC$endif
   SUBROUTINE verify_real_kind_7(string,value,correct_value,total_error)
@@ -66,7 +66,7 @@ CONTAINS
   END SUBROUTINE verify_real_kind_7
 
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_TEST_DLL)
 !DEC$attributes dllexport :: write_test_status
 !DEC$endif
   SUBROUTINE write_test_status( test_result, test_title, total_error)
@@ -105,7 +105,7 @@ CONTAINS
 
 
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_TEST_DLL)
 !DEC$attributes dllexport :: check
 !DEC$endif
   SUBROUTINE check(string,error,total_error)
@@ -119,7 +119,7 @@ CONTAINS
   END SUBROUTINE check
 
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_TEST_DLL)
 !DEC$attributes dllexport :: verify
 !DEC$endif
   SUBROUTINE VERIFY(string,value,correct_value,total_error)
@@ -133,7 +133,23 @@ CONTAINS
   END SUBROUTINE verify
 
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_TEST_DLL)
+!DEC$attributes dllexport :: verify_INTEGER_HID_T
+!DEC$endif
+  SUBROUTINE verify_INTEGER_HID_T(string,value,correct_value,total_error)
+    USE HDF5	
+    CHARACTER(LEN=*) :: string
+    INTEGER(HID_T) :: value, correct_value
+    INTEGER :: total_error
+    IF (value .NE. correct_value) THEN
+       total_error=total_error+1
+       WRITE(*,*) "ERROR: INCORRECT VALIDATION ", string
+    ENDIF
+    RETURN
+  END SUBROUTINE verify_INTEGER_HID_T
+
+!This definition is needed for Windows DLLs
+!DEC$if defined(BUILD_HDF5_TEST_DLL)
 !DEC$attributes dllexport :: verify_Fortran_INTEGER_4
 !DEC$endif
   SUBROUTINE verify_Fortran_INTEGER_4(string,value,correct_value,total_error)
@@ -150,7 +166,7 @@ CONTAINS
   END SUBROUTINE verify_Fortran_INTEGER_4
 
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_TEST_DLL)
 !DEC$attributes dllexport :: verifyLogical
 !DEC$endif
   SUBROUTINE verifyLogical(string,value,correct_value,total_error)
@@ -165,7 +181,7 @@ CONTAINS
   END SUBROUTINE verifyLogical
   
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_TEST_DLL)
 !DEC$attributes dllexport :: verifyString
 !DEC$endif
   SUBROUTINE verifyString(string, value,correct_value,total_error)
@@ -203,7 +219,7 @@ CONTAINS
   SUBROUTINE h5_fixname_f(base_name, full_name, fapl, hdferr)
 !
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_TEST_DLL)
 !DEC$attributes dllexport :: h5_fixname_f
 !DEC$endif
     USE H5GLOBAL
@@ -263,7 +279,7 @@ CONTAINS
   SUBROUTINE h5_cleanup_f(base_name, fapl, hdferr)
 !
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_TEST_DLL)
 !DEC$attributes dllexport :: h5_cleanup_f
 !DEC$endif
     USE H5GLOBAL
@@ -315,7 +331,7 @@ CONTAINS
   SUBROUTINE h5_exit_f(status)
 !
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_TEST_DLL)
 !DEC$attributes dllexport :: h5_exit_f
 !DEC$endif
     IMPLICIT NONE
@@ -352,7 +368,7 @@ CONTAINS
   SUBROUTINE h5_env_nocleanup_f(HDF5_NOCLEANUP)
 !
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_TEST_DLL)
 !DEC$attributes dllexport :: h5_env_nocleanup_f
 !DEC$endif
     IMPLICIT NONE
diff --git a/fortran/test/tf_F03.f90 b/fortran/test/tf_F03.f90
index 4513783..b3f1399 100644
--- a/fortran/test/tf_F03.f90
+++ b/fortran/test/tf_F03.f90
@@ -66,7 +66,7 @@ MODULE TH5_MISC_PROVISIONAL
 CONTAINS
 
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_TEST_DLL)
 !DEC$attributes dllexport :: h5_sizeof_cmpd
  !DEC$endif
   INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_CMPD(a)
@@ -78,7 +78,7 @@ CONTAINS
   END FUNCTION H5_SIZEOF_CMPD
 
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_TEST_DLL)
 !DEC$attributes dllexport :: h5_sizeof_chr
 !DEC$endif
   INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_CHR(a)
@@ -90,7 +90,7 @@ CONTAINS
   END FUNCTION H5_SIZEOF_CHR
 
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_TEST_DLL)
 !DEC$attributes dllexport :: h5_sizeof_i
 !DEC$endif
   INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_I(a)
@@ -102,7 +102,7 @@ CONTAINS
   END FUNCTION H5_SIZEOF_I
 
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_TEST_DLL)
 !DEC$attributes dllexport :: h5_sizeof_sp
 !DEC$endif
   INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_SP(a)
@@ -114,7 +114,7 @@ CONTAINS
   END FUNCTION H5_SIZEOF_SP
 
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_TEST_DLL)
 !DEC$attributes dllexport :: h5_sizeof_dp
 !DEC$endif
   INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_DP(a)
diff --git a/fortran/test/tf_F08.f90 b/fortran/test/tf_F08.f90
index 5583f3f..20c2859 100644
--- a/fortran/test/tf_F08.f90
+++ b/fortran/test/tf_F08.f90
@@ -65,7 +65,7 @@ MODULE TH5_MISC_PROVISIONAL
 CONTAINS
 
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_TEST_DLL)
 !DEC$attributes dllexport :: h5_sizeof_cmpd
 !DEC$endif
   INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_CMPD(a)
@@ -77,7 +77,7 @@ CONTAINS
   END FUNCTION H5_SIZEOF_CMPD
 
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_TEST_DLL)
 !DEC$attributes dllexport :: h5_sizeof_chr
 !DEC$endif
   INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_CHR(a)
@@ -89,7 +89,7 @@ CONTAINS
   END FUNCTION H5_SIZEOF_CHR
 
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_TEST_DLL)
 !DEC$attributes dllexport :: h5_sizeof_i
 !DEC$endif
   INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_I(a)
@@ -102,7 +102,7 @@ CONTAINS
 
 
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_TEST_DLL)
 !DEC$attributes dllexport :: h5_sizeof_sp
 !DEC$endif
   INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_SP(a)
@@ -114,7 +114,7 @@ CONTAINS
   END FUNCTION H5_SIZEOF_SP
 
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_TEST_DLL)
 !DEC$attributes dllexport :: h5_sizeof_dp
 !DEC$endif
   INTEGER(C_SIZE_T) FUNCTION H5_SIZEOF_DP(a)
diff --git a/fortran/testpar/CMakeLists.txt b/fortran/testpar/CMakeLists.txt
index 3361220..98ef6c8 100644
--- a/fortran/testpar/CMakeLists.txt
+++ b/fortran/testpar/CMakeLists.txt
@@ -1,10 +1,10 @@
-cmake_minimum_required (VERSION 2.8.11)
+cmake_minimum_required (VERSION 3.1.0)
 PROJECT (HDF5_FORTRAN_TESTPAR C CXX Fortran)
 
 #-----------------------------------------------------------------------------
 # Setup include Directories
 #-----------------------------------------------------------------------------
-INCLUDE_DIRECTORIES (${CMAKE_Fortran_MODULE_DIRECTORY} ${HDF5_F90_BINARY_DIR} ${HDF5_F90_SRC_DIR}/src)
+INCLUDE_DIRECTORIES (${HDF5_F90_BINARY_DIR} ${HDF5_F90_SRC_DIR}/src)
 
 #-----------------------------------------------------------------------------
 # Add Tests
@@ -17,7 +17,7 @@ add_executable (parallel_test
     mdset.f90
 )
 TARGET_NAMING (parallel_test ${LIB_TYPE})
-TARGET_FORTRAN_PROPERTIES (parallel_test " " " ")
+TARGET_FORTRAN_PROPERTIES (parallel_test ${LIB_TYPE} " " " ")
 target_link_libraries (parallel_test 
     ${HDF5_F90_TEST_LIB_TARGET}
     ${HDF5_F90_LIB_TARGET}
@@ -27,6 +27,7 @@ target_link_libraries (parallel_test
 if (WIN32 AND MSVC)
   target_link_libraries (parallel_test "ws2_32.lib")
 endif (WIN32 AND MSVC)
+target_include_directories (parallel_test PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY})
 set_target_properties (parallel_test PROPERTIES LINKER_LANGUAGE Fortran)
 set_target_properties (parallel_test PROPERTIES FOLDER test/fortran)
 
diff --git a/fortran/testpar/Makefile.in b/fortran/testpar/Makefile.in
index 583b6dc..f16dfff 100644
--- a/fortran/testpar/Makefile.in
+++ b/fortran/testpar/Makefile.in
@@ -109,7 +109,8 @@ check_PROGRAMS = $(am__EXEEXT_1)
 TESTS =
 subdir = fortran/testpar
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \
+	$(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs
@@ -404,7 +405,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ -I$(top_srcdir)/fortran/src \
 AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ $(am__append_1)
 AM_MAKEFLAGS = @AM_MAKEFLAGS@
 AR = @AR@
-AS = @AS@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -436,7 +436,6 @@ DIRECT_VFD = @DIRECT_VFD@
 DLLTOOL = @DLLTOOL@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
-DYNAMIC_DIRS = @DYNAMIC_DIRS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -455,17 +454,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@
 FCLIBS = @FCLIBS@
 FC_VERSION = @FC_VERSION@
 FGREP = @FGREP@
-FILTERS = @FILTERS@
 FSEARCH_DIRS = @FSEARCH_DIRS@
 GREP = @GREP@
 H5_CFLAGS = @H5_CFLAGS@
 H5_CPPFLAGS = @H5_CPPFLAGS@
 H5_CXXFLAGS = @H5_CXXFLAGS@
-H5_CXX_SHARED = @H5_CXX_SHARED@
 H5_FCFLAGS = @H5_FCFLAGS@
 H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@
 H5_LDFLAGS = @H5_LDFLAGS@
-H5_LONE_COLON = @H5_LONE_COLON@
 H5_VERSION = @H5_VERSION@
 HADDR_T = @HADDR_T@
 HAVE_DMALLOC = @HAVE_DMALLOC@
@@ -488,7 +484,6 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INSTRUMENT = @INSTRUMENT@
 INSTRUMENT_LIBRARY = @INSTRUMENT_LIBRARY@
-LARGEFILE = @LARGEFILE@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
@@ -529,7 +524,6 @@ R_INTEGER = @R_INTEGER@
 R_LARGE = @R_LARGE@
 SEARCH = @SEARCH@
 SED = @SED@
-SETX = @SETX@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIZE_T = @SIZE_T@
@@ -544,10 +538,6 @@ TR = @TR@
 TRACE_API = @TRACE_API@
 UNAME_INFO = @UNAME_INFO@
 USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@
-USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@
-USE_FILTER_NBIT = @USE_FILTER_NBIT@
-USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@
-USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@
 USE_FILTER_SZIP = @USE_FILTER_SZIP@
 USINGMEMCHECKER = @USINGMEMCHECKER@
 VERSION = @VERSION@
@@ -661,10 +651,10 @@ TRACE = perl $(top_srcdir)/bin/trace
 
 # .chkexe files are used to mark tests that have run successfully.
 # .chklog files are output from those tests.
-# *.clog are from the MPE option.
+# *.clog and *.clog2 are from the MPE option.
 
 # Temporary files
-CHECK_CLEANFILES = *.chkexe *.chklog *.clog parf[12].h5
+CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 parf[12].h5
 
 # These are our main targets
 TEST_PROG_PARA = parallel_test
diff --git a/fortran/testpar/ptest.f90 b/fortran/testpar/ptest.f90
index e474668..69594b0 100644
--- a/fortran/testpar/ptest.f90
+++ b/fortran/testpar/ptest.f90
@@ -19,6 +19,7 @@
 
 PROGRAM parallel_test
   USE hdf5
+  
   IMPLICIT NONE
   INCLUDE 'mpif.h'
 
diff --git a/hl/CMakeLists.txt b/hl/CMakeLists.txt
index e693dd7..b5d4308 100644
--- a/hl/CMakeLists.txt
+++ b/hl/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required (VERSION 2.8.11)
+cmake_minimum_required (VERSION 3.1.0)
 PROJECT (HDF5_HL C CXX)
 
 #-----------------------------------------------------------------------------
@@ -38,7 +38,3 @@ if (NOT HDF5_EXTERNALLY_CONFIGURED)
     add_subdirectory (${HDF5_HL_SOURCE_DIR}/test ${HDF5_HL_BINARY_DIR}/test)
   endif (BUILD_TESTING)
 endif (NOT HDF5_EXTERNALLY_CONFIGURED)
-
-if (HDF5_BUILD_CPP_LIB)
-  add_subdirectory (${HDF5_HL_SOURCE_DIR}/c++ ${HDF5_HL_BINARY_DIR}/c++)
-endif (HDF5_BUILD_CPP_LIB)
diff --git a/hl/Makefile.am b/hl/Makefile.am
index 3271575..9f31719 100644
--- a/hl/Makefile.am
+++ b/hl/Makefile.am
@@ -43,7 +43,7 @@ DIST_SUBDIRS=src test tools c++ fortran examples
 
 # Install examples
 install-examples uninstall-examples:
-	@@SETX@; for d in examples $(HDF5_INTERFACES); do               \
+	for d in examples $(HDF5_INTERFACES); do               \
 	    (cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1;           \
 	done
 
diff --git a/hl/Makefile.in b/hl/Makefile.in
index cda0122..60c9453 100644
--- a/hl/Makefile.in
+++ b/hl/Makefile.in
@@ -105,7 +105,8 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \
 TESTS =
 subdir = hl
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \
+	$(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs
@@ -408,7 +409,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@
 AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@
 AM_MAKEFLAGS = @AM_MAKEFLAGS@
 AR = @AR@
-AS = @AS@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -440,7 +440,6 @@ DIRECT_VFD = @DIRECT_VFD@
 DLLTOOL = @DLLTOOL@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
-DYNAMIC_DIRS = @DYNAMIC_DIRS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -459,17 +458,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@
 FCLIBS = @FCLIBS@
 FC_VERSION = @FC_VERSION@
 FGREP = @FGREP@
-FILTERS = @FILTERS@
 FSEARCH_DIRS = @FSEARCH_DIRS@
 GREP = @GREP@
 H5_CFLAGS = @H5_CFLAGS@
 H5_CPPFLAGS = @H5_CPPFLAGS@
 H5_CXXFLAGS = @H5_CXXFLAGS@
-H5_CXX_SHARED = @H5_CXX_SHARED@
 H5_FCFLAGS = @H5_FCFLAGS@
 H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@
 H5_LDFLAGS = @H5_LDFLAGS@
-H5_LONE_COLON = @H5_LONE_COLON@
 H5_VERSION = @H5_VERSION@
 HADDR_T = @HADDR_T@
 HAVE_DMALLOC = @HAVE_DMALLOC@
@@ -492,7 +488,6 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INSTRUMENT = @INSTRUMENT@
 INSTRUMENT_LIBRARY = @INSTRUMENT_LIBRARY@
-LARGEFILE = @LARGEFILE@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
@@ -533,7 +528,6 @@ R_INTEGER = @R_INTEGER@
 R_LARGE = @R_LARGE@
 SEARCH = @SEARCH@
 SED = @SED@
-SETX = @SETX@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIZE_T = @SIZE_T@
@@ -548,10 +542,6 @@ TR = @TR@
 TRACE_API = @TRACE_API@
 UNAME_INFO = @UNAME_INFO@
 USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@
-USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@
-USE_FILTER_NBIT = @USE_FILTER_NBIT@
-USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@
-USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@
 USE_FILTER_SZIP = @USE_FILTER_SZIP@
 USINGMEMCHECKER = @USINGMEMCHECKER@
 VERSION = @VERSION@
@@ -665,8 +655,8 @@ TRACE = perl $(top_srcdir)/bin/trace
 
 # .chkexe files are used to mark tests that have run successfully.
 # .chklog files are output from those tests.
-# *.clog are from the MPE option.
-CHECK_CLEANFILES = *.chkexe *.chklog *.clog
+# *.clog and *.clog2 are from the MPE option.
+CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2
 @BUILD_FORTRAN_CONDITIONAL_TRUE at FORTRAN_DIR = fortran
 @BUILD_CXX_CONDITIONAL_TRUE at CXX_DIR = c++
 @BUILD_HDF5_HL_CONDITIONAL_TRUE at SUBDIRS = src test tools $(CXX_DIR) $(FORTRAN_DIR)
@@ -1168,7 +1158,7 @@ help:
 
 # Install examples
 install-examples uninstall-examples:
-	@@SETX@; for d in examples $(HDF5_INTERFACES); do               \
+	for d in examples $(HDF5_INTERFACES); do               \
 	    (cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1;           \
 	done
 
diff --git a/hl/c++/CMakeLists.txt b/hl/c++/CMakeLists.txt
index 9f0aa7e..36f4c30 100644
--- a/hl/c++/CMakeLists.txt
+++ b/hl/c++/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required (VERSION 2.8.11)
+cmake_minimum_required (VERSION 3.1.0)
 PROJECT (HDF5_HL_CPP)
 
 #-----------------------------------------------------------------------------
diff --git a/hl/c++/Makefile.in b/hl/c++/Makefile.in
index 3839814..278f97b 100644
--- a/hl/c++/Makefile.in
+++ b/hl/c++/Makefile.in
@@ -101,7 +101,8 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \
 TESTS =
 subdir = hl/c++
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \
+	$(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs
@@ -404,7 +405,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@
 AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@
 AM_MAKEFLAGS = @AM_MAKEFLAGS@
 AR = @AR@
-AS = @AS@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -436,7 +436,6 @@ DIRECT_VFD = @DIRECT_VFD@
 DLLTOOL = @DLLTOOL@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
-DYNAMIC_DIRS = @DYNAMIC_DIRS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -455,17 +454,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@
 FCLIBS = @FCLIBS@
 FC_VERSION = @FC_VERSION@
 FGREP = @FGREP@
-FILTERS = @FILTERS@
 FSEARCH_DIRS = @FSEARCH_DIRS@
 GREP = @GREP@
 H5_CFLAGS = @H5_CFLAGS@
 H5_CPPFLAGS = @H5_CPPFLAGS@
 H5_CXXFLAGS = @H5_CXXFLAGS@
-H5_CXX_SHARED = @H5_CXX_SHARED@
 H5_FCFLAGS = @H5_FCFLAGS@
 H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@
 H5_LDFLAGS = @H5_LDFLAGS@
-H5_LONE_COLON = @H5_LONE_COLON@
 H5_VERSION = @H5_VERSION@
 HADDR_T = @HADDR_T@
 HAVE_DMALLOC = @HAVE_DMALLOC@
@@ -488,7 +484,6 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INSTRUMENT = @INSTRUMENT@
 INSTRUMENT_LIBRARY = @INSTRUMENT_LIBRARY@
-LARGEFILE = @LARGEFILE@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
@@ -529,7 +524,6 @@ R_INTEGER = @R_INTEGER@
 R_LARGE = @R_LARGE@
 SEARCH = @SEARCH@
 SED = @SED@
-SETX = @SETX@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIZE_T = @SIZE_T@
@@ -544,10 +538,6 @@ TR = @TR@
 TRACE_API = @TRACE_API@
 UNAME_INFO = @UNAME_INFO@
 USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@
-USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@
-USE_FILTER_NBIT = @USE_FILTER_NBIT@
-USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@
-USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@
 USE_FILTER_SZIP = @USE_FILTER_SZIP@
 USINGMEMCHECKER = @USINGMEMCHECKER@
 VERSION = @VERSION@
@@ -661,8 +651,8 @@ TRACE = perl $(top_srcdir)/bin/trace
 
 # .chkexe files are used to mark tests that have run successfully.
 # .chklog files are output from those tests.
-# *.clog are from the MPE option.
-CHECK_CLEANFILES = *.chkexe *.chklog *.clog
+# *.clog and *.clog2 are from the MPE option.
+CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2
 SUBDIRS = src test
 DIST_SUBDIRS = src test examples
 
diff --git a/hl/c++/examples/CMakeLists.txt b/hl/c++/examples/CMakeLists.txt
index 8f9b43f..e3fc3ae 100644
--- a/hl/c++/examples/CMakeLists.txt
+++ b/hl/c++/examples/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required (VERSION 2.8.11)
+cmake_minimum_required (VERSION 3.1.0)
 PROJECT (HDF5_HL_CPP_EXAMPLES)
 
 #-----------------------------------------------------------------------------
@@ -12,7 +12,7 @@ INCLUDE_DIRECTORIES (${HDF5_HL_CPP_SRC_DIR}/src)
 # --------------------------------------------------------------------
 add_executable (ptExampleFL ${HDF5_HL_CPP_EXAMPLES_SOURCE_DIR}/ptExampleFL.cpp)
 TARGET_NAMING (ptExampleFL ${LIB_TYPE})
-TARGET_C_PROPERTIES (ptExampleFL " " " ")
+TARGET_C_PROPERTIES (ptExampleFL ${LIB_TYPE} " " " ")
 target_link_libraries (
     ptExampleFL
     ${HDF5_HL_CPP_LIB_TARGET}
diff --git a/hl/c++/examples/Makefile.am b/hl/c++/examples/Makefile.am
index c8f0305..7202a96 100644
--- a/hl/c++/examples/Makefile.am
+++ b/hl/c++/examples/Makefile.am
@@ -36,6 +36,7 @@ CXX_API=yes
 # Where to install examples
 # Note: no '/' after DESTDIR.  Explanation in commence.am
 EXAMPLEDIR=${DESTDIR}$(exec_prefix)/share/hdf5_examples/hl/c++
+EXAMPLETOPDIR=${DESTDIR}$(exec_prefix)/share/hdf5_examples/hl
 
 # How to build programs using h5c++
 $(EXTRA_PROG): $(H5CPP)
diff --git a/hl/c++/examples/Makefile.in b/hl/c++/examples/Makefile.in
index 5712043..5bad31f 100644
--- a/hl/c++/examples/Makefile.in
+++ b/hl/c++/examples/Makefile.in
@@ -106,7 +106,8 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \
 TESTS =
 subdir = hl/c++/examples
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \
+	$(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs
@@ -351,7 +352,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@
 AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@
 AM_MAKEFLAGS = @AM_MAKEFLAGS@
 AR = @AR@
-AS = @AS@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -383,7 +383,6 @@ DIRECT_VFD = @DIRECT_VFD@
 DLLTOOL = @DLLTOOL@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
-DYNAMIC_DIRS = @DYNAMIC_DIRS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -402,17 +401,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@
 FCLIBS = @FCLIBS@
 FC_VERSION = @FC_VERSION@
 FGREP = @FGREP@
-FILTERS = @FILTERS@
 FSEARCH_DIRS = @FSEARCH_DIRS@
 GREP = @GREP@
 H5_CFLAGS = @H5_CFLAGS@
 H5_CPPFLAGS = @H5_CPPFLAGS@
 H5_CXXFLAGS = @H5_CXXFLAGS@
-H5_CXX_SHARED = @H5_CXX_SHARED@
 H5_FCFLAGS = @H5_FCFLAGS@
 H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@
 H5_LDFLAGS = @H5_LDFLAGS@
-H5_LONE_COLON = @H5_LONE_COLON@
 H5_VERSION = @H5_VERSION@
 HADDR_T = @HADDR_T@
 HAVE_DMALLOC = @HAVE_DMALLOC@
@@ -435,7 +431,6 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INSTRUMENT = @INSTRUMENT@
 INSTRUMENT_LIBRARY = @INSTRUMENT_LIBRARY@
-LARGEFILE = @LARGEFILE@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
@@ -476,7 +471,6 @@ R_INTEGER = @R_INTEGER@
 R_LARGE = @R_LARGE@
 SEARCH = @SEARCH@
 SED = @SED@
-SETX = @SETX@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIZE_T = @SIZE_T@
@@ -491,10 +485,6 @@ TR = @TR@
 TRACE_API = @TRACE_API@
 UNAME_INFO = @UNAME_INFO@
 USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@
-USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@
-USE_FILTER_NBIT = @USE_FILTER_NBIT@
-USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@
-USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@
 USE_FILTER_SZIP = @USE_FILTER_SZIP@
 USINGMEMCHECKER = @USINGMEMCHECKER@
 VERSION = @VERSION@
@@ -608,8 +598,8 @@ TRACE = perl $(top_srcdir)/bin/trace
 
 # .chkexe files are used to mark tests that have run successfully.
 # .chklog files are output from those tests.
-# *.clog are from the MPE option.
-CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.h5
+# *.clog and *.clog2 are from the MPE option.
+CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 *.h5
 
 # These are the programs that 'make all' or 'make prog' will build and
 # which 'make check' will run.  List them in the order they should be run.
@@ -626,6 +616,7 @@ CXX_API = yes
 # Where to install examples
 # Note: no '/' after DESTDIR.  Explanation in commence.am
 EXAMPLEDIR = ${DESTDIR}$(exec_prefix)/share/hdf5_examples/hl/c++
+EXAMPLETOPDIR = ${DESTDIR}$(exec_prefix)/share/hdf5_examples/hl
 
 # Assume that all tests in this directory are examples, and tell
 # conclude.am when to build them.
diff --git a/hl/c++/src/CMakeLists.txt b/hl/c++/src/CMakeLists.txt
index 9776f06..640cb2d 100644
--- a/hl/c++/src/CMakeLists.txt
+++ b/hl/c++/src/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required (VERSION 2.8.11)
+cmake_minimum_required (VERSION 3.1.0)
 PROJECT (HDF5_HL_CPP_SRC)
 
 #-----------------------------------------------------------------------------
@@ -11,7 +11,7 @@ set (HDF5_HL_CPP_SRCS ${HDF5_HL_CPP_SRC_SOURCE_DIR}/H5PacketTable.cpp)
 set (HDF5_HL_CPP_HDRS ${HDF5_HL_CPP_SRC_SOURCE_DIR}/H5PacketTable.h)
 
 add_library (${HDF5_HL_CPP_LIB_TARGET} ${LIB_TYPE} ${HDF5_HL_CPP_SRCS})
-TARGET_C_PROPERTIES (${HDF5_HL_CPP_LIB_TARGET} " " " ")
+TARGET_C_PROPERTIES (${HDF5_HL_CPP_LIB_TARGET} ${LIB_TYPE} " " " ")
 target_link_libraries (
     ${HDF5_HL_CPP_LIB_TARGET}
     ${HDF5_HL_LIB_TARGET}
@@ -41,7 +41,7 @@ install (
 #-----------------------------------------------------------------------------
 if (HDF5_EXPORTED_TARGETS)
   if (BUILD_SHARED_LIBS)
-    INSTALL_TARGET_PDB (${HDF5_HL_CPP_LIB_TARGET} ${HDF5_INSTALL_LIB_DIR} hlcpplibraries)
+    INSTALL_TARGET_PDB (${HDF5_HL_CPP_LIB_TARGET} ${HDF5_INSTALL_BIN_DIR} hlcpplibraries)
   endif (BUILD_SHARED_LIBS)
   
   install (
diff --git a/hl/c++/src/Makefile.am b/hl/c++/src/Makefile.am
index 9751e94..b268948 100644
--- a/hl/c++/src/Makefile.am
+++ b/hl/c++/src/Makefile.am
@@ -30,12 +30,6 @@ lib_LTLIBRARIES=libhdf5_hl_cpp.la
 # Add libtool numbers to the HDF5 HL C++ library (from config/lt_vers.am)
 libhdf5_hl_cpp_la_LDFLAGS= -version-info $(LT_VERS_INTERFACE):$(LT_VERS_REVISION):$(LT_VERS_AGE) $(AM_LDFLAGS)
 
-# Shared C++ libraries aren't universally supported.
-if CXX_SHARED_CONDITIONAL
-else
-  AM_LDFLAGS+=-static
-endif
-
 # Source files for the library
 # At the moment, only the H5PT Packet Table has a C++ API.
 libhdf5_hl_cpp_la_SOURCES=H5PacketTable.cpp
diff --git a/hl/c++/src/Makefile.in b/hl/c++/src/Makefile.in
index 6555461..41c1bea 100644
--- a/hl/c++/src/Makefile.in
+++ b/hl/c++/src/Makefile.in
@@ -102,13 +102,11 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \
 	$(srcdir)/Makefile.am $(top_srcdir)/bin/mkinstalldirs \
 	$(top_srcdir)/bin/depcomp $(include_HEADERS) \
 	$(top_srcdir)/bin/test-driver
-
-# Shared C++ libraries aren't universally supported.
- at CXX_SHARED_CONDITIONAL_FALSE@am__append_1 = -static
 TESTS =
 subdir = hl/c++/src
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \
+	$(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs
@@ -407,10 +405,9 @@ AM_CPPFLAGS = @AM_CPPFLAGS@ @H5_CPPFLAGS@ -I$(top_srcdir)/src \
 AM_CXXFLAGS = @AM_CXXFLAGS@ @H5_CXXFLAGS@
 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@
-AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ $(am__append_1)
+AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@
 AM_MAKEFLAGS = @AM_MAKEFLAGS@
 AR = @AR@
-AS = @AS@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -442,7 +439,6 @@ DIRECT_VFD = @DIRECT_VFD@
 DLLTOOL = @DLLTOOL@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
-DYNAMIC_DIRS = @DYNAMIC_DIRS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -461,17 +457,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@
 FCLIBS = @FCLIBS@
 FC_VERSION = @FC_VERSION@
 FGREP = @FGREP@
-FILTERS = @FILTERS@
 FSEARCH_DIRS = @FSEARCH_DIRS@
 GREP = @GREP@
 H5_CFLAGS = @H5_CFLAGS@
 H5_CPPFLAGS = @H5_CPPFLAGS@
 H5_CXXFLAGS = @H5_CXXFLAGS@
-H5_CXX_SHARED = @H5_CXX_SHARED@
 H5_FCFLAGS = @H5_FCFLAGS@
 H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@
 H5_LDFLAGS = @H5_LDFLAGS@
-H5_LONE_COLON = @H5_LONE_COLON@
 H5_VERSION = @H5_VERSION@
 HADDR_T = @HADDR_T@
 HAVE_DMALLOC = @HAVE_DMALLOC@
@@ -494,7 +487,6 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INSTRUMENT = @INSTRUMENT@
 INSTRUMENT_LIBRARY = @INSTRUMENT_LIBRARY@
-LARGEFILE = @LARGEFILE@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
@@ -535,7 +527,6 @@ R_INTEGER = @R_INTEGER@
 R_LARGE = @R_LARGE@
 SEARCH = @SEARCH@
 SED = @SED@
-SETX = @SETX@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIZE_T = @SIZE_T@
@@ -550,10 +541,6 @@ TR = @TR@
 TRACE_API = @TRACE_API@
 UNAME_INFO = @UNAME_INFO@
 USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@
-USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@
-USE_FILTER_NBIT = @USE_FILTER_NBIT@
-USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@
-USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@
 USE_FILTER_SZIP = @USE_FILTER_SZIP@
 USINGMEMCHECKER = @USINGMEMCHECKER@
 VERSION = @VERSION@
@@ -667,15 +654,15 @@ TRACE = perl $(top_srcdir)/bin/trace
 
 # .chkexe files are used to mark tests that have run successfully.
 # .chklog files are output from those tests.
-# *.clog are from the MPE option.
-CHECK_CLEANFILES = *.chkexe *.chklog *.clog
+# *.clog and *.clog2 are from the MPE option.
+CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2
 
 # Add libtool shared library version numbers to the HDF5 library
 # See libtool versioning documentation online.
 # 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_INTERFACE = 10
+LT_VERS_REVISION = 0 
 LT_VERS_AGE = 0
 
 # This is our main target
diff --git a/hl/c++/test/CMakeLists.txt b/hl/c++/test/CMakeLists.txt
index 4a7523c..ff06b22 100644
--- a/hl/c++/test/CMakeLists.txt
+++ b/hl/c++/test/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required (VERSION 2.8.11)
+cmake_minimum_required (VERSION 3.1.0)
 PROJECT (HDF5_HL_CPP_TEST)
 
 #-----------------------------------------------------------------------------
@@ -16,7 +16,7 @@ INCLUDE_DIRECTORIES (${HDF5_HL_SRC_DIR}/test)
 INCLUDE_DIRECTORIES (${HDF5_CPP_SRC_DIR}/src)
 
 add_executable (hl_ptableTest ${HDF5_HL_CPP_TEST_SOURCE_DIR}/ptableTest.cpp)
-TARGET_C_PROPERTIES (hl_ptableTest " " " ")
+TARGET_C_PROPERTIES (hl_ptableTest ${LIB_TYPE} " " " ")
 TARGET_NAMING (hl_ptableTest ${LIB_TYPE})
 target_link_libraries (
     hl_ptableTest
diff --git a/hl/c++/test/Makefile.am b/hl/c++/test/Makefile.am
index 105188f..c835843 100644
--- a/hl/c++/test/Makefile.am
+++ b/hl/c++/test/Makefile.am
@@ -23,12 +23,6 @@ include $(top_srcdir)/config/commence.am
 # Include directories
 AM_CPPFLAGS+=-I$(top_srcdir)/src -I$(top_srcdir)/c++/src -I$(top_srcdir)/hl/src -I$(top_srcdir)/hl/c++/src -I$(top_srcdir)/test -I$(top_builddir)/hl/test -I$(top_srcdir)/hl/test
 
-# Shared C++ libraries aren't universally supported.
-if CXX_SHARED_CONDITIONAL
-else
-  AM_LDFLAGS+=-static
-endif
-
 # These are our main targets.  They should be listed in the order to be
 # executed, generally most specific tests to least specific tests.
 TEST_PROG=ptableTest
diff --git a/hl/c++/test/Makefile.in b/hl/c++/test/Makefile.in
index f6bd246..b7d7d09 100644
--- a/hl/c++/test/Makefile.in
+++ b/hl/c++/test/Makefile.in
@@ -98,14 +98,12 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \
 	$(top_srcdir)/config/conclude.am $(srcdir)/Makefile.in \
 	$(srcdir)/Makefile.am $(top_srcdir)/bin/mkinstalldirs \
 	$(top_srcdir)/bin/depcomp $(top_srcdir)/bin/test-driver
-
-# Shared C++ libraries aren't universally supported.
- at CXX_SHARED_CONDITIONAL_FALSE@am__append_1 = -static
 check_PROGRAMS = $(am__EXEEXT_1)
 TESTS = $(am__EXEEXT_1)
 subdir = hl/c++/test
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \
+	$(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs
@@ -404,10 +402,9 @@ AM_CPPFLAGS = @AM_CPPFLAGS@ @H5_CPPFLAGS@ -I$(top_srcdir)/src \
 AM_CXXFLAGS = @AM_CXXFLAGS@ @H5_CXXFLAGS@
 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@
-AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ $(am__append_1)
+AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@
 AM_MAKEFLAGS = @AM_MAKEFLAGS@
 AR = @AR@
-AS = @AS@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -439,7 +436,6 @@ DIRECT_VFD = @DIRECT_VFD@
 DLLTOOL = @DLLTOOL@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
-DYNAMIC_DIRS = @DYNAMIC_DIRS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -458,17 +454,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@
 FCLIBS = @FCLIBS@
 FC_VERSION = @FC_VERSION@
 FGREP = @FGREP@
-FILTERS = @FILTERS@
 FSEARCH_DIRS = @FSEARCH_DIRS@
 GREP = @GREP@
 H5_CFLAGS = @H5_CFLAGS@
 H5_CPPFLAGS = @H5_CPPFLAGS@
 H5_CXXFLAGS = @H5_CXXFLAGS@
-H5_CXX_SHARED = @H5_CXX_SHARED@
 H5_FCFLAGS = @H5_FCFLAGS@
 H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@
 H5_LDFLAGS = @H5_LDFLAGS@
-H5_LONE_COLON = @H5_LONE_COLON@
 H5_VERSION = @H5_VERSION@
 HADDR_T = @HADDR_T@
 HAVE_DMALLOC = @HAVE_DMALLOC@
@@ -491,7 +484,6 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INSTRUMENT = @INSTRUMENT@
 INSTRUMENT_LIBRARY = @INSTRUMENT_LIBRARY@
-LARGEFILE = @LARGEFILE@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
@@ -532,7 +524,6 @@ R_INTEGER = @R_INTEGER@
 R_LARGE = @R_LARGE@
 SEARCH = @SEARCH@
 SED = @SED@
-SETX = @SETX@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIZE_T = @SIZE_T@
@@ -547,10 +538,6 @@ TR = @TR@
 TRACE_API = @TRACE_API@
 UNAME_INFO = @UNAME_INFO@
 USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@
-USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@
-USE_FILTER_NBIT = @USE_FILTER_NBIT@
-USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@
-USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@
 USE_FILTER_SZIP = @USE_FILTER_SZIP@
 USINGMEMCHECKER = @USINGMEMCHECKER@
 VERSION = @VERSION@
@@ -664,8 +651,8 @@ TRACE = perl $(top_srcdir)/bin/trace
 
 # .chkexe files are used to mark tests that have run successfully.
 # .chklog files are output from those tests.
-# *.clog are from the MPE option.
-CHECK_CLEANFILES = *.chkexe *.chklog *.clog
+# *.clog and *.clog2 are from the MPE option.
+CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2
 
 # These are our main targets.  They should be listed in the order to be
 # executed, generally most specific tests to least specific tests.
diff --git a/hl/examples/CMakeLists.txt b/hl/examples/CMakeLists.txt
index 7847dbe..e264f75 100644
--- a/hl/examples/CMakeLists.txt
+++ b/hl/examples/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required (VERSION 2.8.11)
+cmake_minimum_required (VERSION 3.1.0)
 PROJECT (HDF5_HL_EXAMPLES )
 
 #-----------------------------------------------------------------------------
@@ -29,7 +29,7 @@ set (examples
 foreach (example ${examples})
   add_executable (hl_ex_${example} ${HDF5_HL_EXAMPLES_SOURCE_DIR}/${example}.c)
   TARGET_NAMING (hl_ex_${example} ${LIB_TYPE})
-  TARGET_C_PROPERTIES (hl_ex_${example} " " " ")
+  TARGET_C_PROPERTIES (hl_ex_${example} ${LIB_TYPE} " " " ")
   target_link_libraries (hl_ex_${example} ${HDF5_HL_LIB_TARGET} ${HDF5_LIB_TARGET})
   set_target_properties (hl_ex_${example} PROPERTIES FOLDER examples/hl)
 endforeach (example ${examples})
diff --git a/hl/examples/Makefile.in b/hl/examples/Makefile.in
index 6bbf493..f0bf099 100644
--- a/hl/examples/Makefile.in
+++ b/hl/examples/Makefile.in
@@ -106,7 +106,8 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \
 TESTS =
 subdir = hl/examples
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \
+	$(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs
@@ -351,7 +352,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@
 AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@
 AM_MAKEFLAGS = @AM_MAKEFLAGS@
 AR = @AR@
-AS = @AS@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -383,7 +383,6 @@ DIRECT_VFD = @DIRECT_VFD@
 DLLTOOL = @DLLTOOL@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
-DYNAMIC_DIRS = @DYNAMIC_DIRS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -402,17 +401,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@
 FCLIBS = @FCLIBS@
 FC_VERSION = @FC_VERSION@
 FGREP = @FGREP@
-FILTERS = @FILTERS@
 FSEARCH_DIRS = @FSEARCH_DIRS@
 GREP = @GREP@
 H5_CFLAGS = @H5_CFLAGS@
 H5_CPPFLAGS = @H5_CPPFLAGS@
 H5_CXXFLAGS = @H5_CXXFLAGS@
-H5_CXX_SHARED = @H5_CXX_SHARED@
 H5_FCFLAGS = @H5_FCFLAGS@
 H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@
 H5_LDFLAGS = @H5_LDFLAGS@
-H5_LONE_COLON = @H5_LONE_COLON@
 H5_VERSION = @H5_VERSION@
 HADDR_T = @HADDR_T@
 HAVE_DMALLOC = @HAVE_DMALLOC@
@@ -435,7 +431,6 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INSTRUMENT = @INSTRUMENT@
 INSTRUMENT_LIBRARY = @INSTRUMENT_LIBRARY@
-LARGEFILE = @LARGEFILE@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
@@ -476,7 +471,6 @@ R_INTEGER = @R_INTEGER@
 R_LARGE = @R_LARGE@
 SEARCH = @SEARCH@
 SED = @SED@
-SETX = @SETX@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIZE_T = @SIZE_T@
@@ -491,10 +485,6 @@ TR = @TR@
 TRACE_API = @TRACE_API@
 UNAME_INFO = @UNAME_INFO@
 USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@
-USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@
-USE_FILTER_NBIT = @USE_FILTER_NBIT@
-USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@
-USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@
 USE_FILTER_SZIP = @USE_FILTER_SZIP@
 USINGMEMCHECKER = @USINGMEMCHECKER@
 VERSION = @VERSION@
@@ -608,8 +598,8 @@ TRACE = perl $(top_srcdir)/bin/trace
 
 # .chkexe files are used to mark tests that have run successfully.
 # .chklog files are output from those tests.
-# *.clog are from the MPE option.
-CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.h5
+# *.clog and *.clog2 are from the MPE option.
+CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 *.h5
 @BUILD_PARALLEL_CONDITIONAL_TRUE at EXAMPLE_PROG_PARA = 
 
 # Example directory
diff --git a/hl/examples/ex_image1.c b/hl/examples/ex_image1.c
index 96bc7c7..18ad903 100644
--- a/hl/examples/ex_image1.c
+++ b/hl/examples/ex_image1.c
@@ -24,7 +24,6 @@ unsigned char buf [ WIDTH*HEIGHT ];
 int main( void )
 {
  hid_t         file_id;
- herr_t        status;
  hsize_t       pal_dims[] = {PAL_ENTRIES,3};
  size_t        i, j;
  int           n, space;
@@ -56,16 +55,16 @@ int main( void )
  file_id = H5Fcreate( "ex_image1.h5", H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT );
 
  /* make the image */
- status = H5IMmake_image_8bit( file_id, "image1", (hsize_t)WIDTH, (hsize_t)HEIGHT, buf );
+ H5IMmake_image_8bit( file_id, "image1", (hsize_t)WIDTH, (hsize_t)HEIGHT, buf );
 
  /* make a palette */
- status = H5IMmake_palette( file_id, "pallete", pal_dims, pal );
+ H5IMmake_palette( file_id, "pallete", pal_dims, pal );
 
  /* attach the palette to the image */
- status = H5IMlink_palette( file_id, "image1", "pallete" );
+ H5IMlink_palette( file_id, "image1", "pallete" );
 
  /* close the file. */
- status = H5Fclose( file_id );
+ H5Fclose( file_id );
 
  return 0;
 
diff --git a/hl/examples/ex_image2.c b/hl/examples/ex_image2.c
index 3276f7c..b57f1b7 100644
--- a/hl/examples/ex_image2.c
+++ b/hl/examples/ex_image2.c
@@ -35,7 +35,7 @@ int main( void )
  hsize_t        height;                        /* height of image */
  unsigned char  pal[ PAL_ENTRIES * 3 ];        /* palette array */
  hsize_t        pal_dims[2] = {PAL_ENTRIES,3}; /* palette dimensions */
- herr_t         status, i, n;
+ herr_t         i, n;
 
  /* create a new HDF5 file using default properties. */
  file_id = H5Fcreate( "ex_image2.h5", H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT );
@@ -45,7 +45,7 @@ int main( void )
   goto out;
 
  /* make the image */
- status=H5IMmake_image_8bit( file_id, IMAGE1_NAME, width, height, gbuf );
+ H5IMmake_image_8bit( file_id, IMAGE1_NAME, width, height, gbuf );
  if (gbuf) {
     free(gbuf);
     gbuf = NULL;
@@ -63,10 +63,10 @@ int main( void )
  }
 
  /* make a palette */
- status=H5IMmake_palette( file_id, PAL_NAME, pal_dims, pal );
+ H5IMmake_palette( file_id, PAL_NAME, pal_dims, pal );
 
  /* attach the palette to the image */
- status=H5IMlink_palette( file_id, IMAGE1_NAME, PAL_NAME );
+ H5IMlink_palette( file_id, IMAGE1_NAME, PAL_NAME );
 
 /*-------------------------------------------------------------------------
  * True color image example with pixel interlace
@@ -78,7 +78,7 @@ int main( void )
   goto out;
 
  /* make dataset */
- status=H5IMmake_image_24bit( file_id, IMAGE2_NAME, width, height, "INTERLACE_PIXEL", gbuf );
+ H5IMmake_image_24bit( file_id, IMAGE2_NAME, width, height, "INTERLACE_PIXEL", gbuf );
 
  /* close the file. */
  H5Fclose( file_id );
diff --git a/hl/examples/ex_lite1.c b/hl/examples/ex_lite1.c
index 2a82fef..446c803 100644
--- a/hl/examples/ex_lite1.c
+++ b/hl/examples/ex_lite1.c
@@ -25,16 +25,15 @@ int main( void )
  hid_t       file_id;
  hsize_t     dims[RANK]={2,3};
  int         data[6]={1,2,3,4,5,6};
- herr_t      status;
 
  /* create a HDF5 file */
  file_id = H5Fcreate ("ex_lite1.h5", H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
 
  /* create and write an integer type dataset named "dset" */
- status = H5LTmake_dataset(file_id,"/dset",RANK,dims,H5T_NATIVE_INT,data);
+ H5LTmake_dataset(file_id,"/dset",RANK,dims,H5T_NATIVE_INT,data);
 
  /* close file */
- status = H5Fclose (file_id);
+ H5Fclose (file_id);
 
  return 0;
 }
diff --git a/hl/examples/ex_lite2.c b/hl/examples/ex_lite2.c
index 98f92c8..a696a20 100644
--- a/hl/examples/ex_lite2.c
+++ b/hl/examples/ex_lite2.c
@@ -21,17 +21,16 @@ int main( void )
  hid_t       file_id;
  int         data[6];
  hsize_t     dims[2];
- herr_t      status;
  size_t     i, j, nrow, n_values;
 
  /* open file from ex_lite1.c */
  file_id = H5Fopen ("ex_lite1.h5", H5F_ACC_RDONLY, H5P_DEFAULT);
 
  /* read dataset */
- status = H5LTread_dataset_int(file_id,"/dset",data);
+ H5LTread_dataset_int(file_id,"/dset",data);
 
  /* get the dimensions of the dataset */
- status = H5LTget_dataset_info(file_id,"/dset",dims,NULL,NULL);
+ H5LTget_dataset_info(file_id,"/dset",dims,NULL,NULL);
 
  /* print it by rows */
  n_values = (size_t)(dims[0] * dims[1]);
@@ -44,7 +43,7 @@ int main( void )
  }
 
  /* close file */
- status = H5Fclose (file_id);
+ H5Fclose (file_id);
 
  return 0;
 
diff --git a/hl/examples/ex_lite3.c b/hl/examples/ex_lite3.c
index 9164c7b..f409ea4 100644
--- a/hl/examples/ex_lite3.c
+++ b/hl/examples/ex_lite3.c
@@ -26,7 +26,6 @@ int main( void )
  hid_t   space_id;
  hsize_t dims[1] = { ATTR_SIZE };
  int     data[ATTR_SIZE] = {1,2,3,4,5};
- herr_t  status;
  int     i;
 
  /* create a file */
@@ -39,8 +38,8 @@ int main( void )
  dset_id = H5Dcreate2(file_id, "dset", H5T_NATIVE_INT, space_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
 
  /* close */
- status = H5Dclose(dset_id);
- status = H5Sclose(space_id);
+ H5Dclose(dset_id);
+ H5Sclose(space_id);
 
 /*-------------------------------------------------------------------------
  * example of H5LTset_attribute_int
@@ -48,7 +47,7 @@ int main( void )
  */
 
  /* create and write the attribute "attr1" on the dataset "dset" */
- status = H5LTset_attribute_int(file_id, "dset", "attr1", data, ATTR_SIZE);
+ H5LTset_attribute_int(file_id, "dset", "attr1", data, ATTR_SIZE);
 
 /*-------------------------------------------------------------------------
  * example of H5LTget_attribute_int
@@ -56,14 +55,14 @@ int main( void )
  */
 
  /* get the attribute "attr1" from the dataset "dset" */
- status = H5LTget_attribute_int(file_id, "dset", "attr1", data);
+ H5LTget_attribute_int(file_id, "dset", "attr1", data);
 
  for(i = 0; i < ATTR_SIZE; i++ )
   printf("  %d", data[i]);
  printf("\n");
 
  /* close file */
- status = H5Fclose(file_id);
+ H5Fclose(file_id);
 
  return 0;
 }
diff --git a/hl/examples/ex_table_01.c b/hl/examples/ex_table_01.c
index de304d9..1d381ae 100644
--- a/hl/examples/ex_table_01.c
+++ b/hl/examples/ex_table_01.c
@@ -80,7 +80,6 @@ int main( void )
   hsize_t    chunk_size = 10;
   int        *fill_data = NULL;
   int        compress  = 0;
-  herr_t     status;
   int        i;
 
   /* Initialize field_type */
@@ -100,7 +99,7 @@ int main( void )
  *-------------------------------------------------------------------------
  */
 
- status=H5TBmake_table( "Table Title", file_id, TABLE_NAME,NFIELDS,NRECORDS,
+ H5TBmake_table( "Table Title", file_id, TABLE_NAME,NFIELDS,NRECORDS,
                          dst_size,field_names, dst_offset, field_type,
                          chunk_size, fill_data, compress, p_data  );
 
@@ -109,7 +108,7 @@ int main( void )
  *-------------------------------------------------------------------------
  */
 
- status=H5TBread_table( file_id, TABLE_NAME, dst_size, dst_offset, dst_sizes, dst_buf );
+ H5TBread_table( file_id, TABLE_NAME, dst_size, dst_offset, dst_sizes, dst_buf );
 
  /* print it by rows */
  for (i=0; i<NRECORDS; i++) {
diff --git a/hl/examples/ex_table_02.c b/hl/examples/ex_table_02.c
index 98e33d3..129f87d 100644
--- a/hl/examples/ex_table_02.c
+++ b/hl/examples/ex_table_02.c
@@ -78,7 +78,6 @@ int main( void )
  hsize_t    chunk_size = 10;
  int        *fill_data = NULL;
  int        compress  = 0;
- herr_t     status;
  int        i;
 
   /* Append particles */
@@ -99,16 +98,16 @@ int main( void )
  file_id = H5Fcreate( "ex_table_02.h5", H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT );
 
  /* make a table */
- status=H5TBmake_table( "Table Title",file_id,TABLE_NAME,NFIELDS,NRECORDS,
+ H5TBmake_table( "Table Title",file_id,TABLE_NAME,NFIELDS,NRECORDS,
                         dst_size, field_names, dst_offset, field_type,
                         chunk_size, fill_data, compress, p_data  );
 
  /* append two records */
- status=H5TBappend_records(file_id, TABLE_NAME,NRECORDS_ADD, dst_size, dst_offset, dst_sizes,
+ H5TBappend_records(file_id, TABLE_NAME,NRECORDS_ADD, dst_size, dst_offset, dst_sizes,
   &particle_in );
 
  /* read the table */
- status=H5TBread_table( file_id, TABLE_NAME, dst_size, dst_offset, dst_sizes, dst_buf );
+ H5TBread_table( file_id, TABLE_NAME, dst_size, dst_offset, dst_sizes, dst_buf );
 
  /* print it by rows */
  for (i=0; i<NRECORDS+NRECORDS_ADD; i++) {
diff --git a/hl/examples/ex_table_03.c b/hl/examples/ex_table_03.c
index 7315fd3..c9f94ce 100644
--- a/hl/examples/ex_table_03.c
+++ b/hl/examples/ex_table_03.c
@@ -71,7 +71,6 @@ int main( void )
  hsize_t    chunk_size = 10;
  hsize_t    start;      /* Record to start reading/writing */
  hsize_t    nrecords;   /* Number of records to read/write */
- herr_t     status;
  int        i;
 
  /* Define 2 new particles to write */
@@ -92,7 +91,7 @@ int main( void )
  file_id = H5Fcreate( "ex_table_03.h5", H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT );
 
  /* Make the table */
- status=H5TBmake_table( "Table Title",
+ H5TBmake_table( "Table Title",
   file_id,
   TABLE_NAME,
   NFIELDS,
@@ -110,11 +109,11 @@ int main( void )
  /* Overwrite 2 records starting at record 0 */
  start    = 0;
  nrecords = NRECORDS_WRITE;
- status=H5TBwrite_records( file_id, TABLE_NAME, start, nrecords, dst_size, dst_offset,
+ H5TBwrite_records( file_id, TABLE_NAME, start, nrecords, dst_size, dst_offset,
   dst_sizes, particle_in);
 
  /* read the table */
- status=H5TBread_table( file_id, TABLE_NAME, dst_size, dst_offset, dst_sizes, dst_buf );
+ H5TBread_table( file_id, TABLE_NAME, dst_size, dst_offset, dst_sizes, dst_buf );
 
  /* print it by rows */
  for (i=0; i<NRECORDS; i++) {
diff --git a/hl/examples/ex_table_04.c b/hl/examples/ex_table_04.c
index 0a01116..01f2869 100644
--- a/hl/examples/ex_table_04.c
+++ b/hl/examples/ex_table_04.c
@@ -81,7 +81,6 @@ int main( void )
  hsize_t    start;                       /* Record to start reading/writing */
  hsize_t    nrecords;                    /* Number of records to read/write */
  int        compress  = 0;
- herr_t     status;
  int        i;
  Particle  *p_data = NULL;               /* Initially no data */
  float      pressure_in [NRECORDS_ADD] = /* Define new values for the field "Pressure"  */
@@ -118,24 +117,24 @@ int main( void )
  file_id = H5Fcreate( "ex_table_04.h5", H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT );
 
  /* Make the table */
- status=H5TBmake_table( "Table Title",file_id,TABLE_NAME,NFIELDS,NRECORDS,
+ H5TBmake_table( "Table Title",file_id,TABLE_NAME,NFIELDS,NRECORDS,
                          dst_size,field_names, dst_offset, field_type,
                          chunk_size, fill_data, compress, p_data  );
 
  /* Write the pressure field starting at record 2 */
  start    = 2;
  nrecords = NRECORDS_ADD;
- status=H5TBwrite_fields_name( file_id, TABLE_NAME, "Pressure", start, nrecords,
+ H5TBwrite_fields_name( file_id, TABLE_NAME, "Pressure", start, nrecords,
    sizeof( float ), 0, field_sizes_pre, pressure_in  );
 
  /* Write the new longitude and latitude information starting at record 2 */
  start    = 2;
  nrecords = NRECORDS_ADD;
- status=H5TBwrite_fields_name( file_id, TABLE_NAME, "Latitude,Longitude", start, nrecords,
+ H5TBwrite_fields_name( file_id, TABLE_NAME, "Latitude,Longitude", start, nrecords,
    sizeof( Position ), field_offset_pos, field_sizes_pos,  position_in  );
 
  /* read the table */
- status=H5TBread_table( file_id, TABLE_NAME, dst_size, dst_offset, dst_sizes, dst_buf );
+ H5TBread_table( file_id, TABLE_NAME, dst_size, dst_offset, dst_sizes, dst_buf );
 
  /* print it by rows */
  for (i=0; i<NRECORDS; i++) {
diff --git a/hl/examples/ex_table_05.c b/hl/examples/ex_table_05.c
index f0c96eb..7ed1fec 100644
--- a/hl/examples/ex_table_05.c
+++ b/hl/examples/ex_table_05.c
@@ -51,13 +51,6 @@ int main( void )
   int    longi;
  } Position;
 
- /* Define a subset of Particle, with name and pressure fields */
- typedef struct NamePressure
- {
-  char   name[16];
-  float  pressure;
- } NamePressure;
-
  /* Calculate the type_size and the offsets of our struct members */
  Particle  dst_buf[NRECORDS];
  size_t dst_size =  sizeof( Particle );
@@ -91,7 +84,6 @@ int main( void )
  hsize_t    nfields;
  hsize_t    start;                       /* Record to start reading/writing */
  hsize_t    nrecords;                    /* Number of records to read/write */
- herr_t     status;
  int        i;
 
  /* Define new values for the field "Pressure"  */
@@ -129,7 +121,7 @@ int main( void )
  file_id = H5Fcreate( "ex_table_05.h5", H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT );
 
  /* Make the table */
- status=H5TBmake_table( "Table Title", file_id, TABLE_NAME,NFIELDS,NRECORDS,
+ H5TBmake_table( "Table Title", file_id, TABLE_NAME,NFIELDS,NRECORDS,
                          dst_size,field_names, dst_offset, field_type,
                          chunk_size, fill_data, compress, p_data  );
 
@@ -137,7 +129,7 @@ int main( void )
  nfields  = 1;
  start    = 2;
  nrecords = NRECORDS_ADD;
- status=H5TBwrite_fields_index( file_id, TABLE_NAME, nfields, field_index_pre, start, nrecords,
+ H5TBwrite_fields_index( file_id, TABLE_NAME, nfields, field_index_pre, start, nrecords,
    sizeof( float ), 0, field_sizes_pre, pressure_in  );
 
 
@@ -145,12 +137,12 @@ int main( void )
  nfields  = 2;
  start    = 2;
  nrecords = NRECORDS_ADD;
- status=H5TBwrite_fields_index( file_id, TABLE_NAME, nfields, field_index_pos, start, nrecords,
+ H5TBwrite_fields_index( file_id, TABLE_NAME, nfields, field_index_pos, start, nrecords,
    sizeof( Position ), field_offset_pos, field_sizes_pos, position_in  );
 
 
  /* read the table */
- status=H5TBread_table( file_id, TABLE_NAME, dst_size, dst_offset, dst_sizes, dst_buf );
+ H5TBread_table( file_id, TABLE_NAME, dst_size, dst_offset, dst_sizes, dst_buf );
 
  /* print it by rows */
  for (i=0; i<NRECORDS; i++) {
@@ -163,8 +155,7 @@ int main( void )
   printf ("\n");
  }
 
-
-  /* close type */
+ /* close type */
  H5Tclose( string_type );
 
  /* close the file */
diff --git a/hl/examples/ex_table_06.c b/hl/examples/ex_table_06.c
index 261b23c..081347e 100644
--- a/hl/examples/ex_table_06.c
+++ b/hl/examples/ex_table_06.c
@@ -60,7 +60,6 @@ int main( void )
   int        compress  = 0;
   hsize_t    nfields_out;
   hsize_t    nrecords_out;
-  herr_t     status;
 
   /* Initialize field_type */
   string_type = H5Tcopy( H5T_C_S1 );
@@ -75,12 +74,12 @@ int main( void )
  file_id = H5Fcreate( "ex_table_06.h5", H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT );
 
  /* Make a table */
- status=H5TBmake_table( "Table Title",file_id,TABLE_NAME,NFIELDS,NRECORDS,dst_size,
+ H5TBmake_table( "Table Title",file_id,TABLE_NAME,NFIELDS,NRECORDS,dst_size,
                        field_names, dst_offset, field_type,
                        chunk_size, fill_data, compress, NULL);
 
  /* Get table info  */
- status=H5TBget_table_info (file_id,TABLE_NAME, &nfields_out, &nrecords_out );
+ H5TBget_table_info (file_id,TABLE_NAME, &nfields_out, &nrecords_out );
 
  /* print */
  printf ("Table has %d fields and %d records\n",(int)nfields_out,(int)nrecords_out);
diff --git a/hl/examples/ex_table_07.c b/hl/examples/ex_table_07.c
index 3479aa8..3be788f 100644
--- a/hl/examples/ex_table_07.c
+++ b/hl/examples/ex_table_07.c
@@ -73,7 +73,6 @@ int main( void )
  hsize_t    nrecords;                   /* Number of records to insert/delete */
  hsize_t    nfields_out;
  hsize_t    nrecords_out;
- herr_t     status;
 
  /* Initialize the field field_type */
  string_type = H5Tcopy( H5T_C_S1 );
@@ -88,17 +87,17 @@ int main( void )
  file_id = H5Fcreate( "ex_table_07.h5", H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT );
 
  /* Make the table */
- status=H5TBmake_table( "Table Title",file_id,TABLE_NAME,NFIELDS,NRECORDS,
+ H5TBmake_table( "Table Title",file_id,TABLE_NAME,NFIELDS,NRECORDS,
   dst_size,field_names, dst_offset, field_type,
   chunk_size, fill_data, compress, p_data  );
 
  /* Delete records  */
  start    = 3;
  nrecords = 3;
- status=H5TBdelete_record( file_id, TABLE_NAME, start, nrecords );
+ H5TBdelete_record( file_id, TABLE_NAME, start, nrecords );
 
   /* Get table info  */
- status=H5TBget_table_info (file_id,TABLE_NAME, &nfields_out, &nrecords_out );
+ H5TBget_table_info (file_id,TABLE_NAME, &nfields_out, &nrecords_out );
 
  /* print */
  printf ("Table has %d fields and %d records\n",(int)nfields_out,(int)nrecords_out);
diff --git a/hl/examples/ex_table_08.c b/hl/examples/ex_table_08.c
index 4078bea..5d3659f 100644
--- a/hl/examples/ex_table_08.c
+++ b/hl/examples/ex_table_08.c
@@ -13,7 +13,6 @@
  * access to either file, you may request a copy from help at hdfgroup.org.     *
  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
 
-#include "hdf5.h"
 #include "hdf5_hl.h"
 #include <stdlib.h>
 
@@ -85,7 +84,6 @@ int main( void )
  int        *fill_data = NULL;
  hsize_t    start;      /* Record to start reading */
  hsize_t    nrecords;   /* Number of records to insert/delete */
- herr_t     status;
  hsize_t    nfields_out;
  hsize_t    nrecords_out;
  int        i;
@@ -103,21 +101,21 @@ int main( void )
  file_id = H5Fcreate( "ex_table_08.h5", H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT );
 
  /* Make the table */
- status=H5TBmake_table( "Table Title",file_id,TABLE_NAME,NFIELDS,NRECORDS,
+ H5TBmake_table( "Table Title",file_id,TABLE_NAME,NFIELDS,NRECORDS,
                          dst_size,field_names, dst_offset, field_type,
                          chunk_size, fill_data, compress, p_data  );
 
  /* Insert records */
  start    = 3;
  nrecords = NRECORDS_INS;
- status=H5TBinsert_record( file_id, TABLE_NAME, start, nrecords, dst_size, dst_offset,
+ H5TBinsert_record( file_id, TABLE_NAME, start, nrecords, dst_size, dst_offset,
   dst_sizes, p_data_insert );
 
  /* read the table */
- status=H5TBread_table( file_id, TABLE_NAME, dst_size, dst_offset, dst_sizes, dst_buf );
+ H5TBread_table( file_id, TABLE_NAME, dst_size, dst_offset, dst_sizes, dst_buf );
 
  /* get table info  */
- status=H5TBget_table_info(file_id,TABLE_NAME, &nfields_out, &nrecords_out );
+ H5TBget_table_info(file_id,TABLE_NAME, &nfields_out, &nrecords_out );
 
  /* print */
  printf ("Table has %d fields and %d records\n",(int)nfields_out,(int)nrecords_out);
diff --git a/hl/examples/ex_table_09.c b/hl/examples/ex_table_09.c
index 7ba0aa1..a4ef611 100644
--- a/hl/examples/ex_table_09.c
+++ b/hl/examples/ex_table_09.c
@@ -13,7 +13,6 @@
  * access to either file, you may request a copy from help at hdfgroup.org.     *
  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
 
-#include "hdf5.h"
 #include "hdf5_hl.h"
 #include <stdlib.h>
 
@@ -82,7 +81,6 @@ int main( void )
  hsize_t    start1;                      /* Record to start reading from 1st table */
  hsize_t    nrecords;                    /* Number of records to insert */
  hsize_t    start2;                      /* Record to start writing in 2nd table */
- herr_t     status;
  int        i;
  hsize_t    nfields_out;
  hsize_t    nrecords_out;
@@ -100,11 +98,11 @@ int main( void )
  file_id = H5Fcreate( "ex_table_09.h5", H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT );
 
  /* Make 2 tables: TABLE2_NAME is empty  */
- status=H5TBmake_table( "Table Title",file_id,TABLE1_NAME,NFIELDS,NRECORDS,
+ H5TBmake_table( "Table Title",file_id,TABLE1_NAME,NFIELDS,NRECORDS,
                          dst_size,field_names, dst_offset, field_type,
                          chunk_size, fill_data, compress, p_data  );
 
- status=H5TBmake_table( "Table Title",file_id,TABLE2_NAME,NFIELDS,NRECORDS,
+ H5TBmake_table( "Table Title",file_id,TABLE2_NAME,NFIELDS,NRECORDS,
                          dst_size,field_names, dst_offset, field_type,
                          chunk_size, fill_data, compress, NULL  );
 
@@ -113,13 +111,13 @@ int main( void )
  start1    = 3;
  nrecords  = NRECORDS_INS;
  start2    = 6;
- status=H5TBadd_records_from( file_id, TABLE1_NAME, start1, nrecords, TABLE2_NAME, start2 );
+ H5TBadd_records_from( file_id, TABLE1_NAME, start1, nrecords, TABLE2_NAME, start2 );
 
  /* read TABLE2_NAME: it should have 2 more records now */
- status=H5TBread_table( file_id, TABLE2_NAME, dst_size, dst_offset, dst_sizes, dst_buf );
+ H5TBread_table( file_id, TABLE2_NAME, dst_size, dst_offset, dst_sizes, dst_buf );
 
  /* Get table info  */
- status=H5TBget_table_info (file_id,TABLE2_NAME, &nfields_out, &nrecords_out );
+ H5TBget_table_info (file_id,TABLE2_NAME, &nfields_out, &nrecords_out );
 
  /* print */
  printf ("Table has %d fields and %d records\n",(int)nfields_out,(int)nrecords_out);
diff --git a/hl/examples/ex_table_10.c b/hl/examples/ex_table_10.c
index 20543c2..059c7ea 100644
--- a/hl/examples/ex_table_10.c
+++ b/hl/examples/ex_table_10.c
@@ -13,7 +13,6 @@
  * access to either file, you may request a copy from help at hdfgroup.org.     *
  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
 
-#include "hdf5.h"
 #include "hdf5_hl.h"
 #include <stdlib.h>
 
@@ -78,7 +77,6 @@ int main( void )
  hsize_t    chunk_size = 10;
  int        compress  = 0;
  int        *fill_data = NULL;
- herr_t     status;
  hsize_t    nfields_out;
  hsize_t    nrecords_out;
  int        i;
@@ -96,22 +94,22 @@ int main( void )
  file_id = H5Fcreate( "ex_table_10.h5", H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT );
 
  /* Make two tables */
- status=H5TBmake_table( "Table Title",file_id,TABLE1_NAME,NFIELDS,NRECORDS,
+ H5TBmake_table( "Table Title",file_id,TABLE1_NAME,NFIELDS,NRECORDS,
                          dst_size,field_names, dst_offset, field_type,
                          chunk_size, fill_data, compress, p_data  );
 
- status=H5TBmake_table( "Table Title",file_id,TABLE2_NAME,NFIELDS,NRECORDS,
+ H5TBmake_table( "Table Title",file_id,TABLE2_NAME,NFIELDS,NRECORDS,
                          dst_size,field_names, dst_offset, field_type,
                          chunk_size, fill_data, compress, p_data  );
 
  /* Combine the two tables into a third in the same file  */
- status=H5TBcombine_tables( file_id, TABLE1_NAME, file_id, TABLE2_NAME, TABLE3_NAME );
+ H5TBcombine_tables( file_id, TABLE1_NAME, file_id, TABLE2_NAME, TABLE3_NAME );
 
  /* read the combined table */
- status=H5TBread_table( file_id, TABLE3_NAME, dst_size, dst_offset, dst_sizes, dst_buf );
+ H5TBread_table( file_id, TABLE3_NAME, dst_size, dst_offset, dst_sizes, dst_buf );
 
  /* Get table info  */
- status=H5TBget_table_info (file_id,TABLE3_NAME, &nfields_out, &nrecords_out );
+ H5TBget_table_info (file_id,TABLE3_NAME, &nfields_out, &nrecords_out );
 
  /* print */
  printf ("Table has %d fields and %d records\n",(int)nfields_out,(int)nrecords_out);
diff --git a/hl/examples/ex_table_11.c b/hl/examples/ex_table_11.c
index 872fa4e..687568c 100644
--- a/hl/examples/ex_table_11.c
+++ b/hl/examples/ex_table_11.c
@@ -13,7 +13,6 @@
  * access to either file, you may request a copy from help at hdfgroup.org.     *
  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
 
-#include "hdf5.h"
 #include "hdf5_hl.h"
 #include <stdlib.h>
 
@@ -68,10 +67,9 @@ int main( void )
  hid_t      file_id;
  hsize_t    chunk_size = 10;
  int        compress  = 0;
- Particle1  fill_data[1] = { "no data",-1,-1, -99.0f, -99.0 };
+ Particle1  fill_data[1] = { {"no data",-1,-1, -99.0f, -99.0} };
  int        fill_data_new[1] = { -100 };
  hsize_t    position;
- herr_t     status;
  hsize_t    nfields_out;
  hsize_t    nrecords_out;
 
@@ -92,17 +90,17 @@ int main( void )
  file_id = H5Fcreate( "ex_table_11.h5", H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT );
 
  /* Make the table */
- status=H5TBmake_table( "Table Title",file_id,TABLE_NAME,NFIELDS,NRECORDS,
+ H5TBmake_table( "Table Title",file_id,TABLE_NAME,NFIELDS,NRECORDS,
                          dst_size1,field_names, dst_offset1, field_type,
                          chunk_size, fill_data, compress, p_data  );
 
  /* Insert the new field at the end of the field list */
  position = NFIELDS;
- status=H5TBinsert_field( file_id, TABLE_NAME, "New Field", field_type_new, position,
+ H5TBinsert_field( file_id, TABLE_NAME, "New Field", field_type_new, position,
   fill_data_new, data );
 
  /* Get table info  */
- status=H5TBget_table_info (file_id,TABLE_NAME, &nfields_out, &nrecords_out );
+ H5TBget_table_info (file_id,TABLE_NAME, &nfields_out, &nrecords_out );
 
  /* print */
  printf ("Table has %d fields and %d records\n",(int)nfields_out,(int)nrecords_out);
diff --git a/hl/examples/ex_table_12.c b/hl/examples/ex_table_12.c
index b6cc2b4..125b8be 100644
--- a/hl/examples/ex_table_12.c
+++ b/hl/examples/ex_table_12.c
@@ -70,7 +70,6 @@ int main( void )
  int        compress  = 0;
  Particle   fill_data[1] =
  { {"no data",-1,-1, -99.0f, -99.0} };
- herr_t     status;
  hsize_t    nfields_out;
  hsize_t    nrecords_out;
 
@@ -87,15 +86,15 @@ int main( void )
  file_id = H5Fcreate( "ex_table_12.h5", H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT );
 
  /* Make a table */
- status=H5TBmake_table( "Table Title", file_id, TABLE_NAME, NFIELDS, NRECORDS, dst_size,
+ H5TBmake_table( "Table Title", file_id, TABLE_NAME, NFIELDS, NRECORDS, dst_size,
   field_names, dst_offset, field_type,
   chunk_size, fill_data, compress, p_data  );
 
  /* Delete the field */
- status=H5TBdelete_field( file_id, TABLE_NAME, "Pressure" );
+ H5TBdelete_field( file_id, TABLE_NAME, "Pressure" );
 
  /* Get table info  */
- status=H5TBget_table_info (file_id,TABLE_NAME, &nfields_out, &nrecords_out );
+ H5TBget_table_info (file_id,TABLE_NAME, &nfields_out, &nrecords_out );
 
  /* print */
  printf ("Table has %d fields and %d records\n",(int)nfields_out,(int)nrecords_out);
diff --git a/hl/examples/ptExampleFL.c b/hl/examples/ptExampleFL.c
index bbd0bf6..37b5035 100644
--- a/hl/examples/ptExampleFL.c
+++ b/hl/examples/ptExampleFL.c
@@ -13,7 +13,6 @@
  * access to either file, you may request a copy from help at hdfgroup.org.     *
  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
 
-#include "hdf5.h"
 #include "hdf5_hl.h"
 #include <stdlib.h>
 
diff --git a/hl/fortran/CMakeLists.txt b/hl/fortran/CMakeLists.txt
index c26d94c..892169c 100644
--- a/hl/fortran/CMakeLists.txt
+++ b/hl/fortran/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required (VERSION 2.8.11)
+cmake_minimum_required (VERSION 3.1.0)
 PROJECT (HDF5_HL_F90 C CXX Fortran)
 
 #-----------------------------------------------------------------------------
@@ -9,9 +9,9 @@ add_subdirectory (${HDF5_HL_F90_SOURCE_DIR}/src ${HDF5_HL_F90_BINARY_DIR}/src)
 #-----------------------------------------------------------------------------
 # Build the HL Fortran Examples
 #-----------------------------------------------------------------------------
-if (HDF5_BUILD_FORTRAN_EXAMPLES)
+if (HDF5_BUILD_EXAMPLES)
   add_subdirectory (${HDF5_HL_F90_SOURCE_DIR}/examples ${HDF5_HL_F90_BINARY_DIR}/examples)
-endif (HDF5_BUILD_FORTRAN_EXAMPLES)
+endif (HDF5_BUILD_EXAMPLES)
 
 #-----------------------------------------------------------------------------
 # Testing
diff --git a/hl/fortran/Makefile.in b/hl/fortran/Makefile.in
index 8fe9e35..4651579 100644
--- a/hl/fortran/Makefile.in
+++ b/hl/fortran/Makefile.in
@@ -105,7 +105,8 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \
 TESTS =
 subdir = hl/fortran
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \
+	$(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs
@@ -408,7 +409,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@
 AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@
 AM_MAKEFLAGS = @AM_MAKEFLAGS@
 AR = @AR@
-AS = @AS@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -440,7 +440,6 @@ DIRECT_VFD = @DIRECT_VFD@
 DLLTOOL = @DLLTOOL@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
-DYNAMIC_DIRS = @DYNAMIC_DIRS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -459,17 +458,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@
 FCLIBS = @FCLIBS@
 FC_VERSION = @FC_VERSION@
 FGREP = @FGREP@
-FILTERS = @FILTERS@
 FSEARCH_DIRS = @FSEARCH_DIRS@
 GREP = @GREP@
 H5_CFLAGS = @H5_CFLAGS@
 H5_CPPFLAGS = @H5_CPPFLAGS@
 H5_CXXFLAGS = @H5_CXXFLAGS@
-H5_CXX_SHARED = @H5_CXX_SHARED@
 H5_FCFLAGS = @H5_FCFLAGS@
 H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@
 H5_LDFLAGS = @H5_LDFLAGS@
-H5_LONE_COLON = @H5_LONE_COLON@
 H5_VERSION = @H5_VERSION@
 HADDR_T = @HADDR_T@
 HAVE_DMALLOC = @HAVE_DMALLOC@
@@ -492,7 +488,6 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INSTRUMENT = @INSTRUMENT@
 INSTRUMENT_LIBRARY = @INSTRUMENT_LIBRARY@
-LARGEFILE = @LARGEFILE@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
@@ -533,7 +528,6 @@ R_INTEGER = @R_INTEGER@
 R_LARGE = @R_LARGE@
 SEARCH = @SEARCH@
 SED = @SED@
-SETX = @SETX@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIZE_T = @SIZE_T@
@@ -548,10 +542,6 @@ TR = @TR@
 TRACE_API = @TRACE_API@
 UNAME_INFO = @UNAME_INFO@
 USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@
-USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@
-USE_FILTER_NBIT = @USE_FILTER_NBIT@
-USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@
-USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@
 USE_FILTER_SZIP = @USE_FILTER_SZIP@
 USINGMEMCHECKER = @USINGMEMCHECKER@
 VERSION = @VERSION@
@@ -665,8 +655,8 @@ TRACE = perl $(top_srcdir)/bin/trace
 
 # .chkexe files are used to mark tests that have run successfully.
 # .chklog files are output from those tests.
-# *.clog are from the MPE option.
-CHECK_CLEANFILES = *.chkexe *.chklog *.clog
+# *.clog and *.clog2 are from the MPE option.
+CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2
 SUBDIRS = src test
 DIST_SUBDIRS = src test examples
 
diff --git a/hl/fortran/examples/CMakeLists.txt b/hl/fortran/examples/CMakeLists.txt
index 12467b8..bded2d9 100644
--- a/hl/fortran/examples/CMakeLists.txt
+++ b/hl/fortran/examples/CMakeLists.txt
@@ -1,11 +1,10 @@
-cmake_minimum_required (VERSION 2.8.11)
+cmake_minimum_required (VERSION 3.1.0)
 PROJECT (HDF5_HL_F90_EXAMPLES C CXX Fortran)
 
 #-----------------------------------------------------------------------------
 # Setup include Directories
 #-----------------------------------------------------------------------------
 INCLUDE_DIRECTORIES (
-    ${CMAKE_Fortran_MODULE_DIRECTORY}
     ${HDF5_F90_BINARY_DIR}
     ${HDF5_F90_SRC_DIR}/src
 )
@@ -18,12 +17,13 @@ set (examples
 foreach (example ${examples})
   add_executable (hl_f90_ex_${example} ${HDF5_HL_F90_EXAMPLES_SOURCE_DIR}/${example}.f90)
   TARGET_NAMING (hl_f90_ex_${example} ${LIB_TYPE})
-  TARGET_FORTRAN_PROPERTIES (hl_f90_ex_${example} " " " ")
+  TARGET_FORTRAN_PROPERTIES (hl_f90_ex_${example} ${LIB_TYPE} " " " ")
   target_link_libraries (hl_f90_ex_${example} 
       ${HDF5_HL_F90_LIB_TARGET}
       ${HDF5_F90_LIB_TARGET}
       ${HDF5_LIB_TARGET}
   )
+  target_include_directories (hl_f90_ex_${example} PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY})
   set_target_properties (hl_f90_ex_${example} PROPERTIES LINKER_LANGUAGE Fortran)
   set_target_properties (hl_f90_ex_${example} PROPERTIES FOLDER examples/hl/fortran)
 
diff --git a/hl/fortran/examples/Makefile.am b/hl/fortran/examples/Makefile.am
index 91cb7c5..6a5032b 100644
--- a/hl/fortran/examples/Makefile.am
+++ b/hl/fortran/examples/Makefile.am
@@ -54,6 +54,7 @@ endif
 # Tell automake how to install examples
 # Note: no '/' after DESTDIR.  Explanation in commence.am
 EXAMPLEDIR=${DESTDIR}$(exec_prefix)/share/hdf5_examples/hl/fortran
+EXAMPLETOPDIR=${DESTDIR}$(exec_prefix)/share/hdf5_examples/hl
 
 # List dependencies for each example.  Normally, automake would take
 # care of this for us, but if we tell automake about the programs it
diff --git a/hl/fortran/examples/Makefile.in b/hl/fortran/examples/Makefile.in
index 1051658..e229f12 100644
--- a/hl/fortran/examples/Makefile.in
+++ b/hl/fortran/examples/Makefile.in
@@ -106,7 +106,8 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \
 TESTS =
 subdir = hl/fortran/examples
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \
+	$(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs
@@ -351,7 +352,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@
 AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@
 AM_MAKEFLAGS = @AM_MAKEFLAGS@
 AR = @AR@
-AS = @AS@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -383,7 +383,6 @@ DIRECT_VFD = @DIRECT_VFD@
 DLLTOOL = @DLLTOOL@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
-DYNAMIC_DIRS = @DYNAMIC_DIRS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -402,17 +401,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@
 FCLIBS = @FCLIBS@
 FC_VERSION = @FC_VERSION@
 FGREP = @FGREP@
-FILTERS = @FILTERS@
 FSEARCH_DIRS = @FSEARCH_DIRS@
 GREP = @GREP@
 H5_CFLAGS = @H5_CFLAGS@
 H5_CPPFLAGS = @H5_CPPFLAGS@
 H5_CXXFLAGS = @H5_CXXFLAGS@
-H5_CXX_SHARED = @H5_CXX_SHARED@
 H5_FCFLAGS = @H5_FCFLAGS@
 H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@
 H5_LDFLAGS = @H5_LDFLAGS@
-H5_LONE_COLON = @H5_LONE_COLON@
 H5_VERSION = @H5_VERSION@
 HADDR_T = @HADDR_T@
 HAVE_DMALLOC = @HAVE_DMALLOC@
@@ -435,7 +431,6 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INSTRUMENT = @INSTRUMENT@
 INSTRUMENT_LIBRARY = @INSTRUMENT_LIBRARY@
-LARGEFILE = @LARGEFILE@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
@@ -476,7 +471,6 @@ R_INTEGER = @R_INTEGER@
 R_LARGE = @R_LARGE@
 SEARCH = @SEARCH@
 SED = @SED@
-SETX = @SETX@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIZE_T = @SIZE_T@
@@ -491,10 +485,6 @@ TR = @TR@
 TRACE_API = @TRACE_API@
 UNAME_INFO = @UNAME_INFO@
 USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@
-USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@
-USE_FILTER_NBIT = @USE_FILTER_NBIT@
-USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@
-USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@
 USE_FILTER_SZIP = @USE_FILTER_SZIP@
 USINGMEMCHECKER = @USINGMEMCHECKER@
 VERSION = @VERSION@
@@ -608,8 +598,8 @@ TRACE = perl $(top_srcdir)/bin/trace
 
 # .chkexe files are used to mark tests that have run successfully.
 # .chklog files are output from those tests.
-# *.clog are from the MPE option.
-CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.h5
+# *.clog and *.clog2 are from the MPE option.
+CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 *.h5
 
 # Compile parallel fortran examples only if parallel is enabled
 @BUILD_PARALLEL_CONDITIONAL_TRUE at EXAMPLE_PROG_PARA = 
@@ -633,6 +623,7 @@ FORTRAN_API = yes
 # Tell automake how to install examples
 # Note: no '/' after DESTDIR.  Explanation in commence.am
 EXAMPLEDIR = ${DESTDIR}$(exec_prefix)/share/hdf5_examples/hl/fortran
+EXAMPLETOPDIR = ${DESTDIR}$(exec_prefix)/share/hdf5_examples/hl
 
 # Assume that all tests in this directory are examples, and tell
 # conclude.am when to build them.
diff --git a/hl/fortran/src/CMakeLists.txt b/hl/fortran/src/CMakeLists.txt
index c5b2d57..6e6e44a 100644
--- a/hl/fortran/src/CMakeLists.txt
+++ b/hl/fortran/src/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required (VERSION 2.8.11)
+cmake_minimum_required (VERSION 3.1.0)
 PROJECT(HDF5_HL_F90_SRC C CXX Fortran)
 
 #-----------------------------------------------------------------------------
@@ -8,7 +8,6 @@ INCLUDE_DIRECTORIES (
     ${HDF5_HL_SRC_DIR}/src
     ${HDF5_F90_SRC_DIR}/src
     ${HDF5_F90_BINARY_DIR}
-    ${CMAKE_Fortran_MODULE_DIRECTORY}
 )
 
 #-----------------------------------------------------------------------------
@@ -26,7 +25,7 @@ set_source_files_properties (${HDF5_HL_F90_C_SRCS} PROPERTIES LANGUAGE C)
 set (HDF5_HL_F90_HEADERS ${HDF5_HL_F90_SRC_SOURCE_DIR}/H5LTf90proto.h)
 
 add_library (${HDF5_HL_F90_C_LIB_TARGET} ${LIB_TYPE} ${HDF5_HL_F90_C_SRCS} ${HDF5_HL_F90_HEADERS})
-TARGET_C_PROPERTIES (${HDF5_HL_F90_C_LIB_TARGET} " " " ")
+TARGET_C_PROPERTIES (${HDF5_HL_F90_C_LIB_TARGET} ${LIB_TYPE} " " " ")
 target_link_libraries (${HDF5_HL_F90_C_LIB_TARGET} ${HDF5_F90_C_LIB_TARGET} ${HDF5_HL_LIB_TARGET})
 set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_HL_F90_C_LIB_TARGET}")
 H5_SET_LIB_OPTIONS (${HDF5_HL_F90_C_LIB_TARGET} ${HDF5_HL_F90_C_LIB_NAME} ${LIB_TYPE})
@@ -45,6 +44,7 @@ set (HDF5_HL_F90_F_SRCS
     ${HDF5_HL_F90_SRC_SOURCE_DIR}/H5LTff.f90
     ${HDF5_HL_F90_SRC_SOURCE_DIR}/H5IMff.f90
 )
+set_source_files_properties (${HDF5_HL_F90_F_SRCS} PROPERTIES LANGUAGE Fortran)
 
 add_library (${HDF5_HL_F90_LIB_TARGET} ${LIB_TYPE} ${HDF5_HL_F90_F_SRCS})
 set (SHARED_LINK_FLAGS " ")
@@ -52,8 +52,8 @@ if (BUILD_SHARED_LIBS)
   if (WIN32)
     set_property (TARGET ${HDF5_HL_F90_LIB_TARGET} 
       APPEND PROPERTY COMPILE_DEFINITIONS 
-        BUILD_HDF5_DLL
-  )
+        BUILD_HDF5_HL_DLL
+    )
     if (MSVC)
       set (SHARED_LINK_FLAGS "/DLL")
     endif (MSVC)
@@ -65,52 +65,50 @@ if (WIN32)
         HDF5F90_WINDOWS
   )
 endif (WIN32)
-TARGET_FORTRAN_PROPERTIES (${HDF5_HL_F90_LIB_TARGET} " " ${SHARED_LINK_FLAGS})
-set_target_properties (${HDF5_HL_F90_LIB_TARGET} PROPERTIES LINKER_LANGUAGE Fortran)
+TARGET_FORTRAN_PROPERTIES (${HDF5_HL_F90_LIB_TARGET} ${LIB_TYPE} " " ${SHARED_LINK_FLAGS})
 target_link_libraries (${HDF5_HL_F90_LIB_TARGET} ${HDF5_HL_F90_C_LIB_TARGET} ${HDF5_F90_LIB_TARGET})
 set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_HL_F90_LIB_TARGET}")
 H5_SET_LIB_OPTIONS (${HDF5_HL_F90_LIB_TARGET} ${HDF5_HL_F90_LIB_NAME} ${LIB_TYPE})
 set_target_properties (${HDF5_HL_F90_LIB_TARGET} PROPERTIES
     FOLDER libraries/hl/fortran
+    LINKER_LANGUAGE Fortran
     INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>"
+    Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}
 )
 
 #-----------------------------------------------------------------------------
 # Add file(s) to CMake Install
 #-----------------------------------------------------------------------------
+
 if (WIN32)
-  install (
-      FILES
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5ds.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5tb.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5lt.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE}/h5im.mod
-      DESTINATION
-          ${HDF5_INSTALL_INCLUDE_DIR}
-      COMPONENT
-          fortheaders
-  )
+  set (MOD_BUILD_DIR ${CMAKE_Fortran_MODULE_DIRECTORY}/\${BUILD_TYPE})
 else (WIN32)
-  install (
-      FILES
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/h5ds.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/h5tb.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/h5lt.mod
-          ${CMAKE_Fortran_MODULE_DIRECTORY}/h5im.mod
-      DESTINATION
-          ${HDF5_INSTALL_INCLUDE_DIR}
-      COMPONENT
-          fortheaders
-  )
+  set (MOD_BUILD_DIR ${CMAKE_Fortran_MODULE_DIRECTORY})
 endif (WIN32)
 
+set (mod_files
+    ${MOD_BUILD_DIR}/h5ds.mod
+    ${MOD_BUILD_DIR}/h5tb.mod
+    ${MOD_BUILD_DIR}/h5lt.mod
+    ${MOD_BUILD_DIR}/h5im.mod
+)
+
+install (
+    FILES
+        ${mod_files}
+    DESTINATION
+        ${HDF5_INSTALL_INCLUDE_DIR}
+    COMPONENT
+        fortheaders
+)
+
 #-----------------------------------------------------------------------------
 # Add Target(s) to CMake Install for import into other projects
 #-----------------------------------------------------------------------------
 if (HDF5_EXPORTED_TARGETS)
   if (BUILD_SHARED_LIBS)
-    INSTALL_TARGET_PDB (${HDF5_HL_F90_C_LIB_TARGET} ${HDF5_INSTALL_LIB_DIR} hlfortlibraries)
-    #INSTALL_TARGET_PDB (${HDF5_HL_F90_LIB_TARGET} ${HDF5_INSTALL_LIB_DIR} hlfortlibraries)
+    INSTALL_TARGET_PDB (${HDF5_HL_F90_C_LIB_TARGET} ${HDF5_INSTALL_BIN_DIR} hlfortlibraries)
+    #INSTALL_TARGET_PDB (${HDF5_HL_F90_LIB_TARGET} ${HDF5_INSTALL_BIN_DIR} hlfortlibraries)
   endif (BUILD_SHARED_LIBS)
   
   install (
diff --git a/hl/fortran/src/H5DSfc.c b/hl/fortran/src/H5DSfc.c
index 2e38939..1de3fff 100644
--- a/hl/fortran/src/H5DSfc.c
+++ b/hl/fortran/src/H5DSfc.c
@@ -35,7 +35,7 @@
 *-------------------------------------------------------------------------
 */
 int_f
-nh5dsset_scale_c(hid_t_f *dsid, _fcd dimname, int_f *dimnamelen) 
+nh5dsset_scale_c(hid_t_f *dsid, _fcd dimname, size_t_f *dimnamelen) 
 {
   char *c_dimname = NULL;
   int_f ret_value = 0;
@@ -217,7 +217,7 @@ nh5dsis_scale_c( hid_t_f *did, int_f *is_scale)
 *-------------------------------------------------------------------------
 */
 int_f
-nh5dsset_label_c(hid_t_f *did, int_f *idx, _fcd label, int_f *labellen) 
+nh5dsset_label_c(hid_t_f *did, int_f *idx, _fcd label, size_t_f *labellen) 
 {
   char *c_label = NULL;
   int_f ret_value = 0;
@@ -269,14 +269,14 @@ nh5dsget_label_c(hid_t_f *did, int_f *idx, _fcd label, size_t_f *size)
   /*
    * Allocate buffer to hold label
    */
-  if ((c_label = HDmalloc((size_t)*size + 1)) == NULL)
+  if ((c_label = (char *)HDmalloc((size_t)*size + 1)) == NULL)
     HGOTO_DONE(FAIL);
 
   /*
    * call H5DSget_label function.
    */
       
-  if( (size_c = (size_t_f)H5DSget_label( (hid_t)*did, (unsigned)*idx, c_label, (size_t)*size+1)) < 0)
+  if( (size_c = H5DSget_label( (hid_t)*did, (unsigned)*idx, c_label, (size_t)*size+1)) < 0)
     HGOTO_DONE(FAIL)
 
   /*
@@ -287,7 +287,7 @@ nh5dsget_label_c(hid_t_f *did, int_f *idx, _fcd label, size_t_f *size)
 
 done:
      *size = (size_t_f)size_c; /* Don't subtract '1'  because H5DSget_label doesn't include the 
-				* trailing NULL in the length calculation, Ref. HDFFV-7596 */
+                                * trailing NULL in the length calculation, Ref. HDFFV-7596 */
      if(c_label) HDfree(c_label);
      return ret_value;
 
@@ -318,14 +318,14 @@ nh5dsget_scale_name_c(hid_t_f *did, _fcd name, size_t_f *size)
   /*
    * Allocate buffer to hold name
    */
-  if ((c_scale_name = HDmalloc((size_t)*size + 1)) == NULL)
+  if ((c_scale_name = (char *)HDmalloc((size_t)*size + 1)) == NULL)
     HGOTO_DONE(FAIL);
 
   /*
    * call H5DSget_scale_name function.
    */
       
-  if( (size_c = (size_t_f)H5DSget_scale_name( (hid_t)*did, c_scale_name, (size_t)*size+1)) < 0)
+  if( (size_c = H5DSget_scale_name( (hid_t)*did, c_scale_name, (size_t)*size+1)) < 0)
     HGOTO_DONE(FAIL)
 
   /*
diff --git a/hl/fortran/src/H5DSff.f90 b/hl/fortran/src/H5DSff.f90
index c3ec587..04540a6 100644
--- a/hl/fortran/src/H5DSff.f90
+++ b/hl/fortran/src/H5DSff.f90
@@ -48,7 +48,7 @@ CONTAINS
 
 !
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_HL_DLL)
 !DEC$attributes dllexport :: h5dsset_scale_f
 !DEC$endif
 !
@@ -57,19 +57,20 @@ CONTAINS
     CHARACTER(LEN=*), INTENT(in), OPTIONAL :: dimname  ! The dimension name
     INTEGER :: errcode                                 ! Error code
 
-    INTEGER:: dimname_len                              ! length of dimname (if present)
+    INTEGER(SIZE_T) :: dimname_len                     ! length of dimname (if present)
 
     INTERFACE
        INTEGER FUNCTION H5DSset_scale_c(dsid, dimname, dimname_len )
 
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DSSET_SCALE_C'::h5dsset_scale_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dimname  
          INTEGER(hid_t),   INTENT(in) :: dsid     ! The dataset to be made a Dimension Scale
          CHARACTER(LEN=*), INTENT(in) :: dimname  ! The dimension name
-         INTEGER, INTENT(in) :: dimname_len
+         INTEGER(SIZE_T),  INTENT(in) :: dimname_len
        END FUNCTION H5DSset_scale_c
     END INTERFACE
 
@@ -77,7 +78,7 @@ CONTAINS
        dimname_len = LEN(dimname)
        errcode = H5DSset_scale_c(dsid, dimname, dimname_len )
     ELSE
-       errcode = H5DSset_scale_c(dsid, " ", 0 )
+       errcode = H5DSset_scale_c(dsid, " ", INT(0,SIZE_T) )
     ENDIF
 
   END SUBROUTINE H5DSset_scale_f
@@ -105,7 +106,7 @@ CONTAINS
 
 !
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_HL_DLL)
 !DEC$attributes dllexport :: h5dsattach_scale_f
 !DEC$endif
 !
@@ -119,6 +120,7 @@ CONTAINS
        INTEGER FUNCTION  H5DSattach_scale_c(did, dsid, idx )
          
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DSATTACH_SCALE_C':: h5dsattach_scale_c
          !DEC$ENDIF
@@ -157,7 +159,7 @@ CONTAINS
     
 !
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_HL_DLL)
 !DEC$attributes dllexport :: h5dsdetach_scale_f
 !DEC$endif
 !
@@ -171,6 +173,7 @@ CONTAINS
        INTEGER FUNCTION  H5DSdetach_scale_c(did, dsid, idx )
          
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DSDETACH_SCALE_C':: h5dsdetach_scale_c
          !DEC$ENDIF
@@ -210,7 +213,7 @@ CONTAINS
     
 !
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_HL_DLL)
 !DEC$attributes dllexport :: h5dsis_attached_f
 !DEC$endif
 !
@@ -227,6 +230,7 @@ CONTAINS
        INTEGER FUNCTION H5DSis_attached_c(did, dsid, idx, c_is_attached )
          
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DSIS_ATTACHED_C':: h5dsis_attached_c
          !DEC$ENDIF
@@ -277,7 +281,7 @@ CONTAINS
     
 !
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_HL_DLL)
 !DEC$attributes dllexport :: h5dsis_scale_f
 !DEC$endif
 !
@@ -291,6 +295,7 @@ CONTAINS
        INTEGER FUNCTION  H5DSis_scale_c(did,c_is_scale)
          
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DSIS_SCALE_C':: h5dsis_scale_c
          !DEC$ENDIF
@@ -333,7 +338,7 @@ CONTAINS
 
 !
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_HL_DLL)
 !DEC$attributes dllexport :: h5dsset_label_f
 !DEC$endif
 !
@@ -343,13 +348,14 @@ CONTAINS
     CHARACTER(LEN=*), INTENT(in) :: label  ! The label
     INTEGER :: errcode                     ! Error code
 
-    INTEGER :: label_len  ! Length of label
+    INTEGER(SIZE_T) :: label_len  ! Length of label
     INTEGER :: c_idx
 
     INTERFACE
        INTEGER FUNCTION H5DSset_label_c(did, idx, label, label_len)
 
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DSSET_LABEL_C'::h5dsset_label_c
          !DEC$ENDIF
@@ -357,7 +363,7 @@ CONTAINS
          INTEGER(hid_t),   INTENT(in) :: did        ! The dataset
          INTEGER       ,   INTENT(in) :: idx        ! The dimension
          CHARACTER(LEN=*), INTENT(in) :: label      ! The label
-         INTEGER,          INTENT(in) :: label_len  ! Length of label
+         INTEGER(SIZE_T),  INTENT(in) :: label_len  ! Length of label
        END FUNCTION H5DSset_label_c
     END INTERFACE
 
@@ -391,7 +397,7 @@ CONTAINS
 
 !
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_HL_DLL)
 !DEC$attributes dllexport :: h5dsget_label_f
 !DEC$endif
 !
@@ -407,6 +413,7 @@ CONTAINS
        INTEGER FUNCTION H5DSget_label_c(did, idx, label, size)
 
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DSGET_LABEL_C'::h5dsget_label_c
          !DEC$ENDIF
@@ -448,7 +455,7 @@ CONTAINS
 
 !
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_HL_DLL)
 !DEC$attributes dllexport :: h5dsget_scale_name_f
 !DEC$endif
 !
@@ -462,6 +469,7 @@ CONTAINS
        INTEGER FUNCTION H5DSget_scale_name_c(did, name, size)
 
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DSGET_SCALE_NAME_C'::h5dsget_scale_name_c
          !DEC$ENDIF
@@ -499,7 +507,7 @@ CONTAINS
 
 !
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_HL_DLL)
 !DEC$attributes dllexport :: h5dsget_num_scales_f
 !DEC$endif
 !
@@ -513,6 +521,7 @@ CONTAINS
        INTEGER FUNCTION  H5DSget_num_scales_c(did, idx, num_scales)
          
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5DSGET_NUM_SCALES_C':: h5dsget_num_scales_c
          !DEC$ENDIF
diff --git a/hl/fortran/src/H5IMcc.c b/hl/fortran/src/H5IMcc.c
index 8f0e29e..c1bc3af 100644
--- a/hl/fortran/src/H5IMcc.c
+++ b/hl/fortran/src/H5IMcc.c
@@ -470,7 +470,7 @@ herr_t H5IM_get_palette(hid_t loc_id,
  hid_t      attr_space_id;
  hid_t      attr_class;
  hssize_t   n_refs;
- hsize_t    dim_ref;
+ size_t    dim_ref;
  hobj_ref_t *refbuf;     /* buffer to read references */
  hid_t      pal_id;
 
@@ -503,9 +503,9 @@ herr_t H5IM_get_palette(hid_t loc_id,
 
    n_refs = H5Sget_simple_extent_npoints(attr_space_id);
 
-   dim_ref = n_refs;
+   dim_ref = (size_t)n_refs;
 
-   refbuf = malloc(sizeof(hobj_ref_t) * (int)dim_ref);
+   refbuf = (hobj_ref_t *)HDmalloc(sizeof(hobj_ref_t) * dim_ref);
 
    if(H5Aread(attr_id, attr_type, refbuf) < 0)
     goto out;
diff --git a/hl/fortran/src/H5IMfc.c b/hl/fortran/src/H5IMfc.c
index 818096e..04e41dc 100644
--- a/hl/fortran/src/H5IMfc.c
+++ b/hl/fortran/src/H5IMfc.c
@@ -40,7 +40,7 @@
 
 int_f
 nh5immake_image_8bit_c (hid_t_f *loc_id,
-                        int_f *namelen,
+                        size_t_f *namelen,
                         _fcd name,
                         hsize_t_f *width,
                         hsize_t_f *height,
@@ -50,15 +50,13 @@ nh5immake_image_8bit_c (hid_t_f *loc_id,
     herr_t  ret;
     hid_t   c_loc_id;
     char    *c_name = NULL;
-    int     c_namelen;
     hsize_t w = (hsize_t)*width;
     hsize_t h = (hsize_t)*height;
 
     /*
     * convert FORTRAN name to C name
     */
-    c_namelen = (int)*namelen;
-    c_name = (char *)HD5f2cstring(name, c_namelen);
+    c_name = (char *)HD5f2cstring(name, (size_t)*namelen);
     if (c_name == NULL)
         goto done;
 
@@ -103,30 +101,25 @@ done:
 
 int_f
 nh5imread_image_c (hid_t_f *loc_id,
-                   int_f *namelen,
+                   size_t_f *namelen,
                    _fcd name,
                    int_f *buf)
 {
     int     ret_value = -1;
     herr_t  ret;
-    hid_t   c_loc_id;
     char    *c_name = NULL;
-    int     c_namelen;
 
     /*
     * convert FORTRAN name to C name
     */
-    c_namelen = (int)*namelen;
-    c_name = (char *)HD5f2cstring(name, c_namelen);
+    c_name = (char *)HD5f2cstring(name, (size_t)*namelen);
     if (c_name == NULL)
         goto done;
 
     /*
     * call H5IMread_image function.
     */
-    c_loc_id = (hid_t)*loc_id;
-
-    ret = H5IMread_imagef(c_loc_id,c_name,buf);
+    ret = H5IMread_imagef((hid_t)*loc_id,c_name,buf);
 
     if (ret < 0)
         goto done;
@@ -161,9 +154,9 @@ done:
 
 int_f
 nh5immake_image_24bit_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
-                         int_f *ilen,
+                         size_t_f *ilen,
                          _fcd il,
                          hsize_t_f *width,
                          hsize_t_f *height,
@@ -173,22 +166,18 @@ nh5immake_image_24bit_c (hid_t_f *loc_id,
     herr_t  ret;
     hid_t   c_loc_id;
     char    *c_name = NULL;
-    int     c_namelen;
     char    *c_il = NULL;
-    int     c_ilen;
     hsize_t w = (hsize_t)*width;
     hsize_t h = (hsize_t)*height;
 
     /*
     * convert FORTRAN name to C name
     */
-    c_namelen = *namelen;
-    c_name = (char *)HD5f2cstring(name, c_namelen);
+    c_name = (char *)HD5f2cstring(name, (size_t)*namelen);
     if (c_name == NULL)
         goto done;
 
-    c_ilen = *ilen;
-    c_il = (char *)HD5f2cstring(il, c_ilen);
+    c_il = (char *)HD5f2cstring(il, (size_t)*ilen);
     if (c_il == NULL)
         goto done;
 
@@ -197,7 +186,7 @@ nh5immake_image_24bit_c (hid_t_f *loc_id,
     */
     c_loc_id = (hid_t)*loc_id;
 
-    ret = H5IMmake_image_24bitf(c_loc_id,c_name,w,h,c_il,buf);
+    ret = H5IMmake_image_24bitf(c_loc_id,c_name,w,h,c_il,(int_f *)buf);
 
     if (ret < 0)
         goto done;
@@ -234,20 +223,19 @@ done:
 
 int_f
 nh5imget_image_info_c(hid_t_f *loc_id,
-                      int_f *namelen,
+                      size_t_f *namelen,
                       _fcd name,
                       hsize_t_f *width,
                       hsize_t_f *height,
                       hsize_t_f *planes,
                       hsize_t_f *npals,
-                      int_f *ilen,
+                      size_t_f *ilen,
                       _fcd interlace)
 {
     int          ret_value = -1;
     herr_t       ret;
     hid_t        c_loc_id;
     char         *c_name = NULL;
-    int          c_namelen;
     hsize_t      c_width;
     hsize_t      c_height;
     hsize_t      c_planes;
@@ -257,15 +245,14 @@ nh5imget_image_info_c(hid_t_f *loc_id,
     /*
     * convert FORTRAN name to C name
     */
-    c_namelen = *namelen;
-    c_name = (char *)HD5f2cstring(name, c_namelen);
+    c_name = (char *)HD5f2cstring(name, (size_t)*namelen);
     if (c_name == NULL)
         goto done;
 
     /*
     * allocate buffer to hold name of an attribute
     */
-    if ((c_buf = malloc((size_t)*ilen +1)) == NULL)
+    if ((c_buf = (char *)HDmalloc((size_t)*ilen +1)) == NULL)
         goto done;
 
     /*
@@ -321,19 +308,17 @@ done:
 
 int_f
 nh5imis_image_c(hid_t_f *loc_id,
-                int_f *namelen,
+                size_t_f *namelen,
                 _fcd name)
 {
     hid_t   c_loc_id;
     char    *c_name = NULL;
-    int     c_namelen;
     herr_t  ret;
 
     /*
     * convert FORTRAN name to C name
     */
-    c_namelen = *namelen;
-    c_name = (char *)HD5f2cstring(name, c_namelen);
+    c_name = (char *)HD5f2cstring(name, (size_t)*namelen);
     if (c_name == NULL) return -1;
 
     /*
@@ -372,7 +357,7 @@ nh5imis_image_c(hid_t_f *loc_id,
 
 int_f
 nh5immake_palette_c (hid_t_f *loc_id,
-                     int_f *namelen,
+                     size_t_f *namelen,
                      _fcd name,
                      hsize_t_f *dims,
                      void *buf)
@@ -386,16 +371,16 @@ nh5immake_palette_c (hid_t_f *loc_id,
     /*
     * convert FORTRAN name to C name
     */
-    if(NULL == (c_name = (char *)HD5f2cstring(name, (int)*namelen)))
+    if(NULL == (c_name = (char *)HD5f2cstring(name, (size_t)*namelen)))
         HGOTO_DONE(FAIL)
 
     for(i = 0; i < rank ; i++)
-        c_dims[i] =  dims[i];
+      c_dims[i] =  (hsize_t)dims[i];
 
     /*
     * call H5IMmake_palette function.
     */
-    if(H5IMmake_palettef((hid_t)*loc_id, c_name, c_dims, buf) < 0)
+    if(H5IMmake_palettef((hid_t)*loc_id, c_name, c_dims, (int_f *)buf) < 0)
         HGOTO_DONE(FAIL)
 
 done:
@@ -427,9 +412,9 @@ done:
 
 int_f
 nh5imlink_palette_c (hid_t_f *loc_id,
-                     int_f *namelen,
+                     size_t_f *namelen,
                      _fcd name,
-                     int_f *ilen,
+                     size_t_f *ilen,
                      _fcd pal_name)
 {
     int     ret_value = -1;
@@ -437,19 +422,15 @@ nh5imlink_palette_c (hid_t_f *loc_id,
     hid_t   c_loc_id;
     char    *c_name = NULL;
     char    *c_namepal = NULL;
-    int     c_namelen;
-    int     c_namelenpal;
 
     /*
     * convert FORTRAN name to C name
     */
-    c_namelen = *namelen;
-    c_name = (char *)HD5f2cstring(name, c_namelen);
+    c_name = (char *)HD5f2cstring(name, (size_t)*namelen);
     if (c_name == NULL)
         goto done;
 
-    c_namelenpal = *ilen;
-    c_namepal = (char *)HD5f2cstring(pal_name, c_namelenpal);
+    c_namepal = (char *)HD5f2cstring(pal_name, (size_t)*ilen);
     if (c_namepal == NULL)
         goto done;
 
@@ -496,9 +477,9 @@ done:
 
 int_f
 nh5imunlink_palette_c (hid_t_f *loc_id,
-                       int_f *namelen,
+                       size_t_f *namelen,
                        _fcd name,
-                       int_f *ilen,
+                       size_t_f *ilen,
                        _fcd pal_name)
 {
     int     ret_value = -1;
@@ -506,20 +487,15 @@ nh5imunlink_palette_c (hid_t_f *loc_id,
     hid_t   c_loc_id;
     char    *c_name = NULL;
     char    *c_namepal = NULL;
-    int     c_namelen;
-    int     c_namelenpal;
-
 
     /*
     * convert FORTRAN name to C name
     */
-    c_namelen = *namelen;
-    c_name = (char *)HD5f2cstring(name, c_namelen);
+    c_name = (char *)HD5f2cstring(name, (size_t)*namelen);
     if (c_name == NULL)
         goto done;
 
-    c_namelenpal = *ilen;
-    c_namepal = (char *)HD5f2cstring(pal_name, c_namelenpal);
+    c_namepal = (char *)HD5f2cstring(pal_name, (size_t)*ilen);
     if (c_namepal == NULL)
         goto done;
 
@@ -567,7 +543,7 @@ done:
 
 int_f
 nh5imget_npalettes_c(hid_t_f *loc_id,
-                     int_f *namelen,
+                     size_t_f *namelen,
                      _fcd name,
                      hsize_t_f *npals)
 {
@@ -575,14 +551,12 @@ nh5imget_npalettes_c(hid_t_f *loc_id,
     herr_t       ret;
     hid_t        c_loc_id;
     char         *c_name = NULL;
-    int          c_namelen;
     hssize_t     c_npals;
 
     /*
     * convert FORTRAN name to C name
     */
-    c_namelen = *namelen;
-    c_name = (char *)HD5f2cstring(name, c_namelen);
+    c_name = (char *)HD5f2cstring(name, (size_t)*namelen);
     if (c_name == NULL)
         goto done;
 
@@ -631,7 +605,7 @@ done:
 
 int_f
 nh5imget_palette_info_c(hid_t_f *loc_id,
-                        int_f *namelen,
+                        size_t_f *namelen,
                         _fcd name,
                         int_f *pal_number,
                         hsize_t_f *dims)
@@ -640,15 +614,13 @@ nh5imget_palette_info_c(hid_t_f *loc_id,
     herr_t       ret;
     hid_t        c_loc_id;
     char         *c_name = NULL;
-    int          c_namelen;
     hsize_t      c_dims[2];
     int          i;
 
     /*
     * convert FORTRAN name to C name
     */
-    c_namelen = *namelen;
-    c_name = (char *)HD5f2cstring(name, c_namelen);
+    c_name = (char *)HD5f2cstring(name, (size_t)*namelen);
     if (c_name == NULL)
         goto done;
 
@@ -700,7 +672,7 @@ done:
 
 int_f
 nh5imget_palette_c(hid_t_f *loc_id,
-                   int_f *namelen,
+                   size_t_f *namelen,
                    _fcd name,
                    int_f *pal_number,
                    void *buf)
@@ -709,13 +681,11 @@ nh5imget_palette_c(hid_t_f *loc_id,
     herr_t       ret;
     hid_t        c_loc_id;
     char         *c_name = NULL;
-    int          c_namelen;
 
     /*
     * convert FORTRAN name to C name
     */
-    c_namelen = *namelen;
-    c_name = (char *)HD5f2cstring(name, c_namelen);
+    c_name = (char *)HD5f2cstring(name, (size_t)*namelen);
     if (c_name == NULL)
          goto done;
 
@@ -724,7 +694,7 @@ nh5imget_palette_c(hid_t_f *loc_id,
     */
     c_loc_id = (hid_t)*loc_id;
 
-    ret = H5IMget_palettef(c_loc_id,c_name,*pal_number,buf);
+    ret = H5IMget_palettef(c_loc_id,c_name,*pal_number,(int_f *)buf);
 
     if (ret < 0)
          goto done;
@@ -760,19 +730,17 @@ done:
 
 int_f
 nh5imis_palette_c(hid_t_f *loc_id,
-                  int_f *namelen,
+                  size_t_f *namelen,
                   _fcd name)
 {
     hid_t   c_loc_id;
     char    *c_name;
-    int     c_namelen;
     herr_t  ret;
 
     /*
     * convert FORTRAN name to C name
     */
-    c_namelen = *namelen;
-    c_name = (char *)HD5f2cstring(name, c_namelen);
+    c_name = (char *)HD5f2cstring(name, (size_t)*namelen);
     if (c_name == NULL) return -1;
 
     /*
diff --git a/hl/fortran/src/H5IMff.f90 b/hl/fortran/src/H5IMff.f90
index d78dc06..50c6d8b 100644
--- a/hl/fortran/src/H5IMff.f90
+++ b/hl/fortran/src/H5IMff.f90
@@ -51,7 +51,7 @@ subroutine h5immake_image_8bit_f(loc_id,&
 
 !
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_HL_DLL)
 !DEC$attributes dllexport :: h5immake_image_8bit_f
 !DEC$endif
 !
@@ -62,21 +62,22 @@ subroutine h5immake_image_8bit_f(loc_id,&
  integer(hsize_t), intent(in) :: height             ! height of image
  integer, intent(in), dimension(*) :: buf           ! buffer
  integer :: errcode                                 ! error code
- integer :: namelen                                 ! name length
+ INTEGER(size_t) :: namelen                         ! name length
 
  interface
   integer function h5immake_image_8bit_c(loc_id,namelen,dset_name,width,height,buf)
   use h5global
+  IMPLICIT NONE
   !DEC$IF DEFINED(HDF5F90_WINDOWS)
   !DEC$ATTRIBUTES C,reference,decorate,alias:'H5IMMAKE_IMAGE_8BIT_C'::h5immake_image_8bit_c
   !DEC$ENDIF
   !DEC$ATTRIBUTES reference :: dset_name
   integer(hid_t),   intent(in) :: loc_id                  ! file or group identifier
-  integer :: namelen                                      ! lenght of name buffer
+  integer(size_t) :: namelen                              ! length of name buffer
   character(len=*), intent(in) :: dset_name               ! name of the dataset
   integer(hsize_t), intent(in) :: width                   ! width of image
   integer(hsize_t), intent(in) :: height                  ! height of image
-  integer , intent(in), dimension(*) :: buf               ! buffer
+  integer         , intent(in), dimension(*) :: buf       ! buffer
   end function h5immake_image_8bit_c
  end interface
 
@@ -114,7 +115,7 @@ subroutine h5imread_image_f(loc_id,&
 
 !
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_HL_DLL)
 !DEC$attributes dllexport :: h5imread_image_f
 !DEC$endif
 !
@@ -122,17 +123,18 @@ subroutine h5imread_image_f(loc_id,&
  character(len=*), intent(in) :: dset_name          ! name of the dataset
  integer, intent(inout), dimension(*) :: buf        ! buffer
  integer :: errcode                                 ! error code
- integer :: namelen                                 ! name length
+ INTEGER(size_t) :: namelen                         ! name length
 
  interface
   integer function h5imread_image_c(loc_id,namelen,dset_name,buf)
   use h5global
+  IMPLICIT NONE
   !DEC$IF DEFINED(HDF5F90_WINDOWS)
   !DEC$ATTRIBUTES C,reference,decorate,alias:'H5IMREAD_IMAGE_C'::h5imread_image_c
   !DEC$ENDIF
   !DEC$ATTRIBUTES reference :: dset_name
   integer(hid_t),   intent(in) :: loc_id                  ! file or group identifier
-  integer :: namelen                                      ! lenght of name buffer
+  integer(size_t) :: namelen                              ! length of name buffer
   character(len=*), intent(in) :: dset_name               ! name of the dataset
   integer, intent(inout), dimension(*) :: buf             ! buffer
   end function h5imread_image_c
@@ -173,7 +175,7 @@ subroutine h5immake_image_24bit_f(loc_id,&
 
 !
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_HL_DLL)
 !DEC$attributes dllexport :: h5immake_image_24bit_f
 !DEC$endif
 !
@@ -185,12 +187,13 @@ subroutine h5immake_image_24bit_f(loc_id,&
  character(len=*), intent(in) :: il                 ! interlace
  integer, intent(in), dimension(*) :: buf           ! buffer
  integer :: errcode                                 ! error code
- integer :: namelen                                 ! name length
- integer :: ilen                                    ! name length
+ INTEGER(size_t) :: namelen                                 ! name length
+ integer(size_t) :: ilen                                    ! name length
 
  interface
   integer function h5immake_image_24bit_c(loc_id,namelen,dset_name,ilen,il,width,height,buf)
   use h5global
+  IMPLICIT NONE
   !DEC$IF DEFINED(HDF5F90_WINDOWS)
   !DEC$ATTRIBUTES C,reference,decorate,alias:'H5IMMAKE_IMAGE_24BIT_C'::h5immake_image_24bit_c
   !DEC$ENDIF
@@ -202,8 +205,8 @@ subroutine h5immake_image_24bit_f(loc_id,&
   integer(hsize_t), intent(in) :: height                  ! height of image
   character(len=*), intent(in) :: il                      ! interlace
   integer, intent(in), dimension(*) :: buf                ! buffer
-  integer :: namelen                                      ! lenght of name buffer
-  integer :: ilen                                         ! name length
+  integer(size_t) :: namelen                                      ! length of name buffer
+  integer(size_t) :: ilen                                         ! name length
 
   end function h5immake_image_24bit_c
  end interface
@@ -246,7 +249,7 @@ subroutine h5imget_image_info_f(loc_id,&
 
 !
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_HL_DLL)
 !DEC$attributes dllexport :: h5imget_image_info_f
 !DEC$endif
 !
@@ -259,12 +262,13 @@ subroutine h5imget_image_info_f(loc_id,&
  integer(hsize_t), intent(inout) :: npals           ! palettes
  character(len=*), intent(inout) :: interlace       ! interlace
  integer :: errcode                                 ! error code
- integer :: namelen                                 ! name length
- integer :: ilen                                    ! name length
+ integer(size_t) :: namelen                                 ! name length
+ integer(size_t) :: ilen                                    ! name length
 
  interface
   integer function h5imget_image_info_c(loc_id,namelen,dset_name,width,height,planes,npals,ilen,interlace)
   use h5global
+  IMPLICIT NONE
   !DEC$IF DEFINED(HDF5F90_WINDOWS)
   !DEC$ATTRIBUTES C,reference,decorate,alias:'H5IMGET_IMAGE_INFO_C'::h5imget_image_info_c
   !DEC$ENDIF
@@ -277,8 +281,8 @@ subroutine h5imget_image_info_f(loc_id,&
   integer(hsize_t), intent(inout) :: planes          ! color planes
   integer(hsize_t), intent(inout) :: npals           ! palettes
   character(len=*), intent(inout) :: interlace       ! interlace
-  integer :: namelen                                 ! name length
-  integer :: ilen                                    ! name length
+  integer(size_t) :: namelen                                 ! name length
+  integer(size_t) :: ilen                                    ! name length
   end function h5imget_image_info_c
  end interface
 
@@ -313,7 +317,7 @@ integer function h5imis_image_f(loc_id,&
 
 !
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_HL_DLL)
 !DEC$attributes dllexport :: h5imis_image_f
 !DEC$endif
 !
@@ -321,17 +325,18 @@ integer function h5imis_image_f(loc_id,&
  integer(hid_t),   intent(in) :: loc_id             ! file or group identifier
  character(len=*), intent(in) :: dset_name          ! name of the dataset
  integer :: errcode                                 ! error code
- integer :: namelen                                 ! name length
+ integer(size_t) :: namelen                                 ! name length
 
  interface
   integer function h5imis_image_c(loc_id,namelen,dset_name)
   use h5global
+  IMPLICIT NONE
   !DEC$IF DEFINED(HDF5F90_WINDOWS)
   !DEC$ATTRIBUTES C,reference,decorate,alias:'H5IMIS_IMAGE_C'::h5imis_image_c
   !DEC$ENDIF
   !DEC$ATTRIBUTES reference :: dset_name
   integer(hid_t),   intent(in) :: loc_id                  ! file or group identifier
-  integer :: namelen                                      ! lenght of name buffer
+  integer(size_t) :: namelen                                      ! length of name buffer
   character(len=*), intent(in) :: dset_name               ! name of the dataset
   end function h5imis_image_c
  end interface
@@ -370,7 +375,7 @@ subroutine h5immake_palette_f(loc_id,&
 
 !
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_HL_DLL)
 !DEC$attributes dllexport :: h5immake_palette_f
 !DEC$endif
 !
@@ -380,17 +385,18 @@ subroutine h5immake_palette_f(loc_id,&
  integer(hsize_t), intent(in), dimension(*) :: pal_dims ! dimensions
  integer, intent(in), dimension(*) :: buf               ! buffer
  integer :: errcode                                     ! error code
- integer :: namelen                                     ! name length
+ integer(size_t) :: namelen                                     ! name length
 
  interface
   integer function h5immake_palette_c(loc_id,namelen,dset_name,pal_dims,buf)
   use h5global
+  IMPLICIT NONE
   !DEC$IF DEFINED(HDF5F90_WINDOWS)
   !DEC$ATTRIBUTES C,reference,decorate,alias:'H5IMMAKE_PALETTE_C'::h5immake_palette_c
   !DEC$ENDIF
   !DEC$ATTRIBUTES reference :: dset_name
   integer(hid_t),   intent(in) :: loc_id                  ! file or group identifier
-  integer :: namelen                                      ! lenght of name buffer
+  integer(size_t) :: namelen                                      ! length of name buffer
   character(len=*), intent(in) :: dset_name               ! name of the dataset
   integer(hsize_t), intent(in), dimension(*) :: pal_dims  ! dimensions
   integer, intent(in), dimension(*) :: buf                ! buffer
@@ -430,7 +436,7 @@ subroutine h5imlink_palette_f(loc_id,&
 
 !
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_HL_DLL)
 !DEC$attributes dllexport :: h5imlink_palette_f
 !DEC$endif
 !
@@ -438,12 +444,13 @@ subroutine h5imlink_palette_f(loc_id,&
  character(len=*), intent(in) :: dset_name          ! name of the dataset
  character(len=*), intent(in) :: pal_name           ! palette name
  integer :: errcode                                 ! error code
- integer :: namelen                                 ! name length
- integer :: ilen                                    ! name length
+ integer(size_t) :: namelen                                 ! name length
+ integer(size_t) :: ilen                                    ! name length
 
  interface
   integer function h5imlink_palette_c(loc_id,namelen,dset_name,ilen,pal_name)
   use h5global
+  IMPLICIT NONE
   !DEC$IF DEFINED(HDF5F90_WINDOWS)
   !DEC$ATTRIBUTES C,reference,decorate,alias:'H5IMLINK_PALETTE_C'::h5imlink_palette_c
   !DEC$ENDIF
@@ -452,8 +459,8 @@ subroutine h5imlink_palette_f(loc_id,&
   integer(hid_t),   intent(in) :: loc_id             ! file or group identifier
   character(len=*), intent(in) :: dset_name          ! name of the dataset
   character(len=*), intent(in) :: pal_name           ! palette name
-  integer :: namelen                                 ! name length
-  integer :: ilen                                    ! name length
+  integer(size_t) :: namelen                                 ! name length
+  integer(size_t) :: ilen                                    ! name length
   end function h5imlink_palette_c
  end interface
 
@@ -490,7 +497,7 @@ subroutine h5imunlink_palette_f(loc_id,&
 
 !
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_HL_DLL)
 !DEC$attributes dllexport :: h5imunlink_palette_f
 !DEC$endif
 !
@@ -500,12 +507,13 @@ subroutine h5imunlink_palette_f(loc_id,&
  character(len=*), intent(in) :: dset_name          ! name of the dataset
  character(len=*), intent(in) :: pal_name           ! palette name
  integer :: errcode                                 ! error code
- integer :: namelen                                 ! name length
- integer :: ilen                                    ! name length
+ integer(size_t) :: namelen                                 ! name length
+ integer(size_t) :: ilen                                    ! name length
 
  interface
   integer function h5imunlink_palette_c(loc_id,namelen,dset_name,ilen,pal_name)
   use h5global
+  IMPLICIT NONE
   !DEC$IF DEFINED(HDF5F90_WINDOWS)
   !DEC$ATTRIBUTES C,reference,decorate,alias:'H5IMUNLINK_PALETTE_C'::h5imunlink_palette_c
   !DEC$ENDIF
@@ -514,8 +522,8 @@ subroutine h5imunlink_palette_f(loc_id,&
   integer(hid_t),   intent(in) :: loc_id             ! file or group identifier
   character(len=*), intent(in) :: dset_name          ! name of the dataset
   character(len=*), intent(in) :: pal_name           ! palette name
-  integer :: namelen                                 ! name length
-  integer :: ilen                                    ! name length
+  integer(size_t) :: namelen                                 ! name length
+  integer(size_t) :: ilen                                    ! name length
   end function h5imunlink_palette_c
  end interface
 
@@ -553,7 +561,7 @@ subroutine h5imget_npalettes_f(loc_id,&
 
 !
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_HL_DLL)
 !DEC$attributes dllexport :: h5imget_npalettes_f
 !DEC$endif
 !
@@ -562,11 +570,12 @@ subroutine h5imget_npalettes_f(loc_id,&
  character(len=*), intent(in) :: dset_name          ! name of the dataset
  integer(hsize_t), intent(inout) :: npals           ! palettes
  integer :: errcode                                 ! error code
- integer :: namelen                                 ! name length
+ integer(size_t) :: namelen                                 ! name length
 
  interface
   integer function h5imget_npalettes_c(loc_id,namelen,dset_name,npals)
   use h5global
+  IMPLICIT NONE
   !DEC$IF DEFINED(HDF5F90_WINDOWS)
   !DEC$ATTRIBUTES C,reference,decorate,alias:'H5IMGET_NPALETTES_C'::h5imget_npalettes_c
   !DEC$ENDIF
@@ -574,7 +583,7 @@ subroutine h5imget_npalettes_f(loc_id,&
   integer(hid_t),   intent(in) :: loc_id             ! file or group identifier
   character(len=*), intent(in) :: dset_name          ! name of the dataset
   integer(hsize_t), intent(inout) :: npals           ! palettes
-  integer :: namelen                                 ! name length
+  integer(size_t) :: namelen                                 ! name length
   end function h5imget_npalettes_c
  end interface
 
@@ -612,7 +621,7 @@ subroutine h5imget_palette_info_f(loc_id,&
 
 !
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_HL_DLL)
 !DEC$attributes dllexport :: h5imget_palette_info_f
 !DEC$endif
 !
@@ -622,11 +631,12 @@ subroutine h5imget_palette_info_f(loc_id,&
  integer, intent(in) :: pal_number                     ! palette number
  integer(hsize_t), dimension(*), intent(inout) :: dims ! dimensions
  integer :: errcode                                    ! error code
- integer :: namelen                                    ! name length
+ integer(size_t) :: namelen                                    ! name length
 
  interface
   integer function h5imget_palette_info_c(loc_id,namelen,dset_name,pal_number,dims)
   use h5global
+  IMPLICIT NONE
   !DEC$IF DEFINED(HDF5F90_WINDOWS)
   !DEC$ATTRIBUTES C,reference,decorate,alias:'H5IMGET_PALETTE_INFO_C'::h5imget_palette_info_c
   !DEC$ENDIF
@@ -635,7 +645,7 @@ subroutine h5imget_palette_info_f(loc_id,&
   character(len=*), intent(in) :: dset_name             ! name of the dataset
   integer, intent(in) :: pal_number                     ! palette number
   integer(hsize_t), dimension(*), intent(inout) :: dims ! dimensions
-  integer :: namelen                                    ! name length
+  integer(size_t) :: namelen                                    ! name length
   end function h5imget_palette_info_c
  end interface
 
@@ -674,7 +684,7 @@ subroutine h5imget_palette_f(loc_id,&
 
 !
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_HL_DLL)
 !DEC$attributes dllexport :: h5imget_palette_f
 !DEC$endif
 !
@@ -684,17 +694,18 @@ subroutine h5imget_palette_f(loc_id,&
  integer, intent(in) :: pal_number                  ! palette number
  integer, intent(inout), dimension(*) :: buf        ! buffer
  integer :: errcode                                 ! error code
- integer :: namelen                                 ! name length
+ integer(size_t) :: namelen                                 ! name length
 
  interface
   integer function h5imget_palette_c(loc_id,namelen,dset_name,pal_number,buf)
   use h5global
+  IMPLICIT NONE
   !DEC$IF DEFINED(HDF5F90_WINDOWS)
   !DEC$ATTRIBUTES C,reference,decorate,alias:'H5IMGET_PALETTE_C'::h5imget_palette_c
   !DEC$ENDIF
   !DEC$ATTRIBUTES reference :: dset_name
   integer(hid_t),   intent(in) :: loc_id                  ! file or group identifier
-  integer :: namelen                                      ! lenght of name buffer
+  integer(size_t) :: namelen                                      ! length of name buffer
   character(len=*), intent(in) :: dset_name               ! name of the dataset
   integer, intent(in) :: pal_number                       ! palette number
   integer, intent(inout), dimension(*) :: buf             ! buffer
@@ -731,7 +742,7 @@ integer function h5imis_palette_f(loc_id,&
 
 !
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_HL_DLL)
 !DEC$attributes dllexport :: h5imis_palette_f
 !DEC$endif
 !
@@ -739,17 +750,18 @@ integer function h5imis_palette_f(loc_id,&
  integer(hid_t),   intent(in) :: loc_id             ! file or group identifier
  character(len=*), intent(in) :: dset_name          ! name of the dataset
  integer :: errcode                                 ! error code
- integer :: namelen                                 ! name length
+ integer(size_t) :: namelen                                 ! name length
 
  interface
   integer function h5imis_palette_c(loc_id,namelen,dset_name)
   use h5global
+  IMPLICIT NONE
   !DEC$IF DEFINED(HDF5F90_WINDOWS)
   !DEC$ATTRIBUTES C,reference,decorate,alias:'H5IMIS_PALETTE_C'::h5imis_palette_c
   !DEC$ENDIF
   !DEC$ATTRIBUTES reference :: dset_name
   integer(hid_t),   intent(in) :: loc_id                  ! file or group identifier
-  integer :: namelen                                      ! lenght of name buffer
+  integer(size_t) :: namelen                              ! length of name buffer
   character(len=*), intent(in) :: dset_name               ! name of the dataset
   end function h5imis_palette_c
  end interface
diff --git a/hl/fortran/src/H5LTf90proto.h b/hl/fortran/src/H5LTf90proto.h
index 3abb0b9..3990d18 100644
--- a/hl/fortran/src/H5LTf90proto.h
+++ b/hl/fortran/src/H5LTf90proto.h
@@ -22,8 +22,9 @@
 #include <stdlib.h>
 #include <string.h>
 
+/* These definitions should match those in fortran/src/H5f90kit.c */
 
-H5_FCDLL char*  HD5f2cstring (_fcd fdesc, int len);
+H5_FCDLL char*  HD5f2cstring (_fcd fdesc, size_t len);
 H5_FCDLL void HD5packFstring (char *src, char *dest, size_t len);
 
 /*
@@ -204,7 +205,7 @@ H5_FCDLL void HD5packFstring (char *src, char *dest, size_t len);
 
 HDF5_HL_F90CSTUBDLL
 int_f
-nh5dsset_scale_c(hid_t_f *dsid, _fcd dimname, int_f *dimnamelen);
+nh5dsset_scale_c(hid_t_f *dsid, _fcd dimname, size_t_f *dimnamelen);
 
 HDF5_HL_F90CSTUBDLL
 int_f
@@ -224,7 +225,7 @@ nh5dsis_scale_c(hid_t_f *did, int_f *is_scale);
 
 HDF5_HL_F90CSTUBDLL
 int_f
-nh5dsset_label_c(hid_t_f *did, int_f *idx, _fcd label, int_f *labellen);
+nh5dsset_label_c(hid_t_f *did, int_f *idx, _fcd label, size_t_f *labellen);
 
 HDF5_HL_F90CSTUBDLL
 int_f
@@ -242,7 +243,7 @@ nh5dsget_num_scales_c( hid_t_f *did, int_f *idx, int_f *num_scales);
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltmake_dataset_c (hid_t_f *loc_id,
-                     int_f *namelen,
+                     size_t_f *namelen,
                      _fcd name,
                      int_f *rank,
                      hsize_t_f *dims,
@@ -252,7 +253,7 @@ nh5ltmake_dataset_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltmake_dataset_int1_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           int_f *rank,
                           hsize_t_f *dims,
@@ -262,7 +263,7 @@ nh5ltmake_dataset_int1_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltmake_dataset_int2_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           int_f *rank,
                           hsize_t_f *dims,
@@ -272,7 +273,7 @@ nh5ltmake_dataset_int2_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltmake_dataset_int3_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           int_f *rank,
                           hsize_t_f *dims,
@@ -282,7 +283,7 @@ nh5ltmake_dataset_int3_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltmake_dataset_int4_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           int_f *rank,
                           hsize_t_f *dims,
@@ -292,7 +293,7 @@ nh5ltmake_dataset_int4_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltmake_dataset_int5_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           int_f *rank,
                           hsize_t_f *dims,
@@ -302,7 +303,7 @@ nh5ltmake_dataset_int5_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltmake_dataset_int6_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           int_f *rank,
                           hsize_t_f *dims,
@@ -312,7 +313,7 @@ nh5ltmake_dataset_int6_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltmake_dataset_int7_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           int_f *rank,
                           hsize_t_f *dims,
@@ -323,7 +324,7 @@ nh5ltmake_dataset_int7_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltmake_dataset_fl1_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          int_f *rank,
                          hsize_t_f *dims,
@@ -333,7 +334,7 @@ nh5ltmake_dataset_fl1_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltmake_dataset_fl2_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          int_f *rank,
                          hsize_t_f *dims,
@@ -343,7 +344,7 @@ nh5ltmake_dataset_fl2_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltmake_dataset_fl3_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          int_f *rank,
                          hsize_t_f *dims,
@@ -353,7 +354,7 @@ nh5ltmake_dataset_fl3_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltmake_dataset_fl4_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          int_f *rank,
                          hsize_t_f *dims,
@@ -363,7 +364,7 @@ nh5ltmake_dataset_fl4_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltmake_dataset_fl5_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          int_f *rank,
                          hsize_t_f *dims,
@@ -373,7 +374,7 @@ nh5ltmake_dataset_fl5_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltmake_dataset_fl6_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          int_f *rank,
                          hsize_t_f *dims,
@@ -383,7 +384,7 @@ nh5ltmake_dataset_fl6_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltmake_dataset_fl7_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          int_f *rank,
                          hsize_t_f *dims,
@@ -394,7 +395,7 @@ nh5ltmake_dataset_fl7_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltmake_dataset_dl1_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          int_f *rank,
                          hsize_t_f *dims,
@@ -404,7 +405,7 @@ nh5ltmake_dataset_dl1_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltmake_dataset_dl2_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          int_f *rank,
                          hsize_t_f *dims,
@@ -414,7 +415,7 @@ nh5ltmake_dataset_dl2_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltmake_dataset_dl3_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          int_f *rank,
                          hsize_t_f *dims,
@@ -424,7 +425,7 @@ nh5ltmake_dataset_dl3_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltmake_dataset_dl4_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          int_f *rank,
                          hsize_t_f *dims,
@@ -434,7 +435,7 @@ nh5ltmake_dataset_dl4_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltmake_dataset_dl5_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          int_f *rank,
                          hsize_t_f *dims,
@@ -444,7 +445,7 @@ nh5ltmake_dataset_dl5_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltmake_dataset_dl6_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          int_f *rank,
                          hsize_t_f *dims,
@@ -454,7 +455,7 @@ nh5ltmake_dataset_dl6_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltmake_dataset_dl7_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          int_f *rank,
                          hsize_t_f *dims,
@@ -464,7 +465,7 @@ nh5ltmake_dataset_dl7_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltmake_dataset_nint1_c (hid_t_f *loc_id,
-                           int_f *namelen,
+                           size_t_f *namelen,
                            _fcd name,
                            int_f *rank,
                            hsize_t_f *dims,
@@ -474,7 +475,7 @@ nh5ltmake_dataset_nint1_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltmake_dataset_nint2_c (hid_t_f *loc_id,
-                           int_f *namelen,
+                           size_t_f *namelen,
                            _fcd name,
                            int_f *rank,
                            hsize_t_f *dims,
@@ -484,7 +485,7 @@ nh5ltmake_dataset_nint2_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltmake_dataset_nint3_c (hid_t_f *loc_id,
-                           int_f *namelen,
+                           size_t_f *namelen,
                            _fcd name,
                            int_f *rank,
                            hsize_t_f *dims,
@@ -494,7 +495,7 @@ nh5ltmake_dataset_nint3_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltmake_dataset_nint4_c (hid_t_f *loc_id,
-                           int_f *namelen,
+                           size_t_f *namelen,
                            _fcd name,
                            int_f *rank,
                            hsize_t_f *dims,
@@ -504,7 +505,7 @@ nh5ltmake_dataset_nint4_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltmake_dataset_nint5_c (hid_t_f *loc_id,
-                           int_f *namelen,
+                           size_t_f *namelen,
                            _fcd name,
                            int_f *rank,
                            hsize_t_f *dims,
@@ -514,7 +515,7 @@ nh5ltmake_dataset_nint5_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltmake_dataset_nint6_c (hid_t_f *loc_id,
-                           int_f *namelen,
+                           size_t_f *namelen,
                            _fcd name,
                            int_f *rank,
                            hsize_t_f *dims,
@@ -524,7 +525,7 @@ nh5ltmake_dataset_nint6_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltmake_dataset_nint7_c (hid_t_f *loc_id,
-                           int_f *namelen,
+                           size_t_f *namelen,
                            _fcd name,
                            int_f *rank,
                            hsize_t_f *dims,
@@ -534,7 +535,7 @@ nh5ltmake_dataset_nint7_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltmake_dataset_nfl1_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           int_f *rank,
                           hsize_t_f *dims,
@@ -544,7 +545,7 @@ nh5ltmake_dataset_nfl1_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltmake_dataset_nfl2_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           int_f *rank,
                           hsize_t_f *dims,
@@ -554,7 +555,7 @@ nh5ltmake_dataset_nfl2_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltmake_dataset_nfl3_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           int_f *rank,
                           hsize_t_f *dims,
@@ -564,7 +565,7 @@ nh5ltmake_dataset_nfl3_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltmake_dataset_nfl4_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           int_f *rank,
                           hsize_t_f *dims,
@@ -574,7 +575,7 @@ nh5ltmake_dataset_nfl4_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltmake_dataset_nfl5_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           int_f *rank,
                           hsize_t_f *dims,
@@ -584,7 +585,7 @@ nh5ltmake_dataset_nfl5_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltmake_dataset_nfl6_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           int_f *rank,
                           hsize_t_f *dims,
@@ -594,7 +595,7 @@ nh5ltmake_dataset_nfl6_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltmake_dataset_nfl7_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           int_f *rank,
                           hsize_t_f *dims,
@@ -604,7 +605,7 @@ nh5ltmake_dataset_nfl7_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltmake_dataset_ndl1_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           int_f *rank,
                           hsize_t_f *dims,
@@ -614,7 +615,7 @@ nh5ltmake_dataset_ndl1_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltmake_dataset_ndl2_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           int_f *rank,
                           hsize_t_f *dims,
@@ -624,7 +625,7 @@ nh5ltmake_dataset_ndl2_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltmake_dataset_ndl3_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           int_f *rank,
                           hsize_t_f *dims,
@@ -634,7 +635,7 @@ nh5ltmake_dataset_ndl3_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltmake_dataset_ndl4_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           int_f *rank,
                           hsize_t_f *dims,
@@ -644,7 +645,7 @@ nh5ltmake_dataset_ndl4_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltmake_dataset_ndl5_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           int_f *rank,
                           hsize_t_f *dims,
@@ -654,7 +655,7 @@ nh5ltmake_dataset_ndl5_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltmake_dataset_ndl6_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           int_f *rank,
                           hsize_t_f *dims,
@@ -664,7 +665,7 @@ nh5ltmake_dataset_ndl6_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltmake_dataset_ndl7_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           int_f *rank,
                           hsize_t_f *dims,
@@ -674,7 +675,7 @@ nh5ltmake_dataset_ndl7_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltread_dataset_c (hid_t_f *loc_id,
-                     int_f *namelen,
+                     size_t_f *namelen,
                      _fcd name,
                      hid_t_f *type_id,
                      void *buf,
@@ -684,7 +685,7 @@ nh5ltread_dataset_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltread_dataset_int1_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           hid_t_f *type_id,
                           void *buf,
@@ -693,7 +694,7 @@ nh5ltread_dataset_int1_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltread_dataset_int2_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           hid_t_f *type_id,
                           void *buf,
@@ -702,7 +703,7 @@ nh5ltread_dataset_int2_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltread_dataset_int3_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           hid_t_f *type_id,
                           void *buf,
@@ -711,7 +712,7 @@ nh5ltread_dataset_int3_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltread_dataset_int4_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           hid_t_f *type_id,
                           void *buf,
@@ -720,7 +721,7 @@ nh5ltread_dataset_int4_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltread_dataset_int5_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           hid_t_f *type_id,
                           void *buf,
@@ -729,7 +730,7 @@ nh5ltread_dataset_int5_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltread_dataset_int6_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           hid_t_f *type_id,
                           void *buf,
@@ -738,7 +739,7 @@ nh5ltread_dataset_int6_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltread_dataset_int7_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           hid_t_f *type_id,
                           void *buf,
@@ -747,7 +748,7 @@ nh5ltread_dataset_int7_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltread_dataset_fl1_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          hid_t_f *type_id,
                          void *buf,
@@ -756,7 +757,7 @@ nh5ltread_dataset_fl1_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltread_dataset_fl2_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          hid_t_f *type_id,
                          void *buf,
@@ -765,7 +766,7 @@ nh5ltread_dataset_fl2_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltread_dataset_fl3_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          hid_t_f *type_id,
                          void *buf,
@@ -774,7 +775,7 @@ nh5ltread_dataset_fl3_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltread_dataset_fl4_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          hid_t_f *type_id,
                          void *buf,
@@ -783,7 +784,7 @@ nh5ltread_dataset_fl4_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltread_dataset_fl5_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          hid_t_f *type_id,
                          void *buf,
@@ -792,7 +793,7 @@ nh5ltread_dataset_fl5_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltread_dataset_fl6_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          hid_t_f *type_id,
                          void *buf,
@@ -802,7 +803,7 @@ nh5ltread_dataset_fl6_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltread_dataset_fl7_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          hid_t_f *type_id,
                          void *buf,
@@ -811,7 +812,7 @@ nh5ltread_dataset_fl7_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltread_dataset_dl1_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          hid_t_f *type_id,
                          void *buf,
@@ -820,7 +821,7 @@ nh5ltread_dataset_dl1_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltread_dataset_dl2_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          hid_t_f *type_id,
                          void *buf,
@@ -829,7 +830,7 @@ nh5ltread_dataset_dl2_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltread_dataset_dl3_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          hid_t_f *type_id,
                          void *buf,
@@ -838,7 +839,7 @@ nh5ltread_dataset_dl3_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltread_dataset_dl4_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          hid_t_f *type_id,
                          void *buf,
@@ -847,7 +848,7 @@ nh5ltread_dataset_dl4_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltread_dataset_dl5_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          hid_t_f *type_id,
                          void *buf,
@@ -856,7 +857,7 @@ nh5ltread_dataset_dl5_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltread_dataset_dl6_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          hid_t_f *type_id,
                          void *buf,
@@ -865,7 +866,7 @@ nh5ltread_dataset_dl6_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltread_dataset_dl7_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          hid_t_f *type_id,
                          void *buf,
@@ -874,7 +875,7 @@ nh5ltread_dataset_dl7_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltread_dataset_nint1_c (hid_t_f *loc_id,
-                           int_f *namelen,
+                           size_t_f *namelen,
                            _fcd name,
                            hid_t_f *type_id,
                            void *buf,
@@ -883,7 +884,7 @@ nh5ltread_dataset_nint1_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltread_dataset_nint2_c (hid_t_f *loc_id,
-                           int_f *namelen,
+                           size_t_f *namelen,
                            _fcd name,
                            hid_t_f *type_id,
                            void *buf,
@@ -892,7 +893,7 @@ nh5ltread_dataset_nint2_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltread_dataset_nint3_c (hid_t_f *loc_id,
-                           int_f *namelen,
+                           size_t_f *namelen,
                            _fcd name,
                            hid_t_f *type_id,
                            void *buf,
@@ -901,7 +902,7 @@ nh5ltread_dataset_nint3_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltread_dataset_nint4_c (hid_t_f *loc_id,
-                           int_f *namelen,
+                           size_t_f *namelen,
                            _fcd name,
                            hid_t_f *type_id,
                            void *buf,
@@ -910,7 +911,7 @@ nh5ltread_dataset_nint4_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltread_dataset_nint5_c (hid_t_f *loc_id,
-                           int_f *namelen,
+                           size_t_f *namelen,
                            _fcd name,
                            hid_t_f *type_id,
                            void *buf,
@@ -919,7 +920,7 @@ nh5ltread_dataset_nint5_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltread_dataset_nint6_c (hid_t_f *loc_id,
-                           int_f *namelen,
+                           size_t_f *namelen,
                            _fcd name,
                            hid_t_f *type_id,
                            void *buf,
@@ -928,7 +929,7 @@ nh5ltread_dataset_nint6_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltread_dataset_nint7_c (hid_t_f *loc_id,
-                           int_f *namelen,
+                           size_t_f *namelen,
                            _fcd name,
                            hid_t_f *type_id,
                            void *buf,
@@ -937,7 +938,7 @@ nh5ltread_dataset_nint7_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltread_dataset_nfl1_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           hid_t_f *type_id,
                           void *buf,
@@ -946,7 +947,7 @@ nh5ltread_dataset_nfl1_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltread_dataset_nfl2_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           hid_t_f *type_id,
                           void *buf,
@@ -955,7 +956,7 @@ nh5ltread_dataset_nfl2_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltread_dataset_nfl3_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           hid_t_f *type_id,
                           void *buf,
@@ -964,7 +965,7 @@ nh5ltread_dataset_nfl3_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltread_dataset_nfl4_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           hid_t_f *type_id,
                           void *buf,
@@ -973,7 +974,7 @@ nh5ltread_dataset_nfl4_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltread_dataset_nfl5_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           hid_t_f *type_id,
                           void *buf,
@@ -982,7 +983,7 @@ nh5ltread_dataset_nfl5_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltread_dataset_nfl6_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           hid_t_f *type_id,
                           void *buf,
@@ -991,7 +992,7 @@ nh5ltread_dataset_nfl6_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltread_dataset_nfl7_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           hid_t_f *type_id,
                           void *buf,
@@ -1000,7 +1001,7 @@ nh5ltread_dataset_nfl7_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltread_dataset_ndl1_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           hid_t_f *type_id,
                           void *buf,
@@ -1009,7 +1010,7 @@ nh5ltread_dataset_ndl1_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltread_dataset_ndl2_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           hid_t_f *type_id,
                           void *buf,
@@ -1018,7 +1019,7 @@ nh5ltread_dataset_ndl2_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltread_dataset_ndl3_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           hid_t_f *type_id,
                           void *buf,
@@ -1027,7 +1028,7 @@ nh5ltread_dataset_ndl3_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltread_dataset_ndl4_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           hid_t_f *type_id,
                           void *buf,
@@ -1036,7 +1037,7 @@ nh5ltread_dataset_ndl4_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltread_dataset_ndl5_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           hid_t_f *type_id,
                           void *buf,
@@ -1045,7 +1046,7 @@ nh5ltread_dataset_ndl5_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltread_dataset_ndl6_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           hid_t_f *type_id,
                           void *buf,
@@ -1054,7 +1055,7 @@ nh5ltread_dataset_ndl6_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltread_dataset_ndl7_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           hid_t_f *type_id,
                           void *buf,
@@ -1063,9 +1064,9 @@ nh5ltread_dataset_ndl7_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltset_attribute_int_c(hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd dsetname,
-                         int_f *attrnamelen,
+                         size_t_f *attrnamelen,
                          _fcd attrname,
                          size_t_f *size,
                          void *buf);
@@ -1073,9 +1074,9 @@ nh5ltset_attribute_int_c(hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltset_attribute_float_c(hid_t_f *loc_id,
-                           int_f *namelen,
+                           size_t_f *namelen,
                            _fcd dsetname,
-                           int_f *attrnamelen,
+                           size_t_f *attrnamelen,
                            _fcd attrname,
                            size_t_f *size,
                            void *buf);
@@ -1083,9 +1084,9 @@ nh5ltset_attribute_float_c(hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltset_attribute_double_c(hid_t_f *loc_id,
-                            int_f *namelen,
+                            size_t_f *namelen,
                             _fcd dsetname,
-                            int_f *attrnamelen,
+                            size_t_f *attrnamelen,
                             _fcd attrname,
                             size_t_f *size,
                             void *buf);
@@ -1093,68 +1094,68 @@ nh5ltset_attribute_double_c(hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltset_attribute_string_c(hid_t_f *loc_id,
-                            int_f *namelen,
+                            size_t_f *namelen,
                             _fcd dsetname,
-                            int_f *attrnamelen,
+                            size_t_f *attrnamelen,
                             _fcd attrname,
-                            int_f *buflen,
+                            size_t_f *buflen,
                             void *buf);
 
 
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltget_attribute_int_c(hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd dsetname,
-                         int_f *attrnamelen,
+                         size_t_f *attrnamelen,
                          _fcd attrname,
                          void *buf);
 
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltget_attribute_float_c(hid_t_f *loc_id,
-                           int_f *namelen,
+                           size_t_f *namelen,
                            _fcd dsetname,
-                           int_f *attrnamelen,
+                           size_t_f *attrnamelen,
                            _fcd attrname,
                            void *buf);
 
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltget_attribute_double_c(hid_t_f *loc_id,
-                            int_f *namelen,
+                            size_t_f *namelen,
                             _fcd dsetname,
-                            int_f *attrnamelen,
+                            size_t_f *attrnamelen,
                             _fcd attrname,
                             void *buf);
 
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltget_attribute_string_c(hid_t_f *loc_id,
-                            int_f *namelen,
+                            size_t_f *namelen,
                             _fcd dsetname,
-                            int_f *attrnamelen,
+                            size_t_f *attrnamelen,
                             _fcd attrname,
                             _fcd buf,
-			    size_t_f *buf_size);
+                            size_t_f *buf_size);
 
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltget_dataset_ndims_c(hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          int_f *rank);
 
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltfind_dataset_c(hid_t_f *loc_id,
-                    int_f *namelen,
+                    size_t_f *namelen,
                     _fcd name);
 
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltget_dataset_info_c(hid_t_f *loc_id,
-                        int_f *namelen,
+                        size_t_f *namelen,
                         _fcd name,
                         hsize_t_f *dims,
                         int_f *type_class,
@@ -1163,17 +1164,17 @@ nh5ltget_dataset_info_c(hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltget_attribute_ndims_c(hid_t_f *loc_id,
-                           int_f *namelen,
+                           size_t_f *namelen,
                            _fcd dsetname,
-                           int_f *attrnamelen,
+                           size_t_f *attrnamelen,
                            _fcd attrname,
                            int_f *rank);
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltget_attribute_info_c(hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
-                          int_f *attrnamelen,
+                          size_t_f *attrnamelen,
                           _fcd attrname,
                           hsize_t_f *dims,
                           int_f *type_class,
@@ -1182,24 +1183,24 @@ nh5ltget_attribute_info_c(hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltmake_dataset_string_c (hid_t_f *loc_id,
-                            int_f *namelen,
+                            size_t_f *namelen,
                             _fcd name,
-                            int_f *buflen,
+                            size_t_f *buflen,
                             char *buf);
 
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltread_dataset_string_c (hid_t_f *loc_id,
-                            int_f *namelen,
+                            size_t_f *namelen,
                             _fcd name,
                             char *buf);
 
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5ltpath_valid_c(hid_t_f *loc_id, 
-		  _fcd path, 
-		  int_f *pathlen, 
-		  int_f *check_object_valid_c);
+                  _fcd path, 
+                  size_t_f *pathlen, 
+                  int_f *check_object_valid_c);
 
 /*-------------------------------------------------------------------------
 * Image
@@ -1209,7 +1210,7 @@ nh5ltpath_valid_c(hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5immake_image_8bit_c (hid_t_f *loc_id,
-                        int_f *namelen,
+                        size_t_f *namelen,
                         _fcd name,
                         hsize_t_f *width,
                         hsize_t_f *height,
@@ -1217,16 +1218,16 @@ nh5immake_image_8bit_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5imread_image_c (hid_t_f *loc_id,
-                   int_f *namelen,
+                   size_t_f *namelen,
                    _fcd name,
                    int_f *buf);
 
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5immake_image_24bit_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
-                         int_f *ilen,
+                         size_t_f *ilen,
                          _fcd il,
                          hsize_t_f *width,
                          hsize_t_f *height,
@@ -1234,27 +1235,27 @@ nh5immake_image_24bit_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5imget_image_info_c(hid_t_f *loc_id,
-                      int_f *namelen,
+                      size_t_f *namelen,
                       _fcd name,
                       hsize_t_f *width,
                       hsize_t_f *height,
                       hsize_t_f *planes,
                       hsize_t_f *npals,
-                      int_f *ilen,
+                      size_t_f *ilen,
                       _fcd interlace);
 
 
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5imis_image_c(hid_t_f *loc_id,
-                int_f *namelen,
+                size_t_f *namelen,
                 _fcd name);
 
 
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5immake_palette_c (hid_t_f *loc_id,
-                     int_f *namelen,
+                     size_t_f *namelen,
                      _fcd name,
                      hsize_t_f *dims,
                      void *buf);
@@ -1262,23 +1263,23 @@ nh5immake_palette_c (hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5imlink_palette_c (hid_t_f *loc_id,
-                     int_f *namelen,
+                     size_t_f *namelen,
                      _fcd name,
-                     int_f *ilen,
+                     size_t_f *ilen,
                      _fcd pal_name);
 
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5imunlink_palette_c (hid_t_f *loc_id,
-                       int_f *namelen,
+                       size_t_f *namelen,
                        _fcd name,
-                       int_f *ilen,
+                       size_t_f *ilen,
                        _fcd pal_name);
 
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5imget_npalettes_c(hid_t_f *loc_id,
-                     int_f *namelen,
+                     size_t_f *namelen,
                      _fcd name,
                      hsize_t_f *npals);
 
@@ -1286,7 +1287,7 @@ nh5imget_npalettes_c(hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5imget_palette_info_c(hid_t_f *loc_id,
-                        int_f *namelen,
+                        size_t_f *namelen,
                         _fcd name,
                         int_f *pal_number,
                         hsize_t_f *dims);
@@ -1294,7 +1295,7 @@ nh5imget_palette_info_c(hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5imget_palette_c(hid_t_f *loc_id,
-                   int_f *namelen,
+                   size_t_f *namelen,
                    _fcd name,
                    int_f *pal_number,
                    void *buf);
@@ -1302,7 +1303,7 @@ nh5imget_palette_c(hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5imis_palette_c(hid_t_f *loc_id,
-                  int_f *namelen,
+                  size_t_f *namelen,
                   _fcd name);
 
 
@@ -1314,10 +1315,10 @@ nh5imis_palette_c(hid_t_f *loc_id,
 
 HDF5_HL_F90CSTUBDLL
 int_f
-nh5tbmake_table_c(int_f *namelen1,
+nh5tbmake_table_c(size_t_f *namelen1,
                   _fcd name1,
                   hid_t_f *loc_id,
-                  int_f *namelen,
+                  size_t_f *namelen,
                   _fcd name,
                   hsize_t_f *nfields,
                   hsize_t_f *nrecords,
@@ -1326,16 +1327,16 @@ nh5tbmake_table_c(int_f *namelen1,
                   hid_t_f *field_types,
                   hsize_t_f *chunk_size,
                   int_f *compress,
-                  int_f *char_len_field_names, /* field_names lenghts */
-      int_f *max_char_size_field_names, /* char len of fields */
+                  size_t_f *char_len_field_names, /* field_names lenghts */
+                  size_t_f *max_char_size_field_names, /* char len of fields */
                   _fcd buf);          /* field_names */
 
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5tbwrite_field_name_c(hid_t_f *loc_id,
-                        int_f *namelen,
+                        size_t_f *namelen,
                         _fcd name,
-                        int_f *namelen1,
+                        size_t_f *namelen1,
                         _fcd field_name,
                         hsize_t_f *start,
                         hsize_t_f *nrecords,
@@ -1345,9 +1346,9 @@ nh5tbwrite_field_name_c(hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5tbwrite_field_name_int_c(hid_t_f *loc_id,
-                            int_f *namelen,
+                            size_t_f *namelen,
                             _fcd name,
-                            int_f *namelen1,
+                            size_t_f *namelen1,
                             _fcd field_name,
                             hsize_t_f *start,
                             hsize_t_f *nrecords,
@@ -1357,9 +1358,9 @@ nh5tbwrite_field_name_int_c(hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5tbwrite_field_name_fl_c(hid_t_f *loc_id,
-                           int_f *namelen,
+                           size_t_f *namelen,
                            _fcd name,
-                           int_f *namelen1,
+                           size_t_f *namelen1,
                            _fcd field_name,
                            hsize_t_f *start,
                            hsize_t_f *nrecords,
@@ -1369,9 +1370,9 @@ nh5tbwrite_field_name_fl_c(hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5tbwrite_field_name_dl_c(hid_t_f *loc_id,
-                           int_f *namelen,
+                           size_t_f *namelen,
                            _fcd name,
-                           int_f *namelen1,
+                           size_t_f *namelen1,
                            _fcd field_name,
                            hsize_t_f *start,
                            hsize_t_f *nrecords,
@@ -1381,9 +1382,9 @@ nh5tbwrite_field_name_dl_c(hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5tbwrite_field_name_st_c(hid_t_f *loc_id,
-                           int_f *namelen,
+                           size_t_f *namelen,
                            _fcd name,
-                           int_f *namelen1,
+                           size_t_f *namelen1,
                            _fcd field_name,
                            hsize_t_f *start,
                            hsize_t_f *nrecords,
@@ -1393,9 +1394,9 @@ nh5tbwrite_field_name_st_c(hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5tbread_field_name_c(hid_t_f *loc_id,
-                       int_f *namelen,
+                       size_t_f *namelen,
                        _fcd name,
-                       int_f *namelen1,
+                       size_t_f *namelen1,
                        _fcd field_name,
                        hsize_t_f *start,
                        hsize_t_f *nrecords,
@@ -1405,9 +1406,9 @@ nh5tbread_field_name_c(hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5tbread_field_name_int_c(hid_t_f *loc_id,
-                           int_f *namelen,
+                           size_t_f *namelen,
                            _fcd name,
-                           int_f *namelen1,
+                           size_t_f *namelen1,
                            _fcd field_name,
                            hsize_t_f *start,
                            hsize_t_f *nrecords,
@@ -1417,9 +1418,9 @@ nh5tbread_field_name_int_c(hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5tbread_field_name_fl_c(hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
-                          int_f *namelen1,
+                          size_t_f *namelen1,
                           _fcd field_name,
                           hsize_t_f *start,
                           hsize_t_f *nrecords,
@@ -1429,9 +1430,9 @@ nh5tbread_field_name_fl_c(hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5tbread_field_name_dl_c(hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
-                          int_f *namelen1,
+                          size_t_f *namelen1,
                           _fcd field_name,
                           hsize_t_f *start,
                           hsize_t_f *nrecords,
@@ -1441,9 +1442,9 @@ nh5tbread_field_name_dl_c(hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5tbread_field_name_st_c(hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
-                          int_f *namelen1,
+                          size_t_f *namelen1,
                           _fcd field_name,
                           hsize_t_f *start,
                           hsize_t_f *nrecords,
@@ -1453,7 +1454,7 @@ nh5tbread_field_name_st_c(hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5tbwrite_field_index_c(hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          int_f *field_index,
                          hsize_t_f *start,
@@ -1464,7 +1465,7 @@ nh5tbwrite_field_index_c(hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5tbwrite_field_index_int_c(hid_t_f *loc_id,
-                             int_f *namelen,
+                             size_t_f *namelen,
                              _fcd name,
                              int_f *field_index,
                              hsize_t_f *start,
@@ -1475,7 +1476,7 @@ nh5tbwrite_field_index_int_c(hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5tbwrite_field_index_fl_c(hid_t_f *loc_id,
-                            int_f *namelen,
+                            size_t_f *namelen,
                             _fcd name,
                             int_f *field_index,
                             hsize_t_f *start,
@@ -1486,7 +1487,7 @@ nh5tbwrite_field_index_fl_c(hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5tbwrite_field_index_dl_c(hid_t_f *loc_id,
-                            int_f *namelen,
+                            size_t_f *namelen,
                             _fcd name,
                             int_f *field_index,
                             hsize_t_f *start,
@@ -1497,7 +1498,7 @@ nh5tbwrite_field_index_dl_c(hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5tbwrite_field_index_st_c(hid_t_f *loc_id,
-                            int_f *namelen,
+                            size_t_f *namelen,
                             _fcd name,
                             int_f *field_index,
                             hsize_t_f *start,
@@ -1508,7 +1509,7 @@ nh5tbwrite_field_index_st_c(hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5tbread_field_index_c(hid_t_f *loc_id,
-                        int_f *namelen,
+                        size_t_f *namelen,
                         _fcd name,
                         int_f *field_index,
                         hsize_t_f *start,
@@ -1519,7 +1520,7 @@ nh5tbread_field_index_c(hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5tbread_field_index_int_c(hid_t_f *loc_id,
-                            int_f *namelen,
+                            size_t_f *namelen,
                             _fcd name,
                             int_f *field_index,
                             hsize_t_f *start,
@@ -1530,7 +1531,7 @@ nh5tbread_field_index_int_c(hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5tbread_field_index_fl_c(hid_t_f *loc_id,
-                           int_f *namelen,
+                           size_t_f *namelen,
                            _fcd name,
                            int_f *field_index,
                            hsize_t_f *start,
@@ -1541,7 +1542,7 @@ nh5tbread_field_index_fl_c(hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5tbread_field_index_dl_c(hid_t_f *loc_id,
-                           int_f *namelen,
+                           size_t_f *namelen,
                            _fcd name,
                            int_f *field_index,
                            hsize_t_f *start,
@@ -1552,7 +1553,7 @@ nh5tbread_field_index_dl_c(hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5tbread_field_index_st_c(hid_t_f *loc_id,
-                           int_f *namelen,
+                           size_t_f *namelen,
                            _fcd name,
                            int_f *field_index,
                            hsize_t_f *start,
@@ -1563,9 +1564,9 @@ nh5tbread_field_index_st_c(hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5tbinsert_field_c(hid_t_f *loc_id,
-                    int_f *namelen,
+                    size_t_f *namelen,
                     _fcd name,
-                    int_f *namelen1,
+                    size_t_f *namelen1,
                     _fcd field_name,
                     hid_t_f *field_type,
                     int_f *position,
@@ -1574,9 +1575,9 @@ nh5tbinsert_field_c(hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5tbinsert_field_int_c(hid_t_f *loc_id,
-                        int_f *namelen,
+                        size_t_f *namelen,
                         _fcd name,
-                        int_f *namelen1,
+                        size_t_f *namelen1,
                         _fcd field_name,
                         hid_t_f *field_type,
                         int_f *position,
@@ -1584,9 +1585,9 @@ nh5tbinsert_field_int_c(hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5tbinsert_field_fl_c(hid_t_f *loc_id,
-                       int_f *namelen,
+                       size_t_f *namelen,
                        _fcd name,
-                       int_f *namelen1,
+                       size_t_f *namelen1,
                        _fcd field_name,
                        hid_t_f *field_type,
                        int_f *position,
@@ -1594,9 +1595,9 @@ nh5tbinsert_field_fl_c(hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5tbinsert_field_dl_c(hid_t_f *loc_id,
-                       int_f *namelen,
+                       size_t_f *namelen,
                        _fcd name,
-                       int_f *namelen1,
+                       size_t_f *namelen1,
                        _fcd field_name,
                        hid_t_f *field_type,
                        int_f *position,
@@ -1604,9 +1605,9 @@ nh5tbinsert_field_dl_c(hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5tbinsert_field_st_c(hid_t_f *loc_id,
-                       int_f *namelen,
+                       size_t_f *namelen,
                        _fcd name,
-                       int_f *namelen1,
+                       size_t_f *namelen1,
                        _fcd field_name,
                        hid_t_f *field_type,
                        int_f *position,
@@ -1614,16 +1615,16 @@ nh5tbinsert_field_st_c(hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5tbdelete_field_c(hid_t_f *loc_id,
-                    int_f *namelen,
+                    size_t_f *namelen,
                     _fcd name,
-                    int_f *namelen1,
+                    size_t_f *namelen1,
                     _fcd field_name);
 
 
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5tbget_table_info_c(hid_t_f *loc_id,
-                      int_f *namelen,
+                      size_t_f *namelen,
                       _fcd name,
                       hsize_t_f *nfields,
                       hsize_t_f *nrecords);
@@ -1631,16 +1632,16 @@ nh5tbget_table_info_c(hid_t_f *loc_id,
 HDF5_HL_F90CSTUBDLL
 int_f
 nh5tbget_field_info_c(hid_t_f *loc_id,
-                      int_f *namelen,
+                      size_t_f *namelen,
                       _fcd name,
                       hsize_t_f *nfields,
                       size_t_f *field_sizes,
                       size_t_f *field_offsets,
                       size_t_f *type_size,
-                      int_f *namelen2,
-          int_f *lenmax,
+                      size_t_f *namelen2,
+                      size_t_f *lenmax,
                       _fcd field_names,
-          int_f *maxlen_out);    
+                      size_t_f *maxlen_out);
 
 
 #endif /* _H5LTf90proto_H */
diff --git a/hl/fortran/src/H5LTfc.c b/hl/fortran/src/H5LTfc.c
index 674636d..8d8aae1 100644
--- a/hl/fortran/src/H5LTfc.c
+++ b/hl/fortran/src/H5LTfc.c
@@ -40,7 +40,7 @@
 
 int_f
 nh5ltmake_dataset_c (hid_t_f *loc_id,
-                     int_f *namelen,
+                     size_t_f *namelen,
                      _fcd name,
                      int_f *rank,
                      hsize_t_f *dims,
@@ -49,25 +49,20 @@ nh5ltmake_dataset_c (hid_t_f *loc_id,
 {
     int     ret_value = -1;
     herr_t  ret;
-    hid_t   c_loc_id;
-    hid_t   c_type_id;
     char    *c_name = NULL;
     hsize_t *c_dims = NULL;
-    int     c_namelen;
     int     i;
 
     /*
     * convert FORTRAN name to C name
     */
-    c_namelen = *namelen;
-    c_name = (char *)HD5f2cstring(name, c_namelen);
+    c_name = (char *)HD5f2cstring(name, (size_t)*namelen);
     if (c_name == NULL)
         goto done;
 
-    c_dims =  malloc(sizeof(hsize_t) * (*rank ));
+    c_dims =  (hsize_t *)HDmalloc(sizeof(hsize_t) * ( (size_t)*rank ));
     if (c_dims == NULL)
         goto done;
-
     /*
     * transpose dimension arrays because of C-FORTRAN storage order
     */
@@ -79,11 +74,8 @@ nh5ltmake_dataset_c (hid_t_f *loc_id,
     /*
     * call H5LTmake_dataset function.
     */
-    c_loc_id = (hid_t)*loc_id;
-    c_type_id = (hid_t)*type_id;
-
-    ret = H5LTmake_dataset(c_loc_id, c_name, *rank, c_dims, c_type_id, buf );
 
+    ret = H5LTmake_dataset((hid_t)*loc_id, c_name, (int)*rank, c_dims, (hid_t)*type_id, buf );
     if (ret < 0)
         goto done;
 
@@ -99,7 +91,7 @@ done:
 
 int_f
 nh5ltmake_dataset_int1_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           int_f *rank,
                           hsize_t_f *dims,
@@ -110,7 +102,7 @@ nh5ltmake_dataset_int1_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltmake_dataset_int2_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           int_f *rank,
                           hsize_t_f *dims,
@@ -121,7 +113,7 @@ nh5ltmake_dataset_int2_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltmake_dataset_int3_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           int_f *rank,
                           hsize_t_f *dims,
@@ -132,7 +124,7 @@ nh5ltmake_dataset_int3_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltmake_dataset_int4_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           int_f *rank,
                           hsize_t_f *dims,
@@ -143,7 +135,7 @@ nh5ltmake_dataset_int4_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltmake_dataset_int5_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           int_f *rank,
                           hsize_t_f *dims,
@@ -154,7 +146,7 @@ nh5ltmake_dataset_int5_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltmake_dataset_int6_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           int_f *rank,
                           hsize_t_f *dims,
@@ -165,7 +157,7 @@ nh5ltmake_dataset_int6_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltmake_dataset_int7_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           int_f *rank,
                           hsize_t_f *dims,
@@ -176,7 +168,7 @@ nh5ltmake_dataset_int7_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltmake_dataset_fl1_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          int_f *rank,
                          hsize_t_f *dims,
@@ -187,7 +179,7 @@ nh5ltmake_dataset_fl1_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltmake_dataset_fl2_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          int_f *rank,
                          hsize_t_f *dims,
@@ -198,7 +190,7 @@ nh5ltmake_dataset_fl2_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltmake_dataset_fl3_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          int_f *rank,
                          hsize_t_f *dims,
@@ -209,7 +201,7 @@ nh5ltmake_dataset_fl3_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltmake_dataset_fl4_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          int_f *rank,
                          hsize_t_f *dims,
@@ -220,7 +212,7 @@ nh5ltmake_dataset_fl4_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltmake_dataset_fl5_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          int_f *rank,
                          hsize_t_f *dims,
@@ -231,7 +223,7 @@ nh5ltmake_dataset_fl5_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltmake_dataset_fl6_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          int_f *rank,
                          hsize_t_f *dims,
@@ -242,7 +234,7 @@ nh5ltmake_dataset_fl6_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltmake_dataset_fl7_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          int_f *rank,
                          hsize_t_f *dims,
@@ -253,7 +245,7 @@ nh5ltmake_dataset_fl7_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltmake_dataset_dl1_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          int_f *rank,
                          hsize_t_f *dims,
@@ -264,7 +256,7 @@ nh5ltmake_dataset_dl1_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltmake_dataset_dl2_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          int_f *rank,
                          hsize_t_f *dims,
@@ -275,7 +267,7 @@ nh5ltmake_dataset_dl2_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltmake_dataset_dl3_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          int_f *rank,
                          hsize_t_f *dims,
@@ -286,7 +278,7 @@ nh5ltmake_dataset_dl3_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltmake_dataset_dl4_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          int_f *rank,
                          hsize_t_f *dims,
@@ -297,7 +289,7 @@ nh5ltmake_dataset_dl4_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltmake_dataset_dl5_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          int_f *rank,
                          hsize_t_f *dims,
@@ -308,7 +300,7 @@ nh5ltmake_dataset_dl5_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltmake_dataset_dl6_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          int_f *rank,
                          hsize_t_f *dims,
@@ -319,7 +311,7 @@ nh5ltmake_dataset_dl6_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltmake_dataset_dl7_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          int_f *rank,
                          hsize_t_f *dims,
@@ -330,7 +322,7 @@ nh5ltmake_dataset_dl7_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltmake_dataset_nint1_c (hid_t_f *loc_id,
-                           int_f *namelen,
+                           size_t_f *namelen,
                            _fcd name,
                            int_f *rank,
                            hsize_t_f *dims,
@@ -341,7 +333,7 @@ nh5ltmake_dataset_nint1_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltmake_dataset_nint2_c (hid_t_f *loc_id,
-                           int_f *namelen,
+                           size_t_f *namelen,
                            _fcd name,
                            int_f *rank,
                            hsize_t_f *dims,
@@ -352,7 +344,7 @@ nh5ltmake_dataset_nint2_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltmake_dataset_nint3_c (hid_t_f *loc_id,
-                           int_f *namelen,
+                           size_t_f *namelen,
                            _fcd name,
                            int_f *rank,
                            hsize_t_f *dims,
@@ -363,7 +355,7 @@ nh5ltmake_dataset_nint3_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltmake_dataset_nint4_c (hid_t_f *loc_id,
-                           int_f *namelen,
+                           size_t_f *namelen,
                            _fcd name,
                            int_f *rank,
                            hsize_t_f *dims,
@@ -374,7 +366,7 @@ nh5ltmake_dataset_nint4_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltmake_dataset_nint5_c (hid_t_f *loc_id,
-                           int_f *namelen,
+                           size_t_f *namelen,
                            _fcd name,
                            int_f *rank,
                            hsize_t_f *dims,
@@ -385,7 +377,7 @@ nh5ltmake_dataset_nint5_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltmake_dataset_nint6_c (hid_t_f *loc_id,
-                           int_f *namelen,
+                           size_t_f *namelen,
                            _fcd name,
                            int_f *rank,
                            hsize_t_f *dims,
@@ -396,7 +388,7 @@ nh5ltmake_dataset_nint6_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltmake_dataset_nint7_c (hid_t_f *loc_id,
-                           int_f *namelen,
+                           size_t_f *namelen,
                            _fcd name,
                            int_f *rank,
                            hsize_t_f *dims,
@@ -407,7 +399,7 @@ nh5ltmake_dataset_nint7_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltmake_dataset_nfl1_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           int_f *rank,
                           hsize_t_f *dims,
@@ -418,7 +410,7 @@ nh5ltmake_dataset_nfl1_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltmake_dataset_nfl2_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           int_f *rank,
                           hsize_t_f *dims,
@@ -429,7 +421,7 @@ nh5ltmake_dataset_nfl2_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltmake_dataset_nfl3_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           int_f *rank,
                           hsize_t_f *dims,
@@ -440,7 +432,7 @@ nh5ltmake_dataset_nfl3_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltmake_dataset_nfl4_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           int_f *rank,
                           hsize_t_f *dims,
@@ -451,7 +443,7 @@ nh5ltmake_dataset_nfl4_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltmake_dataset_nfl5_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           int_f *rank,
                           hsize_t_f *dims,
@@ -462,7 +454,7 @@ nh5ltmake_dataset_nfl5_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltmake_dataset_nfl6_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           int_f *rank,
                           hsize_t_f *dims,
@@ -473,7 +465,7 @@ nh5ltmake_dataset_nfl6_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltmake_dataset_nfl7_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           int_f *rank,
                           hsize_t_f *dims,
@@ -484,7 +476,7 @@ nh5ltmake_dataset_nfl7_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltmake_dataset_ndl1_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           int_f *rank,
                           hsize_t_f *dims,
@@ -495,7 +487,7 @@ nh5ltmake_dataset_ndl1_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltmake_dataset_ndl2_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           int_f *rank,
                           hsize_t_f *dims,
@@ -506,7 +498,7 @@ nh5ltmake_dataset_ndl2_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltmake_dataset_ndl3_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           int_f *rank,
                           hsize_t_f *dims,
@@ -517,7 +509,7 @@ nh5ltmake_dataset_ndl3_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltmake_dataset_ndl4_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           int_f *rank,
                           hsize_t_f *dims,
@@ -528,7 +520,7 @@ nh5ltmake_dataset_ndl4_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltmake_dataset_ndl5_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           int_f *rank,
                           hsize_t_f *dims,
@@ -539,7 +531,7 @@ nh5ltmake_dataset_ndl5_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltmake_dataset_ndl6_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           int_f *rank,
                           hsize_t_f *dims,
@@ -550,7 +542,7 @@ nh5ltmake_dataset_ndl6_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltmake_dataset_ndl7_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           int_f *rank,
                           hsize_t_f *dims,
@@ -580,7 +572,7 @@ nh5ltmake_dataset_ndl7_c (hid_t_f *loc_id,
 
 int_f
 nh5ltread_dataset_c (hid_t_f *loc_id,
-                     int_f *namelen,
+                     size_t_f *namelen,
                      _fcd name,
                      hid_t_f *type_id,
                      void *buf,
@@ -591,13 +583,11 @@ nh5ltread_dataset_c (hid_t_f *loc_id,
     hid_t   c_loc_id;
     hid_t   c_type_id;
     char    *c_name = NULL;
-    int     c_namelen;
 
     /*
     * convert FORTRAN name to C name
     */
-    c_namelen = *namelen;
-    c_name = (char *)HD5f2cstring(name, c_namelen);
+    c_name = (char *)HD5f2cstring(name, (size_t)*namelen);
     if (c_name == NULL)
         goto done;
 
@@ -623,7 +613,7 @@ done:
 
 int_f
 nh5ltread_dataset_int1_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           hid_t_f *type_id,
                           void *buf,
@@ -633,7 +623,7 @@ nh5ltread_dataset_int1_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltread_dataset_int2_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           hid_t_f *type_id,
                           void *buf,
@@ -643,7 +633,7 @@ nh5ltread_dataset_int2_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltread_dataset_int3_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           hid_t_f *type_id,
                           void *buf,
@@ -653,7 +643,7 @@ nh5ltread_dataset_int3_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltread_dataset_int4_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           hid_t_f *type_id,
                           void *buf,
@@ -663,7 +653,7 @@ nh5ltread_dataset_int4_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltread_dataset_int5_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           hid_t_f *type_id,
                           void *buf,
@@ -673,7 +663,7 @@ nh5ltread_dataset_int5_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltread_dataset_int6_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           hid_t_f *type_id,
                           void *buf,
@@ -683,7 +673,7 @@ nh5ltread_dataset_int6_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltread_dataset_int7_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           hid_t_f *type_id,
                           void *buf,
@@ -693,7 +683,7 @@ nh5ltread_dataset_int7_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltread_dataset_fl1_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          hid_t_f *type_id,
                          void *buf,
@@ -703,7 +693,7 @@ nh5ltread_dataset_fl1_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltread_dataset_fl2_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          hid_t_f *type_id,
                          void *buf,
@@ -713,7 +703,7 @@ nh5ltread_dataset_fl2_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltread_dataset_fl3_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          hid_t_f *type_id,
                          void *buf,
@@ -723,7 +713,7 @@ nh5ltread_dataset_fl3_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltread_dataset_fl4_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          hid_t_f *type_id,
                          void *buf,
@@ -733,7 +723,7 @@ nh5ltread_dataset_fl4_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltread_dataset_fl5_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          hid_t_f *type_id,
                          void *buf,
@@ -743,7 +733,7 @@ nh5ltread_dataset_fl5_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltread_dataset_fl6_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          hid_t_f *type_id,
                          void *buf,
@@ -753,7 +743,7 @@ nh5ltread_dataset_fl6_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltread_dataset_fl7_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          hid_t_f *type_id,
                          void *buf,
@@ -763,7 +753,7 @@ nh5ltread_dataset_fl7_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltread_dataset_dl1_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          hid_t_f *type_id,
                          void *buf,
@@ -773,7 +763,7 @@ nh5ltread_dataset_dl1_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltread_dataset_dl2_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          hid_t_f *type_id,
                          void *buf,
@@ -783,7 +773,7 @@ nh5ltread_dataset_dl2_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltread_dataset_dl3_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          hid_t_f *type_id,
                          void *buf,
@@ -793,7 +783,7 @@ nh5ltread_dataset_dl3_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltread_dataset_dl4_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          hid_t_f *type_id,
                          void *buf,
@@ -803,7 +793,7 @@ nh5ltread_dataset_dl4_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltread_dataset_dl5_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          hid_t_f *type_id,
                          void *buf,
@@ -813,7 +803,7 @@ nh5ltread_dataset_dl5_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltread_dataset_dl6_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          hid_t_f *type_id,
                          void *buf,
@@ -823,7 +813,7 @@ nh5ltread_dataset_dl6_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltread_dataset_dl7_c (hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          hid_t_f *type_id,
                          void *buf,
@@ -833,7 +823,7 @@ nh5ltread_dataset_dl7_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltread_dataset_nint1_c (hid_t_f *loc_id,
-                           int_f *namelen,
+                           size_t_f *namelen,
                            _fcd name,
                            hid_t_f *type_id,
                            void *buf,
@@ -843,7 +833,7 @@ nh5ltread_dataset_nint1_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltread_dataset_nint2_c (hid_t_f *loc_id,
-                           int_f *namelen,
+                           size_t_f *namelen,
                            _fcd name,
                            hid_t_f *type_id,
                            void *buf,
@@ -853,7 +843,7 @@ nh5ltread_dataset_nint2_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltread_dataset_nint3_c (hid_t_f *loc_id,
-                           int_f *namelen,
+                           size_t_f *namelen,
                            _fcd name,
                            hid_t_f *type_id,
                            void *buf,
@@ -863,7 +853,7 @@ nh5ltread_dataset_nint3_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltread_dataset_nint4_c (hid_t_f *loc_id,
-                           int_f *namelen,
+                           size_t_f *namelen,
                            _fcd name,
                            hid_t_f *type_id,
                            void *buf,
@@ -873,7 +863,7 @@ nh5ltread_dataset_nint4_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltread_dataset_nint5_c (hid_t_f *loc_id,
-                           int_f *namelen,
+                           size_t_f *namelen,
                            _fcd name,
                            hid_t_f *type_id,
                            void *buf,
@@ -883,7 +873,7 @@ nh5ltread_dataset_nint5_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltread_dataset_nint6_c (hid_t_f *loc_id,
-                           int_f *namelen,
+                           size_t_f *namelen,
                            _fcd name,
                            hid_t_f *type_id,
                            void *buf,
@@ -893,7 +883,7 @@ nh5ltread_dataset_nint6_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltread_dataset_nint7_c (hid_t_f *loc_id,
-                           int_f *namelen,
+                           size_t_f *namelen,
                            _fcd name,
                            hid_t_f *type_id,
                            void *buf,
@@ -903,7 +893,7 @@ nh5ltread_dataset_nint7_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltread_dataset_nfl1_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           hid_t_f *type_id,
                           void *buf,
@@ -913,7 +903,7 @@ nh5ltread_dataset_nfl1_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltread_dataset_nfl2_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           hid_t_f *type_id,
                           void *buf,
@@ -923,7 +913,7 @@ nh5ltread_dataset_nfl2_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltread_dataset_nfl3_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           hid_t_f *type_id,
                           void *buf,
@@ -933,7 +923,7 @@ nh5ltread_dataset_nfl3_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltread_dataset_nfl4_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           hid_t_f *type_id,
                           void *buf,
@@ -943,7 +933,7 @@ nh5ltread_dataset_nfl4_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltread_dataset_nfl5_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           hid_t_f *type_id,
                           void *buf,
@@ -953,7 +943,7 @@ nh5ltread_dataset_nfl5_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltread_dataset_nfl6_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           hid_t_f *type_id,
                           void *buf,
@@ -963,7 +953,7 @@ nh5ltread_dataset_nfl6_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltread_dataset_nfl7_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           hid_t_f *type_id,
                           void *buf,
@@ -973,7 +963,7 @@ nh5ltread_dataset_nfl7_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltread_dataset_ndl1_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           hid_t_f *type_id,
                           void *buf,
@@ -983,7 +973,7 @@ nh5ltread_dataset_ndl1_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltread_dataset_ndl2_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           hid_t_f *type_id,
                           void *buf,
@@ -993,7 +983,7 @@ nh5ltread_dataset_ndl2_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltread_dataset_ndl3_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           hid_t_f *type_id,
                           void *buf,
@@ -1003,7 +993,7 @@ nh5ltread_dataset_ndl3_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltread_dataset_ndl4_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           hid_t_f *type_id,
                           void *buf,
@@ -1013,7 +1003,7 @@ nh5ltread_dataset_ndl4_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltread_dataset_ndl5_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           hid_t_f *type_id,
                           void *buf,
@@ -1023,7 +1013,7 @@ nh5ltread_dataset_ndl5_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltread_dataset_ndl6_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           hid_t_f *type_id,
                           void *buf,
@@ -1033,7 +1023,7 @@ nh5ltread_dataset_ndl6_c (hid_t_f *loc_id,
 }
 int_f
 nh5ltread_dataset_ndl7_c (hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
                           hid_t_f *type_id,
                           void *buf,
@@ -1062,29 +1052,25 @@ nh5ltread_dataset_ndl7_c (hid_t_f *loc_id,
 
 int_f
 nh5ltmake_dataset_string_c (hid_t_f *loc_id,
-                            int_f *namelen,
+                            size_t_f *namelen,
                             _fcd name,
-                            int_f *buflen,
+                            size_t_f *buflen,
                             char *buf)
 {
     int     ret_value = -1;
     herr_t  ret;
     hid_t   c_loc_id;
     char    *c_name = NULL;
-    int     c_namelen;
     char    *c_buf = NULL;
-    int     c_buflen;
 
     /*
     * convert FORTRAN name to C name
     */
-    c_namelen = *namelen;
-    c_name = (char *)HD5f2cstring(name, c_namelen);
+    c_name = (char *)HD5f2cstring(name, (size_t)*namelen);
     if (c_name == NULL)
         goto done;
 
-    c_buflen = *buflen;
-    c_buf = (char *)HD5f2cstring(buf, c_buflen);
+    c_buf = (char *)HD5f2cstring(buf, (size_t)*buflen);
     if (c_buf == NULL)
         goto done;
 
@@ -1131,7 +1117,7 @@ done:
 
 int_f
 nh5ltread_dataset_string_c (hid_t_f *loc_id,
-                            int_f *namelen,
+                            size_t_f *namelen,
                             _fcd name,
                             char *buf)
 {
@@ -1139,13 +1125,11 @@ nh5ltread_dataset_string_c (hid_t_f *loc_id,
     herr_t  ret;
     hid_t   c_loc_id;
     char    *c_name = NULL;
-    int     c_namelen;
 
     /*
     * convert FORTRAN name to C name
     */
-    c_namelen = *namelen;
-    c_name = (char *)HD5f2cstring(name, c_namelen);
+    c_name = (char *)HD5f2cstring(name, (size_t)*namelen);
     if (c_name == NULL)
         goto done;
 
@@ -1191,9 +1175,9 @@ done:
 
 int_f
 nh5ltset_attribute_int_c(hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd dsetname,
-                         int_f *attrnamelen,
+                         size_t_f *attrnamelen,
                          _fcd attrname,
                          size_t_f *size,
                          void *buf)
@@ -1203,20 +1187,16 @@ nh5ltset_attribute_int_c(hid_t_f *loc_id,
     hid_t   c_loc_id;
     char    *c_name = NULL;
     char    *c_attrname = NULL;
-    int     c_namelen;
-    int     c_attrnamelen;
     size_t  c_size;
 
     /*
     * convert FORTRAN name to C name
     */
-    c_namelen = *namelen;
-    c_name = (char *)HD5f2cstring(dsetname, c_namelen);
+    c_name = (char *)HD5f2cstring(dsetname, (size_t)*namelen);
     if (c_name == NULL)
         goto done;
 
-    c_attrnamelen = (int)*attrnamelen;
-    c_attrname = (char *)HD5f2cstring(attrname, c_attrnamelen);
+    c_attrname = (char *)HD5f2cstring(attrname, (size_t)*attrnamelen);
     if (c_attrname == NULL)
         goto done;
 
@@ -1227,11 +1207,11 @@ nh5ltset_attribute_int_c(hid_t_f *loc_id,
     c_size   = (size_t)*size;
 
     if (sizeof(int_f) == sizeof(int))
-        ret = H5LTset_attribute_int(c_loc_id,c_name,c_attrname,buf,c_size);
+        ret = H5LTset_attribute_int(c_loc_id,c_name,c_attrname,(const int *)buf,c_size);
     else if (sizeof(int_f) == sizeof(long))
-        ret = H5LTset_attribute_long(c_loc_id,c_name,c_attrname,buf,c_size);
+      ret = H5LTset_attribute_long(c_loc_id,c_name,c_attrname,(const long *)buf,c_size);
     else if (sizeof(int_f) == sizeof(long long))
-        ret = H5LTset_attribute_long_long(c_loc_id,c_name,c_attrname,buf,c_size);
+        ret = H5LTset_attribute_long_long(c_loc_id,c_name,c_attrname,(const long long *)buf,c_size);
     else
         goto done;
 
@@ -1270,9 +1250,9 @@ done:
 
 int_f
 nh5ltset_attribute_float_c(hid_t_f *loc_id,
-                           int_f *namelen,
+                           size_t_f *namelen,
                            _fcd dsetname,
-                           int_f *attrnamelen,
+                           size_t_f *attrnamelen,
                            _fcd attrname,
                            size_t_f *size,
                            void *buf)
@@ -1282,20 +1262,16 @@ nh5ltset_attribute_float_c(hid_t_f *loc_id,
     hid_t   c_loc_id;
     char    *c_name = NULL;
     char    *c_attrname = NULL;
-    int     c_namelen;
-    int     c_attrnamelen;
     size_t  c_size;
 
     /*
     * convert FORTRAN name to C name
     */
-    c_namelen = *namelen;
-    c_name = (char *)HD5f2cstring(dsetname, c_namelen);
+    c_name = (char *)HD5f2cstring(dsetname, (size_t)*namelen);
     if (c_name == NULL)
          goto done;
 
-    c_attrnamelen = *attrnamelen;
-    c_attrname = (char *)HD5f2cstring(attrname, c_attrnamelen);
+    c_attrname = (char *)HD5f2cstring(attrname, (size_t)*attrnamelen);
     if (c_attrname == NULL)
          goto done;
 
@@ -1305,7 +1281,7 @@ nh5ltset_attribute_float_c(hid_t_f *loc_id,
     c_loc_id = (hid_t)*loc_id;
     c_size   = (size_t)*size;
 
-    ret = H5LTset_attribute_float(c_loc_id,c_name,c_attrname,buf,c_size);
+    ret = H5LTset_attribute_float(c_loc_id,c_name,c_attrname,(float *)buf,c_size);
 
     if (ret < 0)
          goto done;
@@ -1343,9 +1319,9 @@ done:
 
 int_f
 nh5ltset_attribute_double_c(hid_t_f *loc_id,
-                            int_f *namelen,
+                            size_t_f *namelen,
                             _fcd dsetname,
-                            int_f *attrnamelen,
+                            size_t_f *attrnamelen,
                             _fcd attrname,
                             size_t_f *size,
                             void *buf)
@@ -1355,20 +1331,16 @@ nh5ltset_attribute_double_c(hid_t_f *loc_id,
     hid_t   c_loc_id;
     char    *c_name = NULL;
     char    *c_attrname = NULL;
-    int     c_namelen;
-    int     c_attrnamelen;
     size_t  c_size;
 
     /*
     * Convert FORTRAN name to C name
     */
-    c_namelen = *namelen;
-    c_name = (char *)HD5f2cstring(dsetname, c_namelen);
+    c_name = (char *)HD5f2cstring(dsetname, (size_t)*namelen);
     if (c_name == NULL)
         goto done;
 
-    c_attrnamelen = *attrnamelen;
-    c_attrname = (char *)HD5f2cstring(attrname, c_attrnamelen);
+    c_attrname = (char *)HD5f2cstring(attrname, (size_t)*attrnamelen);
     if (c_attrname == NULL)
         goto done;
 
@@ -1378,7 +1350,7 @@ nh5ltset_attribute_double_c(hid_t_f *loc_id,
     c_loc_id = (hid_t)*loc_id;
     c_size   = (size_t)*size;
 
-    ret = H5LTset_attribute_double(c_loc_id,c_name,c_attrname,buf,c_size);
+    ret = H5LTset_attribute_double(c_loc_id,c_name,c_attrname,(double *)buf,c_size);
 
     if (ret < 0)
         goto done;
@@ -1416,11 +1388,11 @@ done:
 
 int_f
 nh5ltset_attribute_string_c(hid_t_f *loc_id,
-                            int_f *namelen,
+                            size_t_f *namelen,
                             _fcd dsetname,
-                            int_f *attrnamelen,
+                            size_t_f *attrnamelen,
                             _fcd attrname,
-                            int_f *buflen,
+                            size_t_f *buflen,
                             void *buf)
 {
     int     ret_value = -1;
@@ -1428,26 +1400,20 @@ nh5ltset_attribute_string_c(hid_t_f *loc_id,
     hid_t   c_loc_id;
     char    *c_name = NULL;
     char    *c_attrname = NULL;
-    int     c_namelen;
-    int     c_attrnamelen;
     char    *c_buf = NULL;
-    int     c_buflen;
 
     /*
     * convert FORTRAN name to C name
     */
-    c_namelen = *namelen;
-    c_name = (char *)HD5f2cstring(dsetname, c_namelen);
+    c_name = (char *)HD5f2cstring(dsetname, (size_t)*namelen);
     if (c_name == NULL)
         goto done;
 
-    c_attrnamelen = *attrnamelen;
-    c_attrname = (char *)HD5f2cstring(attrname, c_attrnamelen);
+    c_attrname = (char *)HD5f2cstring(attrname, (size_t)*attrnamelen);
     if (c_attrname == NULL)
         goto done;
 
-    c_buflen = *buflen;
-    c_buf = (char *)HD5f2cstring(buf, c_buflen);
+    c_buf = (char *)HD5f2cstring((_fcd)buf, (size_t)*buflen);
     if (c_buf == NULL)
         goto done;
 
@@ -1497,9 +1463,9 @@ done:
 
 int_f
 nh5ltget_attribute_int_c(hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd dsetname,
-                         int_f *attrnamelen,
+                         size_t_f *attrnamelen,
                          _fcd attrname,
                          void *buf)
 {
@@ -1508,19 +1474,15 @@ nh5ltget_attribute_int_c(hid_t_f *loc_id,
     hid_t   c_loc_id;
     char    *c_name = NULL;
     char    *c_attrname = NULL;
-    int     c_namelen;
-    int     c_attrnamelen;
 
     /*
     * convert FORTRAN name to C name
     */
-    c_namelen = (int)*namelen;
-    c_name = (char *)HD5f2cstring(dsetname, c_namelen);
+    c_name = (char *)HD5f2cstring(dsetname, (size_t)*namelen);
     if (c_name == NULL)
         goto done;
 
-    c_attrnamelen = (int)*attrnamelen;
-    c_attrname = (char *)HD5f2cstring(attrname, c_attrnamelen);
+    c_attrname = (char *)HD5f2cstring(attrname, (size_t)*attrnamelen);
     if (c_attrname == NULL)
         goto done;
 
@@ -1530,11 +1492,11 @@ nh5ltget_attribute_int_c(hid_t_f *loc_id,
     c_loc_id = (hid_t)*loc_id;
 
     if(sizeof(int_f) == sizeof(int))
-        ret = H5LTget_attribute_int(c_loc_id,c_name,c_attrname,buf);
+      ret = H5LTget_attribute_int(c_loc_id,c_name,c_attrname,(int *)buf);
     else if (sizeof(int_f) == sizeof(long))
-        ret = H5LTget_attribute_long(c_loc_id,c_name,c_attrname,buf);
+      ret = H5LTget_attribute_long(c_loc_id,c_name,c_attrname,(long *)buf);
     else if (sizeof(int_f) == sizeof(long long))
-        ret = H5LTget_attribute_long_long(c_loc_id,c_name,c_attrname,buf);
+      ret = H5LTget_attribute_long_long(c_loc_id,c_name,c_attrname,(long long *)buf);
     else
         goto done;
 
@@ -1575,9 +1537,9 @@ done:
 
 int_f
 nh5ltget_attribute_float_c(hid_t_f *loc_id,
-                           int_f *namelen,
+                           size_t_f *namelen,
                            _fcd dsetname,
-                           int_f *attrnamelen,
+                           size_t_f *attrnamelen,
                            _fcd attrname,
                            void *buf)
 {
@@ -1586,19 +1548,15 @@ nh5ltget_attribute_float_c(hid_t_f *loc_id,
     hid_t   c_loc_id;
     char    *c_name = NULL;
     char    *c_attrname = NULL;
-    int     c_namelen;
-    int     c_attrnamelen;
 
     /*
     * convert FORTRAN name to C name
     */
-    c_namelen = (int)*namelen;
-    c_name = (char *)HD5f2cstring(dsetname, c_namelen);
+    c_name = (char *)HD5f2cstring(dsetname, (size_t)*namelen);
     if (c_name == NULL)
         goto done;
 
-    c_attrnamelen = (int)*attrnamelen;
-    c_attrname = (char *)HD5f2cstring(attrname, c_attrnamelen);
+    c_attrname = (char *)HD5f2cstring(attrname, (size_t)*attrnamelen);
     if (c_attrname == NULL)
         goto done;
 
@@ -1607,7 +1565,7 @@ nh5ltget_attribute_float_c(hid_t_f *loc_id,
     */
     c_loc_id = (hid_t)*loc_id;
 
-    ret = H5LTget_attribute_float(c_loc_id,c_name,c_attrname,buf);
+    ret = H5LTget_attribute_float(c_loc_id,c_name,c_attrname,(float*)buf);
 
     if (ret < 0)
         goto done;
@@ -1644,9 +1602,9 @@ done:
 
 int_f
 nh5ltget_attribute_double_c(hid_t_f *loc_id,
-                            int_f *namelen,
+                            size_t_f *namelen,
                             _fcd dsetname,
-                            int_f *attrnamelen,
+                            size_t_f *attrnamelen,
                             _fcd attrname,
                             void *buf)
 {
@@ -1655,19 +1613,15 @@ nh5ltget_attribute_double_c(hid_t_f *loc_id,
     hid_t   c_loc_id;
     char    *c_name = NULL;
     char    *c_attrname = NULL;
-    int     c_namelen;
-    int     c_attrnamelen;
 
     /*
     * convert FORTRAN name to C name
     */
-    c_namelen = (int)*namelen;
-    c_name = (char *)HD5f2cstring(dsetname, c_namelen);
+    c_name = (char *)HD5f2cstring(dsetname, (size_t)*namelen);
     if (c_name == NULL)
         goto done;
 
-    c_attrnamelen = (int)*attrnamelen;
-    c_attrname = (char *)HD5f2cstring(attrname, c_attrnamelen);
+    c_attrname = (char *)HD5f2cstring(attrname, (size_t)*attrnamelen);
     if (c_attrname == NULL)
         goto done;
 
@@ -1676,7 +1630,7 @@ nh5ltget_attribute_double_c(hid_t_f *loc_id,
     */
     c_loc_id = (hid_t)*loc_id;
 
-    ret = H5LTget_attribute_double(c_loc_id,c_name,c_attrname,buf);
+    ret = H5LTget_attribute_double(c_loc_id,c_name,c_attrname,(double *)buf);
 
     if (ret < 0)
         goto done;
@@ -1714,9 +1668,9 @@ done:
 
 int_f
 nh5ltget_attribute_string_c(hid_t_f *loc_id,
-                            int_f *namelen,
+                            size_t_f *namelen,
                             _fcd dsetname,
-                            int_f *attrnamelen,
+                            size_t_f *attrnamelen,
                             _fcd attrname,
                             _fcd buf, size_t_f *buf_size)
 {
@@ -1725,25 +1679,21 @@ nh5ltget_attribute_string_c(hid_t_f *loc_id,
     char    *c_name = NULL;
     char    *c_attrname = NULL;
     char    *c_buf = NULL;
-    int     c_namelen;
-    int     c_attrnamelen;
 
     /*
     * Convert FORTRAN name to C name
     */
-    c_namelen = (int)*namelen;
-    c_name = (char *)HD5f2cstring(dsetname, c_namelen);
+    c_name = (char *)HD5f2cstring(dsetname, (size_t)*namelen);
     if (c_name == NULL)
         goto done;
 
-    c_attrnamelen = (int)*attrnamelen;
-    c_attrname = (char *)HD5f2cstring(attrname, c_attrnamelen);
+    c_attrname = (char *)HD5f2cstring(attrname, (size_t)*attrnamelen);
     if (c_attrname == NULL)
         goto done;
     /*
      * Allocate buffer to hold C attribute string
      */
-    if ((c_buf = HDmalloc((size_t)*buf_size + 1)) == NULL)
+    if ((c_buf = (char *)HDmalloc((size_t)*buf_size + 1)) == NULL)
       goto done;
 
     /*
@@ -1793,7 +1743,7 @@ done:
 
 int_f
 nh5ltget_dataset_ndims_c(hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          int_f *rank)
 {
@@ -1801,14 +1751,12 @@ nh5ltget_dataset_ndims_c(hid_t_f *loc_id,
     herr_t  ret;
     hid_t   c_loc_id;
     char    *c_name = NULL;
-    int     c_namelen;
     int     c_rank;
 
     /*
     * Convert FORTRAN name to C name
     */
-    c_namelen = (int)*namelen;
-    c_name = (char *)HD5f2cstring(name, c_namelen);
+    c_name = (char *)HD5f2cstring(name, (size_t)*namelen);
     if (c_name == NULL)
         goto done;
 
@@ -1855,19 +1803,17 @@ done:
 
 int_f
 nh5ltfind_dataset_c(hid_t_f *loc_id,
-                    int_f *namelen,
+                    size_t_f *namelen,
                     _fcd name)
 {
     hid_t   c_loc_id;
     char    *c_name = NULL;
-    int     c_namelen;
     herr_t  ret;
 
     /*
     * Convert FORTRAN name to C name
     */
-    c_namelen = (int)*namelen;
-    c_name = (char *)HD5f2cstring(name, c_namelen);
+    c_name = (char *)HD5f2cstring(name, (size_t)*namelen);
     if (c_name == NULL) return -1;
 
     /*
@@ -1905,7 +1851,7 @@ nh5ltfind_dataset_c(hid_t_f *loc_id,
 
 int_f
 nh5ltget_dataset_info_c(hid_t_f *loc_id,
-                        int_f *namelen,
+                        size_t_f *namelen,
                         _fcd name,
                         hsize_t_f *dims,
                         int_f *type_class,
@@ -1915,7 +1861,6 @@ nh5ltget_dataset_info_c(hid_t_f *loc_id,
     herr_t       ret;
     hid_t        c_loc_id;
     char         *c_name = NULL;
-    int          c_namelen;
     H5T_class_t  c_classtype;
     size_t       c_type_size;
     hsize_t      c_dims[32];
@@ -1925,8 +1870,7 @@ nh5ltget_dataset_info_c(hid_t_f *loc_id,
     /*
     * convert FORTRAN name to C name
     */
-    c_namelen = (int)*namelen;
-    c_name = (char *)HD5f2cstring(name, c_namelen);
+    c_name = (char *)HD5f2cstring(name, (size_t)*namelen);
     if (c_name == NULL)
         goto done;
 
@@ -1986,9 +1930,9 @@ done:
 
 int_f
 nh5ltget_attribute_ndims_c(hid_t_f *loc_id,
-                           int_f *namelen,
+                           size_t_f *namelen,
                            _fcd dsetname,
-                           int_f *attrnamelen,
+                           size_t_f *attrnamelen,
                            _fcd attrname,
                            int_f *rank)
 {
@@ -1997,20 +1941,16 @@ nh5ltget_attribute_ndims_c(hid_t_f *loc_id,
     hid_t   c_loc_id;
     char    *c_name = NULL;
     char    *c_attrname = NULL;
-    int     c_namelen;
-    int     c_attrnamelen;
     int     c_rank;
 
     /*
     * Convert FORTRAN name to C name
     */
-    c_namelen =(int) *namelen;
-    c_name = (char *)HD5f2cstring(dsetname, c_namelen);
+    c_name = (char *)HD5f2cstring(dsetname, (size_t)*namelen);
     if (c_name == NULL)
         goto done;
 
-    c_attrnamelen = (int)*attrnamelen;
-    c_attrname = (char *)HD5f2cstring(attrname, c_attrnamelen);
+    c_attrname = (char *)HD5f2cstring(attrname, (size_t)*attrnamelen);
     if (c_attrname == NULL)
         goto done;
 
@@ -2059,9 +1999,9 @@ done:
 
 int_f
 nh5ltget_attribute_info_c(hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
-                          int_f *attrnamelen,
+                          size_t_f *attrnamelen,
                           _fcd attrname,
                           hsize_t_f *dims,
                           int_f *type_class,
@@ -2072,8 +2012,6 @@ nh5ltget_attribute_info_c(hid_t_f *loc_id,
     hid_t        c_loc_id;
     char         *c_name = NULL;
     char         *c_attrname = NULL;
-    int          c_namelen;
-    int          c_attrnamelen;
     H5T_class_t  c_classtype;
     size_t       c_type_size;
     hsize_t      c_dims[32];
@@ -2083,13 +2021,11 @@ nh5ltget_attribute_info_c(hid_t_f *loc_id,
     /*
     * convert FORTRAN name to C name
     */
-    c_namelen = (int)*namelen;
-    c_name = (char *)HD5f2cstring(name, c_namelen);
+    c_name = (char *)HD5f2cstring(name, (size_t)*namelen);
     if (c_name == NULL)
         goto done;
 
-    c_attrnamelen = (int)*attrnamelen;
-    c_attrname = (char *)HD5f2cstring(attrname, c_attrnamelen);
+    c_attrname = (char *)HD5f2cstring(attrname, (size_t)*attrnamelen);
     if (c_attrname == NULL)
         goto done;
 
@@ -2152,9 +2088,9 @@ done:
 
 int_f
 nh5ltpath_valid_c(hid_t_f *loc_id, 
-		  _fcd path, 
-		  int_f *pathlen, 
-		  int_f *check_object_valid_c)
+                  _fcd path, 
+                  size_t_f *pathlen, 
+                  int_f *check_object_valid_c)
 {
     htri_t ret = -1;
     char *c_path = NULL;
diff --git a/hl/fortran/src/H5LTff.f90 b/hl/fortran/src/H5LTff.f90
index b384821..9393f7f 100644
--- a/hl/fortran/src/H5LTff.f90
+++ b/hl/fortran/src/H5LTff.f90
@@ -163,7 +163,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltmake_dataset_f_int1
     !DEC$endif
     !
@@ -171,25 +171,26 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER,          INTENT(in) :: rank               ! rank
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER(hid_t),   INTENT(in) :: type_id            ! datatype identifier
     INTEGER, INTENT(in), DIMENSION(*) :: buf           ! data buffer
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                         ! name length
 
     INTERFACE
        INTEGER FUNCTION h5ltmake_dataset_int1_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_INT1_C'::h5ltmake_dataset_int1_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          INTEGER,          INTENT(in) :: rank                    ! rank
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          INTEGER, INTENT(in), DIMENSION(*) :: buf                ! data buffer
        END FUNCTION h5ltmake_dataset_int1_c
     END INTERFACE
@@ -228,7 +229,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltmake_dataset_f_int2
     !DEC$endif
     !
@@ -236,26 +237,27 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER,          INTENT(in) :: rank               ! rank
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER(hid_t),   INTENT(in) :: type_id            ! datatype identifier
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     INTEGER, INTENT(in), &
          DIMENSION(dims(1),dims(2)) :: buf                  ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltmake_dataset_int2_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_INT2_C'::h5ltmake_dataset_int2_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                              ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          INTEGER,          INTENT(in) :: rank                    ! rank
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          INTEGER, INTENT(in), &
               DIMENSION(dims(1),dims(2)) :: buf                       ! data buffer
        END FUNCTION h5ltmake_dataset_int2_c
@@ -295,7 +297,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltmake_dataset_f_int3
     !DEC$endif
     !
@@ -303,26 +305,27 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER,          INTENT(in) :: rank               ! rank
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER(hid_t),   INTENT(in) :: type_id            ! datatype identifier
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     INTEGER, INTENT(in), &
          DIMENSION(dims(1),dims(2),dims(3)) :: buf          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltmake_dataset_int3_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_INT3_C'::h5ltmake_dataset_int3_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          INTEGER,          INTENT(in) :: rank                    ! rank
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          INTEGER, INTENT(in), &
               DIMENSION(dims(1),dims(2),dims(3)) :: buf               ! data buffer
        END FUNCTION h5ltmake_dataset_int3_c
@@ -357,7 +360,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltmake_dataset_f_int4
     !DEC$endif
     !
@@ -365,26 +368,27 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER,          INTENT(in) :: rank               ! rank
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER(hid_t),   INTENT(in) :: type_id            ! datatype identifier
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     INTEGER, INTENT(in), &
          DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf  ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltmake_dataset_int4_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_INT4_C'::h5ltmake_dataset_int4_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          INTEGER,          INTENT(in) :: rank                    ! rank
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          INTEGER, INTENT(in), &
               DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf      ! data buffer
        END FUNCTION h5ltmake_dataset_int4_c
@@ -419,7 +423,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltmake_dataset_f_int5
     !DEC$endif
     !
@@ -427,26 +431,27 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER,          INTENT(in) :: rank               ! rank
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER(hid_t),   INTENT(in) :: type_id            ! datatype identifier
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     INTEGER, INTENT(in), &
          DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf  ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltmake_dataset_int5_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_INT5_C'::h5ltmake_dataset_int5_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          INTEGER,          INTENT(in) :: rank                    ! rank
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          INTEGER, INTENT(in), &
               DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf      ! data buffer
        END FUNCTION h5ltmake_dataset_int5_c
@@ -481,7 +486,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltmake_dataset_f_int6
     !DEC$endif
     !
@@ -489,26 +494,27 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER,          INTENT(in) :: rank               ! rank
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER(hid_t),   INTENT(in) :: type_id            ! datatype identifier
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     INTEGER, INTENT(in), &
          DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf  ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltmake_dataset_int6_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_INT6_C'::h5ltmake_dataset_int6_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          INTEGER,          INTENT(in) :: rank                    ! rank
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          INTEGER, INTENT(in), &
               DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf      ! data buffer
        END FUNCTION h5ltmake_dataset_int6_c
@@ -543,7 +549,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltmake_dataset_f_int7
     !DEC$endif
     !
@@ -551,26 +557,27 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER,          INTENT(in) :: rank               ! rank
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER(hid_t),   INTENT(in) :: type_id            ! datatype identifier
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     INTEGER, INTENT(in), &
          DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf  ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltmake_dataset_int7_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_INT7_C'::h5ltmake_dataset_int7_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          INTEGER,          INTENT(in) :: rank                    ! rank
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          INTEGER, INTENT(in), &
               DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf      ! data buffer
        END FUNCTION h5ltmake_dataset_int7_c
@@ -611,7 +618,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltmake_dataset_f_float1
     !DEC$endif
     !
@@ -619,25 +626,26 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER,          INTENT(in) :: rank               ! rank
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER(hid_t),   INTENT(in) :: type_id            ! datatype identifier
     REAL, INTENT(in), DIMENSION(*) :: buf              ! data buffer
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
 
     INTERFACE
        INTEGER FUNCTION h5ltmake_dataset_fl1_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_FL1_C'::h5ltmake_dataset_fl1_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          INTEGER,          INTENT(in) :: rank                    ! rank
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          REAL, INTENT(in), DIMENSION(*) :: buf                   ! data buffer
        END FUNCTION h5ltmake_dataset_fl1_c
     END INTERFACE
@@ -676,7 +684,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltmake_dataset_f_float2
     !DEC$endif
     !
@@ -684,26 +692,27 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER,          INTENT(in) :: rank               ! rank
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER(hid_t),   INTENT(in) :: type_id            ! datatype identifier
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     REAL, INTENT(in), &
          DIMENSION(dims(1),dims(2)) :: buf                  ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltmake_dataset_fl2_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_FL2_C'::h5ltmake_dataset_fl2_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          INTEGER,          INTENT(in) :: rank                    ! rank
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          REAL, INTENT(in), &
               DIMENSION(dims(1),dims(2)) :: buf                       ! data buffer
        END FUNCTION h5ltmake_dataset_fl2_c
@@ -743,7 +752,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltmake_dataset_f_float3
     !DEC$endif
     !
@@ -751,26 +760,27 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER,          INTENT(in) :: rank               ! rank
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER(hid_t),   INTENT(in) :: type_id            ! datatype identifier
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     REAL, INTENT(in), &
          DIMENSION(dims(1),dims(2),dims(3)) :: buf          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltmake_dataset_fl3_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_FL3_C'::h5ltmake_dataset_fl3_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          INTEGER,          INTENT(in) :: rank                    ! rank
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          REAL, INTENT(in), &
               DIMENSION(dims(1),dims(2),dims(3)) :: buf               ! data buffer
        END FUNCTION h5ltmake_dataset_fl3_c
@@ -805,7 +815,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltmake_dataset_f_float4
     !DEC$endif
     !
@@ -813,26 +823,27 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER,          INTENT(in) :: rank               ! rank
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER(hid_t),   INTENT(in) :: type_id            ! datatype identifier
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     REAL, INTENT(in), &
          DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltmake_dataset_fl4_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_FL4_C'::h5ltmake_dataset_fl4_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          INTEGER,          INTENT(in) :: rank                    ! rank
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          REAL, INTENT(in), &
               DIMENSION(dims(1),dims(2),dims(3), dims(4)) :: buf ! data buffer
        END FUNCTION h5ltmake_dataset_fl4_c
@@ -867,7 +878,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltmake_dataset_f_float5
     !DEC$endif
     !
@@ -875,26 +886,27 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER,          INTENT(in) :: rank               ! rank
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER(hid_t),   INTENT(in) :: type_id            ! datatype identifier
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     REAL, INTENT(in), &
          DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltmake_dataset_fl5_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_FL5_C'::h5ltmake_dataset_fl5_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          INTEGER,          INTENT(in) :: rank                    ! rank
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          REAL, INTENT(in), &
               DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf ! data buffer
        END FUNCTION h5ltmake_dataset_fl5_c
@@ -929,7 +941,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltmake_dataset_f_float6
     !DEC$endif
     !
@@ -937,26 +949,27 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER,          INTENT(in) :: rank               ! rank
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER(hid_t),   INTENT(in) :: type_id            ! datatype identifier
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     REAL, INTENT(in), &
          DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltmake_dataset_fl6_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_FL6_C'::h5ltmake_dataset_fl6_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          INTEGER,          INTENT(in) :: rank                    ! rank
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          REAL, INTENT(in), &
               DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf ! data buffer
        END FUNCTION h5ltmake_dataset_fl6_c
@@ -991,7 +1004,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltmake_dataset_f_float7
     !DEC$endif
     !
@@ -999,26 +1012,27 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER,          INTENT(in) :: rank               ! rank
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER(hid_t),   INTENT(in) :: type_id            ! datatype identifier
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     REAL, INTENT(in), &
          DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltmake_dataset_fl7_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_FL7_C'::h5ltmake_dataset_fl7_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          INTEGER,          INTENT(in) :: rank                    ! rank
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          REAL, INTENT(in), &
               DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf ! data buffer
        END FUNCTION h5ltmake_dataset_fl7_c
@@ -1058,7 +1072,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltmake_dataset_f_double1
     !DEC$endif
     !
@@ -1066,25 +1080,26 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER,          INTENT(in) :: rank               ! rank
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER(hid_t),   INTENT(in) :: type_id            ! datatype identifier
     DOUBLE PRECISION, INTENT(in), DIMENSION(*) :: buf  ! data buffer
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
 
     INTERFACE
        INTEGER FUNCTION h5ltmake_dataset_dl1_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_DL1_C'::h5ltmake_dataset_dl1_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          INTEGER,          INTENT(in) :: rank                    ! rank
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          DOUBLE PRECISION, INTENT(in), DIMENSION(*) :: buf       ! data buffer
        END FUNCTION h5ltmake_dataset_dl1_c
     END INTERFACE
@@ -1123,7 +1138,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltmake_dataset_f_double2
     !DEC$endif
     !
@@ -1131,26 +1146,27 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER,          INTENT(in) :: rank               ! rank
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER(hid_t),   INTENT(in) :: type_id            ! datatype identifier
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     DOUBLE PRECISION, INTENT(in), &
          DIMENSION(dims(1),dims(2)) :: buf                  ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltmake_dataset_dl2_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_DL2_C'::h5ltmake_dataset_dl2_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          INTEGER,          INTENT(in) :: rank                    ! rank
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          DOUBLE PRECISION, INTENT(in), &
               DIMENSION(dims(1),dims(2)) :: buf                       ! data buffer
        END FUNCTION h5ltmake_dataset_dl2_c
@@ -1190,7 +1206,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltmake_dataset_f_double3
     !DEC$endif
     !
@@ -1198,26 +1214,27 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER,          INTENT(in) :: rank               ! rank
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER(hid_t),   INTENT(in) :: type_id            ! datatype identifier
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     DOUBLE PRECISION, INTENT(in), &
          DIMENSION(dims(1),dims(2),dims(3)) :: buf          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltmake_dataset_dl3_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_DL3_C'::h5ltmake_dataset_dl3_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          INTEGER,          INTENT(in) :: rank                    ! rank
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          DOUBLE PRECISION, INTENT(in), &
               DIMENSION(dims(1),dims(2),dims(3)) :: buf               ! data buffer
        END FUNCTION h5ltmake_dataset_dl3_c
@@ -1252,7 +1269,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltmake_dataset_f_double4
     !DEC$endif
     !
@@ -1260,26 +1277,27 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER,          INTENT(in) :: rank               ! rank
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER(hid_t),   INTENT(in) :: type_id            ! datatype identifier
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     DOUBLE PRECISION, INTENT(in), &
          DIMENSION(dims(1),dims(2),dims(3), dims(4)) :: buf          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltmake_dataset_dl4_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_DL4_C'::h5ltmake_dataset_dl4_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          INTEGER,          INTENT(in) :: rank                    ! rank
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          DOUBLE PRECISION, INTENT(in), &
               DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf  ! data buffer
        END FUNCTION h5ltmake_dataset_dl4_c
@@ -1314,7 +1332,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltmake_dataset_f_double5
     !DEC$endif
     !
@@ -1322,26 +1340,27 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER,          INTENT(in) :: rank               ! rank
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER(hid_t),   INTENT(in) :: type_id            ! datatype identifier
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     DOUBLE PRECISION, INTENT(in), &
          DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltmake_dataset_dl5_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_DL5_C'::h5ltmake_dataset_dl5_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          INTEGER,          INTENT(in) :: rank                    ! rank
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          DOUBLE PRECISION, INTENT(in), &
               DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf  ! data buffer
        END FUNCTION h5ltmake_dataset_dl5_c
@@ -1376,7 +1395,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltmake_dataset_f_double6
     !DEC$endif
     !
@@ -1384,26 +1403,27 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER,          INTENT(in) :: rank               ! rank
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER(hid_t),   INTENT(in) :: type_id            ! datatype identifier
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     DOUBLE PRECISION, INTENT(in), &
          DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltmake_dataset_dl6_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_DL6_C'::h5ltmake_dataset_dl6_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          INTEGER,          INTENT(in) :: rank                    ! rank
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          DOUBLE PRECISION, INTENT(in), &
               DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf  ! data buffer
        END FUNCTION h5ltmake_dataset_dl6_c
@@ -1438,7 +1458,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltmake_dataset_f_double7
     !DEC$endif
     !
@@ -1446,26 +1466,27 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER,          INTENT(in) :: rank               ! rank
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER(hid_t),   INTENT(in) :: type_id            ! datatype identifier
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     DOUBLE PRECISION, INTENT(in), &
          DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltmake_dataset_dl7_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_DL7_C'::h5ltmake_dataset_dl7_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          INTEGER,          INTENT(in) :: rank                    ! rank
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          DOUBLE PRECISION, INTENT(in), &
               DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf  ! data buffer
        END FUNCTION h5ltmake_dataset_dl7_c
@@ -1504,7 +1525,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltread_dataset_f_int1
     !DEC$endif
     !
@@ -1512,23 +1533,24 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER(hid_t),   INTENT(in) :: type_id            ! datatype identifier
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER, INTENT(inout), DIMENSION(*) :: buf        ! data buffer
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
 
     INTERFACE
        INTEGER FUNCTION h5ltread_dataset_int1_c(loc_id,namelen,dset_name,type_id,buf,dims)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_INT1_C'::h5ltread_dataset_int1_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(HID_T),   INTENT(IN) :: loc_id                  ! file or group identifier
          INTEGER(HID_T),   INTENT(IN) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(LEN=*), INTENT(IN) :: dset_name               ! name of the dataset
-         INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: dims      ! size of the bufffer buf
+         INTEGER(HSIZE_T), DIMENSION(*), INTENT(IN) :: dims      ! size of the buffer buf
          INTEGER, INTENT(IN), DIMENSION(*) :: buf                ! data buffer
        END FUNCTION h5ltread_dataset_int1_c
     END INTERFACE
@@ -1566,7 +1588,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltread_dataset_f_int2
     !DEC$endif
     !
@@ -1574,24 +1596,25 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER(hid_t),   INTENT(in) :: type_id            ! datatype identifier
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     INTEGER, INTENT(inout), &
          DIMENSION(dims(1),dims(2)) :: buf                  ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltread_dataset_int2_c(loc_id,namelen,dset_name,type_id,buf,dims)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_INT2_C'::h5ltread_dataset_int2_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          INTEGER, INTENT(in), &
               DIMENSION(dims(1),dims(2)) :: buf                       ! data buffer
        END FUNCTION h5ltread_dataset_int2_c
@@ -1630,7 +1653,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltread_dataset_f_int3
     !DEC$endif
     !
@@ -1638,24 +1661,25 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER(hid_t),   INTENT(in) :: type_id            ! datatype identifier
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     INTEGER, INTENT(inout), &
          DIMENSION(dims(1),dims(2),dims(3)) :: buf          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltread_dataset_int3_c(loc_id,namelen,dset_name,type_id,buf,dims)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_INT3_C'::h5ltread_dataset_int3_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          INTEGER, INTENT(in), &
               DIMENSION(dims(1),dims(2),dims(3)) :: buf               ! data buffer
        END FUNCTION h5ltread_dataset_int3_c
@@ -1690,7 +1714,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltread_dataset_f_int4
     !DEC$endif
     !
@@ -1698,24 +1722,25 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER(hid_t),   INTENT(in) :: type_id            ! datatype identifier
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     INTEGER, INTENT(inout), &
          DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltread_dataset_int4_c(loc_id,namelen,dset_name,type_id,buf,dims)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_INT4_C'::h5ltread_dataset_int4_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          INTEGER, INTENT(in), &
               DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf               ! data buffer
        END FUNCTION h5ltread_dataset_int4_c
@@ -1750,7 +1775,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltread_dataset_f_int5
     !DEC$endif
     !
@@ -1758,24 +1783,25 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER(hid_t),   INTENT(in) :: type_id            ! datatype identifier
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     INTEGER, INTENT(inout), &
          DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltread_dataset_int5_c(loc_id,namelen,dset_name,type_id,buf,dims)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_INT5_C'::h5ltread_dataset_int5_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          INTEGER, INTENT(in), &
               DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf               ! data buffer
        END FUNCTION h5ltread_dataset_int5_c
@@ -1810,7 +1836,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltread_dataset_f_int6
     !DEC$endif
     !
@@ -1818,24 +1844,25 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER(hid_t),   INTENT(in) :: type_id            ! datatype identifier
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     INTEGER, INTENT(inout), &
          DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltread_dataset_int6_c(loc_id,namelen,dset_name,type_id,buf,dims)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_INT6_C'::h5ltread_dataset_int6_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          INTEGER, INTENT(in), &
               DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf               ! data buffer
        END FUNCTION h5ltread_dataset_int6_c
@@ -1870,7 +1897,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltread_dataset_f_int7
     !DEC$endif
     !
@@ -1878,24 +1905,25 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER(hid_t),   INTENT(in) :: type_id            ! datatype identifier
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     INTEGER, INTENT(inout), &
          DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltread_dataset_int7_c(loc_id,namelen,dset_name,type_id,buf,dims)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_INT7_C'::h5ltread_dataset_int7_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          INTEGER, INTENT(in), &
               DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf               ! data buffer
        END FUNCTION h5ltread_dataset_int7_c
@@ -1935,7 +1963,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltread_dataset_f_float1
     !DEC$endif
     !
@@ -1943,23 +1971,24 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER(hid_t),   INTENT(in) :: type_id            ! datatype identifier
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     REAL, INTENT(inout), DIMENSION(*) :: buf           ! data buffer
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
 
     INTERFACE
        INTEGER FUNCTION h5ltread_dataset_fl1_c(loc_id,namelen,dset_name,type_id,buf,dims)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_FL1_C'::h5ltread_dataset_fl1_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          REAL, INTENT(in), DIMENSION(*) :: buf                   ! data buffer
        END FUNCTION h5ltread_dataset_fl1_c
     END INTERFACE
@@ -1997,7 +2026,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltread_dataset_f_float2
     !DEC$endif
     !
@@ -2006,24 +2035,25 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER(hid_t),   INTENT(in) :: type_id            ! datatype identifier
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     REAL, INTENT(inout), &
          DIMENSION(dims(1),dims(2)) :: buf                  ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltread_dataset_fl2_c(loc_id,namelen,dset_name,type_id,buf,dims)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_FL2_C'::h5ltread_dataset_fl2_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          REAL, INTENT(in), &
               DIMENSION(dims(1),dims(2)) :: buf                       ! data buffer
        END FUNCTION h5ltread_dataset_fl2_c
@@ -2062,7 +2092,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltread_dataset_f_float3
     !DEC$endif
     !
@@ -2070,24 +2100,25 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER(hid_t),   INTENT(in) :: type_id            ! datatype identifier
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     REAL, INTENT(inout), &
          DIMENSION(dims(1),dims(2),dims(3)) :: buf          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltread_dataset_fl3_c(loc_id,namelen,dset_name,type_id,buf,dims)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_FL3_C'::h5ltread_dataset_fl3_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          REAL, INTENT(in), &
               DIMENSION(dims(1),dims(2),dims(3)) :: buf               ! data buffer
        END FUNCTION h5ltread_dataset_fl3_c
@@ -2122,7 +2153,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltread_dataset_f_float4
     !DEC$endif
     !
@@ -2130,24 +2161,25 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER(hid_t),   INTENT(in) :: type_id            ! datatype identifier
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     REAL, INTENT(inout), &
          DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltread_dataset_fl4_c(loc_id,namelen,dset_name,type_id,buf,dims)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_FL4_C'::h5ltread_dataset_fl4_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          REAL, INTENT(in), &
               DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf               ! data buffer
        END FUNCTION h5ltread_dataset_fl4_c
@@ -2182,7 +2214,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltread_dataset_f_float5
     !DEC$endif
     !
@@ -2190,24 +2222,25 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER(hid_t),   INTENT(in) :: type_id            ! datatype identifier
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     REAL, INTENT(inout), &
          DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltread_dataset_fl5_c(loc_id,namelen,dset_name,type_id,buf,dims)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_FL5_C'::h5ltread_dataset_fl5_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          REAL, INTENT(in), &
               DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf               ! data buffer
        END FUNCTION h5ltread_dataset_fl5_c
@@ -2242,7 +2275,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltread_dataset_f_float6
     !DEC$endif
     !
@@ -2250,24 +2283,25 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER(hid_t),   INTENT(in) :: type_id            ! datatype identifier
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     REAL, INTENT(inout), &
          DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltread_dataset_fl6_c(loc_id,namelen,dset_name,type_id,buf,dims)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_FL6_C'::h5ltread_dataset_fl6_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          REAL, INTENT(in), &
               DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf               ! data buffer
        END FUNCTION h5ltread_dataset_fl6_c
@@ -2302,7 +2336,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltread_dataset_f_float7
     !DEC$endif
     !
@@ -2310,24 +2344,25 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER(hid_t),   INTENT(in) :: type_id            ! datatype identifier
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     REAL, INTENT(inout), &
          DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltread_dataset_fl7_c(loc_id,namelen,dset_name,type_id,buf,dims)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_FL7_C'::h5ltread_dataset_fl7_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          REAL, INTENT(in), &
               DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf               ! data buffer
        END FUNCTION h5ltread_dataset_fl7_c
@@ -2367,7 +2402,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport ::h5ltread_dataset_f_double1
     !DEC$endif
     !
@@ -2375,23 +2410,24 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER(hid_t),   INTENT(in) :: type_id            ! datatype identifier
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     DOUBLE PRECISION, INTENT(inout), DIMENSION(*) :: buf ! data buffer
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
 
     INTERFACE
        INTEGER FUNCTION h5ltread_dataset_dl1_c(loc_id,namelen,dset_name,type_id,buf,dims)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_DL1_C'::h5ltread_dataset_dl1_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          DOUBLE PRECISION, INTENT(in), DIMENSION(*) :: buf       ! data buffer
        END FUNCTION h5ltread_dataset_dl1_c
     END INTERFACE
@@ -2429,7 +2465,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltread_dataset_f_double2
     !DEC$endif
     !
@@ -2437,24 +2473,25 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER(hid_t),   INTENT(in) :: type_id            ! datatype identifier
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     DOUBLE PRECISION, INTENT(inout), &
          DIMENSION(dims(1),dims(2)) :: buf                  ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltread_dataset_dl2_c(loc_id,namelen,dset_name,type_id,buf,dims)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_DL2_C'::h5ltread_dataset_dl2_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          DOUBLE PRECISION, INTENT(in), &
               DIMENSION(dims(1),dims(2)) :: buf                       ! data buffer
        END FUNCTION h5ltread_dataset_dl2_c
@@ -2493,7 +2530,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltread_dataset_f_double3
     !DEC$endif
     !
@@ -2501,24 +2538,25 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER(hid_t),   INTENT(in) :: type_id            ! datatype identifier
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     DOUBLE PRECISION, INTENT(inout), &
          DIMENSION(dims(1),dims(2),dims(3)) :: buf          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltread_dataset_dl3_c(loc_id,namelen,dset_name,type_id,buf,dims)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_DL3_C'::h5ltread_dataset_dl3_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          DOUBLE PRECISION, INTENT(in), &
               DIMENSION(dims(1),dims(2),dims(3)) :: buf               ! data buffer
        END FUNCTION h5ltread_dataset_dl3_c
@@ -2553,7 +2591,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltread_dataset_f_double4
     !DEC$endif
     !
@@ -2561,24 +2599,25 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER(hid_t),   INTENT(in) :: type_id            ! datatype identifier
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     DOUBLE PRECISION, INTENT(inout), &
          DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltread_dataset_dl4_c(loc_id,namelen,dset_name,type_id,buf,dims)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_DL4_C'::h5ltread_dataset_dl4_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          DOUBLE PRECISION, INTENT(in), &
               DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf               ! data buffer
        END FUNCTION h5ltread_dataset_dl4_c
@@ -2613,7 +2652,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltread_dataset_f_double5
     !DEC$endif
     !
@@ -2621,24 +2660,25 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER(hid_t),   INTENT(in) :: type_id            ! datatype identifier
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     DOUBLE PRECISION, INTENT(inout), &
          DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltread_dataset_dl5_c(loc_id,namelen,dset_name,type_id,buf,dims)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_DL5_C'::h5ltread_dataset_dl5_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          DOUBLE PRECISION, INTENT(in), &
               DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf               ! data buffer
        END FUNCTION h5ltread_dataset_dl5_c
@@ -2673,7 +2713,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltread_dataset_f_double6
     !DEC$endif
     !
@@ -2681,24 +2721,25 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER(hid_t),   INTENT(in) :: type_id            ! datatype identifier
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     DOUBLE PRECISION, INTENT(inout), &
          DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltread_dataset_dl6_c(loc_id,namelen,dset_name,type_id,buf,dims)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_DL6_C'::h5ltread_dataset_dl6_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          DOUBLE PRECISION, INTENT(in), &
               DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf               ! data buffer
        END FUNCTION h5ltread_dataset_dl6_c
@@ -2733,7 +2774,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltread_dataset_f_double7
     !DEC$endif
     !
@@ -2741,24 +2782,25 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER(hid_t),   INTENT(in) :: type_id            ! datatype identifier
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     DOUBLE PRECISION, INTENT(inout), &
          DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltread_dataset_dl7_c(loc_id,namelen,dset_name,type_id,buf,dims)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_DL7_C'::h5ltread_dataset_dl7_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          DOUBLE PRECISION, INTENT(in), &
               DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf               ! data buffer
        END FUNCTION h5ltread_dataset_dl7_c
@@ -2797,7 +2839,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltmake_dataset_int_f_1
     !DEC$endif
     !
@@ -2805,24 +2847,25 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER,          INTENT(in) :: rank               ! rank
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER, INTENT(in), DIMENSION(*) :: buf           ! data buffer
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
 
     INTERFACE
        INTEGER FUNCTION h5ltmake_dataset_nint1_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_NINT1_C'::h5ltmake_dataset_nint1_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          INTEGER,          INTENT(in) :: rank                    ! rank
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          INTEGER, INTENT(in), DIMENSION(*) :: buf                ! data buffer
        END FUNCTION h5ltmake_dataset_nint1_c
     END INTERFACE
@@ -2860,7 +2903,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltmake_dataset_int_f_2
     !DEC$endif
     !
@@ -2868,9 +2911,9 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER,          INTENT(in) :: rank               ! rank
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     INTEGER, INTENT(in), &
          DIMENSION(dims(1),dims(2)) :: buf                  ! data buffer
 
@@ -2878,16 +2921,17 @@ CONTAINS
     INTERFACE
        INTEGER FUNCTION h5ltmake_dataset_nint2_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_NINT2_C'::h5ltmake_dataset_nint2_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          INTEGER,          INTENT(in) :: rank                    ! rank
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          INTEGER, INTENT(in), &
               DIMENSION(dims(1),dims(2)) :: buf                  ! data buffer
        END FUNCTION h5ltmake_dataset_nint2_c
@@ -2927,7 +2971,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltmake_dataset_int_f_3
     !DEC$endif
     !
@@ -2935,9 +2979,9 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER,          INTENT(in) :: rank               ! rank
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     INTEGER, INTENT(in), &
          DIMENSION(dims(1),dims(2),dims(3)) :: buf          ! data buffer
 
@@ -2945,16 +2989,17 @@ CONTAINS
     INTERFACE
        INTEGER FUNCTION h5ltmake_dataset_nint3_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_NINT3_C'::h5ltmake_dataset_nint3_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          INTEGER,          INTENT(in) :: rank                    ! rank
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          INTEGER, INTENT(in), &
               DIMENSION(dims(1),dims(2),dims(3)) :: buf               ! data buffer
        END FUNCTION h5ltmake_dataset_nint3_c
@@ -2989,7 +3034,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltmake_dataset_int_f_4
     !DEC$endif
     !
@@ -2997,9 +3042,9 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER,          INTENT(in) :: rank               ! rank
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     INTEGER, INTENT(in), &
          DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf          ! data buffer
 
@@ -3007,16 +3052,17 @@ CONTAINS
     INTERFACE
        INTEGER FUNCTION h5ltmake_dataset_nint4_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_NINT4_C'::h5ltmake_dataset_nint4_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          INTEGER,          INTENT(in) :: rank                    ! rank
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          INTEGER, INTENT(in), &
               DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf  ! data buffer
        END FUNCTION h5ltmake_dataset_nint4_c
@@ -3051,7 +3097,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltmake_dataset_int_f_5
     !DEC$endif
     !
@@ -3059,9 +3105,9 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER,          INTENT(in) :: rank               ! rank
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     INTEGER, INTENT(in), &
          DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf          ! data buffer
 
@@ -3069,16 +3115,17 @@ CONTAINS
     INTERFACE
        INTEGER FUNCTION h5ltmake_dataset_nint5_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_NINT5_C'::h5ltmake_dataset_nint5_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          INTEGER,          INTENT(in) :: rank                    ! rank
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          INTEGER, INTENT(in), &
               DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf  ! data buffer
        END FUNCTION h5ltmake_dataset_nint5_c
@@ -3113,7 +3160,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltmake_dataset_int_f_6
     !DEC$endif
     !
@@ -3121,9 +3168,9 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER,          INTENT(in) :: rank               ! rank
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     INTEGER, INTENT(in), &
          DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf          ! data buffer
 
@@ -3131,16 +3178,17 @@ CONTAINS
     INTERFACE
        INTEGER FUNCTION h5ltmake_dataset_nint6_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_NINT6_C'::h5ltmake_dataset_nint6_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          INTEGER,          INTENT(in) :: rank                    ! rank
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          INTEGER, INTENT(in), &
               DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf  ! data buffer
        END FUNCTION h5ltmake_dataset_nint6_c
@@ -3175,7 +3223,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltmake_dataset_int_f_7
     !DEC$endif
     !
@@ -3183,9 +3231,9 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER,          INTENT(in) :: rank               ! rank
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     INTEGER, INTENT(in), &
          DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf          ! data buffer
 
@@ -3193,16 +3241,17 @@ CONTAINS
     INTERFACE
        INTEGER FUNCTION h5ltmake_dataset_nint7_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_NINT7_C'::h5ltmake_dataset_nint7_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          INTEGER,          INTENT(in) :: rank                    ! rank
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          INTEGER, INTENT(in), &
               DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf  ! data buffer
        END FUNCTION h5ltmake_dataset_nint7_c
@@ -3241,7 +3290,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltmake_dataset_float_f_1
     !DEC$endif
     !
@@ -3249,24 +3298,25 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER,          INTENT(in) :: rank               ! rank
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     REAL, INTENT(in), DIMENSION(*) :: buf              ! data buffer
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
 
     INTERFACE
        INTEGER FUNCTION h5ltmake_dataset_nfl1_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_NFL1_C'::h5ltmake_dataset_nfl1_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          INTEGER,          INTENT(in) :: rank                    ! rank
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          REAL, INTENT(in), DIMENSION(*) :: buf                   ! data buffer
        END FUNCTION h5ltmake_dataset_nfl1_c
     END INTERFACE
@@ -3304,7 +3354,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltmake_dataset_float_f_2
     !DEC$endif
     !
@@ -3312,25 +3362,26 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER,          INTENT(in) :: rank               ! rank
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     REAL, INTENT(in), &
          DIMENSION(dims(1),dims(2)) :: buf                  ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltmake_dataset_nfl2_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_NFL2_C'::h5ltmake_dataset_nfl2_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          INTEGER,          INTENT(in) :: rank                    ! rank
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          REAL, INTENT(in), &
               DIMENSION(dims(1),dims(2)) :: buf                  ! data buffer
        END FUNCTION h5ltmake_dataset_nfl2_c
@@ -3369,7 +3420,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltmake_dataset_float_f_3
     !DEC$endif
     !
@@ -3377,25 +3428,26 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER,          INTENT(in) :: rank               ! rank
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     REAL, INTENT(in), &
          DIMENSION(dims(1),dims(2),dims(3)) :: buf          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltmake_dataset_nfl3_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_NFL3_C'::h5ltmake_dataset_nfl3_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          INTEGER,          INTENT(in) :: rank                    ! rank
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          REAL, INTENT(in), &
               DIMENSION(dims(1),dims(2),dims(3)) :: buf               ! data buffer
        END FUNCTION h5ltmake_dataset_nfl3_c
@@ -3430,7 +3482,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltmake_dataset_float_f_4
     !DEC$endif
     !
@@ -3438,25 +3490,26 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER,          INTENT(in) :: rank               ! rank
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     REAL, INTENT(in), &
          DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltmake_dataset_nfl4_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_NFL4_C'::h5ltmake_dataset_nfl4_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          INTEGER,          INTENT(in) :: rank                    ! rank
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          REAL, INTENT(in), &
               DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf               ! data buffer
        END FUNCTION h5ltmake_dataset_nfl4_c
@@ -3491,7 +3544,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltmake_dataset_float_f_5
     !DEC$endif
     !
@@ -3499,25 +3552,26 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER,          INTENT(in) :: rank               ! rank
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     REAL, INTENT(in), &
          DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltmake_dataset_nfl5_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_NFL5_C'::h5ltmake_dataset_nfl5_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          INTEGER,          INTENT(in) :: rank                    ! rank
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          REAL, INTENT(in), &
               DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf               ! data buffer
        END FUNCTION h5ltmake_dataset_nfl5_c
@@ -3552,7 +3606,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltmake_dataset_float_f_6
     !DEC$endif
     !
@@ -3560,25 +3614,26 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER,          INTENT(in) :: rank               ! rank
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     REAL, INTENT(in), &
          DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltmake_dataset_nfl6_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_NFL6_C'::h5ltmake_dataset_nfl6_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          INTEGER,          INTENT(in) :: rank                    ! rank
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          REAL, INTENT(in), &
               DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf               ! data buffer
        END FUNCTION h5ltmake_dataset_nfl6_c
@@ -3613,7 +3668,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltmake_dataset_float_f_7
     !DEC$endif
     !
@@ -3621,25 +3676,26 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER,          INTENT(in) :: rank               ! rank
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     REAL, INTENT(in), &
          DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltmake_dataset_nfl7_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_NFL7_C'::h5ltmake_dataset_nfl7_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          INTEGER,          INTENT(in) :: rank                    ! rank
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          REAL, INTENT(in), &
               DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf               ! data buffer
        END FUNCTION h5ltmake_dataset_nfl7_c
@@ -3679,7 +3735,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltmake_dataset_double_f_1
     !DEC$endif
     !
@@ -3687,25 +3743,26 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER,          INTENT(in) :: rank               ! rank
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     DOUBLE PRECISION, INTENT(in), &
          DIMENSION(dims(1)) :: buf                          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltmake_dataset_ndl1_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_NDL1_C'::h5ltmake_dataset_ndl1_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          INTEGER,          INTENT(in) :: rank                    ! rank
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          DOUBLE PRECISION, INTENT(in), &
               DIMENSION(dims(1)) :: buf                               ! data buffer
        END FUNCTION h5ltmake_dataset_ndl1_c
@@ -3745,7 +3802,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltmake_dataset_double_f_2
     !DEC$endif
     !
@@ -3753,25 +3810,26 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER,          INTENT(in) :: rank               ! rank
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     DOUBLE PRECISION, INTENT(in), &
          DIMENSION(dims(1),dims(2)) :: buf                  ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltmake_dataset_ndl2_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_NDL2_C'::h5ltmake_dataset_ndl2_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          INTEGER,          INTENT(in) :: rank                    ! rank
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          DOUBLE PRECISION, INTENT(in), &
               DIMENSION(dims(1),dims(2)) :: buf                       ! data buffer
        END FUNCTION h5ltmake_dataset_ndl2_c
@@ -3810,7 +3868,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltmake_dataset_double_f_3
     !DEC$endif
     !
@@ -3818,25 +3876,26 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER,          INTENT(in) :: rank               ! rank
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     DOUBLE PRECISION, INTENT(in), &
          DIMENSION(dims(1),dims(2),dims(3)) :: buf          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltmake_dataset_ndl3_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_NDL3_C'::h5ltmake_dataset_ndl3_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          INTEGER,          INTENT(in) :: rank                    ! rank
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          DOUBLE PRECISION, INTENT(in), &
               DIMENSION(dims(1),dims(2),dims(3)) :: buf               ! data buffer
        END FUNCTION h5ltmake_dataset_ndl3_c
@@ -3871,7 +3930,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltmake_dataset_double_f_4
     !DEC$endif
     !
@@ -3879,25 +3938,26 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER,          INTENT(in) :: rank               ! rank
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     DOUBLE PRECISION, INTENT(in), &
          DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltmake_dataset_ndl4_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_NDL4_C'::h5ltmake_dataset_ndl4_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          INTEGER,          INTENT(in) :: rank                    ! rank
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          DOUBLE PRECISION, INTENT(in), &
               DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf               ! data buffer
        END FUNCTION h5ltmake_dataset_ndl4_c
@@ -3932,7 +3992,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltmake_dataset_double_f_5
     !DEC$endif
     !
@@ -3940,25 +4000,26 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER,          INTENT(in) :: rank               ! rank
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     DOUBLE PRECISION, INTENT(in), &
          DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltmake_dataset_ndl5_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_NDL5_C'::h5ltmake_dataset_ndl5_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          INTEGER,          INTENT(in) :: rank                    ! rank
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          DOUBLE PRECISION, INTENT(in), &
               DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf               ! data buffer
        END FUNCTION h5ltmake_dataset_ndl5_c
@@ -3993,7 +4054,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltmake_dataset_double_f_5
     !DEC$endif
     !
@@ -4001,25 +4062,26 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER,          INTENT(in) :: rank               ! rank
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     DOUBLE PRECISION, INTENT(in), &
          DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltmake_dataset_ndl6_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_NDL6_C'::h5ltmake_dataset_ndl6_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          INTEGER,          INTENT(in) :: rank                    ! rank
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          DOUBLE PRECISION, INTENT(in), &
               DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf               ! data buffer
        END FUNCTION h5ltmake_dataset_ndl6_c
@@ -4054,7 +4116,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltmake_dataset_double_f_5
     !DEC$endif
     !
@@ -4062,25 +4124,26 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER,          INTENT(in) :: rank               ! rank
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     DOUBLE PRECISION, INTENT(in), &
          DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltmake_dataset_ndl7_c(loc_id,namelen,dset_name,rank,dims,type_id,buf)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_NDL7_C'::h5ltmake_dataset_ndl7_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          INTEGER,          INTENT(in) :: rank                    ! rank
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          DOUBLE PRECISION, INTENT(in), &
               DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf               ! data buffer
        END FUNCTION h5ltmake_dataset_ndl7_c
@@ -4118,31 +4181,32 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltread_dataset_int_f_1
     !DEC$endif
     !
 
     INTEGER(HID_T),   INTENT(IN) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     INTEGER, INTENT(inout), &
          DIMENSION(dims(1)) :: buf                          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltread_dataset_nint1_c(loc_id,namelen,dset_name,type_id,buf,dims)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_NINT1_C'::h5ltread_dataset_nint1_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          INTEGER, INTENT(inout), &
               DIMENSION(dims(1)) :: buf                               ! data buffer
        END FUNCTION h5ltread_dataset_nint1_c
@@ -4181,31 +4245,32 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltread_dataset_int_f_2
     !DEC$endif
     !
 
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     INTEGER, INTENT(inout), &
          DIMENSION(dims(1),dims(2)) :: buf                  ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltread_dataset_nint2_c(loc_id,namelen,dset_name,type_id,buf,dims)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_NINT2_C'::h5ltread_dataset_nint2_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          INTEGER, INTENT(inout), &
               DIMENSION(dims(1),dims(2)) :: buf                       ! data buffer
        END FUNCTION h5ltread_dataset_nint2_c
@@ -4243,31 +4308,32 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltread_dataset_int_f_3
     !DEC$endif
     !
 
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     INTEGER, INTENT(inout), &
          DIMENSION(dims(1),dims(2),dims(3)) :: buf          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltread_dataset_nint3_c(loc_id,namelen,dset_name,type_id,buf,dims)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_NINT3_C'::h5ltread_dataset_nint3_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          INTEGER, INTENT(inout), &
               DIMENSION(dims(1),dims(2),dims(3)) :: buf               ! data buffer
        END FUNCTION h5ltread_dataset_nint3_c
@@ -4301,31 +4367,32 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltread_dataset_int_f_4
     !DEC$endif
     !
 
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     INTEGER, INTENT(inout), &
          DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltread_dataset_nint4_c(loc_id,namelen,dset_name,type_id,buf,dims)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_NINT4_C'::h5ltread_dataset_nint4_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          INTEGER, INTENT(inout), &
               DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf               ! data buffer
        END FUNCTION h5ltread_dataset_nint4_c
@@ -4359,31 +4426,32 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltread_dataset_int_f_5
     !DEC$endif
     !
 
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     INTEGER, INTENT(inout), &
          DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltread_dataset_nint5_c(loc_id,namelen,dset_name,type_id,buf,dims)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_NINT5_C'::h5ltread_dataset_nint5_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          INTEGER, INTENT(inout), &
               DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf               ! data buffer
        END FUNCTION h5ltread_dataset_nint5_c
@@ -4417,31 +4485,32 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltread_dataset_int_f_6
     !DEC$endif
     !
 
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     INTEGER, INTENT(inout), &
          DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltread_dataset_nint6_c(loc_id,namelen,dset_name,type_id,buf,dims)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_NINT6_C'::h5ltread_dataset_nint6_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          INTEGER, INTENT(inout), &
               DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf               ! data buffer
        END FUNCTION h5ltread_dataset_nint6_c
@@ -4475,31 +4544,32 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltread_dataset_int_f_7
     !DEC$endif
     !
 
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     INTEGER, INTENT(inout), &
          DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltread_dataset_nint7_c(loc_id,namelen,dset_name,type_id,buf,dims)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_NINT7_C'::h5ltread_dataset_nint7_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          INTEGER, INTENT(inout), &
               DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf               ! data buffer
        END FUNCTION h5ltread_dataset_nint7_c
@@ -4538,31 +4608,32 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltread_dataset_float_f_1
     !DEC$endif
     !
 
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     REAL, INTENT(inout), &
          DIMENSION(dims(1)) :: buf                          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltread_dataset_nfl1_c(loc_id,namelen,dset_name,type_id,buf,dims)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_NFL1_C'::h5ltread_dataset_nfl1_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          REAL, INTENT(inout), &
               DIMENSION(dims(1)) :: buf                               ! data buffer
        END FUNCTION h5ltread_dataset_nfl1_c
@@ -4601,31 +4672,32 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltread_dataset_float_f_2
     !DEC$endif
     !
 
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     REAL, INTENT(inout), &
          DIMENSION(dims(1),dims(2)) :: buf                  ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltread_dataset_nfl2_c(loc_id,namelen,dset_name,type_id,buf,dims)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_NFL2_C'::h5ltread_dataset_nfl2_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          REAL, INTENT(inout), &
               DIMENSION(dims(1),dims(2)) :: buf                       ! data buffer
        END FUNCTION h5ltread_dataset_nfl2_c
@@ -4663,31 +4735,32 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltread_dataset_float_f_3
     !DEC$endif
     !
 
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     REAL, INTENT(inout), &
          DIMENSION(dims(1),dims(2),dims(3)) :: buf          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltread_dataset_nfl3_c(loc_id,namelen,dset_name,type_id,buf,dims)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_NFL3_C'::h5ltread_dataset_nfl3_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          REAL, INTENT(inout), &
               DIMENSION(dims(1),dims(2),dims(3)) :: buf               ! data buffer
        END FUNCTION h5ltread_dataset_nfl3_c
@@ -4721,31 +4794,32 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltread_dataset_float_f_4
     !DEC$endif
     !
 
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     REAL, INTENT(inout), &
          DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltread_dataset_nfl4_c(loc_id,namelen,dset_name,type_id,buf,dims)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_NFL4_C'::h5ltread_dataset_nfl4_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          REAL, INTENT(inout), &
               DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf               ! data buffer
        END FUNCTION h5ltread_dataset_nfl4_c
@@ -4779,31 +4853,32 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltread_dataset_float_f_5
     !DEC$endif
     !
 
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     REAL, INTENT(inout), &
          DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltread_dataset_nfl5_c(loc_id,namelen,dset_name,type_id,buf,dims)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_NFL5_C'::h5ltread_dataset_nfl5_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          REAL, INTENT(inout), &
               DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf               ! data buffer
        END FUNCTION h5ltread_dataset_nfl5_c
@@ -4837,31 +4912,32 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltread_dataset_float_f_6
     !DEC$endif
     !
 
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     REAL, INTENT(inout), &
          DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltread_dataset_nfl6_c(loc_id,namelen,dset_name,type_id,buf,dims)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_NFL6_C'::h5ltread_dataset_nfl6_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          REAL, INTENT(inout), &
               DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf               ! data buffer
        END FUNCTION h5ltread_dataset_nfl6_c
@@ -4895,31 +4971,32 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltread_dataset_float_f_7
     !DEC$endif
     !
 
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     REAL, INTENT(inout), &
          DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltread_dataset_nfl7_c(loc_id,namelen,dset_name,type_id,buf,dims)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_NFL7_C'::h5ltread_dataset_nfl7_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          REAL, INTENT(inout), &
               DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf               ! data buffer
        END FUNCTION h5ltread_dataset_nfl7_c
@@ -4957,31 +5034,32 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltread_dataset_double_f_1
     !DEC$endif
     !
 
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     DOUBLE PRECISION, INTENT(inout), &
          DIMENSION(dims(1)) :: buf                          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltread_dataset_ndl1_c(loc_id,namelen,dset_name,type_id,buf,dims)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_NDL1_C'::h5ltread_dataset_ndl1_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          DOUBLE PRECISION, INTENT(inout), &
               DIMENSION(dims(1)) :: buf                               ! data buffer
        END FUNCTION h5ltread_dataset_ndl1_c
@@ -5020,31 +5098,32 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltread_dataset_double_f_2
     !DEC$endif
     !
 
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     DOUBLE PRECISION, INTENT(inout), &
          DIMENSION(dims(1),dims(2)) :: buf                  ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltread_dataset_ndl2_c(loc_id,namelen,dset_name,type_id,buf,dims)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_NDL2_C'::h5ltread_dataset_ndl2_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          DOUBLE PRECISION, INTENT(inout), &
               DIMENSION(dims(1),dims(2)) :: buf                       ! data buffer
        END FUNCTION h5ltread_dataset_ndl2_c
@@ -5082,31 +5161,32 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltread_dataset_double_f_3
     !DEC$endif
     !
 
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     DOUBLE PRECISION, INTENT(inout), &
          DIMENSION(dims(1),dims(2),dims(3)) :: buf          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltread_dataset_ndl3_c(loc_id,namelen,dset_name,type_id,buf,dims)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_NDL3_C'::h5ltread_dataset_ndl3_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          DOUBLE PRECISION, INTENT(inout), &
               DIMENSION(dims(1),dims(2),dims(3)) :: buf               ! data buffer
        END FUNCTION h5ltread_dataset_ndl3_c
@@ -5140,31 +5220,32 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltread_dataset_double_f_4
     !DEC$endif
     !
 
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     DOUBLE PRECISION, INTENT(inout), &
          DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltread_dataset_ndl4_c(loc_id,namelen,dset_name,type_id,buf,dims)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_NDL4_C'::h5ltread_dataset_ndl4_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          DOUBLE PRECISION, INTENT(inout), &
               DIMENSION(dims(1),dims(2),dims(3),dims(4)) :: buf               ! data buffer
        END FUNCTION h5ltread_dataset_ndl4_c
@@ -5198,31 +5279,32 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltread_dataset_double_f_5
     !DEC$endif
     !
 
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     DOUBLE PRECISION, INTENT(inout), &
          DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltread_dataset_ndl5_c(loc_id,namelen,dset_name,type_id,buf,dims)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_NDL5_C'::h5ltread_dataset_ndl5_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          DOUBLE PRECISION, INTENT(inout), &
               DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5)) :: buf               ! data buffer
        END FUNCTION h5ltread_dataset_ndl5_c
@@ -5256,31 +5338,32 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltread_dataset_double_f_6
     !DEC$endif
     !
 
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
     DOUBLE PRECISION, INTENT(inout), &
          DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltread_dataset_ndl6_c(loc_id,namelen,dset_name,type_id,buf,dims)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_NDL6_C'::h5ltread_dataset_ndl6_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          DOUBLE PRECISION, INTENT(inout), &
               DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6)) :: buf               ! data buffer
        END FUNCTION h5ltread_dataset_ndl6_c
@@ -5314,31 +5397,32 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltread_dataset_double_f_7
     !DEC$endif
     !
 
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
-    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the bufffer buf
+    INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims ! size of the buffer buf
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                         ! name length
     DOUBLE PRECISION, INTENT(inout), &
          DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf          ! data buffer
 
     INTERFACE
        INTEGER FUNCTION h5ltread_dataset_ndl7_c(loc_id,namelen,dset_name,type_id,buf,dims)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_NDL7_C'::h5ltread_dataset_ndl7_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
          INTEGER(hid_t),   INTENT(in) :: type_id                 ! datatype identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                              ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
-         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the bufffer buf
+         INTEGER(hsize_t), DIMENSION(*), INTENT(in) :: dims      ! size of the buffer buf
          DOUBLE PRECISION, INTENT(inout), &
               DIMENSION(dims(1),dims(2),dims(3),dims(4),dims(5),dims(6),dims(7)) :: buf               ! data buffer
        END FUNCTION h5ltread_dataset_ndl7_c
@@ -5373,31 +5457,30 @@ CONTAINS
        errcode )
 
     IMPLICIT NONE
-
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltmake_dataset_string_f
     !DEC$endif
     !
-
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     CHARACTER(len=*), INTENT(in) :: buf                ! data buffer
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
-    INTEGER :: buflen                                  ! buffer length
+    INTEGER(size_t) :: namelen                         ! name length
+    INTEGER(size_t) :: buflen                          ! buffer length
 
     INTERFACE
        INTEGER FUNCTION h5ltmake_dataset_string_c(loc_id,namelen,dset_name,buflen,buf)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTMAKE_DATASET_STRING_C'::h5ltmake_dataset_string_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
-         INTEGER :: buflen                                       ! lenght of data buffer
+         INTEGER(size_t) :: namelen                              ! length of name buffer
+         INTEGER(size_t) :: buflen                               ! length of data buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          CHARACTER(len=*), INTENT(in) :: buf                     ! data buffer
        END FUNCTION h5ltmake_dataset_string_c
@@ -5435,7 +5518,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltread_dataset_string_f
     !DEC$endif
     !
@@ -5444,17 +5527,18 @@ CONTAINS
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     CHARACTER(len=*), INTENT(inout) :: buf             ! data buffer
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
 
     INTERFACE
        INTEGER FUNCTION h5ltread_dataset_string_c(loc_id,namelen,dset_name,buf)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTREAD_DATASET_STRING_C'::h5ltread_dataset_string_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          CHARACTER(len=*), INTENT(inout) :: buf                  ! data buffer
        END FUNCTION h5ltread_dataset_string_c
@@ -5501,7 +5585,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltset_attribute_int_f
     !DEC$endif
     !
@@ -5512,20 +5596,21 @@ CONTAINS
     INTEGER(size_t),  INTENT(in) :: size               ! size of attribute array
     INTEGER :: errcode                                 ! error code
     INTEGER, INTENT(in), DIMENSION(*) :: buf           ! data buffer
-    INTEGER :: namelen                                 ! name length
-    INTEGER :: attrlen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
+    INTEGER(size_t) :: attrlen                                 ! name length
 
     INTERFACE
        INTEGER FUNCTION h5ltset_attribute_int_c(loc_id,namelen,dset_name,attrlen,attr_name,size,buf)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTSET_ATTRIBUTE_INT_C'::h5ltset_attribute_int_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          !DEC$ATTRIBUTES reference :: attr_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
-         INTEGER :: attrlen                                      ! lenght of attr name buffer
+         INTEGER(size_t) :: namelen                              ! length of name buffer
+         INTEGER(size_t) :: attrlen                              ! length of attr name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          CHARACTER(len=*), INTENT(in) :: attr_name               ! name of the attribute
          INTEGER(size_t),  INTENT(in) :: size                    ! size of attribute array
@@ -5567,7 +5652,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltset_attribute_float_f
     !DEC$endif
     !
@@ -5578,20 +5663,21 @@ CONTAINS
     INTEGER(size_t),  INTENT(in) :: size               ! size of attribute array
     INTEGER :: errcode                                 ! error code
     REAL, INTENT(in), DIMENSION(*) :: buf              ! data buffer
-    INTEGER :: namelen                                 ! name length
-    INTEGER :: attrlen                                 ! name length
+    INTEGER(size_t) :: namelen                         ! name length
+    INTEGER(size_t) :: attrlen                         ! name length
 
     INTERFACE
        INTEGER FUNCTION h5ltset_attribute_float_c(loc_id,namelen,dset_name,attrlen,attr_name,size,buf)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTSET_ATTRIBUTE_FLOAT_C'::h5ltset_attribute_float_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          !DEC$ATTRIBUTES reference :: attr_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
-         INTEGER :: attrlen                                      ! lenght of attr name buffer
+         INTEGER(size_t) :: namelen                              ! length of name buffer
+         INTEGER(size_t) :: attrlen                              ! length of attr name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          CHARACTER(len=*), INTENT(in) :: attr_name               ! name of the attribute
          INTEGER(size_t),  INTENT(in) :: size                    ! size of attribute array
@@ -5633,7 +5719,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltset_attribute_double_f
     !DEC$endif
     !
@@ -5644,20 +5730,21 @@ CONTAINS
     INTEGER(size_t),  INTENT(in) :: size               ! size of attribute array
     INTEGER :: errcode                                 ! error code
     DOUBLE PRECISION, INTENT(in), DIMENSION(*) :: buf  ! data buffer
-    INTEGER :: namelen                                 ! name length
-    INTEGER :: attrlen                                 ! name length
+    INTEGER(size_t) :: namelen                         ! name length
+    INTEGER(size_t) :: attrlen                         ! name length
 
     INTERFACE
        INTEGER FUNCTION h5ltset_attribute_double_c(loc_id,namelen,dset_name,attrlen,attr_name,size,buf)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTSET_ATTRIBUTE_DOUBLE_C'::h5ltset_attribute_double_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          !DEC$ATTRIBUTES reference :: attr_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
-         INTEGER :: attrlen                                      ! lenght of attr name buffer
+         INTEGER(size_t) :: namelen                              ! length of name buffer
+         INTEGER(size_t) :: attrlen                              ! length of attr name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          CHARACTER(len=*), INTENT(in) :: attr_name               ! name of the attribute
          INTEGER(size_t),  INTENT(in) :: size                    ! size of attribute array
@@ -5699,7 +5786,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltset_attribute_string_f
     !DEC$endif
     !
@@ -5709,22 +5796,23 @@ CONTAINS
     CHARACTER(len=*), INTENT(in) :: attr_name          ! name of the attribute
     INTEGER :: errcode                                 ! error code
     CHARACTER(len=*), INTENT(in) :: buf                ! data buffer
-    INTEGER :: namelen                                 ! name length
-    INTEGER :: attrlen                                 ! name length
-    INTEGER :: buflen                                  ! data buffer length
+    INTEGER(size_t) :: namelen                         ! name length
+    INTEGER(size_t) :: attrlen                         ! name length
+    INTEGER(size_t) :: buflen                          ! data buffer length
 
     INTERFACE
        INTEGER FUNCTION h5ltset_attribute_string_c(loc_id,namelen,dset_name,attrlen,attr_name,buflen,buf)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTSET_ATTRIBUTE_STRING_C'::h5ltset_attribute_string_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          !DEC$ATTRIBUTES reference :: attr_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
-         INTEGER :: attrlen                                      ! lenght of attr name buffer
-         INTEGER :: buflen                                       ! data buffer length
+         INTEGER(size_t) :: namelen                              ! length of name buffer
+         INTEGER(size_t) :: attrlen                              ! length of attr name buffer
+         INTEGER(size_t) :: buflen                               ! data buffer length
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          CHARACTER(len=*), INTENT(in) :: attr_name               ! name of the attribute
          CHARACTER(len=*), INTENT(in) :: buf                     ! data buffer
@@ -5767,7 +5855,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltget_attribute_int_f
     !DEC$endif
     !
@@ -5777,23 +5865,24 @@ CONTAINS
     CHARACTER(len=*), INTENT(in) :: attr_name          ! name of the attribute
     INTEGER :: errcode                                 ! error code
     INTEGER, INTENT(inout), DIMENSION(*) :: buf        ! data buffer
-    INTEGER :: namelen                                 ! name length
-    INTEGER :: attrlen                                 ! name length
+    INTEGER(size_t) :: namelen                         ! name length
+    INTEGER(size_t) :: attrlen                         ! name length
 
     INTERFACE
        INTEGER FUNCTION h5ltget_attribute_int_c(loc_id,namelen,dset_name,attrlen,attr_name,buf)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTGET_ATTRIBUTE_INT_C'::h5ltget_attribute_int_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          !DEC$ATTRIBUTES reference :: attr_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
-         INTEGER :: attrlen                                      ! lenght of attr name buffer
+         INTEGER(size_t) :: namelen                              ! length of name buffer
+         INTEGER(size_t) :: attrlen                              ! length of attr name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          CHARACTER(len=*), INTENT(in) :: attr_name               ! name of the attribute
-         INTEGER, INTENT(inout), DIMENSION(*) :: buf             ! data buffer
+         INTEGER, INTENT(inout), DIMENSION(*) :: buf     ! data buffer
        END FUNCTION h5ltget_attribute_int_c
     END INTERFACE
 
@@ -5831,7 +5920,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltget_attribute_float_f
     !DEC$endif
     !
@@ -5841,20 +5930,21 @@ CONTAINS
     CHARACTER(len=*), INTENT(in) :: attr_name          ! name of the attribute
     INTEGER :: errcode                                 ! error code
     REAL, INTENT(inout), DIMENSION(*) :: buf           ! data buffer
-    INTEGER :: namelen                                 ! name length
-    INTEGER :: attrlen                                 ! name length
+    INTEGER(size_t) :: namelen                         ! name length
+    INTEGER(size_t) :: attrlen                         ! name length
 
     INTERFACE
        INTEGER FUNCTION h5ltget_attribute_float_c(loc_id,namelen,dset_name,attrlen,attr_name,buf)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTGET_ATTRIBUTE_FLOAT_C'::h5ltget_attribute_float_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          !DEC$ATTRIBUTES reference :: attr_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
-         INTEGER :: attrlen                                      ! lenght of attr name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
+         INTEGER(size_t) :: attrlen                                      ! length of attr name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          CHARACTER(len=*), INTENT(in) :: attr_name               ! name of the attribute
          REAL, INTENT(inout), DIMENSION(*) :: buf                ! data buffer
@@ -5894,7 +5984,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltget_attribute_double_f
     !DEC$endif
     !
@@ -5904,20 +5994,21 @@ CONTAINS
     CHARACTER(len=*), INTENT(in) :: attr_name          ! name of the attribute
     INTEGER :: errcode                                 ! error code
     DOUBLE PRECISION,INTENT(inout),DIMENSION(*) :: buf ! data buffer
-    INTEGER :: namelen                                 ! name length
-    INTEGER :: attrlen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
+    INTEGER(size_t) :: attrlen                                 ! name length
 
     INTERFACE
        INTEGER FUNCTION h5ltget_attribute_double_c(loc_id,namelen,dset_name,attrlen,attr_name,buf)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTGET_ATTRIBUTE_DOUBLE_C'::h5ltget_attribute_double_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          !DEC$ATTRIBUTES reference :: attr_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
-         INTEGER :: attrlen                                      ! lenght of attr name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
+         INTEGER(size_t) :: attrlen                                      ! length of attr name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          CHARACTER(len=*), INTENT(in) :: attr_name               ! name of the attribute
          DOUBLE PRECISION, INTENT(inout), DIMENSION(*) :: buf    ! data buffer
@@ -5957,7 +6048,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltget_attribute_string_f
     !DEC$endif
     !
@@ -5967,21 +6058,22 @@ CONTAINS
     CHARACTER(len=*), INTENT(in) :: attr_name          ! name of the attribute
     INTEGER :: errcode                                 ! error code
     CHARACTER(len=*), INTENT(inout) :: buf             ! data buffer
-    INTEGER :: namelen                                 ! name length
-    INTEGER :: attrlen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
+    INTEGER(size_t) :: attrlen                                 ! name length
     INTEGER(size_t) :: buf_size                        ! buf size
 
     INTERFACE
        INTEGER FUNCTION h5ltget_attribute_string_c(loc_id,namelen,dset_name,attrlen,attr_name,buf,buf_size)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTGET_ATTRIBUTE_STRING_C'::h5ltget_attribute_string_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          !DEC$ATTRIBUTES reference :: attr_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
-         INTEGER :: attrlen                                      ! lenght of attr name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
+         INTEGER(size_t) :: attrlen                                      ! length of attr name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          CHARACTER(len=*), INTENT(in) :: attr_name               ! name of the attribute
          CHARACTER(len=*), INTENT(inout) :: buf                  ! data buffer
@@ -6027,7 +6119,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltget_dataset_ndims_f
     !DEC$endif
     !
@@ -6036,17 +6128,18 @@ CONTAINS
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER,          INTENT(inout) :: rank            ! rank
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
 
     INTERFACE
        INTEGER FUNCTION h5ltget_dataset_ndims_c(loc_id,namelen,dset_name,rank)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTGET_DATASET_NDIMS_C'::h5ltget_dataset_ndims_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          INTEGER,          INTENT(inout) :: rank                 ! rank
        END FUNCTION h5ltget_dataset_ndims_c
@@ -6083,7 +6176,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltfind_dataset_f
     !DEC$endif
     !
@@ -6091,17 +6184,18 @@ CONTAINS
     INTEGER(hid_t),   INTENT(in) :: loc_id             ! file or group identifier
     CHARACTER(len=*), INTENT(in) :: dset_name          ! name of the dataset
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
 
     INTERFACE
        INTEGER FUNCTION h5ltfind_dataset_c(loc_id,namelen,dset_name)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTFIND_DATASET_C'::h5ltfind_dataset_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
        END FUNCTION h5ltfind_dataset_c
     END INTERFACE
@@ -6140,7 +6234,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltget_dataset_info_f
     !DEC$endif
     !
@@ -6151,17 +6245,18 @@ CONTAINS
     INTEGER, INTENT(inout)         :: type_class       ! type class
     INTEGER(size_t), INTENT(inout) :: type_size        ! type size
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
 
     INTERFACE
        INTEGER FUNCTION h5ltget_dataset_info_c(loc_id,namelen,dset_name,dims,type_class,type_size)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTGET_DATASET_INFO_C'::h5ltget_dataset_info_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          INTEGER(hsize_t),DIMENSION(*),INTENT(inout):: dims      ! dimensions
          INTEGER, INTENT(inout)         :: type_class            ! type class
@@ -6207,7 +6302,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltget_attribute_ndims_f
     !DEC$endif
     !
@@ -6217,20 +6312,21 @@ CONTAINS
     CHARACTER(len=*), INTENT(in) :: attr_name          ! name of the attribute
     INTEGER,          INTENT(inout) :: rank            ! rank
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
-    INTEGER :: attrlen                                 ! name length
+    INTEGER(size_t) :: namelen                                 ! name length
+    INTEGER(size_t) :: attrlen                                 ! name length
 
     INTERFACE
        INTEGER FUNCTION h5ltget_attribute_ndims_c(loc_id,namelen,dset_name,attrlen,attr_name,rank)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTGET_ATTRIBUTE_NDIMS_C'::h5ltget_attribute_ndims_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          !DEC$ATTRIBUTES reference :: attr_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
-         INTEGER :: attrlen                                      ! lenght of attr name buffer
+         INTEGER(size_t) :: namelen                                      ! length of name buffer
+         INTEGER(size_t) :: attrlen                                      ! length of attr name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          CHARACTER(len=*), INTENT(in) :: attr_name               ! name of the attribute
          INTEGER,          INTENT(inout) :: rank                 ! rank
@@ -6273,7 +6369,7 @@ CONTAINS
 
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltget_attribute_info_f
     !DEC$endif
     !
@@ -6285,20 +6381,21 @@ CONTAINS
     INTEGER, INTENT(inout)         :: type_class       ! type class
     INTEGER(size_t), INTENT(inout) :: type_size        ! type size
     INTEGER :: errcode                                 ! error code
-    INTEGER :: namelen                                 ! name length
-    INTEGER :: attrlen                                 ! name length
+    INTEGER(size_t) :: namelen                         ! name length
+    INTEGER(size_t) :: attrlen                                 ! name length
 
     INTERFACE
        INTEGER FUNCTION h5ltget_attribute_info_c(loc_id,namelen,dset_name,attrlen,attr_name,dims,type_class,type_size)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTGET_ATTRIBUTE_INFO_C'::h5ltget_attribute_info_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: dset_name
          !DEC$ATTRIBUTES reference :: attr_name
          INTEGER(hid_t),   INTENT(in) :: loc_id                  ! file or group identifier
-         INTEGER :: namelen                                      ! lenght of name buffer
-         INTEGER :: attrlen                                      ! lenght of attr name buffer
+         INTEGER(size_t) :: namelen                              ! length of name buffer
+         INTEGER(size_t) :: attrlen                                      ! length of attr name buffer
          CHARACTER(len=*), INTENT(in) :: dset_name               ! name of the dataset
          CHARACTER(len=*), INTENT(in) :: attr_name               ! name of the attribute
          INTEGER(hsize_t),DIMENSION(*),INTENT(inout):: dims      ! dimensions
@@ -6335,31 +6432,32 @@ CONTAINS
     IMPLICIT NONE
     !
     !This definition is needed for Windows DLLs
-    !DEC$if defined(BUILD_HDF5_DLL)
+    !DEC$if defined(BUILD_HDF5_HL_DLL)
     !DEC$attributes dllexport :: h5ltpath_valid_f
     !DEC$endif
     !
-    INTEGER(hid_t)  , INTENT(IN)  :: loc_id              ! File or group identifier.
+    INTEGER(hid_t)  , INTENT(IN)  :: loc_id              ! An identifier of an object in the file.
     CHARACTER(LEN=*), INTENT(IN)  :: path                ! Path to the object to check, relative to loc_id.
     LOGICAL         , INTENT(IN)  :: check_object_valid  ! Indicates whether to check if the final component 
                                                          !  of the path resolves to a valid object 
     LOGICAL         , INTENT(OUT) :: path_valid          ! Object status
     INTEGER         , INTENT(OUT) :: errcode             ! Error code: 0 on success and -1 on failure
 
-    INTEGER :: pathlen
+    INTEGER(size_t) :: pathlen
     INTEGER :: check_object_valid_c
     INTEGER :: status
 
     INTERFACE
        INTEGER FUNCTION h5ltpath_valid_c(loc_id, path, pathlen, check_object_valid_c)
          USE h5global
+         IMPLICIT NONE
          !DEC$IF DEFINED(HDF5F90_WINDOWS)
          !DEC$ATTRIBUTES C,reference,decorate,alias:'H5LTPATH_VALID_C'::h5ltpath_valid_c
          !DEC$ENDIF
          !DEC$ATTRIBUTES reference :: path
          INTEGER(hid_t),   INTENT(in) :: loc_id  
          CHARACTER(len=*), INTENT(in) :: path
-         INTEGER :: pathlen
+         INTEGER(size_t) :: pathlen
          INTEGER :: check_object_valid_c
        END FUNCTION h5ltpath_valid_c
     END INTERFACE
diff --git a/hl/fortran/src/H5TBfc.c b/hl/fortran/src/H5TBfc.c
index 0efc9a8..bf058fd 100644
--- a/hl/fortran/src/H5TBfc.c
+++ b/hl/fortran/src/H5TBfc.c
@@ -37,10 +37,10 @@
 *-------------------------------------------------------------------------
 */
 int_f
-nh5tbmake_table_c(int_f *namelen1,
+nh5tbmake_table_c(size_t_f *namelen1,
                   _fcd name1,
                   hid_t_f *loc_id,
-                  int_f *namelen,
+                  size_t_f *namelen,
                   _fcd name,
                   hsize_t_f *nfields,
                   hsize_t_f *nrecords,
@@ -49,8 +49,8 @@ nh5tbmake_table_c(int_f *namelen1,
                   hid_t_f *field_types,
                   hsize_t_f *chunk_size,
                   int_f *compress,
-                  int_f *char_len_field_names, /* field_names lenghts */
-		  int_f *max_char_size_field_names, /* char len of fields */
+                  size_t_f *char_len_field_names, /* field_names lenghts */
+                  size_t_f *max_char_size_field_names, /* char len of fields */
                   char *field_names)            /* field_names */
 {
     char *c_name = NULL;
@@ -64,7 +64,7 @@ nh5tbmake_table_c(int_f *namelen1,
     char *tmp = NULL, *tmp_p;
     int_f ret_value = 0;
 
-    num_elem = *nfields;
+    num_elem = (hsize_t)*nfields;
 
     /*
      * convert FORTRAN name to C name
@@ -79,7 +79,7 @@ nh5tbmake_table_c(int_f *namelen1,
         HGOTO_DONE(FAIL)
 
     for(i = 0; i < num_elem; i++) {
-        c_field_offset[i] = field_offset[i];
+      c_field_offset[i] = (size_t)field_offset[i];
         c_field_types[i] = field_types[i];
     } /* end for */
 
@@ -100,7 +100,7 @@ nh5tbmake_table_c(int_f *namelen1,
         if(NULL == (c_field_names[i] = (char *)HDmalloc((size_t)char_len_field_names[i] + 1)))
             HGOTO_DONE(FAIL)
         HDmemcpy(c_field_names[i], tmp_p, (size_t)char_len_field_names[i]);
-	c_field_names[i][char_len_field_names[i]] = '\0';
+        c_field_names[i][char_len_field_names[i]] = '\0';
 
         tmp_p = tmp_p + *max_char_size_field_names;
     } /* end for */
@@ -123,7 +123,7 @@ done:
             if(c_field_names[i])
                 HDfree(c_field_names[i]);
         } /* end for */
-	HDfree(c_field_names);
+        HDfree(c_field_names);
     } /* end if */
     if(tmp)
         HDfree(tmp);
@@ -152,9 +152,9 @@ done:
 */
 int_f
 nh5tbwrite_field_name_c(hid_t_f *loc_id,
-                        int_f *namelen,
+                        size_t_f *namelen,
                         _fcd name,
-                        int_f *namelen1,
+                        size_t_f *namelen1,
                         _fcd field_name,
                         hsize_t_f *start,
                         hsize_t_f *nrecords,
@@ -192,9 +192,9 @@ done:
 
 int_f
 nh5tbwrite_field_name_int_c(hid_t_f *loc_id,
-                            int_f *namelen,
+                            size_t_f *namelen,
                             _fcd name,
-                            int_f *namelen1,
+                            size_t_f *namelen1,
                             _fcd field_name,
                             hsize_t_f *start,
                             hsize_t_f *nrecords,
@@ -207,9 +207,9 @@ nh5tbwrite_field_name_int_c(hid_t_f *loc_id,
 
 int_f
 nh5tbwrite_field_name_fl_c(hid_t_f *loc_id,
-                           int_f *namelen,
+                           size_t_f *namelen,
                            _fcd name,
-                           int_f *namelen1,
+                           size_t_f *namelen1,
                            _fcd field_name,
                            hsize_t_f *start,
                            hsize_t_f *nrecords,
@@ -222,9 +222,9 @@ nh5tbwrite_field_name_fl_c(hid_t_f *loc_id,
 
 int_f
 nh5tbwrite_field_name_dl_c(hid_t_f *loc_id,
-                           int_f *namelen,
+                           size_t_f *namelen,
                            _fcd name,
-                           int_f *namelen1,
+                           size_t_f *namelen1,
                            _fcd field_name,
                            hsize_t_f *start,
                            hsize_t_f *nrecords,
@@ -237,9 +237,9 @@ nh5tbwrite_field_name_dl_c(hid_t_f *loc_id,
 
 int_f
 nh5tbwrite_field_name_st_c(hid_t_f *loc_id,
-                           int_f *namelen,
+                           size_t_f *namelen,
                            _fcd name,
-                           int_f *namelen1,
+                           size_t_f *namelen1,
                            _fcd field_name,
                            hsize_t_f *start,
                            hsize_t_f *nrecords,
@@ -267,9 +267,9 @@ nh5tbwrite_field_name_st_c(hid_t_f *loc_id,
 */
 int_f
 nh5tbread_field_name_c(hid_t_f *loc_id,
-                       int_f *namelen,
+                       size_t_f *namelen,
                        _fcd name,
-                       int_f *namelen1,
+                       size_t_f *namelen1,
                        _fcd field_name,
                        hsize_t_f *start,
                        hsize_t_f *nrecords,
@@ -307,9 +307,9 @@ done:
 
 int_f
 nh5tbread_field_name_int_c(hid_t_f *loc_id,
-                           int_f *namelen,
+                           size_t_f *namelen,
                            _fcd name,
-                           int_f *namelen1,
+                           size_t_f *namelen1,
                            _fcd field_name,
                            hsize_t_f *start,
                            hsize_t_f *nrecords,
@@ -322,9 +322,9 @@ nh5tbread_field_name_int_c(hid_t_f *loc_id,
 
 int_f
 nh5tbread_field_name_fl_c(hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
-                          int_f *namelen1,
+                          size_t_f *namelen1,
                           _fcd field_name,
                           hsize_t_f *start,
                           hsize_t_f *nrecords,
@@ -337,9 +337,9 @@ nh5tbread_field_name_fl_c(hid_t_f *loc_id,
 
 int_f
 nh5tbread_field_name_dl_c(hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
-                          int_f *namelen1,
+                          size_t_f *namelen1,
                           _fcd field_name,
                           hsize_t_f *start,
                           hsize_t_f *nrecords,
@@ -352,9 +352,9 @@ nh5tbread_field_name_dl_c(hid_t_f *loc_id,
 
 int_f
 nh5tbread_field_name_st_c(hid_t_f *loc_id,
-                          int_f *namelen,
+                          size_t_f *namelen,
                           _fcd name,
-                          int_f *namelen1,
+                          size_t_f *namelen1,
                           _fcd field_name,
                           hsize_t_f *start,
                           hsize_t_f *nrecords,
@@ -382,7 +382,7 @@ nh5tbread_field_name_st_c(hid_t_f *loc_id,
 */
 int_f
 nh5tbwrite_field_index_c(hid_t_f *loc_id,
-                         int_f *namelen,
+                         size_t_f *namelen,
                          _fcd name,
                          int_f *field_index,
                          hsize_t_f *start,
@@ -418,7 +418,7 @@ done:
 
 int_f
 nh5tbwrite_field_index_int_c(hid_t_f *loc_id,
-                             int_f *namelen,
+                             size_t_f *namelen,
                              _fcd name,
                              int_f *field_index,
                              hsize_t_f *start,
@@ -432,7 +432,7 @@ nh5tbwrite_field_index_int_c(hid_t_f *loc_id,
 
 int_f
 nh5tbwrite_field_index_fl_c(hid_t_f *loc_id,
-                            int_f *namelen,
+                            size_t_f *namelen,
                             _fcd name,
                             int_f *field_index,
                             hsize_t_f *start,
@@ -446,7 +446,7 @@ nh5tbwrite_field_index_fl_c(hid_t_f *loc_id,
 
 int_f
 nh5tbwrite_field_index_dl_c(hid_t_f *loc_id,
-                            int_f *namelen,
+                            size_t_f *namelen,
                             _fcd name,
                             int_f *field_index,
                             hsize_t_f *start,
@@ -460,7 +460,7 @@ nh5tbwrite_field_index_dl_c(hid_t_f *loc_id,
 
 int_f
 nh5tbwrite_field_index_st_c(hid_t_f *loc_id,
-                            int_f *namelen,
+                            size_t_f *namelen,
                             _fcd name,
                             int_f *field_index,
                             hsize_t_f *start,
@@ -489,7 +489,7 @@ nh5tbwrite_field_index_st_c(hid_t_f *loc_id,
 */
 int_f
 nh5tbread_field_index_c(hid_t_f *loc_id,
-                        int_f *namelen,
+                        size_t_f *namelen,
                         _fcd name,
                         int_f *field_index,
                         hsize_t_f *start,
@@ -524,7 +524,7 @@ done:
 
 int_f
 nh5tbread_field_index_int_c(hid_t_f *loc_id,
-                            int_f *namelen,
+                            size_t_f *namelen,
                             _fcd name,
                             int_f *field_index,
                             hsize_t_f *start,
@@ -538,7 +538,7 @@ nh5tbread_field_index_int_c(hid_t_f *loc_id,
 
 int_f
 nh5tbread_field_index_fl_c(hid_t_f *loc_id,
-                           int_f *namelen,
+                           size_t_f *namelen,
                            _fcd name,
                            int_f *field_index,
                            hsize_t_f *start,
@@ -552,7 +552,7 @@ nh5tbread_field_index_fl_c(hid_t_f *loc_id,
 
 int_f
 nh5tbread_field_index_dl_c(hid_t_f *loc_id,
-                           int_f *namelen,
+                           size_t_f *namelen,
                            _fcd name,
                            int_f *field_index,
                            hsize_t_f *start,
@@ -566,7 +566,7 @@ nh5tbread_field_index_dl_c(hid_t_f *loc_id,
 
 int_f
 nh5tbread_field_index_st_c(hid_t_f *loc_id,
-                           int_f *namelen,
+                           size_t_f *namelen,
                            _fcd name,
                            int_f *field_index,
                            hsize_t_f *start,
@@ -595,9 +595,9 @@ nh5tbread_field_index_st_c(hid_t_f *loc_id,
 */
 int_f
 nh5tbinsert_field_c(hid_t_f *loc_id,
-                    int_f *namelen,
+                    size_t_f *namelen,
                     _fcd name,
-                    int_f *namelen1,
+                    size_t_f *namelen1,
                     _fcd field_name,
                     hid_t_f *field_type,
                     int_f *position,
@@ -633,9 +633,9 @@ done:
 
 int_f
 nh5tbinsert_field_int_c(hid_t_f *loc_id,
-                        int_f *namelen,
+                        size_t_f *namelen,
                         _fcd name,
-                        int_f *namelen1,
+                        size_t_f *namelen1,
                         _fcd field_name,
                         hid_t_f *field_type,
                         int_f *position,
@@ -647,9 +647,9 @@ nh5tbinsert_field_int_c(hid_t_f *loc_id,
 
 int_f
 nh5tbinsert_field_fl_c(hid_t_f *loc_id,
-                       int_f *namelen,
+                       size_t_f *namelen,
                        _fcd name,
-                       int_f *namelen1,
+                       size_t_f *namelen1,
                        _fcd field_name,
                        hid_t_f *field_type,
                        int_f *position,
@@ -661,9 +661,9 @@ nh5tbinsert_field_fl_c(hid_t_f *loc_id,
 
 int_f
 nh5tbinsert_field_dl_c(hid_t_f *loc_id,
-                       int_f *namelen,
+                       size_t_f *namelen,
                        _fcd name,
-                       int_f *namelen1,
+                       size_t_f *namelen1,
                        _fcd field_name,
                        hid_t_f *field_type,
                        int_f *position,
@@ -675,9 +675,9 @@ nh5tbinsert_field_dl_c(hid_t_f *loc_id,
 
 int_f
 nh5tbinsert_field_st_c(hid_t_f *loc_id,
-                       int_f *namelen,
+                       size_t_f *namelen,
                        _fcd name,
-                       int_f *namelen1,
+                       size_t_f *namelen1,
                        _fcd field_name,
                        hid_t_f *field_type,
                        int_f *position,
@@ -704,9 +704,9 @@ nh5tbinsert_field_st_c(hid_t_f *loc_id,
 */
 int_f
 nh5tbdelete_field_c(hid_t_f *loc_id,
-                    int_f *namelen,
+                    size_t_f *namelen,
                     _fcd name,
-                    int_f *namelen1,
+                    size_t_f *namelen1,
                     _fcd field_name)
 {
     char   *c_name = NULL;
@@ -753,7 +753,7 @@ done:
 */
 int_f
 nh5tbget_table_info_c(hid_t_f *loc_id,
-                      int_f *namelen,
+                      size_t_f *namelen,
                       _fcd name,
                       hsize_t_f *nfields,
                       hsize_t_f *nrecords)
@@ -803,16 +803,16 @@ done:
 */
 int_f
 nh5tbget_field_info_c(hid_t_f *loc_id,
-                      int_f *namelen,
+                      size_t_f *namelen,
                       _fcd name,
                       hsize_t_f *nfields,
                       size_t_f *field_sizes,
                       size_t_f *field_offsets,
                       size_t_f *type_size,
-                      int_f *namelen2,       /* field_names lenghts */
-		      int_f *lenmax,         /* character len max */
+                      size_t_f *namelen2,       /* field_names lenghts */
+                      size_t_f *lenmax,         /* character len max */
                       _fcd field_names,      /* field_names */
-                      int_f *maxlen_out)
+                      size_t_f *maxlen_out)
 
 {
     char   *c_name = NULL;
@@ -867,9 +867,9 @@ nh5tbget_field_info_c(hid_t_f *loc_id,
          size_t field_name_len = HDstrlen(c_field_names[i]);
 
          HDmemcpy(tmp_p, c_field_names[i], field_name_len);
-	 namelen2[i] = (int_f)field_name_len;
-	 length = MAX(length, strlen((c_field_names[i])));
-	 tmp_p = tmp_p + c_lenmax;
+         namelen2[i] = (size_t_f)field_name_len;
+         length = MAX(length, strlen((c_field_names[i])));
+         tmp_p = tmp_p + c_lenmax;
     } /* end for */
 
     HD5packFstring(tmp, _fcdtocp(field_names), (size_t)( c_lenmax* c_nfields));
@@ -880,7 +880,7 @@ nh5tbget_field_info_c(hid_t_f *loc_id,
         field_offsets[i] = (size_t_f)c_field_offsets[i];
     } /* end for */
 
-    *maxlen_out = (int_f)length; 
+    *maxlen_out = (size_t_f)length; 
 
 done:
     if(c_name)
diff --git a/hl/fortran/src/H5TBff.f90 b/hl/fortran/src/H5TBff.f90
index 36e13f9..5846f49 100644
--- a/hl/fortran/src/H5TBff.f90
+++ b/hl/fortran/src/H5TBff.f90
@@ -93,14 +93,12 @@ SUBROUTINE h5tbmake_table_f(table_title,&
                             errcode )
 
  IMPLICIT NONE
-
 !
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_HL_DLL)
 !DEC$attributes dllexport :: h5tbmake_table_f
 !DEC$endif
 !
-
  CHARACTER(LEN=*), INTENT(in) :: table_title                      ! name of the dataset
  INTEGER(hid_t),   INTENT(in) :: loc_id                           ! file or group identifier
  CHARACTER(LEN=*), INTENT(in) :: dset_name                        ! name of the dataset
@@ -112,12 +110,12 @@ SUBROUTINE h5tbmake_table_f(table_title,&
  INTEGER(hid_t),   DIMENSION(1:nfields), INTENT(in) :: field_types  ! field types
  INTEGER(hsize_t), INTENT(in) :: chunk_size                       ! chunk size
  INTEGER,          INTENT(in) :: compress                         ! compress
- INTEGER :: namelen                                               ! name length
- INTEGER :: namelen1                                              ! name length
+ INTEGER(size_t) :: namelen                                       ! name length
+ INTEGER(size_t) :: namelen1                                      ! name length
  INTEGER :: errcode                                               ! error code
- INTEGER, DIMENSION(1:nfields) :: char_len_field_names            ! field name lengths
- INTEGER :: max_char_size_field_names                             ! character len of field names
- INTEGER :: i                                                     ! general purpose integer
+ INTEGER(size_t), DIMENSION(1:nfields) :: char_len_field_names    ! field name lengths
+ INTEGER(size_t) :: max_char_size_field_names                     ! character len of field names
+ INTEGER(hsize_t) :: i                                            ! general purpose integer
 
 
  INTERFACE
@@ -138,6 +136,7 @@ SUBROUTINE h5tbmake_table_f(table_title,&
          field_names)
 
       USE h5global
+      IMPLICIT NONE
       !DEC$IF DEFINED(HDF5F90_WINDOWS)
       !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBMAKE_TABLE_C'::h5tbmake_table_c
       !DEC$ENDIF
@@ -154,10 +153,10 @@ SUBROUTINE h5tbmake_table_f(table_title,&
       INTEGER(hid_t),   DIMENSION(nfields), INTENT(in) :: field_types  ! field types
       INTEGER(hsize_t), INTENT(in) :: chunk_size                       ! chunk size
       INTEGER,          INTENT(in) :: compress                         ! compress
-      INTEGER :: namelen                                               ! name length
-      INTEGER :: namelen1                                              ! name length
-      INTEGER, DIMENSION(nfields) :: char_len_field_names              ! field name's lengths
-      INTEGER :: max_char_size                                         ! character len of field names
+      INTEGER(size_t) :: namelen                                       ! name length
+      INTEGER(size_t) :: namelen1                                      ! name length
+      INTEGER(size_t), DIMENSION(nfields) :: char_len_field_names      ! field name's lengths
+      INTEGER(size_t) :: max_char_size_field_names                     ! character len of field names
     END FUNCTION h5tbmake_table_c
  END INTERFACE
  
@@ -218,7 +217,7 @@ SUBROUTINE h5tbwrite_field_name_f_int(loc_id,&
 
 !
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_HL_DLL)
 !DEC$attributes dllexport :: h5tbwrite_field_name_f_int
 !DEC$endif
 !
@@ -231,14 +230,15 @@ SUBROUTINE h5tbwrite_field_name_f_int(loc_id,&
  INTEGER(size_t),  INTENT(in) :: type_size                        ! type size
  INTEGER, INTENT(in), DIMENSION(*) :: buf                         ! data buffer
  INTEGER :: errcode                                               ! error code
- INTEGER :: namelen                                               ! name length
- INTEGER :: namelen1                                              ! name length
+ INTEGER(size_t) :: namelen                                       ! name length
+ INTEGER(size_t) :: namelen1                                      ! name length
 
  INTERFACE
   INTEGER FUNCTION h5tbwrite_field_name_int_c(loc_id,namelen,dset_name,namelen1,field_name,&
   start,nrecords,type_size,buf)
 
   USE h5global
+  IMPLICIT NONE
   !DEC$IF DEFINED(HDF5F90_WINDOWS)
   !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBWRITE_FIELD_NAME_INT_C'::h5tbwrite_field_name_int_c
   !DEC$ENDIF
@@ -252,8 +252,8 @@ SUBROUTINE h5tbwrite_field_name_f_int(loc_id,&
   INTEGER(size_t),  INTENT(in) :: type_size                        ! type size
   INTEGER, INTENT(in), DIMENSION(*) :: buf                         ! data buffer
   INTEGER :: errcode                                               ! error code
-  INTEGER :: namelen                                               ! name length
-  INTEGER :: namelen1                                              ! name length
+  INTEGER(size_t) :: namelen                                       ! name length
+  INTEGER(size_t) :: namelen1                                      ! name length
   END FUNCTION h5tbwrite_field_name_int_c
  END INTERFACE
 
@@ -293,7 +293,7 @@ SUBROUTINE h5tbwrite_field_name_f_float(loc_id,&
 
 !
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_HL_DLL)
 !DEC$attributes dllexport :: h5tbwrite_field_name_f_float
 !DEC$endif
 !
@@ -306,14 +306,15 @@ SUBROUTINE h5tbwrite_field_name_f_float(loc_id,&
  INTEGER(size_t),  INTENT(in) :: type_size                        ! type size
  REAL, INTENT(in), DIMENSION(*) :: buf                            ! data buffer
  INTEGER :: errcode                                               ! error code
- INTEGER :: namelen                                               ! name length
- INTEGER :: namelen1                                              ! name length
+ INTEGER(size_t) :: namelen                                       ! name length
+ INTEGER(size_t) :: namelen1                                      ! name length
 
  INTERFACE
   INTEGER FUNCTION h5tbwrite_field_name_fl_c(loc_id,namelen,dset_name,namelen1,field_name,&
   start,nrecords,type_size,buf)
 
   USE h5global
+  IMPLICIT NONE
   !DEC$IF DEFINED(HDF5F90_WINDOWS)
   !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBWRITE_FIELD_NAME_FL_C'::h5tbwrite_field_name_fl_c
   !DEC$ENDIF
@@ -327,8 +328,8 @@ SUBROUTINE h5tbwrite_field_name_f_float(loc_id,&
   INTEGER(size_t),  INTENT(in) :: type_size                        ! type size
   REAL, INTENT(in), DIMENSION(*) :: buf                            ! data buffer
   INTEGER :: errcode                                               ! error code
-  INTEGER :: namelen                                               ! name length
-  INTEGER :: namelen1                                              ! name length
+  INTEGER(size_t) :: namelen                                       ! name length
+  INTEGER(size_t) :: namelen1                                      ! name length
   END FUNCTION h5tbwrite_field_name_fl_c
  END INTERFACE
 
@@ -370,7 +371,7 @@ SUBROUTINE h5tbwrite_field_name_f_double(loc_id,&
 
 !
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_HL_DLL)
 !DEC$attributes dllexport :: h5tbwrite_field_name_f_double
 !DEC$endif
 !
@@ -383,14 +384,15 @@ SUBROUTINE h5tbwrite_field_name_f_double(loc_id,&
  INTEGER(size_t),  INTENT(in) :: type_size                        ! type size
  DOUBLE PRECISION, INTENT(in), DIMENSION(*) :: buf                ! data buffer
  INTEGER :: errcode                                               ! error code
- INTEGER :: namelen                                               ! name length
- INTEGER :: namelen1                                              ! name length
+ INTEGER(size_t) :: namelen                                       ! name length
+ INTEGER(size_t) :: namelen1                                      ! name length
 
  INTERFACE
   INTEGER FUNCTION h5tbwrite_field_name_dl_c(loc_id,namelen,dset_name,namelen1,field_name,&
   start,nrecords,type_size,buf)
 
   USE h5global
+  IMPLICIT NONE
   !DEC$IF DEFINED(HDF5F90_WINDOWS)
   !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBWRITE_FIELD_NAME_DL_C'::h5tbwrite_field_name_dl_c
   !DEC$ENDIF
@@ -404,8 +406,8 @@ SUBROUTINE h5tbwrite_field_name_f_double(loc_id,&
   INTEGER(size_t),  INTENT(in) :: type_size                        ! type size
   DOUBLE PRECISION, INTENT(in), DIMENSION(*) :: buf                ! data buffer
   INTEGER :: errcode                                               ! error code
-  INTEGER :: namelen                                               ! name length
-  INTEGER :: namelen1                                              ! name length
+  INTEGER(size_t) :: namelen                                       ! name length
+  INTEGER(size_t) :: namelen1                                      ! name length
   END FUNCTION h5tbwrite_field_name_dl_c
  END INTERFACE
 
@@ -445,7 +447,7 @@ SUBROUTINE h5tbwrite_field_name_f_string(loc_id,&
 
 !
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_HL_DLL)
 !DEC$attributes dllexport :: h5tbwrite_field_name_f_string
 !DEC$endif
 !
@@ -458,14 +460,15 @@ SUBROUTINE h5tbwrite_field_name_f_string(loc_id,&
  INTEGER(size_t),  INTENT(in) :: type_size                        ! type size
  CHARACTER(LEN=*), INTENT(in), DIMENSION(*) :: buf                ! data buffer
  INTEGER :: errcode                                               ! error code
- INTEGER :: namelen                                               ! name length
- INTEGER :: namelen1                                              ! name length
+ INTEGER(size_t) :: namelen                                       ! name length
+ INTEGER(size_t) :: namelen1                                      ! name length
 
  INTERFACE
   INTEGER FUNCTION h5tbwrite_field_name_st_c(loc_id,namelen,dset_name,namelen1,field_name,&
   start,nrecords,type_size,buf)
 
   USE h5global
+  IMPLICIT NONE
   !DEC$IF DEFINED(HDF5F90_WINDOWS)
   !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBWRITE_FIELD_NAME_ST_C'::h5tbwrite_field_name_st_c
   !DEC$ENDIF
@@ -479,8 +482,8 @@ SUBROUTINE h5tbwrite_field_name_f_string(loc_id,&
   INTEGER(size_t),  INTENT(in) :: type_size                        ! type size
   CHARACTER(LEN=*), INTENT(in), DIMENSION(*) :: buf                ! data buffer
   INTEGER :: errcode                                               ! error code
-  INTEGER :: namelen                                               ! name length
-  INTEGER :: namelen1                                              ! name length
+  INTEGER(size_t) :: namelen                                               ! name length
+  INTEGER(size_t) :: namelen1                                      ! name length
   END FUNCTION h5tbwrite_field_name_st_c
  END INTERFACE
 
@@ -521,7 +524,7 @@ SUBROUTINE h5tbread_field_name_f_int(loc_id,&
 
 !
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_HL_DLL)
 !DEC$attributes dllexport :: h5tbread_field_name_f_int
 !DEC$endif
 !
@@ -534,14 +537,15 @@ SUBROUTINE h5tbread_field_name_f_int(loc_id,&
  INTEGER(size_t),  INTENT(in) :: type_size                        ! type size
  INTEGER, INTENT(in), DIMENSION(*) :: buf                         ! data buffer
  INTEGER :: errcode                                               ! error code
- INTEGER :: namelen                                               ! name length
- INTEGER :: namelen1                                              ! name length
+ INTEGER(size_t) :: namelen                                       ! name length
+ INTEGER(size_t) :: namelen1                                      ! name length
 
  INTERFACE
   INTEGER FUNCTION h5tbread_field_name_int_c(loc_id,namelen,dset_name,namelen1,field_name,&
   start,nrecords,type_size,buf)
 
   USE h5global
+  IMPLICIT NONE
   !DEC$IF DEFINED(HDF5F90_WINDOWS)
   !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBREAD_FIELD_NAME_INT_C'::h5tbread_field_name_int_c
   !DEC$ENDIF
@@ -555,8 +559,8 @@ SUBROUTINE h5tbread_field_name_f_int(loc_id,&
   INTEGER(size_t),  INTENT(in) :: type_size                        ! type size
   INTEGER, INTENT(in), DIMENSION(*) :: buf                         ! data buffer
   INTEGER :: errcode                                               ! error code
-  INTEGER :: namelen                                               ! name length
-  INTEGER :: namelen1                                              ! name length
+  INTEGER(size_t) :: namelen                                       ! name length
+  INTEGER(size_t) :: namelen1                                      ! name length
   END FUNCTION h5tbread_field_name_int_c
  END INTERFACE
 
@@ -596,7 +600,7 @@ SUBROUTINE h5tbread_field_name_f_float(loc_id,&
 
 !
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_HL_DLL)
 !DEC$attributes dllexport :: h5tbread_field_name_f_float
 !DEC$endif
 !
@@ -609,14 +613,15 @@ SUBROUTINE h5tbread_field_name_f_float(loc_id,&
  INTEGER(size_t),  INTENT(in) :: type_size                        ! type size
  REAL, INTENT(in), DIMENSION(*) :: buf                            ! data buffer
  INTEGER :: errcode                                               ! error code
- INTEGER :: namelen                                               ! name length
- INTEGER :: namelen1                                              ! name length
+ INTEGER(size_t) :: namelen                                       ! name length
+ INTEGER(size_t) :: namelen1                                      ! name length
 
  INTERFACE
   INTEGER FUNCTION h5tbread_field_name_fl_c(loc_id,namelen,dset_name,namelen1,field_name,&
   start,nrecords,type_size,buf)
 
   USE h5global
+  IMPLICIT NONE
   !DEC$IF DEFINED(HDF5F90_WINDOWS)
   !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBREAD_FIELD_NAME_FL_C'::h5tbread_field_name_fl_c
   !DEC$ENDIF
@@ -630,8 +635,8 @@ SUBROUTINE h5tbread_field_name_f_float(loc_id,&
   INTEGER(size_t),  INTENT(in) :: type_size                        ! type size
   REAL, INTENT(in), DIMENSION(*) :: buf                            ! data buffer
   INTEGER :: errcode                                               ! error code
-  INTEGER :: namelen                                               ! name length
-  INTEGER :: namelen1                                              ! name length
+  INTEGER(size_t) :: namelen                                       ! name length
+  INTEGER(size_t) :: namelen1                                      ! name length
   END FUNCTION h5tbread_field_name_fl_c
  END INTERFACE
 
@@ -671,7 +676,7 @@ SUBROUTINE h5tbread_field_name_f_double(loc_id,&
 
 !
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_HL_DLL)
 !DEC$attributes dllexport :: h5tbread_field_name_f_double
 !DEC$endif
 !
@@ -684,14 +689,15 @@ SUBROUTINE h5tbread_field_name_f_double(loc_id,&
  INTEGER(size_t),  INTENT(in) :: type_size                        ! type size
  DOUBLE PRECISION, INTENT(in), DIMENSION(*) :: buf                ! data buffer
  INTEGER :: errcode                                               ! error code
- INTEGER :: namelen                                               ! name length
- INTEGER :: namelen1                                              ! name length
+ INTEGER(size_t) :: namelen                                       ! name length
+ INTEGER(size_t) :: namelen1                                      ! name length
 
  INTERFACE
   INTEGER FUNCTION h5tbread_field_name_dl_c(loc_id,namelen,dset_name,namelen1,field_name,&
   start,nrecords,type_size,buf)
 
   USE h5global
+  IMPLICIT NONE
   !DEC$IF DEFINED(HDF5F90_WINDOWS)
   !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBREAD_FIELD_NAME_DL_C'::h5tbread_field_name_dl_c
   !DEC$ENDIF
@@ -705,8 +711,8 @@ SUBROUTINE h5tbread_field_name_f_double(loc_id,&
   INTEGER(size_t),  INTENT(in) :: type_size                        ! type size
   DOUBLE PRECISION, INTENT(in), DIMENSION(*) :: buf                ! data buffer
   INTEGER :: errcode                                               ! error code
-  INTEGER :: namelen                                               ! name length
-  INTEGER :: namelen1                                              ! name length
+  INTEGER(size_t) :: namelen                                       ! name length
+  INTEGER(size_t) :: namelen1                                      ! name length
   END FUNCTION h5tbread_field_name_dl_c
  END INTERFACE
 
@@ -746,7 +752,7 @@ SUBROUTINE h5tbread_field_name_f_string(loc_id,&
 
 !
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_HL_DLL)
 !DEC$attributes dllexport :: h5tbread_field_name_f_string
 !DEC$endif
 !
@@ -759,14 +765,15 @@ SUBROUTINE h5tbread_field_name_f_string(loc_id,&
  INTEGER(size_t),  INTENT(in) :: type_size                        ! type size
  CHARACTER(LEN=*), INTENT(in), DIMENSION(*) :: buf                ! data buffer
  INTEGER :: errcode                                               ! error code
- INTEGER :: namelen                                               ! name length
- INTEGER :: namelen1                                              ! name length
+ INTEGER(size_t) :: namelen                                       ! name length
+ INTEGER(size_t) :: namelen1                                      ! name length
 
  INTERFACE
   INTEGER FUNCTION h5tbread_field_name_st_c(loc_id,namelen,dset_name,namelen1,field_name,&
   start,nrecords,type_size,buf)
 
   USE h5global
+  IMPLICIT NONE
   !DEC$IF DEFINED(HDF5F90_WINDOWS)
   !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBREAD_FIELD_NAME_ST_C'::h5tbread_field_name_st_c
   !DEC$ENDIF
@@ -780,8 +787,8 @@ SUBROUTINE h5tbread_field_name_f_string(loc_id,&
   INTEGER(size_t),  INTENT(in) :: type_size                        ! type size
   CHARACTER(LEN=*), INTENT(in), DIMENSION(*) :: buf                ! data buffer
   INTEGER :: errcode                                               ! error code
-  INTEGER :: namelen                                               ! name length
-  INTEGER :: namelen1                                              ! name length
+  INTEGER(size_t) :: namelen                                       ! name length
+  INTEGER(size_t) :: namelen1                                      ! name length
   END FUNCTION h5tbread_field_name_st_c
  END INTERFACE
 
@@ -822,7 +829,7 @@ SUBROUTINE h5tbwrite_field_index_f_int(loc_id,&
 
 !
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_HL_DLL)
 !DEC$attributes dllexport :: h5tbwrite_field_index_f_int
 !DEC$endif
 !
@@ -835,13 +842,14 @@ SUBROUTINE h5tbwrite_field_index_f_int(loc_id,&
  INTEGER(size_t),  INTENT(in) :: type_size                        ! type size
  INTEGER, INTENT(in), DIMENSION(*) :: buf                         ! data buffer
  INTEGER :: errcode                                               ! error code
- INTEGER :: namelen                                               ! name length
+ INTEGER(size_t) :: namelen                                       ! name length
 
  INTERFACE
   INTEGER FUNCTION h5tbwrite_field_index_int_c(loc_id,namelen,dset_name,field_index,&
   start,nrecords,type_size,buf)
 
   USE h5global
+  IMPLICIT NONE
   !DEC$IF DEFINED(HDF5F90_WINDOWS)
   !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBWRITE_FIELD_INDEX_INT_C'::h5tbwrite_field_index_int_c
   !DEC$ENDIF
@@ -854,7 +862,7 @@ SUBROUTINE h5tbwrite_field_index_f_int(loc_id,&
   INTEGER(size_t),  INTENT(in) :: type_size                        ! type size
   INTEGER, INTENT(in), DIMENSION(*) :: buf                         ! data buffer
   INTEGER :: errcode                                               ! error code
-  INTEGER :: namelen                                               ! name length
+  INTEGER(size_t) :: namelen                                       ! name length
   END FUNCTION h5tbwrite_field_index_int_c
  END INTERFACE
 
@@ -893,7 +901,7 @@ SUBROUTINE h5tbwrite_field_index_f_float(loc_id,&
 
 !
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_HL_DLL)
 !DEC$attributes dllexport :: h5tbwrite_field_index_f_float
 !DEC$endif
 !
@@ -906,13 +914,14 @@ SUBROUTINE h5tbwrite_field_index_f_float(loc_id,&
  INTEGER(size_t),  INTENT(in) :: type_size                        ! type size
  REAL, INTENT(in), DIMENSION(*) :: buf                            ! data buffer
  INTEGER :: errcode                                               ! error code
- INTEGER :: namelen                                               ! name length
+ INTEGER(size_t) :: namelen                                       ! name length
 
  INTERFACE
   INTEGER FUNCTION h5tbwrite_field_index_fl_c(loc_id,namelen,dset_name,field_index,&
   start,nrecords,type_size,buf)
 
   USE h5global
+  IMPLICIT NONE
   !DEC$IF DEFINED(HDF5F90_WINDOWS)
   !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBWRITE_FIELD_INDEX_FL_C'::h5tbwrite_field_index_fl_c
   !DEC$ENDIF
@@ -925,7 +934,7 @@ SUBROUTINE h5tbwrite_field_index_f_float(loc_id,&
   INTEGER(size_t),  INTENT(in) :: type_size                        ! type size
   REAL, INTENT(in), DIMENSION(*) :: buf                            ! data buffer
   INTEGER :: errcode                                               ! error code
-  INTEGER :: namelen                                               ! name length
+  INTEGER(size_t) :: namelen                                       ! name length
   END FUNCTION h5tbwrite_field_index_fl_c
  END INTERFACE
 
@@ -966,7 +975,7 @@ SUBROUTINE h5tbwrite_field_index_f_double(loc_id,&
 
 !
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_HL_DLL)
 !DEC$attributes dllexport :: h5tbwrite_field_index_f_double
 !DEC$endif
 !
@@ -979,13 +988,14 @@ SUBROUTINE h5tbwrite_field_index_f_double(loc_id,&
  INTEGER(size_t),  INTENT(in) :: type_size                        ! type size
  DOUBLE PRECISION, INTENT(in), DIMENSION(*) :: buf                ! data buffer
  INTEGER :: errcode                                               ! error code
- INTEGER :: namelen                                               ! name length
+ INTEGER(size_t) :: namelen                                       ! name length
 
  INTERFACE
   INTEGER FUNCTION h5tbwrite_field_index_dl_c(loc_id,namelen,dset_name,field_index,&
   start,nrecords,type_size,buf)
 
   USE h5global
+  IMPLICIT NONE
   !DEC$IF DEFINED(HDF5F90_WINDOWS)
   !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBWRITE_FIELD_INDEX_DL_C'::h5tbwrite_field_index_dl_c
   !DEC$ENDIF
@@ -998,7 +1008,7 @@ SUBROUTINE h5tbwrite_field_index_f_double(loc_id,&
   INTEGER(size_t),  INTENT(in) :: type_size                        ! type size
   DOUBLE PRECISION, INTENT(in), DIMENSION(*) :: buf                ! data buffer
   INTEGER :: errcode                                               ! error code
-  INTEGER :: namelen                                               ! name length
+  INTEGER(size_t) :: namelen                                       ! name length
   END FUNCTION h5tbwrite_field_index_dl_c
  END INTERFACE
 
@@ -1037,7 +1047,7 @@ SUBROUTINE h5tbwrite_field_index_f_string(loc_id,&
 
 !
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_HL_DLL)
 !DEC$attributes dllexport :: h5tbwrite_field_index_f_string
 !DEC$endif
 !
@@ -1050,13 +1060,14 @@ SUBROUTINE h5tbwrite_field_index_f_string(loc_id,&
  INTEGER(size_t),  INTENT(in) :: type_size                        ! type size
  CHARACTER(LEN=*), INTENT(in), DIMENSION(*) :: buf                ! data buffer
  INTEGER :: errcode                                               ! error code
- INTEGER :: namelen                                               ! name length
+ INTEGER(size_t) :: namelen                                       ! name length
 
  INTERFACE
   INTEGER FUNCTION h5tbwrite_field_index_st_c(loc_id,namelen,dset_name,field_index,&
   start,nrecords,type_size,buf)
 
   USE h5global
+  IMPLICIT NONE
   !DEC$IF DEFINED(HDF5F90_WINDOWS)
   !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBWRITE_FIELD_INDEX_ST_C'::h5tbwrite_field_index_st_c
   !DEC$ENDIF
@@ -1069,7 +1080,7 @@ SUBROUTINE h5tbwrite_field_index_f_string(loc_id,&
   INTEGER(size_t),  INTENT(in) :: type_size                        ! type size
   CHARACTER(LEN=*), INTENT(in), DIMENSION(*) :: buf                ! data buffer
   INTEGER :: errcode                                               ! error code
-  INTEGER :: namelen                                               ! name length
+  INTEGER(size_t) :: namelen                                       ! name length
   END FUNCTION h5tbwrite_field_index_st_c
  END INTERFACE
 
@@ -1109,7 +1120,7 @@ SUBROUTINE h5tbread_field_index_f_int(loc_id,&
 
 !
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_HL_DLL)
 !DEC$attributes dllexport ::h5tbread_field_index_f_int
 !DEC$endif
 !
@@ -1122,13 +1133,14 @@ SUBROUTINE h5tbread_field_index_f_int(loc_id,&
  INTEGER(size_t),  INTENT(in) :: type_size                        ! type size
  INTEGER, INTENT(in), DIMENSION(*) :: buf                         ! data buffer
  INTEGER :: errcode                                               ! error code
- INTEGER :: namelen                                               ! name length
+ INTEGER(size_t) :: namelen                                       ! name length
 
  INTERFACE
   INTEGER FUNCTION h5tbread_field_index_int_c(loc_id,namelen,dset_name,field_index,&
   start,nrecords,type_size,buf)
 
   USE h5global
+  IMPLICIT NONE
   !DEC$IF DEFINED(HDF5F90_WINDOWS)
   !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBREAD_FIELD_INDEX_INT_C'::h5tbread_field_index_int_c
   !DEC$ENDIF
@@ -1141,7 +1153,7 @@ SUBROUTINE h5tbread_field_index_f_int(loc_id,&
   INTEGER(size_t),  INTENT(in) :: type_size                        ! type size
   INTEGER, INTENT(in), DIMENSION(*) :: buf                         ! data buffer
   INTEGER :: errcode                                               ! error code
-  INTEGER :: namelen                                               ! name length
+  INTEGER(size_t) :: namelen                                       ! name length
   END FUNCTION h5tbread_field_index_int_c
  END INTERFACE
 
@@ -1180,7 +1192,7 @@ SUBROUTINE h5tbread_field_index_f_float(loc_id,&
 
 !
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_HL_DLL)
 !DEC$attributes dllexport :: h5tbread_field_index_f_float
 !DEC$endif
 !
@@ -1193,13 +1205,14 @@ SUBROUTINE h5tbread_field_index_f_float(loc_id,&
  INTEGER(size_t),  INTENT(in) :: type_size                        ! type size
  REAL, INTENT(in), DIMENSION(*) :: buf                            ! data buffer
  INTEGER :: errcode                                               ! error code
- INTEGER :: namelen                                               ! name length
+ INTEGER(size_t) :: namelen                                       ! name length
 
  INTERFACE
   INTEGER FUNCTION h5tbread_field_index_fl_c(loc_id,namelen,dset_name,field_index,&
    start,nrecords,type_size,buf)
 
   USE h5global
+  IMPLICIT NONE
   !DEC$IF DEFINED(HDF5F90_WINDOWS)
   !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBREAD_FIELD_INDEX_FL_C'::h5tbread_field_index_fl_c
   !DEC$ENDIF
@@ -1212,7 +1225,7 @@ SUBROUTINE h5tbread_field_index_f_float(loc_id,&
   INTEGER(size_t),  INTENT(in) :: type_size                        ! type size
   REAL, INTENT(in), DIMENSION(*) :: buf                            ! data buffer
   INTEGER :: errcode                                               ! error code
-  INTEGER :: namelen                                               ! name length
+  INTEGER(size_t) :: namelen                                       ! name length
   END FUNCTION h5tbread_field_index_fl_c
  END INTERFACE
 
@@ -1251,7 +1264,7 @@ SUBROUTINE h5tbread_field_index_f_double(loc_id,&
 
 !
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_HL_DLL)
 !DEC$attributes dllexport :: h5tbread_field_index_f_double
 !DEC$endif
 !
@@ -1264,13 +1277,14 @@ SUBROUTINE h5tbread_field_index_f_double(loc_id,&
  INTEGER(size_t),  INTENT(in) :: type_size                        ! type size
  DOUBLE PRECISION, INTENT(in), DIMENSION(*) :: buf                ! data buffer
  INTEGER :: errcode                                               ! error code
- INTEGER :: namelen                                               ! name length
+ INTEGER(size_t) :: namelen                                       ! name length
 
  INTERFACE
   INTEGER FUNCTION h5tbread_field_index_dl_c(loc_id,namelen,dset_name,field_index,&
    start,nrecords,type_size,buf)
 
   USE h5global
+  IMPLICIT NONE
   !DEC$IF DEFINED(HDF5F90_WINDOWS)
   !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBREAD_FIELD_INDEX_DL_C'::h5tbread_field_index_dl_c
   !DEC$ENDIF
@@ -1283,7 +1297,7 @@ SUBROUTINE h5tbread_field_index_f_double(loc_id,&
   INTEGER(size_t),  INTENT(in) :: type_size                        ! type size
   DOUBLE PRECISION, INTENT(in), DIMENSION(*) :: buf                ! data buffer
   INTEGER :: errcode                                               ! error code
-  INTEGER :: namelen                                               ! name length
+  INTEGER(size_t) :: namelen                                       ! name length
   END FUNCTION h5tbread_field_index_dl_c
  END INTERFACE
 
@@ -1322,7 +1336,7 @@ SUBROUTINE h5tbread_field_index_f_string(loc_id,&
 
 !
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_HL_DLL)
 !DEC$attributes dllexport :: h5tbread_field_index_f_string
 !DEC$endif
 !
@@ -1335,13 +1349,14 @@ SUBROUTINE h5tbread_field_index_f_string(loc_id,&
  INTEGER(size_t),  INTENT(in) :: type_size                        ! type size
  CHARACTER(LEN=*), INTENT(in), DIMENSION(*) :: buf                ! data buffer
  INTEGER :: errcode                                               ! error code
- INTEGER :: namelen                                               ! name length
+ INTEGER(size_t) :: namelen                                       ! name length
 
  INTERFACE
   INTEGER FUNCTION h5tbread_field_index_st_c(loc_id,namelen,dset_name,field_index,&
    start,nrecords,type_size,buf)
 
   USE h5global
+  IMPLICIT NONE
   !DEC$IF DEFINED(HDF5F90_WINDOWS)
   !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBREAD_FIELD_INDEX_ST_C'::h5tbread_field_index_st_c
   !DEC$ENDIF
@@ -1354,7 +1369,7 @@ SUBROUTINE h5tbread_field_index_f_string(loc_id,&
   INTEGER(size_t),  INTENT(in) :: type_size                        ! type size
   CHARACTER(LEN=*), INTENT(in), DIMENSION(*) :: buf                ! data buffer
   INTEGER :: errcode                                               ! error code
-  INTEGER :: namelen                                               ! name length
+  INTEGER(size_t) :: namelen                                       ! name length
   END FUNCTION h5tbread_field_index_st_c
  END INTERFACE
 
@@ -1392,7 +1407,7 @@ SUBROUTINE h5tbinsert_field_f_int(loc_id,&
 
 !
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_HL_DLL)
 !DEC$attributes dllexport :: h5tbinsert_field_f_int
 !DEC$endif
 !
@@ -1403,8 +1418,8 @@ SUBROUTINE h5tbinsert_field_f_int(loc_id,&
  INTEGER(hid_t), INTENT(in)   :: field_type                       ! field type
  INTEGER, INTENT(in) :: field_index                               ! field_index
  INTEGER, INTENT(in), DIMENSION(*) :: buf                         ! data buffer
- INTEGER :: namelen                                               ! name length
- INTEGER :: namelen1                                              ! name length
+ INTEGER(size_t) :: namelen                                       ! name length
+ INTEGER(size_t) :: namelen1                                      ! name length
  INTEGER :: errcode                                               ! error code
 
 
@@ -1413,6 +1428,7 @@ SUBROUTINE h5tbinsert_field_f_int(loc_id,&
    field_type,field_index,buf)
 
   USE h5global
+  IMPLICIT NONE
   !DEC$IF DEFINED(HDF5F90_WINDOWS)
   !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBINSERT_FIELD_INT_C'::h5tbinsert_field_int_c
   !DEC$ENDIF
@@ -1424,8 +1440,8 @@ SUBROUTINE h5tbinsert_field_f_int(loc_id,&
   INTEGER(hid_t), INTENT(in)   :: field_type                       ! field type
   INTEGER, INTENT(in) :: field_index                               ! field_index
   INTEGER, INTENT(in), DIMENSION(*) :: buf                         ! data buffer
-  INTEGER :: namelen                                               ! name length
-  INTEGER :: namelen1                                              ! name length length
+  INTEGER(size_t) :: namelen                                       ! name length
+  INTEGER(size_t) :: namelen1                                      ! name length length
   END FUNCTION h5tbinsert_field_int_c
  END INTERFACE
 
@@ -1465,7 +1481,7 @@ SUBROUTINE h5tbinsert_field_f_float(loc_id,&
 
 !
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_HL_DLL)
 !DEC$attributes dllexport :: h5tbinsert_field_f_float
 !DEC$endif
 !
@@ -1476,8 +1492,8 @@ SUBROUTINE h5tbinsert_field_f_float(loc_id,&
  INTEGER(hid_t), INTENT(in)   :: field_type                       ! field type
  INTEGER, INTENT(in) :: field_index                               ! field_index
  REAL, INTENT(in), DIMENSION(*) :: buf                            ! data buffer
- INTEGER :: namelen                                               ! name length
- INTEGER :: namelen1                                              ! name length
+ INTEGER(size_t) :: namelen                                       ! name length
+ INTEGER(size_t) :: namelen1                                      ! name length
  INTEGER :: errcode                                               ! error code
 
 
@@ -1486,6 +1502,7 @@ SUBROUTINE h5tbinsert_field_f_float(loc_id,&
    field_type,field_index,buf)
 
   USE h5global
+  IMPLICIT NONE
   !DEC$IF DEFINED(HDF5F90_WINDOWS)
   !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBINSERT_FIELD_FL_C'::h5tbinsert_field_fl_c
   !DEC$ENDIF
@@ -1497,8 +1514,8 @@ SUBROUTINE h5tbinsert_field_f_float(loc_id,&
   INTEGER(hid_t), INTENT(in)   :: field_type                       ! field type
   INTEGER, INTENT(in) :: field_index                               ! field_index
   REAL, INTENT(in), DIMENSION(*) :: buf                            ! data buffer
-  INTEGER :: namelen                                               ! name length
-  INTEGER :: namelen1                                              ! name length length
+  INTEGER(size_t) :: namelen                                       ! name length
+  INTEGER(size_t) :: namelen1                                      ! name length length
   END FUNCTION h5tbinsert_field_fl_c
  END INTERFACE
 
@@ -1538,7 +1555,7 @@ SUBROUTINE h5tbinsert_field_f_double(loc_id,&
 
 !
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_HL_DLL)
 !DEC$attributes dllexport :: h5tbinsert_field_f_double
 !DEC$endif
 !
@@ -1549,8 +1566,8 @@ SUBROUTINE h5tbinsert_field_f_double(loc_id,&
  INTEGER(hid_t), INTENT(in)   :: field_type                       ! field type
  INTEGER, INTENT(in) :: field_index                               ! field_index
  DOUBLE PRECISION, INTENT(in), DIMENSION(*) :: buf                ! data buffer
- INTEGER :: namelen                                               ! name length
- INTEGER :: namelen1                                              ! name length
+ INTEGER(size_t) :: namelen                                       ! name length
+ INTEGER(size_t) :: namelen1                                      ! name length
  INTEGER :: errcode                                               ! error code
 
 
@@ -1559,6 +1576,7 @@ SUBROUTINE h5tbinsert_field_f_double(loc_id,&
    field_type,field_index,buf)
 
   USE h5global
+  IMPLICIT NONE
   !DEC$IF DEFINED(HDF5F90_WINDOWS)
   !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBINSERT_FIELD_DL_C'::h5tbinsert_field_dl_c
   !DEC$ENDIF
@@ -1570,8 +1588,8 @@ SUBROUTINE h5tbinsert_field_f_double(loc_id,&
   INTEGER(hid_t), INTENT(in)   :: field_type                       ! field type
   INTEGER, INTENT(in) :: field_index                               ! field_index
   DOUBLE PRECISION, INTENT(in), DIMENSION(*) :: buf                ! data buffer
-  INTEGER :: namelen                                               ! name length
-  INTEGER :: namelen1                                              ! name length length
+  INTEGER(size_t) :: namelen                                       ! name length
+  INTEGER(size_t) :: namelen1                                      ! name length length
   END FUNCTION h5tbinsert_field_dl_c
  END INTERFACE
 
@@ -1612,7 +1630,7 @@ SUBROUTINE h5tbinsert_field_f_string(loc_id,&
 
 !
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_HL_DLL)
 !DEC$attributes dllexport :: h5tbinsert_field_f_string
 !DEC$endif
 !
@@ -1623,8 +1641,8 @@ SUBROUTINE h5tbinsert_field_f_string(loc_id,&
  INTEGER(hid_t), INTENT(in)   :: field_type                       ! field type
  INTEGER, INTENT(in) :: field_index                               ! field_index
  CHARACTER(LEN=*), INTENT(in), DIMENSION(*) :: buf                ! data buffer
- INTEGER :: namelen                                               ! name length
- INTEGER :: namelen1                                              ! name length
+ INTEGER(size_t) :: namelen                                       ! name length
+ INTEGER(size_t) :: namelen1                                      ! name length
  INTEGER :: errcode                                               ! error code
 
 
@@ -1633,6 +1651,7 @@ SUBROUTINE h5tbinsert_field_f_string(loc_id,&
    field_type,field_index,buf)
 
   USE h5global
+  IMPLICIT NONE
   !DEC$IF DEFINED(HDF5F90_WINDOWS)
   !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBINSERT_FIELD_ST_C'::h5tbinsert_field_st_c
   !DEC$ENDIF
@@ -1644,8 +1663,8 @@ SUBROUTINE h5tbinsert_field_f_string(loc_id,&
   INTEGER(hid_t), INTENT(in)   :: field_type                       ! field type
   INTEGER, INTENT(in) :: field_index                               ! field_index
   CHARACTER(LEN=*), INTENT(in), DIMENSION(*) :: buf                ! data buffer
-  INTEGER :: namelen                                               ! name length
-  INTEGER :: namelen1                                              ! name length length
+  INTEGER(size_t) :: namelen                                       ! name length
+  INTEGER(size_t) :: namelen1                                      ! name length length
   END FUNCTION h5tbinsert_field_st_c
  END INTERFACE
 
@@ -1683,7 +1702,7 @@ SUBROUTINE h5tbdelete_field_f(loc_id,&
 
 !
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_HL_DLL)
 !DEC$attributes dllexport :: h5tbdelete_field_f
 !DEC$endif
 !
@@ -1691,8 +1710,8 @@ SUBROUTINE h5tbdelete_field_f(loc_id,&
  INTEGER(hid_t),   INTENT(in) :: loc_id                           ! file or group identifier
  CHARACTER(LEN=*), INTENT(in) :: dset_name                        ! name of the dataset
  CHARACTER(LEN=*), INTENT(in) :: field_name                       ! name of the field
- INTEGER :: namelen                                               ! name length
- INTEGER :: namelen1                                              ! name length
+ INTEGER(size_t) :: namelen                                       ! name length
+ INTEGER(size_t) :: namelen1                                      ! name length
  INTEGER :: errcode                                               ! error code
 
 
@@ -1700,6 +1719,7 @@ SUBROUTINE h5tbdelete_field_f(loc_id,&
   INTEGER FUNCTION h5tbdelete_field_c(loc_id,namelen,dset_name,namelen1,field_name)
 
   USE h5global
+  IMPLICIT NONE
   !DEC$IF DEFINED(HDF5F90_WINDOWS)
   !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBDELETE_FIELD_C'::h5tbdelete_field_c
   !DEC$ENDIF
@@ -1708,8 +1728,8 @@ SUBROUTINE h5tbdelete_field_f(loc_id,&
   INTEGER(HID_T),   INTENT(IN) :: loc_id                           ! file or group identifier
   CHARACTER(LEN=*), INTENT(IN) :: dset_name                        ! name of the dataset
   CHARACTER(LEN=*), INTENT(IN) :: field_name                       ! name of the field
-  INTEGER :: namelen                                               ! name length
-  INTEGER :: namelen1                                              ! name length length
+  INTEGER(size_t) :: namelen                                       ! name length
+  INTEGER(size_t) :: namelen1                                      ! name length length
   END FUNCTION h5tbdelete_field_c
  END INTERFACE
 
@@ -1749,7 +1769,7 @@ SUBROUTINE h5tbget_table_info_f(loc_id,&
 
 !
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_HL_DLL)
 !DEC$attributes dllexport :: h5tbget_table_info_f
 !DEC$endif
 !
@@ -1759,11 +1779,12 @@ SUBROUTINE h5tbget_table_info_f(loc_id,&
  INTEGER(hsize_t), INTENT(inout):: nfields          ! nfields
  INTEGER(hsize_t), INTENT(inout):: nrecords         ! nrecords
  INTEGER :: errcode                                 ! error code
- INTEGER :: namelen                                 ! name length
+ INTEGER(size_t) :: namelen                         ! name length
 
  INTERFACE
   INTEGER FUNCTION h5tbget_table_info_c(loc_id,namelen,dset_name,nfields,nrecords)
   USE h5global
+  IMPLICIT NONE
   !DEC$IF DEFINED(HDF5F90_WINDOWS)
   !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBGET_TABLE_INFO_C'::h5tbget_table_info_c
   !DEC$ENDIF
@@ -1772,7 +1793,7 @@ SUBROUTINE h5tbget_table_info_f(loc_id,&
   CHARACTER(LEN=*), INTENT(in) :: dset_name          ! name of the dataset
   INTEGER(hsize_t), INTENT(inout):: nfields          ! nfields
   INTEGER(hsize_t), INTENT(inout):: nrecords         ! nrecords
-  INTEGER :: namelen                                 ! name length
+  INTEGER(size_t) :: namelen                         ! name length
   END FUNCTION h5tbget_table_info_c
  END INTERFACE
 
@@ -1796,7 +1817,7 @@ END SUBROUTINE h5tbget_table_info_f
 ! Comments:
 !
 ! Modifications: 
-!  Added optional parameter for returning the maximum character lenght
+!  Added optional parameter for returning the maximum character length
 !  in the field name array. March 3, 2011 
 !
 !-------------------------------------------------------------------------
@@ -1805,15 +1826,15 @@ SUBROUTINE h5tbget_field_info_f(loc_id,&
                                 dset_name,&
                                 nfields,&
                                 field_names,&
-				field_sizes,&
-				field_offsets,&
-				type_size,&
+                                field_sizes,&
+                                field_offsets,&
+                                type_size,&
                                 errcode, maxlen_out )
 
   IMPLICIT NONE
 !
 !This definition is needed for Windows DLLs
-!DEC$if defined(BUILD_HDF5_DLL)
+!DEC$if defined(BUILD_HDF5_HL_DLL)
 !DEC$attributes dllexport :: h5tbget_field_info_f
 !DEC$endif
 !
@@ -1826,17 +1847,18 @@ SUBROUTINE h5tbget_field_info_f(loc_id,&
   INTEGER(size_t),  INTENT(inout):: type_size                           ! type size
   INTEGER :: errcode                                                    ! error code
   INTEGER, OPTIONAL :: maxlen_out                                       ! maximum character len of the field names
-  INTEGER :: namelen                                                    ! name length
-  INTEGER, DIMENSION(nfields) :: namelen2                               ! name lengths
-  INTEGER :: i                                                          ! general purpose integer
-  INTEGER :: maxlen
-  INTEGER :: c_maxlen_out
+  INTEGER(size_t) :: namelen                                            ! name length
+  INTEGER(size_t), DIMENSION(nfields) :: namelen2                       ! name lengths
+  INTEGER(hsize_t) :: i                                                          ! general purpose integer
+  INTEGER(size_t) :: maxlen
+  INTEGER(size_t) :: c_maxlen_out
 
   INTERFACE
      INTEGER FUNCTION h5tbget_field_info_c(loc_id,namelen,dset_name,nfields,&
           field_sizes,field_offsets,type_size,namelen2, maxlen, field_names, c_maxlen_out)
 
        USE h5global
+       IMPLICIT NONE
        !DEC$IF DEFINED(HDF5F90_WINDOWS)
        !DEC$ATTRIBUTES C,reference,decorate,alias:'H5TBGET_FIELD_INFO_C'::h5tbget_field_info_c
        !DEC$ENDIF
@@ -1848,10 +1870,10 @@ SUBROUTINE h5tbget_field_info_f(loc_id,&
        INTEGER(size_t),  DIMENSION(1:nfields), INTENT(inout) :: field_sizes   ! field sizes
        INTEGER(size_t),  DIMENSION(1:nfields), INTENT(inout) :: field_offsets ! field offsets
        INTEGER(size_t),  INTENT(inout):: type_size                            ! type size
-       INTEGER :: namelen                                                     ! name length
-       INTEGER :: maxlen                                                      ! maxiumum length of input field names
-       INTEGER, DIMENSION(1:nfields) :: namelen2                              ! name lengths
-       INTEGER :: c_maxlen_out                  ! maximum character length of a field array element 
+       INTEGER(size_t) :: namelen                                             ! name length
+       INTEGER(size_t) :: maxlen                                              ! maxiumum length of input field names
+       INTEGER(size_t), DIMENSION(1:nfields) :: namelen2                      ! name lengths
+       INTEGER(size_t) :: c_maxlen_out                  ! maximum character length of a field array element 
      END FUNCTION h5tbget_field_info_c
   END INTERFACE
 
diff --git a/hl/fortran/src/Makefile.in b/hl/fortran/src/Makefile.in
index 99cf547..c0fa250 100644
--- a/hl/fortran/src/Makefile.in
+++ b/hl/fortran/src/Makefile.in
@@ -108,7 +108,8 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \
 TESTS =
 subdir = hl/fortran/src
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \
+	$(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs
@@ -425,7 +426,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ -I$(top_builddir)/fortran/src \
 AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ $(am__append_1)
 AM_MAKEFLAGS = @AM_MAKEFLAGS@
 AR = @AR@
-AS = @AS@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -457,7 +457,6 @@ DIRECT_VFD = @DIRECT_VFD@
 DLLTOOL = @DLLTOOL@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
-DYNAMIC_DIRS = @DYNAMIC_DIRS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -476,17 +475,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@
 FCLIBS = @FCLIBS@
 FC_VERSION = @FC_VERSION@
 FGREP = @FGREP@
-FILTERS = @FILTERS@
 FSEARCH_DIRS = @FSEARCH_DIRS@
 GREP = @GREP@
 H5_CFLAGS = @H5_CFLAGS@
 H5_CPPFLAGS = @H5_CPPFLAGS@
 H5_CXXFLAGS = @H5_CXXFLAGS@
-H5_CXX_SHARED = @H5_CXX_SHARED@
 H5_FCFLAGS = @H5_FCFLAGS@
 H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@
 H5_LDFLAGS = @H5_LDFLAGS@
-H5_LONE_COLON = @H5_LONE_COLON@
 H5_VERSION = @H5_VERSION@
 HADDR_T = @HADDR_T@
 HAVE_DMALLOC = @HAVE_DMALLOC@
@@ -509,7 +505,6 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INSTRUMENT = @INSTRUMENT@
 INSTRUMENT_LIBRARY = @INSTRUMENT_LIBRARY@
-LARGEFILE = @LARGEFILE@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
@@ -550,7 +545,6 @@ R_INTEGER = @R_INTEGER@
 R_LARGE = @R_LARGE@
 SEARCH = @SEARCH@
 SED = @SED@
-SETX = @SETX@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIZE_T = @SIZE_T@
@@ -565,10 +559,6 @@ TR = @TR@
 TRACE_API = @TRACE_API@
 UNAME_INFO = @UNAME_INFO@
 USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@
-USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@
-USE_FILTER_NBIT = @USE_FILTER_NBIT@
-USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@
-USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@
 USE_FILTER_SZIP = @USE_FILTER_SZIP@
 USINGMEMCHECKER = @USINGMEMCHECKER@
 VERSION = @VERSION@
@@ -682,15 +672,15 @@ TRACE = perl $(top_srcdir)/bin/trace
 
 # .chkexe files are used to mark tests that have run successfully.
 # .chklog files are output from those tests.
-# *.clog are from the MPE option.
-CHECK_CLEANFILES = *.chkexe *.chklog *.clog
+# *.clog and *.clog2 are from the MPE option.
+CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2
 
 # Add libtool shared library version numbers to the HDF5 library
 # See libtool versioning documentation online.
 # 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_INTERFACE = 10
+LT_VERS_REVISION = 0 
 LT_VERS_AGE = 0
 
 # Our main target, the high-level fortran library
diff --git a/hl/fortran/test/CMakeLists.txt b/hl/fortran/test/CMakeLists.txt
index 120d6a5..55fb987 100644
--- a/hl/fortran/test/CMakeLists.txt
+++ b/hl/fortran/test/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required (VERSION 2.8.11)
+cmake_minimum_required (VERSION 3.1.0)
 PROJECT (HDF5_HL_FORTRAN_TESTS C CXX Fortran)
 
 #-----------------------------------------------------------------------------
@@ -9,32 +9,36 @@ INCLUDE_DIRECTORIES (${CMAKE_Fortran_MODULE_DIRECTORY} ${HDF5_F90_BINARY_DIR} ${
 #-- Adding test for hl_f90_tstds
 add_executable (hl_f90_tstds tstds.f90)
 TARGET_NAMING (hl_f90_tstds ${LIB_TYPE})
-TARGET_FORTRAN_PROPERTIES (hl_f90_tstds " " " ")
+TARGET_FORTRAN_PROPERTIES (hl_f90_tstds ${LIB_TYPE} " " " ")
 target_link_libraries (hl_f90_tstds ${HDF5_HL_F90_LIB_TARGET} ${HDF5_F90_LIB_TARGET})
+target_include_directories (hl_f90_tstds PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY})
 set_target_properties (hl_f90_tstds PROPERTIES LINKER_LANGUAGE Fortran)
 set_target_properties (hl_f90_tstds PROPERTIES FOLDER test/hl/fortran)
 
 #-- Adding test for hl_f90_tstlite
 add_executable (hl_f90_tstlite tstlite.f90)
 TARGET_NAMING (hl_f90_tstlite ${LIB_TYPE})
-TARGET_FORTRAN_PROPERTIES (hl_f90_tstlite " " " ")
+TARGET_FORTRAN_PROPERTIES (hl_f90_tstlite ${LIB_TYPE} " " " ")
 target_link_libraries (hl_f90_tstlite ${HDF5_HL_F90_LIB_TARGET} ${HDF5_F90_LIB_TARGET})
+target_include_directories (hl_f90_tstlite PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY})
 set_target_properties (hl_f90_tstlite PROPERTIES LINKER_LANGUAGE Fortran)
 set_target_properties (hl_f90_tstlite PROPERTIES FOLDER test/hl/fortran)
 
 #-- Adding test for hl_f90_tstimage
 add_executable (hl_f90_tstimage tstimage.f90)
 TARGET_NAMING (hl_f90_tstimage ${LIB_TYPE})
-TARGET_FORTRAN_PROPERTIES (hl_f90_tstimage " " " ")
+TARGET_FORTRAN_PROPERTIES (hl_f90_tstimage ${LIB_TYPE} " " " ")
 target_link_libraries (hl_f90_tstimage  ${HDF5_HL_F90_LIB_TARGET} ${HDF5_F90_LIB_TARGET})
+target_include_directories (hl_f90_tstimage PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY})
 set_target_properties (hl_f90_tstimage PROPERTIES LINKER_LANGUAGE Fortran)
 set_target_properties (hl_f90_tstimage PROPERTIES FOLDER test/hl/fortran)
 
 #-- Adding test for hl_f90_tsttable
 add_executable (hl_f90_tsttable tsttable.f90)
 TARGET_NAMING (hl_f90_tsttable ${LIB_TYPE})
-TARGET_FORTRAN_PROPERTIES (hl_f90_tsttable " " " ")
+TARGET_FORTRAN_PROPERTIES (hl_f90_tsttable ${LIB_TYPE} " " " ")
 target_link_libraries (hl_f90_tsttable ${HDF5_HL_F90_LIB_TARGET} ${HDF5_F90_LIB_TARGET})
+target_include_directories (hl_f90_tsttable PRIVATE ${CMAKE_Fortran_MODULE_DIRECTORY})
 set_target_properties (hl_f90_tsttable PROPERTIES LINKER_LANGUAGE Fortran)
 set_target_properties (hl_f90_tsttable PROPERTIES FOLDER test/hl/fortran)
 
diff --git a/hl/fortran/test/Makefile.in b/hl/fortran/test/Makefile.in
index 4a929a6..6725d26 100644
--- a/hl/fortran/test/Makefile.in
+++ b/hl/fortran/test/Makefile.in
@@ -107,7 +107,8 @@ check_PROGRAMS = $(am__EXEEXT_1)
 TESTS = $(am__EXEEXT_1)
 subdir = hl/fortran/test
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \
+	$(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs
@@ -416,7 +417,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@ -I$(top_builddir)/fortran/src \
 AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@ $(am__append_1)
 AM_MAKEFLAGS = @AM_MAKEFLAGS@
 AR = @AR@
-AS = @AS@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -448,7 +448,6 @@ DIRECT_VFD = @DIRECT_VFD@
 DLLTOOL = @DLLTOOL@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
-DYNAMIC_DIRS = @DYNAMIC_DIRS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -467,17 +466,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@
 FCLIBS = @FCLIBS@
 FC_VERSION = @FC_VERSION@
 FGREP = @FGREP@
-FILTERS = @FILTERS@
 FSEARCH_DIRS = @FSEARCH_DIRS@
 GREP = @GREP@
 H5_CFLAGS = @H5_CFLAGS@
 H5_CPPFLAGS = @H5_CPPFLAGS@
 H5_CXXFLAGS = @H5_CXXFLAGS@
-H5_CXX_SHARED = @H5_CXX_SHARED@
 H5_FCFLAGS = @H5_FCFLAGS@
 H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@
 H5_LDFLAGS = @H5_LDFLAGS@
-H5_LONE_COLON = @H5_LONE_COLON@
 H5_VERSION = @H5_VERSION@
 HADDR_T = @HADDR_T@
 HAVE_DMALLOC = @HAVE_DMALLOC@
@@ -500,7 +496,6 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INSTRUMENT = @INSTRUMENT@
 INSTRUMENT_LIBRARY = @INSTRUMENT_LIBRARY@
-LARGEFILE = @LARGEFILE@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
@@ -541,7 +536,6 @@ R_INTEGER = @R_INTEGER@
 R_LARGE = @R_LARGE@
 SEARCH = @SEARCH@
 SED = @SED@
-SETX = @SETX@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIZE_T = @SIZE_T@
@@ -556,10 +550,6 @@ TR = @TR@
 TRACE_API = @TRACE_API@
 UNAME_INFO = @UNAME_INFO@
 USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@
-USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@
-USE_FILTER_NBIT = @USE_FILTER_NBIT@
-USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@
-USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@
 USE_FILTER_SZIP = @USE_FILTER_SZIP@
 USINGMEMCHECKER = @USINGMEMCHECKER@
 VERSION = @VERSION@
@@ -673,11 +663,11 @@ TRACE = perl $(top_srcdir)/bin/trace
 
 # .chkexe files are used to mark tests that have run successfully.
 # .chklog files are output from those tests.
-# *.clog are from the MPE option.
+# *.clog and *.clog2 are from the MPE option.
 
 # Temporary files.
-CHECK_CLEANFILES = *.chkexe *.chklog *.clog dsetf[1-5].h5 f1img.h5 \
-	f1tab.h5 tstds.h5
+CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 dsetf[1-5].h5 \
+	f1img.h5 f1tab.h5 tstds.h5
 
 # Our main target, the test programs
 TEST_PROG = tstds tstlite tstimage tsttable
diff --git a/hl/fortran/test/tstds.f90 b/hl/fortran/test/tstds.f90
index c73e1c4..cbf6c38 100644
--- a/hl/fortran/test/tstds.f90
+++ b/hl/fortran/test/tstds.f90
@@ -91,7 +91,7 @@ SUBROUTINE test_testds(err)
   !-------------------------------------------------------------------------
   ! attach the DS_1_NAME dimension scale to DSET_NAME at dimension 1
   !-------------------------------------------------------------------------
- 
+
   CALL test_begin(' Test Attaching Dimension Scale         ')
 
   ! get the dataset id for DSET_NAME
diff --git a/hl/fortran/test/tstimage.f90 b/hl/fortran/test/tstimage.f90
index 3794bbf..0bff6b2 100644
--- a/hl/fortran/test/tstimage.f90
+++ b/hl/fortran/test/tstimage.f90
@@ -111,13 +111,11 @@ end do
 ! Initialize FORTRAN predefined datatypes.
 !
 call h5open_f(errcode)
-
 !
 ! Create a new file using default properties.
 !
 call h5fcreate_f(filename, H5F_ACC_TRUNC_F, file_id, errcode)
 
-
 !-------------------------------------------------------------------------
 ! indexed image
 !-------------------------------------------------------------------------
diff --git a/hl/fortran/test/tstlite.f90 b/hl/fortran/test/tstlite.f90
index 0b5a138..d035b89 100644
--- a/hl/fortran/test/tstlite.f90
+++ b/hl/fortran/test/tstlite.f90
@@ -63,7 +63,6 @@ INTEGER        :: i                                  ! general purpose integer
 
 CALL test_begin(' Make/Read datasets (1D)        ')
 
-
 !
 ! Initialize the data array.
 !
@@ -186,8 +185,8 @@ USE HDF5 ! module of HDF5 library
 IMPLICIT NONE
 
 
-INTEGER, PARAMETER :: DIM1 = 4;                             ! columns
-INTEGER, PARAMETER :: DIM2 = 6;                             ! rows
+INTEGER(HSIZE_T), PARAMETER :: DIM1 = 4;             ! columns
+INTEGER(HSIZE_T), PARAMETER :: DIM2 = 6;             ! rows
 CHARACTER(len=9), PARAMETER :: filename = "dsetf2.h5"! File name
 CHARACTER(LEN=5), PARAMETER :: dsetname1 = "dset1"   ! Dataset name
 CHARACTER(LEN=5), PARAMETER :: dsetname2 = "dset2"   ! Dataset name
@@ -205,7 +204,7 @@ REAL, DIMENSION(DIM1,DIM2)    :: buf3r               ! Data buffer
 DOUBLE PRECISION, DIMENSION(DIM1,DIM2) :: buf4       ! Data buffer
 DOUBLE PRECISION, DIMENSION(DIM1,DIM2) :: buf4r      ! Data buffer
 INTEGER        :: errcode                            ! Error flag
-INTEGER        :: i, j, n                            ! general purpose integers
+INTEGER(HSIZE_T) :: i, j, n                            ! general purpose integers
 
 CALL test_begin(' Make/Read datasets (2D)        ')
 
@@ -215,15 +214,15 @@ CALL test_begin(' Make/Read datasets (2D)        ')
 !
 n=1
 DO i = 1, DIM1*DIM2
-   buf(i) = n;
+   buf(i) = INT(n)
    n = n + 1
 END DO
 
 DO i = 1, dims(1)
  DO j = 1, dims(2)
-  buf2(i,j) = (i-1)*dims(2) + j;
-  buf3(i,j) = (i-1)*dims(2) + j;
-  buf4(i,j) = (i-1)*dims(2) + j;
+  buf2(i,j) = INT((i-1)*dims(2) + j)
+  buf3(i,j) = INT((i-1)*dims(2) + j)
+  buf4(i,j) = INT((i-1)*dims(2) + j)
  END DO
 END DO
 
@@ -373,9 +372,9 @@ USE HDF5 ! module of HDF5 library
 
 IMPLICIT NONE
 
-INTEGER, PARAMETER :: DIM1 = 6;                             ! columns
-INTEGER, PARAMETER :: DIM2 = 4;                             ! rows
-INTEGER, PARAMETER :: DIM3 = 2;                             ! layers
+INTEGER, PARAMETER :: DIM1 = 6                             ! columns
+INTEGER, PARAMETER :: DIM2 = 4                             ! rows
+INTEGER, PARAMETER :: DIM3 = 2                             ! layers
 CHARACTER(len=9), PARAMETER :: filename = "dsetf3.h5"       ! File name
 CHARACTER(LEN=5), PARAMETER :: dsetname1 = "dset1"          ! Dataset name
 CHARACTER(LEN=5), PARAMETER :: dsetname2 = "dset2"          ! Dataset name
@@ -394,7 +393,7 @@ DOUBLE PRECISION, DIMENSION(DIM1,DIM2,DIM3) :: buf4         ! Data buffer
 DOUBLE PRECISION, DIMENSION(DIM1,DIM2,DIM3) :: buf4r        ! Data buffer
 INTEGER        :: rank = 3                                  ! Dataset rank
 INTEGER        :: errcode                                   ! Error flag
-INTEGER        :: i, j, k, n                                ! general purpose integers
+INTEGER(HSIZE_T) :: i, j, k, n                                ! general purpose integers
 INTEGER          :: type_class
 INTEGER(SIZE_T)  :: type_size
 
@@ -406,20 +405,20 @@ CALL test_begin(' Make/Read datasets (3D)        ')
 !
 n=1
 DO i = 1, DIM1*DIM2*DIM3
-   buf(i) = n;
+   buf(i) = INT(n)
    n = n + 1
 END DO
 
 n = 1
 DO i = 1, dims(1)
- DO j = 1, dims(2)
- DO k = 1, dims(3)
-  buf2(i,j,k) = n;
-  buf3(i,j,k) = n;
-  buf4(i,j,k) = n;
-  n = n + 1
- END DO
- END DO
+   DO j = 1, dims(2)
+      DO k = 1, dims(3)
+         buf2(i,j,k) = INT(n)
+         buf3(i,j,k) = INT(n)
+         buf4(i,j,k) = INT(n)
+         n = n + 1
+      END DO
+   END DO
 END DO
 
 !
@@ -625,7 +624,7 @@ SUBROUTINE test_datasetND(rank)
   DOUBLE PRECISION, ALLOCATABLE, DIMENSION(:,:,:,:,:,:,:) :: dbuf_7       ! Data buffer
   DOUBLE PRECISION, ALLOCATABLE, DIMENSION(:,:,:,:,:,:,:) :: dbufr_7      ! Data buffer
   INTEGER        :: errcode                                   ! Error flag
-  INTEGER        :: i, j, k, l, m, n, o, nn                   ! general purpose integers
+  INTEGER(HSIZE_T)        :: i, j, k, l, m, n, o, nn                   ! general purpose integers
   INTEGER          :: type_class
   INTEGER(SIZE_T)  :: type_size
   CHARACTER(LEN=1) :: ichr1
@@ -651,9 +650,9 @@ SUBROUTINE test_datasetND(rank)
         DO j = 1, DIM2
            DO k = 1, DIM3
               DO l = 1, DIM4
-                 ibuf_4(i,j,k,l) = nn
-                 rbuf_4(i,j,k,l) = nn
-                 dbuf_4(i,j,k,l) = nn
+                 ibuf_4(i,j,k,l) = INT(nn)
+                 rbuf_4(i,j,k,l) = INT(nn)
+                 dbuf_4(i,j,k,l) = INT(nn)
                  nn = nn + 1
               END DO
            END DO
@@ -677,9 +676,9 @@ SUBROUTINE test_datasetND(rank)
            DO k = 1, DIM3
               DO l = 1, DIM4
                  DO m = 1, DIM5
-                    ibuf_5(i,j,k,l,m) = nn
-                    rbuf_5(i,j,k,l,m) = nn
-                    dbuf_5(i,j,k,l,m) = nn
+                    ibuf_5(i,j,k,l,m) = INT(nn)
+                    rbuf_5(i,j,k,l,m) = INT(nn)
+                    dbuf_5(i,j,k,l,m) = INT(nn)
                     nn = nn + 1
                  END DO
               END DO
@@ -705,9 +704,9 @@ SUBROUTINE test_datasetND(rank)
               DO l = 1, DIM4
                  DO m = 1, DIM5
                     DO n = 1, DIM6
-                       ibuf_6(i,j,k,l,m,n) = nn
-                       rbuf_6(i,j,k,l,m,n) = nn
-                       dbuf_6(i,j,k,l,m,n) = nn
+                       ibuf_6(i,j,k,l,m,n) = INT(nn)
+                       rbuf_6(i,j,k,l,m,n) = INT(nn)
+                       dbuf_6(i,j,k,l,m,n) = INT(nn)
                        nn = nn + 1
                     END DO
                  END DO
@@ -735,9 +734,9 @@ SUBROUTINE test_datasetND(rank)
                  DO m = 1, DIM5
                     DO n = 1, DIM6
                        DO o = 1, DIM7
-                          ibuf_7(i,j,k,l,m,n,o) = nn
-                          rbuf_7(i,j,k,l,m,n,o) = nn
-                          dbuf_7(i,j,k,l,m,n,o) = nn
+                          ibuf_7(i,j,k,l,m,n,o) = INT(nn)
+                          rbuf_7(i,j,k,l,m,n,o) = INT(nn)
+                          dbuf_7(i,j,k,l,m,n,o) = INT(nn)
                           nn = nn + 1
                        END DO
                     END DO
@@ -1045,7 +1044,7 @@ SUBROUTINE test_datasets()
   CHARACTER(len=9), PARAMETER :: filename = "dsetf4.h5"! File name
   INTEGER(HID_T) :: file_id                            ! File identifier
   INTEGER        :: errcode                            ! Error flag
-  INTEGER, PARAMETER :: DIM1 = 10;                     ! Dimension of array
+  INTEGER, PARAMETER :: DIM1 = 10                     ! Dimension of array
   CHARACTER(LEN=5), PARAMETER :: dsetname1 = "dset1"   ! Dataset name
   CHARACTER(LEN=5), PARAMETER :: dsetname2 = "dset2"   ! Dataset name
   CHARACTER(LEN=5), PARAMETER :: dsetname3 = "dset3"   ! Dataset name
@@ -1086,10 +1085,10 @@ SUBROUTINE test_datasets()
   !
   n = 1
   DO i = 1, DIM1
-     buf2(i) = n;
-     buf3(i) = n;
-     buf4(i) = n;
-     n = n + 1;
+     buf2(i) = n
+     buf3(i) = n
+     buf4(i) = n
+     n = n + 1
   END DO
 
   !-------------------------------------------------------------------------
@@ -1344,8 +1343,8 @@ SUBROUTINE test_attributes()
   CHARACTER(len=9), PARAMETER :: filename = "dsetf5.h5"! File name
   CHARACTER(len=9), PARAMETER :: filename1 ="tattr.h5" ! C written attribute file
   INTEGER(HID_T) :: file_id                            ! File identifier
-  INTEGER(HID_T) :: file_id1
-  INTEGER, PARAMETER :: DIM1 = 10;                     ! Dimension of array
+!  INTEGER(HID_T) :: file_id1
+  INTEGER, PARAMETER :: DIM1 = 10                     ! Dimension of array
   CHARACTER(LEN=5), PARAMETER :: attrname1 = "attr1"   ! Attribute name
   CHARACTER(LEN=5), PARAMETER :: attrname2 = "attr2"   ! Attribute name
   CHARACTER(LEN=5), PARAMETER :: attrname3 = "attr3"   ! Attribute name
@@ -1355,8 +1354,8 @@ SUBROUTINE test_attributes()
   CHARACTER(LEN=16), PARAMETER :: buf_c = "string attribute"
   CHARACTER(LEN=8)                  :: bufr1           ! Data buffer
   CHARACTER(LEN=10)                 :: bufr1_lg        ! Data buffer
-  CHARACTER(LEN=16)                 :: bufr_c          ! Data buffer
-  CHARACTER(LEN=18)                 :: bufr_c_lg       ! Data buffer
+!  CHARACTER(LEN=16)                 :: bufr_c          ! Data buffer
+!  CHARACTER(LEN=18)                 :: bufr_c_lg       ! Data buffer
   INTEGER, DIMENSION(DIM1)          :: buf2            ! Data buffer
   INTEGER, DIMENSION(DIM1)          :: bufr2           ! Data buffer
   REAL, DIMENSION(DIM1)             :: buf3            ! Data buffer
@@ -1395,10 +1394,10 @@ SUBROUTINE test_attributes()
   size = DIM1
   n = 1
   DO i = 1, DIM1
-     buf2(i) = n;
-     buf3(i) = n;
-     buf4(i) = n;
-     n = n + 1;
+     buf2(i) = n
+     buf3(i) = n
+     buf4(i) = n
+     n = n + 1
   END DO
 
 
@@ -1443,7 +1442,6 @@ SUBROUTINE test_attributes()
   ! write attribute.
   !
   CALL h5ltset_attribute_float_f(file_id,dsetname1,attrname3,buf3,size,errcode)
-
   !
   ! read attribute.
   !
@@ -1460,7 +1458,6 @@ SUBROUTINE test_attributes()
      ENDIF
   END DO
 
-
   CALL passed()
 
   !-------------------------------------------------------------------------
@@ -1468,8 +1465,7 @@ SUBROUTINE test_attributes()
   !-------------------------------------------------------------------------
 
   CALL test_begin(' Set/Get attributes double      ')
-
-
+  
   !
   ! write attribute.
   !
diff --git a/hl/src/CMakeLists.txt b/hl/src/CMakeLists.txt
index e3a72e4..3c24e40 100644
--- a/hl/src/CMakeLists.txt
+++ b/hl/src/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required (VERSION 2.8.11)
+cmake_minimum_required (VERSION 3.1.0)
 PROJECT (HDF5_HL_SRC)
 
 #-----------------------------------------------------------------------------
@@ -34,7 +34,7 @@ set (HL_HEADERS
 )
 
 add_library (${HDF5_HL_LIB_TARGET} ${LIB_TYPE} ${HL_SRCS} ${HL_HEADERS})
-TARGET_C_PROPERTIES (${HDF5_HL_LIB_TARGET} " " " ")
+TARGET_C_PROPERTIES (${HDF5_HL_LIB_TARGET} ${LIB_TYPE} " " " ")
 target_link_libraries (${HDF5_HL_LIB_TARGET} ${HDF5_LIB_TARGET})
 H5_SET_LIB_OPTIONS (${HDF5_HL_LIB_TARGET} ${HDF5_HL_LIB_NAME} ${LIB_TYPE})
 set_target_properties (${HDF5_HL_LIB_TARGET} PROPERTIES
@@ -60,7 +60,7 @@ install (
 #-----------------------------------------------------------------------------
 if (HDF5_EXPORTED_TARGETS)
   if (BUILD_SHARED_LIBS)
-    INSTALL_TARGET_PDB (${HDF5_HL_LIB_TARGET} ${HDF5_INSTALL_LIB_DIR} hllibraries)
+    INSTALL_TARGET_PDB (${HDF5_HL_LIB_TARGET} ${HDF5_INSTALL_BIN_DIR} hllibraries)
   endif (BUILD_SHARED_LIBS)
   
   install (
diff --git a/hl/src/H5DS.c b/hl/src/H5DS.c
index df69380..0df4270 100644
--- a/hl/src/H5DS.c
+++ b/hl/src/H5DS.c
@@ -144,7 +144,8 @@ herr_t H5DSattach_scale(hid_t did,
     hid_t      dsid_j;       /* DS dataset ID in DIMENSION_LIST */
     H5O_info_t oi1, oi2;
     H5I_type_t it1, it2;
-    int        i, len;
+    int        i;
+    size_t len;
     int        found_ds=0;
     htri_t     is_scale;
 
@@ -242,7 +243,7 @@ herr_t H5DSattach_scale(hid_t did,
     if (has_dimlist == 0)
     {
 
-        dims[0] = rank;
+      dims[0] = (hsize_t)rank;
 
         /* space for the attribute */
         if((sid = H5Screate_simple(1, dims, NULL)) < 0)
@@ -477,7 +478,7 @@ herr_t H5DSattach_scale(hid_t did,
         dsbuf[nelmts - 1] = dsl;
 
         /* create a new data space for the new references array */
-        dims[0] = nelmts;
+        dims[0] = (hsize_t)nelmts;
 
         if((sid = H5Screate_simple(1, dims, NULL)) < 0)
             goto out;
@@ -798,7 +799,7 @@ herr_t H5DSdetach_scale(hid_t did,
 
     for(ii=0; ii<nelmts; ii++) {
         /* First check if we have the same dimension index */
-        if((int)idx == dsbuf[ii].dim_idx) {
+      if(idx == dsbuf[ii].dim_idx) {
             /* get the reference to the dataset */
             ref = dsbuf[ii].ref;
 
@@ -853,7 +854,7 @@ herr_t H5DSdetach_scale(hid_t did,
     if(nelmts)
     {
         /* create a new data space for the new references array */
-        dims[0] = nelmts;
+      dims[0] = (hsize_t)nelmts;
 
         if((sid = H5Screate_simple(1, dims, NULL)) < 0)
             goto out;
@@ -1153,7 +1154,7 @@ htri_t H5DSis_attached(hid_t did,
                     goto out;
 
                 /* same object */
-                if(oi3.fileno == oi4.fileno && oi3.addr == oi4.addr && (int)idx==dsbuf[i].dim_idx)
+                if(oi3.fileno == oi4.fileno && oi3.addr == oi4.addr && idx==dsbuf[i].dim_idx)
                     found_dset=1;
 
                 /* close the dereferenced dataset */
@@ -1429,10 +1430,12 @@ herr_t H5DSset_label(hid_t did, unsigned int idx, const char *label)
     hid_t      aid = -1;      /* attribute ID */
     int        rank;          /* rank of dataset */
     hsize_t    dims[1];       /* dimensions of dataset */
-    const char **buf = NULL;  /* buffer to store in the attribute */
     H5I_type_t it;            /* ID type */
     unsigned   int i;
-
+    union {                    /* union is needed to eliminate compiler warnings about */
+      char  ** buf;            /* discarding the 'const' qualifier in the free */
+      char const ** const_buf; /* buf calls */
+    } u;
     /*-------------------------------------------------------------------------
     * parameter checking
     *-------------------------------------------------------------------------
@@ -1478,7 +1481,7 @@ herr_t H5DSset_label(hid_t did, unsigned int idx, const char *label)
 
     if (has_labels == 0)
     {
-        dims[0] = rank;
+        dims[0] = (hsize_t)rank;
 
         /* space for the attribute */
         if ((sid = H5Screate_simple(1, dims, NULL)) < 0)
@@ -1495,19 +1498,19 @@ herr_t H5DSset_label(hid_t did, unsigned int idx, const char *label)
             goto out;
 
         /* allocate and initialize */
-        buf = (const char **) HDmalloc((size_t) rank * sizeof(char *));
+        u.const_buf = (char const **) HDmalloc((size_t) rank * sizeof(char *));
 
-        if (buf == NULL)
+        if (u.const_buf == NULL)
             goto out;
 
         for (i = 0; i < (unsigned int) rank; i++)
-            buf[i] = NULL;
+	  u.const_buf[i] = NULL;
 
         /* store the label information in the required index */
-        buf[idx] = label;
+        u.const_buf[idx] = label;
 
         /* write the attribute with the label */
-        if (H5Awrite(aid, tid, buf) < 0)
+        if (H5Awrite(aid, tid, u.const_buf) < 0)
             goto out;
 
         /* close */
@@ -1517,10 +1520,10 @@ herr_t H5DSset_label(hid_t did, unsigned int idx, const char *label)
             goto out;
         if (H5Aclose(aid) < 0)
             goto out;
-        if (buf)
+        if (u.const_buf)
         {
-            HDfree(buf);
-            buf = NULL;
+            HDfree(u.const_buf);
+            u.const_buf = NULL;
         }
     }
 
@@ -1531,6 +1534,7 @@ herr_t H5DSset_label(hid_t did, unsigned int idx, const char *label)
 
     else
     {
+             
         if ((aid = H5Aopen(did, DIMENSION_LABELS, H5P_DEFAULT)) < 0)
             goto out;
 
@@ -1538,34 +1542,34 @@ herr_t H5DSset_label(hid_t did, unsigned int idx, const char *label)
             goto out;
 
         /* allocate and initialize */
-        buf = (const char **) HDmalloc((size_t) rank * sizeof(char *));
-
-        if (buf == NULL)
+        u.buf = (char **) HDmalloc((size_t) rank * sizeof(char *));
+	
+        if (u.buf == NULL)
             goto out;
 
         /* read */
-        if (H5Aread(aid, tid, (void *) buf) < 0)
+        if (H5Aread(aid, tid, (void *)u.buf) < 0)
             goto out;
 
         /* free the ptr that will be replaced by label */
-        if (buf[idx])
-            HDfree((void *)buf[idx]);
+        if (u.buf[idx])
+            HDfree(u.buf[idx]);
 
         /* store the label information in the required index */
-        buf[idx] = label;
+        u.const_buf[idx] = label;
 
         /* write the attribute with the new references */
-        if (H5Awrite(aid, tid, buf) < 0)
+        if (H5Awrite(aid, tid, u.buf) < 0)
             goto out;
 
         /* label was brought in, so don't free */
-        buf[idx] = NULL;
+        u.buf[idx] = NULL;
 
         /* free all the ptr's from the H5Aread() */
         for (i = 0; i < (unsigned int) rank; i++)
         {
-            if (buf[i])
-                HDfree((void *)buf[i]);
+            if (u.buf[i])
+                HDfree(u.buf[i]);
         }
 
         /* close */
@@ -1573,28 +1577,29 @@ herr_t H5DSset_label(hid_t did, unsigned int idx, const char *label)
             goto out;
         if (H5Aclose(aid) < 0)
             goto out;
-        if (buf)
+        if (u.buf)
         {
-            HDfree(buf);
-            buf = NULL;
+            HDfree(u.buf);
+            u.buf = NULL;
         }
     }
 
     return SUCCEED;
 
     /* error zone */
+
 out:
-    if (buf)
+    if (u.buf)
     {
-        if (buf[idx]) /* check if we errored during H5Awrite */
-            buf[idx] = NULL; /* don't free label */
+        if (u.buf[idx]) /* check if we errored during H5Awrite */
+            u.buf[idx] = NULL; /* don't free label */
         /* free all the ptr's from the H5Aread() */
         for (i = 0; i < (unsigned int) rank; i++)
         {
-            if (buf[i])
-                HDfree((void *)buf[i]);
+            if (u.buf[i])
+                HDfree(u.buf[i]);
         }
-        HDfree(buf);
+        HDfree(u.buf);
     }
     H5E_BEGIN_TRY
     {
diff --git a/hl/src/H5DSprivate.h b/hl/src/H5DSprivate.h
index 61c0a1c..39c3e74 100644
--- a/hl/src/H5DSprivate.h
+++ b/hl/src/H5DSprivate.h
@@ -28,7 +28,7 @@
 /* attribute type of a DS dataset */
 typedef struct ds_list_t {
  hobj_ref_t ref;     /* object reference  */
- int        dim_idx; /* dimension index of the dataset */
+ unsigned int dim_idx; /* dimension index of the dataset */
 } ds_list_t;
 
 
diff --git a/hl/src/H5IM.c b/hl/src/H5IM.c
index 33b2dd4..774ce2f 100644
--- a/hl/src/H5IM.c
+++ b/hl/src/H5IM.c
@@ -628,9 +628,9 @@ herr_t H5IMlink_palette( hid_t loc_id,
 
         n_refs = H5Sget_simple_extent_npoints(asid);
 
-        dim_ref = n_refs + 1;
+        dim_ref = (hsize_t)n_refs + 1;
 
-        refbuf = (hobj_ref_t*)HDmalloc( sizeof(hobj_ref_t) * (int)dim_ref );
+        refbuf = (hobj_ref_t*)HDmalloc( sizeof(hobj_ref_t) * (size_t)dim_ref );
 
         if ( H5Aread( aid, atid, refbuf ) < 0)
             goto out;
@@ -949,9 +949,9 @@ herr_t H5IMget_palette_info( hid_t loc_id,
 
         n_refs = H5Sget_simple_extent_npoints(asid);
 
-        dim_ref = n_refs;
+        dim_ref = (hsize_t)n_refs;
 
-        refbuf = (hobj_ref_t*)HDmalloc( sizeof(hobj_ref_t) * (int)dim_ref );
+        refbuf = (hobj_ref_t*)HDmalloc( sizeof(hobj_ref_t) * (size_t)dim_ref );
 
         if ( H5Aread( aid, atid, refbuf ) < 0)
             goto out;
@@ -1067,9 +1067,9 @@ herr_t H5IMget_palette( hid_t loc_id,
 
         n_refs = H5Sget_simple_extent_npoints(asid);
 
-        dim_ref = n_refs;
+        dim_ref = (hsize_t)n_refs;
 
-        refbuf = (hobj_ref_t*)HDmalloc( sizeof(hobj_ref_t) * (int)dim_ref );
+        refbuf = (hobj_ref_t*)HDmalloc( sizeof(hobj_ref_t) * (size_t)dim_ref );
 
         if ( H5Aread( aid, atid, refbuf ) < 0)
             goto out;
diff --git a/hl/src/H5LT.c b/hl/src/H5LT.c
index 071b8a5..9b3a4a2 100644
--- a/hl/src/H5LT.c
+++ b/hl/src/H5LT.c
@@ -1982,7 +1982,8 @@ 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(HDstrncmp(name, (char *)op_data, HDstrlen((char *)op_data)) == 0)
+
+    if(HDstrncmp(name, (char *)op_data, MAX(HDstrlen((char *)op_data),HDstrlen(name))) == 0)
         ret = H5_ITER_STOP;
 
     return ret;
@@ -2398,7 +2399,7 @@ print_enum(hid_t type, char* str, size_t *str_len, hbool_t no_ubuf, size_t indt)
     for (i = 0; i < nmembs; i++) {
         if((name[i] = H5Tget_member_name(type, (unsigned)i))==NULL)
             goto out;
-        if(H5Tget_member_value(type, (unsigned)i, value + i * super_size) < 0)
+        if(H5Tget_member_value(type, (unsigned)i, value + (size_t)i * super_size) < 0)
             goto out;
     }
 
@@ -2426,7 +2427,7 @@ print_enum(hid_t type, char* str, size_t *str_len, hbool_t no_ubuf, size_t indt)
 
         /*On SGI Altix(cobalt), wrong values were printed out with "value+i*dst_size"
          *strangely, unless use another pointer "copy".*/
-        copy = value+i*dst_size;
+        copy = value + (size_t)i * dst_size;
         if (H5T_SGN_NONE == H5Tget_sign(native))
             HDsnprintf(tmp_str, TMP_LEN, "%u", *((unsigned int*)((void *)copy)));
         else
@@ -2557,6 +2558,7 @@ char* H5LT_dtype_to_text(hid_t dtype, char *dt_str, H5LT_lang_t lang, size_t *sl
 
     switch (tcls) {
         case H5T_INTEGER:
+        case H5T_BITFIELD:
             if (H5Tequal(dtype, H5T_STD_I8BE)) {
                 HDsnprintf(dt_str, *slen, "H5T_STD_I8BE");
             } else if (H5Tequal(dtype, H5T_STD_I8LE)) {
@@ -3053,9 +3055,19 @@ next:
         case H5T_TIME:
             HDsnprintf(dt_str, *slen, "H5T_TIME: not yet implemented");
             break;
-        case H5T_BITFIELD:
-            HDsnprintf(dt_str, *slen, "H5T_BITFIELD: not yet implemented");
+        case H5T_NO_CLASS:
+            HDsnprintf(dt_str, *slen, "H5T_NO_CLASS");
             break;
+        case H5T_REFERENCE:
+	    if (H5Tequal(dtype, H5T_STD_REF_DSETREG) == TRUE) {
+	      HDsnprintf(dt_str, *slen, " H5T_REFERENCE { H5T_STD_REF_DSETREG }");
+	    }
+	    else {
+	      HDsnprintf(dt_str, *slen, " H5T_REFERENCE { H5T_STD_REF_OBJECT }");
+	    }
+	    break;
+        case H5T_NCLASSES:
+	    break;
         default:
             HDsnprintf(dt_str, *slen, "unknown data type");
     }
diff --git a/hl/src/H5LTanalyze.c b/hl/src/H5LTanalyze.c
index d9ffb36..54e443d 100644
--- a/hl/src/H5LTanalyze.c
+++ b/hl/src/H5LTanalyze.c
@@ -1,3 +1,22 @@
+#if __GNUC__ >= 4 && __GNUC_MINOR__ >=2                           
+#pragma GCC diagnostic ignored "-Wconversion"                     
+#pragma GCC diagnostic ignored "-Wimplicit-function-declaration"  
+#pragma GCC diagnostic ignored "-Wlarger-than="                   
+#pragma GCC diagnostic ignored "-Wmissing-prototypes"             
+#pragma GCC diagnostic ignored "-Wnested-externs"                 
+#pragma GCC diagnostic ignored "-Wold-style-definition"           
+#pragma GCC diagnostic ignored "-Wsign-compare"                   
+#pragma GCC diagnostic ignored "-Wsign-conversion"                
+#pragma GCC diagnostic ignored "-Wstrict-prototypes"              
+#pragma GCC diagnostic ignored "-Wswitch-default"                 
+#pragma GCC diagnostic ignored "-Wunused-function"                
+#pragma GCC diagnostic ignored "-Wunused-macros"                  
+#pragma GCC diagnostic ignored "-Wunused-parameter"               
+#elif defined __SUNPRO_CC                                         
+#pragma disable_warn                                              
+#elif defined _MSC_VER                                            
+#pragma warning(push, 1)                                          
+#endif                                                            
 #line 2 "H5LTanalyze.c"
 
 #line 4 "H5LTanalyze.c"
diff --git a/hl/src/H5LTparse.c b/hl/src/H5LTparse.c
index aa12185..6ca95c5 100644
--- a/hl/src/H5LTparse.c
+++ b/hl/src/H5LTparse.c
@@ -1,3 +1,22 @@
+#if __GNUC__ >= 4 && __GNUC_MINOR__ >=2                           
+#pragma GCC diagnostic ignored "-Wconversion"                     
+#pragma GCC diagnostic ignored "-Wimplicit-function-declaration"  
+#pragma GCC diagnostic ignored "-Wlarger-than="                   
+#pragma GCC diagnostic ignored "-Wmissing-prototypes"             
+#pragma GCC diagnostic ignored "-Wnested-externs"                 
+#pragma GCC diagnostic ignored "-Wold-style-definition"           
+#pragma GCC diagnostic ignored "-Wsign-compare"                   
+#pragma GCC diagnostic ignored "-Wsign-conversion"                
+#pragma GCC diagnostic ignored "-Wstrict-prototypes"              
+#pragma GCC diagnostic ignored "-Wswitch-default"                 
+#pragma GCC diagnostic ignored "-Wunused-function"                
+#pragma GCC diagnostic ignored "-Wunused-macros"                  
+#pragma GCC diagnostic ignored "-Wunused-parameter"               
+#elif defined __SUNPRO_CC                                         
+#pragma disable_warn                                              
+#elif defined _MSC_VER                                            
+#pragma warning(push, 1)                                          
+#endif                                                            
 /* A Bison parser, made by GNU Bison 2.7.  */
 
 /* Bison implementation for Yacc-like parsers in C
diff --git a/hl/src/H5PT.c b/hl/src/H5PT.c
index 7a0bc20..6ed1ac0 100644
--- a/hl/src/H5PT.c
+++ b/hl/src/H5PT.c
@@ -130,6 +130,9 @@ hid_t H5PTcreate_fl ( hid_t loc_id,
   if((table->type_id = H5Tcopy(dtype_id)) < 0)
     goto out;
 
+  if((table->type_id = H5Tget_native_type(table->type_id, H5T_DIR_DEFAULT)) < 0)
+    goto out;
+
   H5PT_create_index(table);
   table->size = 0;
 
diff --git a/hl/src/Makefile.in b/hl/src/Makefile.in
index 9e1af56..eb029e3 100644
--- a/hl/src/Makefile.in
+++ b/hl/src/Makefile.in
@@ -105,7 +105,8 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \
 TESTS =
 subdir = hl/src
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \
+	$(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs
@@ -406,7 +407,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@
 AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@
 AM_MAKEFLAGS = @AM_MAKEFLAGS@
 AR = @AR@
-AS = @AS@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -438,7 +438,6 @@ DIRECT_VFD = @DIRECT_VFD@
 DLLTOOL = @DLLTOOL@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
-DYNAMIC_DIRS = @DYNAMIC_DIRS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -457,17 +456,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@
 FCLIBS = @FCLIBS@
 FC_VERSION = @FC_VERSION@
 FGREP = @FGREP@
-FILTERS = @FILTERS@
 FSEARCH_DIRS = @FSEARCH_DIRS@
 GREP = @GREP@
 H5_CFLAGS = @H5_CFLAGS@
 H5_CPPFLAGS = @H5_CPPFLAGS@
 H5_CXXFLAGS = @H5_CXXFLAGS@
-H5_CXX_SHARED = @H5_CXX_SHARED@
 H5_FCFLAGS = @H5_FCFLAGS@
 H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@
 H5_LDFLAGS = @H5_LDFLAGS@
-H5_LONE_COLON = @H5_LONE_COLON@
 H5_VERSION = @H5_VERSION@
 HADDR_T = @HADDR_T@
 HAVE_DMALLOC = @HAVE_DMALLOC@
@@ -490,7 +486,6 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INSTRUMENT = @INSTRUMENT@
 INSTRUMENT_LIBRARY = @INSTRUMENT_LIBRARY@
-LARGEFILE = @LARGEFILE@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
@@ -531,7 +526,6 @@ R_INTEGER = @R_INTEGER@
 R_LARGE = @R_LARGE@
 SEARCH = @SEARCH@
 SED = @SED@
-SETX = @SETX@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIZE_T = @SIZE_T@
@@ -546,10 +540,6 @@ TR = @TR@
 TRACE_API = @TRACE_API@
 UNAME_INFO = @UNAME_INFO@
 USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@
-USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@
-USE_FILTER_NBIT = @USE_FILTER_NBIT@
-USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@
-USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@
 USE_FILTER_SZIP = @USE_FILTER_SZIP@
 USINGMEMCHECKER = @USINGMEMCHECKER@
 VERSION = @VERSION@
@@ -663,15 +653,15 @@ TRACE = perl $(top_srcdir)/bin/trace
 
 # .chkexe files are used to mark tests that have run successfully.
 # .chklog files are output from those tests.
-# *.clog are from the MPE option.
-CHECK_CLEANFILES = *.chkexe *.chklog *.clog
+# *.clog and *.clog2 are from the MPE option.
+CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2
 
 # Add libtool shared library version numbers to the HDF5 library
 # See libtool versioning documentation online.
 # 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_INTERFACE = 10
+LT_VERS_REVISION = 0 
 LT_VERS_AGE = 0
 
 # This library is our main target.
diff --git a/hl/src/hdf5_hl.h b/hl/src/hdf5_hl.h
index 4643932..4e5fe33 100644
--- a/hl/src/hdf5_hl.h
+++ b/hl/src/hdf5_hl.h
@@ -21,7 +21,7 @@
 
 #ifndef _HDF5_HL_H
 #define _HDF5_HL_H
-
+#include "hdf5.h"       /* hdf5 main library */
 #include "H5DOpublic.h" /* dataset optimization */
 #include "H5DSpublic.h" /* dimension scales */
 #include "H5LTpublic.h" /* lite */
diff --git a/hl/test/CMakeLists.txt b/hl/test/CMakeLists.txt
index 545210b..47383ce 100644
--- a/hl/test/CMakeLists.txt
+++ b/hl/test/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required (VERSION 2.8.11)
+cmake_minimum_required (VERSION 3.1.0)
 PROJECT (HDF5_HL_TEST)
 # --------------------------------------------------------------------
 # Notes: When creating unit test executables they should be prefixed
@@ -23,7 +23,7 @@ INCLUDE_DIRECTORIES (${HDF5_TEST_SRC_DIR})
 MACRO (HL_ADD_EXE hl_name)
   add_executable (hl_${hl_name} ${hl_name}.c)
   TARGET_NAMING (hl_${hl_name} ${LIB_TYPE})
-  TARGET_C_PROPERTIES (hl_${hl_name} " " " ")
+  TARGET_C_PROPERTIES (hl_${hl_name} ${LIB_TYPE} " " " ")
   target_link_libraries (hl_${hl_name}
       ${HDF5_HL_LIB_TARGET}
       ${HDF5_LIB_TARGET}
@@ -45,8 +45,8 @@ HL_ADD_EXE (test_table)
 # --------------------------------------------------------------------
 if (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS)
   add_executable (hl_gen_test_ds gen_test_ds.c)
-  TARGET_NAMING (hl_gen_test_ds ${LIB_TYPE})
-  TARGET_C_PROPERTIES (hl_gen_test_ds " " " ")
+  TARGET_NAMING (hl_gen_test_ds STATIC)
+  TARGET_C_PROPERTIES (hl_gen_test_ds STATIC " " " ")
   target_link_libraries (hl_gen_test_ds
       ${HDF5_HL_LIB_TARGET}
       ${HDF5_LIB_TARGET}
diff --git a/hl/test/Makefile.in b/hl/test/Makefile.in
index a002482..6fc324b 100644
--- a/hl/test/Makefile.in
+++ b/hl/test/Makefile.in
@@ -107,7 +107,8 @@ check_PROGRAMS = $(am__EXEEXT_1)
 TESTS = $(am__EXEEXT_1)
 subdir = hl/test
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \
+	$(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs
@@ -443,7 +444,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@
 AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@
 AM_MAKEFLAGS = @AM_MAKEFLAGS@
 AR = @AR@
-AS = @AS@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -475,7 +475,6 @@ DIRECT_VFD = @DIRECT_VFD@
 DLLTOOL = @DLLTOOL@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
-DYNAMIC_DIRS = @DYNAMIC_DIRS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -494,17 +493,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@
 FCLIBS = @FCLIBS@
 FC_VERSION = @FC_VERSION@
 FGREP = @FGREP@
-FILTERS = @FILTERS@
 FSEARCH_DIRS = @FSEARCH_DIRS@
 GREP = @GREP@
 H5_CFLAGS = @H5_CFLAGS@
 H5_CPPFLAGS = @H5_CPPFLAGS@
 H5_CXXFLAGS = @H5_CXXFLAGS@
-H5_CXX_SHARED = @H5_CXX_SHARED@
 H5_FCFLAGS = @H5_FCFLAGS@
 H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@
 H5_LDFLAGS = @H5_LDFLAGS@
-H5_LONE_COLON = @H5_LONE_COLON@
 H5_VERSION = @H5_VERSION@
 HADDR_T = @HADDR_T@
 HAVE_DMALLOC = @HAVE_DMALLOC@
@@ -527,7 +523,6 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INSTRUMENT = @INSTRUMENT@
 INSTRUMENT_LIBRARY = @INSTRUMENT_LIBRARY@
-LARGEFILE = @LARGEFILE@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
@@ -568,7 +563,6 @@ R_INTEGER = @R_INTEGER@
 R_LARGE = @R_LARGE@
 SEARCH = @SEARCH@
 SED = @SED@
-SETX = @SETX@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIZE_T = @SIZE_T@
@@ -583,10 +577,6 @@ TR = @TR@
 TRACE_API = @TRACE_API@
 UNAME_INFO = @UNAME_INFO@
 USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@
-USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@
-USE_FILTER_NBIT = @USE_FILTER_NBIT@
-USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@
-USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@
 USE_FILTER_SZIP = @USE_FILTER_SZIP@
 USINGMEMCHECKER = @USINGMEMCHECKER@
 VERSION = @VERSION@
@@ -700,14 +690,14 @@ TRACE = perl $(top_srcdir)/bin/trace
 
 # .chkexe files are used to mark tests that have run successfully.
 # .chklog files are output from those tests.
-# *.clog are from the MPE option.
+# *.clog and *.clog2 are from the MPE option.
 
 # Temporary files.  These files are the ones created by running `make test'.
-CHECK_CLEANFILES = *.chkexe *.chklog *.clog combine_tables[1-2].h5 \
-	test_ds[1-9].h5 test_ds10.h5 test_image[1-3].h5 \
-	file_img[1-2].h5 test_lite[1-4].h5 test_table.h5 \
-	test_packet_table.h5 test_packet_compress.h5 test_detach.h5 \
-	test_dectris.h5
+CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 \
+	combine_tables[1-2].h5 test_ds[1-9].h5 test_ds10.h5 \
+	test_image[1-3].h5 file_img[1-2].h5 test_lite[1-4].h5 \
+	test_table.h5 test_packet_table.h5 test_packet_compress.h5 \
+	test_detach.h5 test_dectris.h5
 
 # The tests depend on the hdf5, hdf5 test,  and hdf5_hl libraries
 LDADD = $(LIBH5_HL) $(LIBH5TEST) $(LIBHDF5)
diff --git a/hl/test/dectris_hl_perf.c b/hl/test/dectris_hl_perf.c
index a3e382a..d62926a 100644
--- a/hl/test/dectris_hl_perf.c
+++ b/hl/test/dectris_hl_perf.c
@@ -18,7 +18,6 @@
  *
  */
 
-#include "hdf5.h"
 #include "hdf5_hl.h"
 #include <zlib.h>
 #include <math.h>
diff --git a/hl/test/h5hltest.h b/hl/test/h5hltest.h
index 809c4ec..e8292d2 100644
--- a/hl/test/h5hltest.h
+++ b/hl/test/h5hltest.h
@@ -33,7 +33,7 @@
 #define TESTING2(WHAT)  {printf("%-70s", "Testing     " WHAT); fflush(stdout);}
 #define TESTING3(WHAT)  {printf("%-70s", "" WHAT); fflush(stdout);}
 
-/* Implrements verbose 'assert' with 'goto error' exit  */
+/* Implements verbose 'assert' with 'goto error' exit  */
 #define VERIFY(condition, string) do { if (!(condition)) FAIL_PUTS_ERROR(string) } while(0)
 
 #endif /* _H5HLTEST_H */
diff --git a/hl/test/test_ds.c b/hl/test/test_ds.c
index d071fd5..3d5b728 100644
--- a/hl/test/test_ds.c
+++ b/hl/test/test_ds.c
@@ -3134,7 +3134,7 @@ static int test_simple(void)
     if(H5DSget_scale_name(dsid, name_out, (size_t)name_len+1) < 0)
         goto out;
 
-    if(HDstrncmp("Latitude set 0",name_out, name_len)!=0)
+    if(HDstrncmp("Latitude set 0",name_out, (size_t)name_len)!=0)
         goto out;
     if(name_out) {
         HDfree(name_out);
diff --git a/hl/test/test_dset_opt.c b/hl/test/test_dset_opt.c
index bddd162..95ce535 100644
--- a/hl/test/test_dset_opt.c
+++ b/hl/test/test_dset_opt.c
@@ -41,7 +41,7 @@
 #define CHUNK_NX     4
 #define CHUNK_NY     4
 
-#define DEFLATE_SIZE_ADJUST(s) (ceil(((double)(s))*1.001)+12)
+#define DEFLATE_SIZE_ADJUST(s) (ceil(((double)(s))*1.001F)+12)
 
 /* Temporary filter IDs used for testing */
 #define H5Z_FILTER_BOGUS1	305
@@ -501,20 +501,20 @@ filter_bogus1(unsigned int flags, size_t UNUSED cd_nelmts,
       size_t *buf_size, void **buf)
 {
     int *int_ptr=(int *)*buf;          /* Pointer to the data values */
-    ssize_t buf_left=*buf_size;  /* Amount of data buffer left to process */
+    ssize_t buf_left=(ssize_t)*buf_size;  /* Amount of data buffer left to process */
 
     if(flags & H5Z_FLAG_REVERSE) { /* read */
         /* Substract the "add on" value to all the data values */
         while(buf_left>0) {
             *int_ptr++ -= (int)ADD_ON;
-            buf_left -= sizeof(int);
+            buf_left -= (ssize_t)sizeof(int);
         } /* end while */
     } /* end if */
     else { /* write */
         /* Add the "add on" value to all the data values */
         while(buf_left>0) {
             *int_ptr++ += (int)ADD_ON;
-            buf_left -= sizeof(int);
+            buf_left -= (ssize_t)sizeof(int);
         } /* end while */
     } /* end else */
 
@@ -538,20 +538,20 @@ filter_bogus2(unsigned int flags, size_t UNUSED cd_nelmts,
       size_t *buf_size, void **buf)
 {
     int *int_ptr=(int *)*buf;          /* Pointer to the data values */
-    ssize_t buf_left=*buf_size;  /* Amount of data buffer left to process */
+    ssize_t buf_left=(ssize_t)*buf_size;  /* Amount of data buffer left to process */
 
     if(flags & H5Z_FLAG_REVERSE) { /* read */
         /* Substract the "add on" value to all the data values */
         while(buf_left>0) {
             *int_ptr++ /= (int)FACTOR;
-            buf_left -= sizeof(int);
+            buf_left -= (ssize_t)sizeof(int);
         } /* end while */
     } /* end if */
     else { /* write */
         /* Add the "add on" value to all the data values */
         while(buf_left>0) {
             *int_ptr++ *= (int)FACTOR;
-            buf_left -= sizeof(int);
+            buf_left -= (ssize_t)sizeof(int);
         } /* end while */
     } /* end else */
 
diff --git a/hl/test/test_lite.c b/hl/test/test_lite.c
index 9a15957..fccc85f 100644
--- a/hl/test/test_lite.c
+++ b/hl/test/test_lite.c
@@ -36,10 +36,12 @@
 
 #define DIM 6
 
+#define ATTR_NAME_SUB "att"
 #define ATTR1_NAME "attr string"
 #define ATTR2_NAME "attr char"
 #define ATTR3_NAME "attr short"
 #define ATTR4_NAME "attr int"
+#define ATTR_NAME_EXT "att int ext"
 #define ATTR5_NAME "attr long"
 #define ATTR6_NAME "attr uchar"
 #define ATTR7_NAME "attr ushort"
@@ -298,7 +300,7 @@ static int test_dsets( void )
 
     for (i = 0; i < DIM; i++)
     {
-        if ( data_float_in[i] != data_float_out[i] ) {
+        if(!FLT_ABS_EQUAL(data_float_in[i],data_float_out[i])) {
             goto out;
         }
     }
@@ -309,7 +311,7 @@ static int test_dsets( void )
 
     for (i = 0; i < DIM; i++)
     {
-        if ( data_float_in[i] != data_float_out[i] ) {
+        if(!FLT_ABS_EQUAL(data_float_in[i],data_float_out[i])) {
             goto out;
         }
     }
@@ -334,7 +336,7 @@ static int test_dsets( void )
 
     for (i = 0; i < DIM; i++)
     {
-        if ( data_double_in[i] != data_double_out[i] ) {
+        if(!DBL_ABS_EQUAL(data_double_in[i],data_double_out[i])) {
             goto out;
         }
     }
@@ -345,7 +347,7 @@ static int test_dsets( void )
 
     for (i = 0; i < DIM; i++)
     {
-        if ( data_double_in[i] != data_double_out[i] ) {
+        if(!DBL_ABS_EQUAL(data_double_in[i],data_double_out[i])) {
             goto out;
         }
     }
@@ -646,6 +648,14 @@ static herr_t make_attributes( hid_t loc_id, const char* obj_name )
     if ( H5LTset_attribute_int( loc_id, obj_name, ATTR4_NAME, attr_int_in, (size_t)5 ) < 0 )
         return -1;
 
+    /* Set the attribute which is a substring of an existing attribute */
+    if ( H5LTset_attribute_int( loc_id, obj_name, ATTR_NAME_SUB, attr_int_in, (size_t)5 ) < 0 )
+        return -1;
+
+    /* Set the attribute which is an extension of an existing attribute */
+    if ( H5LTset_attribute_int( loc_id, obj_name, ATTR_NAME_EXT, attr_int_in, (size_t)5 ) < 0 )
+        return -1;
+
     PASSED();
 
     /*-------------------------------------------------------------------------
@@ -666,6 +676,26 @@ static herr_t make_attributes( hid_t loc_id, const char* obj_name )
         }
     }
 
+    if ( H5LTget_attribute_int( loc_id, obj_name, ATTR_NAME_SUB, attr_int_out ) < 0 )
+        return -1;
+
+    for (i = 0; i < 5; i++)
+    {
+        if ( attr_int_in[i] != attr_int_out[i] ) {
+            return -1;
+        }
+    }
+
+    if ( H5LTget_attribute_int( loc_id, obj_name, ATTR_NAME_EXT, attr_int_out ) < 0 )
+        return -1;
+
+    for (i = 0; i < 5; i++)
+    {
+        if ( attr_int_in[i] != attr_int_out[i] ) {
+            return -1;
+        }
+    }
+
     /* Get the attribute */
     if ( H5LTget_attribute( loc_id, obj_name, ATTR4_NAME, H5T_NATIVE_INT, attr_int_out ) < 0 )
         return -1;
@@ -929,7 +959,7 @@ static herr_t make_attributes( hid_t loc_id, const char* obj_name )
 
     for (i = 0; i < 5; i++)
     {
-        if ( attr_float_in[i] != attr_float_out[i] ) {
+        if(!FLT_ABS_EQUAL(attr_float_in[i],attr_float_out[i])) {
             return -1;
         }
     }
@@ -940,7 +970,7 @@ static herr_t make_attributes( hid_t loc_id, const char* obj_name )
 
     for (i = 0; i < 5; i++)
     {
-        if ( attr_float_in[i] != attr_float_out[i] ) {
+        if(!FLT_ABS_EQUAL(attr_float_in[i],attr_float_out[i])) {
             return -1;
         }
     }
@@ -973,7 +1003,7 @@ static herr_t make_attributes( hid_t loc_id, const char* obj_name )
 
     for (i = 0; i < 5; i++)
     {
-        if ( attr_double_in[i] != attr_double_out[i] ) {
+        if(!DBL_ABS_EQUAL(attr_double_in[i],attr_double_out[i])) {
             return -1;
         }
     }
@@ -984,7 +1014,7 @@ static herr_t make_attributes( hid_t loc_id, const char* obj_name )
 
     for (i = 0; i < 5; i++)
     {
-        if ( attr_double_in[i] != attr_double_out[i] ) {
+        if(!DBL_ABS_EQUAL(attr_double_in[i],attr_double_out[i])) {
             return -1;
         }
     }
@@ -1016,7 +1046,7 @@ static herr_t make_attributes( hid_t loc_id, const char* obj_name )
 
     TESTING("H5LTget_attribute_info");
 
-    if(NULL==(dims_out = (hsize_t*) HDmalloc( sizeof(hsize_t) * rank_out ))) return -1;
+    if(NULL==(dims_out = (hsize_t*) HDmalloc( sizeof(hsize_t) * (size_t)rank_out ))) return -1;
 
     if ( H5LTget_attribute_info( loc_id, obj_name, ATTR2_NAME, dims_out, &type_class, &type_size) < 0 ) {
         HDfree( dims_out );
diff --git a/hl/test/test_packet.c b/hl/test/test_packet.c
index 9d3074d..256892b 100644
--- a/hl/test/test_packet.c
+++ b/hl/test/test_packet.c
@@ -54,14 +54,14 @@ typedef struct particle_t
  *-------------------------------------------------------------------------
  */
 static particle_t testPart[NRECORDS] = {
-    {"zero", 0,0, 0.0f, 0.0},
-    {"one",  10,10, 1.0f, 10.0},
-    {"two",  20,20, 2.0f, 20.0},
-    {"three",30,30, 3.0f, 30.0},
-    {"four", 40,40, 4.0f, 40.0},
-    {"five", 50,50, 5.0f, 50.0},
-    {"six",  60,60, 6.0f, 60.0},
-    {"seven",70,70, 7.0f, 70.0}
+    {"zero", 0,0, 0.0f, 0.0f},
+    {"one",  10,10, 1.0f, 10.0f},
+    {"two",  20,20, 2.0f, 20.0f},
+    {"three",30,30, 3.0f, 30.0f},
+    {"four", 40,40, 4.0f, 40.0f},
+    {"five", 50,50, 5.0f, 50.0f},
+    {"six",  60,60, 6.0f, 60.0f},
+    {"seven",70,70, 7.0f, 70.0f}
   };
 
 /*-------------------------------------------------------------------------
@@ -75,8 +75,8 @@ static int cmp_par(size_t i, size_t j, particle_t *rbuf, particle_t *wbuf )
  if ( ( HDstrcmp( rbuf[i].name, wbuf[j].name ) != 0 ) ||
   rbuf[i].lati != wbuf[j].lati ||
   rbuf[i].longi != wbuf[j].longi ||
-  rbuf[i].pressure != wbuf[j].pressure ||
-  rbuf[i].temperature != wbuf[j].temperature ) {
+  !FLT_ABS_EQUAL(rbuf[i].pressure,wbuf[j].pressure) ||
+  !DBL_ABS_EQUAL(rbuf[i].temperature,wbuf[j].temperature) ) {
   return -1;
  }
  return 0;
@@ -895,6 +895,92 @@ error:
     return -1;
 }
 
+/*-------------------------------------------------------------------------
+ * test_rw_non-native_dt
+ *
+ * test reading and writing packet table using datatypes that are not
+ * native.
+ *
+ *-------------------------------------------------------------------------
+ */
+static int test_rw_nonnative_dt(hid_t fid)
+{
+ hid_t          ptable;     /* Packet table identifier */
+
+ herr_t         err;        /* Function return status */
+ hsize_t        count;      /* Number of records in the table */
+
+ int            x;          /* Loop variable */
+
+ /* Buffers to hold data */
+ int writeBuffer[5];
+ int readBuffer[5];
+
+ TESTING("reading/writing non-native packet table");
+
+ /* Initialize buffers */
+ for(x=0; x<5; x++) {
+   writeBuffer[x]=x;
+   readBuffer[x] = -1;
+ }
+
+ /* Create a fixed-length packet table within the file */
+ /* This table's "packets" will be simple integers and it will use no compression */
+ if(H5Tget_order(H5T_NATIVE_INT) == H5T_ORDER_LE) {
+   ptable = H5PTcreate_fl(fid, "Packet Test Dataset, Non-native", H5T_STD_I32BE, (hsize_t)100, -1);
+ } else {
+   ptable = H5PTcreate_fl(fid, "Packet Test Dataset, Non-native", H5T_STD_I32LE, (hsize_t)100, -1);
+ }
+ if(ptable == H5I_INVALID_HID)
+   goto out;
+
+ /* Write one packet to the packet table */
+ if( (err = H5PTappend(ptable, (hsize_t)1, &(writeBuffer[0]))) < 0 )
+   goto out;
+
+ /* Write several packets to the packet table */
+ if( (err = H5PTappend(ptable, (hsize_t)4, &(writeBuffer[1]))) < 0)
+   goto out;
+
+ if( (err = H5PTclose(ptable)) < 0)
+   goto out;
+
+ /* Open the Packet table */
+ if( (ptable = H5PTopen(fid, "Packet Test Dataset, Non-native")) < 0)
+   goto out;
+
+ /* Get the number of packets in the packet table.  This should be five. */
+ if( (err = H5PTget_num_packets(ptable, &count)) < 0)
+   goto out;
+
+ if( (int)count != 5 )
+   goto out;
+
+ /* Initialize packet table's "current record" */
+ if( (err = H5PTcreate_index(ptable)) < 0)
+   goto out;
+
+ /* Iterate through packets, read each one back */
+ for(x=0; x<5; x++) {
+   if( (err = H5PTget_next(ptable, (hsize_t)1, &(readBuffer[x]))) < 0)
+     goto out;
+   if( x != readBuffer[x])
+     goto out;
+ }
+
+ /* Close the packet table */
+ if( (err = H5PTclose(ptable)) < 0)
+   goto out;
+ 
+ PASSED();
+ return 0;
+
+ out:
+     H5_FAILED();
+     if( H5PTis_valid(ptable) < 0)
+       H5PTclose(ptable);
+     return -1;
+}
 
 /*-------------------------------------------------------------------------
  * test_error
@@ -1035,6 +1121,7 @@ static int test_packet_table(hid_t fid)
     test_read(fid);
     test_get_next(fid);
     test_big_table(fid);
+    test_rw_nonnative_dt(fid);
 #ifdef VLPT_REMOVED
     test_varlen(fid);
 #endif /* VLPT_REMOVED */
diff --git a/hl/test/test_table.c b/hl/test/test_table.c
index 4eb5819..0870546 100644
--- a/hl/test/test_table.c
+++ b/hl/test/test_table.c
@@ -175,14 +175,14 @@ static int cmp_par(hsize_t i, hsize_t j, particle_t *rbuf, particle_t *wbuf )
     if ( ( HDstrcmp( rbuf[i].name, wbuf[j].name ) != 0 ) ||
         rbuf[i].lati != wbuf[j].lati ||
         rbuf[i].longi != wbuf[j].longi ||
-        rbuf[i].pressure != wbuf[j].pressure ||
-        rbuf[i].temperature != wbuf[j].temperature )
+	!FLT_ABS_EQUAL(rbuf[i].pressure,wbuf[j].pressure)  ||
+	!DBL_ABS_EQUAL(rbuf[i].temperature,wbuf[j].temperature) )
     {
         HDfprintf(stderr,"read and write buffers have differences\n");
         HDfprintf(stderr,"%s %ld %f %f %d\n",
-            rbuf[i].name,rbuf[i].longi,rbuf[i].pressure,rbuf[i].temperature,rbuf[i].lati);
+		  rbuf[i].name,rbuf[i].longi,(double)rbuf[i].pressure,rbuf[i].temperature,rbuf[i].lati);
         HDfprintf(stderr,"%s %ld %f %f %d\n",
-            wbuf[j].name,wbuf[j].longi,wbuf[j].pressure,wbuf[j].temperature,wbuf[j].lati);
+		  wbuf[j].name,wbuf[j].longi,(double)wbuf[j].pressure,wbuf[j].temperature,wbuf[j].lati);
         return -1;
     }
     return 0;
@@ -227,7 +227,7 @@ static int test_table(hid_t fid, int do_write)
     hsize_t     chunk_size=10;
     int         compress=0;
     int         *fill=NULL;
-    particle_t  fill1[1] = { {"no data",-1, -99.0f, -99.0, -1} };
+    particle_t  fill1[1] = { {"no data",-1, -99.0f, -99.0f, -1} };
     int         fill1_new[1] = { -100 };
     hsize_t     position;
     char        tname[20];
@@ -255,18 +255,18 @@ static int test_table(hid_t fid, int do_write)
     particle2_t rbuf2[NRECORDS];
     particle3_t rbuf3[NRECORDS];
     particle_t  rbufc[NRECORDS*2];
-    particle_t  abuf[2]={{"eight",80,8.0f,80.0,80},{"nine",90,9.0f,90.0,90}};
-    particle_t  ibuf[2]={{"zero", 0, 0.0f, 0.0, 0},{"zero", 0, 0.0f, 0.0, 0}};
+    particle_t  abuf[2]={{"eight",80,8.0f,80.0f,80},{"nine",90,9.0f,90.0f,90}};
+    particle_t  ibuf[2]={{"zero", 0, 0.0f, 0.0f, 0},{"zero", 0, 0.0f, 0.0f, 0}};
     particle_t  wbufd[NRECORDS];
     particle_t  wbuf[NRECORDS] = {
-        {"zero", 0, 0.0f, 0.0, 0,},
-        {"one",  10, 1.0f, 10.0, 10},
-        {"two",  20, 2.0f, 20.0, 20},
-        {"three",30, 3.0f, 30.0, 30},
-        {"four", 40, 4.0f, 40.0, 40},
-        {"five", 50, 5.0f, 50.0, 50},
-        {"six",  60, 6.0f, 60.0, 60},
-        {"seven",70, 7.0f, 70.0, 70}
+        {"zero", 0, 0.0f, 0.0f, 0,},
+        {"one",  10, 1.0f, 10.0f, 10},
+        {"two",  20, 2.0f, 20.0f, 20},
+        {"three",30, 3.0f, 30.0f, 30},
+        {"four", 40, 4.0f, 40.0f, 40},
+        {"five", 50, 5.0f, 50.0f, 50},
+        {"six",  60, 6.0f, 60.0f, 60},
+        {"seven",70, 7.0f, 70.0f, 70}
     };
     /* buffers for the field "Pressure" and "New_field" */
     float           pressure_in [NRECORDS] = { 0.0f,1.0f,2.0f,3.0f,4.0f,5.0f,6.0f,7.0f };
@@ -399,14 +399,14 @@ static int test_table(hid_t fid, int do_write)
 
     /* Define an array of Particles */
     particle4_t  p_data[NRECORDS] = {
-        {12112, 1.4, 2.5, {1,2,3},{4,5,6}, {99,100}},
-        {12113, 1.4, 2.5, {1,2,3},{4,5,6}, {99,100}},
-        {12114, 1.4, 2.5, {1,2,3},{4,5,6}, {99,100}},
-        {12115, 1.4, 2.5, {1,2,3},{4,5,6}, {99,100}},
-        {12116, 1.4, 2.5, {1,2,3},{4,5,6}, {99,100}},
-        {12117, 1.4, 2.5, {1,2,3},{4,5,6}, {99,100}},
-        {12118, 1.4, 2.5, {1,2,3},{4,5,6}, {99,100}},
-        {12119, 1.4, 2.5, {1,2,3},{4,5,6}, {99,100}}
+        {12112, 1.4f, 2.5f, {1,2,3},{4,5,6}, {99,100}},
+        {12113, 1.4f, 2.5f, {1,2,3},{4,5,6}, {99,100}},
+        {12114, 1.4f, 2.5f, {1,2,3},{4,5,6}, {99,100}},
+        {12115, 1.4f, 2.5f, {1,2,3},{4,5,6}, {99,100}},
+        {12116, 1.4f, 2.5f, {1,2,3},{4,5,6}, {99,100}},
+        {12117, 1.4f, 2.5f, {1,2,3},{4,5,6}, {99,100}},
+        {12118, 1.4f, 2.5f, {1,2,3},{4,5,6}, {99,100}},
+        {12119, 1.4f, 2.5f, {1,2,3},{4,5,6}, {99,100}}
     };
 
     /*-------------------------------------------------------------------------
@@ -1147,14 +1147,14 @@ static int test_table(hid_t fid, int do_write)
             {
                 if ( i >= 2 && i <= 4 )
                 {
-                    if ( rbuf[i].lati        != position_in[i-NRECORDS_ADD+1].lati ||
+                    if ( rbuf[i].lati       != position_in[i-NRECORDS_ADD+1].lati ||
                         rbuf[i].longi       != position_in[i-NRECORDS_ADD+1].longi ||
-                        rbuf[i].pressure    != pressure_in[i-NRECORDS_ADD+1] )
+			!FLT_ABS_EQUAL(rbuf[i].pressure,pressure_in[i-NRECORDS_ADD+1]) )
                     {
                         HDfprintf(stderr,"%ld %f %d\n",
-                            rbuf[i].longi,rbuf[i].pressure,rbuf[i].lati);
+				  rbuf[i].longi,(double)rbuf[i].pressure,rbuf[i].lati);
                         HDfprintf(stderr,"%ld %f %d\n",
-                            position_in[i].longi,pressure_in[i],position_in[i].lati);
+                            position_in[i].longi,(double)pressure_in[i],position_in[i].lati);
                         goto out;
                     }
                 }
@@ -1209,9 +1209,9 @@ static int test_table(hid_t fid, int do_write)
         goto out;
 
     /* Compare the extracted table with the initial values */
-    for( i = 0; i < NRECORDS; i++ )
+    for ( i = 0; i < NRECORDS; i++ )
     {
-        if ( pressure_out[i] != pressure_in[i] ) {
+        if ( !FLT_ABS_EQUAL(pressure_out[i], pressure_in[i]) ) {
             goto out;
         }
     }
@@ -1274,7 +1274,7 @@ static int test_table(hid_t fid, int do_write)
     for( i = 0; i < NRECORDS; i++ )
     {
         if ( ( HDstrcmp( namepre_out[i].name,  namepre_in[i].name ) != 0 ) ||
-            namepre_out[i].pressure != namepre_in[i].pressure ) {
+	     !FLT_ABS_EQUAL(namepre_out[i].pressure,namepre_in[i].pressure) ) {
                 goto out;
         }
     }
@@ -1303,7 +1303,7 @@ static int test_table(hid_t fid, int do_write)
     {
         hsize_t iistart = start;
         if ( ( HDstrcmp( namepre_out[i].name,  namepre_in[iistart+i].name ) != 0 ) ||
-            namepre_out[i].pressure != namepre_in[iistart+i].pressure ) {
+	     !FLT_ABS_EQUAL(namepre_out[i].pressure, namepre_in[iistart+i].pressure) ) {
                 goto out;
         }
     }
@@ -1362,7 +1362,7 @@ static int test_table(hid_t fid, int do_write)
             {
                 if ( rbuf[i].lati        != position_in[i-NRECORDS_ADD+1].lati ||
                     rbuf[i].longi       != position_in[i-NRECORDS_ADD+1].longi ||
-                    rbuf[i].pressure    != pressure_in[i-NRECORDS_ADD+1] )
+		    !FLT_ABS_EQUAL(rbuf[i].pressure,pressure_in[i-NRECORDS_ADD+1]) )
                     goto out;
             }
         }
@@ -1415,7 +1415,7 @@ static int test_table(hid_t fid, int do_write)
     /* compare the extracted table with the initial values */
     for( i = 0; i < NRECORDS; i++ )
     {
-        if ( pressure_out[i] != pressure_in[i] ) {
+      if ( !FLT_ABS_EQUAL(pressure_out[i], pressure_in[i]) ) {
             goto out;
         }
     }
@@ -1480,10 +1480,10 @@ static int test_table(hid_t fid, int do_write)
     /* compare the extracted table with the initial values */
     for( i = 0; i < NRECORDS; i++ )
     {
-        if ( ( HDstrcmp( namepre_out[i].name,  namepre_in[i].name ) != 0 ) ||
-            namepre_out[i].pressure != namepre_in[i].pressure ) {
-                goto out;
-        }
+      if ( ( HDstrcmp( namepre_out[i].name,  namepre_in[i].name ) != 0 ) ||
+	   !FLT_ABS_EQUAL(namepre_out[i].pressure,namepre_in[i].pressure) ) {
+	goto out;
+      }
     }
 
     /* reset buffer */
@@ -1511,8 +1511,8 @@ static int test_table(hid_t fid, int do_write)
     for( i = 0; i < 3; i++ )
     {
         int iistart = (int) start;
-        if ( ( HDstrcmp( namepre_out[i].name,  wbuf[iistart+i].name ) != 0 ) ||
-            namepre_out[i].pressure != wbuf[iistart+i].pressure ) {
+        if ( ( HDstrcmp( namepre_out[i].name,  wbuf[iistart+(int)i].name ) != 0 ) ||
+	     !FLT_ABS_EQUAL(namepre_out[i].pressure, wbuf[iistart+(int)i].pressure) ) {
                 goto out;
         }
     }
@@ -1555,8 +1555,8 @@ static int test_table(hid_t fid, int do_write)
             if ( ( HDstrcmp( rbuf2[i].name,  wbuf[i].name ) != 0 ) ||
                 rbuf2[i].lati          != wbuf[i].lati ||
                 rbuf2[i].longi         != wbuf[i].longi ||
-                rbuf2[i].pressure      != wbuf[i].pressure ||
-                rbuf2[i].temperature   != wbuf[i].temperature ||
+		!FLT_ABS_EQUAL(rbuf2[i].pressure,wbuf[i].pressure) ||
+		!DBL_ABS_EQUAL(rbuf2[i].temperature,wbuf[i].temperature) ||
                 rbuf2[i].new_field     != buf_new[i] ) {
                     goto out;
             }
@@ -1596,7 +1596,7 @@ static int test_table(hid_t fid, int do_write)
             if ( ( HDstrcmp( rbuf3[i].name, wbuf[i].name ) != 0 ) ||
                 rbuf3[i].lati != wbuf[i].lati ||
                 rbuf3[i].longi != wbuf[i].longi ||
-                rbuf3[i].temperature != wbuf[i].temperature ) {
+		!DBL_ABS_EQUAL(rbuf3[i].temperature,wbuf[i].temperature) ) {
                     goto out;
             }
         }
diff --git a/hl/tools/CMakeLists.txt b/hl/tools/CMakeLists.txt
index a41aecc..f58a513 100644
--- a/hl/tools/CMakeLists.txt
+++ b/hl/tools/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required (VERSION 2.8.11)
+cmake_minimum_required (VERSION 3.1.0)
 PROJECT (HDF5_HL_TOOLS)
 
 #-----------------------------------------------------------------------------
@@ -19,7 +19,7 @@ INCLUDE_DIRECTORIES (${HDF5_HL_TOOLS_SOURCE_DIR}/gif2h5)
 
 add_executable (gif2h5 ${GIF2H5_SRCS})
 TARGET_NAMING (gif2h5 ${LIB_TYPE})
-TARGET_C_PROPERTIES (gif2h5 " " " ")
+TARGET_C_PROPERTIES (gif2h5 ${LIB_TYPE} " " " ")
 target_link_libraries (gif2h5 ${HDF5_HL_LIB_TARGET} ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET})
 set_target_properties (gif2h5 PROPERTIES FOLDER tools/hl)
 
@@ -30,7 +30,7 @@ set (hdf2gif_SRCS
 )
 add_executable (h52gif ${hdf2gif_SRCS})
 TARGET_NAMING (h52gif ${LIB_TYPE})
-TARGET_C_PROPERTIES (h52gif " " " ")
+TARGET_C_PROPERTIES (h52gif ${LIB_TYPE} " " " ")
 target_link_libraries (h52gif ${HDF5_HL_LIB_TARGET} ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET})
 set_target_properties (h52gif PROPERTIES FOLDER tools/hl)
 
@@ -42,8 +42,8 @@ if (BUILD_TESTING)
   # --------------------------------------------------------------------
   if (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS)
       add_executable (hl_h52gifgentest ${HDF5_HL_TOOLS_SOURCE_DIR}/gif2h5/h52gifgentst.c)
-      TARGET_NAMING (hl_h52gifgentest ${LIB_TYPE})
-      TARGET_C_PROPERTIES (hl_h52gifgentest " " " ")
+      TARGET_NAMING (hl_h52gifgentest STATIC)
+      TARGET_C_PROPERTIES (hl_h52gifgentest STATIC " " " ")
       target_link_libraries (hl_h52gifgentest ${HDF5_HL_LIB_TARGET} ${HDF5_LIB_TARGET})
       set_target_properties (hl_h52gifgentest PROPERTIES FOLDER generator/tools/hl)
     
diff --git a/hl/tools/CMakeTests.cmake b/hl/tools/CMakeTests.cmake
index a340c2d..4ebd7a2 100644
--- a/hl/tools/CMakeTests.cmake
+++ b/hl/tools/CMakeTests.cmake
@@ -26,6 +26,13 @@ add_custom_command (
     ARGS       -E copy_if_different ${HDF5_HL_TOOLS_SOURCE_DIR}/gif2h5/testfiles/h52giftst.h5 ${PROJECT_BINARY_DIR}/testfiles/h52giftst.h5
 )
 
+add_custom_command (
+    TARGET     h52gif
+    POST_BUILD
+    COMMAND    ${CMAKE_COMMAND}
+    ARGS       -E copy_if_different ${HDF5_HL_TOOLS_SOURCE_DIR}/gif2h5/testfiles/ex_image2.h5 ${PROJECT_BINARY_DIR}/testfiles/ex_image2.h5
+)
+
 # Remove any output file left over from previous test run
 add_test (
     NAME HL_TOOLS-clear-objects
@@ -33,8 +40,19 @@ add_test (
         -E remove 
         image1.gif
         image1.h5
+        image.gif
+        image24.gif
 )
 
+add_test (NAME HL_TOOLS_gif2h5 COMMAND $<TARGET_FILE:gif2h5> testfiles/image1.gif image1.h5)
+
 add_test (NAME HL_TOOLS_h52gif COMMAND $<TARGET_FILE:h52gif> testfiles/h52giftst.h5 image1.gif -i image)
 
-add_test (NAME HL_TOOLS_gif2h5 COMMAND $<TARGET_FILE:gif2h5> testfiles/image1.gif image1.h5)
+add_test (NAME HL_TOOLS_h52gif_none COMMAND $<TARGET_FILE:h52gif> testfiles/h52giftst.h5 image.gif -i nosuch_image)
+set_tests_properties (HL_TOOLS_h52gif_none PROPERTIES WILL_FAIL "true")
+
+#add_test (NAME HL_TOOLS_h52gifpal COMMAND $<TARGET_FILE:h52gif> testfiles/h52giftst.h5 image.gif -i palette)
+#set_tests_properties (HL_TOOLS_h52gifpal PROPERTIES WILL_FAIL "true")
+
+add_test (NAME HL_TOOLS_h52gif24bits COMMAND $<TARGET_FILE:h52gif> testfiles/ex_image2.h5 image24.gif -i image24bitpixel)
+set_tests_properties (HL_TOOLS_h52gif24bits PROPERTIES WILL_FAIL "true")
diff --git a/hl/tools/Makefile.in b/hl/tools/Makefile.in
index a34e225..77049d3 100644
--- a/hl/tools/Makefile.in
+++ b/hl/tools/Makefile.in
@@ -101,7 +101,8 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \
 TESTS =
 subdir = hl/tools
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \
+	$(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs
@@ -405,7 +406,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@
 AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@
 AM_MAKEFLAGS = @AM_MAKEFLAGS@
 AR = @AR@
-AS = @AS@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -437,7 +437,6 @@ DIRECT_VFD = @DIRECT_VFD@
 DLLTOOL = @DLLTOOL@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
-DYNAMIC_DIRS = @DYNAMIC_DIRS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -456,17 +455,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@
 FCLIBS = @FCLIBS@
 FC_VERSION = @FC_VERSION@
 FGREP = @FGREP@
-FILTERS = @FILTERS@
 FSEARCH_DIRS = @FSEARCH_DIRS@
 GREP = @GREP@
 H5_CFLAGS = @H5_CFLAGS@
 H5_CPPFLAGS = @H5_CPPFLAGS@
 H5_CXXFLAGS = @H5_CXXFLAGS@
-H5_CXX_SHARED = @H5_CXX_SHARED@
 H5_FCFLAGS = @H5_FCFLAGS@
 H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@
 H5_LDFLAGS = @H5_LDFLAGS@
-H5_LONE_COLON = @H5_LONE_COLON@
 H5_VERSION = @H5_VERSION@
 HADDR_T = @HADDR_T@
 HAVE_DMALLOC = @HAVE_DMALLOC@
@@ -489,7 +485,6 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INSTRUMENT = @INSTRUMENT@
 INSTRUMENT_LIBRARY = @INSTRUMENT_LIBRARY@
-LARGEFILE = @LARGEFILE@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
@@ -530,7 +525,6 @@ R_INTEGER = @R_INTEGER@
 R_LARGE = @R_LARGE@
 SEARCH = @SEARCH@
 SED = @SED@
-SETX = @SETX@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIZE_T = @SIZE_T@
@@ -545,10 +539,6 @@ TR = @TR@
 TRACE_API = @TRACE_API@
 UNAME_INFO = @UNAME_INFO@
 USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@
-USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@
-USE_FILTER_NBIT = @USE_FILTER_NBIT@
-USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@
-USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@
 USE_FILTER_SZIP = @USE_FILTER_SZIP@
 USINGMEMCHECKER = @USINGMEMCHECKER@
 VERSION = @VERSION@
@@ -662,8 +652,8 @@ TRACE = perl $(top_srcdir)/bin/trace
 
 # .chkexe files are used to mark tests that have run successfully.
 # .chklog files are output from those tests.
-# *.clog are from the MPE option.
-CHECK_CLEANFILES = *.chkexe *.chklog *.clog
+# *.clog and *.clog2 are from the MPE option.
+CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2
 
 # All subdirectories
 SUBDIRS = gif2h5
diff --git a/hl/tools/gif2h5/Makefile.in b/hl/tools/gif2h5/Makefile.in
index 1c9be68..3da84e1 100644
--- a/hl/tools/gif2h5/Makefile.in
+++ b/hl/tools/gif2h5/Makefile.in
@@ -105,7 +105,8 @@ noinst_PROGRAMS = h52gifgentst$(EXEEXT)
 TESTS = $(TEST_SCRIPT)
 subdir = hl/tools/gif2h5
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \
+	$(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs
@@ -419,7 +420,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@
 AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@
 AM_MAKEFLAGS = @AM_MAKEFLAGS@
 AR = @AR@
-AS = @AS@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -451,7 +451,6 @@ DIRECT_VFD = @DIRECT_VFD@
 DLLTOOL = @DLLTOOL@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
-DYNAMIC_DIRS = @DYNAMIC_DIRS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -470,17 +469,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@
 FCLIBS = @FCLIBS@
 FC_VERSION = @FC_VERSION@
 FGREP = @FGREP@
-FILTERS = @FILTERS@
 FSEARCH_DIRS = @FSEARCH_DIRS@
 GREP = @GREP@
 H5_CFLAGS = @H5_CFLAGS@
 H5_CPPFLAGS = @H5_CPPFLAGS@
 H5_CXXFLAGS = @H5_CXXFLAGS@
-H5_CXX_SHARED = @H5_CXX_SHARED@
 H5_FCFLAGS = @H5_FCFLAGS@
 H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@
 H5_LDFLAGS = @H5_LDFLAGS@
-H5_LONE_COLON = @H5_LONE_COLON@
 H5_VERSION = @H5_VERSION@
 HADDR_T = @HADDR_T@
 HAVE_DMALLOC = @HAVE_DMALLOC@
@@ -503,7 +499,6 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INSTRUMENT = @INSTRUMENT@
 INSTRUMENT_LIBRARY = @INSTRUMENT_LIBRARY@
-LARGEFILE = @LARGEFILE@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
@@ -544,7 +539,6 @@ R_INTEGER = @R_INTEGER@
 R_LARGE = @R_LARGE@
 SEARCH = @SEARCH@
 SED = @SED@
-SETX = @SETX@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIZE_T = @SIZE_T@
@@ -559,10 +553,6 @@ TR = @TR@
 TRACE_API = @TRACE_API@
 UNAME_INFO = @UNAME_INFO@
 USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@
-USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@
-USE_FILTER_NBIT = @USE_FILTER_NBIT@
-USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@
-USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@
 USE_FILTER_SZIP = @USE_FILTER_SZIP@
 USINGMEMCHECKER = @USINGMEMCHECKER@
 VERSION = @VERSION@
@@ -676,8 +666,8 @@ TRACE = perl $(top_srcdir)/bin/trace
 
 # .chkexe files are used to mark tests that have run successfully.
 # .chklog files are output from those tests.
-# *.clog are from the MPE option.
-CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.h5 *.gif
+# *.clog and *.clog2 are from the MPE option.
+CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 *.h5 *.gif
 
 # These are our main targets, the tools
 TEST_SCRIPT = h52giftest.sh
diff --git a/hl/tools/gif2h5/decompress.c b/hl/tools/gif2h5/decompress.c
index d4e4cdc..ef2d78a 100644
--- a/hl/tools/gif2h5/decompress.c
+++ b/hl/tools/gif2h5/decompress.c
@@ -90,7 +90,7 @@ ReadCode(void)
         RawCode += (0x10000 * Raster[ByteOffset + 2]);
 
     RawCode >>= (BitOffset % 8);
-    BitOffset += CodeSize;
+    BitOffset += (int)CodeSize;
     return (RawCode & ReadMask);
 }
 
diff --git a/hl/tools/gif2h5/gif.h b/hl/tools/gif2h5/gif.h
index 5334919..f34a111 100644
--- a/hl/tools/gif2h5/gif.h
+++ b/hl/tools/gif2h5/gif.h
@@ -143,7 +143,7 @@ typedef struct _GifToMem {
 */
 
 /* GIF2MEM.C */
-GIFTOMEM Gif2Mem(BYTE *);
+int Gif2Mem(BYTE *, GIFTOMEM *);
 
 /* GIFREAD.C */
 int ReadGifHeader(GIFHEAD *, BYTE **);
diff --git a/hl/tools/gif2h5/gif2hdf.c b/hl/tools/gif2h5/gif2hdf.c
index 810be78..8a9e971 100644
--- a/hl/tools/gif2h5/gif2hdf.c
+++ b/hl/tools/gif2h5/gif2hdf.c
@@ -99,7 +99,7 @@ main(int argv , char *argc[])
      * Call Gif2Mem and break the whole file into parts.  Gif2Mem also calls
      * decompresses the images so we don't have to worry about that
      */
-    GifMemoryStruct = Gif2Mem(MemGif);
+    Gif2Mem(MemGif, &GifMemoryStruct);
 
     if (ferror(fpGif)) {
             printf("File Stream Error\n\n");
diff --git a/hl/tools/gif2h5/gif2mem.c b/hl/tools/gif2h5/gif2mem.c
index ac4b0ec..456a32d 100644
--- a/hl/tools/gif2h5/gif2mem.c
+++ b/hl/tools/gif2h5/gif2mem.c
@@ -37,8 +37,8 @@
 
 #include "gif.h"
 
-GIFTOMEM
-Gif2Mem(BYTE *MemGif)
+int
+Gif2Mem(BYTE *MemGif, GIFTOMEM *GifMemoryStruct)
 {
     /*
      * The gif structure outline for passing data to memory is given in gif.h.
@@ -51,8 +51,6 @@ Gif2Mem(BYTE *MemGif)
     GIFCOMMENT        **gifComment;        /* Comment Extension structure     */
     GIFGRAPHICCONTROL **gifGraphicControl; /* Graphic Control Extension strct */
 
-    GIFTOMEM GifMemoryStruct;
-
     register WORD i;        /* Loop counter                                 */
     BYTE Identifier;        /* Extension block identifier holder            */
     BYTE Label;             /* Extension block label holder                 */
@@ -133,15 +131,15 @@ Gif2Mem(BYTE *MemGif)
                 gifHead->PlainTextCount   = PlainTextCount;
 
                 /* putting stuff into the gif2mem structure */
-                GifMemoryStruct.GifHeader = gifHead;
-                GifMemoryStruct.GifImageDesc = gifImageDesc;
-                GifMemoryStruct.GifPlainTextExtension = gifPlainText;
-                GifMemoryStruct.GifApplicationExtension = gifApplication;
-                GifMemoryStruct.GifCommentExtension = gifComment;
-                GifMemoryStruct.GifGraphicControlExtension = gifGraphicControl;
+                GifMemoryStruct->GifHeader = gifHead;
+                GifMemoryStruct->GifImageDesc = gifImageDesc;
+                GifMemoryStruct->GifPlainTextExtension = gifPlainText;
+                GifMemoryStruct->GifApplicationExtension = gifApplication;
+                GifMemoryStruct->GifCommentExtension = gifComment;
+                GifMemoryStruct->GifGraphicControlExtension = gifGraphicControl;
 
                 /* return the struct */
-                return GifMemoryStruct;
+                return 0;
 
             case 0x2C:  /* Image Descriptor */
                 /*
@@ -155,7 +153,7 @@ Gif2Mem(BYTE *MemGif)
 
                 if (ImageCount > ImageArray) {
                     aTemp = ImageArray;
-                    ImageArray = (ImageArray << 1) + 1;
+                    ImageArray = (BYTE)((ImageArray << 1) + 1);
                     if (!(gifImageDesc = (GIFIMAGEDESC **)realloc(gifImageDesc,
                                             sizeof(GIFIMAGEDESC *) * ImageArray))) {
                         printf("Out of memory!");
@@ -222,7 +220,7 @@ Gif2Mem(BYTE *MemGif)
                         PlainTextCount++;
 
                         if (PlainTextCount > PlainTextArray)
-                                PlainTextArray = (PlainTextArray << 1) + 1;
+			  PlainTextArray = (BYTE)((PlainTextArray << 1) + 1);
 
                         if (!(gifPlainText = (GIFPLAINTEXT **)realloc(gifPlainText , sizeof(GIFPLAINTEXT *) * PlainTextArray))) {
                             printf("Out of memory!");
@@ -244,7 +242,7 @@ Gif2Mem(BYTE *MemGif)
                         CommentCount++;
 
                         if (CommentCount > CommentArray)
-                            CommentArray = (CommentArray << 1) + 1;
+			  CommentArray = (BYTE)((CommentArray << 1) + 1);
 
                         if (!(gifComment = (GIFCOMMENT **)realloc(gifComment , sizeof(GIFCOMMENT *) * CommentArray))) {
                             printf("Out of memory!");
@@ -271,7 +269,7 @@ Gif2Mem(BYTE *MemGif)
 
                         if (ImageCount > ImageArray) {
                             aTemp = ImageArray;
-                            ImageArray = (ImageArray << 1) + 1;
+                            ImageArray = (BYTE)((ImageArray << 1) + 1);
 
                             if (!(gifGraphicControl = (GIFGRAPHICCONTROL **)realloc(gifGraphicControl , sizeof(GIFGRAPHICCONTROL *) * ImageArray))) {
                                 printf("Out of memory!");
@@ -309,7 +307,7 @@ Gif2Mem(BYTE *MemGif)
                         ApplicationCount++;
 
                         if (ApplicationCount > ApplicationArray)
-                            ApplicationArray = (ApplicationArray << 1) + 1;
+			  ApplicationArray = (BYTE)((ApplicationArray << 1) + 1);
 
                         if (!(gifApplication = (GIFAPPLICATION **)realloc(gifApplication , sizeof(GIFAPPLICATION *) * ApplicationArray))) {
                             printf("Out of memory!");
diff --git a/hl/tools/gif2h5/h52gifgentst.c b/hl/tools/gif2h5/h52gifgentst.c
index ef38c3b..3433d0a 100644
--- a/hl/tools/gif2h5/h52gifgentst.c
+++ b/hl/tools/gif2h5/h52gifgentst.c
@@ -64,7 +64,7 @@ int main(void)
     space = WIDTH*HEIGHT / PAL_ENTRIES;
     for (i=0, j=0, n=0; i < WIDTH*HEIGHT; i++, j++ )
     {
-        buf[i] = n;
+        buf[i] = (unsigned char)n;
         if ( j > space )
         {
             n++;
@@ -83,9 +83,9 @@ int main(void)
     */
     for ( i=0, n=0; i<PAL_ENTRIES*3; i+=3, n++)
     {
-        pal[i]  =n;      /* red */
-        pal[i+1]=0;      /* green */
-        pal[i+2]=255-n;  /* blue */
+      pal[i]   = (unsigned char)n;       /* red */
+      pal[i+1] = (unsigned char)0;       /* green */
+      pal[i+2] = (unsigned char)(255-n); /* blue */
     }
 
     /* make a palette */
diff --git a/hl/tools/gif2h5/h52giftest.sh.in b/hl/tools/gif2h5/h52giftest.sh.in
index 186b369..7aec219 100644
--- a/hl/tools/gif2h5/h52giftest.sh.in
+++ b/hl/tools/gif2h5/h52giftest.sh.in
@@ -18,6 +18,7 @@
 
 TESTFILE1="$srcdir/testfiles/h52giftst.h5"
 TESTFILE2="$srcdir/testfiles/image1.gif"
+TESTFILE3="$srcdir/testfiles/ex_image2.h5"
 
 # initialize errors variable
 errors=0
@@ -29,45 +30,69 @@ TESTING() {
 
 
 
-TOOLTEST1()
+# Verify the test runs with success (return code is 0)
+TOOLTEST()
 {
- $RUNSERIAL ./h52gif $*
- 
- RET=$?
- if [ $RET != 0 ] ; then
-  echo "*FAILED*"
-  errors="` expr $errors + 1 `";
- else
-  echo " PASSED"
- fi
+    # for now, discard any error messages generated.
+    $RUNSERIAL $*  > /dev/null 2>&1
+
+    RET=$?
+    if [ $RET = 0 ] ; then
+	echo " PASSED"
+    else
+	echo "*FAILED*"
+	errors="` expr $errors + 1 `";
+    fi
 
 }
 
-TOOLTEST2()
+# Verify the test runs with failure (return code is not 0)
+# Use for testing if tool can handle error conditions like
+# illegal input, bad arguments, exeeding limits, ...
+TOOLTESTFAIL()
 {
- $RUNSERIAL ./gif2h5 $*
- 
- RET=$?
- if [ $RET != 0 ] ; then
-  echo "*FAILED*"
-  errors="` expr $errors + 1 `";
- else
-  echo " PASSED"
- fi
+    # for now, discard any error messages generated.
+    $RUNSERIAL $* > /dev/null 2>&1
+
+    RET=$?
+    if [ $RET != 0 ] ; then
+	echo " PASSED"
+    else
+	echo "*FAILED*"
+	errors="` expr $errors + 1 `";
+    fi
 }
 
 
+# Positive tests for gif2h5
+echo "**validate the gif2h5 tool processes input correctly..."
+TESTING "./gif2h5 image1.gif image1.h5"
+TOOLTEST ./gif2h5 $TESTFILE2 image1.h5
+echo ""
 
+# Positive tests for h52gif
+echo "**validate the h52gif tool processes input correctly..."
 TESTING "./h52gif h52giftst.h5 image1.gif -i image" 
-TOOLTEST1 $TESTFILE1 image1.gif -i image
-TESTING "./gif2h5 image1.gif image1.h5"
-TOOLTEST2 $TESTFILE2 image1.h5
+TOOLTEST ./h52gif $TESTFILE1 image1.gif -i image
+echo ""
 
+# Negative tests.
+echo "**verify the the h52gif tool handle error conditions correctly..."
+# nonexisting dataset name
+TESTING "./h52gif h52giftst.h5 image.gif -i nosuch_image" 
+TOOLTESTFAIL "./h52gif $TESTFILE1 image.gif -i nosuch_image" 
+# this test should have failed but it did not. Comment it out for now.
+#TESTING "./h52gif h52giftst.h5 image.gif -i palette" 
+#TOOLTESTFAIL "./h52gif $TESTFILE1 image.gif -i palette" 
+TESTING "./h52gif h52giftst.h5 image24.gif -i image24bitpixel" 
+TOOLTESTFAIL "./h52gif $TESTFILE3 image24.gif -i image24bitpixel" 
+echo ""
 
+# all done. summarize results.
 if test $errors -eq 0 ; then
-    echo "All h52gif tests passed."
+    echo "All gif2h5 and h52gif tests passed."
     exit 0
 else
-    echo "h52gif tests failed with $errors errors."
+    echo "Some gif2h5 or h52gif tests failed with $errors errors."
     exit 1
 fi
diff --git a/hl/tools/gif2h5/hdf2gif.c b/hl/tools/gif2h5/hdf2gif.c
index 090d657..5c342ba 100644
--- a/hl/tools/gif2h5/hdf2gif.c
+++ b/hl/tools/gif2h5/hdf2gif.c
@@ -20,6 +20,8 @@
 #include "h5tools.h"
 #include "h5tools_utils.h"
 
+#define IMAGE_WIDTH_MAX		65535	/* unsigned 16bits integer */
+#define IMAGE_HEIGHT_MAX	65535	/* unsigned 16bits integer */
 
 
 int EndianOrder;
@@ -147,6 +149,17 @@ int main(int argc , char **argv)
         if ( H5IMget_image_info( fid, image_name, &width, &height, &planes, interlace, &npals ) < 0 )
             goto out;
 
+	if (width > IMAGE_WIDTH_MAX || height > IMAGE_HEIGHT_MAX){
+	    fprintf(stderr, "HDF5 image is too large. Limit is %d by %d.\n", IMAGE_WIDTH_MAX, IMAGE_HEIGHT_MAX);
+	    goto out;
+	}
+
+	/* tool can handle single plane images only. */
+	if (planes > 1){
+	    fprintf(stderr, "Cannot handle multiple planes image\n");
+	    goto out;
+	}
+
         Image = (BYTE*) malloc( (size_t) width * (size_t) height );
 
         if ( H5IMread_image( fid, image_name, Image ) < 0 )
@@ -194,9 +207,9 @@ int main(int argc , char **argv)
             numcols = 256;
             for (i = 0 ; i < numcols ; i++)
             {
-                Red[i] = 255 - i;
-                Green[i] = 255 - i;
-                Blue[i] = 255 - i;
+	      Red[i] = (BYTE)(255 - i);
+	      Green[i] = (BYTE)(255 - i);
+	      Blue[i] = (BYTE)(255 - i);
             }
         }
         else
@@ -229,7 +242,7 @@ int main(int argc , char **argv)
             if (j==i)
             {
                 /* wasn't found */
-                pc2nc[i] = nc;
+	      pc2nc[i] = (BYTE)nc;
                 r1[nc] = Red[i];
                 g1[nc] = Green[i];
                 b1[nc] = Blue[i];
diff --git a/hl/tools/gif2h5/hdfgifwr.c b/hl/tools/gif2h5/hdfgifwr.c
index d828226..4c52f4c 100644
--- a/hl/tools/gif2h5/hdfgifwr.c
+++ b/hl/tools/gif2h5/hdfgifwr.c
@@ -270,7 +270,7 @@ nomatch:
         ent = c;
 
         if (free_ent < maxmaxcode) {
-            CodeTabOf (i) = free_ent++; /* code -> hashtable */
+	    CodeTabOf (i) = (unsigned short)free_ent++; /* code -> hashtable */
             HashTabOf (i) = fcode;
         } else {
             cl_block();
@@ -313,9 +313,9 @@ output(int code)
     cur_accum &= masks[cur_bits];
 
     if (cur_bits > 0)
-        cur_accum |= ((long)code << cur_bits);
+        cur_accum |= (unsigned long)((long)code << cur_bits);
     else
-        cur_accum = code;
+        cur_accum = (unsigned long)code;
 
     cur_bits += n_bits;
 
@@ -437,7 +437,7 @@ static char accum[ 256 ];
 static void
 char_out(int c)
 {
-    accum[ a_count++ ] = c;
+    accum[ a_count++ ] = (char)c;
 
     if (a_count >= 254)
         flush_char();
diff --git a/hl/tools/gif2h5/testfiles/REAMDE b/hl/tools/gif2h5/testfiles/REAMDE
new file mode 100644
index 0000000..a428d47
--- /dev/null
+++ b/hl/tools/gif2h5/testfiles/REAMDE
@@ -0,0 +1,6 @@
+ex_image2.h5
+    Generated by hl/examples/ex_image2.c
+5giftst.h5:
+    Generated by ../h52gifgentst.c
+image1.gif:
+    To be determined.
diff --git a/hl/tools/gif2h5/testfiles/ex_image2.h5 b/hl/tools/gif2h5/testfiles/ex_image2.h5
new file mode 100644
index 0000000..a36df1b
Binary files /dev/null and b/hl/tools/gif2h5/testfiles/ex_image2.h5 differ
diff --git a/html/ADGuide.html b/html/ADGuide.html
index ed51aac..dd2a653 100644
--- a/html/ADGuide.html
+++ b/html/ADGuide.html
@@ -327,7 +327,7 @@
 
 <?php include("./ed_libs/Footer.htm"); ?>
  
-Last modified:  13 November 2014
+Last modified:  13 May 2015
 
 <br />
 <br />
diff --git a/html/ADGuide/Changes.html b/html/ADGuide/Changes.html
index 6bbbd1e..142c9f1 100755
--- a/html/ADGuide/Changes.html
+++ b/html/ADGuide/Changes.html
@@ -123,7 +123,7 @@ 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 
+provides 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>
 
@@ -141,12 +141,17 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 <!-- END REGULATING TABLE -->
 
 
-<!-- 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>
+
+<!-- MATERIAL DELAYED FROM 18.15 TO 1.8.16
+<a name="1816">
+<h2>Release 1.8.16 of November 2015 (current release) versus Release 1.8.15</h2>
 </a>
 <dir>
 
+This section lists interface-level changes and 
+other user-visible changes in behavior 
+in the transition from HDF5 Release 1.8.15 to Release 1.8.16.
+
     <h3>New and Changed Functions, Classes, Subroutines, Wrappers, 
         and Macros</h3>
         <dir>
@@ -166,217 +171,304 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
                 <li>Related struct: <code>H5D_rw_multi_t</code>
                 </ul>
                 </dd>
+
+
+            </dl>    
+            <font color="brown"><i>
+            These functions are included? not included?
+            </i></font>
+
         </dl>    
         </dir>
-
 </dir>
- -->
-        
+-->
+
 
-<a name="1814">
-<h2>Release 1.8.14 of November 2014 (current release) versus Release 1.8.13</h2>
+<a name="1815">
+<h2>Release 1.8.15 of May 2015 (current release) versus Release 1.8.14</h2>
 </a>
 <dir>
 
 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.
-
+in the transition from HDF5 Release 1.8.14 to Release 1.8.15.
 
     <h3>New and Changed Functions, Classes, Subroutines, Wrappers, 
         and Macros</h3>
         <dir>
         <dl>    
-            <dt><strong>In the main library C Interface</strong>
+            <dt><strong>In the C Interface (main library)</strong>
                 </dt>
 
-            <dt>No new C functions have been added.
-                </dt>
-<!--
+
             <dt>The following new C functions have been added:
                 </dt>
-            <dd>Names and descriptions.
-                </dd>
+                <dd>Memory allocation functions that use the library’s 
+                    allocator.
+<!--
+                    <p />
+      HDF5 filters may need to allocate or resize the buffer that is passed
+      to them from the library. If the filter has been compiled separately
+      from the library, it and the library may use different memory
+      allocation libraries for the (re)allocation and free calls. This can
+      cause heap corruption and crashes. This is particularly a problem on
+      Windows since each C run-time library is implemented as a separate
+      shared library, but can also show up on POSIX systems when debug or
+      high-performance allocation libraries are in use.
+                    <p />
+
+      Two new functions (H5allocate_memory() and H5resize_memory()) were
+      added to the HDF5 C library. These functions have the same semantics as
+      malloc/calloc and realloc, respectively. Their primary purpose is to
+      allow filter authors to allocate or resize memory using the same
+      memory allocation library as the HDF5 library. Filter authors are
+      highly encouraged to use these new functions in place of malloc,
+      calloc, and realloc. They should also use the H5free_memory() call when
+      freeing memory.
+                    <p />
+
+      Note that the filters provided with the library (zlib, szip, etc.) do
+      not experience the problems that these new functions are intended to
+      fix. This work only applies to third-party filters that are compiled
+      separately from the library.
+-->
+                    <ul>
+                    <li><a href="../RM/RM_H5.html#Library-AllocateMemory">
+                        <code>H5allocate_memory</code></a>
+                    <li><a href="../RM/RM_H5.html#Library-ResizeMemory">
+                        <code>H5resize_memory</code></a>
+                    </ul>
+                    </dd>
+
+                <p>
+                <dd>The following functions enable programmatic control 
+                    of the loading of dynamic plugin filters 
+                    in user applications:
+                    <ul>
+<!--
+                    <li><a href="../RM/RM_H5PL.html#Plugin-SetLoadingState">
+                        <code>H5PLset_loading_state</code></a>
+                    <li><a href="../RM/RM_H5PL.html#Plugin-GetLoadingState">
+                        <code>H5PLget_loading_state</code></a>
 -->
+                    <li><code>H5PLset_loading_state</code>
+                    <li><code>H5PLget_loading_state</code>
+                    <i>
+                    <br />
+                    For preliminary documentation, see
+                    “<a href="../Advanced/DynamicallyLoadedFilters/HDF5_Dynamic_Plugin_Programatic_Control(Preliminary).pdf">New 
+                    HDF5 APIs Provide Programmatic Control of Dynamic 
+                    Plugins</a>.”
+                    <br />
+                    Final documentation is anticipated in July 2015.
+                    </i>
+                    </ul>
+                    </dd>
 
+<!--
             <p>
-            <dt>The behavior of the following C function has been changed:
+            <dt>Discussion
                 </dt>
-            <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>
-                </ul>
-                </dd>
+                <dd>Further elaboration
+                    </dd>
 
-            <p>
-            <dt>The following performance optimization has been implemented 
-                in the Parallel HDF5 library:
+-->
+<!--
+            <dt>The following new C functions have been added:
                 </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:
+            <dd>To enable a single write or read call to operate 
+                on multiple datasets:
                 <ul>
-                <li><a href="../RM/RM_H5D.html#Dataset-Create">
-                    <code>H5Dcreate</code></a>
+                <li><a href="../RM/RM_H5D.html#Dataset-WriteMulti">
+                    <code>H5Dwrite_multi</code></a>
+                <li><a href="../RM/RM_H5D.html#Dataset-ReadMulti">
+                    <code>H5Dread_multi</code></a>
+                <li>Related struct: <code>H5D_rw_multi_t</code>
                 </ul>
                 </dd>
 
-<!--
-<br> 
+
+            </dl>    
+            <font color="brown"><i>
+            Included for confirmation;
+            these functions are not believed to be in 1.8.15.
+            </i></font>
+
+            <p>
+            <dd><font color="brown"><i>[This document assumes that
+            <code>H5Dwrite_multi</code> and <code>H5Dread_multi</code>
+            are not to be in 1.8.15.]
+            </i></font>
+            </dd>
 -->
 
+<!--
+
             <p>
             <dt><strong>In the high-level library C Interface</strong>
                 </dt>
 
-            <dt>High-level HDF5 interfaces now ensure that strings are 
-                null-terminated and will not overflow a buffer.
+-->
+<!--
+            <dt>Discussion
                 </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>Further elaboration
                     </dd>
+-->
 
             <p>
-            <dt><strong>In the main library C++ Interface</strong>
+            <dt><strong>In the C++ Interface</strong>
                 </dt>
 
-            <dt>No new C++ methods have been added.
+            <dt>The following features have been added:
                 </dt>
-<!--
-            <dt>The following new features have been added 
-                to the C++ interface:
+                <dd>
+                <li>New wrappers  for the C functions
+                    <code>H5Pset_libver_bounds</code> and
+                    <code>H5Pget_libver_bounds</code>
+                    <p />
+                    The following wrappers have been added to class 
+                    <code>H5::FileAccPropList</code>.  
+                    The first sets the bounds on versions of the HDF5 Library 
+                    format to be used when creating or writing objects;
+                    the second retrieves the current settings: 
+                    <pre>
+    void setLibverBounds(H5F_libver_t libver_low, H5F_libver_t libver_high) const;
+
+    void getLibverBounds(H5F_libver_t& libver_low, H5F_libver_t& libver_high) const;
+                    </pre>
+
+                <li>New wrappers to retrieve the version of an object header
+                    <p />
+                    The following wrappers have been added to class 
+                    <code>H5::CommonFG</code> to retrieve the 
+                    object header version of an object in a file or group,
+                    given the object’s name.
+                    <pre>
+    unsigned childObjVersion(const char* objname) const;
+
+    unsigned childObjVersion(const H5std_string& objname) const;
+                    </pre>
+
+                <li>A new <code>DataType</code> constructor
+                    <p />
+                    A new <code>DataType</code> constructor takes a 
+                    <code>PredType</code> object and invokes 
+                    <code>H5Tcopy</code> to generate another datatype 
+                    identifier from a predefined datatype.
+
+                    </dd>
+
+
+            <dt>The following features have been changed:
                 </dt>
+                <dd>
+                <li>Combined <code>H5File::getObjCount</code> 
+                    overloaded methods 
+                    <p />
+                   The following methods:
+                   <pre>
+    ssize_t getObjCount(unsigned types) const;
+
+    ssize_t getObjCount() const;
+                   </pre>
+                   have been combined into the following:
+                   <pre>
+    ssize_t getObjCount(unsigned types = H5F_OBJ_ALL) const;
+                   </pre>
+
+                <li>Deprecated constructors
+                    <p />
+                    The following two constructors of the classes 
+                    <code>AbstractDs</code>,
+                    <code>IdComponent</code>,
+                    <code>H5Location</code>,
+                    and <code>H5Object</code>
+                    are no longer appropriate after the data member
+                    <code>id</code> was moved from <code>IdComponent</code>
+                    to the sub-classes in previous releases:
+                    <pre>
+    <Classname>(const hid_t h5_id);
+
+    <Classname>(const <Classname>& original);
+                    </pre>
+                    The copy constructors have been no-ops and are removed 
+                    in this HDF5 Release 1.8.15.  
+                    The other constructors will be removed in 
+                    HDF5 Release 1.10 and are expected to be removed
+                    from HDF5 Release 1.8.17 if their removal causes 
+                    no problems.
 
-                <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>
--->
+            <dt><strong>In the Fortran Interface</strong>
+                </dt>
+
+            <dt>The following Fortran 2003 API has been added:
+                </dt>
+                <dd><a href="../RM/RM_H5T.html#Datatype-EnumInsert">
+                    <code>h5tenum_insert_f</code></a> 
+                    </dd>
                 <p>
+                <dd>Operation of the new Fortran 2003 version of this API
+                    is more consistent with the operation of the C API 
+                    than was the Fortran 90 version.
+                    </dd>
+                <dd>Users are strongly encouraged to use the Fortran 2003 API.
+                    </dd>
 
             <p>
-            <dt><strong>In the main library Fortran Interface</strong>
-
-            <dt>No new Fortran subroutines have been added.
+            <dt>Several global variables have been added in the Fortran API.
+                These global variables are equivalent in definition 
+                to the comparable C definitions:
                 </dt>
+                <dd><pre>
+H5G_UDLINK_F
+H5G_SAME_LOC_F
+H5O_TYPE_UNKNOWN_F
+H5O_TYPE_GROUP_F
+H5O_TYPE_DATASET_F
+H5O_NAMED_DATATYPE_F
+H5O_TYPE_NTYPES_F   </pre>
+                    </dd>
 
 <!--
-            <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%">
-                <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%">
-                    <code>h5pset_file_image_f</code> 
-                    <br>
-                    <code>h5pget_file_image_f</code>
-                </td><td align="left" valign="top" width="50%">
-                     
-                </td></tr>
-                <tr><td colspan="2">
-                    <code>h5fget_file_image_f</code>
-                    <i>
-                    (Added in Release 1.8.11, but not documented at that time.)
-                    </i>
-                </table>
--->
-                </dd>
+            <p>
+            <dt><strong>In the high-level library Fortran Interface</strong>
+                </dt>
 
+-->
 
             <p>
-            <dt>Changed Fortran <code>INTEGER</code> parameter types:
+            <dt><strong>For parallel applications</strong>
                 </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>A fix for issues encountered upon calling 
+                <code>MPI_Finalize</code> without having closed everything
+                in an HDF5 file
+                <p />
                 </dt>
+                <dd>An attribute destroy callback has been attached
+                    to <code>MPI_COMM_SELF</code> that shuts down the 
+                    HDF5 Library when <code>MPI_COMM_SELF</code>
+                    is destroyed, that is, on <code>MPI_Finalize</code>. 
+                    This should fix several issues that users see when they 
+                    forget to close HDF5 objects before calling
+                    <code>MPI_Finalize()</code>.
+
+                    </dd>
 
+<!--
+            <p>
+            <dt><strong>In somewhere else</strong>
+                </dt>
+
+            <dt>Discussion
+                </dt>
+                <dd>Further elaboration
+                    </dd>
+-->
 
         </dl>
         </dir>
@@ -385,13 +477,13 @@ in the transition from HDF5 Release 1.8.13 to Release 1.8.14.
     <h3>Compatibility Report and Comments</h3>
         <dir>
         <dl>    
-            <dt><strong>Compatibility report for Release 1.8.14 versus 
-                Release 1.8.13</strong>
+            <dt><strong>Compatibility report for Release 1.8.15 versus 
+                Release 1.8.14</strong>
                 </dt>
                 <dd>
-                    <a href="Compatibility_Report/CR_1.8.14.html">API 
+                    <a href="Compatibility_Report/CR_1.8.15.html">API 
                     compatibility report for the HDF5 Library 
-                    between 1.8.13 and 1.8.14 versions on 
+                    between 1.8.14 and 1.8.15 versions on 
                     x86</a>
                 </dd>
 
@@ -399,41 +491,23 @@ in the transition from HDF5 Release 1.8.13 to Release 1.8.14.
             <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>.
+                <dd>In the C++ interface, two overloaded methods
+                    have been combined into a single method
+                    and one constructor has been deprecated.
                     <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>[ Additional sections will be added as appropriate. ]</h3>
-        <dir>
-        <dl>    
         </dl>
         </dir>
--->
-
 
 </dir>
-<br />
 
-<!--
-<br> 
-<br> 
-<br> 
-<br> 
-<br> 
-<br> 
-<br> 
-<br> 
--->
 
+        
 
 <a name="18x">
 <h2>Prior Releases in the 1.8.x Series</h2> 
@@ -524,7 +598,7 @@ Release to Release for HDF5 Releases 1.4.0 through 1.6.10</a>”.
 <!-- Created: Spring 1999 -->
 <!-- hhmts start -->
 <hr />
-Last modified: 17 November 2014
+Last modified: 12 May 2015
 <!-- hhmts end -->
 <br />
 <br />
diff --git a/html/ADGuide/Changes_1_8_x.html b/html/ADGuide/Changes_1_8_x.html
index 5035c61..2b3f111 100755
--- a/html/ADGuide/Changes_1_8_x.html
+++ b/html/ADGuide/Changes_1_8_x.html
@@ -92,7 +92,255 @@ to Release for HDF5 Releases 1.4.0 through 1.6.10</a>” for:
 
 
 
+<a name="1814">
+<h2>Release 1.8.14 of November 2014 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.13 to Release 1.8.14.
+
+
+    <h3>New and Changed Functions, Classes, Subroutines, Wrappers, 
+        and Macros</h3>
+        <dir>
+        <dl>    
+            <dt><strong>In the main library C Interface</strong>
+                </dt>
+
+            <dt>No new C functions have been added.
+                </dt>
+<!--
+            <dt>The following new C functions have been added:
+                </dt>
+            <dd>Names and descriptions.
+                </dd>
+-->
 
+            <p>
+            <dt>The behavior of the following C function has been changed:
+                </dt>
+            <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>
+                </ul>
+                </dd>
+
+            <p>
+            <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_H5D.html#Dataset-Create">
+                    <code>H5Dcreate</code></a>
+                </ul>
+                </dd>
+
+<!--
+<br> 
+-->
+
+            <p>
+            <dt><strong>In the high-level library C Interface</strong>
+                </dt>
+
+            <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>
+
+            <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 main library Fortran Interface</strong>
+
+            <dt>No new Fortran subroutines have been added.
+                </dt>
+
+<!--
+            <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%">
+                <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%">
+                    <code>h5pset_file_image_f</code> 
+                    <br>
+                    <code>h5pget_file_image_f</code>
+                </td><td align="left" valign="top" width="50%">
+                     
+                </td></tr>
+                <tr><td colspan="2">
+                    <code>h5fget_file_image_f</code>
+                    <i>
+                    (Added in Release 1.8.11, but not documented at that time.)
+                    </i>
+                </table>
+-->
+                </dd>
+
+
+            <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>
+
+
+        </dl>
+        </dir>
+
+
+    <h3>Compatibility Report and Comments</h3>
+        <dir>
+        <dl>    
+            <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>
+
+            <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>[ Additional sections will be added as appropriate. ]</h3>
+        <dir>
+        <dl>    
+        </dl>
+        </dir>
+-->
+
+
+</dir>
+<br />
 
 
 
@@ -6986,9 +7234,15 @@ in the transition to HDF5 Release 1.8.0 from the Release 1.6.<i>x</i> series.
           HDF5 no longer provides SRB support.
           <br>
           SRB functionality is now supported through the mechanism described 
-          in <a href="http://www.sdsc.edu/srb/index.php/Main_Page">SRB 
-          — The DICE Storage Resource Broker</a>
+          in 
+          <!-- 5.13.2015, commented out obsolete link.
+          <a href="http://www.sdsc.edu/srb/index.php/Main_Page">
+          -->
+          SRB — The DICE Storage Resource Broker.
+          <!-- </a> -->
+          <!--
           (<code>http://www.sdsc.edu/srb/index.php/Main_Page<code>).
+          -->
         </td></tr> <tr><td valign=top>
           <code>H5Pset_fapl_stream</code>
           <br>
@@ -7874,7 +8128,7 @@ Release to Release for HDF5 Releases 1.4.0 through 1.6.10</a>”.
 <!-- Created: Spring 1999 -->
 <!-- hhmts start -->
 <hr />
-Last modified: 26 September 2014
+Last modified: 13 May 2015
 <!-- hhmts end -->
 <br />
 <br />
diff --git a/html/ADGuide/Compatibility_Report/CR_1.8.15.html b/html/ADGuide/Compatibility_Report/CR_1.8.15.html
new file mode 100644
index 0000000..4e1ebcb
--- /dev/null
+++ b/html/ADGuide/Compatibility_Report/CR_1.8.15.html
@@ -0,0 +1,1841 @@
+<!-- kind:binary;verdict:incompatible;affected:3.7;added:15;removed:9;type_problems_high:2;type_problems_medium:0;type_problems_low:0;interface_problems_high:0;interface_problems_medium:0;interface_problems_low:2;changed_constants:20;tool_version:1.99.9 -->
+<!-- kind:source;verdict:incompatible;affected:4.5;added:17;removed:9;type_problems_high:2;type_problems_medium:0;type_problems_low:0;interface_problems_high:0;interface_problems_medium:0;interface_problems_low:0;changed_constants:26;tool_version:1.99.9 -->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+    <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <meta name="keywords" content="hdf5, compatibility, API, report" />
+    <meta name="description" content="Compatibility report for the hdf5 library between 1.8.14 and 1.8.15 versions" />
+    <title>
+        hdf5: 1.8.14 to 1.8.15 compatibility report
+    </title>
+    <style type="text/css">
+    body {
+    font-family:Arial, sans-serif;
+    color:Black;
+    font-size:14px;
+}
+hr {
+    color:Black;
+    background-color:Black;
+    height:1px;
+    border:0;
+}
+h1 {
+    margin-bottom:0px;
+    padding-bottom:0px;
+    font-size:26px;
+}
+h2 {
+    margin-bottom:0px;
+    padding-bottom:0px;
+    font-size:20px;
+    white-space:nowrap;
+}
+span.section {
+    font-weight:bold;
+    cursor:pointer;
+    font-size:16px;
+    color:#003E69;
+    white-space:nowrap;
+    margin-left:5px;
+}
+span.new_sign {
+    font-weight:bold;
+    margin-left:26px;
+    font-size:16px;
+    color:#003E69;
+}
+span.new_sign_lbl {
+    margin-left:28px;
+    font-size:14px;
+    color:Black;
+}
+span:hover.section {
+    color:#336699;
+}
+span.section_affected {
+    cursor:pointer;
+    margin-left:7px;
+    padding-left:15px;
+    font-size:14px;
+    color:#cc3300;
+}
+span.section_info {
+    cursor:pointer;
+    margin-left:7px;
+    padding-left:15px;
+    font-size:14px;
+    color:Black;
+}
+span.extendable {
+    font-weight:100;
+    font-size:16px;
+}
+span.h_name {
+    color:#cc3300;
+    font-size:14px;
+    font-weight:bold;
+}
+div.h_list {
+    font-size:15px;
+    padding-left:5px;
+}
+span.ns {
+    color:#408080;
+    font-size:15px;
+}
+div.lib_list {
+    font-size:15px;
+    padding-left:5px;
+}
+span.lib_name {
+    color:Green;
+    font-size:14px;
+    font-weight:bold;
+}
+span.iname {
+    font-weight:bold;
+    font-size:16px;
+    color:#003E69;
+    margin-left:5px;
+}
+span.iname_b {
+    font-weight:bold;
+    font-size:15px;
+}
+span.iname_a {
+    color:#333333;
+    font-weight:bold;
+    font-size:15px;
+}
+span.sym_p {
+    font-weight:normal;
+    white-space:normal;
+}
+div.affect {
+    padding-left:15px;
+    padding-bottom:4px;
+    font-size:14px;
+    font-style:italic;
+    line-height:13px;
+}
+div.affected {
+    padding-left:30px;
+    padding-top:5px;
+}
+table.ptable {
+    border-collapse:collapse;
+    border:1px outset black;
+    line-height:16px;
+    margin-left:15px;
+    margin-top:3px;
+    margin-bottom:3px;
+    width:900px;
+}
+table.ptable td {
+    border:1px solid gray;
+    padding: 3px;
+}
+table.vtable {
+    border-collapse:collapse;
+    border:1px outset black;
+    line-height:16px;
+    margin-left:30px;
+    margin-top:10px;
+    width:100px;
+}
+table.vtable td {
+    border:1px solid gray;
+    white-space:nowrap;
+    padding: 3px;
+}
+table.ptable th, table.vtable th {
+    background-color:#eeeeee;
+    font-weight:bold;
+    color:#333333;
+    font-family:Verdana, Arial;
+    font-size:13px;
+    border:1px solid gray;
+    text-align:center;
+    vertical-align:top;
+    white-space:nowrap;
+    padding: 3px;
+}
+table.summary {
+    border-collapse:collapse;
+    border:1px outset black;
+}
+table.summary th {
+    background-color:#eeeeee;
+    font-weight:100;
+    text-align:left;
+    font-size:15px;
+    white-space:nowrap;
+    border:1px inset gray;
+    padding: 3px;
+}
+table.summary td {
+    text-align:right;
+    font-size:16px;
+    white-space:nowrap;
+    border:1px inset gray;
+    padding: 3px 5px 3px 10px;
+}
+table.code_view {
+    cursor:text;
+    margin-top:7px;
+    margin-left:15px;
+    font-family:Monaco, Consolas, 'DejaVu Sans Mono', 'Droid Sans Mono', Monospace;
+    font-size:14px;
+    padding:10px;
+    border:1px solid #e0e8e5;
+    color:#444444;
+    background-color:#eff3f2;
+    overflow:auto;
+}
+table.code_view td {
+    padding-left:15px;
+    text-align:left;
+    white-space:nowrap;
+}
+span.mangled {
+    padding-left:15px;
+    font-size:14px;
+    cursor:text;
+    color:#444444;
+}
+span.sym_ver {
+    color:#333333;
+    white-space:nowrap;
+    font-family:"DejaVu Sans Mono", Monospace;
+}
+span.attr {
+    color:#333333;
+    font-weight:100;
+}
+span.color_p {
+    font-style:italic;
+    color:Brown;
+}
+span.param {
+    font-style:italic;
+}
+span.focus_p {
+    font-style:italic;
+    color:Red;
+}
+span.ttype {
+    font-weight:100;
+}
+span.nowrap {
+    white-space:nowrap;
+}
+span.value {
+    white-space:nowrap;
+    font-weight:bold;
+}
+td.passed {
+    background-color:#CCFFCC;
+}
+td.warning {
+    background-color:#F4F4AF;
+}
+td.failed {
+    background-color:#FFCCCC;
+}
+td.new {
+    background-color:#C6DEFF;
+}
+.tabset {
+    float:left;
+}
+a.tab {
+    border:1px solid #AAA;
+    float:left;
+    margin:0px 5px -1px 0px;
+    padding:3px 5px 3px 5px;
+    position:relative;
+    font-size:14px;
+    background-color:#DDD;
+    text-decoration:none;
+    color:Black;
+}
+a.disabled:hover
+{
+    color:Black;
+    background:#EEE;
+}
+a.active:hover
+{
+    color:Black;
+    background:White;
+}
+a.active {
+    border-bottom-color:White;
+    background-color:White;
+}
+div.tab {
+    border:1px solid #AAA;
+    padding:0 7px 0 12px;
+    width:97%;
+    clear:both;
+}
+    </style>
+    <script type="text/javascript" language="JavaScript">
+    <!--
+    function showContent(header, id)
+{
+    e = document.getElementById(id);
+    if(e.style.display == 'none')
+    {
+        e.style.display = 'block';
+        e.style.visibility = 'visible';
+        header.innerHTML = header.innerHTML.replace(/\[[^0-9 ]\]/gi,"[−]");
+    }
+    else
+    {
+        e.style.display = 'none';
+        e.style.visibility = 'hidden';
+        header.innerHTML = header.innerHTML.replace(/\[[^0-9 ]\]/gi,"[+]");
+    }
+}
+function initTabs()
+{
+    var url = window.location.href;
+    if(url.indexOf('_Source_')!=-1 || url.indexOf('#Source')!=-1)
+    {
+        var tab1 = document.getElementById('BinaryID');
+        var tab2 = document.getElementById('SourceID');
+        tab1.className='tab disabled';
+        tab2.className='tab active';
+    }
+    var sets = document.getElementsByTagName('div');
+    for (var i = 0; i < sets.length; i++)
+    {
+        if (sets[i].className.indexOf('tabset') != -1)
+        {
+            var tabs = [];
+            var links = sets[i].getElementsByTagName('a');
+            for (var j = 0; j < links.length; j++)
+            {
+                if (links[j].className.indexOf('tab') != -1)
+                {
+                    tabs.push(links[j]);
+                    links[j].tabs = tabs;
+                    var tab = document.getElementById(links[j].href.substr(links[j].href.indexOf('#') + 1));
+                    //reset all tabs on start
+                    if (tab)
+                    {
+                        if (links[j].className.indexOf('active')!=-1) {
+                            tab.style.display = 'block';
+                        }
+                        else {
+                            tab.style.display = 'none';
+                        }
+                    }
+                    links[j].onclick = function()
+                    {
+                        var tab = document.getElementById(this.href.substr(this.href.indexOf('#') + 1));
+                        if (tab)
+                        {
+                            //reset all tabs before change
+                            for (var k = 0; k < this.tabs.length; k++)
+                            {
+                                document.getElementById(this.tabs[k].href.substr(this.tabs[k].href.indexOf('#') + 1)).style.display = 'none';
+                                this.tabs[k].className = this.tabs[k].className.replace('active', 'disabled');
+                            }
+                            this.className = 'tab active';
+                            tab.style.display = 'block';
+                            // window.location.hash = this.id.replace('ID', '');
+                            return false;
+                        }
+                    }
+                }
+            }
+        }
+    }
+    if(url.indexOf('#')!=-1) {
+        location.href=location.href;
+    }
+}
+if (window.addEventListener) window.addEventListener('load', initTabs, false);
+else if (window.attachEvent) window.attachEvent('onload', initTabs);
+    -->
+    </script>
+    </head><body><a name='Source'></a><a name='Binary'></a><a name='Top'></a><h1><span class='nowrap'>API compatibility report for the <span style='color:Blue;'>hdf5</span> library</span> <span class='nowrap'> between <span style='color:Red;'>1.8.14</span> and <span style='color:Red;'>1.8.15</span> versions on <span style='color:Blue;'>x86</span></span></h1>
+
+            <br/><div class='tabset'>
+            <a id='BinaryID' href='#BinaryTab' class='tab active'>Binary<br/>Compatibility</a>
+            <a id='SourceID' href='#SourceTab' style='margin-left:3px' class='tab disabled'>Source<br/>Compatibility</a>
+            </div><div id='BinaryTab' class='tab'>
+<h2>Test Info</h2><hr/>
+<table class='summary'>
+<tr><th>Library Name</th><td>hdf5</td></tr>
+<tr><th>Version #1</th><td>1.8.14</td></tr>
+<tr><th>Version #2</th><td>1.8.15</td></tr>
+<tr><th>CPU Type</th><td>x86</td></tr>
+<tr><th>GCC Version</th><td>4.1.2</td></tr>
+<tr><th>Subject</th><td width='150px'>Binary Compatibility</td></tr>
+</table>
+<h2>Test Results</h2><hr/>
+<table class='summary'><tr><th>Total Header Files</th><td><a href='#Headers' style='color:Blue;'>75</a></td></tr>
+<tr><th>Total Shared Libraries</th><td><a href='#Libs' style='color:Blue;'>6</a></td></tr>
+<tr><th>Total Symbols / Types</th><td>1776 / 537</td></tr>
+<tr><th>Verdict</th><td><span style='color:Red;'><b>Incompatible<br/>(3.7%)</b></span></td></tr>
+</table>
+<h2>Problem Summary</h2><hr/>
+<table class='summary'><tr><th></th><th style='text-align:center;'>Severity</th><th style='text-align:center;'>Count</th></tr><tr><th>Added Symbols</th><td>-</td><td class='new'><a href='#Binary_Added' style='color:Blue;'>15</a></td></tr>
+<tr><th>Removed Symbols</th><td>High</td><td class='failed'><a href='#Binary_Removed' style='color:Blue;'>9</a></td></tr>
+<tr><th rowspan='3'>Problems with<br/>Data Types</th><td>High</td><td class='failed'><a href='#Type_Binary_Problems_High' style='color:Blue;'>2</a></td></tr>
+<tr><td>Medium</td><td>0</td></tr>
+<tr><td>Low</td><td>0</td></tr>
+<tr><th rowspan='3'>Problems with<br/>Symbols</th><td>High</td><td>0</td></tr>
+<tr><td>Medium</td><td>0</td></tr>
+<tr><td>Low</td><td class='warning'><a href='#Symbol_Binary_Problems_Low' style='color:Blue;'>2</a></td></tr>
+<tr><th>Problems with<br/>Constants</th><td>Low</td><td class='warning'><a href='#Constant_Binary_Problems_Low' style='color:Blue;'>20</a></td></tr>
+<tr><th>Other Changes<br/>in Symbols</th><td>-</td><td class='passed'><a href='#Other_Binary_Changes_In_Symbols' style='color:Blue;'>5</a></td></tr>
+<tr><th>Other Changes<br/>in Constants</th><td>-</td><td class='passed'><a href='#Other_Binary_Changes_In_Constants' style='color:Blue;'>5</a></td></tr>
+</table>
+
+<a name='Binary_Added'></a><h2>Added Symbols (15)</h2><hr/>
+<span class='h_name'>H5Attribute.h</span>, <span class='lib_name'>libhdf5_cpp.so.10.0.0</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_1')">
+f_Attribute_setId <span class='sym_p'>( <span class='nowrap'>Attribute* <span class='color_p'>attr</span>,</span> <span class='nowrap'>hid_t <span class='color_p'>new_id</span> )</span></span></span>
+<br/>
+<div id="c_1" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H517f_Attribute_setIdEPNS_9AttributeEi</b>]</span><br/><br/></div>
+
+<br/>
+<span class='h_name'>H5CommonFG.h</span>, <span class='lib_name'>libhdf5_cpp.so.10.0.0</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_2')">
+CommonFG::childObjVersion <span class='sym_p'>( <span class='nowrap'>char const* <span class='color_p'>objname</span> )</span></span> const</span>
+<br/>
+<div id="c_2" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZNK2H58CommonFG15childObjVersionEPKc</b>]</span><br/><br/></div>
+
+<br/>
+<span class='h_name'>H5DataSet.h</span>, <span class='lib_name'>libhdf5_cpp.so.10.0.0</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_3')">
+f_DataSet_setId <span class='sym_p'>( <span class='nowrap'>DataSet* <span class='color_p'>dset</span>,</span> <span class='nowrap'>hid_t <span class='color_p'>new_id</span> )</span></span></span>
+<br/>
+<div id="c_3" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H515f_DataSet_setIdEPNS_7DataSetEi</b>]</span><br/><br/></div>
+
+<br/>
+<span class='h_name'>H5DataSpace.h</span>, <span class='lib_name'>libhdf5_cpp.so.10.0.0</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_4')">
+f_DataSpace_setId <span class='sym_p'>( DataSpace* <span class='color_p'>dspace</span>, <span class='nowrap'>hid_t <span class='color_p'>new_id</span> )</span></span></span>
+<br/>
+<div id="c_4" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H517f_DataSpace_setIdEPNS_9DataSpaceEi</b>]</span><br/><br/></div>
+
+<br/>
+<span class='h_name'>H5DataType.h</span>, <span class='lib_name'>libhdf5_cpp.so.10.0.0</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_5')">
+DataType::DataType <span class='attr'>[in-charge]</span> <span class='sym_p'>( <span class='nowrap'>PredType const& <span class='color_p'>pred_type</span> )</span></span></span>
+<br/>
+<div id="c_5" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H58DataTypeC1ERKNS_8PredTypeE</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_6')">
+DataType::DataType <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( <span class='nowrap'>PredType const& <span class='color_p'>pred_type</span> )</span></span></span>
+<br/>
+<div id="c_6" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H58DataTypeC2ERKNS_8PredTypeE</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_7')">
+f_DataType_setId <span class='sym_p'>( <span class='nowrap'>DataType* <span class='color_p'>dtype</span>,</span> <span class='nowrap'>hid_t <span class='color_p'>new_id</span> )</span></span></span>
+<br/>
+<div id="c_7" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H516f_DataType_setIdEPNS_8DataTypeEi</b>]</span><br/><br/></div>
+
+<br/>
+<span class='h_name'>H5FaccProp.h</span>, <span class='lib_name'>libhdf5_cpp.so.10.0.0</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_8')">
+FileAccPropList::getLibverBounds <span class='sym_p'>( H5F_libver_t& <span class='color_p'>libver_low</span>, <span class='nowrap'>H5F_libver_t& <span class='color_p'>libver_high</span> )</span></span> const</span>
+<br/>
+<div id="c_8" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZNK2H515FileAccPropList15getLibverBoundsER12H5F_libver_tS2_</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_9')">
+FileAccPropList::setLibverBounds <span class='sym_p'>( H5F_libver_t <span class='color_p'>libver_low</span>, <span class='nowrap'>H5F_libver_t <span class='color_p'>libver_high</span> )</span></span> const</span>
+<br/>
+<div id="c_9" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZNK2H515FileAccPropList15setLibverBoundsE12H5F_libver_tS1_</b>]</span><br/><br/></div>
+
+<br/>
+<span class='h_name'>H5File.h</span>, <span class='lib_name'>libhdf5_cpp.so.10.0.0</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_10')">
+H5File::H5File <span class='attr'>[in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t <span class='color_p'>existing_id</span> )</span></span></span>
+<br/>
+<div id="c_10" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H56H5FileC1Ei</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_11')">
+H5File::H5File <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t <span class='color_p'>existing_id</span> )</span></span></span>
+<br/>
+<div id="c_11" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H56H5FileC2Ei</b>]</span><br/><br/></div>
+
+<br/>
+<span class='h_name'>H5PLpublic.h</span>, <span class='lib_name'>libhdf5.so.10.0.0</span><br/>
+<span class="iname">H5PLget_loading_state <span class='sym_p'>( <span class='nowrap'>unsigned int* <span class='color_p'>plugin_type</span> )</span></span></span><br/>
+<span class="iname">H5PLset_loading_state <span class='sym_p'>( <span class='nowrap'>unsigned int <span class='color_p'>plugin_type</span> )</span></span></span><br/>
+<br/>
+<span class='h_name'>H5public.h</span>, <span class='lib_name'>libhdf5.so.10.0.0</span><br/>
+<span class="iname">H5allocate_memory <span class='sym_p'>( <span class='nowrap'>size_t <span class='color_p'>size</span>,</span> <span class='nowrap'>hbool_t <span class='color_p'>clear</span> )</span></span></span><br/>
+<span class="iname">H5resize_memory <span class='sym_p'>( <span class='nowrap'>void* <span class='color_p'>mem</span>,</span> <span class='nowrap'>size_t <span class='color_p'>size</span> )</span></span></span><br/>
+<br/>
+<a style='font-size:11px;' href='#Top'>to the top</a><br/>
+<a name='Binary_Removed'></a><a name='Binary_Withdrawn'></a><h2>Removed Symbols (9)</h2><hr/>
+<span class='h_name'>H5AbstractDs.h</span>, <span class='lib_name'>libhdf5_cpp.so.9.0.0</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_12')">
+AbstractDs::AbstractDs <span class='attr'>[in-charge]</span> <span class='sym_p'>( <span class='nowrap'>AbstractDs const& <span class='color_p'>original</span> )</span></span></span>
+<br/>
+<div id="c_12" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H510AbstractDsC1ERKS0_</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_13')">
+AbstractDs::AbstractDs <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( <span class='nowrap'>AbstractDs const& <span class='color_p'>original</span> )</span></span></span>
+<br/>
+<div id="c_13" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H510AbstractDsC2ERKS0_</b>]</span><br/><br/></div>
+
+<br/>
+<span class='h_name'>H5File.h</span>, <span class='lib_name'>libhdf5_cpp.so.9.0.0</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_14')">
+H5File::getObjCount <span class='sym_p'>( )</span> const</span>
+<br/>
+<div id="c_14" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZNK2H56H5File11getObjCountEv</b>]</span><br/><br/></div>
+
+<br/>
+<span class='h_name'>H5IdComponent.h</span>, <span class='lib_name'>libhdf5_cpp.so.9.0.0</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_15')">
+IdComponent::IdComponent <span class='attr'>[in-charge]</span> <span class='sym_p'>( <span class='nowrap'>IdComponent const& <span class='color_p'>original</span> )</span></span></span>
+<br/>
+<div id="c_15" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H511IdComponentC1ERKS0_</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_16')">
+IdComponent::IdComponent <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( <span class='nowrap'>IdComponent const& <span class='color_p'>original</span> )</span></span></span>
+<br/>
+<div id="c_16" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H511IdComponentC2ERKS0_</b>]</span><br/><br/></div>
+
+<br/>
+<span class='h_name'>H5Location.h</span>, <span class='lib_name'>libhdf5_cpp.so.9.0.0</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_17')">
+H5Location::H5Location <span class='attr'>[in-charge]</span> <span class='sym_p'>( <span class='nowrap'>H5Location const& <span class='color_p'>original</span> )</span></span></span>
+<br/>
+<div id="c_17" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H510H5LocationC1ERKS0_</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_18')">
+H5Location::H5Location <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( <span class='nowrap'>H5Location const& <span class='color_p'>original</span> )</span></span></span>
+<br/>
+<div id="c_18" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H510H5LocationC2ERKS0_</b>]</span><br/><br/></div>
+
+<br/>
+<span class='h_name'>H5Object.h</span>, <span class='lib_name'>libhdf5_cpp.so.9.0.0</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_19')">
+H5Object::H5Object <span class='attr'>[in-charge]</span> <span class='sym_p'>( <span class='nowrap'>H5Object const& <span class='color_p'>original</span> )</span></span></span>
+<br/>
+<div id="c_19" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H58H5ObjectC1ERKS0_</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_20')">
+H5Object::H5Object <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( <span class='nowrap'>H5Object const& <span class='color_p'>original</span> )</span></span></span>
+<br/>
+<div id="c_20" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H58H5ObjectC2ERKS0_</b>]</span><br/><br/></div>
+
+<br/>
+<a style='font-size:11px;' href='#Top'>to the top</a><br/>
+<a name='High_Risk_Binary_Problems'></a><a name='Type_Binary_Problems_High'></a>
+<h2>Problems with Data Types, High Severity (2)</h2><hr/>
+<span class='h_name'>H5AbstractDs.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_21')">
+<span class='extendable'>[+]</span> <span class='ttype'>class</span> AbstractDs (1)</span>
+<br/>
+<div id="c_21" style="display:none;">
+<table class='ptable'><tr>
+<th width='2%'></th><th width='47%'>Change</th>
+<th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Pure virtual method <span class='iname_b'>AbstractDs::getSpace <span class='sym_p'>( )</span> const</span> has been added to this class.</td><td align='left' valign='top'>1) Applications will not provide the implementation for this pure virtual method and therefore cause a crash in the library trying to call this method.<br/>2) The layout of v-table has been changed. Call of any virtual method at higher position in [...]
+</table>
+<span class="section_info" onclick="javascript:showContent(this, 'c_22')">
+[+] show v-table (old and new)</span>
+<br/>
+<div id="c_22" style="display:none;">
+<table class='vtable'><tr><th width='2%'>Offset</th><th width='45%'>Virtual Table (Old) - 7 entries</th><th>Virtual Table (New) - 8 entries</th></tr><tr><th>0</th>
+<td>(int (*)(...))0</td>
+<td>(int (*)(...))0</td></tr>
+<tr><th>4</th>
+<td>(int (*)(...))(& typeinfo)</td>
+<td>(int (*)(...))(& typeinfo)</td></tr>
+<tr><th>8</th>
+<td>__cxa_pure_virtual</td>
+<td>__cxa_pure_virtual</td></tr>
+<tr><th>12</th>
+<td>__cxa_pure_virtual</td>
+<td>__cxa_pure_virtual</td></tr>
+<tr><th>16</th>
+<td class='failed'>~AbstractDs</td>
+<td class='failed'>__cxa_pure_virtual</td></tr>
+<tr><th>20</th>
+<td>~AbstractDs</td>
+<td>~AbstractDs</td></tr>
+<tr><th>24</th>
+<td class='failed'>__cxa_pure_virtual</td>
+<td class='failed'>~AbstractDs</td></tr>
+<tr><th>28</th>
+<td></td>
+<td class='warning'>__cxa_pure_virtual</td></tr>
+</table><br/>
+</div>
+<span class="section_affected" onclick="javascript:showContent(this, 'c_23')">
+[+] affected symbols (17)</span>
+<div id="c_23" style="display:none;">
+<div class='affected'><span class='iname_a'>AbstractDs::AbstractDs <span class='attr'>[in-charge]</span> <span class='sym_p'>( )</span></span><br/><div class='affect'>This constructor is from 'AbstractDs' class.</div>
+<span class='iname_a'>AbstractDs::AbstractDs <span class='attr'>[in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t const <span class='param'>ds_id</span> )</span></span></span><br/><div class='affect'>This constructor is from 'AbstractDs' class.</div>
+<span class='iname_a'>AbstractDs::getArrayType <span class='sym_p'>( )</span> const</span><br/><div class='affect'>This method is from 'AbstractDs' class.</div>
+<span class='iname_a'>AbstractDs::getCompType <span class='sym_p'>( )</span> const</span><br/><div class='affect'>This method is from 'AbstractDs' class.</div>
+<span class='iname_a'>AbstractDs::getEnumType <span class='sym_p'>( )</span> const</span><br/><div class='affect'>This method is from 'AbstractDs' class.</div>
+<span class='iname_a'>AbstractDs::getFloatType <span class='sym_p'>( )</span> const</span><br/><div class='affect'>This method is from 'AbstractDs' class.</div>
+<span class='iname_a'>AbstractDs::getInMemDataSize <span class='sym_p'>( )</span> const</span><br/><div class='affect'>This method is from 'AbstractDs' class.</div>
+<span class='iname_a'>AbstractDs::getIntType <span class='sym_p'>( )</span> const</span><br/><div class='affect'>This method is from 'AbstractDs' class.</div>
+<span class='iname_a'>AbstractDs::getStorageSize <span class='sym_p'>( )</span> const</span><br/><div class='affect'>This method is from 'AbstractDs' class.</div>
+<span class='iname_a'>AbstractDs::getStrType <span class='sym_p'>( )</span> const</span><br/><div class='affect'>This method is from 'AbstractDs' class.</div>
+<span class='iname_a'>AbstractDs::getTypeClass <span class='sym_p'>( )</span> const</span><br/><div class='affect'>This method is from 'AbstractDs' class.</div>
+<span class='iname_a'>AbstractDs::getVarLenType <span class='sym_p'>( )</span> const</span><br/><div class='affect'>This method is from 'AbstractDs' class.</div>
+<span class='iname_a'>AbstractDs::p_get_type <span class='sym_p'>( )</span> const</span><br/><div class='affect'>This method is from 'AbstractDs' class.</div>
+<span class='iname_a'>AbstractDs::~AbstractDs <span class='attr'>[in-charge]</span> <span class='sym_p'>( )</span></span><br/><div class='affect'>This method is from 'AbstractDs' class.</div>
+<span class='iname_a'>Attribute::close <span class='sym_p'>( )</span></span><br/><div class='affect'>This method is from derived class 'Attribute'.</div>
+<span class='iname_a'>Attribute::getId <span class='sym_p'>( )</span> const</span><br/><div class='affect'>This method is from derived class 'Attribute'.</div>
+<span class='iname_a'>Attribute::p_setId <span class='sym_p'>( <span class='nowrap'>hid_t const <span class='param'>new_id</span> )</span></span></span><br/><div class='affect'>This method is from derived class 'Attribute'.</div>
+</div></div>
+<br/><br/></div>
+
+<br/><span class='h_name'>H5CommonFG.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_24')">
+<span class='extendable'>[+]</span> <span class='ttype'>class</span> CommonFG (1)</span>
+<br/>
+<div id="c_24" style="display:none;">
+<table class='ptable'><tr>
+<th width='2%'></th><th width='47%'>Change</th>
+<th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Pure virtual method <span class='iname_b'>CommonFG::p_setId <span class='sym_p'>( <span class='nowrap'>hid_t const )</span></span></span> has been added to this class.</td><td align='left' valign='top'>1) Applications will not provide the implementation for this pure virtual method and therefore cause a crash in the library trying to call this method.<br/>2) The layout of v-table has been changed. Call of any virtu [...]
+</table>
+<span class="section_info" onclick="javascript:showContent(this, 'c_25')">
+[+] show v-table (old and new)</span>
+<br/>
+<div id="c_25" style="display:none;">
+<table class='vtable'><tr><th width='2%'>Offset</th><th width='45%'>Virtual Table (Old) - 6 entries</th><th>Virtual Table (New) - 7 entries</th></tr><tr><th>0</th>
+<td>(int (*)(...))0</td>
+<td>(int (*)(...))0</td></tr>
+<tr><th>4</th>
+<td>(int (*)(...))(& typeinfo)</td>
+<td>(int (*)(...))(& typeinfo)</td></tr>
+<tr><th>8</th>
+<td>__cxa_pure_virtual</td>
+<td>__cxa_pure_virtual</td></tr>
+<tr><th>12</th>
+<td>__cxa_pure_virtual</td>
+<td>__cxa_pure_virtual</td></tr>
+<tr><th>16</th>
+<td>~CommonFG</td>
+<td>~CommonFG</td></tr>
+<tr><th>20</th>
+<td>~CommonFG</td>
+<td>~CommonFG</td></tr>
+<tr><th>24</th>
+<td></td>
+<td class='warning'>__cxa_pure_virtual</td></tr>
+</table><br/>
+</div>
+<span class="section_affected" onclick="javascript:showContent(this, 'c_26')">
+[+] affected symbols (33)</span>
+<div id="c_26" style="display:none;">
+<div class='affected'><span class='iname_a'>CommonFG::childObjType <span class='sym_p'>( <span class='nowrap'>char const* <span class='param'>objname</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::childObjType <span class='sym_p'>( <span class='nowrap'>hsize_t <span class='param'>index</span>,</span> H5_index_t <span class='param'>index_type</span>, enum H5_iter_order_t <span class='param'>order</span>, <span class='nowrap'>char const* <span class='param'>objname</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::CommonFG <span class='attr'>[in-charge]</span> <span class='sym_p'>( )</span></span><br/><div class='affect'>This constructor is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::createDataSet <span class='sym_p'>( <span class='nowrap'>char const* <span class='param'>name</span>,</span> DataType const& <span class='param'>data_type</span>, DataSpace const& <span class='param'>data_space</span>, <span class='nowrap'>DSetCreatPropList const& <span class='param'>create_plist</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::createGroup <span class='sym_p'>( <span class='nowrap'>char const* <span class='param'>name</span>,</span> <span class='nowrap'>size_t <span class='param'>size_hint</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::getLocId <span class='sym_p'>( )</span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::getNumObjs <span class='sym_p'>( )</span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::getObjinfo <span class='sym_p'>( <span class='nowrap'>char const* <span class='param'>name</span>,</span> <span class='nowrap'>H5G_stat_t& <span class='param'>statbuf</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::getObjinfo <span class='sym_p'>( <span class='nowrap'>char const* <span class='param'>name</span>,</span> hbool_t <span class='param'>follow_link</span>, <span class='nowrap'>H5G_stat_t& <span class='param'>statbuf</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::getObjnameByIdx <span class='sym_p'>( <span class='nowrap'>hsize_t <span class='param'>idx</span>,</span> <span class='nowrap'>char* <span class='param'>name</span>,</span> <span class='nowrap'>size_t <span class='param'>size</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::getObjTypeByIdx <span class='sym_p'>( <span class='nowrap'>hsize_t <span class='param'>idx</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::getObjTypeByIdx <span class='sym_p'>( <span class='nowrap'>hsize_t <span class='param'>idx</span>,</span> <span class='nowrap'>char* <span class='param'>type_name</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::iterateElems <span class='sym_p'>( <span class='nowrap'>char const* <span class='param'>name</span>,</span> <span class='nowrap'>int* <span class='param'>idx</span>,</span> <span class='nowrap'>H5G_iterate_t <span class='param'>op</span>,</span> <span class='nowrap'>void* <span class='param'>op_data</span> )</span></span></span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::link <span class='sym_p'>( enum H5L_type_t <span class='param'>link_type</span>, char const* <span class='param'>curr_name</span>, <span class='nowrap'>char const* <span class='param'>new_name</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::mount <span class='sym_p'>( <span class='nowrap'>char const* <span class='param'>name</span>,</span> H5File const& <span class='param'>child</span>, <span class='nowrap'>PropList const& <span class='param'>plist</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::mount <span class='sym_p'>( <span class='nowrap'>char const* <span class='param'>name</span>,</span> H5File& <span class='param'>child</span>, <span class='nowrap'>PropList& <span class='param'>plist</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::move <span class='sym_p'>( <span class='nowrap'>char const* <span class='param'>src</span>,</span> <span class='nowrap'>char const* <span class='param'>dst</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::openArrayType <span class='sym_p'>( <span class='nowrap'>char const* <span class='param'>name</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::openCompType <span class='sym_p'>( <span class='nowrap'>char const* <span class='param'>name</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::openDataSet <span class='sym_p'>( <span class='nowrap'>char const* <span class='param'>name</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::openDataType <span class='sym_p'>( <span class='nowrap'>char const* <span class='param'>name</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::openEnumType <span class='sym_p'>( <span class='nowrap'>char const* <span class='param'>name</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::openFloatType <span class='sym_p'>( <span class='nowrap'>char const* <span class='param'>name</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::openGroup <span class='sym_p'>( <span class='nowrap'>char const* <span class='param'>name</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::openIntType <span class='sym_p'>( <span class='nowrap'>char const* <span class='param'>name</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::openStrType <span class='sym_p'>( <span class='nowrap'>char const* <span class='param'>name</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::openVarLenType <span class='sym_p'>( <span class='nowrap'>char const* <span class='param'>name</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::throwException <span class='sym_p'>( <span class='nowrap'>int const <span class='param'>H5std_string</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::unlink <span class='sym_p'>( <span class='nowrap'>char const* <span class='param'>name</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::unmount <span class='sym_p'>( <span class='nowrap'>char const* <span class='param'>name</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::~CommonFG <span class='attr'>[in-charge]</span> <span class='sym_p'>( )</span></span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>Group::throwException <span class='sym_p'>( std::string const& <span class='param'>func_name</span>, <span class='nowrap'>std::string const& <span class='param'>msg</span> )</span></span> const</span><br/><div class='affect'>This method is from derived class 'Group'.</div>
+<span class='iname_a'>H5File::throwException <span class='sym_p'>( std::string const& <span class='param'>func_name</span>, <span class='nowrap'>std::string const& <span class='param'>msg</span> )</span></span> const</span><br/><div class='affect'>This method is from derived class 'H5File'.</div>
+</div></div>
+<br/><br/></div>
+
+<br/><a style='font-size:11px;' href='#Top'>to the top</a><br/>
+<a name='Low_Risk_Binary_Problems'></a><a name='Symbol_Binary_Problems_Low'></a><a name='Interface_Binary_Problems_Low'></a>
+<h2>Problems with Symbols, Low Severity (2)</h2><hr/>
+<span class='h_name'>H5AbstractDs.h</span>, <span class='lib_name'>libhdf5_cpp.so.9.0.0</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_27')">
+<span class='extendable'>[+]</span> AbstractDs::AbstractDs <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t const <span class='color_p'>ds_id</span> )</span></span> (1)</span>
+<br/>
+<div id="c_27" style="display:none;">
+
+
+<span class='new_sign_lbl'>changed to:</span><br/><span class='new_sign'>AbstractDs::AbstractDs <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t const <span class='color_p'>h5_id</span> )</span></span></span><br/>
+<span class='mangled'>    [symbol: <b>_ZN2H510AbstractDsC2Ei</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'><b>1st</b> parameter <b>ds_id</b> has been renamed to <b>h5_id</b>.</td><td align='left' valign='top'>Renaming of a parameter may indicate a change in its semantic meaning.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_28')">
+<span class='extendable'>[+]</span> AbstractDs::AbstractDs <span class='attr'>[in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t const <span class='color_p'>ds_id</span> )</span></span> (1)</span>
+<br/>
+<div id="c_28" style="display:none;">
+
+
+<span class='new_sign_lbl'>changed to:</span><br/><span class='new_sign'>AbstractDs::AbstractDs <span class='attr'>[in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t const <span class='color_p'>h5_id</span> )</span></span></span><br/>
+<span class='mangled'>    [symbol: <b>_ZN2H510AbstractDsC1Ei</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'><b>1st</b> parameter <b>ds_id</b> has been renamed to <b>h5_id</b>.</td><td align='left' valign='top'>Renaming of a parameter may indicate a change in its semantic meaning.</td></tr>
+</table><br/>
+</div>
+<br/><a style='font-size:11px;' href='#Top'>to the top</a><br/>
+<a name='Constant_Binary_Problems_Low'></a><h2>Problems with Constants, Low Severity (20)</h2><hr/>
+<span class='h_name'>H5pubconf.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_29')">
+<span class='extendable'>[+]</span> H5_FP_TO_ULLONG_ACCURATE</span>
+<br/>
+<div id="c_29" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_FP_TO_ULLONG_ACCURATE</b> with value <b>1</b> has been removed.</td><td align='left' valign='top'>The value of this constant may no longer be properly handled by new-version library functions.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_30')">
+<span class='extendable'>[+]</span> H5_FP_TO_ULLONG_RIGHT_MAXIMUM</span>
+<br/>
+<div id="c_30" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_FP_TO_ULLONG_RIGHT_MAXIMUM</b> with value <b>1</b> has been removed.</td><td align='left' valign='top'>The value of this constant may no longer be properly handled by new-version library functions.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_31')">
+<span class='extendable'>[+]</span> H5_GETTIMEOFDAY_GIVES_TZ</span>
+<br/>
+<div id="c_31" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_GETTIMEOFDAY_GIVES_TZ</b> with value <b>1</b> has been removed.</td><td align='left' valign='top'>The value of this constant may no longer be properly handled by new-version library functions.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_32')">
+<span class='extendable'>[+]</span> H5_HAVE_FILTER_FLETCHER32</span>
+<br/>
+<div id="c_32" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_HAVE_FILTER_FLETCHER32</b> with value <b>1</b> has been removed.</td><td align='left' valign='top'>The value of this constant may no longer be properly handled by new-version library functions.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_33')">
+<span class='extendable'>[+]</span> H5_HAVE_FILTER_NBIT</span>
+<br/>
+<div id="c_33" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_HAVE_FILTER_NBIT</b> with value <b>1</b> has been removed.</td><td align='left' valign='top'>The value of this constant may no longer be properly handled by new-version library functions.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_34')">
+<span class='extendable'>[+]</span> H5_HAVE_FILTER_SCALEOFFSET</span>
+<br/>
+<div id="c_34" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_HAVE_FILTER_SCALEOFFSET</b> with value <b>1</b> has been removed.</td><td align='left' valign='top'>The value of this constant may no longer be properly handled by new-version library functions.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_35')">
+<span class='extendable'>[+]</span> H5_HAVE_FILTER_SHUFFLE</span>
+<br/>
+<div id="c_35" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_HAVE_FILTER_SHUFFLE</b> with value <b>1</b> has been removed.</td><td align='left' valign='top'>The value of this constant may no longer be properly handled by new-version library functions.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_36')">
+<span class='extendable'>[+]</span> H5_HAVE_STRUCT_TIMEZONE</span>
+<br/>
+<div id="c_36" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_HAVE_STRUCT_TIMEZONE</b> with value <b>1</b> has been removed.</td><td align='left' valign='top'>The value of this constant may no longer be properly handled by new-version library functions.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_37')">
+<span class='extendable'>[+]</span> H5_HAVE_STRUCT_TM_TM_ZONE</span>
+<br/>
+<div id="c_37" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_HAVE_STRUCT_TM_TM_ZONE</b> with value <b>1</b> has been removed.</td><td align='left' valign='top'>The value of this constant may no longer be properly handled by new-version library functions.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_38')">
+<span class='extendable'>[+]</span> H5_HAVE_TM_ZONE</span>
+<br/>
+<div id="c_38" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_HAVE_TM_ZONE</b> with value <b>1</b> has been removed.</td><td align='left' valign='top'>The value of this constant may no longer be properly handled by new-version library functions.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_39')">
+<span class='extendable'>[+]</span> H5_INTEGER_TO_LDOUBLE_ACCURATE</span>
+<br/>
+<div id="c_39" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_INTEGER_TO_LDOUBLE_ACCURATE</b> with value <b>1</b> has been removed.</td><td align='left' valign='top'>The value of this constant may no longer be properly handled by new-version library functions.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_40')">
+<span class='extendable'>[+]</span> H5_LDOUBLE_TO_INTEGER_ACCURATE</span>
+<br/>
+<div id="c_40" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_LDOUBLE_TO_INTEGER_ACCURATE</b> with value <b>1</b> has been removed.</td><td align='left' valign='top'>The value of this constant may no longer be properly handled by new-version library functions.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_41')">
+<span class='extendable'>[+]</span> H5_LDOUBLE_TO_INTEGER_WORKS</span>
+<br/>
+<div id="c_41" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_LDOUBLE_TO_INTEGER_WORKS</b> with value <b>1</b> has been removed.</td><td align='left' valign='top'>The value of this constant may no longer be properly handled by new-version library functions.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_42')">
+<span class='extendable'>[+]</span> H5_LDOUBLE_TO_UINT_ACCURATE</span>
+<br/>
+<div id="c_42" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_LDOUBLE_TO_UINT_ACCURATE</b> with value <b>1</b> has been removed.</td><td align='left' valign='top'>The value of this constant may no longer be properly handled by new-version library functions.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_43')">
+<span class='extendable'>[+]</span> H5_LLONG_TO_FP_CAST_WORKS</span>
+<br/>
+<div id="c_43" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_LLONG_TO_FP_CAST_WORKS</b> with value <b>1</b> has been removed.</td><td align='left' valign='top'>The value of this constant may no longer be properly handled by new-version library functions.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_44')">
+<span class='extendable'>[+]</span> H5_ULLONG_TO_FP_CAST_WORKS</span>
+<br/>
+<div id="c_44" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_ULLONG_TO_FP_CAST_WORKS</b> with value <b>1</b> has been removed.</td><td align='left' valign='top'>The value of this constant may no longer be properly handled by new-version library functions.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_45')">
+<span class='extendable'>[+]</span> H5_ULLONG_TO_LDOUBLE_PRECISION</span>
+<br/>
+<div id="c_45" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_ULLONG_TO_LDOUBLE_PRECISION</b> with value <b>1</b> has been removed.</td><td align='left' valign='top'>The value of this constant may no longer be properly handled by new-version library functions.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_46')">
+<span class='extendable'>[+]</span> H5_ULONG_TO_FLOAT_ACCURATE</span>
+<br/>
+<div id="c_46" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_ULONG_TO_FLOAT_ACCURATE</b> with value <b>1</b> has been removed.</td><td align='left' valign='top'>The value of this constant may no longer be properly handled by new-version library functions.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_47')">
+<span class='extendable'>[+]</span> H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE</span>
+<br/>
+<div id="c_47" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE</b> with value <b>1</b> has been removed.</td><td align='left' valign='top'>The value of this constant may no longer be properly handled by new-version library functions.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_48')">
+<span class='extendable'>[+]</span> H5_VSNPRINTF_WORKS</span>
+<br/>
+<div id="c_48" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_VSNPRINTF_WORKS</b> with value <b>1</b> has been removed.</td><td align='left' valign='top'>The value of this constant may no longer be properly handled by new-version library functions.</td></tr>
+</table><br/></div>
+
+<br/>
+<a style='font-size:11px;' href='#Top'>to the top</a><br/>
+<a name='Other_Binary_Changes'></a><a name='Other_Binary_Changes_In_Symbols'></a><a name='Other_Binary_Changes_In_Interfaces'></a>
+<h2>Other Changes in Symbols (5)</h2><hr/>
+<span class='h_name'>H5ArrayType.h</span>, <span class='lib_name'>libhdf5_cpp.so.9.0.0</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_49')">
+<span class='extendable'>[+]</span> ArrayType::ArrayType <span class='attr'>[in-charge]</span> <span class='sym_p'>( )</span> (1)</span>
+<br/>
+<div id="c_49" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H59ArrayTypeC1Ev</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>This method became <b>public</b>.</td><td align='left' valign='top'>No effect.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_50')">
+<span class='extendable'>[+]</span> ArrayType::ArrayType <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( )</span> (1)</span>
+<br/>
+<div id="c_50" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H59ArrayTypeC2Ev</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>This method became <b>public</b>.</td><td align='left' valign='top'>No effect.</td></tr>
+</table><br/>
+</div>
+<br/><span class='h_name'>H5File.h</span>, <span class='lib_name'>libhdf5_cpp.so.9.0.0</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_51')">
+<span class='extendable'>[+]</span> H5File::getObjCount <span class='sym_p'>( <span class='nowrap'>unsigned int <span class='color_p'>types</span> )</span></span> const (1)</span>
+<br/>
+<div id="c_51" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZNK2H56H5File11getObjCountEj</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The default argument <b>31</b> of <b>1st</b> parameter <b>types</b> has been added.</td><td align='left' valign='top'>No effect.</td></tr>
+</table><br/>
+</div>
+<br/><span class='h_name'>H5VarLenType.h</span>, <span class='lib_name'>libhdf5_cpp.so.9.0.0</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_52')">
+<span class='extendable'>[+]</span> VarLenType::VarLenType <span class='attr'>[in-charge]</span> <span class='sym_p'>( )</span> (1)</span>
+<br/>
+<div id="c_52" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H510VarLenTypeC1Ev</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>This method became <b>public</b>.</td><td align='left' valign='top'>No effect.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_53')">
+<span class='extendable'>[+]</span> VarLenType::VarLenType <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( )</span> (1)</span>
+<br/>
+<div id="c_53" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H510VarLenTypeC2Ev</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>This method became <b>public</b>.</td><td align='left' valign='top'>No effect.</td></tr>
+</table><br/>
+</div>
+<br/><a style='font-size:11px;' href='#Top'>to the top</a><br/>
+<a name='Other_Binary_Changes_In_Constants'></a><h2>Other Changes in Constants (5)</h2><hr/>
+<span class='h_name'>H5FDpublic.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_54')">
+<span class='extendable'>[+]</span> H5FD_FEAT_ALLOCATE_EARLY</span>
+<br/>
+<div id="c_54" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5FD_FEAT_ALLOCATE_EARLY</b> with value <b>0x00000200</b> has been added.</td><td align='left' valign='top'>No effect.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_55')">
+<span class='extendable'>[+]</span> H5FD_FEAT_HAS_MPI</span>
+<br/>
+<div id="c_55" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5FD_FEAT_HAS_MPI</b> with value <b>0x00000100</b> has been added.</td><td align='left' valign='top'>No effect.</td></tr>
+</table><br/></div>
+
+<br/>
+<span class='h_name'>H5PLpublic.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_56')">
+<span class='extendable'>[+]</span> H5PL_ALL_PLUGIN</span>
+<br/>
+<div id="c_56" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5PL_ALL_PLUGIN</b> with value <b>0xFFFF</b> has been added.</td><td align='left' valign='top'>No effect.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_57')">
+<span class='extendable'>[+]</span> H5PL_FILTER_PLUGIN</span>
+<br/>
+<div id="c_57" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5PL_FILTER_PLUGIN</b> with value <b>0x0001</b> has been added.</td><td align='left' valign='top'>No effect.</td></tr>
+</table><br/></div>
+
+<br/>
+<span class='h_name'>H5pubconf.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_58')">
+<span class='extendable'>[+]</span> H5_HAVE_TIMEZONE</span>
+<br/>
+<div id="c_58" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_HAVE_TIMEZONE</b> with value <b>1</b> has been added.</td><td align='left' valign='top'>No effect.</td></tr>
+</table><br/></div>
+
+<br/>
+<a style='font-size:11px;' href='#Top'>to the top</a><br/>
+<a name='Headers'></a><h2>Header Files (75)</h2><hr/>
+<div class='h_list'>
+H5AbstractDs.h<br/>
+H5ACpublic.h<br/>
+H5api_adpt.h<br/>
+H5Apublic.h<br/>
+H5ArrayType.h<br/>
+H5AtomType.h<br/>
+H5Attribute.h<br/>
+H5Classes.h<br/>
+H5CommonFG.h<br/>
+H5CompType.h<br/>
+H5Cpp.h<br/>
+H5CppDoc.h<br/>
+H5Cpublic.h<br/>
+H5DataSet.h<br/>
+H5DataSpace.h<br/>
+H5DataType.h<br/>
+H5DcreatProp.h<br/>
+H5DOpublic.h<br/>
+H5Dpublic.h<br/>
+H5DSpublic.h<br/>
+H5DxferProp.h<br/>
+H5EnumType.h<br/>
+H5Epubgen.h<br/>
+H5Epublic.h<br/>
+H5Exception.h<br/>
+H5f90i.h<br/>
+H5f90i_gen.h<br/>
+H5FaccProp.h<br/>
+H5FcreatProp.h<br/>
+H5FDcore.h<br/>
+H5FDdirect.h<br/>
+H5FDfamily.h<br/>
+H5FDlog.h<br/>
+H5FDmpi.h<br/>
+H5FDmpio.h<br/>
+H5FDmulti.h<br/>
+H5FDpublic.h<br/>
+H5FDsec2.h<br/>
+H5FDstdio.h<br/>
+H5File.h<br/>
+H5FloatType.h<br/>
+H5Fpublic.h<br/>
+H5Gpublic.h<br/>
+H5Group.h<br/>
+H5IdComponent.h<br/>
+H5IMpublic.h<br/>
+H5Include.h<br/>
+H5IntType.h<br/>
+H5Ipublic.h<br/>
+H5Library.h<br/>
+H5Location.h<br/>
+H5Lpublic.h<br/>
+H5LTpublic.h<br/>
+H5MMpublic.h<br/>
+H5Object.h<br/>
+H5Opublic.h<br/>
+H5overflow.h<br/>
+H5PacketTable.h<br/>
+H5PLextern.h<br/>
+H5Ppublic.h<br/>
+H5PredType.h<br/>
+H5PropList.h<br/>
+H5PTpublic.h<br/>
+H5pubconf.h<br/>
+H5public.h<br/>
+H5Rpublic.h<br/>
+H5Spublic.h<br/>
+H5StrType.h<br/>
+H5TBpublic.h<br/>
+H5Tpublic.h<br/>
+H5VarLenType.h<br/>
+H5version.h<br/>
+H5Zpublic.h<br/>
+hdf5.h<br/>
+hdf5_hl.h<br/>
+</div>
+<br/><a style='font-size:11px;' href='#Top'>to the top</a><br/>
+<a name='Libs'></a><h2>Shared Libraries (6)</h2><hr/>
+<div class='lib_list'>
+libhdf5.so.9.0.0<br/>
+libhdf5_cpp.so.9.0.0<br/>
+libhdf5_fortran.so.9.0.0<br/>
+libhdf5_hl.so.9.0.0<br/>
+libhdf5_hl_cpp.so.9.0.0<br/>
+libhdf5hl_fortran.so.9.0.0<br/>
+</div>
+<br/><a style='font-size:11px;' href='#Top'>to the top</a><br/>
+<br/><br/><br/></div><div id='SourceTab' class='tab'>
+<h2>Test Info</h2><hr/>
+<table class='summary'>
+<tr><th>Library Name</th><td>hdf5</td></tr>
+<tr><th>Version #1</th><td>1.8.14</td></tr>
+<tr><th>Version #2</th><td>1.8.15</td></tr>
+<tr><th>CPU Type</th><td>x86</td></tr>
+<tr><th>GCC Version</th><td>4.1.2</td></tr>
+<tr><th>Subject</th><td width='150px'>Source Compatibility</td></tr>
+</table>
+<h2>Test Results</h2><hr/>
+<table class='summary'><tr><th>Total Header Files</th><td><a href='#Headers' style='color:Blue;'>75</a></td></tr>
+<tr><th>Total Shared Libraries</th><td><a href='#Libs' style='color:Blue;'>6</a></td></tr>
+<tr><th>Total Symbols / Types</th><td>1811 / 540</td></tr>
+<tr><th>Verdict</th><td><span style='color:Red;'><b>Incompatible<br/>(4.5%)</b></span></td></tr>
+</table>
+<h2>Problem Summary</h2><hr/>
+<table class='summary'><tr><th></th><th style='text-align:center;'>Severity</th><th style='text-align:center;'>Count</th></tr><tr><th>Added Symbols</th><td>-</td><td class='new'><a href='#Source_Added' style='color:Blue;'>17</a></td></tr>
+<tr><th>Removed Symbols</th><td>High</td><td class='failed'><a href='#Source_Removed' style='color:Blue;'>9</a></td></tr>
+<tr><th rowspan='3'>Problems with<br/>Data Types</th><td>High</td><td class='failed'><a href='#Type_Source_Problems_High' style='color:Blue;'>2</a></td></tr>
+<tr><td>Medium</td><td>0</td></tr>
+<tr><td>Low</td><td>0</td></tr>
+<tr><th rowspan='3'>Problems with<br/>Symbols</th><td>High</td><td>0</td></tr>
+<tr><td>Medium</td><td>0</td></tr>
+<tr><td>Low</td><td>0</td></tr>
+<tr><th>Problems with<br/>Constants</th><td>Low</td><td class='warning'><a href='#Constant_Source_Problems_Low' style='color:Blue;'>26</a></td></tr>
+<tr><th>Other Changes<br/>in Symbols</th><td>-</td><td class='passed'><a href='#Other_Source_Changes_In_Symbols' style='color:Blue;'>7</a></td></tr>
+<tr><th>Other Changes<br/>in Constants</th><td>-</td><td class='passed'><a href='#Other_Source_Changes_In_Constants' style='color:Blue;'>13</a></td></tr>
+</table>
+
+<a name='Source_Added'></a><h2>Added Symbols (17)</h2><hr/>
+<span class='h_name'>H5Attribute.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_59')">
+Attribute::getSpace <span class='sym_p'>( )</span> const</span>
+<br/>
+<div id="c_59" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZNK2H59Attribute8getSpaceEv</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_60')">
+f_Attribute_setId <span class='sym_p'>( <span class='nowrap'>Attribute* <span class='color_p'>attr</span>,</span> <span class='nowrap'>hid_t <span class='color_p'>new_id</span> )</span></span></span>
+<br/>
+<div id="c_60" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H517f_Attribute_setIdEPNS_9AttributeEi</b>]</span><br/><br/></div>
+
+<br/>
+<span class='h_name'>H5CommonFG.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_61')">
+CommonFG::childObjVersion <span class='sym_p'>( <span class='nowrap'>char const* <span class='color_p'>objname</span> )</span></span> const</span>
+<br/>
+<div id="c_61" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZNK2H58CommonFG15childObjVersionEPKc</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_62')">
+CommonFG::childObjVersion <span class='sym_p'>( <span class='nowrap'>int const <span class='color_p'>H5std_string</span> )</span></span> const</span>
+<br/>
+<div id="c_62" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZNK2H58CommonFG15childObjVersionEi</b>]</span><br/><br/></div>
+
+<br/>
+<span class='h_name'>H5DataSet.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_63')">
+f_DataSet_setId <span class='sym_p'>( <span class='nowrap'>DataSet* <span class='color_p'>dset</span>,</span> <span class='nowrap'>hid_t <span class='color_p'>new_id</span> )</span></span></span>
+<br/>
+<div id="c_63" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H515f_DataSet_setIdEPNS_7DataSetEi</b>]</span><br/><br/></div>
+
+<br/>
+<span class='h_name'>H5DataSpace.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_64')">
+f_DataSpace_setId <span class='sym_p'>( DataSpace* <span class='color_p'>dspace</span>, <span class='nowrap'>hid_t <span class='color_p'>new_id</span> )</span></span></span>
+<br/>
+<div id="c_64" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H517f_DataSpace_setIdEPNS_9DataSpaceEi</b>]</span><br/><br/></div>
+
+<br/>
+<span class='h_name'>H5DataType.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_65')">
+DataType::DataType <span class='attr'>[in-charge]</span> <span class='sym_p'>( <span class='nowrap'>PredType const& <span class='color_p'>pred_type</span> )</span></span></span>
+<br/>
+<div id="c_65" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H58DataTypeC1ERKNS_8PredTypeE</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_66')">
+DataType::DataType <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( <span class='nowrap'>PredType const& <span class='color_p'>pred_type</span> )</span></span></span>
+<br/>
+<div id="c_66" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H58DataTypeC2ERKNS_8PredTypeE</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_67')">
+f_DataType_setId <span class='sym_p'>( <span class='nowrap'>DataType* <span class='color_p'>dtype</span>,</span> <span class='nowrap'>hid_t <span class='color_p'>new_id</span> )</span></span></span>
+<br/>
+<div id="c_67" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H516f_DataType_setIdEPNS_8DataTypeEi</b>]</span><br/><br/></div>
+
+<br/>
+<span class='h_name'>H5FaccProp.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_68')">
+FileAccPropList::getLibverBounds <span class='sym_p'>( H5F_libver_t& <span class='color_p'>libver_low</span>, <span class='nowrap'>H5F_libver_t& <span class='color_p'>libver_high</span> )</span></span> const</span>
+<br/>
+<div id="c_68" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZNK2H515FileAccPropList15getLibverBoundsER12H5F_libver_tS2_</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_69')">
+FileAccPropList::setLibverBounds <span class='sym_p'>( H5F_libver_t <span class='color_p'>libver_low</span>, <span class='nowrap'>H5F_libver_t <span class='color_p'>libver_high</span> )</span></span> const</span>
+<br/>
+<div id="c_69" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZNK2H515FileAccPropList15setLibverBoundsE12H5F_libver_tS1_</b>]</span><br/><br/></div>
+
+<br/>
+<span class='h_name'>H5File.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_70')">
+H5File::H5File <span class='attr'>[in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t <span class='color_p'>existing_id</span> )</span></span></span>
+<br/>
+<div id="c_70" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H56H5FileC1Ei</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_71')">
+H5File::H5File <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t <span class='color_p'>existing_id</span> )</span></span></span>
+<br/>
+<div id="c_71" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H56H5FileC2Ei</b>]</span><br/><br/></div>
+
+<br/>
+<span class='h_name'>H5PLpublic.h</span><br/>
+<span class="iname">H5PLget_loading_state <span class='sym_p'>( <span class='nowrap'>unsigned int* <span class='color_p'>plugin_type</span> )</span></span></span><br/>
+<span class="iname">H5PLset_loading_state <span class='sym_p'>( <span class='nowrap'>unsigned int <span class='color_p'>plugin_type</span> )</span></span></span><br/>
+<br/>
+<span class='h_name'>H5public.h</span><br/>
+<span class="iname">H5allocate_memory <span class='sym_p'>( <span class='nowrap'>size_t <span class='color_p'>size</span>,</span> <span class='nowrap'>hbool_t <span class='color_p'>clear</span> )</span></span></span><br/>
+<span class="iname">H5resize_memory <span class='sym_p'>( <span class='nowrap'>void* <span class='color_p'>mem</span>,</span> <span class='nowrap'>size_t <span class='color_p'>size</span> )</span></span></span><br/>
+<br/>
+<a style='font-size:11px;' href='#Top'>to the top</a><br/>
+<a name='Source_Removed'></a><a name='Source_Withdrawn'></a><h2>Removed Symbols (9)</h2><hr/>
+<span class='h_name'>H5AbstractDs.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_72')">
+AbstractDs::AbstractDs <span class='attr'>[in-charge]</span> <span class='sym_p'>( <span class='nowrap'>AbstractDs const& <span class='color_p'>original</span> )</span></span></span>
+<br/>
+<div id="c_72" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H510AbstractDsC1ERKS0_</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_73')">
+AbstractDs::AbstractDs <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( <span class='nowrap'>AbstractDs const& <span class='color_p'>original</span> )</span></span></span>
+<br/>
+<div id="c_73" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H510AbstractDsC2ERKS0_</b>]</span><br/><br/></div>
+
+<br/>
+<span class='h_name'>H5File.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_74')">
+H5File::getObjCount <span class='sym_p'>( )</span> const</span>
+<br/>
+<div id="c_74" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZNK2H56H5File11getObjCountEv</b>]</span><br/><br/></div>
+
+<br/>
+<span class='h_name'>H5IdComponent.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_75')">
+IdComponent::IdComponent <span class='attr'>[in-charge]</span> <span class='sym_p'>( <span class='nowrap'>IdComponent const& <span class='color_p'>original</span> )</span></span></span>
+<br/>
+<div id="c_75" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H511IdComponentC1ERKS0_</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_76')">
+IdComponent::IdComponent <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( <span class='nowrap'>IdComponent const& <span class='color_p'>original</span> )</span></span></span>
+<br/>
+<div id="c_76" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H511IdComponentC2ERKS0_</b>]</span><br/><br/></div>
+
+<br/>
+<span class='h_name'>H5Location.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_77')">
+H5Location::H5Location <span class='attr'>[in-charge]</span> <span class='sym_p'>( <span class='nowrap'>H5Location const& <span class='color_p'>original</span> )</span></span></span>
+<br/>
+<div id="c_77" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H510H5LocationC1ERKS0_</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_78')">
+H5Location::H5Location <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( <span class='nowrap'>H5Location const& <span class='color_p'>original</span> )</span></span></span>
+<br/>
+<div id="c_78" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H510H5LocationC2ERKS0_</b>]</span><br/><br/></div>
+
+<br/>
+<span class='h_name'>H5Object.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_79')">
+H5Object::H5Object <span class='attr'>[in-charge]</span> <span class='sym_p'>( <span class='nowrap'>H5Object const& <span class='color_p'>original</span> )</span></span></span>
+<br/>
+<div id="c_79" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H58H5ObjectC1ERKS0_</b>]</span><br/><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_80')">
+H5Object::H5Object <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( <span class='nowrap'>H5Object const& <span class='color_p'>original</span> )</span></span></span>
+<br/>
+<div id="c_80" style="display:none;">
+<span class='mangled'>[symbol: <b>_ZN2H58H5ObjectC2ERKS0_</b>]</span><br/><br/></div>
+
+<br/>
+<a style='font-size:11px;' href='#Top'>to the top</a><br/>
+<a name='High_Risk_Source_Problems'></a><a name='Type_Source_Problems_High'></a>
+<h2>Problems with Data Types, High Severity (2)</h2><hr/>
+<span class='h_name'>H5AbstractDs.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_81')">
+<span class='extendable'>[+]</span> <span class='ttype'>class</span> AbstractDs (1)</span>
+<br/>
+<div id="c_81" style="display:none;">
+<table class='ptable'><tr>
+<th width='2%'></th><th width='47%'>Change</th>
+<th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Pure virtual method <span class='iname_b'>AbstractDs::getSpace <span class='sym_p'>( )</span> const</span> has been added to this class.</td><td align='left' valign='top'>Recompilation of a client program may be broken with the error message: cannot allocate an object of abstract type <b>AbstractDs</b> because the following virtual functions are pure within <b>AbstractDs</b>: virtual <span class='iname_b'>AbstractD [...]
+</table>
+<span class="section_affected" onclick="javascript:showContent(this, 'c_82')">
+[+] affected symbols (13)</span>
+<div id="c_82" style="display:none;">
+<div class='affected'><span class='iname_a'>AbstractDs::AbstractDs <span class='attr'>[in-charge]</span> <span class='sym_p'>( )</span></span><br/><div class='affect'>This constructor is from 'AbstractDs' class.</div>
+<span class='iname_a'>AbstractDs::AbstractDs <span class='attr'>[in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t const <span class='param'>ds_id</span> )</span></span></span><br/><div class='affect'>This constructor is from 'AbstractDs' class.</div>
+<span class='iname_a'>AbstractDs::getArrayType <span class='sym_p'>( )</span> const</span><br/><div class='affect'>This method is from 'AbstractDs' class.</div>
+<span class='iname_a'>AbstractDs::getCompType <span class='sym_p'>( )</span> const</span><br/><div class='affect'>This method is from 'AbstractDs' class.</div>
+<span class='iname_a'>AbstractDs::getEnumType <span class='sym_p'>( )</span> const</span><br/><div class='affect'>This method is from 'AbstractDs' class.</div>
+<span class='iname_a'>AbstractDs::getFloatType <span class='sym_p'>( )</span> const</span><br/><div class='affect'>This method is from 'AbstractDs' class.</div>
+<span class='iname_a'>AbstractDs::getInMemDataSize <span class='sym_p'>( )</span> const</span><br/><div class='affect'>This method is from 'AbstractDs' class.</div>
+<span class='iname_a'>AbstractDs::getIntType <span class='sym_p'>( )</span> const</span><br/><div class='affect'>This method is from 'AbstractDs' class.</div>
+<span class='iname_a'>AbstractDs::getStorageSize <span class='sym_p'>( )</span> const</span><br/><div class='affect'>This method is from 'AbstractDs' class.</div>
+<span class='iname_a'>AbstractDs::getStrType <span class='sym_p'>( )</span> const</span><br/><div class='affect'>This method is from 'AbstractDs' class.</div>
+<span class='iname_a'>AbstractDs::getTypeClass <span class='sym_p'>( )</span> const</span><br/><div class='affect'>This method is from 'AbstractDs' class.</div>
+<span class='iname_a'>AbstractDs::getVarLenType <span class='sym_p'>( )</span> const</span><br/><div class='affect'>This method is from 'AbstractDs' class.</div>
+<span class='iname_a'>AbstractDs::~AbstractDs <span class='attr'>[in-charge]</span> <span class='sym_p'>( )</span></span><br/><div class='affect'>This method is from 'AbstractDs' class.</div>
+</div></div>
+<br/><br/></div>
+
+<br/><span class='h_name'>H5CommonFG.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_83')">
+<span class='extendable'>[+]</span> <span class='ttype'>class</span> CommonFG (1)</span>
+<br/>
+<div id="c_83" style="display:none;">
+<table class='ptable'><tr>
+<th width='2%'></th><th width='47%'>Change</th>
+<th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>Pure virtual method <span class='iname_b'>CommonFG::p_setId <span class='sym_p'>( <span class='nowrap'>hid_t const )</span></span></span> has been added to this class.</td><td align='left' valign='top'>Recompilation of a client program may be broken with the error message: cannot allocate an object of abstract type <b>CommonFG</b> because the following virtual functions are pure within <b>CommonFG</b>: virtual <spa [...]
+</table>
+<span class="section_affected" onclick="javascript:showContent(this, 'c_84')">
+[+] affected symbols (53)</span>
+<div id="c_84" style="display:none;">
+<div class='affected'><span class='iname_a'>CommonFG::childObjType <span class='sym_p'>( <span class='nowrap'>char const* <span class='param'>objname</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::childObjType <span class='sym_p'>( <span class='nowrap'>int const <span class='param'>H5std_string</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::childObjType <span class='sym_p'>( <span class='nowrap'>hsize_t <span class='param'>index</span>,</span> H5_index_t <span class='param'>index_type</span>, enum H5_iter_order_t <span class='param'>order</span>, <span class='nowrap'>char const* <span class='param'>objname</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::CommonFG <span class='attr'>[in-charge]</span> <span class='sym_p'>( )</span></span><br/><div class='affect'>This constructor is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::createDataSet <span class='sym_p'>( <span class='nowrap'>char const* <span class='param'>name</span>,</span> DataType const& <span class='param'>data_type</span>, DataSpace const& <span class='param'>data_space</span>, <span class='nowrap'>DSetCreatPropList const& <span class='param'>create_plist</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::createDataSet <span class='sym_p'>( <span class='nowrap'>int const <span class='param'>H5std_string</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::createGroup <span class='sym_p'>( <span class='nowrap'>char const* <span class='param'>name</span>,</span> <span class='nowrap'>size_t <span class='param'>size_hint</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::createGroup <span class='sym_p'>( <span class='nowrap'>int const <span class='param'>H5std_string</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::getLocId <span class='sym_p'>( )</span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::getNumObjs <span class='sym_p'>( )</span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::getObjinfo <span class='sym_p'>( <span class='nowrap'>char const* <span class='param'>name</span>,</span> <span class='nowrap'>H5G_stat_t& <span class='param'>statbuf</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::getObjinfo <span class='sym_p'>( <span class='nowrap'>char const* <span class='param'>name</span>,</span> hbool_t <span class='param'>follow_link</span>, <span class='nowrap'>H5G_stat_t& <span class='param'>statbuf</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::getObjinfo <span class='sym_p'>( <span class='nowrap'>int const <span class='param'>H5std_string</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::getObjnameByIdx <span class='sym_p'>( <span class='nowrap'>hsize_t <span class='param'>idx</span>,</span> <span class='nowrap'>char* <span class='param'>name</span>,</span> <span class='nowrap'>size_t <span class='param'>size</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::getObjnameByIdx <span class='sym_p'>( <span class='nowrap'>hsize_t <span class='param'>idx</span>,</span> <span class='nowrap'>int& <span class='param'>name</span>,</span> <span class='nowrap'>size_t <span class='param'>size</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::getObjTypeByIdx <span class='sym_p'>( <span class='nowrap'>hsize_t <span class='param'>idx</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::getObjTypeByIdx <span class='sym_p'>( <span class='nowrap'>hsize_t <span class='param'>idx</span>,</span> <span class='nowrap'>char* <span class='param'>type_name</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::getObjTypeByIdx <span class='sym_p'>( <span class='nowrap'>hsize_t <span class='param'>idx</span>,</span> <span class='nowrap'>int& <span class='param'>type_name</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::iterateElems <span class='sym_p'>( <span class='nowrap'>char const* <span class='param'>name</span>,</span> <span class='nowrap'>int* <span class='param'>idx</span>,</span> <span class='nowrap'>H5G_iterate_t <span class='param'>op</span>,</span> <span class='nowrap'>void* <span class='param'>op_data</span> )</span></span></span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::iterateElems <span class='sym_p'>( <span class='nowrap'>int const <span class='param'>H5std_string</span> )</span></span></span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::link <span class='sym_p'>( enum H5L_type_t <span class='param'>link_type</span>, char const* <span class='param'>curr_name</span>, <span class='nowrap'>char const* <span class='param'>new_name</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::link <span class='sym_p'>( enum H5L_type_t <span class='param'>link_type</span>, <span class='nowrap'>int const <span class='param'>H5std_string</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::mount <span class='sym_p'>( <span class='nowrap'>char const* <span class='param'>name</span>,</span> H5File const& <span class='param'>child</span>, <span class='nowrap'>PropList const& <span class='param'>plist</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::mount <span class='sym_p'>( <span class='nowrap'>char const* <span class='param'>name</span>,</span> H5File& <span class='param'>child</span>, <span class='nowrap'>PropList& <span class='param'>plist</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::mount <span class='sym_p'>( <span class='nowrap'>int const <span class='param'>H5std_string</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::move <span class='sym_p'>( <span class='nowrap'>char const* <span class='param'>src</span>,</span> <span class='nowrap'>char const* <span class='param'>dst</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::move <span class='sym_p'>( <span class='nowrap'>int const <span class='param'>H5std_string</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::openArrayType <span class='sym_p'>( <span class='nowrap'>char const* <span class='param'>name</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::openArrayType <span class='sym_p'>( <span class='nowrap'>int const <span class='param'>H5std_string</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::openCompType <span class='sym_p'>( <span class='nowrap'>char const* <span class='param'>name</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::openCompType <span class='sym_p'>( <span class='nowrap'>int const <span class='param'>H5std_string</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::openDataSet <span class='sym_p'>( <span class='nowrap'>char const* <span class='param'>name</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::openDataSet <span class='sym_p'>( <span class='nowrap'>int const <span class='param'>H5std_string</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::openDataType <span class='sym_p'>( <span class='nowrap'>char const* <span class='param'>name</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::openDataType <span class='sym_p'>( <span class='nowrap'>int const <span class='param'>H5std_string</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::openEnumType <span class='sym_p'>( <span class='nowrap'>char const* <span class='param'>name</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::openEnumType <span class='sym_p'>( <span class='nowrap'>int const <span class='param'>H5std_string</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::openFloatType <span class='sym_p'>( <span class='nowrap'>char const* <span class='param'>name</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::openFloatType <span class='sym_p'>( <span class='nowrap'>int const <span class='param'>H5std_string</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::openGroup <span class='sym_p'>( <span class='nowrap'>char const* <span class='param'>name</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::openGroup <span class='sym_p'>( <span class='nowrap'>int const <span class='param'>H5std_string</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::openIntType <span class='sym_p'>( <span class='nowrap'>char const* <span class='param'>name</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::openIntType <span class='sym_p'>( <span class='nowrap'>int const <span class='param'>H5std_string</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::openStrType <span class='sym_p'>( <span class='nowrap'>char const* <span class='param'>name</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::openStrType <span class='sym_p'>( <span class='nowrap'>int const <span class='param'>H5std_string</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::openVarLenType <span class='sym_p'>( <span class='nowrap'>char const* <span class='param'>name</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::openVarLenType <span class='sym_p'>( <span class='nowrap'>int const <span class='param'>H5std_string</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::throwException <span class='sym_p'>( <span class='nowrap'>int const <span class='param'>H5std_string</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::unlink <span class='sym_p'>( <span class='nowrap'>char const* <span class='param'>name</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::unlink <span class='sym_p'>( <span class='nowrap'>int const <span class='param'>H5std_string</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::unmount <span class='sym_p'>( <span class='nowrap'>char const* <span class='param'>name</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::unmount <span class='sym_p'>( <span class='nowrap'>int const <span class='param'>H5std_string</span> )</span></span> const</span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+<span class='iname_a'>CommonFG::~CommonFG <span class='attr'>[in-charge]</span> <span class='sym_p'>( )</span></span><br/><div class='affect'>This method is from 'CommonFG' class.</div>
+</div></div>
+<br/><br/></div>
+
+<br/><a style='font-size:11px;' href='#Top'>to the top</a><br/>
+<a name='Low_Risk_Source_Problems'></a><a name='Constant_Source_Problems_Low'></a><h2>Problems with Constants, Low Severity (26)</h2><hr/>
+<span class='h_name'>H5pubconf.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_85')">
+<span class='extendable'>[+]</span> H5_DEFAULT_VFD</span>
+<br/>
+<div id="c_85" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_DEFAULT_VFD</b> with value <b>(H5FD_sec2_init())</b> has been removed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_86')">
+<span class='extendable'>[+]</span> H5_FP_TO_ULLONG_ACCURATE</span>
+<br/>
+<div id="c_86" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_FP_TO_ULLONG_ACCURATE</b> with value <b>1</b> has been removed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_87')">
+<span class='extendable'>[+]</span> H5_FP_TO_ULLONG_RIGHT_MAXIMUM</span>
+<br/>
+<div id="c_87" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_FP_TO_ULLONG_RIGHT_MAXIMUM</b> with value <b>1</b> has been removed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_88')">
+<span class='extendable'>[+]</span> H5_GETTIMEOFDAY_GIVES_TZ</span>
+<br/>
+<div id="c_88" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_GETTIMEOFDAY_GIVES_TZ</b> with value <b>1</b> has been removed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_89')">
+<span class='extendable'>[+]</span> H5_HAVE_FILTER_FLETCHER32</span>
+<br/>
+<div id="c_89" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_HAVE_FILTER_FLETCHER32</b> with value <b>1</b> has been removed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_90')">
+<span class='extendable'>[+]</span> H5_HAVE_FILTER_NBIT</span>
+<br/>
+<div id="c_90" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_HAVE_FILTER_NBIT</b> with value <b>1</b> has been removed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_91')">
+<span class='extendable'>[+]</span> H5_HAVE_FILTER_SCALEOFFSET</span>
+<br/>
+<div id="c_91" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_HAVE_FILTER_SCALEOFFSET</b> with value <b>1</b> has been removed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_92')">
+<span class='extendable'>[+]</span> H5_HAVE_FILTER_SHUFFLE</span>
+<br/>
+<div id="c_92" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_HAVE_FILTER_SHUFFLE</b> with value <b>1</b> has been removed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_93')">
+<span class='extendable'>[+]</span> H5_HAVE_STRUCT_TIMEZONE</span>
+<br/>
+<div id="c_93" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_HAVE_STRUCT_TIMEZONE</b> with value <b>1</b> has been removed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_94')">
+<span class='extendable'>[+]</span> H5_HAVE_STRUCT_TM_TM_ZONE</span>
+<br/>
+<div id="c_94" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_HAVE_STRUCT_TM_TM_ZONE</b> with value <b>1</b> has been removed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_95')">
+<span class='extendable'>[+]</span> H5_HAVE_TM_ZONE</span>
+<br/>
+<div id="c_95" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_HAVE_TM_ZONE</b> with value <b>1</b> has been removed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_96')">
+<span class='extendable'>[+]</span> H5_INTEGER_TO_LDOUBLE_ACCURATE</span>
+<br/>
+<div id="c_96" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_INTEGER_TO_LDOUBLE_ACCURATE</b> with value <b>1</b> has been removed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_97')">
+<span class='extendable'>[+]</span> H5_LDOUBLE_TO_INTEGER_ACCURATE</span>
+<br/>
+<div id="c_97" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_LDOUBLE_TO_INTEGER_ACCURATE</b> with value <b>1</b> has been removed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_98')">
+<span class='extendable'>[+]</span> H5_LDOUBLE_TO_INTEGER_WORKS</span>
+<br/>
+<div id="c_98" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_LDOUBLE_TO_INTEGER_WORKS</b> with value <b>1</b> has been removed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_99')">
+<span class='extendable'>[+]</span> H5_LDOUBLE_TO_UINT_ACCURATE</span>
+<br/>
+<div id="c_99" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_LDOUBLE_TO_UINT_ACCURATE</b> with value <b>1</b> has been removed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_100')">
+<span class='extendable'>[+]</span> H5_LLONG_TO_FP_CAST_WORKS</span>
+<br/>
+<div id="c_100" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_LLONG_TO_FP_CAST_WORKS</b> with value <b>1</b> has been removed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_101')">
+<span class='extendable'>[+]</span> H5_PACKAGE_STRING</span>
+<br/>
+<div id="c_101" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The value of constant <b>H5_PACKAGE_STRING</b> has been changed from <span class='value'>"HDF5 1.8.14"</span> to <span class='value'>"HDF5 1.8.15"</span>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_102')">
+<span class='extendable'>[+]</span> H5_PACKAGE_VERSION</span>
+<br/>
+<div id="c_102" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The value of constant <b>H5_PACKAGE_VERSION</b> has been changed from <b>"1.8.14"</b> to <b>"1.8.15"</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_103')">
+<span class='extendable'>[+]</span> H5_ULLONG_TO_FP_CAST_WORKS</span>
+<br/>
+<div id="c_103" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_ULLONG_TO_FP_CAST_WORKS</b> with value <b>1</b> has been removed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_104')">
+<span class='extendable'>[+]</span> H5_ULLONG_TO_LDOUBLE_PRECISION</span>
+<br/>
+<div id="c_104" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_ULLONG_TO_LDOUBLE_PRECISION</b> with value <b>1</b> has been removed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_105')">
+<span class='extendable'>[+]</span> H5_ULONG_TO_FLOAT_ACCURATE</span>
+<br/>
+<div id="c_105" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_ULONG_TO_FLOAT_ACCURATE</b> with value <b>1</b> has been removed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_106')">
+<span class='extendable'>[+]</span> H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE</span>
+<br/>
+<div id="c_106" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE</b> with value <b>1</b> has been removed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_107')">
+<span class='extendable'>[+]</span> H5_VERSION</span>
+<br/>
+<div id="c_107" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The value of constant <b>H5_VERSION</b> has been changed from <b>"1.8.14"</b> to <b>"1.8.15"</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_108')">
+<span class='extendable'>[+]</span> H5_VSNPRINTF_WORKS</span>
+<br/>
+<div id="c_108" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_VSNPRINTF_WORKS</b> with value <b>1</b> has been removed.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/></div>
+
+<br/>
+<span class='h_name'>H5public.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_109')">
+<span class='extendable'>[+]</span> H5_VERS_INFO</span>
+<br/>
+<div id="c_109" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The value of constant <b>H5_VERS_INFO</b> has been changed from <span class='value'>"HDF5 library version: 1.8.14"</span> to <span class='value'>"HDF5 library version: 1.8.15"</span>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_110')">
+<span class='extendable'>[+]</span> H5_VERS_RELEASE</span>
+<br/>
+<div id="c_110" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The value of constant <b>H5_VERS_RELEASE</b> has been changed from <b>14</b> to <b>15</b>.</td><td align='left' valign='top'>Recompilation of a client program may be broken.</td></tr>
+</table><br/></div>
+
+<br/>
+<a style='font-size:11px;' href='#Top'>to the top</a><br/>
+<a name='Other_Source_Changes'></a><a name='Other_Source_Changes_In_Symbols'></a><a name='Other_Source_Changes_In_Interfaces'></a>
+<h2>Other Changes in Symbols (7)</h2><hr/>
+<span class='h_name'>H5AbstractDs.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_111')">
+<span class='extendable'>[+]</span> AbstractDs::AbstractDs <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t const <span class='color_p'>ds_id</span> )</span></span> (1)</span>
+<br/>
+<div id="c_111" style="display:none;">
+
+
+<span class='new_sign_lbl'>changed to:</span><br/><span class='new_sign'>AbstractDs::AbstractDs <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t const <span class='color_p'>h5_id</span> )</span></span></span><br/>
+<span class='mangled'>    [symbol: <b>_ZN2H510AbstractDsC2Ei</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'><b>1st</b> parameter <b>ds_id</b> has been renamed to <b>h5_id</b>.</td><td align='left' valign='top'>No effect.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_112')">
+<span class='extendable'>[+]</span> AbstractDs::AbstractDs <span class='attr'>[in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t const <span class='color_p'>ds_id</span> )</span></span> (1)</span>
+<br/>
+<div id="c_112" style="display:none;">
+
+
+<span class='new_sign_lbl'>changed to:</span><br/><span class='new_sign'>AbstractDs::AbstractDs <span class='attr'>[in-charge]</span> <span class='sym_p'>( <span class='nowrap'>hid_t const <span class='color_p'>h5_id</span> )</span></span></span><br/>
+<span class='mangled'>    [symbol: <b>_ZN2H510AbstractDsC1Ei</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'><b>1st</b> parameter <b>ds_id</b> has been renamed to <b>h5_id</b>.</td><td align='left' valign='top'>No effect.</td></tr>
+</table><br/>
+</div>
+<br/><span class='h_name'>H5ArrayType.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_113')">
+<span class='extendable'>[+]</span> ArrayType::ArrayType <span class='attr'>[in-charge]</span> <span class='sym_p'>( )</span> (1)</span>
+<br/>
+<div id="c_113" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H59ArrayTypeC1Ev</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>This method became <b>public</b>.</td><td align='left' valign='top'>No effect.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_114')">
+<span class='extendable'>[+]</span> ArrayType::ArrayType <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( )</span> (1)</span>
+<br/>
+<div id="c_114" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H59ArrayTypeC2Ev</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>This method became <b>public</b>.</td><td align='left' valign='top'>No effect.</td></tr>
+</table><br/>
+</div>
+<br/><span class='h_name'>H5File.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_115')">
+<span class='extendable'>[+]</span> H5File::getObjCount <span class='sym_p'>( <span class='nowrap'>unsigned int <span class='color_p'>types</span> )</span></span> const (1)</span>
+<br/>
+<div id="c_115" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZNK2H56H5File11getObjCountEj</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The default argument <b>31</b> of <b>1st</b> parameter <b>types</b> has been added.</td><td align='left' valign='top'>No effect.</td></tr>
+</table><br/>
+</div>
+<br/><span class='h_name'>H5VarLenType.h</span><br/>
+<span class='ns'>namespace <b>H5</b></span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_116')">
+<span class='extendable'>[+]</span> VarLenType::VarLenType <span class='attr'>[in-charge]</span> <span class='sym_p'>( )</span> (1)</span>
+<br/>
+<div id="c_116" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H510VarLenTypeC1Ev</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>This method became <b>public</b>.</td><td align='left' valign='top'>No effect.</td></tr>
+</table><br/>
+</div>
+<span class="section" onclick="javascript:showContent(this, 'c_117')">
+<span class='extendable'>[+]</span> VarLenType::VarLenType <span class='attr'>[not-in-charge]</span> <span class='sym_p'>( )</span> (1)</span>
+<br/>
+<div id="c_117" style="display:none;">
+
+<span class='mangled'>    [symbol: <b>_ZN2H510VarLenTypeC2Ev</b>]</span><br/>
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>This method became <b>public</b>.</td><td align='left' valign='top'>No effect.</td></tr>
+</table><br/>
+</div>
+<br/><a style='font-size:11px;' href='#Top'>to the top</a><br/>
+<a name='Other_Source_Changes_In_Constants'></a><h2>Other Changes in Constants (13)</h2><hr/>
+<span class='h_name'>H5api_adpt.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_118')">
+<span class='extendable'>[+]</span> H5_DLLCPPVAR</span>
+<br/>
+<div id="c_118" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_DLLCPPVAR</b> with value <b>extern</b> has been added.</td><td align='left' valign='top'>No effect.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_119')">
+<span class='extendable'>[+]</span> H5_HLCPPDLLVAR</span>
+<br/>
+<div id="c_119" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_HLCPPDLLVAR</b> with value <b>extern</b> has been added.</td><td align='left' valign='top'>No effect.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_120')">
+<span class='extendable'>[+]</span> H5_HLDLLVAR</span>
+<br/>
+<div id="c_120" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_HLDLLVAR</b> with value <b>extern</b> has been added.</td><td align='left' valign='top'>No effect.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_121')">
+<span class='extendable'>[+]</span> HDF5_HL_F90CSTUBDLLVAR</span>
+<br/>
+<div id="c_121" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>HDF5_HL_F90CSTUBDLLVAR</b> with value <b>extern</b> has been added.</td><td align='left' valign='top'>No effect.</td></tr>
+</table><br/></div>
+
+<br/>
+<span class='h_name'>H5f90i_gen.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_122')">
+<span class='extendable'>[+]</span> c_hsize_t_8</span>
+<br/>
+<div id="c_122" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>c_hsize_t_8</b> with value <b>hsize_t</b> has been added.</td><td align='left' valign='top'>No effect.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_123')">
+<span class='extendable'>[+]</span> c_size_t_4</span>
+<br/>
+<div id="c_123" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>c_size_t_4</b> with value <b>size_t</b> has been added.</td><td align='left' valign='top'>No effect.</td></tr>
+</table><br/></div>
+
+<br/>
+<span class='h_name'>H5FDpublic.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_124')">
+<span class='extendable'>[+]</span> H5FD_FEAT_ALLOCATE_EARLY</span>
+<br/>
+<div id="c_124" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5FD_FEAT_ALLOCATE_EARLY</b> with value <b>0x00000200</b> has been added.</td><td align='left' valign='top'>No effect.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_125')">
+<span class='extendable'>[+]</span> H5FD_FEAT_HAS_MPI</span>
+<br/>
+<div id="c_125" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5FD_FEAT_HAS_MPI</b> with value <b>0x00000100</b> has been added.</td><td align='left' valign='top'>No effect.</td></tr>
+</table><br/></div>
+
+<br/>
+<span class='h_name'>H5Include.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_126')">
+<span class='extendable'>[+]</span> H5O_VERSION_1</span>
+<br/>
+<div id="c_126" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5O_VERSION_1</b> with value <b>1</b> has been added.</td><td align='left' valign='top'>No effect.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_127')">
+<span class='extendable'>[+]</span> H5O_VERSION_2</span>
+<br/>
+<div id="c_127" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5O_VERSION_2</b> with value <b>2</b> has been added.</td><td align='left' valign='top'>No effect.</td></tr>
+</table><br/></div>
+
+<br/>
+<span class='h_name'>H5PLpublic.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_128')">
+<span class='extendable'>[+]</span> H5PL_ALL_PLUGIN</span>
+<br/>
+<div id="c_128" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5PL_ALL_PLUGIN</b> with value <b>0xFFFF</b> has been added.</td><td align='left' valign='top'>No effect.</td></tr>
+</table><br/></div>
+
+<span class="section" onclick="javascript:showContent(this, 'c_129')">
+<span class='extendable'>[+]</span> H5PL_FILTER_PLUGIN</span>
+<br/>
+<div id="c_129" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5PL_FILTER_PLUGIN</b> with value <b>0x0001</b> has been added.</td><td align='left' valign='top'>No effect.</td></tr>
+</table><br/></div>
+
+<br/>
+<span class='h_name'>H5pubconf.h</span><br/>
+<span class="section" onclick="javascript:showContent(this, 'c_130')">
+<span class='extendable'>[+]</span> H5_HAVE_TIMEZONE</span>
+<br/>
+<div id="c_130" style="display:none;">
+<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr><th>1</th><td align='left' valign='top'>The constant <b>H5_HAVE_TIMEZONE</b> with value <b>1</b> has been added.</td><td align='left' valign='top'>No effect.</td></tr>
+</table><br/></div>
+
+<br/>
+<a style='font-size:11px;' href='#Top'>to the top</a><br/>
+<a name='Headers'></a><h2>Header Files (75)</h2><hr/>
+<div class='h_list'>
+H5AbstractDs.h<br/>
+H5ACpublic.h<br/>
+H5api_adpt.h<br/>
+H5Apublic.h<br/>
+H5ArrayType.h<br/>
+H5AtomType.h<br/>
+H5Attribute.h<br/>
+H5Classes.h<br/>
+H5CommonFG.h<br/>
+H5CompType.h<br/>
+H5Cpp.h<br/>
+H5CppDoc.h<br/>
+H5Cpublic.h<br/>
+H5DataSet.h<br/>
+H5DataSpace.h<br/>
+H5DataType.h<br/>
+H5DcreatProp.h<br/>
+H5DOpublic.h<br/>
+H5Dpublic.h<br/>
+H5DSpublic.h<br/>
+H5DxferProp.h<br/>
+H5EnumType.h<br/>
+H5Epubgen.h<br/>
+H5Epublic.h<br/>
+H5Exception.h<br/>
+H5f90i.h<br/>
+H5f90i_gen.h<br/>
+H5FaccProp.h<br/>
+H5FcreatProp.h<br/>
+H5FDcore.h<br/>
+H5FDdirect.h<br/>
+H5FDfamily.h<br/>
+H5FDlog.h<br/>
+H5FDmpi.h<br/>
+H5FDmpio.h<br/>
+H5FDmulti.h<br/>
+H5FDpublic.h<br/>
+H5FDsec2.h<br/>
+H5FDstdio.h<br/>
+H5File.h<br/>
+H5FloatType.h<br/>
+H5Fpublic.h<br/>
+H5Gpublic.h<br/>
+H5Group.h<br/>
+H5IdComponent.h<br/>
+H5IMpublic.h<br/>
+H5Include.h<br/>
+H5IntType.h<br/>
+H5Ipublic.h<br/>
+H5Library.h<br/>
+H5Location.h<br/>
+H5Lpublic.h<br/>
+H5LTpublic.h<br/>
+H5MMpublic.h<br/>
+H5Object.h<br/>
+H5Opublic.h<br/>
+H5overflow.h<br/>
+H5PacketTable.h<br/>
+H5PLextern.h<br/>
+H5Ppublic.h<br/>
+H5PredType.h<br/>
+H5PropList.h<br/>
+H5PTpublic.h<br/>
+H5pubconf.h<br/>
+H5public.h<br/>
+H5Rpublic.h<br/>
+H5Spublic.h<br/>
+H5StrType.h<br/>
+H5TBpublic.h<br/>
+H5Tpublic.h<br/>
+H5VarLenType.h<br/>
+H5version.h<br/>
+H5Zpublic.h<br/>
+hdf5.h<br/>
+hdf5_hl.h<br/>
+</div>
+<br/><a style='font-size:11px;' href='#Top'>to the top</a><br/>
+<a name='Libs'></a><h2>Shared Libraries (6)</h2><hr/>
+<div class='lib_list'>
+libhdf5.so.9.0.0<br/>
+libhdf5_cpp.so.9.0.0<br/>
+libhdf5_fortran.so.9.0.0<br/>
+libhdf5_hl.so.9.0.0<br/>
+libhdf5_hl_cpp.so.9.0.0<br/>
+libhdf5hl_fortran.so.9.0.0<br/>
+</div>
+<br/><a style='font-size:11px;' href='#Top'>to the top</a><br/>
+<br/><br/><br/></div><div style='width:97%;padding-top:3px;font-size:11px;' align='right'><i>Generated on Tue May  5 08:57:06 2015 for <span style='font-weight:bold'>hdf5</span> by <a href='http://ispras.linuxbase.org/index.php/ABI_compliance_checker'>ABI Compliance Checker</a> 1.99.9  <br/>A tool for checking backward compatibility of a C/C++ library API  </i></div>
+<div style='height:999px;'></div>
+</body></html>
\ No newline at end of file
diff --git a/html/Advanced.html b/html/Advanced.html
index e8ac543..a2a8519 100644
--- a/html/Advanced.html
+++ b/html/Advanced.html
@@ -329,7 +329,7 @@
 
 <?php include("./ed_libs/Footer.htm"); ?>
 
-Last modified:  3 November 2014
+Last modified:  12 May 2015
 
 
 </body>
diff --git a/html/Copyright.html b/html/Copyright.html
index 0306981..58d3ccf 100644
--- a/html/Copyright.html
+++ b/html/Copyright.html
@@ -21,7 +21,7 @@ HDF5 (Hierarchical Data Format 5) Software Library and Utilities</h3>
 
 HDF5 (Hierarchical Data Format 5) Software Library and Utilities
 <br>
-Copyright 2006-2014 by The HDF Group.
+Copyright 2006-2015 by The HDF Group.
 <p>
 NCSA HDF5 (Hierarchical Data Format 5) Software Library and Utilities
 <br>
diff --git a/html/HL/H5PT_Intro.html b/html/HL/H5PT_Intro.html
index d8a8f7c..e93f0d8 100644
--- a/html/HL/H5PT_Intro.html
+++ b/html/HL/H5PT_Intro.html
@@ -66,9 +66,9 @@ data and to mix any number of objects of different types in a single container.
 HDF5 can support different access patterns, simplified data integration, datatype 
 translation, fast I/O, and visualization and analysis software.
 
-<h2>Uses of HDF5 Packet Table</h2> 
+<h2>Using the HDF5 Packet Table</h2> 
 
-<p>The following examples describe typical uses of the HDF5 Packet Table API.
+<p>The following example describes the typical use of the HDF5 Packet Table API.
 
 <p><strong>Writing homogeneous, fixed-sized packets of instrument data</strong>.  
 An experimenter wants to store measurements from a fixed number of sensors.  
@@ -88,22 +88,6 @@ horizontal entry, or "record," in a table.
   </tr>
 </table>
 
-<p><strong>Writing data from multiple sources to a variable-length packet table</strong>.  
-An experimenter wishes to store, in a single table, data from a number of sensor sources.  
-All of the entries in a given packet have the same time stamp, but individual packets can 
-vary in size and content.  (Figure 2.)  To do this, the experimenter can create an HDF5 
-datatype representing a variable-sized packet of data in an HDF5 file.  Each packet corresponds 
-to variable-length record in a table.
-
-<table border="1">
-  <tr>
-    <td align="center"><img src="Images/PTintro_Fig2.jpg"></td>
-  </tr>
-  <tr align="left">
-    <td><strong>Figure 2</strong>. Variable length packet example.</td>
-  </tr>
-</table>
-
 <h2>HDF5 Packet library for flight test data</h2>
 
 <p>Boeing's Flight Test Instrumentations Group and the HDF5 development group at the 
@@ -111,29 +95,14 @@ University of Illinois have developed a library that is particularly suited for
 data, data that arrives in streams of packets from instruments at 
 potentially very high speeds.
 
-<p><strong>Fixed and variable length packets</strong>.  A key to a general-purpose packet 
-I/O library is that, at a certain level, all packet data falls into two simple structural 
-categories: fixed-length packets and variable-length packets (Figure 3).  In the 
-fixed-length scenario, every record to be stored is of the same length.  In the 
-variable-length scenario, the data length will be variable for each storage time.  
-The length may vary quite widely (even wildly) from one time to another.
+<p>A key to a general-purpose packet I/O library is that, at a certain 
+level, all packet data falls into simple structural categories that can 
+be handled by fixed-length packets. In this scenario, every record to 
+be stored is of the same length.</p>
 
-<table border="1">
-  <tr>
-    <td align="center"><img src="Images/PTintro_Fig3.jpg"></td>
-  </tr>
-  <tr align="left">
-    <td><strong>Figure 3</strong>. Fixed length and variable length packets.</td>
-  </tr>
-</table>
-
-<p>To obtain efficient storage and I/O in HDF5, fixed length packets are stored differently 
-in HDF5 files from variable length packets.  The HDF5 packet library can create Packet Tables 
-containing either fixed length or variable length records and provides similar 
-APIs to access both.
-
-<p>The Packet Table implementation includes a C API, as well as prototype C++ wrapper 
-objects, which are described in the Packet Table Reference Manual.
+<p>The Packet Table implementation includes a C API, as well as prototype 
+C++ wrapper objects, which are described in the Packet Table Reference 
+Manual.</p>
 
 <p><strong>HDF5 "Table" vs. "Packet" APIs</strong>.  The HDF5 packet API is similar to 
 but separate from the HDF5 "Table" API, whose prefix is H5TB.  The H5TB Table is designed 
@@ -166,7 +135,6 @@ how to do the other steps.
   <li>Create and open Packet Table
     <ol type="a">
 	  <li>Create packet table with fixed-size record
-      <li>Create packet table with variable-length record
 	</ol>
   <li>Close Packet Table
   <li>Write and read Packet Table
@@ -179,9 +147,7 @@ how to do the other steps.
     <ol type="a">
 	  <li>Number of packets in the Packet Table
       <li>If an HDF5 object is a Packet Table
-      <li>If a Packet Table is of a variable-size type
 	</ol>
-  <li>Memory management for variable-size Packet Table
 </ol>
 
 <p>Packet Table APIs implement those operations. Full descriptions of Packet Table 
@@ -189,17 +155,15 @@ APIs can be found on the <a href="RM_H5PT.html">H5PT: HDF5 Packet Table</a> page
 of the <a href="../RM/RM_H5Front.html"><cite>HDF5 Reference Manual</cite></a>.
 
 
-<h2>Examples</h2>
+<h2>Example</h2>
 
-<p>These two examples demonstrate the use of the C language version of the Packet Table API
-
-<p><strong>1. Fixed length example</strong>.  Create packet table with fixed-length 
-records and perform writes and reads. 
-<br>
+<p>The example below demonstrates the use of the C language version of 
+the Packet Table API to create a packet table with fixed-length 
+records and to perform writes and reads. 
 (<a href="Examples/ptExampleFL.c">C sample program</a>) 
-(<a href="Examples/ptcppExampleFL.cpp">C++ sample program</a>)
+(<a href="Examples/ptcppExampleFL.cpp">C++ sample program</a>)</p>
 
-<br>
+<br />
 
 <pre>
 #include "H5PT.h"
@@ -292,132 +256,18 @@ int main(void)
     return -1;
 }</pre>
 
-<p><strong>2. Variable length example</strong>.  Create packet table with 
-variable-length records and perform writes and reads.
-<br>
-(<a href="Examples/ptExampleVL.c">C sample program</a>) 
-(<a href="Examples/ptcppExampleVL.cpp">C++ sample program</a>)
-
-<pre>
-#include "H5PT.h"
-#include <stdlib.h>
-
-/*-------------------------------------------------------------------------
- * Packet Table Variable-Length Example
- *
- * Example program that creates a variable-length packet table and performs
- * writes and reads.
- *
- *-------------------------------------------------------------------------
- */
- 
-int main(void)
-{
- hid_t          fid;        /* File identifier */
- hid_t          ptable;     /* Packet table identifier */
-
- herr_t         err;        /* Function return status */
- hsize_t        count;      /* Number of records in the table */
- int            x;          /* Loop variable */
-
-    /* Buffers to hold data */
- hvl_t writeBuffer[5];
- hvl_t readBuffer[5];
-
-    /* This example has two different sizes of "record": longs and shorts */
- long longBuffer[5];
- short shortBuffer[5];
-
-   /* Initialize buffers */
- for(x=0; x<5; x++)
- {
-     longBuffer[x] = -x;
-     shortBuffer[x] = x;
- }
-
-    /* Fill the write buffer with a mix of longs and shorts */
-    /* We need to supply the length of each record and a pointer to */
-    /* the beginning of each record. */
- writeBuffer[0].len = sizeof(long);
- writeBuffer[0].p = &(longBuffer[0]);
- writeBuffer[1].len = sizeof(short);
- writeBuffer[1].p = &(shortBuffer[1]);
- writeBuffer[2].len = sizeof(long);
- writeBuffer[2].p = &(longBuffer[2]);
- writeBuffer[3].len = sizeof(long);
- writeBuffer[3].p = &(longBuffer[3]);
- writeBuffer[4].len = sizeof(short);
- writeBuffer[4].p = &(shortBuffer[4]);
-
-    /* Create a file using default properties */
-
-fid=H5Fcreate("packet_table_VLexample.h5",H5F_ACC_TRUNC,H5P_DEFAULT,H5P_DEFAULT);
-
-    /* Create a variable-length packet table within the file */
- ptable = H5PTcreate_vl(fid, "Packet Test Dataset", 1);
- if(ptable == H5I_INVALID_HID)
-     goto out;
-
-    /* Write the entire buffer to the packet table */
- err = H5PTappend(ptable, 5, writeBuffer );
- if(err < 0)
-     goto out;
-
-    /* Get the number of packets in the packet table.  This should be five. */
- err = H5PTget_num_packets(ptable, &count);
- if(err < 0)
-     goto out;
-
- printf("Number of packets in packet table after five appends: %d\n", count);
-
-    /* Read all five packets back */
- err = H5PTread_packets(ptable, 0, 5, readBuffer );
- if(err < 0)
-    goto out;
-
- for(x=0; x<5; x++)
- {
-    printf("Packet %d's length is %d\n", x, readBuffer[x].len);
-    if(readBuffer[x].len == sizeof(long))
-        printf("Packet %d's value is %d\n", x, *( (long *) readBuffer[x].p) );
-    else
-        printf("Packet %d's value is %d\n", x, *( (short *) readBuffer[x].p) );
- }
- 
-    /* Before we close the packet table, we must free the memory that */
-    /* the pointers in readBuffer point to. */
- err = H5PTfree_vlen_readbuff(ptable, 5, readBuffer);
- if(err < 0)
-     goto out;
-
-    /* Close the packet table */
- err = H5PTclose(ptable);
- if(err < 0)
-     goto out;
-
-    /* Close the file */
- H5Fclose(fid);
-
- return 0;
-
- out: /* An error has occurred.  Clean up and exit. */
-    fprintf(stderr, "An error has occurred!\n");
-    H5PTclose(ptable);
-    H5Fclose(fid);
-    return -1;
-}</pre>
-
-<hr>
+<br />
+<hr />
 
-<address>
-</address>
 <table width=100% border=0>
 <tr><td align=left valign=top>
     <address>
     The HDF Group Help Desk: <img src="../Graphics/help.png" align=top height=16>
     </address>
-    Last modified: 13 January 2011<br>
-    Last modified: 18 January 2012 <i>(Corrected links only.)</i><br>
+    Last modified: 13 January 2011<br />
+    Last modified: 18 January 2012: Corrected links only.<br />
+    Last modified: 13 March 2015: Removed mention of variable-length 
+    packet tables.
 </td></tr>
 </table>
 
diff --git a/html/HL/H5PT_UseCases.html b/html/HL/H5PT_UseCases.html
index a05a7f7..7186b76 100644
--- a/html/HL/H5PT_UseCases.html
+++ b/html/HL/H5PT_UseCases.html
@@ -44,7 +44,6 @@ Use Cases</h1>
 <li>Create/Open packet table</li>
  <ul>
  <li>Create fixed-length packet table</li>
- <li>Create variable-length packet table</li>
  <li>Open packet table</li>
  </ul>
 <li>Perform operations on packet table (as many as desired)</li>
@@ -61,16 +60,15 @@ Use Cases</h1>
  <li>Query packet table</li>
   <ul>
   <li>Query whether packet table identifier is valid</li>
-  <li>Query whether packet table is variable-length or not</li>
   <li>Query number of packets in packet table</li>
   </ul>
  </ul>
 <li>Close packet table</li>
-     - If packet table is variable-length, first free any buffers used
 <li>Close HDF5 File</li>
 </ol>
 
-<br>
+<br />
+<br />
 <h5>Writing one kind of data to a fixed-length packet table</h5>
 
 <p>An experimenter wants to store data from a single kind of sensor in a
@@ -105,11 +103,12 @@ When the experiment is over, the experimenter closes the packet table.</p>
 
 <p>She may also wish the close the HDF5 file if she is done accessing it.
 
-<br>
+<br />
+<br />
 <h5>Reading data from a fixed-length packet table</h5>
 
 <p>An analyst wants to read from a fixed-length packet table like the one
-created by the experimenter in the previous use case.<br>
+created by the experimenter above.<br>
 First, he must open the packet table. To do this, he needs to know its
 location and name.</p>
 
@@ -148,111 +147,15 @@ call:</p>
 <p>He may also wish to close the HDF5 file, or he may go on to examine
 other objects in the same file.
 
-<br>
-<h5>Writing data from multiple sources to a variable-length packet table</h5>
-
-<p>An experimenter has data from a number of sources to store in a packet
-table. Since there are different kinds of data to be stored together, he
-cannot describe them with a single datatype. Instead, he opens an HDF5 file
-and creates a packet table to store variable-length packets:</p>
-
-<p><code>ptable_id= H5PTcreate_vl( file_id, "\trial2", 1000 );</code></p>
-
-<p>The last value is the "chunk size" and affects how HDF5
-stores data in the file. For more information on chunked storage, see
-the HDF5 User's Guide.<br>
-The experimenter then begins his experiment. When a sensor reading is
-taken, the data is stored in a buffer. The experimenter allocates space
-for HDF5's <code>hvl_t</code> struct and populates it with a pointer to
-the data and the length of the data in bytes.  He then stores the
-<code>hvl_t</code> as a packet in his packet table:</p>
-
-<p><code>hvl_t data_hvl_t;<br>
-
-data_hvl_t.p = &dataBuffer;<br>
-
-data_hvl_t.len = sizeof( dataBuffer );<br>
-
-ret_value= H5PTappend(ptable_id, 1, &(data_hvl_t) );</code></p>
-
-<p>He repeats this procedure for each sensor reading that arrives,
-packaging each data buffer with its length and appending it to the
-packet table.<br>
-When the experiment is over, the experimenter closes the packet table.</p>
-
-<p></code>ret_value= H5PTclose(ptable_id);</p>
-
-<p>When he is done accessing it, he also closes the HDF5 file.
-
-<br>
-<h5>Reading data from a variable-length packet table</h5>
-
-<p>An analyst needs to read data from a variable-length packet table like
-the one created in the previous use case.<br>
-First, she opens the packet table. This step is identical to opening a
-fixed-length packet table.</p>
-
-<p><code>hid_t ptable_id= H5PTopen( file_id, "/trial1" );</code></p>
-
-<p>She finds the number of packets it contains:</p>
-
-<p><code>hsize_t num_packets;<br>
-
-ret_value= H5PTget_num_packets(ptable_id, &num_packets);</code></p>
-
-<p>Now she wishes to read packets from the packet table. She begins by
-iterating through all packets in order. She sets the index of the packet
-table to the first packet:</p>
-
-<p><code>ret_value= H5PTcreate_index(ptable_id);</code></p>
-
-<p>Then she reads each packet. Since the packets are of variable-length,
-her buffer will actually be filled with a <code>hvl_t</code> struct
-containing a pointer to the data and its length.</p>
-
-<p><code>hvl_t readBuffer;<br>
-
-ret_value= H5PTget_next( ptable_id, 1, &(readBuffer) );<br>
-
-size_t dataLength= readBuffer.len;<br>
-
-(void *) data= readBuffer.p;</code></p>
-
-<p>When she is finished accessing that packet, she must be careful to free
-the memory HDF5 allocated to hold it.</p>
-
-<p>
-<code>ret_value= H5PTfree_vlen_readbuff( ptable_id, 1, &(readBuffer) );
-</code></p>
-
-<p>She can continue to read single packets and free them until has read
-all the packets in the packet table. She can also read a number of packets
-at once using an array of <code>hvl_t</code> structs.</p>
-
-<p><code>hvl_t bigReadBuffer[20];<br>
-
-ret_value= H5PTread_packets( ptable_id, 0, 20, bigReadBuffer );</code></p>
-
-<p>Again, she must be careful to free the memory HDF5 allocated during
-the read operation.</p>
-
-<p><code>ret_value= H5PTfree_vlen_readbuff( ptable_id, 1, &(readBuffer) );
-</code></p>
-
-<p>She can then safely close the packet table and the HDF5 file.</p>
-
-<p><code>ret_value= H5PTclose(ptable_id);</code></p>
-
-<p>For more examples of the use of <code>hvl_t</code> structs, see the
-HDF5 User's Guide or the Packet Table examples.
-
-<br>
+<br />
+<br />
 <h5>Handling an unknown packet table identifier</h5>
 
 <p>A function receives an identifier from another location in the program
-and the programmer wishes to double-check that it is the packet table she
-is expecting.<br>
-First, she checks that it is in fact a packet table and that it has been
+and the programmer wishes to confirm that it is the packet table she
+is expecting.</p>
+
+<p>First, she checks that it is in fact a packet table and that it has been
 opened.</p>
 
 <p><code>ret_value= H5PTis_valid( ptable_id );</code></p>
@@ -260,25 +163,19 @@ opened.</p>
 <p>If the identifier does not refer to an open packet table, the return
 value will be negative.</p>
 
-<p>Next, she makes sure that it is the right kind of packet table:</p>
-
-<p><code>ret_value= H5PTis_varlen( ptable_id );</code></p>
+<p>The programmer may need to remember to close the packet table, depending
+on the semantics of the application.</p>
 
-<p>Again, the return value will indicate whether the packet table is
-fixed-length or variable-length.<br>
-The programmer may need to remember to close the packet table, depending
-on the semantics of the application.
-
-<hr>
+<br />
+<hr />
 
-<address>
-</address>
 <table width=100% border=0>
 <tr><td align=left valign=top>
-    <address>
-    The HDF Group Help Desk: <img src="../Graphics/help.png" align=top height=16>
-    </address>
-    Last modified: 24 April 2005
+    <address>The HDF Group Help Desk: 
+    <img src="../Graphics/help.png" align=top height=16></address>
+    <p>Last modified: 24 April 2005</p>
+    <p>Last modified: 13 March 2015: Removed mention of variable-length 
+    packet tables.</p>
 </td></tr>
 </table>
 
diff --git a/html/HL/index.html b/html/HL/index.html
index d909493..cd5ef15 100644
--- a/html/HL/index.html
+++ b/html/HL/index.html
@@ -198,7 +198,7 @@ along with the HDF5 Library.
 <!--
 document.writeln(' \
 <address> \
-  Last modified: 29 October 2013 <br> \
+  Last modified: 13 March 2015 <br> \
 </address> \
 ');
 -->
diff --git a/html/RM/H5/H5allocate_memory.htm b/html/RM/H5/H5allocate_memory.htm
new file mode 100644
index 0000000..a438c9a
--- /dev/null
+++ b/html/RM/H5/H5allocate_memory.htm
@@ -0,0 +1,183 @@
+
+<!--
+  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+  * Copyright by The HDF Group.                                               *
+  * 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://www.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.     *
+  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ -->
+
+
+
+<!--__ ***********************************************************  -->
+<!--__ Do not alter the next line; it is used by the PDF generator. -->
+<!--__ ***********************************************************  -->
+<!-- NEW PAGE -->
+
+
+<!--__ *** HEADER RIGHT ******************************************  -->
+<!-- HEADER RIGHT "H5allocate_memroy" -->
+
+<hr />
+<dl>
+
+<dt><div align="right"><font color="999999" size="-1"><i>
+    Last modified: 1 May 2015
+    </i></font></div></dt>
+    <br />
+
+<dt><strong>Name:</strong> <a name="Library-AllocateMemory">H5allocate_memory</a></dt><br />
+<dt><strong>Signature:</strong>
+    <dd><code><em>void *</em> H5allocate_memory(
+        <em>size_t</em> size,
+        <em>hbool_t</em> clear
+        )</code>
+    </dd></dt>
+    <br />
+
+<dt><strong>Purpose:</strong>
+    <dd>Allocates memory that will later be freed internally 
+        by the HDF5 Library.
+    </dd></dt>
+    <br />
+
+<dt><strong>Description:</strong>
+    <dd><code>H5allocate_memory</code> allocates a memory buffer of
+        <code>size</code> bytes that will later be freed internally 
+        by the HDF5 Library.
+
+        <p />
+        The boolean <code>clear</code> parameter specifies whether 
+        the buffer should be initialized.
+        If <code>clear</code> is <code>TRUE</code>,
+        all bits in the buffer are to be set to <code>0</code> (zero);
+        if <code>clear</code> is <code>FALSE</code>,
+        the buffer will not be initialized.
+
+        <p />
+        This function is intended to have the semantics of 
+        <code>malloc()</code> and <code>calloc()</code>.
+        However, unlike <code>malloc()</code> and <code>calloc()</code>
+        which allow for a “special” pointer to be returned 
+        instead of <code>NULL</code>, this function always returns 
+        <code>NULL</code> on failure or when <code>size</code> 
+        is set to <code>0</code> (zero).
+
+        <p />
+        <i>
+        At this time, the only intended use for this function is to 
+        allocate memory that will be returned to the library 
+        as a data buffer from a third-party filter.
+        </i>
+    </dd></dt>
+    <br />
+
+<dt><strong>Notes:</strong>
+    <dd>To avoid heap corruption, allocated memory should be freed 
+        using the same library that initially allocated it.  
+        In most cases, the HDF5 API uses resources that are 
+        allocated and freed either entirely by the user or 
+        entirely by the library, so this is not a problem.  
+        In rare cases, however, HDF5 API calls will free memory that 
+        the user allocated.  
+        This function allows the user to safely allocate this memory.
+
+        <p />
+        It is particularly important to use this function to allocate memory 
+        in Microsoft Windows envrionments.  In Windows, 
+        the C standard library is implemented in dynamic link libraries (DLLs) 
+        known as the C run-time (CRT).  Each version of Visual Studio comes 
+        with multiple versions of the CRT DLLs (debug, release, et cetera) 
+        and allocating and freeing memory across DLL boundaries can cause 
+        resource leaks and subtle bugs due to heap corruption.
+
+        <p />
+        Even when using this function, it is best where possible to ensure 
+        that all components of a C application are built with the 
+        same version of Visual Studio and configuration (Debug or Release), 
+        and thus linked against the same CRT.
+
+        <p />
+        Use this function only to allocate memory inside third-party 
+        HDF5 filters.  It will generally not be safe to use this function 
+        to allocate memory for any other purpose.
+    </dd></dt>
+    <br />
+    
+<dt><strong>Parameters:</strong>
+    <dd><table width="100%">
+        <tr>
+            <td valign="top"><code><em>size_t</em> 
+                size</code></td>
+            <td width="5%"><code> </code></td>
+            <td valign="top">IN: Specifies the size in bytes of the buffer 
+                to be allocated.</td>
+        </tr><tr>
+            <td valign="top"><code><em>hbool_t</em> clear</code></td>
+            <td><code> </code></td>
+            <td valign="top">IN: Specifies whether the new buffer 
+                is to be initialized to <code>0</code> (zero).</td>
+        </tr>
+    </table></dd>
+    </dt>
+    <br />
+    
+<dt><strong>Returns:</strong>
+    <dd>On success, returns pointer to newly allocated buffer or
+        returns <code>NULL</code> if <code>size</code> is <code>0</code>
+        (zero).
+        <br />
+        Returns <code>NULL</code> on failure.</dd>
+    </dt>
+    <br />
+
+<dt><strong>Fortran Interface:</strong></dt>
+    <dd>None</dd>
+    </dt>
+    <br />
+
+<dt><strong>See Also:</strong></dt>
+    <table width="100%" border="0">
+    <tr><td width="50%"align="left" valign="top">
+        <ul>
+<!--
+          <li><a href="#Library-AllocateMemory">H5allocate_memory</a></li>
+-->
+          <li><a href="#Library-FreeMemory">H5free_memory</a></li>
+          <li><a href="#Library-ResizeMemory">H5resize_memory</a></li>
+        </ul>
+    </td></tr>
+    </table>
+    <br />
+
+<dt><strong>History:</strong></dt>
+    <dd>
+    <table width="90%">
+    <tr>
+        <td valign="top" align="left" width="10%">
+        <strong>Release</strong>    </td>
+        <td valign="top" align="left">
+        <strong>Change</strong></td>
+    </tr><tr>
+        <td valign="top">1.8.15</td>
+        <td valign="top">
+        C function introduced with this release.</td>
+    </tr>
+    </table>
+    </dd>
+
+</dl>
+<br />
+<br />
+<br />
+
+
+
diff --git a/html/RM/H5/H5free_memory.htm b/html/RM/H5/H5free_memory.htm
index 946aa23..90ce685 100644
--- a/html/RM/H5/H5free_memory.htm
+++ b/html/RM/H5/H5free_memory.htm
@@ -99,11 +99,21 @@
     <dd>None</dd>
     <br />
 
+
 <dt><strong>See Also:</strong></dt>
-    <dd><a href="http://www.hdfgroup.org/HDF5/doc/Advanced/FreeingMemory/FreeingMemoryAllocatedByTheHdf5Library.pdf">
-    <em>Freeing Memory Allocated by the HDF5 Library</em></a>
-    in the <a href="http://www.hdfgroup.org/HDF5/doc/Advanced.html">
-    “Advanced Topics”</a> section.
+    <table width="100%" border="0">
+    <tr><td width="50%"align="left" valign="top">
+        <ul>
+          <li><a href="#Library-AllocateMemory">H5allocate_memory</a></li>
+<!--
+          <li><a href="#Library-FreeMemory">H5free_memory</a></li>
+-->
+          <li><a href="#Library-ResizeMemory">H5resize_memory</a></li>
+          <li><a href="http://www.hdfgroup.org/HDF5/doc/Advanced/FreeingMemory/FreeingMemoryAllocatedByTheHdf5Library.pdf">
+              <em>Freeing Memory Allocated by the HDF5 Library</em></a>
+              in <a href="http://www.hdfgroup.org/HDF5/doc/Advanced.html">
+              “Advanced Topics”</a>.
+        </ul>
     </dd>
     <br />
 
diff --git a/html/RM/H5/H5resize_memory.htm b/html/RM/H5/H5resize_memory.htm
new file mode 100644
index 0000000..73eb91f
--- /dev/null
+++ b/html/RM/H5/H5resize_memory.htm
@@ -0,0 +1,219 @@
+
+<!--
+  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+  * Copyright by The HDF Group.                                               *
+  * 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://www.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.     *
+  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ -->
+
+
+
+<!--__ ***********************************************************  -->
+<!--__ Do not alter the next line; it is used by the PDF generator. -->
+<!--__ ***********************************************************  -->
+<!-- NEW PAGE -->
+
+
+<!--__ *** HEADER RIGHT ******************************************  -->
+<!-- HEADER RIGHT "H5resize_memory" -->
+
+<hr />
+<dl>
+
+<dt><div align="right"><font color="999999" size="-1"><i>
+    Last modified: 1 May 2015
+    </i></font></div></dt>
+    <br />
+
+<dt><strong>Name:</strong> <a name="Library-ResizeMemory">H5resize_memory</a>
+    </dt>
+    <br />
+
+<dt><strong>Signature:</strong>
+    <dd><code><em>void *</em> H5resize_memory(
+        <em>void *</em>mem,
+        <em>size_t</em> size
+        )</code>
+    </dd></dt>
+    <br />
+
+<dt><strong>Purpose:</strong>
+    <dd>Resizes and possibly re-allocates memory 
+        that will later be freed internally by the HDF5 Library.
+    </dd></dt>
+    <br />
+
+<dt><strong>Description:</strong>
+    <dd><code>H5resize_memory</code> takes a pointer to an existing buffer 
+        and resizes the buffer to match the value in <code>size</code>.
+        If necessary, the buffer is reallocated.
+        If <code>size</code> is <code>0</code>, the buffer is released.
+
+        <p />
+        The input buffer must either be <code>NULL</code> 
+        or have been allocated by <code>H5allocate_memory</code> 
+        since the input buffer may be freed by the library.
+
+        <p />
+        For certain behaviors, the pointer <code>mem</code> 
+        may be passed in as <code>NULL</code>.
+
+        <p />
+        This function is intended to have the semantics of 
+        <code>realloc()</code>:
+        <table>
+        <tr align="left" valign="top">
+            <td><code>    </code></td>
+            <td><code>H5resize_memory(buffer, size)   </code>
+                </td>
+            <td>Resizes buffer.
+                <br />
+                Returns pointer to resized buffer.</td>
+        </tr>
+        <tr align="left" valign="top">
+            <td><code>    </code></td>
+	    <td><code>H5resize_memory(NULL, size)</td>
+            <td>Allocates memory using HDF5 Library allocator.
+                <br />
+                Returns pointer to new buffer</td>
+        </tr>
+        <tr align="left" valign="top">
+            <td><code>    </code></td>
+	    <td><code>H5resize_memory(buffer, 0)</td>
+            <td>Frees memory using HDF5 Library allocator.
+                <br />
+                Returns NULL.</td>
+        </tr>
+        <tr align="left" valign="top">
+            <td><code>    </code></td>
+            <td><code>H5resize_memory(NULL, 0)</td>
+            <td>Returns NULL (undefined in C standard).</td>
+        </tr>
+        </table>
+
+        <p />
+        Unlike <code>realloc()</code>, which allows for a 
+        “special” pointer to be returned instead of 
+        <code>NULL</code>, this function always returns <code>NULL</code>
+        on failure or when <code>size</code> is <code>0</code> (zero).
+
+        <p />
+        <i>
+        At this time, the only intended use for this function 
+        is to resize or reallocate memory that will be returned 
+        to the library (and eventually to the user) as a data buffer 
+        from a third-party HDF5 filter.
+        </i>
+    </dd></dt>
+    <br />
+
+<dt><strong>Notes:</strong>
+    <dd>To avoid heap corruption, allocated memory should be freed using 
+        the same library that initially allocated it. In most cases, 
+        the HDF5 API uses resources that are allocated and freed 
+        either entirely by the user or entirely by the library,
+        so this is not a problem. 
+        In rare cases, however, HDF5 API calls will free memory 
+        that the user allocated. 
+        This function allows the user to safely allocate this memory.
+
+        <p />
+        It is particularly important to use this function to resize memory 
+        on Microsoft Windows systems.  In Windows, the C standard library 
+        is implemented in dynamic link libraries (DLLs) known as the 
+        C run-time (CRT).  Each version of Visual Studio comes with 
+        multiple versions of the CRT DLLs (debug, release, et cetera) 
+        and allocating and freeing memory across DLL boundaries can 
+        cause resource leaks and subtle bugs due to heap corruption.
+
+        <p />
+        Even when using this function, it is still best to ensure 
+        that all components of a C application are built with the 
+        same version of Visual Studio and the same configuration 
+        (Debug or Release), and thus linked against the same CRT.
+
+        <p />
+        Only use this function to resize memory inside third-party 
+        HDF5 filters.  It will generally not be safe to use this function 
+        to resize memory for any other purpose.
+        
+    </dd></dt>
+    <br />
+    
+<dt><strong>Parameters:</strong>
+    <dd><table width="100%">
+        <tr>
+            <td valign="top"><code><em>void *</em>mem</code></td>
+            <td width="5%"><code> </code></td>
+            <td valign="top">IN: Pointer to a buffer to be resized.
+                <br/>
+                May be <code>NULL</code>.</td>
+        </tr><tr>
+            <td valign="top"><code><em>size_t</em> size</code></td>
+            <td><code> </code></td>
+            <td valign="top">IN: New size of the buffer, in bytes</td>
+        </tr>
+    </table></dd>
+    </dt>
+    <br />
+    
+<dt><strong>Returns:</strong>
+    <dd>On success, returns pointer to resized or reallocated buffer or
+        returns <code>NULL</code> if <code>size</code> is <code>0</code>
+        (zero).
+        <br />
+        Returns <code>NULL</code> on failure.</dd>
+    </dt>
+    <br />
+
+<dt><strong>Fortran Interface:</strong></dt>
+    <dd>None</dd>
+    </dt>
+    <br />
+
+<dt><strong>See Also:</strong></dt>
+    <table width="100%" border="0">
+    <tr><td width="50%"align="left" valign="top">
+        <ul>
+          <li><a href="#Library-AllocateMemory">H5allocate_memory</a></li>
+          <li><a href="#Library-FreeMemory">H5free_memory</a></li>
+<!--
+          <li><a href="#Library-ResizeMemory">H5resize_memory</a></li>
+-->
+        </ul>
+    </td></tr>
+    </table>
+    <br />
+
+<dt><strong>History:</strong></dt>
+    <dd>
+    <table width="90%">
+    <tr>
+        <td valign="top" align="left" width="10%">
+        <strong>Release</strong>    </td>
+        <td valign="top" align="left">
+        <strong>Change</strong></td>
+    </tr><tr>
+        <td valign="top">1.8.15</td>
+        <td valign="top">
+        C function introduced with this release.</td>
+    </tr>
+    </table>
+    </dd>
+
+</dl>
+<br />
+<br />
+<br />
+
+
+
diff --git a/html/RM/H5O/H5Oget_info.htm b/html/RM/H5O/H5Oget_info.htm
index 487983f..c9cae57 100644
--- a/html/RM/H5O/H5Oget_info.htm
+++ b/html/RM/H5O/H5Oget_info.htm
@@ -24,7 +24,7 @@
 <dl>
 
   <dt><div align=right><font color=999999 size=-1><i>
-      Last modified: 17 September 2014
+      Last modified: 11 May 2015
       </i></font></div>
 
   <dt><strong>Name:</strong> <a name="Object-GetInfo">H5Oget_info</a>
@@ -141,6 +141,13 @@ typedef struct H5O_hdr_info_t {
     } mesg;
 } H5O_hdr_info_t;
     </pre>
+    
+    <p>
+    Valid values for the <code>version</code> field are 
+    <code>H5O_VERSION_1</code> and <code>H5O_VERSION_2</code>. 
+    Version 2 of the object header is smaller and more efficient 
+    than version 1.</p>
+    
     <p>
     Note that the information held by <em>H5O_hdr_info_t</em> might be 
     useful only to developers with extensive HDF5 experience. </p>
@@ -187,9 +194,14 @@ typedef struct H5O_hdr_info_t {
           <td valign="top" align="left">
             <strong>Change</strong></td></tr>
         <tr>
-          <td valign="top">1.8.11</td>
+          <td valign="top">1.8.15</td>
           <td valign="top">
-            Fortran subroutine introduced in this release.</td></tr>
+            Added a note about the valid values for the <code>version</code> 
+            field in the <em>H5O_hdr_info_t</em> structure.</td></tr>
+        <tr>
+          <td valign="top">1.8.11</td>
+          <td valign="top">
+            Fortran subroutine introduced in this release.</td></tr>
         <tr>
           <td valign="top">1.8.10</td>
           <td valign="top">
diff --git a/html/RM/H5P/H5Pcreate.htm b/html/RM/H5P/H5Pcreate.htm
index 261e23a..ed3f080 100644
--- a/html/RM/H5P/H5Pcreate.htm
+++ b/html/RM/H5P/H5Pcreate.htm
@@ -24,7 +24,7 @@
 <dl>
 
   <dt><div align=right><font color=999999 size=-1><i>
-  Last modified: 9 October 2014</i></font></div></dt>
+  Last modified: 8 April 2015</i></font></div></dt>
 
   <dt><strong>Name:</strong> <a name="Property-Create">H5Pcreate</a></dt>
   <br />
@@ -43,107 +43,159 @@
         some property list class.  The new property list is initialized
         with default values for the specified class. The classes are as
         follows; see the <a href="#FunctionIndex">function index</a> at
-        the top of this page for a list of functions related to each class:
-      <dir>
-      <dl>
-        <dt><code>H5P_OBJECT_CREATE</code>
-          <dd>Properties for object creation
-<!--
-              See <a href="#Property-SetCopyObject">H5Pset_copy_object</a>.
--->
-        <dt><code>H5P_FILE_CREATE</code>
-          <dd>Properties for file creation  
-<!--
-              See <a href="../H5.user/Files.html">Files</a>
-              in the <cite>HDF User's Guide</cite>
-              for details about the file creation properties.
--->
-        <dt><code>H5P_FILE_ACCESS</code>
-          <dd>Properties for file access 
-<!--
-              See <a href="../H5.user/Files.html">Files</a>
-              in the <cite>HDF User's Guide</cite>
-              for details about the file creation properties.
--->
-        <dt><code>H5P_DATASET_CREATE</code>
-          <dd>Properties for dataset creation  
-<!--
-              See <a href="../H5.user/Datasets.html">Datasets</a> 
-              in the <cite>HDF User's Guide</cite>
-              for details about dataset creation properties.
--->
-        <dt><code>H5P_DATASET_ACCESS</code>
-          <dd>Properties for dataset access  
-        <dt><code>H5P_DATASET_XFER</code>
-          <dd>Properties for raw data transfer  
-<!--
-              See <a href="../H5.user/Datasets.html">Datasets</a> 
-              in the <cite>HDF User's Guide</cite>
-              for details about raw data transfer properties
--->
-        <dt><code>H5P_FILE_MOUNT</code>
-          <dd>Properties for file mounting  
+        the top of this page for a list of functions related to each class:
+        </dd>
+      
+      <br />
+    <dd>
+    <table width="90%">
+      <tr valign="top">
+        <td width="35%"><strong><code>H5Pcreate</code> 
+        Class Identifier</strong></td>
+        <td width="30%"><strong><code>H5Pget_class_name</code> 
+        Class Name</strong></td>
+        <td width="35%"><strong>Comments</strong></td>
+      </tr>
+      
+      <tr valign="top">
+          <td><code>H5P_ATTRIBUTE_CREATE</code></td>
+          <td><code>attribute create</code></td>
+          <td>Properties for attribute creation</td>
+      </tr>
+        
+      <tr valign="top">
+          <td><code>H5P_DATASET_ACCESS</code></td>
+          <td><code>dataset access</code></td>
+          <td>Properties for dataset access</td>  
+      </tr>
+          
+      <tr valign="top">
+          <td><code>H5P_DATASET_CREATE</code></td>
+          <td><code>dataset create</code></td>
+          <td>Properties for dataset creation</td>  
+      </tr>
+          
+      <tr valign="top">
+          <td><code>H5P_DATASET_XFER</code></td>
+          <td><code>data transfer</code></td>
+          <td>Properties for raw data transfer</td>  
+      </tr>
+      
+      <tr valign="top">
+          <td><code>H5P_DATATYPE_ACCESS</code></td>
+          <td><code>datatype access</code></td>
+          <td>Properties for datatype access</td>
+      </tr>
+          
+      <tr valign="top">
+          <td><code>H5P_DATATYPE_CREATE</code></td>
+          <td><code>datatype create</code></td>
+          <td>Properties for datatype creation</td>
+      </tr>
+          
+      <tr valign="top">
+          <td><code>H5P_FILE_ACCESS</code></td>
+          <td><code>file access</code></td>
+          <td>Properties for file access</td> 
+      </tr>
+          
+      <tr valign="top">
+          <td><code>H5P_FILE_CREATE</code></td>
+          <td><code>file create</code></td>
+          <td>Properties for file creation</td>  
+      </tr>
+          
+      <tr valign="top">
+          <td><code>H5P_FILE_MOUNT</code></td>
+          <td><code>file mount</code></td>
+          <td>Properties for file mounting</td>  
+      </tr>
 <!--
               With this parameter, <code>H5Pcreate</code> 
               creates and returns a new mount property list
               initialized with default values.
 -->
-        <dt><code>H5P_GROUP_CREATE</code>
-          <dd>Properties for group creation
-<!--
-              See <a href="#Property-SetCreateIntermediateGroups">H5Pset_create_intermediate_groups</a>,
-              <a href="#Property-SetEstLinkInfo">H5Pset_est_link_info</a>,
-              <a href="#Property-SetLinkCreationOrder">H5Pset_link_creation_order</a>,
-              <a href="#Property-SetLinkPhaseChange">H5Pset_link_phase_change</a>,
-              etc.
--->
-        <dt><code>H5P_GROUP_ACCESS</code>
-          <dd>Properties for group access
+      
+      <tr valign="top">
+          <td><code>H5P_GROUP_ACCESS</code></td>
+          <td><code>group access</code></td>
+          <td>Properties for group access</td>
+      </tr>
 <!--
               See <a href="#Property-SetELinkPrefix">H5Pset_elink_prefix</a>
               and <a href="#Property-SetNLinks">H5Pset_nlinks</a>.
--->
-        <dt><code>H5P_DATATYPE_CREATE</code>
-          <dd>Properties for datatype creation
-        <dt><code>H5P_DATATYPE_ACCESS</code>
-          <dd>Properties for datatype access
-        <dt><code>H5P_STRING_CREATE</code>
-          <dd>Properties for character encoding when encoding strings or 
-              object names
-<!--
-              See <a href="#Property-SetCharEncoding">H5Pset_char_encoding</a>.
--->
-        <dt><code>H5P_ATTRIBUTE_CREATE</code>
-          <dd>Properties for attribute creation
-        <dt><code>H5P_OBJECT_COPY</code>
-          <dd>Properties governing the object copying process  
-<!--
-              See <a href="#Property-SetCopyObject">H5Pset_copy_object</a>.
--->
-        <dt><code>H5P_LINK_CREATE</code>
-          <dd>Properties governing link creation
+-->
+      
+      <tr valign="top">
+          <td><code>H5P_GROUP_CREATE</code></td>
+          <td><code>group create</code></td>
+          <td>Properties for group creation</td>
+      </tr>
+<!--
+              See <a href="#Property-SetCreateIntermediateGroups">H5Pset_create_intermediate_groups</a>,
+              <a href="#Property-SetEstLinkInfo">H5Pset_est_link_info</a>,
+              <a href="#Property-SetLinkCreationOrder">H5Pset_link_creation_order</a>,
+              <a href="#Property-SetLinkPhaseChange">H5Pset_link_phase_change</a>,
+              etc.
+-->
+  
+      <tr valign="top">
+          <td><code>H5P_LINK_ACCESS</code></td>
+          <td><code>link access</code></td>
+          <td>Properties governing link traversal when accessing objects</td>
+      </tr>
+<!--
+              See <a href="#Property-SetNLinks">H5Pset_nlinks</a> and
+              <a href="#Property-SetELinkPrefix">H5Pset_elink_prefix</a>.
+-->
+
+      <tr valign="top">
+          <td><code>H5P_LINK_CREATE</code></td>
+          <td><code>link create</code></td>
+          <td>Properties governing link creation</td>
+      </tr>
 <!--
               See <a href="#Property-SetCreateIntermediateGroup">H5Pset_create_intermediate_group</a>.
 -->
-        <dt><code>H5P_LINK_ACCESS</code>
-        <dd>Properties governing link traversal when accessing objects  
-<!--
-              See <a href="#Property-SetNLinks">H5Pset_nlinks</a> and
-              <a href="#Property-SetELinkPrefix">H5Pset_elink_prefix</a>.
--->
-      </dl>
-      </dir>
-      <p>
-      This property list must eventually be closed with 
-      <code>H5Pclose</code>;  
-      otherwise, errors are likely to occur.
+
+      <tr valign="top">
+          <td><code>H5P_OBJECT_COPY</code></td>
+          <td><code>object copy</code></td>
+          <td>Properties governing the object copying process</td>
+      </tr>
+<!--
+              See <a href="#Property-SetCopyObject">H5Pset_copy_object</a>.
+-->
+      <tr valign="top">
+          <td><code>H5P_OBJECT_CREATE</code></td>
+          <td><code>object create</code></td>
+          <td>Properties for object creation</td>
+      </tr>
+      
+      <tr valign="top">
+          <td><code>H5P_STRING_CREATE</code></td>
+          <td><code>string create</code></td>
+          <td>Properties for character encoding when encoding strings or 
+          object names</td>
+      </tr>
+<!--
+              See <a href="#Property-SetCharEncoding">H5Pset_char_encoding</a>.
+-->
+
+        </table>
+
+      <p>This property list must eventually be closed with 
+      <code>H5Pclose</code>; otherwise, errors are likely to occur.</p>
+        </dd>
 
   <br />
   <dt><strong>Parameters:</strong></dt>
     <dd><table>
       <tr>
         <td valign="top"><em>hid_t</em> <code>cls_id    </code></td>
-        <td valign="top">IN: The class of the property list to create.</td></tr>
+        <td valign="top">IN: The class of the property list to create.
+        Valid values are listed in the “Description” 
+        above.</td></tr>
     </table></dd>
 
   <br />
@@ -161,11 +213,22 @@ SUBROUTINE h5pcreate_f(classtype, prp_id, hdferr)
   INTEGER, INTENT(IN) :: classtype       ! The type of the property list 
                                          ! to be created 
                                          ! Possible values are: 
-                                         !    H5P_FILE_CREATE_F 
-                                         !    H5P_FILE_ACCESS_F
-                                         !    H5P_DATASET_CREATE_F
-                                         !    H5P_DATASET_XFER_F 
-                                         !    H5P_FILE_MOUNT_F 
+                                         !    H5P_ATTRIBUTE_CREATE_F
+                                         !    H5P_DATASET_ACCESS_F
+                                         !    H5P_DATASET_CREATE_F
+                                         !    H5P_DATASET_XFER_F
+                                         !    H5P_DATATYPE_ACCESS_F
+                                         !    H5P_DATATYPE_CREATE_F
+                                         !    H5P_FILE_ACCESS_F
+                                         !    H5P_FILE_CREATE_F
+                                         !    H5P_FILE_MOUNT_F
+                                         !    H5P_GROUP_ACCESS_F
+                                         !    H5P_GROUP_CREATE_F
+                                         !    H5P_LINK_ACCESS_F
+                                         !    H5P_LINK_CREATE_F
+                                         !    H5P_OBJECT_COPY_F
+                                         !    H5P_OBJECT_CREATE_F
+                                         !    H5P_STRING_CREATE_F
   INTEGER(HID_T), INTENT(OUT) :: prp_id  ! Property list identifier 
   INTEGER, INTENT(OUT) :: hdferr         ! Error code
                                          ! 0 on success and -1 on failure
@@ -173,6 +236,7 @@ END SUBROUTINE h5pcreate_f
     </pre></dd>
 
   <dt><strong>See Also:</a></strong></dt>
+    <dd><a href="#Property-GetClassName">H5Pget_class_name</a></dd>
     <dd>
     <a href="http://www.hdfgroup.org/HDF5/doc/Advanced/UsingIdentifiers/index.html">
     “Using Identifiers”</a></dd>
@@ -197,6 +261,12 @@ END SUBROUTINE h5pcreate_f
         H5P_DATATYPE_ACCESS 
         H5P_ATTRIBUTE_CREATE                   </pre>
               </td></tr>
+
+        <tr>
+          <td valign="top">1.8.15</td>
+          <td valign="top">For each class, the class name returned by 
+          <code>H5Pget_class_name</code> was added.<br />
+          The list of possible Fortran values was updated.</td>
     </table>
 
 </dl>
diff --git a/html/RM/H5P/H5Pget_cache.htm b/html/RM/H5P/H5Pget_cache.htm
index 994d22c..ca0d792 100644
--- a/html/RM/H5P/H5Pget_cache.htm
+++ b/html/RM/H5P/H5Pget_cache.htm
@@ -41,7 +41,7 @@
         Any (or all) arguments may be null pointers, in which case the 
         corresponding datum is not returned.
         <p>
-        Note that the <code>*mdc_nelmts</code> parameter is not longer used.
+        Note that the <code>*mdc_nelmts</code> parameter is no longer used.
   <dt><strong>Parameters:</strong>
     <ul><table>
         <tr>
diff --git a/html/RM/H5P/H5Pget_class.htm b/html/RM/H5P/H5Pget_class.htm
index 65cfdf6..506b774 100644
--- a/html/RM/H5P/H5Pget_class.htm
+++ b/html/RM/H5P/H5Pget_class.htm
@@ -24,7 +24,7 @@
 <dl>
 
   <dt><div align=right><font color=999999 size=-1><i>
-      Last modified: 26 March 2014
+      Last modified: 7 April 2015
       </i></font></div>
 
   <dt><strong>Name:</strong> <a name="Property-GetClass">H5Pget_class</a>
@@ -65,16 +65,15 @@
         <pre>
     plist_class_id = H5Pget_class (dsetA_plist);
 
-    if H5Pequal (plist_class_id, H5P_OBJECT_CREATE) = 1;           ?  (which one?)
-    if H5Pequal (plist_class_id, H5P_OBJECT_CREATE) = TRUE;        ?
-            [ H5P_OBJECT_CREATE is the propoerty list class    ]
+    if H5Pequal (plist_class_id, H5P_OBJECT_CREATE) = TRUE;        
+            [ H5P_OBJECT_CREATE is the property list class    ]
             [ returned by H5Pget_class.                        ]
 
         else if H5Pequal (plist_class_id, H5P_DATASET_CREATE) = TRUE;
-            [ H5P_DATASET_CREATE is the propoerty list class.  ]
+            [ H5P_DATASET_CREATE is the property list class.  ]
 
         else if H5Pequal (plist_class_id, H5P_DATASET_XFER) = TRUE;
-            [ H5P_DATASET_XFER is the propoerty list class.    ]
+            [ H5P_DATASET_XFER is the property list class.    ]
 
         .
         .   [ Continuing the iteration until a match is found. ]
@@ -115,13 +114,6 @@ SUBROUTINE h5pget_class_f(prp_id, classtype, hdferr)
   INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier 
   INTEGER, INTENT(OUT) :: classtype    ! The type of the property list 
                                        ! to be created 
-                                       ! Possible values are: 
-                                       !    H5P_NO_CLASS  
-                                       !    H5P_FILE_CREATE_F 
-                                       !    H5P_FILE_ACCESS_F 
-                                       !    H5P_DATASET_CREATE_F 
-                                       !    H5P_DATASET_XFER_F
-                                       !    H5P_FILE_MOUNT_F 
   INTEGER, INTENT(OUT) :: hdferr       ! Error code
                                        ! 0 on success and -1 on failure
 END SUBROUTINE h5pget_class_f
@@ -142,6 +134,11 @@ END SUBROUTINE h5pget_class_f
           <td valign="top">
             Return type changed in this release.</td>
         </tr>
+        <tr>
+          <td valign="top">1.8.15</td>
+          <td valign="top">
+            Updated the Fortran subroutine.</td>
+        </tr>
         </table>
 </dl>
 
diff --git a/html/RM/H5P/H5Pget_class_name.htm b/html/RM/H5P/H5Pget_class_name.htm
index 6b146bd..761f2fb 100644
--- a/html/RM/H5P/H5Pget_class_name.htm
+++ b/html/RM/H5P/H5Pget_class_name.htm
@@ -20,52 +20,216 @@
 
 <!-- NEW PAGE -->
 <!-- HEADER RIGHT "H5Pget_class_name" -->
-<hr>
-<dl>
-  <dt><strong>Name:</strong> <a name="Property-GetClassName">H5Pget_class_name</a>
-
-  <dt><strong>Purpose:</strong>
-    <dd>Retrieves the name of a class.
+<hr />
+<dl>
+
+  <dt><div align="right"><font color="999999" size="-1"><i>
+    Last modified: 7 April 2015
+    </i></font></div></dt>
+    <br />
 
-  <dt><strong>Signature:</strong>
+  <dt><strong>Name:</strong> <a name="Property-GetClassName">
+    H5Pget_class_name</a></dt>
+
+  <br />
+  <dt><strong>Purpose:</strong></dt>
+    <dd>Retrieves the name of a class.</dd>
+
+  <br />
+  <dt><strong>Signature:</strong></dt>
     <dd><em>char *</em> <code>H5Pget_class_name</code>(
                   <em>hid_t</em> <code>pcid</code>
-	)
-
-  <dt><strong>Description:</strong>
+	)</dd>
+
+  <br />
+  <dt><strong>Description:</strong></dt>
     <dd><code>H5Pget_class_name</code> retrieves the name of a 
     generic property list class.  The pointer to the name 
-    must be freed by the user after each successful call.
+    must be freed by the user after each successful call.</dd>
+    <br />
+
+    <dd>
+    <table width="90%">
+    
+    <tr valign="top">
+      <td width="15%" >
+        <strong><code>H5Pget_class_name</code> <br />Returns this Class 
+        Name (Class Identifier)</strong></td>
+      <td width="10%" >
+        <strong>Property List <br />Class</strong></td>
+      <td width="25%" >
+        <strong>Expanded Name of the <br />Property List 
+        Class</strong></td>
+      <td width="15%" >
+        <strong>The Class Identifier Used <br />with 
+        H5Pcreate</strong></td>
+      <td width="35%" >
+        <strong>Comments</strong></td>
+    </tr>
+    
+    <tr valign="top">
+      <td><code>attribute create</code></td>
+      <td>acpl</td>
+      <td>Attribute Creation Property List</td>
+      <td><code>H5P_ATTRIBUTE_CREATE</code></td>
+      <td> </td>
+    </tr>
+    
+    <tr valign="top">
+      <td><code>dataset access</code></td>
+      <td>dapl</td>
+      <td>Dataset Access Property List</td>
+      <td><code>H5P_DATASET_ACCESS</code></td>
+      <td> </td>
+    </tr>
+    
+    <tr valign="top">
+      <td><code>dataset create</code></td>
+      <td>dcpl</td>
+      <td>Dataset Creation Property List</td>
+      <td><code>H5P_DATASET_CREATE</code></td>
+      <td> </td>
+    </tr>
+    
+    <tr valign="top">
+      <td><code>data transfer</code></td>
+      <td>dxpl</td>
+      <td>Data Transfer Property List</td>
+      <td><code>H5P_DATASET_XFER</code></td>
+      <td> </td>
+    </tr>
+    
+    <tr valign="top">
+      <td><code>datatype access</code></td>
+      <td> </td>
+      <td> </td>
+      <td><code>H5P_DATATYPE_ACCESS</code></td>
+      <td>This class can be created, but there <br />are no properties 
+      in the class currently.</td>
+    </tr>
+    
+    <tr valign="top">
+      <td><code>datatype create</code></td>
+      <td> </td>
+      <td> </td>
+      <td><code>H5P_DATATYPE_CREATE</code></td>
+      <td>This class can be created, but there <br />are no properties 
+      in the class currently.</td>
+    </tr>
+    
+    <tr valign="top">
+      <td><code>file access</code></td>
+      <td>fapl</td>
+      <td>File Access Property List</td>
+      <td><code>H5P_FILE_ACCESS</code></td>
+      <td> </td>
+    </tr>
+    
+    <tr valign="top">
+      <td><code>file create</code></td>
+      <td>fcpl</td>
+      <td>File Creation Property List</td>
+      <td><code>H5P_FILE_CREATE</code></td>
+      <td> </td>
+    </tr>
+    
+    <tr valign="top">
+      <td><code>file mount</code></td>
+      <td>fmpl</td>
+      <td>File Mount Property List</td>
+      <td><code>H5P_FILE_MOUNT</code></td>
+      <td> </td>
+    </tr>
+    
+    <tr valign="top">
+      <td><code>group access</code></td>
+      <td> </td>
+      <td> </td>
+      <td><code>H5P_GROUP_ACCESS</code></td>
+      <td>This class can be created, but there <br />are no properties 
+      in the class currently.</td>
+    </tr>
+    
+    <tr valign="top">
+      <td><code>group create</code></td>
+      <td>gcpl</td>
+      <td>Group Creation Property List</td>
+      <td><code>H5P_GROUP_CREATE</code></td>
+      <td> </td>
+    </tr>
+    
+    <tr valign="top">
+      <td><code>link access</code></td>
+      <td>lapl</td>
+      <td>Link Access Property List</td>
+      <td><code>H5P_LINK_ACCESS</code></td>
+      <td> </td>
+    </tr>
+    
+    <tr valign="top">
+      <td><code>link create</code></td>
+      <td>lcpl</td>
+      <td>Link Creation Property List</td>
+      <td><code>H5P_LINK_CREATE</code></td>
+      <td> </td>
+    </tr>
+    
+    <tr valign="top">
+      <td><code>object copy</code></td>
+      <td>ocpypl</td>
+      <td>Object Copy Property List</td>
+      <td><code>H5P_OBJECT_COPY</code></td>
+      <td> </td>
+    </tr>
+    
+    <tr valign="top">
+      <td><code>object create</code></td>
+      <td>ocpl</td>
+      <td>Object Creation Property List</td>
+      <td><code>H5P_OBJECT_CREATE</code></td>
+      <td> </td>
+    </tr>
+    
+    <tr valign="top">
+      <td><code>string create</code></td>
+      <td>strcpl</td>
+      <td>String Creation Property List</td>
+      <td><code>H5P_STRING_CREATE</code></td>
+      <td> </td>
+    </tr>
+    </table></dd>
 
-  <dt><strong>Parameters:</strong>
+  <br />
+  <dt><strong>Parameters:</strong></dt>
     <ul><table>
     <tr>
         <td><em>hid_t</em> <code>pcid    </code></td>
         <td>IN: Identifier of the property class  to query</td></tr>
     </table></ul>
 
-  <dt><strong>Returns:</strong>
-    <dd>Success: a pointer to an allocated string containing the class name
-    <dd>Failure: NULL
+  <br />
+  <dt><strong>Returns:</strong></dt>
+    <dd>Success:  a pointer to an allocated string containing 
+    the class name</dd>
+    <dd>Failure:  NULL</dd>
 
-  <dt><strong>Fortran90 Interface:</strong> h5pget_class_name_f
+  <br />
+  <dt><strong>Fortran90 Interface:</strong> h5pget_class_name_f</dt>
     <dd>
 	<pre>
-SUBROUTINE h5pget_class_name_f(prp_id, name, hdferr)
-  IMPLICIT NONE
-  INTEGER(HID_T), INTENT(IN) :: prp_id     ! Property list identifier to
-                                           ! query 
-  CHARACTER(LEN=*), INTENT(INOUT) :: name  ! Buffer to retrieve class name
-  INTEGER, INTENT(OUT) :: hdferr           ! Error code, possible values:
-                                           ! Success:  Actual length of the 
-                                           ! class name
-                                           ! If provided buffer "name" is 
-                                           ! smaller, than name will be 
-                                           ! truncated to fit into
-                                           ! provided user buffer
-                                           ! Failure: -1   
-END SUBROUTINE h5pget_class_name_f
-	</pre>		
+SUBROUTINE h5pget_class_name_f(prp_id, name, size, hdferr)
+  IMPLICIT NONE
+  INTEGER(HID_T), INTENT(IN) :: prp_id     ! Property list identifier to
+                                           ! query
+  INTEGER, INTENT(OUT) :: size             ! Actual length of the class name
+                                           !  NOTE: If provided buffer "name" is smaller,
+                                           !  than name will be truncated to fit into
+                                           !  provided user buffer.
+  CHARACTER(LEN=*), INTENT(INOUT) :: name  ! Buffer to retrieve class name
+  INTEGER, INTENT(OUT) :: hdferr           ! Error code
+                                           ! 0 on success and -1 on failure
+END SUBROUTINE h5pget_class_name_f
+	</pre></dd>
 		
 		<!--<dt><strong>Non-C API(s):</strong>
     	<dd>
@@ -73,5 +237,28 @@ END SUBROUTINE h5pget_class_name_f
         <img src="Graphics/Java.gif"> 
         <img src="Graphics/C++.gif">
         -->
-</dl>
+
+  <dt><strong>See Also:</a></strong></dt>
+    <dd><a href="#Property-Create">H5Pcreate</a></dd>
+
+<br />
+<dt><strong>History:</strong></dt>
+<dd><table width="90%">
+    <tr>
+    <td valign="top" align="left" width="10%">
+    <strong>Release</strong></td>
+    <td valign="top" align="left" width="90%">
+    <strong>Change</strong></td></tr>
+    <tr>
+    <td valign="top">1.8.15</td>
+    <td valign="top">
+    Fortran subroutine was updated.
+    <br />
+    Class name table was added to the Description.
+    </td></tr>
+    </table></dd>
+</dl>
+<br />
+<br />
+<br />
 
diff --git a/html/RM/H5P/H5Pset_fapl_multi.htm b/html/RM/H5P/H5Pset_fapl_multi.htm
index 49cbac7..00886b2 100644
--- a/html/RM/H5P/H5Pset_fapl_multi.htm
+++ b/html/RM/H5P/H5Pset_fapl_multi.htm
@@ -190,10 +190,10 @@ SUBROUTINE h5pset_fapl_multi_f(prp_id, memb_map, memb_fapl, memb_name,
   IMPLICIT NONE
   INTEGER(HID_T),INTENT(IN)  :: prp_id     ! Property list identifier
 
-  INTEGER,DIMENSION(0:H5FD_MEM_NTYPES_F-1),INTENT(IN)          :: memb_map
-  INTEGER(HID_T),DIMENSION(0:H5FD_MEM_NTYPES_F-1),INTENT(IN)   :: memb_fapl
-  CHARACTER(LEN=*),DIMENSION(0:H5FD_MEM_NTYPES_F-1),INTENT(IN) :: memb_name
-  REAL, DIMENSION(0:H5FD_MEM_NTYPES_F-1), INTENT(IN)           :: memb_addr
+  INTEGER,DIMENSION(H5FD_MEM_NTYPES_F),INTENT(IN)          :: memb_map
+  INTEGER(HID_T),DIMENSION(H5FD_MEM_NTYPES_F),INTENT(IN)   :: memb_fapl
+  CHARACTER(LEN=*),DIMENSION(H5FD_MEM_NTYPES_F),INTENT(IN) :: memb_name
+  REAL, DIMENSION(H5FD_MEM_NTYPES_F), INTENT(IN)           :: memb_addr
               ! Numbers in the interval [0,1) (e.g. 0.0 0.1 0.5 0.2 0.3 0.4)
               ! real address in the file will be calculated as X*HADDR_MAX</pre>
 <!-- NEW PAGE -->
diff --git a/html/RM/H5P/H5Pset_istore_k.htm b/html/RM/H5P/H5Pset_istore_k.htm
index f14455a..23e777d 100644
--- a/html/RM/H5P/H5Pset_istore_k.htm
+++ b/html/RM/H5P/H5Pset_istore_k.htm
@@ -43,14 +43,18 @@
   <dt><strong>Description:</strong>
         <dd><code>H5Pset_istore_k</code> sets the size of the parameter 
             used to control the B-trees for indexing chunked datasets.  
-            <p>
             This function is valid only for file creation property lists.
             <p>
             <code>ik</code> is one half the rank of a tree that stores 
             chunked raw data.  On average, such a tree will be 75% full, 
             or have an average rank of 1.5 times the value of 
             <code>ik</code>.
-
+	    <p>
+ 	    The HDF5 library uses <code>(ik*2)</code> as the maximum # of entries before splitting a
+ 	    B-tree node.
+ 	    Since only 2 bytes are used in storing # of entries for a B-tree node in an HDF5 file,
+ 	    <code>(ik*2)</code> cannot exceed <code>65536</code>.
+ 	    The default value for <code>ik</code> is <code>32</code>.
   <p>
   <dt><strong>Parameters:</strong>
     <dd><table>
@@ -61,8 +65,6 @@
         <tr>
             <td valign="top"><em>unsigned</em> <code>ik</code></td>
             <td valign="top">IN: 1/2 rank of chunked storage B-tree
-            <br>
-            <i>(Default value: <code>32</code>)
             </td></tr>
     </table></dd>
 
diff --git a/html/RM/H5P/H5Pset_sym_k.htm b/html/RM/H5P/H5Pset_sym_k.htm
index bf3d784..4148501 100644
--- a/html/RM/H5P/H5Pset_sym_k.htm
+++ b/html/RM/H5P/H5Pset_sym_k.htm
@@ -45,14 +45,18 @@
             control the symbol table nodes.  
             <p>
             This function is valid only for file creation property lists.  
-            <p>
             Passing in a value of zero (<code>0</code>) for 
             one of the parameters retains the current value. 
             <p>
-            <code>ik</code> is one half the rank of a tree that stores a symbol
+            <code>ik</code> is one half the rank of a B-tree that stores a symbol
             table for a group.  Internal nodes of the symbol table are on
             average 75% full.  That is, the average rank of the tree is
             1.5 times the value of <code>ik</code>.
+	    The HDF5 library uses <code>(ik*2)</code> as the maximum # of entries before splitting a
+            B-tree node.
+            Since only 2 bytes are used in storing # of entries for a B-tree node in an HDF5 file,
+            <code>(ik*2)</code> cannot exceed <code>65536</code>.
+            The default value for <code>ik</code> is <code>16</code>.
             <p>
             <code>lk</code> is one half of the number of symbols that can 
             be stored in a symbol table node.  A symbol table node is the 
@@ -60,7 +64,7 @@
             When symbols are inserted randomly into a group, the group's
             symbol table nodes are 75% full on average.  That is, they
             contain 1.5 times the number of symbols specified by 
-            <code>lk</code>.
+	    <code>lk</code>.  The default value for <code>lk</code> is <code>4</code>.
 
   <p>
   <dt><strong>Parameters:</strong>
@@ -72,14 +76,10 @@
         <tr>
             <td valign="top"><em>unsigned</em> <code>ik</code></td>
             <td valign="top">IN: Symbol table tree rank
-                <br>
-                <i>(Default value: <code>16</code>)
                 </td></tr>
         <tr>
             <td valign="top"><em>unsigned</em> <code>lk</code></td>
             <td valign="top">IN: Symbol table node size
-                <br>
-                <i>(Default value: <code>4</code>)
                 </td></tr>
     </table></dd>
 
diff --git a/html/RM/H5P/H5Pset_type_conv_cb.htm b/html/RM/H5P/H5Pset_type_conv_cb.htm
index 5473c8e..6ed6a64 100644
--- a/html/RM/H5P/H5Pset_type_conv_cb.htm
+++ b/html/RM/H5P/H5Pset_type_conv_cb.htm
@@ -52,8 +52,8 @@
         <dt><code>typedef</code> 
             <em>H5T_conv_ret_t</em> (<code>H5T_conv_except_func_t</code>) (
                 <em>H5T_conv_except_t</em> <code>except_type</code>, 
-                <em>hid_t *</em><code>src_id</code>, 
-                <em>hid_t *</em><code>dst_id</code>, 
+                <em>hid_t </em><code>src_id</code>, 
+                <em>hid_t </em><code>dst_id</code>, 
                 <em>void *</em><code>src_buf</code>, 
                 <em>void *</em><code>dst_buf</code>, 
                 <em>void *</em><code>op_data</code>)</dt>
@@ -133,8 +133,8 @@
                 </td></tr>
         <tr>
             <td valign="top"><em>H5T_conv_except_func_t</em> <code>func    </code></td>
-            <td valign="top">IN: User-defined type conversion callback function.<
-                /td></tr>
+            <td valign="top">IN: User-defined type conversion callback function.
+                </td></tr>
         <tr>
             <td valign="top"><em>void *</em><code>op_data</code></td>
             <td valign="top">IN: User-defined input data for the callback function.
diff --git a/html/RM/H5R/h5rget_object_type_f_F03.htm b/html/RM/H5R/h5rget_object_type_f_F03.htm
index 7f8d515..b2eb68b 100644
--- a/html/RM/H5R/h5rget_object_type_f_F03.htm
+++ b/html/RM/H5R/h5rget_object_type_f_F03.htm
@@ -17,11 +17,11 @@
 </pre>
 <p class="item_name"><strong>Outputs:</strong></p>
 <pre>  obj_type - Type of referenced object. 
-               H5G_UNKNOWN_F (-1)
-               H5G_LINK_F      0
-               H5G_GROUP_F     1
-               H5G_DATASET_F   2
-               H5G_TYPE_F      3
+               H5G_UNKNOWN_F 
+               H5G_LINK_F      
+               H5G_GROUP_F     
+               H5G_DATASET_F   
+               H5G_TYPE_F      
 
   hdferr   - Returns 0 if successful and -1 if fails
 </pre>
diff --git a/html/RM/H5R/h5rget_object_type_f_F90.htm b/html/RM/H5R/h5rget_object_type_f_F90.htm
index d8e1d9f..bdc3df8 100644
--- a/html/RM/H5R/h5rget_object_type_f_F90.htm
+++ b/html/RM/H5R/h5rget_object_type_f_F90.htm
@@ -16,11 +16,11 @@
 </pre>
 <p class="item_name"><strong>Outputs:</strong></p>
 <pre>  obj_type - Type of referenced object. 
-               H5G_UNKNOWN_F (-1)
-               H5G_LINK_F      0
-               H5G_GROUP_F     1
-               H5G_DATASET_F   2
-               H5G_TYPE_F      3
+               H5G_UNKNOWN_F 
+               H5G_LINK_F      
+               H5G_GROUP_F     
+               H5G_DATASET_F   
+               H5G_TYPE_F      
 
   hdferr   - Returns 0 if successful and -1 if fails
 </pre>
diff --git a/html/RM/RM_H5.html b/html/RM/RM_H5.html
index 38bf71c..bfd8880 100644
--- a/html/RM/RM_H5.html
+++ b/html/RM/RM_H5.html
@@ -95,24 +95,26 @@ library and its users.
 <ul>
     <li><a href="#Library-Open">H5open</a></li>
     <li><a href="#Library-Close">H5close</a></li>
+    <li><a href="#Library-DontAtExit">H5dont_atexit</a></li>
     <li><a href="#Library-SetFreeListLimits">H5set_free_list_limits</a></li>
-    <li><a href="#Library-GarbageCollect">H5garbage_collect</a></li>
 </ul>
 </td>
 <td valign="top" width="15%">
 <ul>
-    <li><a href="#Library-DontAtExit">H5dont_atexit</a></li>
-    <li><a href="#Library-Version">H5get_libversion</a></li>
-    <li><a href="#Library-VersCheck">H5check_version</a></li>
+    <li><a href="#Library-GarbageCollect">H5garbage_collect</a></li>
+    <li><a href="#Library-AllocateMemory">H5allocate_memory</a></li>
+    <li><a href="#Library-ResizeMemory">H5resize_memory</a></li>
+    <li><a href="#Library-FreeMemory">H5free_memory</a></li>
 </ul>
 </td>
 
 <td valign="top" width="70%">
 
 <ul>
+    <li><a href="#Library-Version">H5get_libversion</a></li>
+    <li><a href="#Library-VersCheck">H5check_version</a></li>
     <li><a href="#Library-VersionGE">H5_VERSION_GE</a></li>
     <li><a href="#Library-VersionLE">H5_VERSION_LE</a></li>
-    <li><a href="#Library-FreeMemory">H5free_memory</a></li>
 </ul>
 
 </td>
@@ -127,15 +129,16 @@ library and its users.
 
     <td valign="top" width="15%">
 	<ul>
+      <li><a href="#Library-AllocateMemory">H5allocate_memory</a></li>
       <li><a href="#Library-VersCheck">H5check_version</a></li>
       <li><a href="#Library-Close">H5close</a></li>
       <li><a href="#Library-DontAtExit">H5dont_atexit</a></li>
-      <li><a href="#Library-FreeMemory">H5free_memory</a></li>
 	</ul>
     </td>
     
     <td valign="top" width="15%">
 	<ul>
+      <li><a href="#Library-FreeMemory">H5free_memory</a></li>
       <li><a href="#Library-GarbageCollect">H5garbage_collect</a></li>
       <li><a href="#Library-Version">H5get_libversion</a></li>
       <li><a href="#Library-Open">H5open</a></li>
@@ -144,6 +147,7 @@ library and its users.
     
     <td valign="top" width="70%">
 	<ul>
+      <li><a href="#Library-ResizeMemory">H5resize_memory</a></li>
       <li><a href="#Library-SetFreeListLimits">H5set_free_list_limits</a></li>
       <li><a href="#Library-VersionGE">H5_VERSION_GE</a></li>
       <li><a href="#Library-VersionLE">H5_VERSION_LE</a></li>
@@ -176,6 +180,8 @@ as the corresponding C function.
 <td valign="top" width="70%">
 <ul>
 <!--<li><a href="#Library-SetFreeListLimits">h5set_free_list_limits_f</a>  -->
+<!--<li><a href="#Library-AllocateMemory">H5allocate_memory</a></li>       -->
+<!--<li><a href="#Library-ResizeMemory">H5resize_memory</a></li>           -->
     <li><a href="#Library-GarbageCollect">h5garbage_collect_f</a></li>
     <li><a href="#Library-DontAtExit">h5dont_atexit_f</a></li>
 </ul>
@@ -194,6 +200,7 @@ as the corresponding C function.
 <!--       Include function files                            -->
 <!--  ---  ---  ---  ---  ---  ---  ---  ---  ---  ---  ---  -->
 
+<?php include("H5/H5allocate_memory.htm"); ?>
 <?php include("H5/H5check_version.htm"); ?>
 <?php include("H5/H5close.htm"); ?>
 <?php include("H5/H5dont_atexit.htm"); ?>
@@ -201,6 +208,7 @@ as the corresponding C function.
 <?php include("H5/H5garbage_collect.htm"); ?>
 <?php include("H5/H5get_libversion.htm"); ?>
 <?php include("H5/H5open.htm"); ?>
+<?php include("H5/H5resize_memory.htm"); ?>
 <?php include("H5/H5set_free_list_limits.htm"); ?>
 <?php include("H5/H5_version_ge.htm"); ?>
 <?php include("H5/H5_version_le.htm"); ?>
@@ -269,7 +277,7 @@ In the
 
 <SCRIPT LANGUAGE="JAVASCRIPT">
 <!--
-document.writeln("Last modified: 23 April 2014");
+document.writeln("Last modified: 1 May 2015");
 -->
 </SCRIPT>
 
diff --git a/html/RM/RM_H5Front.html b/html/RM/RM_H5Front.html
index 7c510dc..5413b11 100644
--- a/html/RM/RM_H5Front.html
+++ b/html/RM/RM_H5Front.html
@@ -486,7 +486,7 @@ In the
 <table width="100%" border="0"> <tr valign="top"> <td align="left">
 <SCRIPT LANGUAGE="JAVASCRIPT">
 <!--
-document.writeln("Last modified: 13 November 2014");
+document.writeln("Last modified: 11 May 2015");
 -->
 </SCRIPT>
 </td></tr></table>
diff --git a/html/RM/RM_H5O.html b/html/RM/RM_H5O.html
index 7b04fb5..7f1f30f 100644
--- a/html/RM/RM_H5O.html
+++ b/html/RM/RM_H5O.html
@@ -341,7 +341,7 @@ In the
 
 <SCRIPT LANGUAGE="JAVASCRIPT">
 <!--
-document.writeln("Last modified: 14 October 2014");
+document.writeln("Last modified: 11 May 2015");
 -->
 </SCRIPT>
 
diff --git a/html/RM/RM_H5P.html b/html/RM/RM_H5P.html
index 4e0bc24..18c0351 100644
--- a/html/RM/RM_H5P.html
+++ b/html/RM/RM_H5P.html
@@ -3749,7 +3749,7 @@ In the
 
 <SCRIPT LANGUAGE="JAVASCRIPT">
 <!--
-document.writeln("Last modified: 4 November 2014");
+document.writeln("Last modified: 7 April 2015");
 -->
 </SCRIPT>
  
diff --git a/html/RM/Tools.html b/html/RM/Tools.html
index 35e3a6a..7d13526 100644
--- a/html/RM/Tools.html
+++ b/html/RM/Tools.html
@@ -141,7 +141,7 @@ installed with HDF5.
 
     <li>User utilities distributed separately: 
     <ul>
-        <li><a href="http://www.hdfgroup.org/ftp/HDF5/special_tools/h5check/src/unpacked/doc/h5check.pdf"">h5check</a> -- 
+        <li><a href="http://www.hdfgroup.org/ftp/HDF5/tools/h5check/src/unpacked/doc/h5check.pdf"">h5check</a> -- 
             Verifies that an HDF5 file is validly encoded.
             <br>
             <em>(Distributed separately; see 
@@ -329,7 +329,7 @@ In the
 
 <SCRIPT LANGUAGE="JAVASCRIPT">
 <!--
-document.writeln("Last modified: 29 April 2014");
+document.writeln("Last modified: 13 May 2015");
 -->
 </SCRIPT>
 
diff --git a/html/RM/Tools/h52gif.htm b/html/RM/Tools/h52gif.htm
index 2c7ff7c..fa0b77b 100644
--- a/html/RM/Tools/h52gif.htm
+++ b/html/RM/Tools/h52gif.htm
@@ -24,15 +24,14 @@
 <dl>
 
 <dt><div align=right><font color=999999 size=-1><i>
-    Last modified: 4 January 2011
+    Last modified: 7 April 2015
     </i></font></div>
 
 <dt><strong>Tool Name:</strong> <a name="Tools-H52GIF">h52gif</a>
 <dt><strong>Syntax:</strong>
-    <dd><code>h52gif</code>
-        <em>h5_file</em> <em>gif_file</em>
-        <code>-i</code> <em>h5_image</em>
-        <code>[-p</code> <em>h5_palette</em><code>]</code>
+    <dd><code>h52gif <em>h5_file</em> <em>gif_file</em> 
+        <code>-i</code> <em>h5_image</em> </code>
+        
 
 <p>
 <dt><strong>Purpose:</strong>
@@ -40,39 +39,27 @@
 
 <p>
 <dt><strong>Description:</strong>
-    <dd><code>h52gif</code> accepts as input the HDF5 file <em>h5_file</em>
-        and the names of images and associated palettes within that file 
-        as input and produces the GIF file <em>gif_file</em>, 
-        containing those images, as output.
-        <p>
-        <code>h52gif</code> expects <em>at least</em> 
-        one <em>h5_image</em>. 
-        You may repeat 
-        <br>
-                    
-                <code>-i</code> <em>h5_image</em>
-                <code>[-p</code> <em>h5_palette</em><code>]</code>
-        <br>
-        up to 50 times, for a maximum of 50 images.
+    <dd><code>h52gif</code> accepts as input the HDF5 file 
+        <code><em>h5_file</em></code> and the name of an image within 
+        that file as input and produces the GIF file 
+        <code><em>gif_file</em></code>, 
+        containing the image, as output.</dd>
 
 <p>
 <dt><strong>Options and Parameters:</strong>
     <dd><table>
         <tr>
-            <td valign="top"><em>h5_file</em></td>
+            <td valign="top"><code><em>h5_file</em></code></td>
             <td valign="top">The name of the input HDF5 file</td></tr>
         <tr>
-            <td valign="top"><em>gif_file</em></td>
+            <td valign="top"><code><em>gif_file</em></code></td>
             <td valign="top">The name of the output GIF file</td></tr>
         <tr>
-            <td valign="top"><code>-i</code> <em>h5_image</em></td>
-            <td valign="top">Image option, specifying the name of an HDF5 image 
-                or dataset containing an image to be converted</td></tr>
-        <tr>
-            <td valign="top"><code>-p</code> <em>h5_palette    </em></td>
-            <td valign="top">Palette option, specifying the name of an 
-                HDF5 dataset containing a palette to be used in an image 
-                conversion</td></tr>
+            <td valign="top"><code>-i <em>h5_image</em></code>
+                  </td>
+            <td valign="top">Image option, specifying the name of an 
+                HDF5 image or dataset containing an image to be 
+                converted</td></tr>
     </table></dd>
 
 <p>
@@ -111,6 +98,12 @@
         <td valign="top">1.8.5</td>
         <td valign="top">
           Tool exit status codes updated.</td></tr>
+      <tr>
+        <td valign="top">1.8.15</td>
+        <td valign="top">
+          The -p option was removed from the “Options and 
+          Parameters” section: the feature has not been 
+          implemented.</td></tr>
     </table></dd>
 
 </dl>
diff --git a/html/TechNotes.html b/html/TechNotes.html
index 3f4580f..2039388 100644
--- a/html/TechNotes.html
+++ b/html/TechNotes.html
@@ -1,6 +1,6 @@
 <html>
 <head><title>
-HDF5 Special Topics and Technical Notes
+HDF5 Technical Notes
 </title></head>
 
 <body bgcolor="#FFFFFF">
@@ -51,7 +51,7 @@ HDF5 Special Topics and Technical Notes  
 </center>
 <hr>
 <!-- #EndLibraryItem --><center>
-<h1>HDF5 Special Topics and Technical Notes</h1>
+<h1>HDF5 Technical Notes</h1>
 <!--
 <h3>Technical Notes for HDF5 Library and Driver Developers</h3>
 -->
@@ -79,11 +79,19 @@ HDF5 Special Topics and Technical Notes  
 -->
     <hr>
 
-<h3>Special Topics</h3>
+<h3>Technical Notes</h3>
 
 </td></tr>
 
 <tr><td valign=top>
+<a href="TechNotes/TechNote-HDF5-CompressionTroubleshooting.pdf">
+    HDF5 Compression Troubleshooting</a>
+    </td><td> </td><td valign=top colspan="3">
+    Describes how to diagnose situations in files when compression 
+    is not working as expected.
+</td></tr>
+
+<tr><td valign=top>
 <a href="TechNotes/VFL.html">Virtual File Layer</a>
     </td><td> </td><td valign=top colspan="3">
     A description of the HDF5 virtual file layer (VFL), 
@@ -160,7 +168,7 @@ HDF5 Special Topics and Technical Notes  
 
 <tr><td valign=top colspan=5>
 
-<h3>Technical Notes and Historical Notes</h3>
+<h3>Historical Notes</h3>
 
     These documents are retained because they shed light on HDF5’s 
     design and development history; many were working papers for the 
@@ -396,7 +404,7 @@ HDF5 Technical Notes  
 
 <?php include("./ed_libs/Footer.htm"); ?>
 
-Last modified:  6 November 2014
+Last modified: 24 April 2015
 
 
 
diff --git a/html/TechNotes/TechNote-HDF5-CompressionTroubleshooting.docx b/html/TechNotes/TechNote-HDF5-CompressionTroubleshooting.docx
new file mode 100644
index 0000000..01475d3
Binary files /dev/null and b/html/TechNotes/TechNote-HDF5-CompressionTroubleshooting.docx differ
diff --git a/html/UG/14_PropertyLists.html b/html/UG/14_PropertyLists.html
index abab6d1..199ae0d 100755
--- a/html/UG/14_PropertyLists.html
+++ b/html/UG/14_PropertyLists.html
@@ -2002,9 +2002,9 @@ specify a driver, so the default driver,
     <tr><td colspan="3"><hr color="green" size="1" /></td></tr>
     <tr valign="top">
         <td>
-        <code>H5copy</code>
+        <code>H5Pcopy</code>
         <br />
-        <code>h5copy_f</code>
+        <code>h5pcopy_f</code>
         </td>
         <td> </td>
         <td>
diff --git a/html/UG/Images/back.png b/html/UG/Images/back.png
new file mode 100644
index 0000000..b4ecc01
Binary files /dev/null and b/html/UG/Images/back.png differ
diff --git a/html/UG/Images/forward.png b/html/UG/Images/forward.png
new file mode 100644
index 0000000..5bcfd48
Binary files /dev/null and b/html/UG/Images/forward.png differ
diff --git a/html/UG/UG_UpdateStatus.html b/html/UG/UG_UpdateStatus.html
index c1adcb0..fe65607 100644
--- a/html/UG/UG_UpdateStatus.html
+++ b/html/UG/UG_UpdateStatus.html
@@ -7,66 +7,17 @@
 
 <h1 align="center">HDF5 User’s Guide Update Status</h1>
 
-<p>No major changes have been made to the <cite>HDF5 User’s 
-Guide</cite> for HDF5 Release 1.8.14. </p>
-
-<p>The main updates made for the 1.8.13 release are the following:</p>
-    <ul>
-        <li>The “Properties and Property Lists in HDF5” 
-        chapter was added. This chapter gives a general overview of 
-        how property lists are used by the HDF5 Library.</li>
-        <li>The 
-        <a href="../Advanced/FreeingMemory/FreeingMemoryAllocatedByTheHdf5Library.pdf">
-        <em>Freeing Memory Allocated by the HDF5 Library</em></a> 
-        topic was added to the “Additional Resources” chapter. 
-        This topic describes how inconsistent memory management can 
-        cause heap corruption or resource leaks and possible solutions.</li>
-        <li>The 
-        <a href="../Advanced/ModifiedRegionWrites/ModifiedRegionWrites.pdf">
-        <em>Modified Region Writes</em></a> topic was added to the 
-        “Additional Resources” chapter. This topic describes 
-        how to set write operations for in-memory files so that only 
-        modified regions are written to storage. This feature is 
-        available when the Core (Memory) VFD is used.</li>
-        
-    </ul>
-
-
-<!--
 <br />
+<p>No changes have been made to the <cite>HDF5 User’s Guide</cite> 
+for HDF5 Release 1.8.15. </p>
 
-<p>The <cite>HDF5 User’s Guide</cite> has been updated 
-for HDF5 Release 1.8.13. These updates have been made since the 1.8.12 
-version of this document was published in November 2013.</p>
-
-<p>The main updates are the following:</p>
-    <ul>
-        <li>The “Properties and Property Lists in HDF5” 
-        chapter was added. This chapter gives a general overview of 
-        how property lists are used by the HDF5 Library.</li>
-        <li>The 
-        <a href="../Advanced/FreeingMemory/FreeingMemoryAllocatedByTheHdf5Library.pdf">
-        <em>Freeing Memory Allocated by the HDF5 Library</em></a> 
-        topic was added to the “Additional Resources” chapter. 
-        This topic describes how inconsistent memory management can 
-        cause heap corruption or resource leaks and possible solutions.</li>
-        <li>The 
-        <a href="../Advanced/ModifiedRegionWrites/ModifiedRegionWrites.pdf">
-        <em>Modified Region Writes</em></a> topic was added to the 
-        “Additional Resources” chapter. This topic describes 
-        how to set write operations for in-memory files so that only 
-        modified regions are written to storage. This feature is 
-        available when the Core (Memory) VFD is used.</li>
-        
-    </ul>
--->
 
 <p>We welcome feedback on the documentation. Please send your comments to 
 <a href="mailto:docs at hdfgroup.org"><code>docs at hdfgroup.org</code></a>.
 </p>
 <br />
 <div align="left"><font color="999999" size="-1"><i>
-    Last modified: 28 October 2014
+    Last modified: 27 April 2015
     </i></font></div>
     
 
diff --git a/html/UG/UG_front.html b/html/UG/UG_front.html
index 21c2c43..3aee605 100644
--- a/html/UG/UG_front.html
+++ b/html/UG/UG_front.html
@@ -17,9 +17,9 @@
 <h1>HDF5 User's Guide</h1>
 <br>
 <br>
-<h3>HDF5 Release 1.8.14
+<h3>HDF5 Release 1.8.15
     <br>
-    <br>November 2014</h3>
+    <br>May 2015</h3>
 
  
 <hr>
diff --git a/html/UG/UG_nav00.html b/html/UG/UG_nav00.html
index 24db297..deb66d5 100644
--- a/html/UG/UG_nav00.html
+++ b/html/UG/UG_nav00.html
@@ -256,7 +256,7 @@
 </font>
 <font size="-2" face="tahoma,arial,sans-serif"><SCRIPT LANGUAGE="JAVASCRIPT">
 <!--
-document.writeln("Last modified: 28 October 2014");
+document.writeln("Last modified: 27 April 2015");
 -->
 </SCRIPT>
 </font>
diff --git a/html/UG/UG_navObjectsIdentifiers.html b/html/UG/UG_navObjectsIdentifiers.html
index 785320b..daf5a41 100644
--- a/html/UG/UG_navObjectsIdentifiers.html
+++ b/html/UG/UG_navObjectsIdentifiers.html
@@ -159,7 +159,7 @@
 <br />
 <b>III. <a href="17_Additional.html" TARGET="CONTENT">Additional Resources</a>
       </b><br />
-<b>IV. <a href="http://www.hdfgroup.org/HDF5/examples/">
+<b>IV. <a href="http://www.hdfgroup.org/ftp/HDF5/examples/examples-by-api/">
       Code Examples</a></b><br />
 
     <font color="#555555">
diff --git a/html/doc-info.html b/html/doc-info.html
index d5a8bc3..6a9da65 100644
--- a/html/doc-info.html
+++ b/html/doc-info.html
@@ -19,14 +19,14 @@
 
 
 <?php
-$page_title = "HDF5 Documentation: Releases 1.6.10 and 1.8.14"; 
+$page_title = "HDF5 Documentation: Releases 1.6.10 and 1.8.15"; 
 include ("../../links.php"); 
 include ("../../includes/header.html"); 
 ?>
 <fieldset><h1>HDF5 Documentation</H1></fieldset>
 
 <p align=left>
-    <A HREF="./index.html">Release 1.8.14</A>
+    <A HREF="./index.html">Release 1.8.15</A>
     <code>  </code>
     <A HREF="../doc1.6/index.html">Release 1.6.10</A>
 
@@ -45,14 +45,14 @@ enables users to locate the desired documentation set.
 </p>
 <hr>
 
-<h2>HDF5 Release 1.8.14</h2>
+<h2>HDF5 Release 1.8.15</h2>
 
 
-<p>Release 1.8.14 is the current release.  
+<p>Release 1.8.15 is the current release.  
    New projects are strongly encouraged to use this release as it contains 
    many new features, file optimizations, and performance enhancements.</p>
 
-<p><h4>Release 1.8.14 Documentation (latest release):</h4></p>
+<p><h4>Release 1.8.15 Documentation (latest release):</h4></p>
 <p>
     <ul>
       <ul>
diff --git a/html/ed_libs/Footer-THGonly.htm b/html/ed_libs/Footer-THGonly.htm
index d24a5c4..72cd7aa 100644
--- a/html/ed_libs/Footer-THGonly.htm
+++ b/html/ed_libs/Footer-THGonly.htm
@@ -8,7 +8,7 @@
           <address>
           The HDF Group Help Desk: <img src="./Graphics/help.png" align=top height=16>
           <br>
-          Describes HDF5 Release 1.8.14, November 2014.
+          Describes HDF5 Release 1.8.15, May 2015.
           </address>
       </td><td width="5%"> </td>
       <td align="right">
diff --git a/html/ed_libs/Footer-THGonly.lbi b/html/ed_libs/Footer-THGonly.lbi
index 089dcc0..c34d171 100644
--- a/html/ed_libs/Footer-THGonly.lbi
+++ b/html/ed_libs/Footer-THGonly.lbi
@@ -6,7 +6,7 @@
           <address>
           The HDF Group Help Desk: <img src="../Graphics/help.png" align=top height=16>
           <br>
-          Describes HDF5 Release 1.8.14, November 2014.
+          Describes HDF5 Release 1.8.15, May 2015.
           </address>
       </td><td width="5%"> </td>
       <td align="right">
diff --git a/html/ed_libs/Footer-THGonly2.htm b/html/ed_libs/Footer-THGonly2.htm
index 86a4cff..4c8493f 100644
--- a/html/ed_libs/Footer-THGonly2.htm
+++ b/html/ed_libs/Footer-THGonly2.htm
@@ -8,7 +8,7 @@
           <address>
           The HDF Group Help Desk: <img src="../Graphics/help.png" align=top height=16>
           <br>
-          Describes HDF5 Release 1.8.14, November 2014.
+          Describes HDF5 Release 1.8.15, May 2015.
           </address>
       </td><td width="5%"> </td>
       <td align="right">
diff --git a/html/ed_libs/Footer-THGonly3.htm b/html/ed_libs/Footer-THGonly3.htm
index c527ada..8f816c4 100644
--- a/html/ed_libs/Footer-THGonly3.htm
+++ b/html/ed_libs/Footer-THGonly3.htm
@@ -8,7 +8,7 @@
           <address>
           The HDF Group Help Desk: <img src="../../Graphics/help.png" align=top height=16>
           <br>
-          Describes HDF5 Release 1.8.14, November 2014.
+          Describes HDF5 Release 1.8.15, May 2015.
           </address>
       </td><td width="5%"> </td>
       <td align="right">
diff --git a/html/ed_libs/Footer.htm b/html/ed_libs/Footer.htm
index 4892c4b..54a1ecb 100644
--- a/html/ed_libs/Footer.htm
+++ b/html/ed_libs/Footer.htm
@@ -8,7 +8,7 @@
           <address>
           The HDF Group Help Desk: <img src="./Graphics/help.png" align=top height=16>
           <br>
-          Describes HDF5 Release 1.8.14, November 2014.
+          Describes HDF5 Release 1.8.15, May 2015.
           </address>
       </td><td width="5%"> </td>
       <td align="right">
diff --git a/html/ed_libs/Footer.lbi b/html/ed_libs/Footer.lbi
index ae37d9e..98a20dc 100644
--- a/html/ed_libs/Footer.lbi
+++ b/html/ed_libs/Footer.lbi
@@ -6,7 +6,7 @@
           <address>
           The HDF Group Help Desk: <img src="../Graphics/help.png" align=top height=16>
           <br>
-          Describes HDF5 Release 1.8.14, November 2014.
+          Describes HDF5 Release 1.8.15, May 2015.
           </address>
       </td><td width="5%"> </td>
       <td align="right">
diff --git a/html/ed_libs/Footer2.htm b/html/ed_libs/Footer2.htm
index 1515771..dca8c0d 100644
--- a/html/ed_libs/Footer2.htm
+++ b/html/ed_libs/Footer2.htm
@@ -8,7 +8,7 @@
           <address>
           The HDF Group Help Desk: <img src="../Graphics/help.png" align=top height=16>
           <br>
-          Describes HDF5 Release 1.8.14, November 2014.
+          Describes HDF5 Release 1.8.15, May 2015.
           </address>
       </td><td width="5%"> </td>
       <td align="right">
diff --git a/html/ed_libs/Footer3.htm b/html/ed_libs/Footer3.htm
index cc1168d..e0d5017 100644
--- a/html/ed_libs/Footer3.htm
+++ b/html/ed_libs/Footer3.htm
@@ -8,7 +8,7 @@
           <address>
           The HDF Group Help Desk: <img src="../../Graphics/help.png" align=top height=16>
           <br>
-          Describes HDF5 Release 1.8.14, November 2014.
+          Describes HDF5 Release 1.8.15, May 2015.
           </address>
       </td><td width="5%"> </td>
       <td align="right">
diff --git a/html/index.html b/html/index.html
index aa25334..41382bc 100644
--- a/html/index.html
+++ b/html/index.html
@@ -256,7 +256,7 @@
 <td bgcolor="#FFFFFF" valign="top" align="center" colspan="3">
     <br />
     <font size="5" color="#004488">HDF5 Library</font>
-    <br /><font size="4" color="#004488">Release 1.8.14, November 2014
+    <br /><font size="4" color="#004488">Release 1.8.15, May 2015
     </font>
 </td>
 </tr>
@@ -401,7 +401,7 @@
 -->
         <br />
         <!-- hhmts start -->
-        Last modified: 13 November 2014
+        Last modified: 13 May 2015
         <!-- hhmts end -->
 
         <p>
diff --git a/m4/aclocal_cxx.m4 b/m4/aclocal_cxx.m4
new file mode 100644
index 0000000..b44ae82
--- /dev/null
+++ b/m4/aclocal_cxx.m4
@@ -0,0 +1,121 @@
+dnl -------------------------------------------------------------------------
+dnl -------------------------------------------------------------------------
+dnl
+dnl Copyright by the Board of Trustees of the University of Illinois.
+dnl All rights reserved.
+dnl
+dnl This file is part of HDF5.  The full HDF5 copyright notice, including
+dnl terms governing use, modification, and redistribution, is contained in
+dnl the files COPYING and Copyright.html.  COPYING can be found at the root
+dnl of the source code distribution tree; Copyright.html can be found at the
+dnl root level of an installed copy of the electronic HDF5 document set and
+dnl is linked from the top-level documents page.  It can also be found at
+dnl http://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html.  If you do not have
+dnl access to either file, you may request a copy from hdfhelp at ncsa.uiuc.edu.
+dnl
+dnl -------------------------------------------------------------------------
+dnl -------------------------------------------------------------------------
+
+dnl *********************************
+dnl PURPOSE
+dnl  Contains Macros for HDF5 C++
+dnl *********************************
+dnl
+dnl Special characteristics that have no autoconf counterpart but that
+dnl we need as part of the C++ support.  To distinquish these, they
+dnl have a [PAC] prefix.
+
+dnl Checking if C++ needs old style header files in includes
+
+AC_DEFUN([PAC_PROG_CXX_HEADERS],[
+  AC_MSG_CHECKING([if $CXX needs old style header files in includes])
+  AC_LINK_IFELSE([AC_LANG_SOURCE([
+#include <iostream>
+
+int main(void) { return 0; }
+  ])],
+    [AC_MSG_RESULT([no])],
+    [AC_MSG_RESULT([yes])
+    CXXFLAGS="${CXXFLAGS} -DOLD_HEADER_FILENAME"
+    AM_CXXFLAGS="${AM_CXXFLAGS} -DOLD_HEADER_FILENAME"])
+])
+
+dnl Checking if ++ can handle namespaces
+
+AC_DEFUN([PAC_PROG_CXX_NAMESPACE],[
+  AC_MSG_CHECKING([if $CXX can handle namespaces])
+  AC_LINK_IFELSE([AC_LANG_SOURCE([
+namespace H5 {
+int fnord;
+}
+
+int main(void) {
+   using namespace H5;
+   fnord = 37;
+   return 0;
+} 
+  ])], [AC_MSG_RESULT([yes])],
+     [AC_MSG_RESULT([no])
+     CXXFLAGS="${CXXFLAGS} -DH5_NO_NAMESPACE"
+     AM_CXXFLAGS="${AM_CXXFLAGS} -DH5_NO_NAMESPACE"])
+])
+
+dnl Checking if C++ supports std
+
+AC_DEFUN([PAC_PROG_CXX_STD],[
+  AC_MSG_CHECKING([if $CXX supports std])
+  AC_LINK_IFELSE([AC_LANG_SOURCE([
+#include <string>
+
+using namespace std;
+
+int main(void) {
+   string myString("testing namespace std");
+   return 0;
+}
+  ])], [AC_MSG_RESULT([yes])],
+     [AC_MSG_RESULT([no])
+     CXXFLAGS="${CXXFLAGS} -DH5_NO_STD"
+     AM_CXXFLAGS="${AM_CXXFLAGS} -DH5_NO_STD"])
+])
+
+dnl Checking if C++ has offsetof extension
+
+AC_DEFUN([PAC_PROG_CXX_OFFSETOF],[
+  AC_MSG_CHECKING([if $CXX has offsetof extension])
+    AC_LINK_IFELSE([AC_LANG_PROGRAM([
+  #include <stdio.h>
+  #include <stddef.h>
+    ],[
+    struct index_st
+    {
+      unsigned char type;
+      unsigned char num;
+      unsigned int len;
+    };
+    typedef struct index_st index_t;
+    int x,y;
+    x = offsetof(struct index_st, len);
+    y = offsetof(index_t, num)
+    ])],[AC_MSG_RESULT([yes])
+    AC_DEFINE([CXX_HAVE_OFFSETOF], [1], [Define if C++ compiler recognizes offsetof])],
+    AC_MSG_RESULT([no]))
+])
+
+dnl Checking if C++ can handle static cast
+
+AC_DEFUN([PAC_PROG_CXX_STATIC_CAST],[
+  AC_MSG_CHECKING([if $CXX can handle static cast])
+  AC_LINK_IFELSE([AC_LANG_SOURCE([
+int main(void) {
+   float test_float;
+   int test_int;
+   test_float = 37.0;
+   test_int = static_cast <int> (test_float);
+   return 0;
+}
+  ])], [AC_MSG_RESULT([yes])],
+    [AC_MSG_RESULT([no])
+    CXXFLAGS="${CXXFLAGS} -DNO_STATIC_CAST"
+    AM_CXXFLAGS="${AM_CXXFLAGS} -DNO_STATIC_CAST"])
+])
diff --git a/m4/aclocal_fc.m4 b/m4/aclocal_fc.m4
new file mode 100644
index 0000000..6ad75e2
--- /dev/null
+++ b/m4/aclocal_fc.m4
@@ -0,0 +1,283 @@
+dnl -------------------------------------------------------------------------
+dnl -------------------------------------------------------------------------
+dnl
+dnl Copyright by the Board of Trustees of the University of Illinois.
+dnl All rights reserved.
+dnl
+dnl This file is part of HDF5.  The full HDF5 copyright notice, including
+dnl terms governing use, modification, and redistribution, is contained in
+dnl the files COPYING and Copyright.html.  COPYING can be found at the root
+dnl of the source code distribution tree; Copyright.html can be found at the
+dnl root level of an installed copy of the electronic HDF5 document set and
+dnl is linked from the top-level documents page.  It can also be found at
+dnl http://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html.  If you do not have
+dnl access to either file, you may request a copy from hdfhelp at ncsa.uiuc.edu.
+dnl
+dnl -------------------------------------------------------------------------
+dnl -------------------------------------------------------------------------
+
+dnl *********************************
+dnl PURPOSE
+dnl  Contains Macros for HDF5 Fortran
+dnl *********************************
+dnl
+dnl Special characteristics that have no autoconf counterpart but that
+dnl we need as part of the C++ support.  To distinquish these, they
+dnl have a [PAC] prefix.
+dnl
+dnl -------------------------------------------------------------------------
+dnl
+dnl PAC_FC_SEARCH_LIST - expands to a whitespace separated list of modern
+dnl fortran compilers for use with AC_PROG_FC that is more suitable for HPC
+dnl software packages
+AC_DEFUN([PAC_FC_SEARCH_LIST],
+         [gfortran ifort pgf90 pathf90 pathf95 xlf90 xlf95 xlf2003 f90 epcf90 f95 fort lf95 g95 ifc efc gfc])
+dnl 
+dnl PAC_PROG_FC([COMPILERS])
+dnl
+dnl COMPILERS is a space separated list of Fortran compilers to search for.
+dnl
+dnl Compilers are ordered by
+dnl  1. F90, F95, F2003
+dnl  2. Good/tested native compilers, bad/untested native compilers
+dnl  3. Wrappers around f2c go last.
+dnl
+dnl frt is the Fujitsu Fortran compiler.
+dnl pgf90 are the Portland Group F90 compilers.
+dnl xlf/xlf90/xlf95/xlf2003 are IBM (AIX) F90/F95/F2003 compilers.
+dnl lf95 is the Lahey-Fujitsu compiler.
+dnl fl32 is the Microsoft Fortran "PowerStation" compiler.
+dnl epcf90 is the "Edinburgh Portable Compiler" F90.
+dnl fort is the Compaq Fortran 90 (now 95) compiler for Tru64 and Linux/Alpha.
+dnl pathf90 is the Pathscale Fortran 90 compiler
+dnl ifort is another name for the Intel f90 compiler
+dnl efc - An older Intel compiler (?)
+dnl ifc - An older Intel compiler
+dnl fc  - A compiler on some unknown system.  This has been removed because
+dnl       it may also be the name of a command for something other than
+dnl       the Fortran compiler (e.g., fc=file system check!)
+dnl gfortran - The GNU Fortran compiler (not the same as g95) 
+dnl gfc - An alias for gfortran recommended in cygwin installations
+dnl NOTE: this macro suffers from a basically intractable "expanded before it
+dnl was required" problem when libtool is also used 
+dnl [1] MPICH.org
+dnl
+
+dnl See if the fortran compiler supports the intrinsic function "SIZEOF"
+
+AC_DEFUN([PAC_PROG_FC_SIZEOF],[
+  HAVE_SIZEOF_FORTRAN="no"
+  AC_MSG_CHECKING([if Fortran compiler supports intrinsic SIZEOF])
+  AC_LINK_IFELSE([AC_LANG_SOURCE([ 
+   PROGRAM main
+     i = sizeof(x)
+   END PROGRAM
+  ])],[AC_MSG_RESULT([yes])
+     	HAVE_SIZEOF_FORTRAN="yes"],
+      [AC_MSG_RESULT([no])])
+])
+
+dnl See if the fortran compiler supports the intrinsic function "C_SIZEOF"
+
+AC_DEFUN([PAC_PROG_FC_C_SIZEOF],[
+  HAVE_C_SIZEOF_FORTRAN="no"
+  AC_MSG_CHECKING([if Fortran compiler supports intrinsic C_SIZEOF])
+  AC_LINK_IFELSE([AC_LANG_SOURCE([ 
+   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_FORTRAN="yes"],
+     [AC_MSG_RESULT([no])])
+])
+
+dnl See if the fortran compiler supports the intrinsic function "STORAGE_SIZE"
+
+AC_DEFUN([PAC_PROG_FC_STORAGE_SIZE],[
+  HAVE_STORAGE_SIZE_FORTRAN="no"
+  AC_MSG_CHECKING([if Fortran compiler supports intrinsic STORAGE_SIZE])
+  AC_LINK_IFELSE([AC_LANG_SOURCE([
+   PROGRAM main
+     INTEGER :: a
+     INTEGER :: result
+     result = STORAGE_SIZE(a)
+   END PROGRAM
+  ])], [AC_MSG_RESULT([yes])
+     	HAVE_STORAGE_SIZE_FORTRAN="yes"],
+     [AC_MSG_RESULT([no])])
+
+])
+
+dnl Check to see if -r8 was specified to determine if we need to
+dnl compile the DOUBLE PRECISION interfaces.
+
+AC_DEFUN([PAC_PROG_FC_DEFAULT_REALisDBLE],[
+  FORTRAN_DEFAULT_REALisDBLE="no"	
+  AC_MSG_CHECKING([if Fortran default REAL is DOUBLE PRECISION])
+  
+  AC_COMPILE_IFELSE([AC_LANG_SOURCE([
+     MODULE type_mod
+       INTERFACE h5t	
+         MODULE PROCEDURE h5t_real
+         MODULE PROCEDURE h5t_dble
+       END INTERFACE
+     CONTAINS
+       SUBROUTINE h5t_real(r)
+         REAL :: r
+       END SUBROUTINE h5t_real
+       SUBROUTINE h5t_dble(d)
+         DOUBLE PRECISION :: d
+       END SUBROUTINE h5t_dble
+     END MODULE type_mod
+     PROGRAM main
+       USE type_mod
+       REAL :: r
+       DOUBLE PRECISION :: d
+       CALL h5t(r)
+       CALL h5t(d)
+     END PROGRAM main
+    ])], [AC_MSG_RESULT([no])], 
+         [AC_MSG_RESULT([yes])
+            FORTRAN_DEFAULT_REALisDBLE="yes"])
+])
+
+dnl Checking if the compiler supports the required Fortran 2003 features and
+dnl disable Fortran 2003 if it does not.
+
+AC_DEFUN([PAC_PROG_FC_HAVE_F2003_REQUIREMENTS],[
+   AC_MSG_CHECKING([if Fortran compiler version compatible with Fortran 2003 HDF])
+dnl --------------------------------------------------------------------
+dnl Default for FORTRAN 2003 compliant compilers
+dnl
+    HAVE_FORTRAN_2003="no"
+    HAVE_F2003_REQUIREMENTS="no"
+    AC_LINK_IFELSE([AC_LANG_PROGRAM([],[
+
+        USE iso_c_binding
+        IMPLICIT NONE
+        TYPE(C_PTR) :: ptr
+        TYPE(C_FUNPTR) :: funptr
+        CHARACTER(LEN=80, KIND=c_char), TARGET :: ichr
+
+        ptr = C_LOC(ichr(1:1))
+
+        ])],[AC_MSG_RESULT([yes])
+        HAVE_F2003_REQUIREMENTS=[yes]], 
+      [AC_MSG_RESULT([no])])
+])
+
+dnl -------------------------------------------------------------------------
+dnl AC_F9X_MODS()
+dnl
+dnl	Check how F9X handles modules. This macro also checks which
+dnl	command-line option to use to include the module once it's built.
+dnl
+AC_DEFUN([AC_F9X_MODS],
+[AC_MSG_CHECKING(what $FC does with modules)
+AC_LANG_PUSH(Fortran)
+
+test -d conftestdir || mkdir conftestdir
+cd conftestdir
+rm -rf *
+
+cat >conftest.$ac_ext <<EOF
+      module module
+         integer foo
+      end module module
+EOF
+
+eval $ac_compile
+modfiles=""
+F9XMODEXT=""
+
+for f in conftest.o module.mod MODULE.mod module.M MODULE.M; do
+  if test -f "$f" ; then
+    modfiles="$f"
+
+    case "$f" in
+      *.o)   F9XMODEXT="o" ;;
+      *.mod) F9XMODEXT="mod" ;;
+      *.M)   F9XMODEXT="M" ;;
+    esac
+  fi
+done
+
+echo $modfiles 6>&1
+if test "$modfiles" = file.o; then
+  echo $ac_n "checking whether $FC -em is saner""... $ac_c" 1>&6
+  OLD_FCFLAGS=$FCFLAGS
+  FCFLAGS="$FCFLAGS -em"
+  eval $ac_compile
+  modfiles=""
+  for f in file.o module.mod MODULE.mod module.M MODULE.M; do
+    test -f $f && modfiles="$f"
+  done
+  if test "$modfiles" = "file.o"; then
+    FCFLAGS=$OLD_FCFLAGS
+    echo no 6>&1
+  else
+    echo yes 6>&1
+  fi
+fi
+cd ..
+
+AC_MSG_CHECKING(how $FC finds modules)
+
+for flag in "-I" "-M" "-p"; do
+  cat >conftest.$ac_ext <<EOF
+      program conftest
+          use module
+      end program conftest
+EOF
+
+  ac_compile='${FC-f90} $FCFLAGS ${flag}conftestdir -c conftest.$ac_ext 1>&AS_MESSAGE_LOG_FD'
+
+  if AC_TRY_EVAL(ac_compile); then
+    F9XMODFLAG=$flag
+    break
+  fi
+done
+
+if test -n "$F9XMODFLAG"; then
+  echo $F9XMODFLAG 1>&6
+  FCFLAGS="$F9XMODFLAG. $FCFLAGS"
+else
+  echo unknown 1>&6
+fi
+AC_SUBST(F9XMODFLAG)
+AC_SUBST(F9XMODEXT)
+rm -rf conftest*
+AC_LANG_POP(Fortran)
+])
+
+dnl ----------------------
+dnl Parallel Test Programs
+dnl ----------------------
+
+dnl Try link a simple MPI program.
+
+AC_DEFUN([PAC_PROG_FC_MPI_CHECK],[
+
+dnl   Change to the Fortran 90 language
+      AC_LANG_PUSH(Fortran)
+
+dnl   Try link a simple MPI program.
+      AC_MSG_CHECKING([whether a simple MPI-IO Fortran program can be linked])
+      AC_LINK_IFELSE([ 
+          PROGRAM main
+          USE mpi
+          INTEGER :: comm, amode, info, fh, ierror
+          CHARACTER(LEN=1) :: filename 
+          CALL MPI_File_open( comm, filename, amode, info, fh, ierror)
+          END],
+	  [AC_MSG_RESULT([yes])],
+	  [AC_MSG_RESULT([no])
+	   AC_MSG_ERROR([unable to link a simple MPI-IO Fortran program])])
+
+dnl   Change to the C language
+      AC_LANG_POP(Fortran)
+])
+	
diff --git a/perform/benchpar.c b/perform/benchpar.c
deleted file mode 100644
index b75006a..0000000
--- a/perform/benchpar.c
+++ /dev/null
@@ -1,488 +0,0 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * 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.     *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-#ifdef H5_HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#include <stdlib.h>
-#include <assert.h>
-#include <math.h>
-#include <float.h>
-#include <string.h>
-
-#include "hdf5.h"
-
-/* Local macros */
-#ifdef H5_HAVE_VISUAL_STUDIO
-#define HDgetlogin()           Wgetlogin()
-#else /* H5_HAVE_VISUAL_STUDIO */
-#define HDgetlogin()            getlogin()
-#endif /* H5_HAVE_VISUAL_STUDIO */
-
-/*
- * HDF Boolean type.
- */
-#ifndef FALSE
-#   define FALSE 0
-#endif
-#ifndef TRUE
-#   define TRUE 1
-#endif
-
-/* defines for type of VFL driver to use */
-#define FACC_DEFAULT    0
-#define FACC_MPIO       1
-
-/* Defines for computing performance information */
-#define ONE_KB              1024
-#define ONE_MB              (ONE_KB * ONE_KB)
-#define ONE_GB              (ONE_MB * ONE_KB)
-
-/* report 0.0 in case t is zero too */
-#define MB_PER_SEC(bytes,t) ((fabs(t)<0.0000000001) ? 0.0 : ((((double)bytes) / ONE_MB) / (t)))
-
-/* Control default behavior (with no command line arguments) */
-#define DEFAULT_RANK    3
-#define DEFAULT_DIM     1024
-#define DEFAULT_PREFIX      "/tmp"
-#define DEFAULT_USERNAME    "koziol"
-#define DEFAULT_FILENAME    "benchpar.h5"
-#define DEFAULT_SLICE   0
-#define DEFAULT_C_TYPE      int
-#define DEFAULT_HDF5_DATATYPE   H5T_NATIVE_INT  /* Keep this in sync with the DEFAULT_C_TYPE */
-#define DEFAULT_DATASET_NAME    "Dataset"
-#define DEFAULT_VFL_DRIVER      FACC_MPIO
-#define DEFAULT_PAR_MODE        H5FD_MPIO_COLLECTIVE
-#define DEFAULT_CHUNK_STORAGE   0
-#define DEFAULT_ITER    3
-
-/* MPI info */
-int mpi_rank, mpi_size;
-int mpi_namelen;
-char mpi_name[MPI_MAX_PROCESSOR_NAME];
-
-/* Usage information */
-static void usage(void)
-{
-    printf("usage: benchpar [-d <# of dims>] [-s <dim_size>] [-f <file name>] [-h]\n");
-    printf("            [-S <slice dim>] [-I] [-c] [-i <# of iterations>\n");
-    printf("    -c              - Use chunked storage for dataset with 1-1 exact\n");
-    printf("                      mapping of chunks to hyperslabs\n");
-    printf("                      Default: off (i.e. contiguous storage)\n");
-    printf("    -d <# of dims>  - Number of dimensions of the dataset\n");
-    printf("                      Default: 3\n");
-    printf("    -f <file name>  - Set the name of the test file\n");
-    printf("                      Default: /tmp/<login>/benchpar.h5\n");
-    printf("    -h              - Prints usage information\n");
-    printf("    -i <# of iters> - Set the number of test iterations to perform\n");
-    printf("                      Default: 3\n");
-    printf("    -I              - Use independent parallel I/O\n");
-    printf("                      Default: use collective parallel I/O\n");
-    printf("    -s <dim_size>   - Set the size of each of the dataset's dimensions\n");
-    printf("                      Default: 1024\n");
-    printf("    -S <slice dim>  - Set the dimension to slice the dataset along\n");
-    printf("                      Default: 0\n");
-} /* end usage() */
-
-/* Create & initialize file creation property list with appropriate properties */
-static hid_t create_fcpl(void)
-{
-    hid_t fcpl;         /* File creation property list */
-
-    fcpl=H5Pcreate(H5P_FILE_CREATE);
-    assert(fcpl>0);
-
-    return(fcpl);
-} /* end create_fcpl() */
-
-/* Create & initialize file access property list with appropriate properties */
-static hid_t create_fapl(MPI_Comm comm, MPI_Info info, int acc_type )
-{
-    hid_t fapl;                 /* File access property list    */
-    herr_t ret;                 /* Generic return value         */
-
-    fapl = H5Pcreate (H5P_FILE_ACCESS);
-    assert(fapl>0);
-
-    /* set parallel access with communicator, using MPI-I/O driver */
-    if (acc_type == FACC_MPIO) {
-        ret = H5Pset_fapl_mpio(fapl, comm, info);
-        assert(ret>=0);
-    } /* end if */
-
-    return (fapl);
-} /* end create_fapl() */
-
-/* Create & initialize dataset creation property list with appropriate properties */
-static hid_t create_dcpl(unsigned use_chunks, int rank, hsize_t *dims)
-{
-    hid_t dcpl;         /* Dataset creation property list */
-    herr_t ret;         /* Generic return value */
-
-    dcpl=H5Pcreate(H5P_DATASET_CREATE);
-    assert(dcpl>0);
-
-    /* Check if the dataset should be chunked */
-    if(use_chunks) {
-        ret = H5Pset_chunk(dcpl, rank, dims);
-        assert(ret>=0);
-    } /* end if */
-
-    return(dcpl);
-} /* end create_dcpl() */
-
-/* Create & initialize dataset transfer property list with appropriate properties */
-static hid_t create_dxpl(H5FD_mpio_xfer_t par_mode)
-{
-    hid_t dxpl;         /* Dataset creation property list */
-    herr_t ret;         /* Generic return value */
-
-    dxpl=H5Pcreate(H5P_DATASET_XFER);
-    assert(dxpl>0);
-
-    /* Set collective I/O on this transfer */
-    ret=H5Pset_dxpl_mpio(dxpl, par_mode);
-    assert(ret>=0);
-
-    return(dxpl);
-} /* end create_dcpl() */
-
-int main(int argc, char *argv[])
-{
-    int curr_arg;       /* Current command line argument being processed */
-    int rank;           /* Number of dimensions of the dataset */
-    hsize_t dim_size;   /* Dimension size of each dimension */
-    hsize_t dims[H5S_MAX_RANK];      /* Pointer to array of dimensions */
-    hsize_t start[H5S_MAX_RANK];     /* Pointer to array of starting locations for hyperslab selection */
-    hsize_t count[H5S_MAX_RANK];     /* Pointer to array of counts for hyperslab selection */
-    unsigned slice_dim; /* Dimension to slice up */
-    char *file_name=NULL;    /* Name of file to put data into */
-    hid_t fcpl;         /* HDF5 File creation property list ID */
-    hid_t fapl;         /* HDF5 File access property list ID */
-    hid_t dcpl;         /* HDF5 Dataset creation property list ID */
-    hid_t dxpl;         /* HDF5 Dataset transfer property list ID */
-    hid_t fid;          /* HDF5 file ID */
-    hid_t dsid;         /* HDF5 dataset ID */
-    hid_t file_sid;     /* HDF5 dataspace ID for dataset on disk */
-    hid_t mem_sid;      /* HDF5 dataspace ID for dataset in memory */
-    DEFAULT_C_TYPE *buf;        /* Buffer to write out */
-    hsize_t buf_size;   /* Size of buffer to write */
-    int i;              /* Local index variable */
-    herr_t ret;         /* Generic return value */
-    double start_write_time, end_write_time, elap_write_time;   /* Start, end and elapsed time to write raw data */
-    double tmp_max_write_time;      /* Temporary holders for maximum time for all nodes to perform raw data I/O */
-    double max_write_time=-DBL_MAX, min_write_time=DBL_MAX;      /* Minimum & maximum time for all nodes to perform raw data I/O */
-    double start_file_time, end_file_time, elap_file_time;   /* Start, end and elapsed time from file open to file close */
-    double tmp_max_file_time;        /* Temporary holders for maximum time for all nodes from file open to file close */
-    double max_file_time=-DBL_MAX, min_file_time=DBL_MAX;        /* Minimum & maximum time for all nodes from file open to file close */
-    int vfl_type;       /* Type of VFL driver to use */
-    H5FD_mpio_xfer_t par_mode;  /* Type of parallel I/O to perform */
-    unsigned use_chunks;        /* Whether to use chunks for dataset or not */
-    unsigned num_iter;  /* Number of iterations to perform */
-    unsigned u;         /* Local index variable */
-
-    /* Un-buffer the stdout and stderr */
-    setbuf(stderr, NULL);
-    setbuf(stdout, NULL);
-
-    /* MPI initialization */
-    MPI_Init(&argc,&argv);
-    MPI_Comm_size(MPI_COMM_WORLD,&mpi_size);
-    MPI_Comm_rank(MPI_COMM_WORLD,&mpi_rank);
-    MPI_Get_processor_name(mpi_name,&mpi_namelen);
-
-    /* Set some defaults */
-    rank=DEFAULT_RANK;
-    dim_size=DEFAULT_DIM;
-    slice_dim=DEFAULT_SLICE;
-    vfl_type=DEFAULT_VFL_DRIVER;
-    par_mode=DEFAULT_PAR_MODE;
-    use_chunks=DEFAULT_CHUNK_STORAGE;
-    num_iter=DEFAULT_ITER;
-
-    /* Parse command line arguments */
-    if(argc>1) {
-        curr_arg=1;
-        while(curr_arg<argc) {
-            /* Trap any unknown command line parameters */
-            if(argv[curr_arg][0]!='-') {
-                printf("unknown command line parameter: %s\n",argv[curr_arg]);
-                goto done;
-            } /* end if */
-
-            /* Skip over command line flag */
-            curr_arg++;
-
-            switch(argv[curr_arg-1][1]) {
-                case 'c':       /* Use chunked storage for dataset */
-                    use_chunks=1;
-                    break;
-
-                case 'd':       /* Change number of dimensions */
-                    /* Get new number of dimensions */
-                    rank=atoi(argv[curr_arg]);
-                    curr_arg++; /* Skip over number of dimensions */
-
-                    /* Sanity check */
-                    if(rank<=0) {
-                        printf("rank=%d, invalid number of dimensions: %d\n",mpi_rank,rank);
-                        goto done;
-                    } /* end if */
-                    break;
-
-                case 'f':       /* Change test file name */
-                    /* Get new file name */
-                    file_name=strdup(argv[curr_arg]);
-                    curr_arg++; /* Skip over file name from command line */
-                    break;
-
-                case 'h':       /* Print usage information */
-                    usage();
-                    goto done;
-                    break;
-
-                case 'i':       /* Change number of iterations */
-                    /* Get new number of dimensions */
-                    num_iter=atoi(argv[curr_arg]);
-                    curr_arg++; /* Skip over number of iterations */
-
-                    /* Sanity check */
-                    if(num_iter<1) {
-                        printf("rank=%d, invalid number of iterations: %u\n",mpi_rank,num_iter);
-                        goto done;
-                    } /* end if */
-                    break;
-
-                case 'I':       /* Use independent I/O for parallel I/O */
-                    par_mode=H5FD_MPIO_INDEPENDENT;
-                    break;
-
-                case 's':       /* Change dimension size */
-                    /* Get new dimension size */
-                    dim_size=atoi(argv[curr_arg]);
-                    curr_arg++; /* Skip over dimension size from command line */
-
-                    /* Sanity check */
-                    if(dim_size<=0) {
-                        printf("rank=%d, invalid dimension size: %ld\n",mpi_rank,(long)dim_size);
-                        goto done;
-                    } /* end if */
-                    break;
-
-                case 'S':       /* Change dimension to slice */
-                    /* Get new dimension to slice */
-                    slice_dim=atoi(argv[curr_arg]);
-                    curr_arg++; /* Skip over slice dimension from command line */
-                    break;
-
-                default:
-                    printf("rank=%d, unknown command line parameter: %s\n",mpi_rank,argv[curr_arg-1]);
-                    goto done;
-            } /* end switch */
-        } /* end while */
-    } /* end if */
-
-    /* Sanity check */
-    if(slice_dim>=rank) {
-        printf("rank=%d, error, slice dim larger than rank: slice_dim=%d, rank=%d\n",mpi_rank,slice_dim,rank);
-        goto done;
-    } /* end if */
-
-    /* Set rest of defaults */
-    if(file_name==NULL) {
-        char *login;    /* Pointer to login name */
-
-        /* Get the login name for this user */
-        login=HDgetlogin();
-        if(login==NULL)
-            login=DEFAULT_USERNAME;
-
-        /* Allocate enough room for the prefix, the login name, two '/'s, the filename and the string terminator */
-        file_name=malloc(strlen(DEFAULT_PREFIX)+1+strlen(login)+1+strlen(DEFAULT_FILENAME)+1);
-        strcpy(file_name,DEFAULT_PREFIX);
-        strcat(file_name,"/");
-        strcat(file_name,login);
-        strcat(file_name,"/");
-        strcat(file_name,DEFAULT_FILENAME);
-    } /* end if */
-
-    /* Allocate memory for this process's portion of dataset */
-    buf_size=sizeof(DEFAULT_C_TYPE);
-    for(i=0; i<rank; i++)
-        buf_size *= dim_size;
-    buf_size /= mpi_size;
-
-    /* Sanity check for overflow */
-    assert((hsize_t)((size_t)buf_size)==buf_size);
-
-    buf=malloc((size_t)buf_size);
-    assert(buf);
-
-    /* Initialize dataset portion to something unique for each process */
-    memset(buf,mpi_rank,(size_t)buf_size);
-
-    for(u=0; u<num_iter; u++) {
-        /* Create file creation property list */
-        fcpl=create_fcpl();
-        assert(fcpl>0);
-
-        /* Create file access property list */
-        fapl=create_fapl(MPI_COMM_WORLD,MPI_INFO_NULL,vfl_type);
-        assert(fapl>0);
-
-        /* Get file start time */
-        start_file_time = MPI_Wtime();
-
-        /* Create file */
-        fid=H5Fcreate(file_name,H5F_ACC_TRUNC,fcpl,fapl);
-        assert(fid>0);
-
-        /* Close file creation property list */
-        ret=H5Pclose(fcpl);
-        assert(ret>=0);
-
-        /* Close file access property list */
-        ret=H5Pclose(fapl);
-        assert(ret>=0);
-
-        /* Create dataspace for dataset on disk */
-        for(i=0; i<rank; i++)
-            dims[i]=dim_size;
-
-        file_sid=H5Screate_simple(rank,dims,NULL);
-        assert(file_sid>0);
-
-        /* Create dataspace for buffer in memory */
-        for(i=0; i<rank; i++)
-            dims[i]=dim_size;
-        dims[slice_dim] /= mpi_size;
-
-        mem_sid=H5Screate_simple(rank,dims,NULL);
-        assert(mem_sid>0);
-
-        /* Create dataset creation property list */
-        dcpl=create_dcpl(use_chunks,rank,dims);
-        assert(dcpl>0);
-
-        /* Create dataset */
-        dsid = H5Dcreate2(fid, DEFAULT_DATASET_NAME, DEFAULT_HDF5_DATATYPE, file_sid, H5P_DEFAULT, dcpl, H5P_DEFAULT);
-        assert(dsid > 0);
-
-        /* Close dataset creation property list */
-        ret=H5Pclose(dcpl);
-        assert(ret>=0);
-
-        /* Select hyperslab for file dataspace */
-        for(i=0; i<rank; i++) {
-            start[i]=0;
-            count[i]=dim_size;
-        } /* end for */
-        start[slice_dim]=mpi_rank*(dim_size/mpi_size);
-        count[slice_dim]=dim_size/mpi_size;
-
-        ret = H5Sselect_hyperslab(file_sid,H5S_SELECT_SET,start,NULL,count,NULL);
-        assert(ret>=0);
-
-        /* Create dataset transfer property list */
-        dxpl=create_dxpl(par_mode);
-        assert(dxpl>0);
-
-        /* Get raw data start time */
-        start_write_time = MPI_Wtime();
-
-        /* Write hyperslab to dataset */
-        ret = H5Dwrite(dsid, DEFAULT_HDF5_DATATYPE, mem_sid,
-                       file_sid, dxpl, buf);
-        assert(ret>=0);
-
-        /* Get stop time for raw data timer */
-        end_write_time = MPI_Wtime();
-
-        /* Close dataset transfer property list */
-        ret=H5Pclose(dxpl);
-        assert(ret>=0);
-
-        /* Close memory dataspace */
-        ret=H5Sclose(mem_sid);
-        assert(ret>=0);
-
-        /* Close file dataspace */
-        ret=H5Sclose(file_sid);
-        assert(ret>=0);
-
-        /* Close dataset */
-        ret=H5Dclose(dsid);
-        assert(ret>=0);
-
-        /* Close file */
-        ret=H5Fclose(fid);
-        assert(ret>=0);
-
-        /* Get stop time for file timer */
-        end_file_time = MPI_Wtime();
-
-        /* Compute timing results */
-        elap_write_time=end_write_time-start_write_time;
-        elap_file_time=end_file_time-start_file_time;
-
-        /* Collect the minimum and maximum times by MPI reduces */
-        MPI_Allreduce(&elap_write_time, &tmp_max_write_time, 1, MPI_DOUBLE, MPI_MAX, MPI_COMM_WORLD);
-        MPI_Allreduce(&elap_file_time, &tmp_max_file_time, 1, MPI_DOUBLE, MPI_MAX, MPI_COMM_WORLD);
-
-        /* Track the fastest & slowest total runs */
-        if(tmp_max_write_time>max_write_time)
-            max_write_time=tmp_max_write_time;
-        if(tmp_max_write_time<min_write_time)
-            min_write_time=tmp_max_write_time;
-        if(tmp_max_file_time>max_file_time)
-            max_file_time=tmp_max_file_time;
-        if(tmp_max_file_time<min_file_time)
-            min_file_time=tmp_max_file_time;
-    } /* end for */
-
-    /* Only print information from one node */
-    if(mpi_rank==0) {
-        /* Print information about test */
-        printf("File driver used: %s\n",vfl_type==FACC_MPIO ? "MPI-I/O" : "Unknown");
-        printf("Type of parallel access: %s\n",par_mode==H5FD_MPIO_COLLECTIVE ? "Collective" : "Independent");
-        printf("Type of dataset storage: %s\n",use_chunks ? "Chunked" : "Contiguous");
-        printf("Number of processes: %d\n",mpi_size);
-        printf("Element size: %u\n",(unsigned)sizeof(DEFAULT_C_TYPE));
-        printf("# of dimensions: %d\n",rank);
-        printf("Dimension size: %ld\n",(long)dim_size);
-        printf("Dimension sliced: %u\n",slice_dim);
-        printf("Number of elements: %lu\n",(unsigned long)((buf_size/sizeof(DEFAULT_C_TYPE))*mpi_size));
-        printf("Total dataset size (bytes): %lu\n",(unsigned long)(buf_size*mpi_size));
-        printf("Dataset size per process (bytes): %lu\n",(unsigned long)buf_size);
-
-        /* Print timing results */
-        printf("# of iterations: %u\n",num_iter);
-        printf("Maximum raw data write throughput=%6.2f MB/s (%7.3f s)\n",MB_PER_SEC((buf_size*mpi_size),min_write_time),min_write_time);
-        printf("Minimum raw data write throughput=%6.2f MB/s (%7.3f s)\n",MB_PER_SEC((buf_size*mpi_size),max_write_time),max_write_time);
-        printf("Maximum file throughput=%6.2f MB/s (%7.3f s)\n",MB_PER_SEC((buf_size*mpi_size),min_file_time),min_file_time);
-        printf("Minimum file throughput=%6.2f MB/s (%7.3f s)\n",MB_PER_SEC((buf_size*mpi_size),max_file_time),max_file_time);
-    } /* end if */
-
-done:
-    /* Free buffers allocated */
-    if(file_name)
-        free(file_name);
-    if(buf)
-        free(buf);
-
-    /* MPI termination */
-    MPI_Finalize();
-    return(0);
-} /* end main() */
diff --git a/perform/pio_timer.c b/perform/pio_timer.c
deleted file mode 100644
index aba219e..0000000
--- a/perform/pio_timer.c
+++ /dev/null
@@ -1,258 +0,0 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * 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.     *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-/*
- * Purpose:
- *
- * This is a module of useful timing functions for performance testing.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "hdf5.h"
-
-#ifdef H5_HAVE_PARALLEL
-
-#include <mpi.h>
-
-#include "pio_perf.h"
-
-/*
- * The number to divide the tv_usec field with to get a nice decimal to add to
- * the number of seconds.
- */
-#define MICROSECOND     1000000.0
-
-/* global variables */
-pio_time   *timer_g;            /* timer: global for stub functions     */
-
-/*
- * Function:  sub_time
- * Purpose:   Struct two time values, and return the difference, in microseconds
- *
- *         Note that the function assumes that a > b
- * Programmer: Leon Arber, 1/27/06
- */
-static double sub_time(struct timeval* a, struct timeval* b)
-{
-    return (((double)a->tv_sec +
-     ((double)a->tv_usec) / MICROSECOND) -
-  ((double)b->tv_sec +
-   ((double)b->tv_usec) / MICROSECOND));
-}
-
-
-/*
- * Function:    pio_time_new
- * Purpose:     Build us a brand, spankin', new performance time object.
- *              The object is a black box to the user. They just tell us
- *              what type of timer they want (MPI_TIMER for MPI_Wtime or
- *              SYS_TIMER for system time).
- * Return:      Pointer to pio_time object
- * Programmer:  Bill Wendling, 01. October 2001
- * Modifications:
- */
-pio_time *
-pio_time_new(clock_type type)
-{
-    pio_time *pt = (pio_time *)calloc(1, sizeof(struct pio_time_));
-
-    /* set global timer variable */
-    timer_g = pt;
-
-    pt->type = type;
-    return pt;
-}
-
-/*
- * Function:    pio_time_destroy
- * Purpose:     Remove the memory allocated for the pio_time object. Only
- *              need to call on a pointer allocated with the ``pio_time_new''
- *              function.
- * Return:      Nothing
- * Programmer:  Bill Wendling, 01. October 2001
- * Modifications:
- */
-void
-pio_time_destroy(pio_time *pt)
-{
-    HDfree(pt);
-    /* reset the global timer pointer too. */
-    timer_g = NULL;
-}
-
-/*
- * Function:    set_timer_type
- * Purpose:     Set the type of the timer to either MPI_TIMER or SYS_TIMER.
- *              This really only needs to be called if you didn't construct a
- *              timer with the pio_timer_new function (shame!).
- * Return:      Nothing
- * Programmer:  Bill Wendling, 04. October 2001
- * Modifications:
- */
-void
-set_timer_type(pio_time *pt, clock_type type)
-{
-    pt->type = type;
-}
-
-/*
- * Function:    get_timer_type
- * Purpose:     Get the type of the timer.
- * Return:      MPI_TIMER or SYS_TIMER.
- * Programmer:  Bill Wendling, 04. October 2001
- * Modifications:
- */
-clock_type
-get_timer_type(pio_time *pt)
-{
-    return pt->type;
-}
-
-/*
- * Function:    set_time
- * Purpose:     Set the time in a ``pio_time'' object.
- * Return:      Pointer to the passed in ``pio_time'' object.
- * Programmer:  Bill Wendling, 01. October 2001
- * Modifications:
- */
-pio_time *
-set_time(pio_time *pt, timer_type t, int start_stop)
-{
-    if (pt) {
-        if (pt->type == MPI_TIMER) {
-            if (start_stop == TSTART) {
-                pt->mpi_timer[t] = MPI_Wtime();
-
-    /* When we start the timer for HDF5_FINE_WRITE_FIXED_DIMS or HDF5_FINE_READ_FIXED_DIMS
-     * we compute the time it took to only open the file */
-    if(t == HDF5_FINE_WRITE_FIXED_DIMS)
-        pt->total_time[HDF5_FILE_WRITE_OPEN] += pt->mpi_timer[t] - pt->mpi_timer[HDF5_GROSS_WRITE_FIXED_DIMS];
-    else if(t == HDF5_FINE_READ_FIXED_DIMS)
-        pt->total_time[HDF5_FILE_READ_OPEN] += pt->mpi_timer[t] - pt->mpi_timer[HDF5_GROSS_READ_FIXED_DIMS];
-
-            } else {
-                pt->total_time[t] += MPI_Wtime() - pt->mpi_timer[t];
-    pt->mpi_timer[t] = MPI_Wtime();
-
-    /* When we stop the timer for HDF5_GROSS_WRITE_FIXED_DIMS or HDF5_GROSS_READ_FIXED_DIMS
-     * we compute the time it took to close the file after the last read/write finished */
-    if(t == HDF5_GROSS_WRITE_FIXED_DIMS)
-        pt->total_time[HDF5_FILE_WRITE_CLOSE] += pt->mpi_timer[t] - pt->mpi_timer[HDF5_FINE_WRITE_FIXED_DIMS];
-    else if(t == HDF5_GROSS_READ_FIXED_DIMS)
-        pt->total_time[HDF5_FILE_READ_CLOSE] += pt->mpi_timer[t] - pt->mpi_timer[HDF5_FINE_READ_FIXED_DIMS];
-            }
-        } else {
-            if (start_stop == TSTART) {
-                HDgettimeofday(&pt->sys_timer[t], NULL);
-
-    /* When we start the timer for HDF5_FINE_WRITE_FIXED_DIMS or HDF5_FINE_READ_FIXED_DIMS
-     * we compute the time it took to only open the file */
-    if(t == HDF5_FINE_WRITE_FIXED_DIMS)
-        pt->total_time[HDF5_FILE_WRITE_OPEN] += sub_time(&(pt->sys_timer[t]), &(pt->sys_timer[HDF5_GROSS_WRITE_FIXED_DIMS]));
-    else if(t == HDF5_FINE_READ_FIXED_DIMS)
-        pt->total_time[HDF5_FILE_READ_OPEN] += sub_time(&(pt->sys_timer[t]), &(pt->sys_timer[HDF5_GROSS_READ_FIXED_DIMS]));
-
-
-            } else {
-                struct timeval sys_t;
-
-                HDgettimeofday(&sys_t, NULL);
-                pt->total_time[t] += sub_time(&sys_t, &(pt->sys_timer[t]));
-
-/*                    ((double)sys_t.tv_sec +
-                                ((double)sys_t.tv_usec) / MICROSECOND) -
-                    ((double)pt->sys_timer[t].tv_sec +
-                            ((double)pt->sys_timer[t].tv_usec) / MICROSECOND);*/
-
-    /* When we stop the timer for HDF5_GROSS_WRITE_FIXED_DIMS or HDF5_GROSS_READ_FIXED_DIMS
-     * we compute the time it took to close the file after the last read/write finished */
-    if(t == HDF5_GROSS_WRITE_FIXED_DIMS)
-        pt->total_time[HDF5_FILE_WRITE_CLOSE] += sub_time(&(pt->sys_timer[t]), &(pt->sys_timer[HDF5_FINE_WRITE_FIXED_DIMS]));
-    else if(t == HDF5_GROSS_READ_FIXED_DIMS)
-        pt->total_time[HDF5_FILE_READ_CLOSE] += sub_time(&(pt->sys_timer[t]), &(pt->sys_timer[HDF5_FINE_READ_FIXED_DIMS]));
-
-            }
-        }
-
-        if (pio_debug_level >= 4) {
-            const char *msg;
-            int myrank;
-
-            MPI_Comm_rank(pio_comm_g, &myrank);
-
-            switch (t) {
-            case HDF5_FILE_OPENCLOSE:
-                msg = "File Open/Close";
-                break;
-            case HDF5_DATASET_CREATE:
-                msg = "Dataset Create";
-                break;
-            case HDF5_MPI_WRITE:
-                msg = "MPI Write";
-                break;
-            case HDF5_MPI_READ:
-                msg = "MPI Read";
-                break;
-            case HDF5_FINE_WRITE_FIXED_DIMS:
-                msg = "Fine Write";
-                break;
-            case HDF5_FINE_READ_FIXED_DIMS:
-                msg = "Fine Read";
-                break;
-            case HDF5_GROSS_WRITE_FIXED_DIMS:
-                msg = "Gross Write";
-                break;
-            case HDF5_GROSS_READ_FIXED_DIMS:
-                msg = "Gross Read";
-                break;
-            case HDF5_RAW_WRITE_FIXED_DIMS:
-                msg = "Raw Write";
-                break;
-            case HDF5_RAW_READ_FIXED_DIMS:
-                msg = "Raw Read";
-                break;
-            default:
-                msg = "Unknown Timer";
-                break;
-            }
-
-            fprintf(output, "    Proc %d: %s %s: %.2f\n", myrank, msg,
-                    (start_stop == TSTART ? "Start" : "Stop"),
-                    pt->total_time[t]);
-        }
-    }
-
-    return pt;
-}
-
-/*
- * Function:    get_time
- * Purpose:     Get the time from a ``pio_time'' object.
- * Return:      The number of seconds as a DOUBLE.
- * Programmer:  Bill Wendling, 01. October 2001
- * Modifications:
- */
-double
-get_time(pio_time *pt, timer_type t)
-{
-    return pt->total_time[t];
-}
-
-#endif /* H5_HAVE_PARALLEL */
-#ifdef STANDALONE
-#include "pio_standalone.c"
-#endif
diff --git a/perform/sio_timer.c b/perform/sio_timer.c
deleted file mode 100644
index 4e42ee6..0000000
--- a/perform/sio_timer.c
+++ /dev/null
@@ -1,197 +0,0 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * Copyright by The HDF Group.                                               *
- * 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.     *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-/*
- * Purpose:
- *
- * This is a module of useful timing functions for performance testing.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "sio_timer.h"
-
-
-#include "sio_perf.h"
-
-/*
- * The number to divide the tv_usec field with to get a nice decimal to add to
- * the number of seconds.
- */
-#define MICROSECOND     1000000.0
-
-/* global variables */
-sio_time   *timer_g;            /* timer: global for stub functions     */
-
-/*
- * Function:  sub_time
- * Purpose:   Struct two time values, and return the difference, in microseconds
- *
- *         Note that the function assumes that a > b
- * Programmer: Leon Arber, 1/27/06
- */
-static double sub_time(struct timeval* a, struct timeval* b)
-{
-    return (((double)a->tv_sec +
-     ((double)a->tv_usec) / MICROSECOND) -
-  ((double)b->tv_sec +
-   ((double)b->tv_usec) / MICROSECOND));
-}
-
-
-/*
- * Function:    sio_time_new
- * Purpose:     Build us a brand, spankin', new performance time object.
- *              The object is a black box to the user.
- * Return:      Pointer to sio_time object
- * Programmer:  Bill Wendling, 01. October 2001
- * Modifications:
- */
-sio_time *
-sio_time_new(void)
-{
-    sio_time *pt = (sio_time *)calloc(1, sizeof(struct sio_time_));
-
-    /* set global timer variable */
-    timer_g = pt;
-
-    return pt;
-}
-
-/*
- * Function:    sio_time_destroy
- * Purpose:     Remove the memory allocated for the sio_time object. Only
- *              need to call on a pointer allocated with the ``sio_time_new''
- *              function.
- * Return:      Nothing
- * Programmer:  Bill Wendling, 01. October 2001
- * Modifications:
- */
-void
-sio_time_destroy(sio_time *pt)
-{
-    HDfree(pt);
-    /* reset the global timer pointer too. */
-    timer_g = NULL;
-}
-
-
-
-/*
- * Function:    set_time
- * Purpose:     Set the time in a ``sio_time'' object.
- * Return:      Pointer to the passed in ``sio_time'' object.
- * Programmer:  Bill Wendling, 01. October 2001
- * Modifications:
- */
-sio_time *
-set_time(sio_time *pt, timer_type t, int start_stop)
-{
-    if (pt) {
-            if (start_stop == TSTART) {
-                HDgettimeofday(&pt->sys_timer[t], NULL);
-
-    /* When we start the timer for HDF5_FINE_WRITE_FIXED_DIMS or HDF5_FINE_READ_FIXED_DIMS
-     * we compute the time it took to only open the file */
-    if(t == HDF5_FINE_WRITE_FIXED_DIMS)
-        pt->total_time[HDF5_FILE_WRITE_OPEN] += sub_time(&(pt->sys_timer[t]), &(pt->sys_timer[HDF5_GROSS_WRITE_FIXED_DIMS]));
-    else if(t == HDF5_FINE_READ_FIXED_DIMS)
-        pt->total_time[HDF5_FILE_READ_OPEN] += sub_time(&(pt->sys_timer[t]), &(pt->sys_timer[HDF5_GROSS_READ_FIXED_DIMS]));
-
-
-            } else {
-                struct timeval sys_t;
-
-                HDgettimeofday(&sys_t, NULL);
-                pt->total_time[t] += sub_time(&sys_t, &(pt->sys_timer[t]));
-
-/*                    ((double)sys_t.tv_sec +
-                                ((double)sys_t.tv_usec) / MICROSECOND) -
-                    ((double)pt->sys_timer[t].tv_sec +
-                            ((double)pt->sys_timer[t].tv_usec) / MICROSECOND);*/
-
-    /* When we stop the timer for HDF5_GROSS_WRITE_FIXED_DIMS or HDF5_GROSS_READ_FIXED_DIMS
-     * we compute the time it took to close the file after the last read/write finished */
-    if(t == HDF5_GROSS_WRITE_FIXED_DIMS)
-        pt->total_time[HDF5_FILE_WRITE_CLOSE] += sub_time(&(pt->sys_timer[t]), &(pt->sys_timer[HDF5_FINE_WRITE_FIXED_DIMS]));
-    else if(t == HDF5_GROSS_READ_FIXED_DIMS)
-        pt->total_time[HDF5_FILE_READ_CLOSE] += sub_time(&(pt->sys_timer[t]), &(pt->sys_timer[HDF5_FINE_READ_FIXED_DIMS]));
-
-            }
-
-        if (sio_debug_level >= 4) {
-            const char *msg;
-
-            switch (t) {
-            case HDF5_FILE_OPENCLOSE:
-                msg = "File Open/Close";
-                break;
-            case HDF5_DATASET_CREATE:
-                msg = "Dataset Create";
-                break;
-            case HDF5_MPI_WRITE:
-                msg = "MPI Write";
-                break;
-            case HDF5_MPI_READ:
-                msg = "MPI Read";
-                break;
-            case HDF5_FINE_WRITE_FIXED_DIMS:
-                msg = "Fine Write";
-                break;
-            case HDF5_FINE_READ_FIXED_DIMS:
-                msg = "Fine Read";
-                break;
-            case HDF5_GROSS_WRITE_FIXED_DIMS:
-                msg = "Gross Write";
-                break;
-            case HDF5_GROSS_READ_FIXED_DIMS:
-                msg = "Gross Read";
-                break;
-            case HDF5_RAW_WRITE_FIXED_DIMS:
-                msg = "Raw Write";
-                break;
-            case HDF5_RAW_READ_FIXED_DIMS:
-                msg = "Raw Read";
-                break;
-            default:
-                msg = "Unknown Timer";
-                break;
-            }
-
-            fprintf(output, "    %s %s: %.2f\n", msg,
-                    (start_stop == TSTART ? "Start" : "Stop"),
-                    pt->total_time[t]);
-        }
-    }
-
-    return pt;
-}
-
-/*
- * Function:    get_time
- * Purpose:     Get the time from a ``sio_time'' object.
- * Return:      The number of seconds as a DOUBLE.
- * Programmer:  Bill Wendling, 01. October 2001
- * Modifications:
- */
-double
-get_time(sio_time *pt, timer_type t)
-{
-    return pt->total_time[t];
-}
-#ifdef STANDALONE
-#include "sio_standalone.c"
-#endif
-
diff --git a/perform/sio_timer.h b/perform/sio_timer.h
deleted file mode 100644
index 46702c3..0000000
--- a/perform/sio_timer.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * Copyright by The HDF Group.                                               *
- * 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.     *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-#ifndef SIO_TIMER__
-#define SIO_TIMER__
-
-#include "hdf5.h"
-
-#if defined(H5_TIME_WITH_SYS_TIME)
-#   include <sys/time.h>
-#   include <time.h>
-#elif defined(H5_HAVE_SYS_TIME_H)
-#   include <sys/time.h>
-#else
-#   include <time.h>
-#endif
-
-#ifdef H5_HAVE_WINSOCK2_H
-#  include <winsock2.h>
-#endif /* H5_HAVE_WINSOCK2_H */
-
-/* The different types of timers we can have */
-typedef enum timer_type_ {
-    HDF5_FILE_OPENCLOSE,
-    HDF5_DATASET_CREATE,
-    HDF5_MPI_WRITE,
-    HDF5_MPI_READ,
-    HDF5_FILE_READ_OPEN,
-    HDF5_FILE_READ_CLOSE,
-    HDF5_FILE_WRITE_OPEN,
-    HDF5_FILE_WRITE_CLOSE,
-    HDF5_FINE_WRITE_FIXED_DIMS,
-    HDF5_FINE_READ_FIXED_DIMS,
-    HDF5_GROSS_WRITE_FIXED_DIMS,
-    HDF5_GROSS_READ_FIXED_DIMS,
-    HDF5_RAW_WRITE_FIXED_DIMS,
-    HDF5_RAW_READ_FIXED_DIMS,
-    NUM_TIMERS
-} timer_type;
-
-
-/* Miscellaneous identifiers */
-enum {
-    TSTART,          /* Start a specified timer              */
-    TSTOP            /* Stop a specified timer               */
-};
-
-/* The performance time structure */
-typedef struct sio_time_ {
-    double total_time[NUM_TIMERS];
-    struct timeval sys_timer[NUM_TIMERS];
-} sio_time;
-
-/* External function declarations */
-#ifdef __cplusplus
-extern "C" {
-#endif  /* __cplusplus */
-extern sio_time    *sio_time_new(void);
-extern void         sio_time_destroy(sio_time *pt);
-extern void         set_timer_type(sio_time *pt);
-extern sio_time    *set_time(sio_time *pt, timer_type t, int start_stop);
-extern double       get_time(sio_time *pt, timer_type t);
-#ifdef __cplusplus
-}
-#endif  /* __cplusplus */
-
-#endif  /* SIO_TIMER__ */
diff --git a/release_docs/HISTORY-1_8.txt b/release_docs/HISTORY-1_8.txt
index fa18196..3d10317 100644
--- a/release_docs/HISTORY-1_8.txt
+++ b/release_docs/HISTORY-1_8.txt
@@ -3,6 +3,7 @@ HDF5 History
 
 This file contains development history of HDF5 1.8 branch
 
+16.      Release Information for hdf5-1.8.14
 15.      Release Information for hdf5-1.8.13
 14.      Release Information for hdf5-1.8.12
 13.      Release Information for hdf5-1.8.11
@@ -22,6 +23,756 @@ This file contains development history of HDF5 1.8 branch
 [Search on the string '%%%%' for section breaks of each release.]
 
 
+%%%%1.8.14%%%%   
+
+
+HDF5 version 1.8.14 released on 2014-11-12
+================================================================================
+
+INTRODUCTION
+============
+
+This document describes the differences between HDF5-1.8.13 and 
+HDF5-1.8.14, and contains information on the platforms tested and 
+known problems in HDF5-1.8.14. 
+
+All new and modified APIs are listed in the "HDF5 Software Changes 
+from Release to Release" document along with details about previous
+releases at:
+
+     http://www.hdfgroup.org/HDF5/doc/ADGuide/Changes.html
+
+Links to the HDF5 1.8.14 source code, documentation, and additional materials
+can be found on the HDF5 web page at:
+
+     http://www.hdfgroup.org/products/hdf5/
+
+The HDF5 1.8.14 release can be obtained from:
+
+     http://www.hdfgroup.org/HDF5/release/obtain5.html
+
+User documentation for 1.8.14 can be accessed directly at this location: 
+
+     http://www.hdfgroup.org/HDF5/doc/
+
+If you have any questions or comments, please send them to the HDF Help Desk:
+
+     help at hdfgroup.org
+
+
+CONTENTS
+========
+
+- New Features
+- Support for New Platforms, Languages, and Compilers
+- Bug Fixes since HDF5-1.8.13
+- Supported Platforms
+- Supported Configuration Features Summary
+- More Tested Platforms
+- Known Problems
+
+
+New Features
+============
+
+    Configuration
+    -------------
+    - bin/cmakehdf5 configures, builds and installs C, C++, Fortran and High
+      level API's. (It used to build the C API only).
+      (AKC 2014/10/17 HDFFV-8932).
+    
+    Library
+    -------
+    - None
+
+    Parallel Library
+    ----------------
+     - Chunk Fill Writes Changed to Collective
+    
+      Slow performance in chunk fill writes. Chunk fills 
+      in the past were written independently by rank 0 one block 
+      at a time. 
+      
+      Optimized the chunk fill write algorithm so that all 
+      chunk fill values will be written collectively in a single MPI-IO 
+      call. This should show a great performance improvement when 
+      creating chunked datasets in parallel when the chunk dimensions 
+      are fairly small.
+      
+      (MSC - 2014/08/22, HDFFV-8878)
+
+    Tools
+    -----
+    - None
+
+    High-level APIs
+    ---------------
+    - None
+
+    Fortran API
+    -----------
+    - None
+
+    C++ API
+    -------
+    - Initialization of Object IDs
+
+      The data member "id" in classes that represent HDF5 objects were
+      initialized to 0, which caused problem for some users.
+
+      Replaced 0 with H5I_INVALID_HID to initialize these "id"s.  For the 
+      PropList class, H5P_DEFAULT is used instead of H5I_INVALID_HID.
+
+      (BMR - 2014/09/30, HDFFV-4259)
+
+
+
+Support for New Platforms, Languages, and Compilers
+===================================================
+    - None                                  
+
+Bug Fixes since HDF5-1.8.13
+===========================
+
+    Configuration
+    -------------
+    - CMake and SVN URLs
+    
+      The SVN URLs will be different when the HDF Group domain name changes.
+    
+      Removed the SVN URL references in the cacheinit.cmake and release_docs files.
+      
+      (ADB - 2014/10/27, HDFFV-8953)
+
+    - CMake Packaging
+    
+      A Fortran module was not generated if the compiler was not F2003
+      compliant.
+    
+      Removed the module name from the package list of Fortran modules because
+      that module was never generated. This was only an issue for Fortran
+      compliers that are not F2003 compatible.
+      
+      (ADB - 2014/10/16, HDFFV-8932)
+
+    - Shared Library Interface Version Number (soname)
+      
+      In order to increase the maintainability of HDF5, an architectural
+      change was made which required the renaming of several public symbols in
+      H5Ppublic.h.
+
+      The shared libary interface version number ("soname") has been increased
+      on account of these changes. For a full list of the changed symbols, see
+      the interface compatibility report, which is available as a link off of
+      the 'HDF5 Software Changes from Release to Release' document:
+
+          http://www.hdfgroup.org/HDF5/doc/ADGuide/Changes.html
+      
+      (AKC - 2014/10/03, HDFFV-8937)
+
+    - Configure Settings for Mac OSX Need Defaults for PROD_XXX, DEBUG_XXX, 
+      and PROFILE_XXX
+      
+      The configure setting files for Mac OSX (config/apple) did not 
+      have the default settings of PROD_XXX, DEBUG_XXX, PROFILE_XXX. 
+      
+      Added the default settings. Mac platforms now builds library with 
+      "-O3" optimization when the default clang compiler is used. 
+      
+      (AKC - 2014/10/01, HDFFV-8933)
+
+    - CMake ConfigureChecks
+    
+      Two include files were missing from two C tests.
+    
+      Propagated the configure test changes to H5_LDOUBLE_TO_INTEGER_WORKS_TEST
+      and H5_ULLONG_TO_LDOUBLE_PRECISION_TEST to ConfigureChecks.cmake (added
+      stdlib.h and string.h in the HDFTests.c file).
+      
+      (ADB - 2014/09/02 HDFFV-8845)
+      
+    - CMake Parallel Test Missing
+    
+      The source file was removed in the previous release but the parallel 
+      test t_posix_compliant was not.
+    
+      Removed the t_posix_compliant parallel test from the library. 
+      
+      (ADB - 2014/8/14 HDFFV-8880)
+
+    - Autotools Reconfigure. Bison. Flex.
+    
+      The Bison and Flex files were out of date. 
+    
+      Bison was upgraded to 2.7, and Flex was upgraded to 2.5.37. The 
+      bin/reconfigure script now will execute Bison and Flex and update 
+      the hl/src files. 
+      
+      (ADB - 2014/06/16 HDFFV-8709)
+
+    - Autotools Reconfigure. m4.
+
+      The m4 macro processor was out of date.
+      
+      Reconfigured Autotools with m4 upgraded to 1.4.17. 
+    
+      (ADB - 2014/06/12 HDFFV-8743)
+    
+    - Autotools: Modified configure to add an entry at the beginning of AM_LDFLAGS 
+      for the hdf5 install directory.  Without this entry the relink commands 
+      invoked by "make install" to create libraries dependent on libhdf5.so added 
+      a dependency on the first libhdf5.so found in any directory in AM_LDFLAGS 
+      regardless of its version.  (LRK - 2014/10/17 HDFFV-8944)
+
+    - Changed Autotools Build Behavior. Fortran High-level Library.
+
+      The Fortran high-level (HL) library did not compile if the default 
+      size of a REAL is DOUBLE PRECISION; the build would fail during 
+      compilation.
+
+      Configure now checks to see if REAL is DOUBLE PRECISION, Fortran is 
+      enabled, and HL library is enabled. If this is true, then configure 
+      will stop with an error message.
+
+      (MSB - 2014/8/11, HDFFV-8883/HDFFV-889)
+
+
+
+    Library
+    -------
+    - Fixed Identifier Management Code
+      
+      Opening an object returns an identifier; closing the object should 
+      free up the identifier. A problem was found where the identifiers 
+      were not being freed up correctly.
+      
+      Fixed the problem so that identifiers that have been used can be 
+      used again after their object has been closed.
+      
+      (QAK - 2014/10/16, HDFFV-8930)
+
+    - Removal of DllMain() from Static Windows Builds 
+
+      A DllMain() function was added in HDF5 1.8.13 in order to handle 
+      win32 thread cleanup. The preprocessor #ifdefs around the DllMain 
+      function allowed it to be compiled when the static library is built, 
+      which is incorrect behavior that can cause linkage problems in 
+      clients.
+
+      The fix was to change the preprocessor #ifdefs to exclude compiling 
+      DllMain() in static builds. Our DllMain function is now only 
+      compiled when the shared, thread-safe library is built on Windows.
+
+      (DER - 2014/06/13, HDFFV-8837)
+
+    - Enforce Constraint on page_size Parameter in H5Pset_core_write_tracking()
+
+      The reference manual states that the page_size parameter cannot be 
+      zero.
+
+      This change checks the page_size parameter to see it is zero and 
+      returns an error code if it is.
+
+      (DER - 2014/08/11, HDFFV-8891)
+
+    - H5Ldelete_by_idx() fails on non-existent group name.
+      (MSC - 2014/07/31, HDFFV-8888)
+
+    - H5Ldelete_by_idx() Seg Fault on Non-existent Group Name
+      
+      If a non-existent group name was used by H5Ldelete_by_idx(), a 
+      segmentation fault would result. 
+      
+      Bug was fixed.
+      
+      (MSC - 2014/07/31, HDFFV-8888)
+
+    - Bug in Test When Building Parallel HDF5 on PVFS2
+      
+      There was a bug in a test when building Parallel HDF5 on PVFS2.
+      
+      The build now uses MPI_File_get_size() instead of stat().
+      
+      (MSC - 2014/07/14, HDFFV-8856)
+
+    - MPI-IO Driver Tried to Allocate Space for Zero-length Dataset
+      
+      MPI-IO driver tried to allocate space for zero-length dataset
+      and asserts. 
+      
+      Fixed driver and added a regression test.
+      
+      (MSC - 2014/07/03, HDFFV-8761)
+      
+
+    Parallel Library
+    ----------------
+    - None
+
+    Performance
+    -------------
+    - None
+
+    Tools
+    -----
+    - None
+
+    Fortran API
+    -------
+    - SIZEOF Replaced by C_SIZEOF and STORAGE_SIZE. 
+  
+      The intrinsic function SIZEOF is non-standard and should be replaced with a 
+      standard intrinsic function.
+
+      If the F2008 intrinsic C_SIZEOF and STORAGE_SIZE are available, then they will 
+      be used instead of the non-standard SIZEOF intrinsic, even when the SIZEOF 
+      function is available.
+
+      (MSB - 2014/6/16, HDFFV-8653)
+
+    - Non-functional API: h5pget_fill_value_f
+ 
+      The Fortran wrapper h5pget_fill_value_f was calling the wrong C API.
+
+      The correct C API, H5Pget_fill_value, is now called by the Fortran 
+      wrapper.
+
+      (MSB - 2014/9/25, HDFFV-8879)
+
+    - Interoperability with C HDF5: H5Literate and h5literate_f
+
+      h5literate_f assumes the return value for the callback function to 
+      be of type int (or int_f in C). However, in the C wrapper the return 
+      value of H5Literate is type herr_t, and this could cause 
+      interoperability issues.
+
+      The callback function should be declared INTEGER(C_INT) for 
+      portability. The tests were updated accordingly.
+
+      (MSB - 2014/9/26, HDFFV-8909)
+
+    - Interoperability with C HDF5: Constant INTEGER Parameters with the 
+      H5FD Interface
+
+      Wrong type cast of constant Fortran INTEGER parameters was used.
+
+      The following parameter constant types were changed from INTEGER to 
+      INTEGER(HID_T) to match the C types: H5FD_CORE, H5FD_FAMILY, H5FD_LOG, 
+      H5FD_MPIO, H5FD_MULTI, H5FD_SEC2, and H5FD_STDIO.
+
+      Other internal 'int' types where changed to 'hid_t'; these are 
+      transparent to the user.
+
+      (MSB - 2014/7/18, HDFFV-8748)
+
+    C++ API
+    ------
+    - Memory Leaks
+
+      There were several potential memory leaks in the library due to
+      dynamically allocated strings not being freed when failure occurs.
+
+      Applied user's patches to remove these potential memory leaks.
+
+      (BMR - 2014/09/30, HDFFV-8928)
+
+    - Disallow H5F_ACC_CREAT
+      
+      H5F_ACC_CREAT was included in the C++ API but the C library does not
+      allow it at this time.
+
+      Removed this flag from the functions in H5File class.
+
+      (BMR - 2014/09/29, HDFFV-8852)
+
+    - Missing Flags in Documentation: H5F_ACC_RDONLY and H5F_ACC_RDWR
+
+      The H5F_ACC_RDONLY and H5F_ACC_RDWR flags were missing from the 
+      documentation of the H5File constructors.
+
+      These two flags are now included in the documentation for opening 
+      files.
+
+      (BMR - 2014/09/29, HDFFV-8852)
+
+    High-level APIs:
+    ------
+    - Seg Faults in H5TBread_field_name and H5TBread_field_name_f
+
+      When H5TBread_field_name or H5TBread_field_name_f were used to read a 
+      field and if the name of the field was wrong, a segmentation fault 
+      would result.
+
+      Both C and Fortran APIs were fixed so they no longer seg fault if 
+      the name of the field is wrong, and both APIs return a negative 
+      value if the name of the field is wrong.
+
+      (MSB - 2014/09/29, HDFFV-8912)
+
+    - Possible Buffer Overflow in High-level (HL) APIs
+
+      Multiple HL APIs (H5DSis_scale is one example) had issues:
+        (1) The datatype from the file was re-used as the memory datatype, 
+            and
+        (2) No effort was made to ensure that strings were actually 
+            null-terminated.
+     
+      All of the HL routines now check for NULL pointers, for null-terminated 
+      strings, and to see if string buffers are short enough not to overflow 
+      the buffer. The minimum length of the buffers is now used in strncmp 
+      to avoid overflow.
+
+      (MSB - 2014/9/29, HDFFV-8670)
+
+    - Behavior Change of H5LTdtype_to_text
+
+      If a user buffer was passed in to H5LTdtype_to_text along with the 
+      length, then the function would not truncate at the end of the 
+      buffer, but would exceed the end of the user buffer.
+
+      H5LTdtype_to_text was changed to truncate the string if the user 
+      buffer is too small.
+
+      (MSB - 2014/9/29, HDFFV-8855)
+
+    Fortran High-level APIs:
+    ------
+     - See entry for HDFFV-8912 above.
+
+    Testing
+    -------
+    - A subtest in parallel h5diff (ph5diff) testing was bypassed for the
+      local Linux 32 machine due to unknown issue in the previous version of
+      Mpich. The failure no long exists in the current Mpich. Therefore the
+      bypass is removed. (AKC - 2014/11/03 HDFFV-8954)
+
+    - Fixed incorrect exit code values (was -1) in testframe which is commonly
+      used by several test programs. (AKC - 2014/07/22 HDFFV-8881)
+
+    - Fixed Incorrect Exit Code Values in Testframe
+      The testframe which is commonly used by several test programs 
+      had some incorrect exit code values.  Fixed the incorrect exit code
+      values.  (AKC - 2014/07/22, HDFFV-8881)
+
+Supported Platforms
+===================
+The following platforms are supported and have been tested for this release.
+They are built with the configure process unless specified otherwise.
+
+    AIX 5.3                       xlc 10.1.0.5
+    (NASA G-ADA)                  xlC 10.1.0.5
+                                  xlf90 12.1.0.6
+
+    Linux 2.6.18-308.13.1.el5PAE  GNU C (gcc), Fortran (gfortran), C++ (g++)
+    #1 SMP i686 i686 i386         compilers for 32-bit applications;
+    (jam)                             Version 4.1.2 20080704 (Red Hat 4.1.2-54)
+                                      Version 4.8.2
+                                  PGI C, Fortran, C++ Compilers for 32-bit
+                                  applications;
+                                      Version 13.7-0
+                                  Intel(R) C, C++, Fortran Compiler for 32-bit
+                                  applications;
+                                      Version 14.0.2 (Build 20140120)
+
+    Linux 2.6.18-371.6.1.el5      GNU C (gcc), Fortran (gfortran), C++ (g++)
+    #1 SMP x86_64 GNU/Linux       compilers for 64-bit applications;
+    (koala)                           Version 4.1.2 20080704 (Red Hat 4.1.2-54)
+                                      Version 4.8.2
+                                  Intel(R) C, C++, Fortran Compilers for 
+                                  applications running on Intel(R) 64; 
+                                      Version 14.0.2 (Build 20140120)
+
+    Linux 2.6.32-431.11.2.el6    GNU C (gcc), Fortran (gfortran), C++ (g++)
+    #1 SMP x86_64 GNU/Linux       compilers:
+    (platypus)                       Version 4.4.7 20120313
+                                     Version 4.8.2
+                                  PGI C, Fortran, C++ for 64-bit target on 
+                                  x86-64;
+                                      Version 13.7-0 
+                                  Intel(R) C (icc), C++ (icpc), Fortran (icc)
+                                  compilers:
+                                     Version 14.0.2 (Build 20140120)
+
+    Linux 2.6.32-431.29.2.el6.ppc64 gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-4)
+    #1 SMP ppc64 GNU/Linux        g++ (GCC) 4.4.7 20120313 (Red Hat 4.4.7-4)
+    (ostrich)                     GNU Fortran (GCC) 4.4.7 20120313 (Red Hat 4.4.7-4)
+                                  IBM XL C/C++ V13.1
+                                  IBM XL Fortran V15.1
+
+    SunOS 5.11 32- and 64-bit     Sun C 5.12 SunOS_sparc
+    (emu)                         Sun Fortran 95 8.6 SunOS_sparc
+                                  Sun C++ 5.12 SunOS_sparc
+
+    Windows 7                     Visual Studio 2008  (cmake)
+                                  Visual Studio 2010 w/ Intel Fortran 14 (cmake)
+                                  Visual Studio 2012 w/ Intel Fortran 14 (cmake)
+                                  Visual Studio 2013 w/ Intel Fortran 14 (cmake)
+                                  Cygwin(CYGWIN_NT-6.1 1.7.32(0.274/5/3) gcc(4.8.3) compiler and gfortran)
+                                  (cmake and autotools)
+
+    Windows 7 x64                 Visual Studio 2008  (cmake)
+                                  Visual Studio 2010 w/ Intel Fortran 14 (cmake)
+                                  Visual Studio 2012 w/ Intel Fortran 14 (cmake)
+                                  Visual Studio 2013 w/ Intel Fortran 14 (cmake)
+                                  
+    Windows 8.1                   Visual Studio 2012 w/ Intel Fortran 14 (cmake)
+                                  Visual Studio 2013 w/ Intel Fortran 14 (cmake)
+
+    Windows 8.1 x64               Visual Studio 2012 w/ Intel Fortran 14 (cmake)
+                                  Visual Studio 2013 w/ Intel Fortran 14 (cmake)
+
+    Mac OS X Lion 10.7.5          Apple clang/clang++ version 3.0 from Xcode 4.6.1
+    64-bit                        gfortran GNU Fortran (GCC) 4.8.2
+    (duck)                        Intel icc/icpc/ifort version 13.0.3
+
+    Mac OS X Mt. Lion 10.8.5      Apple clang/clang++ version 5.1 from Xcode 5.1
+    64-bit    			  gfortran GNU Fortran (GCC) 4.8.2
+    (swallow/kite)                Intel icc/icpc/ifort version 14.0.2
+
+    Mac OS X Mavericks 10.9.5     Apple clang/clang++ version 6.0 from Xcode 6.0.1
+    64-bit    			  gfortran GNU Fortran (GCC) 4.8.2
+    (wren)                        Intel icc/icpc/ifort version 14.0.2
+
+
+Tested Configuration Features Summary
+=====================================
+
+    In the tables below
+          y   = tested 
+          n   = not tested in this release
+          C   = Cluster
+          W   = Workstation
+          x   = not working in this release
+          dna = does not apply
+          ( ) = footnote appears below second table
+          <blank> = testing incomplete on this feature or platform 
+
+Platform                              C         F90/   F90      C++  zlib  SZIP
+                                      parallel  F2003  parallel
+Solaris2.11 32-bit                      n        y/y    n        y    y     y
+Solaris2.11 64-bit                      n        y/y    n        y    y     y
+Windows 7                               y        y/y    n        y    y     y
+Windows 7 x64                           y        y/y    n        y    y     y
+Windows 7 Cygwin                        n        y/y    n        y    y     n 
+Windows 8.1                             n        y/y    n        y    y     y
+Windows 8.1 x64                         n        y/y    n        y    y     y
+Mac OS X Lion 10.7.5 64-bit             n        y/y    n        y    y     y
+Mac OS X Mountain Lion 10.8.5 64-bit    n        y/y    n        y    y     y
+Mac OS X Mavericks 10.9.5 64-bit        n        y/y    n        y    y     ?
+AIX 5.3 32- and 64-bit                  n        y/n    n        y    y     y
+CentOS 5.9 Linux 2.6.18-308 i686 GNU    y        y/y    y        y    y     y
+CentOS 5.9 Linux 2.6.18-308 i686 Intel  n        y/y    n        y    y     y
+CentOS 5.9 Linux 2.6.18-308 i686 PGI    n        y/y    n        y    y     y
+CentOS 5.9 Linux 2.6.18 x86_64 GNU      n        y/y    n        y    y     y
+CentOS 5.9 Linux 2.6.18 x86_64 Intel    n        y/y    n        y    y     y
+CentOS 6.4 Linux 2.6.32 x86_64 GNU      y        y/y    y        y    y     y
+CentOS 6.4 Linux 2.6.32 x86_64 Intel    n        y/y    n        y    y     y
+CentOS 6.4 Linux 2.6.32 x86_64 PGI      n        y/y    n        y    y     y
+Linux 2.6.32-431.11.2.el6.ppc64         n        y/n    n        y    y     y
+
+Platform                                 Shared  Shared    Shared    Thread-  
+                                         C libs  F90 libs  C++ libs  safe     
+Solaris2.11 32-bit                         y       y         y         y        
+Solaris2.11 64-bit                         y       y         y         y        
+Windows 7                                  y       y         y         y
+Windows 7 x64                              y       y         y         y
+Windows 7 Cygwin                           n       n         n         y
+Windows 8.1                                y       y         y         y
+Windows 8.1 x64                            y       y         y         y
+Mac OS X Lion 10.7.5 64-bit                y       n         y         y        
+Mac OS X Mountain Lion 10.8.5 64-bit       y       n         y         y        
+Mac OS X Mavericks 10.9.5 64-bit           y       n         y         y
+AIX 5.3 32- and 64-bit                     y       n         n         y        
+CentOS 5.9 Linux 2.6.18-308 i686 GNU       y       y         y         y        
+CentOS 5.9 Linux 2.6.18-308 i686 Intel     y       y         y         n        
+CentOS 5.9 Linux 2.6.18-308 i686 PGI       y       y         y         n        
+CentOS 5.9 Linux 2.6.18 x86_64 GNU         y       y         y         y        
+CentOS 5.9 Linux 2.6.18 x86_64 Intel       y       y         y         n        
+CentOS 6.4 Linux 2.6.32 x86_64 GNU         y       y         y         n
+CentOS 6.4 Linux 2.6.32 x86_64 Intel       y       y         y         n
+CentOS 6.4 Linux 2.6.32 x86_64 PGI         y       y         y         n     
+Linux 2.6.32-431.11.2.el6.ppc64            y       y         y         n 
+
+Compiler versions for each platform are listed in the preceding
+"Supported Platforms" table.
+
+
+More Tested Platforms
+=====================
+The following platforms are not supported but have been tested for this release.
+
+    Linux 2.6.18-308.13.1.el5PAE  MPICH mpich 3.1.2 compiled with
+    #1 SMP i686 i686 i386             gcc 4.9.1 and gfortran 4.9.1
+    (jam)                         g95 (GCC 4.0.3 (g95 0.94!)
+
+    Linux 2.6.18-431.11.2.el6     MPICH mpich 3.1.2 compiled with
+    #1 SMP x86_64 GNU/Linux           gcc 4.9.1 and gfortran 4.9.1
+    (platypus)                    g95 (GCC 4.0.3 (g95 0.94!)   
+
+    FreeBSD 8.2-STABLE i386       gcc 4.5.4 [FreeBSD] 20110526
+    (loyalty)                     gcc 4.6.1 20110527
+                                  g++ 4.6.1 20110527
+                                  gfortran 4.6.1 20110527
+
+    FreeBSD 8.2-STABLE amd64      gcc 4.5.4 [FreeBSD] 20110526
+    (freedom)                     gcc 4.6.1 20110527
+                                  g++ 4.6.1 20110527
+                                  gfortran 4.6.1 20110527
+
+    Debian7.5.0 3.2.0-4-amd64 #1 SMP Debian 3.2.51-1 x86_64 GNU/Linux
+                                  gcc (Debian 4.7.2-5) 4.7.2
+                                  GNU Fortran (Debian 4.7.2-5) 4.7.2
+                                  (cmake and autotools)
+
+    Fedora20 3.15.3-200.fc20.x86_64 #1 SMP x86_64 x86_64 x86_64 GNU/Linux
+                                  gcc (GCC) 4.8.3 20140624 (Red Hat 4.8.3-1)
+                                  GNU Fortran (GCC) 4.8.3 20140624 (Red Hat 4.8.3-1)
+                                  (cmake and autotools)
+
+    SUSE 13.1 3.11.10-17-desktop #1 SMP PREEMPT x86_64 x86_64 x86_64 GNU/Linux
+                                  gcc (SUSE Linux) 4.8.1
+                                  GNU Fortran (SUSE Linux) 4.8.1
+                                  (cmake and autotools)
+
+    Ubuntu 14.04 3.13.0-35-generic #62-Ubuntu SMP x86_64 GNU/Linux
+                                  gcc (Ubuntu/Linaro 4.9.1-0ubuntu1) 4.9.1
+                                  GNU Fortran (Ubuntu/Linaro 4.9.1-0ubuntu1) 4.9.1
+                                  (cmake and autotools)
+    
+    Cray Linux Environment (CLE)  PrgEnv-pgi/4.2.34
+    hopper.nersc.gov              pgcc 13.6-0 64-bit target on x86-64 Linux -tp istanbul
+                                  pgf90 13.6-0 64-bit target on x86-64 Linux -tp istanbul
+                                  pgCC 13.6-0 64-bit target on x86-64 Linux -tp istanbul
+
+
+Known Problems
+==============
+* On cygwin platforms the feature to load dynamic filter libraries only looks
+  for libraries with the a so extension. Support for cygwin cygxxx.dll libraries
+  is planned for the next release.
+  (ADB - 2014/11/04 - HDFFV-8736)
+
+* On windows platforms in debug configurations, the VFD flush1 tests will fail
+  with the split and multi VFD drivers. These tests will display a modal debug 
+  dialog which must be answered or wait for the test timeout to expire.
+  The flush1 and flush2 tests will be skipped under debug for this release.
+  (ADB - 2014/06/23 - HDFFV-8851)
+
+* CLANG compiler with the options -fcatch-undefined-behavior and -ftrapv
+  catches some undefined behavior in the alignment algorithm of the macro DETECT_I
+  in H5detect.c (Issue 8147).  Since the algorithm is trying to detect the alignment
+  of integers, ideally the flag -fcatch-undefined-behavior shouldn't to be used for
+  H5detect.c. In the future, we can separate flags for H5detect.c from the rest of
+  the library. (SLU - 2013/10/16)
+
+* Make provided by Solaris fails in "make check". Solaris users should use
+  gmake to build and install the HDF5 software. (AKC - 2013/10/08 - HDFFV-8534)
+
+* The h5dump and h5diff utilities occasionally produce different output
+  between Linux and Windows systems. This is caused by lower-level library
+  routines that fail to write fill values to the user's buffer when reading
+  unallocated chunks from datasets that have a fill value set to
+  H5D_FILL_VALUE_DEFAULT. Due to platform differences the return of
+  spurious data values has only been encountered on Windows 32-bit systems.
+  (Issue HDFFV-8247; JP - 2013/03/27)
+
+* The C++ and FORTRAN bindings are not currently working on FreeBSD with the
+  native release 8.2 compilers (4.2.1), but are working with gcc 4.6 from the
+  ports (and probably gcc releases after that).
+  (QAK - 2012/10/19)
+
+* The STDIO VFD does not work on some architectures, possibly due to 32/64
+  bit or large file issues.  The basic STDIO VFD test is known to fail on
+  64-bit SunOS 5.10 on SPARC when built with -m64 and 32-bit OS X/Darwin
+  10.7.0.  The STDIO VFD test has been disabled while we investigate and
+  a fix should appear in a future release.
+  (DER - 2011/10/14 - HDFFV-8235)
+
+* h5diff can report inconsistent results when comparing datasets of enum type
+  that contain invalid values.  This is due to how enum types are handled in
+  the library and will be addressed in a future release.
+  (DER - 2011/10/14 - HDFFV-7527)
+
+* The links test can fail under the stdio VFD due to some issues with external
+  links.  This will be investigated and fixed in a future release.
+  (DER - 2011/10/14 - HDFFV-7768)
+
+* After the shared library support was fixed for some bugs, it was discovered
+  that "make prefix=XXX install" no longer works for shared libraries. It
+  still works correctly for static libraries. Therefore, if you want to
+  install the HDF5 shared libraries in a location such as /usr/local/hdf5,
+  you need to specify the location via the --prefix option during configure 
+  time. E.g, ./configure --prefix=/usr/local/hdf5 ...
+  (AKC - 2011/05/07 - HDFFV-7583)
+
+* The parallel test, t_shapesame, in testpar/, may run for a long time and may
+  be terminated by the alarm signal.  If that happens, one can increase the
+  alarm seconds (default is 1200 seconds = 20 minutes) by setting the
+  environment variable, $HDF5_ALARM_SECONDS, to a larger value such as 3600
+  (60 minutes).  Note that the t_shapesame test may fail in some systems 
+  (see the "While working on the 1.8.6 release..." problem below).  If 
+  it does, it will waste more time if $HDF5_ALARM_SECONDS is set
+  to a larger value.
+  (AKC - 2011/05/07)
+
+* Shared Fortran libraries are not quite working on AIX. While they are
+  generated when --enable-shared is specified, the fortran and hl/fortran
+  tests fail. We are looking into the issue. HL and C++ shared libraries
+  should now be working as intended, however.
+  (MAM - 2011/04/20)
+
+* The --with-mpe configure option does not work with Mpich2.
+  (AKC - 2011/03/10)
+
+* While working on the 1.8.6 release of HDF5, a bug was discovered that can
+  occur when reading from a dataset in parallel shortly after it has been
+  written to collectively. The issue was exposed by a new test in the parallel
+  HDF5 test suite, but had existed before that. We believe the problem lies with
+  certain MPI implementations and/or file systems.
+
+  We have provided a pure MPI test program, as well as a standalone HDF5
+  program, that can be used to determine if this is an issue on your system.
+  They should be run across multiple nodes with a varying number of processes.
+  These programs can be found at:
+  http://www.hdfgroup.org/ftp/HDF5/examples/known_problems/
+  (NAF - 2011/01/19)
+
+* All the VFL drivers aren't backward compatible.  In H5FDpublic.h, the
+  structure H5FD_class_t changed in 1.8.  There is new parameter added to
+  get_eoa and set_eoa callback functions.  A new callback function
+  get_type_map was added in.  The public function H5FDrealloc was taken
+  out in 1.8.  The problem only happens when users define their own driver
+  for 1.6 and try to plug in 1.8 library.  Because there's only one user 
+  complaining about it, we (Elena, Quincey, and I) decided to leave it as 
+  it is (see bug report #1279).  Quincey will make a plan for 1.10.
+  (SLU - 2010/02/02)
+
+* The --enable-static-exec configure flag will only statically link libraries
+  if the static version of that library is present. If only the shared version
+  of a library exists (i.e., most system libraries on Solaris, AIX, and Mac,
+  for example, only have shared versions), the flag should still result in a 
+  successful compilation, but note that the installed executables will not be 
+  fully static. Thus, the only guarantee on these systems is that the 
+  executable is statically linked with just the HDF5 library.
+  (MAM - 2009/11/04)
+  
+* Parallel tests failed with 16 processes with data inconsistency at testphdf5
+  / dataset_readAll. Parallel tests also failed with 32 and 64 processes with
+  collective abort of all ranks at t_posix_compliant / allwrite_allread_blocks
+  with MPI IO.
+  (CMC - 2009/04/28)
+
+* A dataset created or rewritten with a v1.6.3 library or after cannot be read 
+  with the v1.6.2 library or before when the Fletcher32 EDC filter is enabled.
+  There was a bug in the calculation of the Fletcher32 checksum in the 
+  library before v1.6.3; the checksum value was not consistent between big-
+  endian and little-endian systems.  This bug was fixed in Release 1.6.3.  
+  However, after fixing the bug, the checksum value was no longer the same as 
+  before on little-endian system.  Library releases after 1.6.4 can still read 
+  datasets created or rewritten with an HDF5 library of v1.6.2 or before.  
+  (SLU - 2005/06/30)
+
+
 %%%%1.8.13%%%%   
 
 
diff --git a/release_docs/INSTALL b/release_docs/INSTALL
index d687986..1e339c3 100644
--- a/release_docs/INSTALL
+++ b/release_docs/INSTALL
@@ -1,4 +1,3 @@
-
 Instructions for the Installation of HDF5 Software
 ==================================================
 
@@ -13,25 +12,25 @@ CONTENTS
         1. Obtaining HDF5
 
         2. Quick installation
-        2.1. Windows
-        2.2. Red Storm (Cray XT3)
+        2.1. UNIX platforms
+        2.2. Windows and Cygwin
 
         3. HDF5 dependencies
-        3.1. Zlib
-        3.2  Szip (optional)
-        3.3. MPI and MPI-IO
+        3.1. Make
+        3.2. Zlib
+        3.3  Szip (optional)
+        3.4. MPI and MPI-IO
 
         4. Full installation instructions for source distributions
         4.1. Unpacking the distribution
         4.1.1. Non-compressed tar archive (*.tar)
-        4.1.2. Compressed tar archive (*.tar.Z)
-        4.1.3. Gzip'd tar archive (*.tar.gz)
-        4.1.4. Bzip'd tar archive (*.tar.bz2)
+        4.1.2. Gzip'd tar archive (*.tar.gz)
+        4.1.3. Bzip'd tar archive (*.tar.bz2)
         4.2. Source versus build directories
         4.3. Configuring
         4.3.1. Specifying the installation directories
         4.3.2. Using an alternate C compiler
-        4.3.3. Configuring for 64-bit support
+        4.3.3. Configuring for 32 or 64-bit support
         4.3.4. Additional compilation flags
         4.3.5. Compiling HDF5 wrapper libraries
         4.3.6. Specifying other programs
@@ -49,9 +48,6 @@ CONTENTS
 
         6. Support
 
-        A. Building and testing with other compilers
-        A.1.  Building and testing with Intel compilers
-        A.2.  Building and testing with PGI compilers
 
 *****************************************************************************
 
@@ -74,6 +70,7 @@ CONTENTS
 
 
 2. Quick installation
+2.1. UNIX platforms
         For those who don't like to read ;-) the following steps can be used
         to configure, build, test, and install the HDF5 Library, header files,
         and support programs. For example, to install HDF5 version X.Y.Z at
@@ -92,6 +89,12 @@ CONTENTS
 
             $ tar zxf hdf5-X.Y.Z.tar.gz
 
+        Some versions even auto-recognize the file is in compressed format
+        and will do uncompression automatically. The step above can be
+        further simplified to the following:
+
+            $ tar xf hdf5-X.Y.Z.tar.gz
+
         <configure_flags> above refers to the configure flags appropriate
         to your installation.  For example, to install HDF5 with the 
         Fortran and C++ interfaces and with SZIP compression, the 
@@ -103,55 +106,52 @@ CONTENTS
         In this case, PATH_TO_SZIP would be replaced with the path to the 
         installed location of the SZIP library.
 
-2.1. Windows
+2.2. Windows and Cygwin
         Users of Microsoft Windows should see the INSTALL_Windows files for
-        detailed instructions.  INSTALL_Cygwin and INSTALL_MinGW also exist for 
-        those platforms.
-
-2.2. Red Storm (Cray XT3)
-        Users of the Red Storm machine, after reading this file, should read
-        the Red Storm section in the INSTALL_parallel file for specific
-        instructions for the Red Storm machine.  The same instructions would
-        probably work for other Cray XT3 systems, but they have not been
-        verified.
+        detailed instructions.  INSTALL_Cygwin also exists for those platforms.
 
 
 3. HDF5 dependencies
-3.1. Zlib
+3.1. Make
+        The building of HDF5 Library employs some Gnu Make (gmake)
+        features. Either gmake or compatible make is needed for the building
+        and installation of the Library.
+
+3.2. Zlib
         The HDF5 Library includes a predefined compression filter that 
         uses the "deflate" method for chunked datasets. If zlib-1.1.2 or
         later is found, HDF5 will use it.  Otherwise, HDF5's predefined
         compression method will degenerate to a no-op; the compression
         filter will succeed but the data will not be compressed.
 
-3.2. Szip (optional)
-        The HDF5 Library includes a predefined compression filter that 
-        uses the extended-Rice lossless compression algorithm for chunked 
-        datasets. For more information about Szip compression and license 
+3.3. Szip (optional)
+        The HDF5 Library includes a predefined compression filter that
+        uses the extended-Rice lossless compression algorithm for chunked
+        datasets. For more information about Szip compression and license
         terms, see http://hdfgroup.org/doc_resource/SZIP/.
 
         The Szip source code can be obtained from the HDF5 Download page
-        http://www.hdfgroup.org/HDF5/release/obtain5.html#extlibs. Building 
-        instructions are available with the Szip source code. 
+        http://www.hdfgroup.org/HDF5/release/obtain5.html#extlibs. Building
+        instructions are available with the Szip source code.
 
         The HDF Group does not distribute separate Szip precompiled libraries,
-        but the HDF5 binaries available from 
+        but the HDF5 binaries available from
         http://www.hdfgroup.org/HDF5/release/obtain5.html include 
         the Szip encoder enabled binary for the corresponding platform.
 
-        To configure the HDF5 Library with the Szip compression filter, use 
-        the '--with-szlib=/PATH_TO_SZIP' flag. For more information, see 
+        To configure the HDF5 Library with the Szip compression filter, use
+        the '--with-szlib=/PATH_TO_SZIP' flag. For more information, see
         section 4.3.7, "Specifying other libraries and headers."
 
         Please notice that if HDF5 configure cannot find a valid Szip library,
         configure will not fail; in this case, the compression filter will 
-        not be available to the applications. 
-        
+        not be available to the applications.
+
         To check if Szip compression was successfully configured in, 
-        check the "I/O filters (external):" line in the configure output, 
+        check the "I/O filters (external):" line in the configure output,
         summary section, printed to the standard output.
 
-3.3. MPI and MPI-IO
+3.4. MPI and MPI-IO
         The parallel version of the library is built upon the foundation
         provided by MPI and MPI-IO. If these libraries are not available
         when HDF5 is configured, only a serial version of HDF5 can be built.
@@ -168,23 +168,22 @@ CONTENTS
 
             $ tar xf hdf5-X.Y.Z.tar
 
-4.1.2. Compressed tar archive (*.tar.Z)
-
-            $ uncompress -c < hdf5-X.Y.Z.tar.Z | tar xf -
-            Or
-            $ tar Zxf hdf5-X.Y.Z.tar.Z
-
-4.1.3. Gzip'd tar archive (*.tar.gz)
+4.1.2. Gzip'd tar archive (*.tar.gz)
 
             $ gunzip < hdf5-X.Y.Z.tar.gz | tar xf -
             Or
             $ tar zxf hdf5-X.Y.Z.tar.gz
+            Or
+            $ tar xf hdf5-X.Y.Z.tar.gz
 
-4.1.4. Bzip'd tar archive (*.tar.bz2)
+4.1.3. Bzip'd tar archive (*.tar.bz2)
 
             $ bunzip2 < hdf5-X.Y.Z.tar.bz2 | tar xf -
             Or
             $ tar jxf hdf5-X.Y.Z.tar.bz2
+            Or
+            $ tar xf hdf5-X.Y.Z.tar.bz2
+
 
 4.2. Source versus build directories
         On most systems the build can occur in a directory other than the
@@ -246,18 +245,23 @@ CONTENTS
 
             $ CC=cc ./configure
 
-        A parallel version of HDF5 can be built by specifying `mpicc'
-        as the C compiler.  (The `--enable-parallel' flag documented
-        below is optional in this case.)  Using the `mpicc' compiler
-        will insure that the correct MPI and MPI-IO header files and
-        libraries are used.
+        A parallel version of HDF5 can be built by specifying `mpicc' as
+        the C compiler.   Using the `mpicc' compiler will insure that the
+        correct MPI and MPI-IO header files and libraries are used.
 
-            $ CC=/usr/local/mpi/bin/mpicc ./configure
+            $ CC=/usr/local/mpi/bin/mpicc ./configure --enable-parallel
 
-4.3.3. Configuring for 64-bit support
-        Several machine architectures support 32-bit or 64-bit binaries.
+4.3.3. Configuring for 64 or 32 bit support
+        Some machine architectures support 32-bit or 64-bit binaries.
         The options below describe how to enable support for different options.
 
+        Users compiling on 64-bit Linux systems may generate 32-bit binary
+        with the following flags:
+
+            $ CC='gcc -m32' ./configure
+            OR
+            $ CFLAGS='-m32' ./configure
+
         Users compiling on older Solaris machines using the Sun compiler and
         desiring to build the distribution with 64-bit support may need to
         specify the compiler 'cc' with the appropriate flag:
@@ -271,7 +275,7 @@ CONTENTS
               ./configure --enable-fortran
         Parallel: (C++ not supported with parallel)
             $ CFLAGS=-q64 FCFLAGS=-q64 AR='ar -X 64'\
-              ./configure --enable-fortran
+              ./configure --enable-parallel --enable-fortran
 
 4.3.4. Additional compilation flags
         If addtional flags must be passed to the compilation commands,
@@ -288,22 +292,23 @@ CONTENTS
 
             $ ./configure --enable-fortran
             $ ./configure --enable-cxx
-        
-        Configuration will halt if a working Fortran 90 or 95 compiler or
-        C++ compiler is not found. Currently, the Fortran configure tests
-        for these compilers in order: f90, pgf90, f95. To use an
-        alternate compiler specify it with the FC variable:
 
-            $ FC=/usr/local/bin/g95 ./configure --enable-fortran
+        Additionally, --enable-fortran --enable-fortran2003 enables Fortran
+        2003 APIs. Configuration will halt if a working Fortran 90/95 compiler 
+        (or a working Fortran 2003 compiler in the case of 
+        --enable-fortran2003) was specified or C++ compiler is not found. 
+        Currently, the Fortran configure tests for these compilers in order: 
+        gfortran ifort pgf90 pathf90 pathf95 xlf90 xlf95 xlf2003 f90 epcf90 f95 
+        fort lf95 g95 ifc efc gfc. To use an alternate compiler specify it with 
+        the FC variable:
+
+            $ FC=/usr/local/bin/gfortran ./configure --enable-fortran --enable-fortran2003
 
         Note: The Fortran and C++ interfaces are not supported on all the
               platforms the main HDF5 Library supports. Also, the Fortran
               interface supports parallel HDF5 while the C++ interface does
               not.
 
-        Note: See sections 4.7 and 4.8 for building the Fortran library with
-              Intel or PGI compilers. 
-
 4.3.6. Specifying other programs
         The build system has been tuned for use with GNU make which is
         the preferred version. Other versions of make may or may not work
@@ -361,7 +366,7 @@ CONTENTS
               LDFLAGS=-L/usr/unsup/lib \
               ./configure
 
-        HDF5 includes Szip as a predefined compression method (see 3.2).  
+        HDF5 includes Szip as a predefined compression method (see 3.3).  
         To enable Szip compression, the HDF5 Library must be configured 
         and built using the Szip Library:
 
@@ -420,7 +425,7 @@ CONTENTS
         HDF5 can also print a trace of all API function calls, their 
         arguments, and the return values. To enable or disable the
         ability to trace the API say `--enable-trace' (the default for
-        snapthots) or `--disable-trace' (the default for public releases). 
+        snapshots) or `--disable-trace' (the default for public releases). 
         The tracing must also be enabled at runtime to see any output 
         (see "Debugging HDF5 Applications," reference above).
 
@@ -499,11 +504,10 @@ CONTENTS
 4.6. Installing HDF5
         The HDF5 Library, include files, and support programs can be
         installed in a (semi-)public place by saying `make install'. The
-        files are installed under the directory specified with
-        `--prefix=DIR' (default is 'hdf5') in directories named `lib',
-        `include', and `bin'. The directories, if not existing, will be
-        created automatically, provided the mkdir command supports the -p
-        option.
+        files are installed under the directory specified with `--prefix=DIR'
+        (default is 'hdf5' in the build directory) in directories named `lib',
+        `include', and `bin'. The directories, if not existing, will be created
+        automatically, provided the mkdir command supports the -p option.
 
         If `make install' fails because the install command at your site
         somehow fails, you may use the install-sh that comes with the
@@ -577,77 +581,3 @@ CONTENTS
         Support is described in the README file.
 
 
-*****************************************************************************
-                                APPENDICES
-*****************************************************************************
-
-A. Building and testing with other compilers
-A.1.  Building and testing with Intel compilers
-        When Intel compilers are used (icc or ecc), you will need to modify
-        the generated "libtool" program after configuration is finished.
-        On or around line 104 of the libtool file, there are lines which 
-        look like:
-
-            # How to pass a linker flag through the compiler.
-            wl=""
-
-        Change these lines to this:
-
-            # How to pass a linker flag through the compiler.
-            wl="-Wl,"
-
-        UPDATE: This is now done automatically by the configure script. 
-        However, if you still experience a problem, you may want to check this 
-        line in the libtool file and make sure that it has the correct value.
-
-      * To build the Fortran library using Intel compiler on Linux 2.4, 
-        one has to perform the following steps:
-          x Use the -fpp -DDEC$=DEC_ -DMS$=MS_ compiler flags to disable
-            DEC and MS compiler directives in source files in the fortran/src, 
-            fortran/test, and fortran/examples directories.
-            E.g.,  setenv F9X 'ifc -fpp -DDEC$=DEC_ -DMS$=MS_'
-            Do not use double quotes since $ is interpreted in them.
-
-          x If Version 6.0 of Fortran compiler is used, the build fails in 
-            the fortran/test directory and then in the fortran/examples 
-            directory.  To proceed, edit the work.pcl files in those 
-            directories to contain two lines:
-
-                    work.pc
-                    ../src/work.pc 
-
-          x Do the same in the fortran/examples directory.
-
-          x A problem with work.pc files was resolved for the newest version 
-            of the compiler (7.0).
-
-       * To build the Fortran library on IA32, follow the steps described 
-         above, except that the DEC and MS compiler directives should be 
-         removed manually or use a patch from HDF FTP server:
-
-             ftp://ftp.hdfgroup.org/HDF5/current/
-
-
-A.2.  Building and testing with PGI compilers
-        When PGI C and C++ compilers are used (pgcc or pgCC), you will need to 
-        modify the generated "libtool" program after configuration is finished.
-        On or around line 104 of the libtool file, there are lines which 
-        look like this:
-
-            # How to pass a linker flag through the compiler.
-            wl=""
-
-        Change these lines to this:
-
-            # How to pass a linker flag through the compiler.
-            wl="-Wl,"
-
-        UPDATE: This is now done automatically by the configure script. However,
-        if you still experience a problem, you may want to check this line in
-        the libtool file and make sure that it has the correct value.
-
-        To build the HDF5 C++ Library with pgCC (version 4.0 and later), set
-        the environment variable CXX to "pgCC -tlocal"
-            setenv CXX "pgCC -tlocal"
-        before running the configure script.
-
diff --git a/release_docs/INSTALL_CMake.txt b/release_docs/INSTALL_CMake.txt
index b831071..7f67eb2 100644
--- a/release_docs/INSTALL_CMake.txt
+++ b/release_docs/INSTALL_CMake.txt
@@ -26,11 +26,11 @@ Obtaining HDF5 source code
    2. Obtain compressed (*.tar or *.zip) HDF5 source from
         http://www.hdfgroup.org/ftp/HDF5/current/src/
       and put it in "myhdfstuff".
-      Do not uncompress.
+      Uncompress the file. There should be a hdf5-1.8."X" folder.
 
 CMake version
    1. We suggest you obtain the latest CMake from the Kitware web site. 
-      The HDF5 1.8."X" product requires a minimum CMake version 2.8.12,
+      The HDF5 1.8."X" product requires a minimum CMake version 3.1.0,
       where "X" is the current HDF5 release version.                     
 
 
@@ -38,14 +38,19 @@ CMake version
 II. Quick Step Building HDF5 Libraries with CMake Script Mode
 ========================================================================
 This short set of instructions is written for users who want to quickly 
-build the HDF5 C, C++, Fortran, and High-level shared libraries and tools
-from the HDF5 source code package using the CMake tools. This procedure 
-will use the default settings in the config/cmake/cacheinit.cmake file.
+build the HDF5 C and C++ static libraries and tools with SZIP and ZLIB 
+compression included.  This procedure will use the default settings in 
+the config/cmake/cacheinit.cmake file.
 HDF Group recommends using the ctest script mode to build HDF5.
 
 The following files referenced below are available at the HDF web site:
     http://www.hdfgroup.org/HDF5/release/cmakebuild.html
 
+Single compressed file with all the files needed, including source:
+    hdf5-1.8.15-CMake.zip or hdf5-1.8.15-CMake.tar.gz
+
+Individual files
+-----------------------------------------------
 CMake build script:
     CTestScript.cmake
 
@@ -54,10 +59,8 @@ External compression szip and zlib libraries:
     ZLib.tar.gz
     
 Platform configuration files:
-    HDF518Windows64CMake.cmake
-    HDF518Windows32CMake.cmake
-    HDF518LinuxCMake.cmake
-    HDF518MacCMake.cmake
+    HDF518config.cmake
+-----------------------------------------------
 
 To build HDF5 with the SZIP and ZLIB external libraries you will need to:
 
@@ -69,32 +72,47 @@ To build HDF5 with the SZIP and ZLIB external libraries you will need to:
    3. Download the CTestScript.cmake file to "myhdfstuff".
       CTestScript.cmake file should not be modified.    
        
-   4. Download a platform configuration file to "myhdfstuff".
-      Do not modify the file unless you want to change default build 
-      environment.
+   4. Download the platform configuration file, HDF518config.cmake,
+      to "myhdfstuff". Do not modify the file unless you want to change
+      default build environment. (See http://www.hdfgroup.org/HDF5/release/chgcmkbuild.html)
 
    5. From the "myhdfstuff" directory execute the CTest Script with the 
       following options:
 
-         ctest -S <configuration file> -C Release -VV -O hdf5.log
+      On 32-bit Windows with Visual Studio 2012, execute:
+         ctest -S HDF518config.cmake,32-VS2012 -C Release -VV -O hdf5.log
+      On 64-bit Windows with Visual Studio 2012, execute:
+         ctest -S HDF518config.cmake,64-VS2012 -C Release -VV -O hdf5.log
+      On 32-bit Windows with Visual Studio 2013, execute:
+         ctest -S HDF518config.cmake,32-VS2013 -C Release -VV -O hdf5.log
+      On 64-bit Windows with Visual Studio 2013, execute:
+         ctest -S HDF518config.cmake,64-VS2013 -C Release -VV -O hdf5.log
+      On Linux and Mac, execute:
+         ctest -S HDF518config.cmake -C Release -VV -O hdf5.log
 
       The command above will configure, build, test, and create an install 
-      package in the myhdfstuff/hdf5-1.8/build folder.
+      package in the myhdfstuff folder. It will have the format:
+          HDF5-1.8.NN-<platform>.<zip or tar.gz>
 
+          On Unix, <platform> will be "Linux". A similar .sh file will also be created.
+          On Windows, <platform> will be "win64" or "win32". If you have an 
+          installer on your system, you will also see a similar file that ends 
+          in either .exe (NSIS) or .msi (WiX).
+           
       The -S option uses the script version of ctest.
         
       The value for the -C option (as shown above, "-C Release") must 
       match the setting for CTEST_BUILD_CONFIGURATION in the platform 
       configuration file.
         
-      The -VV option is for verbose; use -V for less verbose.
+      The -VV option is for most verbose; use -V for less verbose.
         
       The "-O hdf5.log" option saves the output to a log file hdf5.log.
 
    6. To install, "X" is the current release version
  
       On Windows, execute:
-                HDF5-1.8."X"-win32.exe or HDF5-1.8."X"-win64.exe
+                HDF5-1.8."X"-win32.msi or HDF5-1.8."X"-win64.msi
       By default this program will install the hdf5 library into the
       "C:\Program Files" directory and will create the following 
       directory structure:
@@ -108,7 +126,7 @@ To build HDF5 with the SZIP and ZLIB external libraries you will need to:
 
       On Linux, change to the install destination directory 
       (create it if doesn't exist) and execute:
-                <path-to>/myhdfstuff/hdf5-1.8/build/HDF5-1.8."X"-Linux.sh
+                <path-to>/myhdfstuff/HDF5-1.8."X"-Linux.sh
       After accepting the license, the script will prompt:
         By default the HDF5 will be installed in:
         "<current directory>/HDF5-1.8."X"-Linux"
@@ -124,7 +142,7 @@ To build HDF5 with the SZIP and ZLIB external libraries you will need to:
          ------lib
          ------share
                 
-      On Mac you will find HDF5-1.8."X"-Darwin.dmg in the build folder. Click
+      On Mac you will find HDF5-1.8."X"-Darwin.dmg in the myhdfstuff folder. Click
       on the dmg file to proceed with installation. After accepting the license,
       there will be a folder with the following structure:      
          HDF_Group
@@ -136,7 +154,7 @@ To build HDF5 with the SZIP and ZLIB external libraries you will need to:
          ------share
       
       By default the installation will create the bin, include, lib and cmake
-      folders in the <install destination directory>/HDF_Group/HDF5/1.8.
+      folders in the <install destination directory>/HDF_Group/HDF5/1.8."X"
 
 
 ========================================================================
@@ -159,10 +177,10 @@ Notes: This short set of instructions is written for users who want to
       5. Configure the C library, tools and tests with one of the following commands:
 
          On Windows 32 bit
-           cmake -G "Visual Studio 11" -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_TESTING:BOOL=ON -DHDF5_BUILD_TOOLS:BOOL=ON ..\hdf5-1.8."X"
+           cmake -G "Visual Studio 11 2012" -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_TESTING:BOOL=ON -DHDF5_BUILD_TOOLS:BOOL=ON ..\hdf5-1.8."X"
 
          On Windows 64 bit
-           cmake -G "Visual Studio 11 Win64" -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_TESTING:BOOL=ON -DHDF5_BUILD_TOOLS:BOOL=ON ..\hdf5-1.8."X"
+           cmake -G "Visual Studio 11 2012 Win64" -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_TESTING:BOOL=ON -DHDF5_BUILD_TOOLS:BOOL=ON ..\hdf5-1.8."X"
       
          On Linux and Mac
            cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_TESTING:BOOL=ON -DHDF5_BUILD_TOOLS:BOOL=ON ../hdf5-1.8."X"
@@ -180,7 +198,7 @@ Notes: This short set of instructions is written for users who want to
       
       9. To install 
          On Windows, execute:
-                HDF5-1.8."X"-win32.exe or HDF5-1.8."X"-win64.exe
+                HDF5-1.8."X"-win32.msi or HDF5-1.8."X"-win64.msi
          By default this program will install the hdf5 library into the
          "C:\Program Files" directory and will create the following 
          directory structure:
@@ -227,7 +245,7 @@ IV. Further considerations
 ========================================================================
 
    1. We suggest you obtain the latest CMake for windows from the Kitware
-      web site. The HDF5 1.8."X" product requires a minimum CMake version 2.8.12.                     
+      web site. The HDF5 1.8."X" product requires a minimum CMake version 3.1.0.                     
                                                                          
    2. If you plan to use Zlib or Szip:
       A. Download the binary packages and install them in a central location. 
@@ -267,7 +285,7 @@ IV. Further considerations
             CTEST_USE_LAUNCHERS:BOOL=ON
             CMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=OFF         
    
-   4. Windows developers should install NSIS to create an install image with CPack.
+   4. Windows developers should install NSIS or WiX to create an install image with CPack.
       Visual Studio Express users will not be able to package HDF5 into
       an install image executable.
    
@@ -275,7 +293,7 @@ IV. Further considerations
       the settings for the developers' environment. Then the only options needed
       on the command line are those options that are different. Example using HDF
       default cache file:
-           cmake -C ../config/cmake/cacheinit.cmake -G "Visual Studio 11" \
+           cmake -C ../config/cmake/cacheinit.cmake -G "Visual Studio 11 2012" \
                -DHDF5_ENABLE_SZIP_SUPPORT:BOOL=OFF -DHDF5_ENABLE_Z_LIB_SUPPORT:BOOL=OFF \
                -DCMAKE_BUILD_TYPE:STRING=Release ..
 
@@ -354,12 +372,12 @@ These five steps are described in detail below.
             * MinGW Makefiles
             * NMake Makefiles
             * Unix Makefiles
-            * Visual Studio 12
-            * Visual Studio 12 Win64
-            * Visual Studio 11
-            * Visual Studio 11 Win64
-            * Visual Studio 10
-            * Visual Studio 10 Win64
+            * Visual Studio 12 2013
+            * Visual Studio 12 2013 Win64
+            * Visual Studio 11 2012
+            * Visual Studio 11 2012 Win64
+            * Visual Studio 10 2010
+            * Visual Studio 10 2010 Win64
 
         <options> is:
             * SZIP_INCLUDE_DIR:PATH=<path to szip includes directory>
@@ -376,12 +394,8 @@ These five steps are described in detail below.
                 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_ENABLE_F2003 ON CACHE BOOL "Enable FORTRAN 2003 Standard" 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)
@@ -430,7 +444,7 @@ These five steps are described in detail below.
 
       2.2  Preferred command line example on Windows in c:\MyHDFstuff\hdf5\build directory:
       
-               cmake -C ../config/cmake/cacheinit.cmake -G "Visual Studio 11" \
+               cmake -C ../config/cmake/cacheinit.cmake -G "Visual Studio 11 2012" \
                -DHDF5_ENABLE_SZIP_SUPPORT:BOOL=OFF -DHDF5_ENABLE_Z_LIB_SUPPORT:BOOL=OFF \
                -DCMAKE_BUILD_TYPE:STRING=Release ..
 
@@ -498,7 +512,7 @@ These five steps are described in detail below.
 
    5. Packaging HDF5 (create an install image)
    
-      To package the build into a simple installer using the NullSoft installer NSIS
+      To package the build into a simple installer using WiX toolset or the NullSoft installer NSIS
       on Windows, or into compressed files (.tar.gz, .sh, .zip), use the CPack tool.
 
       To package the build, navigate to your build directory and execute;
@@ -506,6 +520,7 @@ These five steps are described in detail below.
               cpack -C {Debug | Release} CPackConfig.cmake
       
       NOTE: See note 8 of this document for NSIS information.
+            See note 9 of this document for WiX information.
             Also, if you are using a Visual Studio Express version or do not 
             want to enable the packaging components, set HDF5_NO_PACKAGES 
             to ON (on the command line add -DHDF5_NO_PACKAGES:BOOL=ON)
@@ -529,6 +544,9 @@ These five steps are described in detail below.
       "output directory", which is where the program will be installed. These 
       options are case-sensitive, so be sure to type them in upper case. 
 
+   9. WiX Toolset
+      WiX--the Windows Installer XML toolset--lets developers create installers for 
+      Windows Installer, the Windows installation engine. See http://wixtoolset.org.
 
 
 ========================================================================
@@ -542,17 +560,16 @@ The config/cmake/cacheinit.cmake file overrides the following values.
 ---------------- General Build Options ---------------------
 BUILD_SHARED_LIBS  "Build Shared Libraries"    OFF
 BUILD_STATIC_EXECS "Build Static Executabless" OFF
-BUILD_STATIC_PIC   "Build Static PIC"          OFF
 BUILD_TESTING      "Build HDF5 Unit Testing"   OFF
 
 ---------------- HDF5 Build Options ---------------------
-HDF5_BUILD_CPP_LIB  "Build HDF5 C++ Library"         OFF
-HDF5_BUILD_EXAMPLES "Build HDF5 Library Examples"    OFF
+HDF5_BUILD_CPP_LIB  "Build HDF5 C++ Library"         ON
+HDF5_BUILD_EXAMPLES "Build HDF5 Library Examples"    ON
 HDF5_BUILD_FORTRAN  "Build FORTRAN support"          OFF
-HDF5_BUILD_HL_LIB   "Build HIGH Level HDF5 Library"  OFF
-HDF5_BUILD_TOOLS    "Build HDF5 Tools"               OFF
+HDF5_BUILD_HL_LIB   "Build HIGH Level HDF5 Library"  ON
+HDF5_BUILD_TOOLS    "Build HDF5 Tools"               ON
 if (HDF5_BUILD_FORTRAN) 
-    HDF5_ENABLE_F2003 "Enable FORTRAN 2003 Standard" OFF
+    HDF5_ENABLE_F2003 "Enable FORTRAN 2003 Standard" ON
 
 ---------------- HDF5 Advanced Options ---------------------
 HDF5_DISABLE_COMPILER_WARNINGS "Disable compiler warnings"                                    OFF
@@ -574,7 +591,6 @@ HDF5_STRICT_FORMAT_CHECKS      "Whether to perform strict file format checks"
 HDF5_TEST_VFD                  "Execute tests with different VFDs"                            OFF
 HDF5_USE_16_API_DEFAULT        "Use the HDF5 1.6.x API by default"                            OFF
 HDF5_USE_FOLDERS               "Enable folder grouping of projects in IDEs."                  OFF
-HDF5_WANT_DATA_ACCURACY        "IF data accuracy is guaranteed during data conversions"       ON
 HDF5_WANT_DCONV_EXCEPTION      "exception handling functions is checked during data conversions" ON
 HDF5_ENABLE_THREADSAFE         "Enable Threadsafety"                                          OFF
 if (APPLE) 
@@ -590,10 +606,6 @@ HDF5_ENABLE_SZIP_SUPPORT    "Use SZip Filter"                        OFF
 HDF5_ENABLE_Z_LIB_SUPPORT   "Enable Zlib Filters"                    OFF
 ZLIB_USE_EXTERNAL           "Use External Library Building for ZLIB" 0
 SZIP_USE_EXTERNAL           "Use External Library Building for SZIP" 0
-HDF5_USE_FILTER_FLETCHER32  "Use the FLETCHER32 Filter"              ON
-HDF5_USE_FILTER_NBIT        "Use the NBIT Filter"                    ON
-HDF5_USE_FILTER_SCALEOFFSET "Use the SCALEOFFSET Filter"             ON
-HDF5_USE_FILTER_SHUFFLE     "Use the SHUFFLE Filter"                 ON
 if (HDF5_ENABLE_SZIP_SUPPORT) 
     HDF5_ENABLE_SZIP_ENCODING "Use SZip Encoding"      OFF
 if (WINDOWS)
@@ -621,37 +633,31 @@ build and test process.
 VIII. Options for Platform Configuration Files
 ========================================================================
 
-Below is the HDF518LinuxCmake.cmake ctest script with extra comments.
-The example is for a linux machine, but the same scripts can be used on 
-a Windows machine by adjusting the CTEST_CMAKE_GENERATOR option in the
-platform configuration script.
-
+Below is the HDF518config.cmake ctest script with extra comments.
+Execute:
+       ctest -S HDF518config.cmake -C Release -V -O hdf518.log
+The same scripts can be used on Linux, Mac OSX or a Windows machine by
+adding an option (${CTEST_SCRIPT_ARG}) to the platform configuration script.
 
-############################################################################
-# Product specific script, HDF518LinuxCmake.cmake, that uses the 
-# CTestScript.cmake file. Usage:
-# "ctest -S HDF518LinuxCmake.cmake -C Release -O hdf518shared.log"
-############################################################################
-cmake_minimum_required(VERSION 2.8.10 FATAL_ERROR)
 
-# this is the location of the source hardcoded to hdf5-1.8.13
-set(CTEST_SOURCE_NAME hdf5-1.8.13)
-# this is the location of the source with ctest parameter hdf5src
-# "ctest -S HDF518LinuxCmake.cmake,hdf5src -C Release -O hdf518static.log"
-#set(CTEST_SOURCE_NAME ${CTEST_SCRIPT_ARG})
+#########################################################################
+### For Windows ${CTEST_SCRIPT_ARG} is one of                         ###
+###    [64-VS2013, 32-VS2013, 64-VS2012, 32-VS2012]                   ###
+### ctest -S HDF518config.cmake,32-VS2012 -C Release -V -O hdf518.log ###
+#########################################################################
 
-# this is the location of the build directory
-set(CTEST_BINARY_NAME ${CTEST_SOURCE_NAME}/build)
-
-# this is the directory the script is executed from
+cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR)
+set(CTEST_SOURCE_VERSION 1.8.15-pre7)
+set(CTEST_SOURCE_NAME hdf5-${CTEST_SOURCE_VERSION})
+set(CTEST_BINARY_NAME "build")
 set(CTEST_DASHBOARD_ROOT "${CTEST_SCRIPT_DIRECTORY}")
-
-# this is the full path of the source directory
-set(CTEST_SOURCE_DIRECTORY "${CTEST_DASHBOARD_ROOT}/${CTEST_SOURCE_NAME}")
-
-# this is the  full path of the build directory
-set(CTEST_BINARY_DIRECTORY "${CTEST_DASHBOARD_ROOT}/${CTEST_BINARY_NAME}")
-
+if(WIN32)
+  set(CTEST_SOURCE_DIRECTORY "${CTEST_DASHBOARD_ROOT}\\${CTEST_SOURCE_NAME}")
+  set(CTEST_BINARY_DIRECTORY "${CTEST_DASHBOARD_ROOT}\\${CTEST_BINARY_NAME}")
+else()
+  set(CTEST_SOURCE_DIRECTORY "${CTEST_DASHBOARD_ROOT}/${CTEST_SOURCE_NAME}")
+  set(CTEST_BINARY_DIRECTORY "${CTEST_DASHBOARD_ROOT}/${CTEST_BINARY_NAME}")
+endif()
 
 ###################################################################
 ### Following Line is one of [Release, RelWithDebInfo, Debug] #####
@@ -660,13 +666,41 @@ set(CTEST_BUILD_CONFIGURATION "Release")
 
 ###################################################################
 #########       Following describes compiler           ############
-# this is for linux
-set(CTEST_CMAKE_GENERATOR "Unix Makefiles")
-# this is for windows 32 bit
-#set(CTEST_CMAKE_GENERATOR "Visual Studio 11")
-# this is for windows 64 bit
-#set(CTEST_CMAKE_GENERATOR "Visual Studio 11 Win64")
-# Visual Studio 2013 is 12, Visual Studio 2012 is 11,  Visual Studio 2010 is 10
+if(WIN32)
+  set(SITE_OS_NAME "Windows")
+  set(SITE_OS_VERSION "WIN7")
+  if(${CTEST_SCRIPT_ARG} STREQUAL "64-VS2013")
+    set(CTEST_CMAKE_GENERATOR "Visual Studio 12 2013 Win64")
+    set(SITE_OS_BITS "64")
+    set(SITE_COMPILER_NAME "vs2013")
+    set(SITE_COMPILER_VERSION "12")
+  elseif(${CTEST_SCRIPT_ARG} STREQUAL "32-VS2013")
+    set(CTEST_CMAKE_GENERATOR "Visual Studio 12 2013")
+    set(SITE_OS_BITS "32")
+    set(SITE_COMPILER_NAME "vs2013")
+    set(SITE_COMPILER_VERSION "12")
+  elseif(${CTEST_SCRIPT_ARG} STREQUAL "64-VS2012")
+    set(CTEST_CMAKE_GENERATOR "Visual Studio 11 2012 Win64")
+    set(SITE_OS_BITS "64")
+    set(SITE_COMPILER_NAME "vs2012")
+    set(SITE_COMPILER_VERSION "11")
+  elseif(${CTEST_SCRIPT_ARG} STREQUAL "32-VS2012")
+    set(CTEST_CMAKE_GENERATOR "Visual Studio 11 2012")
+    set(SITE_OS_BITS "32")
+    set(SITE_COMPILER_NAME "vs2012")
+    set(SITE_COMPILER_VERSION "11")
+  endif()
+##  Set the following to unique id your computer  ##
+  set(CTEST_SITE "WIN7${CTEST_SCRIPT_ARG}.XXXX")
+else()
+  set(CTEST_CMAKE_GENERATOR "Unix Makefiles")
+##  Set the following to unique id your computer  ##
+  if(APPLE)
+    set(CTEST_SITE "MAC.XXXX")
+  else()
+    set(CTEST_SITE "LINUX.XXXX")
+  endif()
+endif()
 ###################################################################
 
 ###################################################################
@@ -674,25 +708,24 @@ set(CTEST_CMAKE_GENERATOR "Unix Makefiles")
 ###################################################################
 set(MODEL "Experimental")
 #########       Following describes computer           ############
-##  Set the following to unique id your computer  ##
-set(CTEST_SITE "LINUX.XXXX")
-##    following is optional to describe build     ##
-set(SITE_BUILDNAME_SUFFIX "SHARED")
+## following is optional to describe build ##
+set(SITE_BUILDNAME_SUFFIX "STATIC")
+###################################################################
 
-#########   Following controls CDash submission          ##########
+###################################################################
+#####       Following controls CDash submission               #####
 #set(LOCAL_SUBMIT "TRUE")
-#########   Following controls test process              ##########
+#####       Following controls test process                   #####
 #set(LOCAL_SKIP_TEST "TRUE")
 #set(LOCAL_MEMCHECK_TEST "TRUE")
 #set(LOCAL_COVERAGE_TEST "TRUE")
-#########   Following controls cpack command             ##########
+#####       Following controls cpack command                  #####
 #set(LOCAL_NO_PACKAGE "TRUE")
-#########   Following controls source update             ##########
+#####       Following controls source update                  #####
 #set(LOCAL_UPDATE "TRUE")
-#########   Following controls source repository         ##########
-#set(REPOSITORY_URL "http://svn.${hdfgroup_url}/hdf5/branches/hdf5_1_8")
-#comment to use a uncompressed source folder
-set(CTEST_USE_TAR_SOURCE "hdf5-1.8.13")
+set(REPOSITORY_URL "http://svn.hdfgroup.uiuc.edu/hdf5/branches/hdf5_1_8")
+#uncomment to use a compressed source file: *.tar on linux or mac *.zip on windows
+#set(CTEST_USE_TAR_SOURCE "${CTEST_SOURCE_VERSION}")
 ###################################################################
 
 ###################################################################
@@ -701,8 +734,8 @@ set(CTEST_USE_TAR_SOURCE "hdf5-1.8.13")
 
 ### uncomment/comment and change the following lines for configuration options
 
-### uncomment the following line to build static libraries
-#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DBUILD_SHARED_LIBS:BOOL=OFF")
+### comment the following line or change OFF to ON in order to build shared libraries
+set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DBUILD_SHARED_LIBS:BOOL=OFF")
 
 ####      ext libraries       ####
 ### ext libs from tgz
@@ -712,33 +745,70 @@ set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ALLOW_EXTERNAL_SUPPORT:STRING
 ### ext libs on system
 #set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DZLIB_LIBRARY:FILEPATH=some_location/lib/zlib.lib -DZLIB_INCLUDE_DIR:PATH=some_location/include")
 #set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DSZIP_LIBRARY:FILEPATH=some_location/lib/szlib.lib -DSZIP_INCLUDE_DIR:PATH=some_location/include")
-
+### disable ext libs building
+#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_Z_LIB_SUPPORT:BOOL=OFF")
+#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_SZIP_SUPPORT:BOOL=OFF")
+#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_SZIP_ENCODING:BOOL=OFF")
 ####      fortran       ####
-### enable Fortran 2003
-#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_F2003:BOOL=ON")
-### disable Fortran
-#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_BUILD_FORTRAN:BOOL=OFF")
-
-### Create install package with external libraries (szip, zlib)
-set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_PACKAGE_EXTLIBS:BOOL=ON")
+### enable Fortran 2003 depends on HDF5_BUILD_FORTRAN
+set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_F2003:BOOL=ON")
+### disable Fortran; change OFF to ON in order to build FORTRAN libraries
+set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_BUILD_FORTRAN:BOOL=OFF")
 
 ### disable test program builds
 #set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DBUILD_TESTING:BOOL=OFF")
 
 ### disable packaging
 #set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_NO_PACKAGES:BOOL=ON")
-
-### disable building examples
-#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_BUILD_EXAMPLES:BOOL=OFF")
-
-### disable building tests
-#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DBUILD_TESTING:BOOL=OFF")
+### Create install package with external libraries (szip, zlib, jpeg)
+set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_PACKAGE_EXTLIBS:BOOL=ON")
 
 ### change install prefix
 #set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DCMAKE_INSTALL_PREFIX:PATH=install")
+
 ###################################################################
 
-include(${CTEST_SCRIPT_DIRECTORY}/CTestScript.cmake)
+if(WIN32)
+  include(${CTEST_SCRIPT_DIRECTORY}\\CTestScript.cmake)
+  if(EXISTS "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-win${SITE_OS_BITS}.exe")
+    file(COPY "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-win${SITE_OS_BITS}.exe" DESTINATION ${CTEST_SCRIPT_DIRECTORY})
+  endif()
+  if(EXISTS "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-win${SITE_OS_BITS}.msi")
+    file(COPY "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-win${SITE_OS_BITS}.msi" DESTINATION  ${CTEST_SCRIPT_DIRECTORY})
+  endif()
+  if(EXISTS "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-win${SITE_OS_BITS}.zip")
+    file(COPY "${CTEST_BINARY_DIRECTORY}\\HDF5-${CTEST_SOURCE_VERSION}-win${SITE_OS_BITS}.zip" DESTINATION  ${CTEST_SCRIPT_DIRECTORY})
+  endif()
+else()
+  include(${CTEST_SCRIPT_DIRECTORY}/CTestScript.cmake)
+  if(APPLE)
+    if(EXISTS "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-Darwin.dmg")
+      file(COPY "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-Darwin.dmg" DESTINATION ${CTEST_SCRIPT_DIRECTORY})
+    endif()
+    if(EXISTS "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-Darwin.tar.gz")
+      file(COPY "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-Darwin.tar.gz" DESTINATION  ${CTEST_SCRIPT_DIRECTORY})
+    endif()
+    if(EXISTS "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-Darwin.sh")
+      file(COPY "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-Darwin.sh" DESTINATION ${CTEST_SCRIPT_DIRECTORY})
+    endif()
+  else()
+    if(CYGWIN)
+      if(EXISTS "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-CYGWIN.sh")
+        file(COPY "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-CYGWIN.sh" DESTINATION ${CTEST_SCRIPT_DIRECTORY})
+      endif()
+      if(EXISTS "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-CYGWIN.tar.gz")
+        file(COPY "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-CYGWIN.tar.gz" DESTINATION  ${CTEST_SCRIPT_DIRECTORY})
+      endif()
+    else()
+      if(EXISTS "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-Linux.sh")
+        file(COPY "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-Linux.sh" DESTINATION ${CTEST_SCRIPT_DIRECTORY})
+      endif()
+      if(EXISTS "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-Linux.tar.gz")
+        file(COPY "${CTEST_BINARY_DIRECTORY}/HDF5-${CTEST_SOURCE_VERSION}-Linux.tar.gz" DESTINATION  ${CTEST_SCRIPT_DIRECTORY})
+      endif()
+    endif()
+  endif()
+endif()
 
 
 ========================================================================
diff --git a/release_docs/INSTALL_Cygwin.txt b/release_docs/INSTALL_Cygwin.txt
index a56895a..56fc0ae 100644
--- a/release_docs/INSTALL_Cygwin.txt
+++ b/release_docs/INSTALL_Cygwin.txt
@@ -34,7 +34,7 @@ Preconditions:
     
     The following compilers are supported by HDF5 and included in the Cygwin
     package system:
-       gcc (4.7.3), which includes:
+       gcc (4.7.3 and 4.9.2), which includes:
             gcc4-core    : C compiler
             gcc4-g++     : C++ compiler
             gcc4-fortran : fortran compiler
@@ -71,9 +71,7 @@ Preconditions:
        http://hdfgroup.org/HDF5/doc_resource/SZIP/index.html.
       
        The latest supported public release of SZIP is available from
-       ftp://ftp.hdfgroup.org/lib-external/szip/2.1. Binary distribution can be 
-       found under ftp://ftp.hdfgroup.org/lib-external/szip/2.1/bin/cygwin
-
+       ftp://ftp.hdfgroup.org/lib-external/szip/2.1. 
     
     2.3 Additional Utilities
     
diff --git a/release_docs/INSTALL_VMS.txt b/release_docs/INSTALL_VMS.txt
deleted file mode 100644
index dbbab77..0000000
--- a/release_docs/INSTALL_VMS.txt
+++ /dev/null
@@ -1,82 +0,0 @@
-		Building and installation instructions for Alpha Open VMS
-                              HDF5 1.8.12 release
-                               18 September 2013
-   
-
-
-		CONTENTS
-		--------
-                
-		1. Obtaining HDF5
-		2. Building and testing HDF5 C, Fortran and C++ libraries,
-                   and utilities
-		3. Installing HDF5 libraries
-		4. Known problems
-
-
-	1.Obtaining HDF5
-
-	  Please see INSTALL file in this directory for downloading instructions.
-
-	2. Building and testing HDF5 C, Fortran and C++ libraries and utilities.
-
-           IMPORTANT: This version REQUIRES GNU ZLIB library to be installed
-                      on a system. You may download the source code from
-                      http://www.zlib.net/
-
-                      The newest ZLIB 1.2.8 doesn't work properly on OpenVMS.
-                      But ZLIB 1.2.5 works fine.
-
-	 -  Use tar command to untar HDF5 source ball
-
-		tar -xvf <source>.tar
-
-	 -  Change default directory to [.<source>.vms]
-         -  Specify top HDF5 source directory in the build.com file where the 
-            "hdf5top" is defined.
-         -  Edit make.com:
-         	specify path to ZLIB library
-        	if necessary, modify compilation flags 
-	    Do NOT REMOVE /define=H5_VMS and /standard=strict_ansi qualifiers.
-         -  Run build.com command file 
-		@build
-            We recommend using batch queue to build and test this distribution. 
-            The command file runs make.com and builds 
-			C library, tests, and utilities	
-			Fortran library and tests
-			C++ library and tests
-            It also runs test scripts to test C, Fortran and C++ libraries, and
-	    h5dump, h5diff, h5ls, and h5repack utilities.
-
-	3. Installing HDF5 libraries
-
-	   Modify install.com file to specify installation directory (hdf5top) 
-           and run
-	       @install
-           to install HDF5 C, Fortran, and C++ libraries, and utilities.
-           The script will create the directories shown below in the
-           installation directory:
-
-           [.HDF5]...
-           [.HDF5.INCLUDE]
-           [.HDF5.LIB]
-           [.HDF5.BIN]
-           [.HDF5.EXAMPLES]
-           [.HDF5.EXAMPLES.C]
-           [.HDF5.EXAMPLES.F90]
-           [.HDF5.EXAMPLES.CXX]
-
-           [.HDF5.EXAMPLES.*] directories contain make.com and check.com files 
-           to build examples against the installed libraries and to verify 
-           the installation.
-
-	4. Known problems
-
-           - There is no support for szip compression filter.
-           - Two soft conversion functions (H5T__conv_i_f and H5T__conv_f_i)
-             have bugs.  They convert data between floating-point numbers and 
-             integers.  But the library's default is hard conversion.  The user 
-             should avoid explicitly enabling soft conversion between floating-point 
-             numbers and integers. 
-
-	For help contact help at hdfgroup.org
diff --git a/release_docs/INSTALL_parallel b/release_docs/INSTALL_parallel
index 28068f1..e4c540c 100644
--- a/release_docs/INSTALL_parallel
+++ b/release_docs/INSTALL_parallel
@@ -49,54 +49,15 @@ more detailed explanations.
 ----------------------------
 HDF5 knows several parallel compilers: mpicc, hcc, mpcc, mpcc_r.  To build
 parallel HDF5 with one of the above, just set CC as it and configure.
-The "--enable-parallel" is optional in this case.
 
-    $ CC=/usr/local/mpi/bin/mpicc ./configure --prefix=<install-directory>
+    $ CC=/usr/local/mpi/bin/mpicc ./configure --enable-parallel --prefix=<install-directory>
     $ make		# build the library
     $ make check	# verify the correctness
 			# Read the Details section about parallel tests.
     $ make install
 
 
-2.2. IBM SP
------------
-During the build stage, the H5detect is compiled and executed to generate
-the source file H5Tinit.c which is compiled as part of the HDF5 library. In
-parallel mode, make sure your environment variables are set correctly to
-execute a single process mpi application. Otherwise, multiple processes
-attempt to write to the same H5Tinit.c file, resulting in a scrambled
-source file.  Unfortunately, the setting varies from machine to machine.
-E.g., the following works for the IBM SP machine at LLNL.
-
-    setenv MP_PROCS     1
-    setenv MP_NODES     1
-    setenv MP_LABELIO   no
-    setenv MP_RMPOOL    0
-    setenv LLNL_COMPILE_SINGLE_THREADED TRUE    # for LLNL site only
-
-The shared library configuration is problematic.  So, only static library
-is supported.
-
-Then do the following steps:
-
-    $ ./configure --disable-shared --prefix=<install-directory>
-    $ make		# build the library
-    $ make check	# verify the correctness
-			# Read the Details section about parallel tests.
-    $ make install
-
-We also suggest that you add "-qxlf90=autodealloc" to FCFLAGS when building
-parallel with fortran enabled.  This can be done by invoking:
-
-    setenv FCFLAGS -qxlf90=autodealloc		# 32 bit build
-or
-    setenv FCFLAGS "-q64 -qxlf90=autodealloc"	# 64 bit build
-
-prior to running configure.  Recall that the "-q64" is necessary for 64
-bit builds.
-
-
-2.3. Linux 2.4 and greater
+2.2. Linux 2.4 and greater
 --------------------------
 Be sure that your installation of MPICH was configured with the following
 configuration command-line option:
@@ -107,168 +68,44 @@ This allows for >2GB sized files on Linux systems and is only available with
 Linux kernels 2.4 and greater.
 
 
-2.4. Red Storm (Cray XT3) (for v1.8 and later)
+2.3. Hopper (Cray XE6) (for v1.8 and later)
 -------------------------
-Both serial and parallel HDF5 are supported in Red Storm.
 
-2.4.1 Building serial HDF5 for Red Storm
-------------------------------------------
-The following steps are for building the serial HDF5 for the Red Storm
-compute nodes.  They would probably work for other Cray XT3 systems but have
+The following steps are for building HDF5 for the Hopper compute
+nodes.  They would probably work for other Cray systems but have
 not been verified.
 
-# Assume you already have a copy of HDF5 source code in directory `hdf5' and
-# want to install the binary in directory `/project/hdf5/hdf5'.
+Obtain a copy from the HDF ftp server:
+http://www.hdfgroup.org/ftp/HDF5/current/src/
+(link might change, so always double check the HDF group website).
+
+$ wget http://www.hdfgroup.org/ftp/HDF5/current/src/hdf5-x.x.x.tar.gz
+unpack the tarball
 
-$ cd hdf5
-$ bin/yodconfigure configure
-$ env RUNSERIAL="yod -sz 1" \
-    CC=cc FC=ftn CXX=CC \
-    ./configure --prefix=/project/hdf5/hdf5
-$ make
-$ make check
+The entire build process should be done on a MOM node in an interactive allocation and on a file system accessible by all compute nodes.
+Request an interactive allocation with qsub:
+qsub -I -q debug -l mppwidth=8
 
-# if all is well, install the binary.
-$ make install
+- create a build directory build-hdf5:
+  mkdir build-hdf5; cd build-hdf5/
 
-2.4.2 Building parallel HDF5 for Red Storm
-------------------------------------------
-The following steps are for building the Parallel HDF5 for the Red Storm
-compute nodes.  They would probably work for other Cray XT3 systems but have
-not been verified.
+- configure HDF5:
+  RUNSERIAL="aprun -q -n 1" RUNPARALLEL="aprun -q -n 6" FC=ftn CC=cc /path/to/source/configure --enable-fortran --enable-parallel --disable-shared
 
-# Assume you already have a copy of HDF5 source code in directory `hdf5' and
-# want to install the binary in directory `/project/hdf5/phdf5'.  You also
-# have done the proper setup to have mpicc and mpif90 as the compiler commands.
-
-$ cd hdf5
-$ bin/yodconfigure configure
-$ env RUNSERIAL="yod -sz 1" RUNPARALLEL="yod -sz 3" \
-    CC=cc FC=ftn \
-    ./configure --enable-parallel --prefix=/project/hdf5/phdf5
-$ make
-$ make check
-
-# if all is well, install the binary.
-$ make install
-
-2.4.3 Red Storm known problems
-------------------------------
-For Red Storm, a Cray XT3 system, the yod command sometimes gives the
-message,  "yod allocation delayed for node recovery".  This interferes with
-test suites that do not expect seeing this message.  To bypass this problem,
-I launch the executables with a command shell script called "myyod" which
-consists of the following lines.  (You should set $RUNSERIAL and $RUNPARALLEL
-to use myyod instead of yod.)
-==== myyod =======
-#!/bin/sh
-# sleep 2 seconds to allow time for the node recovery else it pops the
-# message,
-#   yod allocation delayed for node recovery
-sleep 2
-yod $*
-==== end of myyod =======
-
-For Red Storm, a Cray XT3 system, the tools/h5ls/testh5ls.sh will fail on
-the test "Testing h5ls -w80 -r -g tgroup.h5" fails.  This test is
-expected to fail and exit with a non-zero code but the yod command does
-not propagate the exit code of the executables. Yod always returns 0 if it
-can launch the executable.  The test suite shell expects a non-zero for
-this particular test, therefore it concludes the test has failed when it
-receives 0 from yod.  To bypass this problem for now, change the following
-lines in the tools/h5ls/testh5ls.sh.
-======== Original =========
-# The following combination of arguments is expected to return an error message
-# and return value 1
-TOOLTEST tgroup-1.ls 1 -w80 -r -g tgroup.h5
-======== Skip the test =========
-echo SKIP TOOLTEST tgroup-1.ls 1 -w80 -r -g tgroup.h5
-======== end of bypass ========
-
-2.5. Hopper (Cray XE6) (for v1.8 and later)
--------------------------
+  RUNSERIAL and RUNPARALLEL tells the library how it should launch programs that are part of the build procedure.
 
-2.5.1 Building HDF5 for Hopper
------------------------------------------- 
-The following steps are for building HDF5 for the Hopper compute
-nodes.  They would probably work for other Cray XE6 systems but have
-not been verified.
+- Compile HDF5: 
+  gmake
 
-Obtain a copy from the HDF ftp server:
-http://www.hdfgroup.org/ftp/HDF5/current/src/
-(link might change, so always double check the HDF group website).
+- Check HDF5
+  gmake check
 
-$ wget http://www.hdfgroup.org/ftp/HDF5/current/src/hdf5-x.x.x.tar.gz
+- Install HDF5
+  gmake install
 
-unpack the tarball
+The build will be in build-hdf5/hdf5/ (or whatever you specify in --prefix).
+To compile other HDF5 applications use the wrappers created by the build (build-hdf5/hdf5/bin/h5pcc or h5fc)
 
-$ cd hdf5-x.x.x/
-$ CC=cc FC=ftn ./configure \
---prefix=/project/hdf5/hdf5 --enable-parallel --enable-fortran \
---disable-shared --disable-production 
-$ make 
-
-Run make check. make check should be run on the compute nodes, not the
-front end nodes.  So using a PBS batch script, allocate 4 or more
-cores. Always consult with the machine's website on how to create PBS
-scripts and allocate nodes for your job. For Hopper, all the
-information can be found on:
-http://www.nersc.gov/systems/hopper-cray-xe6/
-
-save the PBS script into your HDF5 build directory. The PBS script
-should contain (besides the PBS node allocation requests)the
-following:
-
---------------------------------------------------------------
-cd $PBS_O_WORKDIR
-
-##set RUNSERIAL and RUNPARALLEL like this in the PBS script:
-export RUNPARALLEL="aprun -n 6"
-export RUNSERIAL="aprun -n 1"
-
-##execute make check:
-make check
---------------------------------------------------------------
-
-Once the job runs and all is well, install the binary:
-$ make install
-
-2.5.2 Hopper known issues
-------------------------------
-Issue 1:
-Sometimes when building the library with make, you might get this problem:
-
-LD_LIBRARY_PATH="$LD_LIBRARY_PATH`echo | \
-sed -e 's/-L/:/g' -e 's/
-//g'`" \
-./H5make_libsettings > H5lib_settings.c
-|| \
-(test $HDF5_Make_Ignore && echo "*** Error ignored")
-|| \
-(rm -f H5lib_settings.c ; exit 1)
-/bin/sh: line 4: 9644 Segmentation fault
-LD_LIBRARY_PATH="$LD_LIBRARY_PATH`echo | sed -e 's/-L/:/g' -e 's/
-//g'`" ./H5make_libsettings > H5lib_settings.c
-
-If that happens, you are probable running with make -j <x>. In that
-case, you need to cleanup everything and start again as detailed above
-but use serial make (do not use -j <x>).
-
-Issue 2:
-* When building using the Cray compilers on Cray machines, HDF5
-  configure mistakenly thinks the compiler is an intel compiler and
-  sets the -std=c99 flag which breaks configure on Cray. To build HDF5
-  properly on a Cray machine, please consult with the instructions in
-  INSTALL_parallel for building on Hopper.
-  (MSC - 2013/04/26 - HDFFV-8429)
-
-Issue 3:
-* On hopper, the build failed when RUNSERIAL and RUNPARALLEL are set
-  to aprun -np X, because the H5lib_settings.c file was not generated
-  properly. Not setting those environment variables works, because
-  configure was able to automatically detect that it's a Cray system
-  and used the proper launch commands when necessary. 
-  (MSC - 2012/04/18)
 
 3. Detail explanation
 ---------------------
@@ -300,16 +137,8 @@ a properly installed parallel compiler (e.g., MPICH's mpicc or IBM's mpcc_r)
 and supply the compiler name as the value of the CC environment variable.
 For examples,
 
-    $ CC=mpcc_r ./configure
-    $ CC=/usr/local/mpi/bin/mpicc ./configure
-
-If no such a compiler command is available then you must use your normal
-C compiler along with the location(s) of MPI/MPI-IO files to be used.
-For example,
-
-    $ CPPFLAGS=-I/usr/local/mpi/include \
-      LDFLAGS=-L/usr/local/mpi/lib/LINUX/ch_p4 \
-      ./configure --enable-parallel=mpich
+    $ CC=mpcc_r ./configure --enable-parallel
+    $ CC=/usr/local/mpi/bin/mpicc ./configure --enable-parallel
 
 If a parallel library is being built then configure attempts to determine how
 to run a parallel application on one processor and on many processors. If the
diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt
index 9b08a23..23adc53 100644
--- a/release_docs/RELEASE.txt
+++ b/release_docs/RELEASE.txt
@@ -1,32 +1,31 @@
-HDF5 version 1.8.14 released on 2014-11-12
+HDF5 version 1.8.15 released on 2015-05-04
 ================================================================================
 
 INTRODUCTION
 ============
 
-This document describes the differences between HDF5-1.8.13 and 
-HDF5-1.8.14, and contains information on the platforms tested and 
-known problems in HDF5-1.8.14. 
+This document describes the differences between HDF5-1.8.14 and 
+HDF5-1.8.15, and contains information on the platforms tested and 
+known problems in HDF5-1.8.15. 
 
-All new and modified APIs are listed in the "HDF5 Software Changes 
-from Release to Release" document along with details about previous
-releases at:
-
-     http://www.hdfgroup.org/HDF5/doc/ADGuide/Changes.html
-
-Links to the HDF5 1.8.14 source code, documentation, and additional materials
+Links to the HDF5 source code, documentation, and additional materials
 can be found on the HDF5 web page at:
 
      http://www.hdfgroup.org/products/hdf5/
 
-The HDF5 1.8.14 release can be obtained from:
+The HDF5 release can be obtained from:
 
      http://www.hdfgroup.org/HDF5/release/obtain5.html
 
-User documentation for 1.8.14 can be accessed directly at this location: 
+User documentation for HDF5 can be accessed directly at this location: 
 
      http://www.hdfgroup.org/HDF5/doc/
 
+All new and modified APIs are listed in detail in the "HDF5 Software Changes 
+from Release to Release" document at this location:
+
+     http://www.hdfgroup.org/HDF5/doc/ADGuide/Changes.html
+
 If you have any questions or comments, please send them to the HDF Help Desk:
 
      help at hdfgroup.org
@@ -37,7 +36,7 @@ CONTENTS
 
 - New Features
 - Support for New Platforms, Languages, and Compilers
-- Bug Fixes since HDF5-1.8.13
+- Bug Fixes since HDF5-1.8.14
 - Supported Platforms
 - Supported Configuration Features Summary
 - More Tested Platforms
@@ -49,237 +48,424 @@ New Features
 
     Configuration
     -------------
-    - bin/cmakehdf5 configures, builds and installs C, C++, Fortran and High
-      level API's. (It used to build the C API only).
-      (AKC 2014/10/17 HDFFV-8932).
+    - CMake
     
+      Improvements made to the CMake build system.
+        
+      The default options were changed to align with the Autotools configure
+      defaults. CMake configure files now support components when packaged
+      with CPack. Windows CPack supports WiX packaging, and will look for
+      WiX and NSIS in the standard locations. 
+      
+      The CMake minimum has been changed to 3.1.
+      
+      (ADB - 2015/04/01 HDFFV-8074, 8968, 9006)
+      
+    - cmakehdf5 for Cmake building.
+      Added configure options to support the building of Fortran or CXX API,
+      to enable/disable testings. Use "cmakehdf5 --help" for details.
+      (AKC - 2014/12/09 HDFFV-8932)
+
+    - Building Shared and Parallel Made Explicit
+
+      When --enable-parallel is specified, configure used to disable
+      shared by default.
+
+      Removed the restriction for building shared when parallel is
+      enabled. --disable-shared has to be used explicitly if user
+      wishes to disable shared libraries.
+
+      (MSC - 2015/02/19 HDFFV-9069)
+
+    - Inferring Parallel Compilers
+
+      configure was trying to infer if a compiler is a parallel
+      compiler with MPI support and enable parallel even if the user
+      did not explicitly enable parallel. This should not happen.
+
+      Disabled inferring parallel compilers to enable parallel HDF5
+      build. --enable-parallel has to be used explicitly to build
+      parallel HDF5 regardless of the compiler type being used.
+
+      (MSC - 2015/02/19 HDFFV-9068)
+
+    - Large File Support Configuration Option
+      
+      Removed the option to enable or disable large file support. It will
+      always be enabled.
+      
+      (MSC - 2015/02/19 HDFFV-9097)
+
+    - Removed Configuration Feature
+
+      When configure detected that the CodeWarrior compiler was being used it
+      would define a symbol that caused a test in test/tfile.c to be skipped
+      due to a broken CodeWarrior open() command.
+
+      Since this only masks the problem instead of fixing it and we don't
+      support CodeWarrior anyway, this functionality was removed.
+
+      (DER - 2015/02/21, HDFFV-9080)
+
+    - VMS Build/Test Files Have Been Removed
+
+      HDF5 no longer supports VMS, and the files were getting out of date.
+      Since we have no access to a VMS machine, there is no way for us to
+      maintain them.
+
+      A Subversion tag was created at:
+
+        https://svn.hdfgroup.uiuc.edu/tags/vms_last_support_1_8
+
+      immediately before removing the files.
+
+      (DER - 2015-02-26, HDFFV-9147)
+
+    - Removal of --with-default-vfd configure Option
+
+      In theory, this option was intended to allow setting a default
+      VFD that would be used by the library. In practice, the feature
+      only accepted the POSIX (SEC2) VFD (already the default) and
+      the stdio VFD (a demo VFD not intended for production use). The
+      inability to pass key VFD parameters at configure time limits the
+      full implementation of this feature, so it was retired.
+
+      (DER - 2015-02-26, HDFFV-9081)
+
+    - Direct VFD configure Behavior
+
+      The configure options for Linux now allow the Direct VFD to build
+      without passing additional compiler options/defines like _GNU_SOURCE.
+      Passing --enable-direct-vfd is now all that is needed to enable
+      the feature.
+
+      The Direct VFD is now disabled by default since it is intended for
+      specialized audiences. It was previously enabled by default, but the
+      configure script did not set correct POSIX levels, etc. making this
+      a moot point.
+
+      Note that the Direct VFD can only be configured on Linux when
+      the O_DIRECT flag to open()/create() and posix_memalign() function
+      are available. This is unchanged from previous behavior.
+
+      (DER - 2015-02-26, HDFFV-9057, 7567, 9088, 7566)
+
+    - _POSIX_C_SOURCE, _GNU_SOURCE, and _BSD_SOURCE No Longer Exported 
+      to h5cc and Other Compiler Wrappers
+
+      The _POSIX_C_SOURCE, _GNU_SOURCE, and _BSD_SOURCE definitions are 
+      not required for using API functions and may conflict with user 
+      code requirements.
+
+      (DER - 2015-03-08, HDFFV-9152)
+
+    - Removed the --enable-filters Option from configure
+
+      This option allowed the user to disable selected internal filters,
+      presumably to make the library smaller. It has been removed since
+      it saved little space (the internal filters are small with respect
+      to the overall library size) and was not generally extendible to
+      the library at large due to the large number of #ifdefs that would
+      be required.
+
+      Note that this features applied to internal filters such as shuffle
+      and n-bit and not external filters like gzip or Szip. Those are still
+      enabled or disabled via their own configure options.
+
+      (DER - 2015-03-08, HDFFV-9086)
+
+    - Removed Obsolete Time Functionality from configure and the C Library
+
+      The library contained some residual functionality from obsolete
+      time zone handling code. This has been removed, and the configure
+      checks for the time functions have been cleaned up.
+
+      * Lumped all the time functionality together in configure.ac.
+        This was previously more spread out due to Solaris issues
+        with the ordering of certain checks.
+
+      * Removed processing that handles __tm_gmtoff members of struct
+        tm. (libc-4)
+
+      * Removed BSDgettimeofday(). (IRIX 5.3)
+
+      * Removed timezone struct handling in gettimeofday() (considered
+        harmful).
+
+      Note that the HDF5 Library stores timestamps in a platform-independent
+      manner, so old files can still be read. This only affects converting
+      system time to HDF5 timestamps.
+
+      The library currently uses the tm_gmtoff member of the tm struct
+      (preferred, if available) or the timezone global variable to
+      construct HDF5 timestamps.
+
+      (DER - 2015-03-09, HDFFV-9083 and 9085)
+
+    - Added -D_DEFAULT_SOURCE to CPPFLAGS on Linux Systems
+
+      This is the replacement for -D_BSD_SOURCE in versions of glibc since 2.19.
+      Since both are defined, it should work for all versions of glibc. Defining
+      both suppresses the warning about defining _BSD_SOURCE.
+
+      (NAF - 2015-04-02, HDFFV-9079)
+
     Library
     -------
-    - None
+    - Added Memory Allocation Functions that Use the Library's Allocator
+
+      HDF5 filters may need to allocate or resize the buffer that is passed
+      to them from the library. If the filter has been compiled separately
+      from the library, it and the library may use different memory
+      allocation libraries for the (re)allocation and free calls. This can
+      cause heap corruption and crashes. This is particularly a problem on
+      Windows since each C run-time library is implemented as a separate
+      shared library, but can also show up on POSIX systems when debug or
+      high-performance allocation libraries are in use.
+
+      Two new functions (H5allocate_memory() and H5resize_memory()) were
+      added to the HDF5 C library. These functions have the same semantics as
+      malloc/calloc and realloc, respectively. Their primary purpose is to
+      allow filter authors to allocate or resize memory using the same
+      memory allocation library as the HDF5 library. Filter authors are
+      highly encouraged to use these new functions in place of malloc,
+      calloc, and realloc. They should also use the H5free_memory() call when
+      freeing memory.
+
+      Note that the filters provided with the library (zlib, szip, etc.) do
+      not experience the problems that these new functions are intended to
+      fix. This work only applies to third-party filters that are compiled
+      separately from the library.
+
+      (DER - 2015-04-01, HDFFV-9100)
+ 
+    - H5Pset_istore_k and H5Pset_sym_k
 
-    Parallel Library
-    ----------------
-     - Chunk Fill Writes Changed to Collective
-    
-      Slow performance in chunk fill writes. Chunk fills 
-      in the past were written independently by rank 0 one block 
-      at a time. 
+      These two functions didn't check the value of the input parameter "ik". 
+      When 2*ik exceeded 2 bytes of storage, data was lost in the file; 
+      for example, some chunks would be overwritten.  
+
+      Added validation of "ik" to not exceed the max v1 btree entries (2 bytes)
+      to these two routines.
+
+      (VC - 2015-03-24, HDFFV-9173)
+
+    - Added Functions to Control the Value of H5PL_no_plugin_g without 
+      Using an Environment Variable
       
-      Optimized the chunk fill write algorithm so that all 
-      chunk fill values will be written collectively in a single MPI-IO 
-      call. This should show a great performance improvement when 
-      creating chunked datasets in parallel when the chunk dimensions 
-      are fairly small.
+      Sometimes it is necessary for an application to disable the use of 
+      dynamically loaded plugin libraries without requiring the library to 
+      be built with plugin support disabled or to set an environment 
+      variable to disable plugin support globally.
       
-      (MSC - 2014/08/22, HDFFV-8878)
+      Two new functions (H5PLset_loading_state() and H5PLget_loading_state())
+      were added to the HDF5 C Library. These functions require a parameter 
+      that indicates which type of dynamically loaded plugin is enabled or 
+      disabled.
+      
+      (ADB - 2015-03-17, HDFFV-8520)
+      
+    Parallel Library
+    ----------------
+    - MPI_Finalize and HDF5 Library Shutdown
+
+      Calling HDF5 routines after MPI_Finalize has been closed should
+      not be done, since those routines might call MPI functions that
+      would not be possible to do after finalizing the MPI library.
+
+      Attached an attribute destroy callback to MPI_COMM_SELF that
+      shuts down the HDF5 library when MPI_COMM_SELF is destroyed,
+      in other words, on MPI_Finalize. This should fix several issues 
+      that users see when they forget to close HDF5 objects before 
+      calling MPI_Finalize().  
 
+      (MSC - 2015/02/25, HDFFV-883)
+ 
     Tools
     -----
     - None
 
-    High-level APIs
+    High-Level APIs
     ---------------
     - None
 
     Fortran API
     -----------
-    - None
+    - Added Global Variables 
+    
+      These new global variables are equivalent to the C definitions 
+      without the '_F':
+      
+      H5G_UDLINK_F  
+      H5G_SAME_LOC_F
+      H5O_TYPE_UNKNOWN_F
+      H5O_TYPE_GROUP_F
+      H5O_TYPE_DATASET_F
+      H5O_NAMED_DATATYPE_F
+      H5O_TYPE_NTYPES_F
+      
+      (MSB - 2015/02/03, HDFFV-9040)
+
 
     C++ API
     -------
-    - Initialization of Object IDs
+    - New Wrappers for C Functions H5P[s/g]et_libver_bounds
+
+      Wrappers were added to class H5::FileAccPropList for the 
+      C Functions H5Pget_libver_bounds and H5Pset_libver_bounds.
+
+      (BMR, 2015/04/06, Part of HDFFV-9167)
+
+    - New Wrappers to Get the Object Header's Version
+
+      The following wrappers are added to class H5::CommonFG
+      Returns the object header version of an object in a file or group,
+      given the object's name.
+      
+      unsigned childObjVersion(const char* objname) const;
+      unsigned childObjVersion(const H5std_string& objname) const;
 
-      The data member "id" in classes that represent HDF5 objects were
-      initialized to 0, which caused problem for some users.
+      (BMR, 2015/04/06)
 
-      Replaced 0 with H5I_INVALID_HID to initialize these "id"s.  For the 
-      PropList class, H5P_DEFAULT is used instead of H5I_INVALID_HID.
+    - New DataType Constructor
 
-      (BMR - 2014/09/30, HDFFV-4259)
+      Added a DataType constructor that takes a PredType object, and this
+      constructor will invoke H5Tcopy to generate another datatype id 
+      from a predefined datatype.
 
+      (BMR, 2015/04/06)
 
 
 Support for New Platforms, Languages, and Compilers
 ===================================================
-    - None                                  
+    - Support for Linux 3.10.0-123.20.1.el7 added (LK - 2015/04/01) 
+    - Support for Mac OS X Yosemite 10.10 added (AKC - 2015/03/04, HDFFV-9007)
+    - Support for AIX 6.1 added and AIX 5.3 is retired. (AKC - 2015/01/09)
 
-Bug Fixes since HDF5-1.8.13
+Bug Fixes since HDF5-1.8.14
 ===========================
 
     Configuration
     -------------
-    - CMake and SVN URLs
-    
-      The SVN URLs will be different when the HDF Group domain name changes.
-    
-      Removed the SVN URL references in the cacheinit.cmake and release_docs files.
-      
-      (ADB - 2014/10/27, HDFFV-8953)
-
-    - CMake Packaging
-    
-      A Fortran module was not generated if the compiler was not F2003
-      compliant.
-    
-      Removed the module name from the package list of Fortran modules because
-      that module was never generated. This was only an issue for Fortran
-      compliers that are not F2003 compatible.
-      
-      (ADB - 2014/10/16, HDFFV-8932)
+    - Make uninstall generated "test: argument expected".
+      The error is due to $EXAMPLETOPDIR is used without setting a value first.
 
-    - Shared Library Interface Version Number (soname)
-      
-      In order to increase the maintainability of HDF5, an architectural
-      change was made which required the renaming of several public symbols in
-      H5Ppublic.h.
+      Fixed by assign it with the proper value.
 
-      The shared libary interface version number ("soname") has been increased
-      on account of these changes. For a full list of the changed symbols, see
-      the interface compatibility report, which is available as a link off of
-      the 'HDF5 Software Changes from Release to Release' document:
+      (AKC - 2015/04/29, HDFFV-9298) 
 
-          http://www.hdfgroup.org/HDF5/doc/ADGuide/Changes.html
+    - Windows Installer Incorrect Display of PATH Environment Variable
+    
+      In the Windows installer, the dialog box where the user can elect to
+      add the product's bin path to the %PATH% environment variable displayed
+      an incorrect path. This path was missing the C:\Program Files part
+      and used the POSIX file separator '/' before the bin (<path>/bin,
+      instead of <path>\bin).
       
-      (AKC - 2014/10/03, HDFFV-8937)
+      The dialog box text was changed to simply say that the product's bin
+      path would be added instead of explicitly displaying the path.
+      This is in line with most installers. The reason for not fixing the 
+      displayed path instead is that it is difficult to pass the correct
+      path from CPack to the NSIS installer for display.
 
-    - Configure Settings for Mac OSX Need Defaults for PROD_XXX, DEBUG_XXX, 
-      and PROFILE_XXX
-      
-      The configure setting files for Mac OSX (config/apple) did not 
-      have the default settings of PROD_XXX, DEBUG_XXX, PROFILE_XXX. 
-      
-      Added the default settings. Mac platforms now builds library with 
-      "-O3" optimization when the default clang compiler is used. 
-      
-      (AKC - 2014/10/01, HDFFV-8933)
+      Note that this was never a code issue - it was just a display
+      problem. The installer always did the right thing when updating the
+      environment variable.
 
-    - CMake ConfigureChecks
-    
-      Two include files were missing from two C tests.
+      (DER - 2014/11/14, HDFFV-9016)
+
+    Library
+    -------
+    - Incorrect Usage of List in CMake COMPILE_DEFINITIONS set_property
     
-      Propagated the configure test changes to H5_LDOUBLE_TO_INTEGER_WORKS_TEST
-      and H5_ULLONG_TO_LDOUBLE_PRECISION_TEST to ConfigureChecks.cmake (added
-      stdlib.h and string.h in the HDFTests.c file).
+      The CMake command set_property with COMPILE_DEFINITIONS property
+      needs a quoted semi-colon separated list of values. CMake will
+      transform the list to a series of -D{value} for the compile.
       
-      (ADB - 2014/09/02 HDFFV-8845)
+      (ADB - 2014/12/09, HDFV-9041)
       
-    - CMake Parallel Test Missing
-    
-      The source file was removed in the previous release but the parallel 
-      test t_posix_compliant was not.
+    - Fixed Compile Errors on Windows w/ Visual Studio and CMake When
+      UNICODE is Defined
     
-      Removed the t_posix_compliant parallel test from the library. 
+      The HDF5 Library could not be built on Windows with Visual Studio when
+      UNICODE was defined. This was due to the incorrect use of the TEXT() 
+      macro and some Win32 API functions that take TCHAR parameters. The faulty
+      code was a part of the filter plugin functionality. This was a
+      compile-time error that only affected users who build HDF5 from source
+      and define UNICODE, usually when HDF5 is being built as a part of a
+      larger product. There were no run-time effects.
       
-      (ADB - 2014/8/14 HDFFV-8880)
-
-    - Autotools Reconfigure. Bison. Flex.
-    
-      The Bison and Flex files were out of date. 
-    
-      Bison was upgraded to 2.7, and Flex was upgraded to 2.5.37. The 
-      bin/reconfigure script now will execute Bison and Flex and update 
-      the hl/src files. 
+      These errors caused no problems when UNICODE was not defined. HDF5 is
+      normally not built with UNICODE defined and the binaries were
+      unaffected.
       
-      (ADB - 2014/06/16 HDFFV-8709)
-
-    - Autotools Reconfigure. m4.
-
-      The m4 macro processor was out of date.
+      The fix was to remove the TEXT() macro and explicitly use the
+      'A' form of the Win32 API calls, which expect char strings instead of
+      wchar_t strings.
       
-      Reconfigured Autotools with m4 upgraded to 1.4.17. 
-    
-      (ADB - 2014/06/12 HDFFV-8743)
-    
-    - Autotools: Modified configure to add an entry at the beginning of AM_LDFLAGS 
-      for the hdf5 install directory.  Without this entry the relink commands 
-      invoked by "make install" to create libraries dependent on libhdf5.so added 
-      a dependency on the first libhdf5.so found in any directory in AM_LDFLAGS 
-      regardless of its version.  (LRK - 2014/10/17 HDFFV-8944)
-
-    - Changed Autotools Build Behavior. Fortran High-level Library.
+      Note that HDF5 currently does not support Unicode file paths on Windows.
+      
+      (DER - 2015/02/22, HDFFV-8927)
 
-      The Fortran high-level (HL) library did not compile if the default 
-      size of a REAL is DOUBLE PRECISION; the build would fail during 
-      compilation.
+    - Addition of Error Tracing Functionality to Several C API Calls
 
-      Configure now checks to see if REAL is DOUBLE PRECISION, Fortran is 
-      enabled, and HL library is enabled. If this is true, then configure 
-      will stop with an error message.
+      A bug in a text processing script caused API calls that return a
+      pointer to not receive error tracing macros/functionality.
 
-      (MSB - 2014/8/11, HDFFV-8883/HDFFV-889)
+      The bug has been corrected and error tracing functionality has been
+      added to the affected API calls. These functions will now correctly
+      print trace information when library errors are encountered.
 
+      (DER - 2015/02/26, HDFFV-9141)
 
+    - H5Rdereference Now Checks for HADDR_UNDEF or Uninitialized References
 
-    Library
-    -------
-    - Fixed Identifier Management Code
-      
-      Opening an object returns an identifier; closing the object should 
-      free up the identifier. A problem was found where the identifiers 
-      were not being freed up correctly.
+      When passed HADDR_UNDEF or uninitialized references, the previous 
+      behavior of H5Rdereference was to continue to process the reference 
+      as a valid address. 
       
-      Fixed the problem so that identifiers that have been used can be 
-      used again after their object has been closed.
-      
-      (QAK - 2014/10/16, HDFFV-8930)
-
-    - Removal of DllMain() from Static Windows Builds 
-
-      A DllMain() function was added in HDF5 1.8.13 in order to handle 
-      win32 thread cleanup. The preprocessor #ifdefs around the DllMain 
-      function allowed it to be compiled when the static library is built, 
-      which is incorrect behavior that can cause linkage problems in 
-      clients.
+      H5Rdereference was changed to return immediately (with an error 
+      message) if the references are HADDR_UNDEF or uninitialized.
 
-      The fix was to change the preprocessor #ifdefs to exclude compiling 
-      DllMain() in static builds. Our DllMain function is now only 
-      compiled when the shared, thread-safe library is built on Windows.
+      (MSB - 2015/3/10, HDFFV-7959)
 
-      (DER - 2014/06/13, HDFFV-8837)
+    - Fixed Bugs in H5Sextent_copy
 
-    - Enforce Constraint on page_size Parameter in H5Pset_core_write_tracking()
+      H5Sextent_copy would not free the previous extent, resulting in a memory
+      leak.  Also, H5Sextent_copy would not update the number of elements
+      selected if the selection was "all", causing various problems.  These
+      issues have been fixed.
 
-      The reference manual states that the page_size parameter cannot be 
-      zero.
+      (NAF - 2015/04/02)
 
-      This change checks the page_size parameter to see it is zero and 
-      returns an error code if it is.
 
-      (DER - 2014/08/11, HDFFV-8891)
-
-    - H5Ldelete_by_idx() fails on non-existent group name.
-      (MSC - 2014/07/31, HDFFV-8888)
-
-    - H5Ldelete_by_idx() Seg Fault on Non-existent Group Name
-      
-      If a non-existent group name was used by H5Ldelete_by_idx(), a 
-      segmentation fault would result. 
+    Parallel Library
+    ----------------
+    - Fixed a Potential Memory Error
       
-      Bug was fixed.
+      Fixed a potential memory error when performing parallel I/O on a 
+      dataset with a single chunk, and at least one process has nothing 
+      to do.
       
-      (MSC - 2014/07/31, HDFFV-8888)
+      (NAF - 2015/02/16)
 
-    - Bug in Test When Building Parallel HDF5 on PVFS2
+    - Parallel Test Problem Fixed
       
-      There was a bug in a test when building Parallel HDF5 on PVFS2.
+      Fixed problem with parallel tests where they failed beyond a
+      certain number of ranks. All tests should work for any arbitrary
+      number of ranks. 
       
-      The build now uses MPI_File_get_size() instead of stat().
-      
-      (MSC - 2014/07/14, HDFFV-8856)
+      (MSC - 2014/11/06, HDFFV-1027,8962,8963)
 
-    - MPI-IO Driver Tried to Allocate Space for Zero-length Dataset
-      
-      MPI-IO driver tried to allocate space for zero-length dataset
-      and asserts. 
-      
-      Fixed driver and added a regression test.
-      
-      (MSC - 2014/07/03, HDFFV-8761)
-      
+    - MPE Support
 
-    Parallel Library
-    ----------------
-    - None
+      Enabling MPE was causing HDF5 build to fail. Support for it was
+      dropped at some point in time.
+
+      Fixed problem with enabling MPE. Users should use the community
+      maintained MPE on github (http://git.mpich.org/mpe.git/). 
+
+      (MSC - 2015/02/20, HDFFV-9135)
 
     Performance
     -------------
@@ -287,183 +473,232 @@ Bug Fixes since HDF5-1.8.13
 
     Tools
     -----
-    - None
+    - h5repack crashed on enumerated 8-bit type.
 
-    Fortran API
-    -------
-    - SIZEOF Replaced by C_SIZEOF and STORAGE_SIZE. 
-  
-      The intrinsic function SIZEOF is non-standard and should be replaced with a 
-      standard intrinsic function.
+      Previous version 1.8.14 introduced an error that caused the reading
+      of enumerated 8-bit type nested in compound type to fail.
 
-      If the F2008 intrinsic C_SIZEOF and STORAGE_SIZE are available, then they will 
-      be used instead of the non-standard SIZEOF intrinsic, even when the SIZEOF 
-      function is available.
+      Fixed library code responsible for reading the particular type.
+      (AKC - 2015.03/31, HDFFV-8667)
 
-      (MSB - 2014/6/16, HDFFV-8653)
+    - h52gif crashed non-8bit images.
 
-    - Non-functional API: h5pget_fill_value_f
- 
-      The Fortran wrapper h5pget_fill_value_f was calling the wrong C API.
+      h52gif crashed if instructed to convert images other than 8bit images.
 
-      The correct C API, H5Pget_fill_value, is now called by the Fortran 
-      wrapper.
+      h52gif could handle only 8bit images. Added code to detect non-8bit
+      images and flag them as failure.  Update tool document page to reflect
+      the limit.
+      (AKC - 2015/03/31, HDFFV-8957)
 
-      (MSB - 2014/9/25, HDFFV-8879)
+    - perform/benchpar.c retired.
 
-    - Interoperability with C HDF5: H5Literate and h5literate_f
+      benchpar.c has not been built for a long time and its original purpose
+      is not needed any more.
+      (AKC - 2014/12/19, HDFFV-8156)
 
-      h5literate_f assumes the return value for the callback function to 
-      be of type int (or int_f in C). However, in the C wrapper the return 
-      value of H5Literate is type herr_t, and this could cause 
-      interoperability issues.
+    - Source perform/ directory moved to tools/perform.
+      The perform directory is moved to tools/perform for easier maintenance.
+      (AKC - 2014/12/17, HDFFV-9046)
+      
+    Fortran API
+    ------------
+    - Fortran Fails with --enable-fortran2003 and Intel 15.x Compilers
+      
+      Added BIND(C) to the offending APIs. 
+
+      The Fortran Library (--enable-fortran2003) now works using Intel 15.x 
+      without the need for any additional compilers flags. 
+      
+      (MSB - 2015/1/26, HDFFV-9049)
 
-      The callback function should be declared INTEGER(C_INT) for 
-      portability. The tests were updated accordingly.
+    - h5tenum_insert_f Does Not Work with Default 8 Byte Integers 
+      (xlf compiler)
+      
+      In the Fortran 90 API, 'value' is no longer cast into the C int type. 
+      Therefore, if h5tenum_insert_f is passed an 8 byte integer (via -i8) 
+      then 'value' is written as the same type as the default Fortran 
+      integer type (which can be 8 bytes).
+      
+      A new Fortran 2003 API was added which is more in line with the C 
+      API and users are strongly encouraged to use the Fortran 2003 API 
+      instead of the Fortran 90 API.
 
-      (MSB - 2014/9/26, HDFFV-8909)
+      SUBROUTINE h5tenum_insert_f(type_id, name, value, hdferr)
+      INTEGER(HID_T)  , INTENT(IN) :: type_id
+      CHARACTER(LEN=*), INTENT(IN) :: name
+      TYPE(C_PTR)     , INTENT(IN) :: value
+      INTEGER, INTENT(OUT) :: hdferr
 
-    - Interoperability with C HDF5: Constant INTEGER Parameters with the 
-      H5FD Interface
+      (MSB - 2015/2/19, HDFFV-8908)
 
-      Wrong type cast of constant Fortran INTEGER parameters was used.
+    - Some Fortran APIs Never Returned the Error State
+      
+      Some Fortran APIs never returned the error state: they 
+      would always return a positive number. The APIs include 
+      the following:
+      
+      h5fget_file_image_f
+      h5lget_name_by_idx_f
+      h5oget_comment_by_name_f
 
-      The following parameter constant types were changed from INTEGER to 
-      INTEGER(HID_T) to match the C types: H5FD_CORE, H5FD_FAMILY, H5FD_LOG, 
-      H5FD_MPIO, H5FD_MULTI, H5FD_SEC2, and H5FD_STDIO.
+      They were corrected to return a negative number as described in 
+      the Reference Manual if an error occurred. 
 
-      Other internal 'int' types where changed to 'hid_t'; these are 
-      transparent to the user.
+      (MSB - 2015/3/19, HDF5-239)
 
-      (MSB - 2014/7/18, HDFFV-8748)
+    - Fixed h5pget_class_f 
 
-    C++ API
-    ------
-    - Memory Leaks
+      h5pget_class_f never correlated the class identifier to the property 
+      list class name as indicated in the HDF5 Reference Manual; it instead 
+      returned a property list class identifier as an INTEGER. The INTEGER 
+      needed to be of type INTEGER(HID_T) to be correct.
 
-      There were several potential memory leaks in the library due to
-      dynamically allocated strings not being freed when failure occurs.
+      The h5pget_class_f API was changed to return an INTEGER(HID_T) 
+      property list class identifier instead of an INTEGER. This mimics the 
+      intended behavior of the C API.
 
-      Applied user's patches to remove these potential memory leaks.
+      (MSB - 2015/3/16, HDFFV5-9162)
 
-      (BMR - 2014/09/30, HDFFV-8928)
+    C++ API
+    ------
+    - Combined Two H5File::getObjCount Overloaded Methods
 
-    - Disallow H5F_ACC_CREAT
+      The following two methods
       
-      H5F_ACC_CREAT was included in the C++ API but the C library does not
-      allow it at this time.
+      ssize_t getObjCount(unsigned types) const;
+      ssize_t getObjCount() const;
+      
+      were combined into one:
+      
+      ssize_t getObjCount(unsigned types = H5F_OBJ_ALL) const;
+
+      (BMR - 2015/04/06)
 
-      Removed this flag from the functions in H5File class.
+    - Many Warnings Were Removed
 
-      (BMR - 2014/09/29, HDFFV-8852)
+      Many warnings such as conversion, unused variables, missing base
+      class initialization, and initializing base classes in wrong order 
+      were removed.
 
-    - Missing Flags in Documentation: H5F_ACC_RDONLY and H5F_ACC_RDWR
+      (BMR, 2015/04/06)
 
-      The H5F_ACC_RDONLY and H5F_ACC_RDWR flags were missing from the 
-      documentation of the H5File constructors.
+    - Functionality Deprecation
 
-      These two flags are now included in the documentation for opening 
-      files.
+      The following two constructors of classes AbstractDs, IdComponent,
+      H5Location, and H5Object are no longer appropriate after the data member
+      "id" had been moved from IdComponent to the sub-classes in previous
+      releases.
+      
+      <Classname>(const hid_t h5_id);
+      <Classname>(const <Classname>& original);
+      
+      The copy constructors were no-op and removed in 1.8.15.  The other
+      constructors will be removed from 1.10 release, and then from 1.8.17
+      if their removal does not cause any problems.
 
-      (BMR - 2014/09/29, HDFFV-8852)
+      (BMR, 2015-04-06)
 
-    High-level APIs:
+
+    High-Level APIs:
     ------
-    - Seg Faults in H5TBread_field_name and H5TBread_field_name_f
+    - Suppress Warnings from Flex/Bison-generated Code
 
-      When H5TBread_field_name or H5TBread_field_name_f were used to read a 
-      field and if the name of the field was wrong, a segmentation fault 
-      would result.
+      Warning suppression #pragmas, etc. have been added to H5LTparse.c and
+      H5LTanalyze.c. We have no control over this code since it's created by
+      a generator.
 
-      Both C and Fortran APIs were fixed so they no longer seg fault if 
-      the name of the field is wrong, and both APIs return a negative 
-      value if the name of the field is wrong.
+      (DER - 2015/03/08 - HDFFV-9149)
 
-      (MSB - 2014/09/29, HDFFV-8912)
+    - Changed hdf5_hl.h to Include the HDF5 Main Library "hdf5.h"
 
-    - Possible Buffer Overflow in High-level (HL) APIs
+      User's no longer need to include both hdf5_hl.h and hdf5.h
 
-      Multiple HL APIs (H5DSis_scale is one example) had issues:
-        (1) The datatype from the file was re-used as the memory datatype, 
-            and
-        (2) No effort was made to ensure that strings were actually 
-            null-terminated.
-     
-      All of the HL routines now check for NULL pointers, for null-terminated 
-      strings, and to see if string buffers are short enough not to overflow 
-      the buffer. The minimum length of the buffers is now used in strncmp 
-      to avoid overflow.
+      (MSB - 2015/2/14, HDFFV-8685)
 
-      (MSB - 2014/9/29, HDFFV-8670)
+   
+    - H5PTcreate_fl Does Not Convert to Memory Datatype
 
-    - Behavior Change of H5LTdtype_to_text
+      H5PTcreate_fl now converts to the table's native memory datatype 
+      to fix the problem of handling BE and LE packet tables.
 
-      If a user buffer was passed in to H5LTdtype_to_text along with the 
-      length, then the function would not truncate at the end of the 
-      buffer, but would exceed the end of the user buffer.
+      (MSB - 2015/2/26 - HDFFV-9042)
 
-      H5LTdtype_to_text was changed to truncate the string if the user 
-      buffer is too small.
+    - Fix for H5LT Attribute Functions
+      
+      H5LT attribute functions fail to create attributes whose name 
+      is a substring of an existing attribute.
 
-      (MSB - 2014/9/29, HDFFV-8855)
+      H5LT attribute functions can now create attributes whose name 
+      is a substring of an existing attribute.
 
-    Fortran High-level APIs:
-    ------
-     - See entry for HDFFV-8912 above.
+      (MSB - 2015/2/24, HDFFV-9132)
+    
+
+    Fortran High-Level APIs:
+    ------------------------
+
+    - Internal Library Fix for Missing Argument Declaration
+    
+      In Interface block for h5tbmake_table_c, "max_char_size_field_names" 
+      is listed as an input, but in the argument definitions it is 
+      "INTEGER :: max_char_size". This caused no known problems with the 
+      Fortran HL API.
+
+      Fixed missing argument definition.
+       
+      (MSB - 2015/2/18, HDFFV-8559)
+      
 
     Testing
     -------
-    - A subtest in parallel h5diff (ph5diff) testing was bypassed for the
-      local Linux 32 machine due to unknown issue in the previous version of
-      Mpich. The failure no long exists in the current Mpich. Therefore the
-      bypass is removed. (AKC - 2014/11/03 HDFFV-8954)
-
-    - Fixed incorrect exit code values (was -1) in testframe which is commonly
-      used by several test programs. (AKC - 2014/07/22 HDFFV-8881)
+    - None
 
-    - Fixed Incorrect Exit Code Values in Testframe
-      The testframe which is commonly used by several test programs 
-      had some incorrect exit code values.  Fixed the incorrect exit code
-      values.  (AKC - 2014/07/22, HDFFV-8881)
 
 Supported Platforms
 ===================
 The following platforms are supported and have been tested for this release.
 They are built with the configure process unless specified otherwise.
 
-    AIX 5.3                       xlc 10.1.0.5
-    (NASA G-ADA)                  xlC 10.1.0.5
-                                  xlf90 12.1.0.6
+    AIX 6.1                       xlc/xlc_r 10.1.0.5
+    (NASA G-ADA)                  xlC/xlC_r 10.1.0.5
+                                  xlf90/xlf90_r 12.1.0.6
 
     Linux 2.6.18-308.13.1.el5PAE  GNU C (gcc), Fortran (gfortran), C++ (g++)
     #1 SMP i686 i686 i386         compilers for 32-bit applications;
-    (jam)                             Version 4.1.2 20080704 (Red Hat 4.1.2-54)
-                                      Version 4.8.2
+    (jam)                             Version 4.1.2 20080704 (Red Hat 4.1.2-55)
+                                      Version 4.8.4, 4.9.2
                                   PGI C, Fortran, C++ Compilers for 32-bit
                                   applications;
-                                      Version 13.7-0
+                                      Version 14.10-0
                                   Intel(R) C, C++, Fortran Compiler for 32-bit
                                   applications;
-                                      Version 14.0.2 (Build 20140120)
+                                      Version 15.0.1.133 (Build 20141023)
 
     Linux 2.6.18-371.6.1.el5      GNU C (gcc), Fortran (gfortran), C++ (g++)
     #1 SMP x86_64 GNU/Linux       compilers for 64-bit applications;
-    (koala)                           Version 4.1.2 20080704 (Red Hat 4.1.2-54)
-                                      Version 4.8.2
+    (koala)                           Version 4.1.2 20080704 (Red Hat 4.1.2-55)
+                                      Version 4.8.4, 4.9.2
                                   Intel(R) C, C++, Fortran Compilers for 
                                   applications running on Intel(R) 64; 
-                                      Version 14.0.2 (Build 20140120)
+                                      Version 15.0.1.133 Build 20141023
 
-    Linux 2.6.32-431.11.2.el6    GNU C (gcc), Fortran (gfortran), C++ (g++)
+    Linux 2.6.32-431.11.2.el6     GNU C (gcc), Fortran (gfortran), C++ (g++)
     #1 SMP x86_64 GNU/Linux       compilers:
     (platypus)                       Version 4.4.7 20120313
-                                     Version 4.8.2
+                                     Version 4.8.2, Version 4.9.2
                                   PGI C, Fortran, C++ for 64-bit target on 
                                   x86-64;
-                                      Version 13.7-0 
+                                      Version 14.10-0 
                                   Intel(R) C (icc), C++ (icpc), Fortran (icc)
                                   compilers:
-                                     Version 14.0.2 (Build 20140120)
+                                     Version 15.0.1.133 Build 20141023
+
+    Linux 3.10.0-123.20.1.el7     GNU C (gcc), Fortran (gfortran), C++ (g++)
+    #1 SMP x86_64 GNU/Linux       compilers:
+    (moohan)                         Version 4.8.2 20140120 (Red Hat 4.8.2-16)
+                                  Intel(R) C Intel(R) 64 Compiler XE for
+                                  applications running on Intel(R) 64, 
+                                     Version 15.0.1.133 Build 20141023
 
     Linux 2.6.32-431.29.2.el6.ppc64 gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-4)
     #1 SMP ppc64 GNU/Linux        g++ (GCC) 4.4.7 20120313 (Red Hat 4.4.7-4)
@@ -477,33 +712,33 @@ They are built with the configure process unless specified otherwise.
 
     Windows 7                     Visual Studio 2008  (cmake)
                                   Visual Studio 2010 w/ Intel Fortran 14 (cmake)
-                                  Visual Studio 2012 w/ Intel Fortran 14 (cmake)
-                                  Visual Studio 2013 w/ Intel Fortran 14 (cmake)
-                                  Cygwin(CYGWIN_NT-6.1 1.7.32(0.274/5/3) gcc(4.8.3) compiler and gfortran)
+                                  Visual Studio 2012 w/ Intel Fortran 15 (cmake)
+                                  Visual Studio 2013 w/ Intel Fortran 15 (cmake)
+                                  Cygwin(CYGWIN_NT-6.1 1.7.34(0.285/5/3) gcc(4.9.2) compiler and gfortran)
                                   (cmake and autotools)
 
     Windows 7 x64                 Visual Studio 2008  (cmake)
                                   Visual Studio 2010 w/ Intel Fortran 14 (cmake)
-                                  Visual Studio 2012 w/ Intel Fortran 14 (cmake)
-                                  Visual Studio 2013 w/ Intel Fortran 14 (cmake)
+                                  Visual Studio 2012 w/ Intel Fortran 15 (cmake)
+                                  Visual Studio 2013 w/ Intel Fortran 15 (cmake)
                                   
-    Windows 8.1                   Visual Studio 2012 w/ Intel Fortran 14 (cmake)
-                                  Visual Studio 2013 w/ Intel Fortran 14 (cmake)
-
-    Windows 8.1 x64               Visual Studio 2012 w/ Intel Fortran 14 (cmake)
-                                  Visual Studio 2013 w/ Intel Fortran 14 (cmake)
+    Windows 8.1                   Visual Studio 2012 w/ Intel Fortran 15 (cmake)
+                                  Visual Studio 2013 w/ Intel Fortran 15 (cmake)
 
-    Mac OS X Lion 10.7.5          Apple clang/clang++ version 3.0 from Xcode 4.6.1
-    64-bit                        gfortran GNU Fortran (GCC) 4.8.2
-    (duck)                        Intel icc/icpc/ifort version 13.0.3
+    Windows 8.1 x64               Visual Studio 2012 w/ Intel Fortran 15 (cmake)
+                                  Visual Studio 2013 w/ Intel Fortran 15 (cmake)
 
     Mac OS X Mt. Lion 10.8.5      Apple clang/clang++ version 5.1 from Xcode 5.1
     64-bit    			  gfortran GNU Fortran (GCC) 4.8.2
     (swallow/kite)                Intel icc/icpc/ifort version 14.0.2
 
-    Mac OS X Mavericks 10.9.5     Apple clang/clang++ version 6.0 from Xcode 6.0.1
+    Mac OS X Mavericks 10.9.5     Apple clang/clang++ version 6.0 from Xcode 6.1.1
     64-bit    			  gfortran GNU Fortran (GCC) 4.8.2
-    (wren)                        Intel icc/icpc/ifort version 14.0.2
+    (wren/quail)                  Intel icc/icpc/ifort version 14.0.2
+
+    Mac OS X Yosemite 10.10.2     Apple clang/clang++ version 6.0 from Xcode 6.1.1
+    64-bit    			  gfortran GNU Fortran (GCC) 4.9.2
+    (osx1010dev/osx1010test)      Intel icc/icpc/ifort version 15.0.1
 
 
 Tested Configuration Features Summary
@@ -521,17 +756,17 @@ Tested Configuration Features Summary
 
 Platform                              C         F90/   F90      C++  zlib  SZIP
                                       parallel  F2003  parallel
-Solaris2.11 32-bit                      n        y/y    n        y    y     y
-Solaris2.11 64-bit                      n        y/y    n        y    y     y
+SunOS 5.11 32-bit                       n        y/y    n        y    y     y
+SunOS 5.11 64-bit                       n        y/y    n        y    y     y
 Windows 7                               y        y/y    n        y    y     y
 Windows 7 x64                           y        y/y    n        y    y     y
 Windows 7 Cygwin                        n        y/y    n        y    y     n 
 Windows 8.1                             n        y/y    n        y    y     y
 Windows 8.1 x64                         n        y/y    n        y    y     y
-Mac OS X Lion 10.7.5 64-bit             n        y/y    n        y    y     y
 Mac OS X Mountain Lion 10.8.5 64-bit    n        y/y    n        y    y     y
-Mac OS X Mavericks 10.9.5 64-bit        n        y/y    n        y    y     ?
-AIX 5.3 32- and 64-bit                  n        y/n    n        y    y     y
+Mac OS X Mavericks 10.9.5 64-bit        n        y/y    n        y    y     y
+Mac OS X Yosemeti 10.10.2 64-bit        n        y/y    n        y    y     y
+AIX 6.1 32- and 64-bit                  n        y/n    n        y    y     y
 CentOS 5.9 Linux 2.6.18-308 i686 GNU    y        y/y    y        y    y     y
 CentOS 5.9 Linux 2.6.18-308 i686 Intel  n        y/y    n        y    y     y
 CentOS 5.9 Linux 2.6.18-308 i686 PGI    n        y/y    n        y    y     y
@@ -540,21 +775,23 @@ CentOS 5.9 Linux 2.6.18 x86_64 Intel    n        y/y    n        y    y     y
 CentOS 6.4 Linux 2.6.32 x86_64 GNU      y        y/y    y        y    y     y
 CentOS 6.4 Linux 2.6.32 x86_64 Intel    n        y/y    n        y    y     y
 CentOS 6.4 Linux 2.6.32 x86_64 PGI      n        y/y    n        y    y     y
+CentOS 7.0 Linux 3.10.0 x86_64 GNU      y        y/y    y        y    y     y
+CentOS 7.0 Linux 3.10.0 x86_64 Intel    n        y/y    n        y    y     y
 Linux 2.6.32-431.11.2.el6.ppc64         n        y/n    n        y    y     y
 
 Platform                                 Shared  Shared    Shared    Thread-  
                                          C libs  F90 libs  C++ libs  safe     
-Solaris2.11 32-bit                         y       y         y         y        
-Solaris2.11 64-bit                         y       y         y         y        
+SunOS 5.11 32-bit                          y       y         y         y        
+SunOS 5.11 64-bit                          y       y         y         y        
 Windows 7                                  y       y         y         y
 Windows 7 x64                              y       y         y         y
 Windows 7 Cygwin                           n       n         n         y
 Windows 8.1                                y       y         y         y
 Windows 8.1 x64                            y       y         y         y
-Mac OS X Lion 10.7.5 64-bit                y       n         y         y        
 Mac OS X Mountain Lion 10.8.5 64-bit       y       n         y         y        
 Mac OS X Mavericks 10.9.5 64-bit           y       n         y         y
-AIX 5.3 32- and 64-bit                     y       n         n         y        
+Mac OS X Yosemeti 10.10.2 64-bit           y       n         y         y
+AIX 6.1 32- and 64-bit                     y       n         n         y        
 CentOS 5.9 Linux 2.6.18-308 i686 GNU       y       y         y         y        
 CentOS 5.9 Linux 2.6.18-308 i686 Intel     y       y         y         n        
 CentOS 5.9 Linux 2.6.18-308 i686 PGI       y       y         y         n        
@@ -563,6 +800,8 @@ CentOS 5.9 Linux 2.6.18 x86_64 Intel       y       y         y         n
 CentOS 6.4 Linux 2.6.32 x86_64 GNU         y       y         y         n
 CentOS 6.4 Linux 2.6.32 x86_64 Intel       y       y         y         n
 CentOS 6.4 Linux 2.6.32 x86_64 PGI         y       y         y         n     
+CentOS 7.0 Linux 3.10.0 x86_64 GNU         y       y         y         n
+CentOS 7.0 Linux 3.10.0 x86_64 Intel       y       y         y         n
 Linux 2.6.32-431.11.2.el6.ppc64            y       y         y         n 
 
 Compiler versions for each platform are listed in the preceding
@@ -573,12 +812,12 @@ More Tested Platforms
 =====================
 The following platforms are not supported but have been tested for this release.
 
-    Linux 2.6.18-308.13.1.el5PAE  MPICH mpich 3.1.2 compiled with
-    #1 SMP i686 i686 i386             gcc 4.9.1 and gfortran 4.9.1
+    Linux 2.6.18-308.13.1.el5PAE  MPICH mpich 3.1.3 compiled with
+    #1 SMP i686 i686 i386             gcc 4.9.2 and gfortran 4.9.2
     (jam)                         g95 (GCC 4.0.3 (g95 0.94!)
 
-    Linux 2.6.18-431.11.2.el6     MPICH mpich 3.1.2 compiled with
-    #1 SMP x86_64 GNU/Linux           gcc 4.9.1 and gfortran 4.9.1
+    Linux 2.6.18-431.11.2.el6     MPICH mpich 3.1.3 compiled with
+    #1 SMP x86_64 GNU/Linux           gcc 4.9.2 and gfortran 4.9.2
     (platypus)                    g95 (GCC 4.0.3 (g95 0.94!)   
 
     FreeBSD 8.2-STABLE i386       gcc 4.5.4 [FreeBSD] 20110526
@@ -611,23 +850,17 @@ The following platforms are not supported but have been tested for this release.
                                   GNU Fortran (Ubuntu/Linaro 4.9.1-0ubuntu1) 4.9.1
                                   (cmake and autotools)
     
-    Cray Linux Environment (CLE)  PrgEnv-pgi/4.2.34
-    hopper.nersc.gov              pgcc 13.6-0 64-bit target on x86-64 Linux -tp istanbul
-                                  pgf90 13.6-0 64-bit target on x86-64 Linux -tp istanbul
-                                  pgCC 13.6-0 64-bit target on x86-64 Linux -tp istanbul
+    hopper.nersc.gov              PrgEnv-gnu/5.2.40
+                                  gcc (GCC) 4.9.2 20141030 (Cray Inc.)
+                                  GNU Fortran (GCC) 4.9.2 20141030 (Cray Inc.)
+                                  g++ (GCC) 4.9.2 20141030 (Cray Inc.)
 
 
 Known Problems
 ==============
-* On cygwin platforms the feature to load dynamic filter libraries only looks
-  for libraries with the a so extension. Support for cygwin cygxxx.dll libraries
-  is planned for the next release.
-  (ADB - 2014/11/04 - HDFFV-8736)
-
-* On windows platforms in debug configurations, the VFD flush1 tests will fail
+* On Windows platforms in debug configurations, the VFD flush1 tests will fail
   with the split and multi VFD drivers. These tests will display a modal debug 
   dialog which must be answered or wait for the test timeout to expire.
-  The flush1 and flush2 tests will be skipped under debug for this release.
   (ADB - 2014/06/23 - HDFFV-8851)
 
 * CLANG compiler with the options -fcatch-undefined-behavior and -ftrapv
@@ -640,19 +873,23 @@ Known Problems
 * Make provided by Solaris fails in "make check". Solaris users should use
   gmake to build and install the HDF5 software. (AKC - 2013/10/08 - HDFFV-8534)
 
-* The h5dump and h5diff utilities occasionally produce different output
-  between Linux and Windows systems. This is caused by lower-level library
-  routines that fail to write fill values to the user's buffer when reading
-  unallocated chunks from datasets that have a fill value set to
-  H5D_FILL_VALUE_DEFAULT. Due to platform differences the return of
-  spurious data values has only been encountered on Windows 32-bit systems.
-  (Issue HDFFV-8247; JP - 2013/03/27)
-
 * The C++ and FORTRAN bindings are not currently working on FreeBSD with the
   native release 8.2 compilers (4.2.1), but are working with gcc 4.6 from the
   ports (and probably gcc releases after that).
   (QAK - 2012/10/19)
 
+* The following h5dump test case fails in BG/P machines (and potentially other
+  machines that use a command script to launch executables):
+
+   h5dump --no-compact-subset -d "AHFINDERDIRECT::ah_centroid_t[0] it=0 tl=0"
+     tno-subset.h5
+  
+  This is due to the embedded spaces in the dataset name being interpreted
+  by the command script launcher as meta-characters, thus passing three
+  arguments to h5dump's -d flag. The command passes if run by hand, just
+  not via the test script.
+  (AKC - 2012/05/03)
+
 * The STDIO VFD does not work on some architectures, possibly due to 32/64
   bit or large file issues.  The basic STDIO VFD test is known to fail on
   64-bit SunOS 5.10 on SPARC when built with -m64 and 32-bit OS X/Darwin
@@ -689,13 +926,10 @@ Known Problems
 
 * Shared Fortran libraries are not quite working on AIX. While they are
   generated when --enable-shared is specified, the fortran and hl/fortran
-  tests fail. We are looking into the issue. HL and C++ shared libraries
-  should now be working as intended, however.
+  tests fail. the issue. HL and C++ shared libraries should now be 
+  working as intended, however.
   (MAM - 2011/04/20)
 
-* The --with-mpe configure option does not work with Mpich2.
-  (AKC - 2011/03/10)
-
 * While working on the 1.8.6 release of HDF5, a bug was discovered that can
   occur when reading from a dataset in parallel shortly after it has been
   written to collectively. The issue was exposed by a new test in the parallel
@@ -728,12 +962,6 @@ Known Problems
   executable is statically linked with just the HDF5 library.
   (MAM - 2009/11/04)
   
-* Parallel tests failed with 16 processes with data inconsistency at testphdf5
-  / dataset_readAll. Parallel tests also failed with 32 and 64 processes with
-  collective abort of all ranks at t_posix_compliant / allwrite_allread_blocks
-  with MPI IO.
-  (CMC - 2009/04/28)
-
 * A dataset created or rewritten with a v1.6.3 library or after cannot be read 
   with the v1.6.2 library or before when the Fletcher32 EDC filter is enabled.
   There was a bug in the calculation of the Fletcher32 checksum in the 
diff --git a/release_docs/USING_CMake_Examples.txt b/release_docs/USING_CMake_Examples.txt
index 299063f..0956ff1 100644
--- a/release_docs/USING_CMake_Examples.txt
+++ b/release_docs/USING_CMake_Examples.txt
@@ -22,7 +22,7 @@ I. Preconditions
 
    1. We suggest you obtain the latest CMake for windows from the Kitware
       web site. The HDF5 1.8.x product requires a minimum CMake version 
-      of 2.8.12.                     
+      of 3.1.0.                     
                                                                          
    2. You have installed the HDF5 library built with CMake, by executing 
       the HDF Install Utility (the *.exe file in the binary package for 
@@ -47,7 +47,7 @@ Files in the HDF5 install directory:
        
 Default installation process:
        Create a directory to run the examples, i.e. \test_hdf5.
-       Copy HDF5Examples-0.1.1-Source.zip(.tar.gz) to this directory, do NOT unzip.
+       Copy HDF5Examples-0.1.1-Source.zip(.tar.gz) to this directory, uncompress.
        Copy HDF518_Examples.cmake to this directory.
        Edit line 8 of the HDF518_Examples.cmake file and change the INSTALLDIR 
            to the HDF5 install location.
@@ -55,7 +55,7 @@ Default installation process:
        Execute from this directory:
           ctest -S HDF518_Examples.cmake,HDF5Examples-0.1.1-Source -C Release -O test.log
 
-The script will uncompress the examples file HDF5Examples-0.1.1-Source.zip(.tar.gz),
+The script will use the examples folder HDF5Examples-0.1.1-Source,
    and create a build directory inside the HDF5Examples-0.1.1-Source directory.
    It will then configure, build, and execute the examples. All the log files
    will be found under the build\Testing\Temporary directory, check these for
@@ -73,9 +73,11 @@ Line 8: change the INSTALLDIR to a different HDF5 install location.
 
 Line 14: uncomment to allow Mac machines to build shared examples.
 
-Line 15: uncomment to not build and test Fortran examples.
+Line 15: uncomment to build and test Fortran examples.
 
-Line 16: uncomment to build and test Fortran examples with F2003 option.
+Line 16: comment to NOT build and test Fortran examples with F2003 option.
 
-Line 68: change the CTEST_7Z_COMMAND to a different unzip program.
+Line 17: uncomment to use a compressed source file.
+
+Line 71: change the CTEST_7Z_COMMAND to a different unzip program.
 
diff --git a/release_docs/USING_HDF5_CMake.txt b/release_docs/USING_HDF5_CMake.txt
index 6195dc3..514cced 100644
--- a/release_docs/USING_HDF5_CMake.txt
+++ b/release_docs/USING_HDF5_CMake.txt
@@ -37,7 +37,7 @@ I. Preconditions
 
    1. We suggest you obtain the latest CMake for windows from the Kitware
       web site. The HDF5 1.8.x product requires a minimum CMake version 
-      of 2.8.12.                     
+      of 3.1.0.                     
                                                                          
    2. You have installed the HDF5 library built with CMake, by executing 
       the HDF Install Utility (the *.exe file in the binary package for 
@@ -107,7 +107,7 @@ These steps are described in more detail below.
 
         <options> is:
             * BUILD_TESTING:BOOL=ON
-            * USE_SHARED_LIBS:BOOL=[ON | OFF]
+            * BUILD_SHARED_LIBS:BOOL=[ON | OFF]
 
    2. Configure the cache settings
 
@@ -131,7 +131,7 @@ These steps are described in more detail below.
 
       2.2  Alternative command line example on Windows in c:\MyHDFstuff\hdf5\build directory:
       
-           cmake -G "Visual Studio 11" -DBUILD_TESTING:BOOL=ON -DUSE_SHARED_LIBS:BOOL=ON ..
+           cmake -G "Visual Studio 11" -DBUILD_TESTING:BOOL=ON ..
 
    3. Build HDF5 Applications
    
@@ -179,7 +179,7 @@ Create a CMakeLists.txt file at the source root. Include the
 following text in the file:
 
 ##########################################################
-cmake_minimum_required (VERSION 2.8.12)
+cmake_minimum_required (VERSION 3.1.0)
 PROJECT (HDF5MyApp C CXX)
 
 FIND_PACKAGE (HDF5 NAMES hdf5)
@@ -232,7 +232,7 @@ ctest
 # where hdf518Examples is the source folder relative to the location of these scripts
 ############################################################################
 
-cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR)
+cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR)
 
 set(CTEST_DASHBOARD_ROOT ${CTEST_SCRIPT_DIRECTORY})
 set(CTEST_SOURCE_NAME ${CTEST_SCRIPT_ARG})
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index d353bcc..0e97ba0 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required (VERSION 2.8.11)
+cmake_minimum_required (VERSION 3.1.0)
 PROJECT (HDF5_SRC C CXX)
 
 #-----------------------------------------------------------------------------
@@ -357,6 +357,7 @@ set (H5PL_SRCS
 
 set (H5PL_HDRS
     ${HDF5_SRC_DIR}/H5PLextern.h
+    ${HDF5_SRC_DIR}/H5PLpublic.h
 )
 IDE_GENERATED_PROPERTIES ("H5PL" "${H5PL_HDRS}" "${H5PL_SRCS}" )
 
@@ -610,7 +611,7 @@ set (H5_PRIVATE_HEADERS
 # specific type checks inside
 #-----------------------------------------------------------------------------
 add_executable (H5detect ${HDF5_SRC_DIR}/H5detect.c)
-TARGET_C_PROPERTIES (H5detect " " " ")
+TARGET_C_PROPERTIES (H5detect STATIC " " " ")
 if (MSVC OR MINGW)
   target_link_libraries (H5detect "ws2_32.lib")
 endif (MSVC OR MINGW)
@@ -624,7 +625,7 @@ add_custom_command (
 )
 
 add_executable (H5make_libsettings ${HDF5_SRC_DIR}/H5make_libsettings.c)
-TARGET_C_PROPERTIES (H5make_libsettings " " " ")
+TARGET_C_PROPERTIES (H5make_libsettings STATIC " " " ")
 if (MSVC OR MINGW)
   target_link_libraries (H5make_libsettings "ws2_32.lib")
 endif (MSVC OR MINGW)
@@ -691,7 +692,7 @@ set (common_SRCS ${common_SRCS} ${HDF5_BINARY_DIR}/H5overflow.h)
 set_source_files_properties (${HDF5_BINARY_DIR}/H5overflow.h GENERATED)
 
 add_library (${HDF5_LIB_TARGET} ${LIB_TYPE} ${common_SRCS} ${H5_PUBLIC_HEADERS} ${H5_PRIVATE_HEADERS})
-TARGET_C_PROPERTIES (${HDF5_LIB_TARGET} " " " ")
+TARGET_C_PROPERTIES (${HDF5_LIB_TARGET} ${LIB_TYPE} " " " ")
 target_link_libraries (${HDF5_LIB_TARGET} ${LINK_LIBS})
 if (NOT WIN32)
   target_link_libraries (${HDF5_LIB_TARGET} dl)
@@ -709,11 +710,8 @@ set_target_properties (${HDF5_LIB_TARGET} PROPERTIES
 option (HDF5_ENABLE_DEBUG_APIS "Turn on debugging in all packages" OFF)
 if (HDF5_ENABLE_DEBUG_APIS)
   set_target_properties (${HDF5_LIB_TARGET} PROPERTIES
-    COMPILE_DEFINITIONS
-      "-DH5Z_DEBUG -DH5VM_DEBUG -DH5T_DEBUG
-      -DH5S_DEBUG -DH5P_DEBUG -DH5O_DEBUG -DH5MM_DEBUG -DH5MF_DEBUG
-      -DH5I_DEBUG -DH5HL_DEBUG -DH5HG_DEBUG -DH5G_DEBUG -DH5F_DEBUG
-      -DH5E_DEBUG -DH5D_DEBUG -DH5B_DEBUG -DH5AC_DEBUG -UNDEBUG"
+      COMPILE_DEFINITIONS
+          "H5Z_DEBUG;H5VM_DEBUG;H5T_DEBUG;H5S_DEBUG;H5P_DEBUG;H5O_DEBUG;H5MM_DEBUG;H5MF_DEBUG;H5I_DEBUG;H5HL_DEBUG;H5HG_DEBUG;H5G_DEBUG;H5F_DEBUG;H5E_DEBUG;H5D_DEBUG;H5B_DEBUG;H5AC_DEBUG"
   )
 endif (HDF5_ENABLE_DEBUG_APIS)
 
@@ -736,7 +734,7 @@ endif (NOT HDF5_INSTALL_NO_DEVELOPMENT)
 #-----------------------------------------------------------------------------
 if (HDF5_EXPORTED_TARGETS)
   if (BUILD_SHARED_LIBS)
-    INSTALL_TARGET_PDB (${HDF5_LIB_TARGET} ${HDF5_INSTALL_LIB_DIR} libraries)
+    INSTALL_TARGET_PDB (${HDF5_LIB_TARGET} ${HDF5_INSTALL_BIN_DIR} libraries)
   endif (BUILD_SHARED_LIBS)
   
   install (
diff --git a/src/H5.c b/src/H5.c
index 84dc990..b73b614 100644
--- a/src/H5.c
+++ b/src/H5.c
@@ -52,7 +52,9 @@
 /* Local Prototypes */
 /********************/
 static void H5_debug_mask(const char*);
-
+#ifdef H5_HAVE_PARALLEL
+static int H5_mpi_delete_cb(MPI_Comm comm, int keyval, void *attr_val, int *flag);
+#endif /*H5_HAVE_PARALLEL*/
 
 /*********************/
 /* Package Variables */
@@ -105,6 +107,43 @@ H5_init_library(void)
     herr_t ret_value = SUCCEED;
 
     FUNC_ENTER_NOAPI(FAIL)
+
+#ifdef H5_HAVE_PARALLEL
+    {
+	int mpi_initialized;
+        int mpi_code;
+
+	MPI_Initialized(&mpi_initialized);
+
+#ifdef H5_HAVE_MPE
+        /* Initialize MPE instrumentation library. */
+        if (!H5_MPEinit_g)
+            {
+                int mpe_code;
+                if (mpi_initialized){
+                    mpe_code = MPE_Init_log();
+                    HDassert(mpe_code >=0);
+                    H5_MPEinit_g = TRUE;
+                }
+            }
+#endif /*H5_HAVE_MPE*/
+
+        /* add an attribute on MPI_COMM_SELF to call H5_term_library
+           when it is destroyed, i.e. on MPI_Finalize */
+        if (mpi_initialized) {
+            int key_val;
+
+            if(MPI_SUCCESS != (mpi_code = MPI_Comm_create_keyval(MPI_NULL_COPY_FN, 
+                                                                 (MPI_Comm_delete_attr_function *)H5_mpi_delete_cb, 
+                                                                 &key_val, NULL)))
+                HMPI_GOTO_ERROR(FAIL, "MPI_Comm_create_keyval failed", mpi_code)
+
+            if(MPI_SUCCESS != (mpi_code = MPI_Comm_set_attr(MPI_COMM_SELF, key_val, NULL)))
+                HMPI_GOTO_ERROR(FAIL, "MPI_Comm_set_attr failed", mpi_code)
+        }
+    }
+#endif /*H5_HAVE_PARALLEL*/
+
     /*
      * Make sure the package information is updated.
      */
@@ -128,24 +167,6 @@ H5_init_library(void)
     H5_debug_g.pkg[H5_PKG_V].name = "v";
     H5_debug_g.pkg[H5_PKG_Z].name = "z";
 
-#ifdef H5_HAVE_MPE
-    /* Initialize MPE instrumentation library.  May need to move this
-     * up earlier if any of the above initialization involves using
-     * the instrumentation code.
-     */
-    if (!H5_MPEinit_g)
-    {
-	int mpe_code;
-	int mpi_initialized;
-	MPI_Initialized(&mpi_initialized);
-	if (mpi_initialized){
-	    mpe_code = MPE_Init_log();
-	    HDassert(mpe_code >=0);
-	    H5_MPEinit_g = TRUE;
-	}
-    }
-#endif
-
     /*
      * Install atexit() library cleanup routines unless the H5dont_atexit()
      * has been called.  Once we add something to the atexit() list it stays
@@ -578,6 +599,27 @@ H5_debug_mask(const char *s)
     }
 } /* end H5_debug_mask() */
 
+#ifdef H5_HAVE_PARALLEL
+

+/*-------------------------------------------------------------------------
+ * Function:	H5_mpi_delete_cb
+ *
+ * Purpose:	Callback attribute on MPI_COMM_SELF to terminate the HDF5 
+ *              library when the communicator is destroyed, i.e. on MPI_Finalize.
+ *
+ * Return:	MPI_SUCCESS
+ *
+ * Programmer:	Mohamad Chaarawi, February 2015
+ *
+ *-------------------------------------------------------------------------
+ */
+static int H5_mpi_delete_cb(MPI_Comm UNUSED comm, int UNUSED keyval, void UNUSED *attr_val, int UNUSED *flag)
+{
+    H5_term_library();
+    return MPI_SUCCESS;
+}
+#endif /*H5_HAVE_PARALLEL*/
+
 

 /*-------------------------------------------------------------------------
  * Function:	H5get_libversion
@@ -816,27 +858,109 @@ H5close(void)
 
 

 /*-------------------------------------------------------------------------
+ * Function:	H5allocate_memory
+ *
+ * Purpose:	    Allocate a memory buffer with the semantics of malloc().
+ *
+ *              NOTE: This function is intended for use with filter
+ *              plugins so that all allocation and free operations
+ *              use the same memory allocator. It is not intended for
+ *              use as a general memory allocator in applications.
+ *
+ * Parameters:
+ *
+ *      size:   The size of the buffer.
+ *
+ *      clear:  Whether or not to memset the buffer to 0.
+ *
+ * Return:
+ *
+ *      Success:    A pointer to the allocated buffer.
+ *  
+ *      Failure:    NULL
+ *
+ *-------------------------------------------------------------------------
+ */
+void *
+H5allocate_memory(size_t size, hbool_t clear)
+{
+    void *ret_value = NULL;
+
+    FUNC_ENTER_API_NOINIT;
+    H5TRACE2("*x", "zb", size, clear);
+
+    if(clear)
+        ret_value = H5MM_calloc(size);
+    else
+        ret_value = H5MM_malloc(size);
+
+    FUNC_LEAVE_API(ret_value)
+
+} /* end H5allocate_memory() */
+
+

+/*-------------------------------------------------------------------------
+ * Function:	H5resize_memory
+ *
+ * Purpose:	    Resize a memory buffer with the semantics of realloc().
+ *
+ *              NOTE: This function is intended for use with filter
+ *              plugins so that all allocation and free operations
+ *              use the same memory allocator. It is not intended for
+ *              use as a general memory allocator in applications.
+ *
+ * Parameters:
+ *
+ *      mem:    The buffer to be resized.
+ *
+ *      size:   The size of the buffer.
+ *
+ * Return:
+ *
+ *      Success:    A pointer to the resized buffer.
+ *  
+ *      Failure:    NULL (the input buffer will be unchanged)
+ *
+ *-------------------------------------------------------------------------
+ */
+void *
+H5resize_memory(void *mem, size_t size)
+{
+    void *ret_value = NULL;
+
+    FUNC_ENTER_API_NOINIT;
+    H5TRACE2("*x", "*xz", mem, size);
+
+    ret_value = H5MM_realloc(mem, size);
+
+    FUNC_LEAVE_API(ret_value)
+
+} /* end H5resize_memory() */
+
+

+/*-------------------------------------------------------------------------
  * Function:	H5free_memory
  *
- * Purpose:	Frees memory allocated by the library that it is the user's
+ * Purpose:	    Frees memory allocated by the library that it is the user's
  *              responsibility to free.  Ensures that the same library
  *              that was used to allocate the memory frees it.  Passing
  *              NULL pointers is allowed.
  *
- * Return:	SUCCEED/FAIL
+ * Return:	    SUCCEED/FAIL
  *
  *-------------------------------------------------------------------------
  */
 herr_t
 H5free_memory(void *mem)
 {
-    FUNC_ENTER_API_NOINIT
+    FUNC_ENTER_API_NOINIT;
     H5TRACE1("e", "*x", mem);
 
     /* At this time, it is impossible for this to fail. */
     HDfree(mem);
 
     FUNC_LEAVE_API(SUCCEED)
+
 } /* end H5free_memory() */
 
 

@@ -897,3 +1021,4 @@ DllMain(_In_ HINSTANCE hinstDLL, _In_ DWORD fdwReason, _In_ LPVOID lpvReserved)
     return fOkay;
 }
 #endif /* H5_HAVE_WIN32_API && H5_BUILT_AS_DYNAMIC_LIB && H5_HAVE_WIN_THREADS && H5_HAVE_THREADSAFE*/
+
diff --git a/src/H5AC.c b/src/H5AC.c
index 91a49c5..42cf268 100644
--- a/src/H5AC.c
+++ b/src/H5AC.c
@@ -481,7 +481,7 @@ H5AC_create(const H5F_t *f,
         HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "Bad cache configuration")
 
 #ifdef H5_HAVE_PARALLEL
-    if(IS_H5FD_MPI(f)) {
+    if(H5F_HAS_FEATURE(f, H5FD_FEAT_HAS_MPI)) {
         MPI_Comm	 mpi_comm;
         int		 mpi_rank;
         int	 	 mpi_size;
diff --git a/src/H5ACprivate.h b/src/H5ACprivate.h
index aeae56d..8fa6396 100644
--- a/src/H5ACprivate.h
+++ b/src/H5ACprivate.h
@@ -219,22 +219,22 @@ extern hid_t H5AC_ind_dxpl_id;
   /* size_t      min_size               = */ (1 * 1024 * 1024),               \
   /* long int    epoch_length           = */ 50000,                           \
   /* enum H5C_cache_incr_mode incr_mode = */ H5C_incr__threshold,             \
-  /* double      lower_hr_threshold     = */ 0.9,                             \
-  /* double      increment              = */ 2.0,                             \
+  /* double      lower_hr_threshold     = */ 0.9F,                            \
+  /* double      increment              = */ 2.0F,                            \
   /* hbool_t     apply_max_increment    = */ TRUE,                            \
   /* size_t      max_increment          = */ (4 * 1024 * 1024),               \
   /* enum H5C_cache_flash_incr_mode       */                                  \
   /*                    flash_incr_mode = */ H5C_flash_incr__add_space,       \
-  /* double      flash_multiple         = */ 1.0,                             \
-  /* double      flash_threshold        = */ 0.25,                            \
+  /* double      flash_multiple         = */ 1.0F,                            \
+  /* double      flash_threshold        = */ 0.25F,                            \
   /* enum H5C_cache_decr_mode decr_mode = */ H5C_decr__age_out_with_threshold, \
-  /* double      upper_hr_threshold     = */ 0.999,                           \
-  /* double      decrement              = */ 0.9,                             \
+  /* double      upper_hr_threshold     = */ H5_DOUBLE(0.999),                 \
+  /* double      decrement              = */ 0.9F,                            \
   /* hbool_t     apply_max_decrement    = */ TRUE,                            \
   /* size_t      max_decrement          = */ (1 * 1024 * 1024),               \
   /* int         epochs_before_eviction = */ 3,                               \
   /* hbool_t     apply_empty_reserve    = */ TRUE,                            \
-  /* double      empty_reserve          = */ 0.1,                             \
+  /* double      empty_reserve          = */ 0.1F,                            \
   /* int	 dirty_bytes_threshold  = */ (256 * 1024),                    \
   /* int	metadata_write_strategy = */                                  \
 				       H5AC__DEFAULT_METADATA_WRITE_STRATEGY  \
@@ -250,27 +250,27 @@ extern hid_t H5AC_ind_dxpl_id;
   /* hbool_t     evictions_enabled      = */ TRUE,                            \
   /* hbool_t     set_initial_size       = */ TRUE,                            \
   /* size_t      initial_size           = */ ( 2 * 1024 * 1024),              \
-  /* double      min_clean_fraction     = */ 0.01,                            \
+  /* double      min_clean_fraction     = */ 0.01F,                           \
   /* size_t      max_size               = */ (32 * 1024 * 1024),              \
   /* size_t      min_size               = */ ( 1 * 1024 * 1024),              \
   /* long int    epoch_length           = */ 50000,                           \
   /* enum H5C_cache_incr_mode incr_mode = */ H5C_incr__threshold,             \
-  /* double      lower_hr_threshold     = */ 0.9,                             \
-  /* double      increment              = */ 2.0,                             \
+  /* double      lower_hr_threshold     = */ 0.9F,                            \
+  /* double      increment              = */ 2.0F,                            \
   /* hbool_t     apply_max_increment    = */ TRUE,                            \
   /* size_t      max_increment          = */ (4 * 1024 * 1024),               \
   /* enum H5C_cache_flash_incr_mode       */                                  \
   /*                    flash_incr_mode = */ H5C_flash_incr__add_space,       \
-  /* double      flash_multiple         = */ 1.4,                             \
-  /* double      flash_threshold        = */ 0.25,                            \
+  /* double      flash_multiple         = */ 1.4F,                            \
+  /* double      flash_threshold        = */ 0.25F,                           \
   /* enum H5C_cache_decr_mode decr_mode = */ H5C_decr__age_out_with_threshold,\
-  /* double      upper_hr_threshold     = */ 0.999,                           \
-  /* double      decrement              = */ 0.9,                             \
+  /* double      upper_hr_threshold     = */ H5_DOUBLE(0.999),                \
+  /* double      decrement              = */ 0.9F,                            \
   /* hbool_t     apply_max_decrement    = */ TRUE,                            \
   /* size_t      max_decrement          = */ (1 * 1024 * 1024),               \
   /* int         epochs_before_eviction = */ 3,                               \
   /* hbool_t     apply_empty_reserve    = */ TRUE,                            \
-  /* double      empty_reserve          = */ 0.1,                             \
+  /* double      empty_reserve          = */ 0.1F,                            \
   /* int	 dirty_bytes_threshold  = */ (256 * 1024),                    \
   /* int	metadata_write_strategy = */                                  \
 				       H5AC__DEFAULT_METADATA_WRITE_STRATEGY  \
diff --git a/src/H5C.c b/src/H5C.c
index fa28584..2a17da5 100644
--- a/src/H5C.c
+++ b/src/H5C.c
@@ -7612,7 +7612,7 @@ H5C_flush_single_entry(H5F_t *	   	   f,
          * otherwise as no file I/O can result.
          */
         if(!clear_only && entry_ptr->is_dirty &&
-                IS_H5FD_MPI(f)) {
+                H5F_HAS_FEATURE(f, H5FD_FEAT_HAS_MPI)) {
             H5P_genplist_t *dxpl;       /* Dataset transfer property list */
             unsigned coll_meta;         /* Collective metadata write flag */
 
diff --git a/src/H5Dchunk.c b/src/H5Dchunk.c
index 820d4b6..15846d4 100644
--- a/src/H5Dchunk.c
+++ b/src/H5Dchunk.c
@@ -3306,7 +3306,7 @@ H5D__chunk_allocate(const H5D_t *dset, hid_t dxpl_id, hbool_t full_overwrite,
 
 #ifdef H5_HAVE_PARALLEL
     /* Retrieve MPI parameters */
-    if(IS_H5FD_MPI(dset->oloc.file)) {
+    if(H5F_HAS_FEATURE(dset->oloc.file, H5FD_FEAT_HAS_MPI)) {
         /* Set the MPI-capable file driver flag */
         using_mpi = TRUE;
 
diff --git a/src/H5Dcontig.c b/src/H5Dcontig.c
index e5012ca..8d4cd02 100644
--- a/src/H5Dcontig.c
+++ b/src/H5Dcontig.c
@@ -225,7 +225,7 @@ H5D__contig_fill(const H5D_t *dset, hid_t dxpl_id)
 
 #ifdef H5_HAVE_PARALLEL
     /* Retrieve MPI parameters */
-    if(IS_H5FD_MPI(dset->oloc.file)) {
+    if(H5F_HAS_FEATURE(dset->oloc.file, H5FD_FEAT_HAS_MPI)) {
         /* Get the MPI communicator */
         if(MPI_COMM_NULL == (mpi_comm = H5F_mpi_get_comm(dset->oloc.file)))
             HGOTO_ERROR(H5E_INTERNAL, H5E_MPI, FAIL, "Can't retrieve MPI communicator")
diff --git a/src/H5Dint.c b/src/H5Dint.c
index a354a16..a077b37 100644
--- a/src/H5Dint.c
+++ b/src/H5Dint.c
@@ -1026,7 +1026,7 @@ H5D__create(H5F_t *file, hid_t type_id, const H5S_t *space, hid_t dcpl_id,
             HGOTO_ERROR(H5E_DATASET, H5E_BADVALUE, NULL, "compact dataset must have early space allocation")
 
         /* If MPI VFD is used, no filter support yet. */
-        if(IS_H5FD_MPI(file) && pline->nused > 0)
+        if(H5F_HAS_FEATURE(file, H5FD_FEAT_HAS_MPI) && pline->nused > 0)
             HGOTO_ERROR(H5E_DATASET, H5E_UNSUPPORTED, NULL, "Parallel I/O does not support filters yet")
 
         /* Get the dataset's external file list information */
@@ -1046,7 +1046,7 @@ H5D__create(H5F_t *file, hid_t type_id, const H5S_t *space, hid_t dcpl_id,
     } /* end if */
 
     /* Check if this dataset is going into a parallel file and set space allocation time */
-    if(IS_H5FD_MPI(file))
+    if(H5F_HAS_FEATURE(file, H5FD_FEAT_ALLOCATE_EARLY))
         new_dset->shared->dcpl_cache.fill.alloc_time = H5D_ALLOC_TIME_EARLY;
 
     /* Set the dataset's I/O operations */
@@ -1328,7 +1328,7 @@ H5D__open_oid(H5D_t *dataset, hid_t dapl_id, hid_t dxpl_id)
      */
     if((H5F_INTENT(dataset->oloc.file) & H5F_ACC_RDWR)
             && !(*dataset->shared->layout.ops->is_space_alloc)(&dataset->shared->layout.storage)
-            && IS_H5FD_MPI(dataset->oloc.file)) {
+            && H5F_HAS_FEATURE(dataset->oloc.file, H5FD_FEAT_ALLOCATE_EARLY)) {
         if(H5D__alloc_storage(dataset, dxpl_id, H5D_ALLOC_OPEN, FALSE, NULL) < 0)
             HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to initialize file storage")
     } /* end if */
diff --git a/src/H5Dio.c b/src/H5Dio.c
index b0fc822..7495f7f 100644
--- a/src/H5Dio.c
+++ b/src/H5Dio.c
@@ -427,7 +427,8 @@ H5D__read(H5D_t *dataset, hid_t mem_type_id, const H5S_t *mem_space,
 
 #ifdef H5_HAVE_PARALLEL
     /* Collective access is not permissible without a MPI based VFD */
-    if(dxpl_cache->xfer_mode == H5FD_MPIO_COLLECTIVE && !IS_H5FD_MPI(dataset->oloc.file))
+    if(dxpl_cache->xfer_mode == H5FD_MPIO_COLLECTIVE && 
+       !(H5F_HAS_FEATURE(dataset->oloc.file, H5FD_FEAT_HAS_MPI)))
         HGOTO_ERROR(H5E_DATASET, H5E_UNSUPPORTED, FAIL, "collective access for MPI-based drivers only")
 #endif /*H5_HAVE_PARALLEL*/
 
@@ -646,7 +647,7 @@ H5D__write(H5D_t *dataset, hid_t mem_type_id, const H5S_t *mem_space,
 
     /* Various MPI based checks */
 #ifdef H5_HAVE_PARALLEL
-    if(IS_H5FD_MPI(dataset->oloc.file)) {
+    if(H5F_HAS_FEATURE(dataset->oloc.file, H5FD_FEAT_HAS_MPI)) {
         /* If MPI based VFD is used, no VL datatype support yet. */
         /* This is because they use the global heap in the file and we don't */
         /* support parallel access of that yet */
@@ -889,7 +890,7 @@ const
 
 #ifdef H5_HAVE_PARALLEL
     /* Determine if the file was opened with an MPI VFD */
-    io_info->using_mpi_vfd = IS_H5FD_MPI(dset->oloc.file);
+    io_info->using_mpi_vfd = H5F_HAS_FEATURE(dset->oloc.file, H5FD_FEAT_HAS_MPI);
 #endif /* H5_HAVE_PARALLEL */
 
     FUNC_LEAVE_NOAPI(SUCCEED)
diff --git a/src/H5Dmpio.c b/src/H5Dmpio.c
index 88c6075..01d2288 100644
--- a/src/H5Dmpio.c
+++ b/src/H5Dmpio.c
@@ -474,7 +474,7 @@ H5D__contig_collective_read(H5D_io_info_t *io_info, const H5D_type_info_t *type_
     FUNC_ENTER_PACKAGE
 
     /* Sanity check */
-    HDassert(IS_H5FD_MPIO(io_info->dset->oloc.file));
+    HDassert(H5FD_MPIO == H5F_DRIVER_ID(io_info->dset->oloc.file));
     HDassert(TRUE == H5P_isa_class(io_info->dxpl_id, H5P_DATASET_XFER));
 
     /* Call generic internal collective I/O routine */
@@ -521,7 +521,7 @@ H5D__contig_collective_write(H5D_io_info_t *io_info, const H5D_type_info_t *type
     FUNC_ENTER_PACKAGE
 
     /* Sanity check */
-    HDassert(IS_H5FD_MPIO(io_info->dset->oloc.file));
+    HDassert(H5FD_MPIO == H5F_DRIVER_ID(io_info->dset->oloc.file));
     HDassert(TRUE == H5P_isa_class(io_info->dxpl_id, H5P_DATASET_XFER));
 
     /* Call generic internal collective I/O routine */
@@ -833,39 +833,37 @@ H5D__link_chunk_collective_io(H5D_io_info_t *io_info, const H5D_type_info_t *typ
      *  equivalent of compressed contiguous datasets - QAK]
      */
     if(total_chunks == 1) {
-        H5D_chunk_ud_t udata;           /* User data for querying chunk info */
-        hsize_t coords[H5O_LAYOUT_NDIMS];   /* Coordinates of chunk in file dataset's dataspace */
         H5SL_node_t *chunk_node;        /* Pointer to chunk node for selection */
         H5S_t *fspace;                  /* Dataspace describing chunk & selection in it */
         H5S_t *mspace;                  /* Dataspace describing selection in memory corresponding to this chunk */
 
-        /* Initialize the chunk coordinates */
-        /* (must be all zero, since there's only one chunk) */
-        HDmemset(coords, 0, sizeof(coords));
-
-        /* Look up address of chunk */
-        if(H5D__chunk_lookup(io_info->dset, io_info->dxpl_id, coords,
-                io_info->store->chunk.index, &udata) < 0)
-            HGOTO_ERROR(H5E_STORAGE, H5E_CANTGET, FAIL, "couldn't get chunk info from skipped list")
-        ctg_store.contig.dset_addr = udata.addr;
-
         /* Check for this process having selection in this chunk */
         chunk_node = H5SL_first(fm->sel_chunks);
 
         if(chunk_node == NULL) {
-                /* Set the dataspace info for I/O to NULL, this process doesn't have any I/O to perform */
-                fspace = mspace = NULL;
+            /* Set the dataspace info for I/O to NULL, this process doesn't have any I/O to perform */
+            fspace = mspace = NULL;
+
+            /* Initialize chunk address */
+            ctg_store.contig.dset_addr = 0;
         } /* end if */
         else {
-                H5D_chunk_info_t *chunk_info;
-
-                /* Get the chunk info, for the selection in the chunk */
-                if(NULL == (chunk_info = H5SL_item(chunk_node)))
-                    HGOTO_ERROR(H5E_STORAGE, H5E_CANTGET, FAIL, "couldn't get chunk info from skipped list")
-
-                /* Set the dataspace info for I/O */
-                fspace = chunk_info->fspace;
-                mspace = chunk_info->mspace;
+            H5D_chunk_ud_t udata;           /* User data for querying chunk info */
+            H5D_chunk_info_t *chunk_info;   /* Info for chunk in skiplist */
+
+            /* Get the chunk info, for the selection in the chunk */
+            if(NULL == (chunk_info = (H5D_chunk_info_t *)H5SL_item(chunk_node)))
+                HGOTO_ERROR(H5E_STORAGE, H5E_CANTGET, FAIL, "couldn't get chunk info from skip list")
+
+            /* Set the dataspace info for I/O */
+            fspace = chunk_info->fspace;
+            mspace = chunk_info->mspace;
+
+            /* Look up address of chunk */
+            if(H5D__chunk_lookup(io_info->dset, io_info->dxpl_id, chunk_info->coords,
+                    chunk_info->index, &udata) < 0)
+                HGOTO_ERROR(H5E_STORAGE, H5E_CANTGET, FAIL, "couldn't get chunk address")
+            ctg_store.contig.dset_addr = udata.addr;
         } /* end else */
 
         /* Set up the base storage address for this chunk */
diff --git a/src/H5E.c b/src/H5E.c
index 3fe2a83..cd4da9f 100644
--- a/src/H5E.c
+++ b/src/H5E.c
@@ -1397,17 +1397,7 @@ H5Epush2(hid_t err_stack, const char *file, const char *func, unsigned line,
         HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed")
 
     /* If the description doesn't fit into the initial buffer size, allocate more space and try again */
-    while((desc_len = HDvsnprintf(tmp, (size_t)tmp_len, fmt, ap))
-#ifdef H5_VSNPRINTF_WORKS
-            >
-#else /* H5_VSNPRINTF_WORKS */
-            >=
-#endif /* H5_VSNPRINTF_WORKS */
-            (tmp_len - 1)
-#ifndef H5_VSNPRINTF_WORKS
-            || (desc_len < 0)
-#endif /* H5_VSNPRINTF_WORKS */
-            ) {
+    while((desc_len = HDvsnprintf(tmp, (size_t)tmp_len, fmt, ap)) > (tmp_len - 1)) {
         /* shutdown & restart the va_list */
         va_end(ap);
         va_start(ap, fmt);
@@ -1416,11 +1406,7 @@ H5Epush2(hid_t err_stack, const char *file, const char *func, unsigned line,
         H5MM_xfree(tmp);
 
         /* Allocate a description of the appropriate length */
-#ifdef H5_VSNPRINTF_WORKS
         tmp_len = desc_len + 1;
-#else /* H5_VSNPRINTF_WORKS */
-        tmp_len = 2 * tmp_len;
-#endif /* H5_VSNPRINTF_WORKS */
         if(NULL == (tmp = H5MM_malloc((size_t)tmp_len)))
             HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed")
     } /* end while */
diff --git a/src/H5Edeprec.c b/src/H5Edeprec.c
index 3e9444b..6a83745 100644
--- a/src/H5Edeprec.c
+++ b/src/H5Edeprec.c
@@ -152,6 +152,7 @@ H5Eget_major(H5E_major_t maj)
     char        *ret_value;     /* Return value */
 
     FUNC_ENTER_API_NOCLEAR(NULL)
+    H5TRACE1("*s", "i", maj);
 
     /* Get the message object */
     if(NULL == (msg = (H5E_msg_t *)H5I_object_verify(maj, H5I_ERROR_MSG)))
@@ -204,6 +205,7 @@ H5Eget_minor(H5E_minor_t min)
     char        *ret_value;     /* Return value */
 
     FUNC_ENTER_API_NOCLEAR(NULL)
+    H5TRACE1("*s", "i", min);
 
     /* Get the message object */
     if(NULL == (msg = (H5E_msg_t *)H5I_object_verify(min, H5I_ERROR_MSG)))
diff --git a/src/H5Eint.c b/src/H5Eint.c
index 4c678b6..0dab65c 100644
--- a/src/H5Eint.c
+++ b/src/H5Eint.c
@@ -741,17 +741,7 @@ H5E_printf_stack(H5E_t *estack, const char *file, const char *func, unsigned lin
         HGOTO_DONE(FAIL)
 
     /* If the description doesn't fit into the initial buffer size, allocate more space and try again */
-    while((desc_len = HDvsnprintf(tmp, (size_t)tmp_len, fmt, ap))
-#ifdef H5_VSNPRINTF_WORKS
-            >
-#else /* H5_VSNPRINTF_WORKS */
-            >=
-#endif /* H5_VSNPRINTF_WORKS */
-            (tmp_len - 1)
-#ifndef H5_VSNPRINTF_WORKS
-            || (desc_len < 0)
-#endif /* H5_VSNPRINTF_WORKS */
-            ) {
+    while((desc_len = HDvsnprintf(tmp, (size_t)tmp_len, fmt, ap)) > (tmp_len - 1)) {
         /* shutdown & restart the va_list */
         va_end(ap);
         va_start(ap, fmt);
@@ -760,11 +750,7 @@ H5E_printf_stack(H5E_t *estack, const char *file, const char *func, unsigned lin
         H5MM_xfree(tmp);
 
         /* Allocate a description of the appropriate length */
-#ifdef H5_VSNPRINTF_WORKS
         tmp_len = desc_len + 1;
-#else /* H5_VSNPRINTF_WORKS */
-        tmp_len = 2 * tmp_len;
-#endif /* H5_VSNPRINTF_WORKS */
         if(NULL == (tmp = H5MM_malloc((size_t)tmp_len)))
             HGOTO_DONE(FAIL)
     } /* end while */
diff --git a/src/H5Epublic.h b/src/H5Epublic.h
index 17a35d9..1639ab4 100644
--- a/src/H5Epublic.h
+++ b/src/H5Epublic.h
@@ -165,7 +165,7 @@ H5_DLL herr_t H5Eclose_stack(hid_t stack_id);
 H5_DLL ssize_t H5Eget_class_name(hid_t class_id, char *name, size_t size);
 H5_DLL herr_t H5Eset_current_stack(hid_t err_stack_id);
 H5_DLL herr_t H5Epush2(hid_t err_stack, const char *file, const char *func, unsigned line,
-    hid_t cls_id, hid_t maj_id, hid_t min_id, const char *msg, ...);
+    hid_t cls_id, hid_t maj_id, hid_t min_id, const char *msg, ...)__attribute__((format (printf, 8, 9)));
 H5_DLL herr_t H5Epop(hid_t err_stack, size_t count);
 H5_DLL herr_t H5Eprint2(hid_t err_stack, FILE *stream);
 H5_DLL herr_t H5Ewalk2(hid_t err_stack, H5E_direction_t direction, H5E_walk2_t func,
diff --git a/src/H5FD.c b/src/H5FD.c
index 947854d..1f94393 100644
--- a/src/H5FD.c
+++ b/src/H5FD.c
@@ -904,6 +904,7 @@ H5FDopen(const char *name, unsigned flags, hid_t fapl_id, haddr_t maxaddr)
     H5FD_t	*ret_value=NULL;
 
     FUNC_ENTER_API(NULL)
+    H5TRACE4("*x", "*sIuia", name, flags, fapl_id, maxaddr);
 
     /* Check arguments */
     if(H5P_DEFAULT == fapl_id)
diff --git a/src/H5FDcore.c b/src/H5FDcore.c
index 7c7dd39..c511977 100644
--- a/src/H5FDcore.c
+++ b/src/H5FDcore.c
@@ -1223,8 +1223,6 @@ H5FD_core_read(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t UNUSED dxpl_id, hadd
         HGOTO_ERROR(H5E_IO, H5E_OVERFLOW, FAIL, "file address overflowed")
     if (REGION_OVERFLOW(addr, size))
         HGOTO_ERROR(H5E_IO, H5E_OVERFLOW, FAIL, "file address overflowed")
-    if((addr + size) > file->eoa)
-        HGOTO_ERROR(H5E_IO, H5E_OVERFLOW, FAIL, "file address overflowed")
 
     /* Read the part which is before the EOF marker */
     if (addr < file->eof) {
@@ -1283,8 +1281,6 @@ H5FD_core_write(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t UNUSED dxpl_id, had
     /* Check for overflow conditions */
     if(REGION_OVERFLOW(addr, size))
         HGOTO_ERROR(H5E_IO, H5E_OVERFLOW, FAIL, "file address overflowed")
-    if(addr + size > file->eoa)
-        HGOTO_ERROR(H5E_IO, H5E_OVERFLOW, FAIL, "file address overflowed")
 
     /*
      * Allocate more memory if necessary, careful of overflow. Also, if the
diff --git a/src/H5FDdirect.c b/src/H5FDdirect.c
index c984401..a41e14f 100644
--- a/src/H5FDdirect.c
+++ b/src/H5FDdirect.c
@@ -891,8 +891,6 @@ H5FD_direct_read(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t UNUSED dxpl_id, ha
         HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "addr undefined")
     if (REGION_OVERFLOW(addr, size))
         HGOTO_ERROR(H5E_ARGS, H5E_OVERFLOW, FAIL, "addr overflow")
-    if((addr + size) > file->eoa)
-        HGOTO_ERROR(H5E_ARGS, H5E_OVERFLOW, FAIL, "addr overflow")
 
     /* If the system doesn't require data to be aligned, read the data in
      * the same way as sec2 driver.
@@ -1079,8 +1077,6 @@ H5FD_direct_write(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t UNUSED dxpl_id, h
         HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "addr undefined")
     if (REGION_OVERFLOW(addr, size))
         HGOTO_ERROR(H5E_ARGS, H5E_OVERFLOW, FAIL, "addr overflow")
-    if (addr+size>file->eoa)
-        HGOTO_ERROR(H5E_ARGS, H5E_OVERFLOW, FAIL, "addr overflow")
 
     /* If the system doesn't require data to be aligned, read the data in
      * the same way as sec2 driver.
diff --git a/src/H5FDint.c b/src/H5FDint.c
index 9f02a25..3575340 100644
--- a/src/H5FDint.c
+++ b/src/H5FDint.c
@@ -183,6 +183,7 @@ herr_t
 H5FD_read(H5FD_t *file, const H5P_genplist_t *dxpl, H5FD_mem_t type, haddr_t addr,
     size_t size, void *buf/*out*/)
 {
+    haddr_t     eoa = HADDR_UNDEF;
     herr_t      ret_value = SUCCEED;       /* Return value */
 
     FUNC_ENTER_NOAPI(FAIL)
@@ -199,6 +200,12 @@ H5FD_read(H5FD_t *file, const H5P_genplist_t *dxpl, H5FD_mem_t type, haddr_t add
         HGOTO_DONE(SUCCEED)
 #endif /* H5_HAVE_PARALLEL */
 
+    if(HADDR_UNDEF == (eoa = (file->cls->get_eoa)(file, type)))
+	HGOTO_ERROR(H5E_VFL, H5E_CANTINIT, FAIL, "driver get_eoa request failed")
+    if((addr + file->base_addr + size) > eoa)
+        HGOTO_ERROR(H5E_ARGS, H5E_OVERFLOW, FAIL, "addr overflow, addr = %llu, size=%llu, eoa=%llu", 
+                    (unsigned long long)(addr+ file->base_addr), (unsigned long long)size, (unsigned long long)eoa)
+
     /* Dispatch to driver */
     if((file->cls->read)(file, type, H5P_PLIST_ID(dxpl), addr + file->base_addr, size, buf) < 0)
         HGOTO_ERROR(H5E_VFL, H5E_READERROR, FAIL, "driver read request failed")
@@ -225,6 +232,7 @@ herr_t
 H5FD_write(H5FD_t *file, const H5P_genplist_t *dxpl, H5FD_mem_t type, haddr_t addr,
     size_t size, const void *buf)
 {
+    haddr_t     eoa = HADDR_UNDEF;
     herr_t      ret_value = SUCCEED;       /* Return value */
 
     FUNC_ENTER_NOAPI(FAIL)
@@ -241,6 +249,12 @@ H5FD_write(H5FD_t *file, const H5P_genplist_t *dxpl, H5FD_mem_t type, haddr_t ad
         HGOTO_DONE(SUCCEED)
 #endif /* H5_HAVE_PARALLEL */
 
+    if(HADDR_UNDEF == (eoa = (file->cls->get_eoa)(file, type)))
+	HGOTO_ERROR(H5E_VFL, H5E_CANTINIT, FAIL, "driver get_eoa request failed")
+    if((addr + file->base_addr + size) > eoa)
+        HGOTO_ERROR(H5E_ARGS, H5E_OVERFLOW, FAIL, "addr overflow, addr = %llu, size=%llu, eoa=%llu", 
+                    (unsigned long long)(addr+ file->base_addr), (unsigned long long)size, (unsigned long long)eoa)
+
     /* Dispatch to driver */
     if((file->cls->write)(file, type, H5P_PLIST_ID(dxpl), addr + file->base_addr, size, buf) < 0)
         HGOTO_ERROR(H5E_VFL, H5E_WRITEERROR, FAIL, "driver write request failed")
diff --git a/src/H5FDlog.c b/src/H5FDlog.c
index 0e66da0..135b901 100644
--- a/src/H5FDlog.c
+++ b/src/H5FDlog.c
@@ -1122,8 +1122,6 @@ H5FD_log_read(H5FD_t *_file, H5FD_mem_t type, hid_t UNUSED dxpl_id, haddr_t addr
         HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "addr undefined, addr = %llu", (unsigned long long)addr)
     if(REGION_OVERFLOW(addr, size))
         HGOTO_ERROR(H5E_ARGS, H5E_OVERFLOW, FAIL, "addr overflow, addr = %llu", (unsigned long long)addr)
-    if((addr + size) > file->eoa)
-        HGOTO_ERROR(H5E_ARGS, H5E_OVERFLOW, FAIL, "addr overflow, addr = %llu", (unsigned long long)addr)
 
     /* Log the I/O information about the read */
     if(file->fa.flags != 0) {
@@ -1328,8 +1326,6 @@ H5FD_log_write(H5FD_t *_file, H5FD_mem_t type, hid_t UNUSED dxpl_id, haddr_t add
         HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "addr undefined, addr = %llu", (unsigned long long)addr)
     if(REGION_OVERFLOW(addr, size))
         HGOTO_ERROR(H5E_ARGS, H5E_OVERFLOW, FAIL, "addr overflow, addr = %llu, size = %llu", (unsigned long long)addr, (unsigned long long)size)
-    if((addr + size) > file->eoa)
-        HGOTO_ERROR(H5E_ARGS, H5E_OVERFLOW, FAIL, "addr overflow, addr = %llu, size = %llu, eoa = %llu", (unsigned long long)addr, (unsigned long long)size, (unsigned long long)file->eoa)
 
     /* Log the I/O information about the write */
     if(file->fa.flags & H5FD_LOG_FILE_WRITE) {
diff --git a/src/H5FDmpio.c b/src/H5FDmpio.c
index 5189939..d645e82 100644
--- a/src/H5FDmpio.c
+++ b/src/H5FDmpio.c
@@ -1042,8 +1042,7 @@ H5FD_mpio_open(const char *name, unsigned flags, hid_t fapl_id,
   char debug_str[128];
         int flag, i;
         if (MPI_INFO_NULL != info_dup) {
-            /*OKAY: CAST DISCARDS CONST*/
-            MPI_Info_get(fa->info, (char *)H5F_MPIO_DEBUG_KEY, 127, debug_str, &flag);
+            MPI_Info_get(fa->info, H5F_MPIO_DEBUG_KEY, sizeof(debug_str)-1, debug_str, &flag);
             if (flag) {
                 fprintf(stdout, "H5FD_mpio debug flags=%s\n", debug_str );
                 for (i=0;
@@ -1056,8 +1055,7 @@ H5FD_mpio_open(const char *name, unsigned flags, hid_t fapl_id,
     }
 #endif
 
-    /*OKAY: CAST DISCARDS CONST*/
-    if(MPI_SUCCESS != (mpi_code = MPI_File_open(comm_dup, (char*)name, mpi_amode, info_dup, &fh)))
+    if(MPI_SUCCESS != (mpi_code = MPI_File_open(comm_dup, name, mpi_amode, info_dup, &fh)))
         HMPI_GOTO_ERROR(NULL, "MPI_File_open failed", mpi_code)
     file_opened=1;
 
@@ -1213,8 +1211,10 @@ H5FD_mpio_query(const H5FD_t UNUSED *_file, unsigned long *flags /* out */)
     /* Set the VFL feature flags that this driver supports */
     if(flags) {
         *flags=0;
-        *flags|=H5FD_FEAT_AGGREGATE_METADATA; /* OK to aggregate metadata allocations */
+        *flags|=H5FD_FEAT_AGGREGATE_METADATA;  /* OK to aggregate metadata allocations */
         *flags|=H5FD_FEAT_AGGREGATE_SMALLDATA; /* OK to aggregate "small" raw data allocations */
+        *flags|=H5FD_FEAT_HAS_MPI;             /* This driver uses MPI */
+        *flags|=H5FD_FEAT_ALLOCATE_EARLY;      /* Allocate space early instead of late */
     } /* end if */
 
     FUNC_LEAVE_NOAPI(SUCCEED)
@@ -1490,7 +1490,10 @@ H5FD_mpio_read(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t dxpl_id, haddr_t add
         /* Obtain the data transfer properties */
         if(NULL == (plist = (H5P_genplist_t *)H5I_object(dxpl_id)))
             HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a file access property list")
-        xfer_mode = (H5FD_mpio_xfer_t)H5P_peek_unsigned(plist, H5D_XFER_IO_XFER_MODE_NAME);
+
+        /* get the transfer mode from the dxpl */
+        if(H5P_get(plist, H5D_XFER_IO_XFER_MODE_NAME, &xfer_mode)<0)
+            HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "can't get MPI-I/O transfer mode")
 
         /*
          * Set up for a fancy xfer using complex types, or single byte block. We
@@ -1505,15 +1508,14 @@ H5FD_mpio_read(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t dxpl_id, haddr_t add
             use_view_this_time = TRUE;
 
             /* prepare for a full-blown xfer using btype, ftype, and disp */
-            if(H5P_get(plist,H5FD_MPI_XFER_MEM_MPI_TYPE_NAME,&buf_type)<0)
+            if(H5P_get(plist, H5FD_MPI_XFER_MEM_MPI_TYPE_NAME, &buf_type)<0)
                 HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "can't get MPI-I/O type property")
-            if(H5P_get(plist,H5FD_MPI_XFER_FILE_MPI_TYPE_NAME,&file_type)<0)
+            if(H5P_get(plist, H5FD_MPI_XFER_FILE_MPI_TYPE_NAME, &file_type)<0)
                 HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "can't get MPI-I/O type property")
 
             /*
              * Set the file view when we are using MPI derived types
              */
-            /*OKAY: CAST DISCARDS CONST QUALIFIER*/
             if (MPI_SUCCESS != (mpi_code=MPI_File_set_view(file->f, mpi_off, MPI_BYTE, file_type, H5FD_mpi_native_g,  file->info)))
                 HMPI_GOTO_ERROR(FAIL, "MPI_File_set_view failed", mpi_code)
 
@@ -1532,9 +1534,12 @@ H5FD_mpio_read(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t dxpl_id, haddr_t add
   if (H5FD_mpio_Debug[(int)'t'])
       fprintf(stdout, "H5FD_mpio_read: using MPIO collective mode\n");
 #endif
-        /* Peek the collective_opt property to check whether the application wants to do IO individually. */
+        /* Get the collective_opt property to check whether the application wants to do IO individually. */
         HDassert(plist);
-        coll_opt_mode = (H5FD_mpio_collective_opt_t)H5P_peek_unsigned(plist, H5D_XFER_MPIO_COLLECTIVE_OPT_NAME);
+
+        /* get the transfer mode from the dxpl */
+        if(H5P_get(plist, H5D_XFER_MPIO_COLLECTIVE_OPT_NAME, &coll_opt_mode)<0)
+            HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "can't get MPI-I/O collective_op property")
 
         if(coll_opt_mode == H5FD_MPIO_COLLECTIVE_IO) {
 #ifdef H5FDmpio_DEBUG
@@ -1557,7 +1562,6 @@ H5FD_mpio_read(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t dxpl_id, haddr_t add
         /*
          * Reset the file view when we used MPI derived types
          */
-        /*OKAY: CAST DISCARDS CONST QUALIFIER*/
         if(MPI_SUCCESS != (mpi_code = MPI_File_set_view(file->f, (MPI_Offset)0, MPI_BYTE, MPI_BYTE, H5FD_mpi_native_g, file->info)))
             HMPI_GOTO_ERROR(FAIL, "MPI_File_set_view failed", mpi_code)
     } else {
@@ -1773,8 +1777,9 @@ H5FD_mpio_write(H5FD_t *_file, H5FD_mem_t type, hid_t dxpl_id, haddr_t addr,
         if(NULL == (plist = (H5P_genplist_t *)H5I_object(dxpl_id)))
             HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a file access property list")
 
-        /* Obtain the data transfer properties */
-        xfer_mode = (H5FD_mpio_xfer_t)H5P_peek_unsigned(plist, H5D_XFER_IO_XFER_MODE_NAME);
+        /* get the transfer mode from the dxpl */
+        if(H5P_get(plist, H5D_XFER_IO_XFER_MODE_NAME, &xfer_mode)<0)
+            HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "can't get MPI-I/O transfer mode")
 
         /*
          * Set up for a fancy xfer using complex types, or single byte block. We
@@ -1797,7 +1802,6 @@ H5FD_mpio_write(H5FD_t *_file, H5FD_mem_t type, hid_t dxpl_id, haddr_t addr,
             /*
              * Set the file view when we are using MPI derived types
              */
-            /*OKAY: CAST DISCARDS CONST QUALIFIER*/
             if(MPI_SUCCESS != (mpi_code = MPI_File_set_view(file->f, mpi_off, MPI_BYTE, file_type, H5FD_mpi_native_g, file->info)))
                 HMPI_GOTO_ERROR(FAIL, "MPI_File_set_view failed", mpi_code)
 
@@ -1827,17 +1831,18 @@ H5FD_mpio_write(H5FD_t *_file, H5FD_mem_t type, hid_t dxpl_id, haddr_t addr,
         if(H5FD_mpio_Debug[(int)'t'])
             fprintf(stdout, "H5FD_mpio_write: using MPIO collective mode\n");
 #endif
-        /* Peek the collective_opt property to check whether the application wants to do IO individually. */
+        /* Get the collective_opt property to check whether the application wants to do IO individually. */
         HDassert(plist);
-        coll_opt_mode = (H5FD_mpio_collective_opt_t)H5P_peek_unsigned(plist, H5D_XFER_MPIO_COLLECTIVE_OPT_NAME);
+        /* get the transfer mode from the dxpl */
+        if(H5P_get(plist, H5D_XFER_MPIO_COLLECTIVE_OPT_NAME, &coll_opt_mode)<0)
+            HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "can't get MPI-I/O collective_op property")
 
-        /*OKAY: CAST DISCARDS CONST QUALIFIER*/
         if(coll_opt_mode == H5FD_MPIO_COLLECTIVE_IO) {
 #ifdef H5FDmpio_DEBUG
             if(H5FD_mpio_Debug[(int)'t'])
                 fprintf(stdout, "H5FD_mpio_write: doing MPI collective IO\n");
 #endif
-            if(MPI_SUCCESS != (mpi_code = MPI_File_write_at_all(file->f, mpi_off, (void*)buf, size_i, buf_type, &mpi_stat)))
+            if(MPI_SUCCESS != (mpi_code = MPI_File_write_at_all(file->f, mpi_off, buf, size_i, buf_type, &mpi_stat)))
                 HMPI_GOTO_ERROR(FAIL, "MPI_File_write_at_all failed", mpi_code)
         } /* end if */
         else {
@@ -1845,17 +1850,15 @@ H5FD_mpio_write(H5FD_t *_file, H5FD_mem_t type, hid_t dxpl_id, haddr_t addr,
             if(H5FD_mpio_Debug[(int)'t'])
                 fprintf(stdout, "H5FD_mpio_write: doing MPI independent IO\n");
 #endif
-            if(MPI_SUCCESS != (mpi_code = MPI_File_write_at(file->f, mpi_off, (void*)buf, size_i, buf_type, &mpi_stat)))
+            if(MPI_SUCCESS != (mpi_code = MPI_File_write_at(file->f, mpi_off, buf, size_i, buf_type, &mpi_stat)))
                 HMPI_GOTO_ERROR(FAIL, "MPI_File_write_at failed", mpi_code)
         } /* end else */
 
         /* Reset the file view when we used MPI derived types */
-        /*OKAY: CAST DISCARDS CONST QUALIFIER*/
         if(MPI_SUCCESS != (mpi_code = MPI_File_set_view(file->f, (MPI_Offset)0, MPI_BYTE, MPI_BYTE, H5FD_mpi_native_g,  file->info)))
             HMPI_GOTO_ERROR(FAIL, "MPI_File_set_view failed", mpi_code)
     } else {
-        /*OKAY: CAST DISCARDS CONST QUALIFIER*/
-        if(MPI_SUCCESS != (mpi_code = MPI_File_write_at(file->f, mpi_off, (void*)buf, size_i, buf_type, &mpi_stat)))
+        if(MPI_SUCCESS != (mpi_code = MPI_File_write_at(file->f, mpi_off, buf, size_i, buf_type, &mpi_stat)))
             HMPI_GOTO_ERROR(FAIL, "MPI_File_write_at failed", mpi_code)
     }
 
diff --git a/src/H5FDprivate.h b/src/H5FDprivate.h
index 37aad3f..a11fc01 100644
--- a/src/H5FDprivate.h
+++ b/src/H5FDprivate.h
@@ -40,14 +40,6 @@
 /* Length of filename buffer */
 #define H5FD_MAX_FILENAME_LEN      1024
 
-/* MPI based VFDs */
-#define IS_H5FD_MPIO(f)	/* (H5F_t *f) */				    \
-    (H5FD_MPIO==H5F_DRIVER_ID(f))
-
-/* Single macro to check for all file drivers that use MPI */
-#define IS_H5FD_MPI(file)  \
-        (IS_H5FD_MPIO(file))
-
 #ifdef H5_HAVE_PARALLEL
 /* ======== Temporary data transfer properties ======== */
 /* Definitions for memory MPI type property */
diff --git a/src/H5FDpublic.h b/src/H5FDpublic.h
index f1b3920..b4c9903 100644
--- a/src/H5FDpublic.h
+++ b/src/H5FDpublic.h
@@ -177,6 +177,18 @@ typedef enum H5F_mem_t	H5FD_mem_t;
      * of type 'int' and is compatible with POSIX I/O calls.
      */
 #define H5FD_FEAT_POSIX_COMPAT_HANDLE   0x00000080
+    /*
+     * Defining the H5FD_FEAT_HAS_MPI for a VFL driver means that
+     * the driver makes use of MPI communication and code may retrieve
+     * communicator/rank information from it
+     */
+#define H5FD_FEAT_HAS_MPI               0x00000100
+    /*
+     * Defining the H5FD_FEAT_ALLOCATE_EARLY for a VFL driver will force
+     * the library to use the H5D_ALLOC_TIME_EARLY on dataset create
+     * instead of the default H5D_ALLOC_TIME_LATE
+     */
+#define H5FD_FEAT_ALLOCATE_EARLY        0x00000200
     /* 
      * Defining the H5FD_FEAT_ALLOW_FILE_IMAGE for a VFL driver means that
      * the driver is able to use a file image in the fapl as the initial
@@ -190,7 +202,6 @@ typedef enum H5F_mem_t	H5FD_mem_t;
      */
 #define H5FD_FEAT_CAN_USE_FILE_IMAGE_CALLBACKS 0x00000800
 
-
 /* Forward declaration */
 typedef struct H5FD_t H5FD_t;
 
diff --git a/src/H5FDsec2.c b/src/H5FDsec2.c
index 952389e..a21fff8 100644
--- a/src/H5FDsec2.c
+++ b/src/H5FDsec2.c
@@ -687,9 +687,6 @@ H5FD_sec2_read(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t UNUSED dxpl_id,
         HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "addr undefined, addr = %llu", (unsigned long long)addr)
     if(REGION_OVERFLOW(addr, size))
         HGOTO_ERROR(H5E_ARGS, H5E_OVERFLOW, FAIL, "addr overflow, addr = %llu", (unsigned long long)addr)
-    if((addr + size) > file->eoa)
-        HGOTO_ERROR(H5E_ARGS, H5E_OVERFLOW, FAIL, "addr overflow, addr = %llu, size=%lu, eoa=%llu", 
-                    (unsigned long long)addr, size, (unsigned long long)file->eoa)
 
     /* Seek to the correct location */
     if(addr != file->pos || OP_READ != file->op) {
@@ -785,8 +782,6 @@ H5FD_sec2_write(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t UNUSED dxpl_id,
         HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "addr undefined, addr = %llu", (unsigned long long)addr)
     if(REGION_OVERFLOW(addr, size))
         HGOTO_ERROR(H5E_ARGS, H5E_OVERFLOW, FAIL, "addr overflow, addr = %llu, size = %llu", (unsigned long long)addr, (unsigned long long)size)
-    if((addr + size) > file->eoa)
-        HGOTO_ERROR(H5E_ARGS, H5E_OVERFLOW, FAIL, "addr overflow, addr = %llu, size = %llu, eoa = %llu", (unsigned long long)addr, (unsigned long long)size, (unsigned long long)file->eoa)
 
     /* Seek to the correct location */
     if(addr != file->pos || OP_WRITE != file->op) {
diff --git a/src/H5FDstdio.c b/src/H5FDstdio.c
index d182185..f85ab34 100644
--- a/src/H5FDstdio.c
+++ b/src/H5FDstdio.c
@@ -797,8 +797,6 @@ H5FD_stdio_read(H5FD_t *_file, H5FD_mem_t type, hid_t dxpl_id, haddr_t addr, siz
         H5Epush_ret (func, H5E_ERR_CLS, H5E_IO, H5E_OVERFLOW, "file address overflowed", -1)
     if (REGION_OVERFLOW(addr, size))
         H5Epush_ret (func, H5E_ERR_CLS, H5E_IO, H5E_OVERFLOW, "file address overflowed", -1)
-    if((addr + size) > file->eoa)
-        H5Epush_ret(func, H5E_ERR_CLS, H5E_IO, H5E_OVERFLOW, "file address overflowed", -1)
 
     /* Check easy cases */
     if (0 == size)
@@ -904,8 +902,6 @@ H5FD_stdio_write(H5FD_t *_file, H5FD_mem_t type, hid_t dxpl_id, haddr_t addr,
         H5Epush_ret (func, H5E_ERR_CLS, H5E_IO, H5E_OVERFLOW, "file address overflowed", -1)
     if (REGION_OVERFLOW(addr, size))
         H5Epush_ret (func, H5E_ERR_CLS, H5E_IO, H5E_OVERFLOW, "file address overflowed", -1)
-    if (addr+size > file->eoa)
-        H5Epush_ret (func, H5E_ERR_CLS, H5E_IO, H5E_OVERFLOW, "file address overflowed", -1)
 
     /* Seek to the correct file position. */
     if ((file->op != H5FD_STDIO_OP_WRITE && file->op != H5FD_STDIO_OP_SEEK) ||
diff --git a/src/H5Fint.c b/src/H5Fint.c
index 4e8fe65..e7726eb 100644
--- a/src/H5Fint.c
+++ b/src/H5Fint.c
@@ -693,7 +693,7 @@ H5F_new(H5F_file_t *shared, unsigned flags, hid_t fcpl_id, hid_t fapl_id, H5FD_t
          *      merged into the trunk and journaling is enabled, at least until
          *      we make it work. - QAK)
          */
-        f->shared->use_tmp_space = !(IS_H5FD_MPI(f));
+        f->shared->use_tmp_space = !H5F_HAS_FEATURE(f, H5FD_FEAT_HAS_MPI);
 
 	/*
 	 * Create a metadata cache with the specified number of elements.
diff --git a/src/H5Fmpi.c b/src/H5Fmpi.c
index 4d3ca34..39b8dfa 100644
--- a/src/H5Fmpi.c
+++ b/src/H5Fmpi.c
@@ -208,8 +208,8 @@ H5Fset_mpi_atomicity(hid_t file_id, hbool_t flag)
         HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "not a file ID")
 
     /* Check VFD */
-    if(!IS_H5FD_MPIO(file))
-        HGOTO_ERROR(H5E_FILE, H5E_BADVALUE, FAIL, "incorrect VFL driver, must use MPI-I/O driver")
+    if(!H5F_HAS_FEATURE(file, H5FD_FEAT_HAS_MPI))
+        HGOTO_ERROR(H5E_FILE, H5E_BADVALUE, FAIL, "incorrect VFL driver, does not support MPI atomicity mode")
 
     /* set atomicity value */
     if (H5FD_set_mpio_atomicity (file->shared->lf, flag) < 0)
@@ -248,8 +248,8 @@ H5Fget_mpi_atomicity(hid_t file_id, hbool_t *flag)
         HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "not a file ID")
 
     /* Check VFD */
-    if(!IS_H5FD_MPIO(file))
-        HGOTO_ERROR(H5E_FILE, H5E_BADVALUE, FAIL, "incorrect VFL driver, must use MPI-I/O driver")
+    if(!H5F_HAS_FEATURE(file, H5FD_FEAT_HAS_MPI))
+        HGOTO_ERROR(H5E_FILE, H5E_BADVALUE, FAIL, "incorrect VFL driver, does not support MPI atomicity mode")
 
     /* get atomicity value */
     if (H5FD_get_mpio_atomicity (file->shared->lf, flag) < 0)
diff --git a/src/H5Fprivate.h b/src/H5Fprivate.h
index 80266fd..d8014c1 100644
--- a/src/H5Fprivate.h
+++ b/src/H5Fprivate.h
@@ -428,6 +428,8 @@
                                                     if it is changed, the code
                                                     must compensate. -QAK
                                                  */
+#define HDF5_BTREE_IK_MAX_ENTRIES       65536 	/* 2^16 - 2 bytes for storing entries (children) */
+						/* See format specification on version 1 B-trees */
 
 /* Macros to define signatures of all objects in the file */
 
diff --git a/src/H5Gdeprec.c b/src/H5Gdeprec.c
index 81682e9..df691f4 100644
--- a/src/H5Gdeprec.c
+++ b/src/H5Gdeprec.c
@@ -261,7 +261,7 @@ H5Gcreate1(hid_t loc_id, const char *name, size_t size_hint)
             HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "can't get group info")
 
         /* Set the non-default local heap size hint */
-        ginfo.lheap_size_hint = size_hint;
+        H5_ASSIGN_OVERFLOW(ginfo.lheap_size_hint, size_hint, size_t, uint32_t);
         if(H5P_set(gc_plist, H5G_CRT_GROUP_INFO_NAME, &ginfo) < 0)
             HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't set group info")
     } /* end if */
diff --git a/src/H5HG.c b/src/H5HG.c
index a5d779e..a861042 100644
--- a/src/H5HG.c
+++ b/src/H5HG.c
@@ -182,7 +182,7 @@ HDmemset(heap->chunk, 0, size);
      * which was always at least H5HG_ALIGNMENT aligned then we could just
      * align the pointer, but this might not be the case.
      */
-    n = H5HG_ALIGN(p - heap->chunk) - (p - heap->chunk);
+    n = H5HG_ALIGN(p - heap->chunk) - (size_t)(p - heap->chunk);
 #ifdef OLD_WAY
 /* Don't bother zeroing out the rest of the info in the heap -QAK */
     HDmemset(p, 0, n);
@@ -776,7 +776,7 @@ H5HG_remove (H5F_t *f, hid_t dxpl_id, H5HG_t *hobj)
     else
         heap->obj[0].size += need;
     HDmemmove(obj_start, obj_start + need,
-	       heap->size - ((obj_start + need) - heap->chunk));
+              heap->size - (size_t)((obj_start + need) - heap->chunk));
     if(heap->obj[0].size >= H5HG_SIZEOF_OBJHDR(f)) {
         p = heap->obj[0].begin;
         UINT16ENCODE(p, 0); /*id*/
diff --git a/src/H5HGpkg.h b/src/H5HGpkg.h
index 5d4234f..f3546a2 100644
--- a/src/H5HGpkg.h
+++ b/src/H5HGpkg.h
@@ -77,8 +77,7 @@ H5FL_BLK_EXTERN(gheap_chunk);
  * largest data type is eight bytes.
  */
 #define H5HG_ALIGNMENT	8
-#define H5HG_ALIGN(X)	(H5HG_ALIGNMENT*(((X)+H5HG_ALIGNMENT-1)/	      \
-					 H5HG_ALIGNMENT))
+#define H5HG_ALIGN(X)	(H5HG_ALIGNMENT*(((X)+H5HG_ALIGNMENT-1)/H5HG_ALIGNMENT))
 #define H5HG_ISALIGNED(X) ((X)==H5HG_ALIGN(X))
 
 /*
@@ -86,20 +85,20 @@ H5FL_BLK_EXTERN(gheap_chunk);
  * that the stuff that follows the header is aligned.
  */
 #define H5HG_SIZEOF_HDR(f)						      \
-    H5HG_ALIGN(4 +			/*magic number		*/	      \
-	       1 +			/*version number	*/	      \
-	       3 +			/*reserved		*/	      \
-	       H5F_SIZEOF_SIZE(f))	/*collection size	*/
+    (size_t)H5HG_ALIGN(4 +			/*magic number		*/ \
+                       1 +			/*version number	*/ \
+                       3 +			/*reserved		*/ \
+                       H5F_SIZEOF_SIZE(f))	/*collection size	*/
 
 /*
  * The overhead associated with each object in the heap, always a multiple of
  * the alignment so that the stuff that follows the header is aligned.
  */
 #define H5HG_SIZEOF_OBJHDR(f)						      \
-    H5HG_ALIGN(2 +			/*object id number	*/	      \
-	       2 +			/*reference count	*/	      \
-	       4 +			/*reserved		*/	      \
-	       H5F_SIZEOF_SIZE(f))	/*object data size	*/
+    (size_t)H5HG_ALIGN(2 +			/*object id number	*/ \
+                       2 +			/*reference count	*/ \
+                       4 +			/*reserved		*/ \
+                       H5F_SIZEOF_SIZE(f))	/*object data size	*/
 
 /*
  * The initial guess for the number of messages in a collection.  We assume
@@ -108,8 +107,8 @@ H5FL_BLK_EXTERN(gheap_chunk);
  * some overhead and each message has some overhead.  The `+2' accounts for
  * rounding and for the free space object.
  */
-#define H5HG_NOBJS(f,z) (int)((((z)-H5HG_SIZEOF_HDR(f))/		      \
-			       H5HG_SIZEOF_OBJHDR(f)+2))
+#define H5HG_NOBJS(f,z) ((((z)-H5HG_SIZEOF_HDR(f))/		      \
+                          H5HG_SIZEOF_OBJHDR(f)+2))
 
 
 /****************************/
diff --git a/src/H5I.c b/src/H5I.c
index 38c1100..48451b9 100644
--- a/src/H5I.c
+++ b/src/H5I.c
@@ -1031,6 +1031,7 @@ H5Iobject_verify(hid_t id, H5I_type_t id_type)
     void * ret_value;                      /* Return value */
 
     FUNC_ENTER_API(NULL)
+    H5TRACE2("*x", "iIt", id, id_type);
 
     if(H5I_IS_LIB_TYPE(id_type))
         HGOTO_ERROR(H5E_ATOM, H5E_BADGROUP, NULL, "cannot call public function on library type")
@@ -1171,6 +1172,7 @@ H5Iremove_verify(hid_t id, H5I_type_t id_type)
     void * ret_value;                      /* Return value */
 
     FUNC_ENTER_API(NULL)
+    H5TRACE2("*x", "iIt", id, id_type);
 
     if(H5I_IS_LIB_TYPE(id_type))
         HGOTO_ERROR(H5E_ATOM, H5E_BADGROUP, NULL, "cannot call public function on library type")
@@ -2052,6 +2054,7 @@ H5Isearch(H5I_type_t type, H5I_search_func_t func, void *key)
     void *ret_value;            /* Return value */
 
     FUNC_ENTER_API(NULL)
+    H5TRACE3("*x", "Itx*x", type, func, key);
 
     /* Check arguments */
     if(H5I_IS_LIB_TYPE(type))
diff --git a/src/H5MFaggr.c b/src/H5MFaggr.c
index 6a799da..c971355 100644
--- a/src/H5MFaggr.c
+++ b/src/H5MFaggr.c
@@ -46,7 +46,7 @@
 /******************/
 /* Local Typedefs */
 /******************/
-#define EXTEND_THRESHOLD .10
+#define EXTEND_THRESHOLD 0.10F
 
 
 /********************/
diff --git a/src/H5MM.c b/src/H5MM.c
index 4f1f392..c5450fe 100644
--- a/src/H5MM.c
+++ b/src/H5MM.c
@@ -31,93 +31,107 @@
 #include "H5Eprivate.h"
 #include "H5MMprivate.h"
 
-#ifndef NDEBUG
 

 /*-------------------------------------------------------------------------
- * Function:	H5MM_malloc
+ * Function:    H5MM_malloc
  *
- * Purpose:	Just like the POSIX version of malloc(3). This routine
- *		specifically checks for allocations of 0 bytes and fails
- *              in that case.  This routine is not called when NDEBUG is
- *		defined.
+ * Purpose:     Similar to the C89 version of malloc().
  *
- * Return:	Success:	Ptr to new memory
+ *              On size of 0, we return a NULL pointer instead of the
+ *              standard-allowed 'special' pointer since that's more
+ *              difficult to check as a return value. This is still
+ *              considered an error condition since allocations of zero
+ *              bytes usually indicate problems.
+ *  
+ * Return:  Success:    Pointer new memory
  *
- *		Failure:	NULL
+ *          Failure:	NULL
  *
- * Programmer:	Quincey Koziol
- *		koziol at ncsa.uiuc.edu
- *		Nov  8 2003
- *
- * Modifications:
+ * Programmer:  Quincey Koziol
+ *              Nov  8 2003
  *
  *-------------------------------------------------------------------------
  */
 void *
 H5MM_malloc(size_t size)
 {
+    void *ret_value;
+
+    HDassert(size);
+
     /* Use FUNC_ENTER_NOAPI_NOINIT_NOERR here to avoid performance issues */
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
-    HDassert(size);
+    if(size)
+        ret_value = HDmalloc(size);
+    else
+        ret_value = NULL;
 
-    FUNC_LEAVE_NOAPI(HDmalloc(size));
+    FUNC_LEAVE_NOAPI(ret_value);
 } /* end H5MM_malloc() */
 
 

 /*-------------------------------------------------------------------------
- * Function:	H5MM_calloc
+ * Function:    H5MM_calloc
  *
- * Purpose:	Similar to the POSIX version of calloc(3), except this routine
- *              just takes a 'size' parameter. This routine
- *		specifically checks for allocations of 0 bytes and fails
- *              in that case.  This routine is not called when NDEBUG is
- *		defined.
+ * Purpose:     Similar to the C89 version of calloc(), except this
+ *              routine just takes a 'size' parameter.
  *
- * Return:	Success:	Ptr to new memory
+ *              On size of 0, we return a NULL pointer instead of the
+ *              standard-allowed 'special' pointer since that's more
+ *              difficult to check as a return value. This is still
+ *              considered an error condition since allocations of zero
+ *              bytes usually indicate problems.
  *
- *		Failure:	NULL
  *
- * Programmer:	Quincey Koziol
- *		koziol at ncsa.uiuc.edu
- *		Nov  8 2003
+ * Return:  Success:    Pointer new memory
  *
- * Modifications:
+ *          Failure:	NULL
+ *
+ * Programmer:	Quincey Koziol
+ *              Nov  8 2003
  *
  *-------------------------------------------------------------------------
  */
 void *
 H5MM_calloc(size_t size)
 {
+    void *ret_value;
+
+    HDassert(size);
+
     /* Use FUNC_ENTER_NOAPI_NOINIT_NOERR here to avoid performance issues */
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
-    HDassert(size);
+    if(size)
+        ret_value = HDcalloc((size_t)1, size);
+    else
+        ret_value = NULL;
 
-    FUNC_LEAVE_NOAPI(HDcalloc(1,size));
+    FUNC_LEAVE_NOAPI(ret_value);
 } /* end H5MM_calloc() */
-#endif /* NDEBUG */
 
 

 /*-------------------------------------------------------------------------
- * Function:	H5MM_realloc
+ * Function:    H5MM_realloc
  *
- * Purpose:	Just like the POSIX version of realloc(3). Specifically, the
- *		following calls are equivalent
+ * Purpose:     Similar semantics as C89's realloc(). Specifically, the
+ *              following calls are equivalent:
  *
- *		H5MM_realloc (NULL, size) <==> H5MM_malloc (size)
- *		H5MM_realloc (ptr, 0)	  <==> H5MM_xfree (ptr)
- *		H5MM_realloc (NULL, 0)	  <==> NULL
+ *              H5MM_realloc(NULL, size)    <==> H5MM_malloc(size)
+ *              H5MM_realloc(ptr, 0)        <==> H5MM_xfree(ptr)
+ *              H5MM_realloc(NULL, 0)       <==> NULL
  *
- * Return:	Success:	Ptr to new memory or NULL if the memory
- *				was freed or HDrealloc couldn't allocate
- *				memory.
+ *              Note that the (NULL, 0) combination is undefined behavior
+ *              in the C standard.
  *
- *		Failure:	NULL
+ * Return:  Success:    Ptr to new memory if size > 0
+ *                      NULL if size is zero
  *
- * Programmer:	Robb Matzke
- *		matzke at llnl.gov
- *		Jul 10 1997
+ *          Failure:    NULL (input buffer is unchanged on failure)
+ *
+ * Programmer:  Robb Matzke
+ *              Jul 10 1997
  *
  *-------------------------------------------------------------------------
  */
@@ -129,16 +143,19 @@ H5MM_realloc(void *mem, size_t size)
     /* Use FUNC_ENTER_NOAPI_NOINIT_NOERR here to avoid performance issues */
     FUNC_ENTER_NOAPI_NOINIT_NOERR
 
-    if(NULL == mem) {
-	if(0 == size)
+    HDassert(mem || size);
+
+    if(NULL == mem && 0 == size) {  
+        /* Not defined in the standard, return NULL */
+        ret_value = NULL;
+    }
+    else {
+        ret_value = HDrealloc(mem, size);
+
+        /* Some platforms do not return NULL if size is zero. */
+        if(0 == size)
             ret_value = NULL;
-        else
-            ret_value = H5MM_malloc(size);
-    } /* end if */
-    else if(0 == size)
-	ret_value = H5MM_xfree(mem);
-    else
-	ret_value = HDrealloc(mem, size);
+    }
 
     FUNC_LEAVE_NOAPI(ret_value)
 } /* end H5MM_realloc() */
diff --git a/src/H5MMprivate.h b/src/H5MMprivate.h
index a3c39f0..0d608b2 100644
--- a/src/H5MMprivate.h
+++ b/src/H5MMprivate.h
@@ -33,19 +33,13 @@
 /* Private headers needed by this file */
 #include "H5private.h"
 
-#ifdef NDEBUG
-#define H5MM_malloc(Z)	HDmalloc(Z)
-#define H5MM_calloc(Z)	HDcalloc((size_t)1,Z)
-#endif /* NDEBUG */
 #define H5MM_free(Z)	HDfree(Z)
 
 /*
  * Library prototypes...
  */
-#ifndef NDEBUG
 H5_DLL void *H5MM_malloc(size_t size);
 H5_DLL void *H5MM_calloc(size_t size);
-#endif /* NDEBUG */
 H5_DLL void *H5MM_realloc(void *mem, size_t size);
 H5_DLL char *H5MM_xstrdup(const char *s);
 H5_DLL char *H5MM_strdup(const char *s);
diff --git a/src/H5Oalloc.c b/src/H5Oalloc.c
index 5c00fb2..76f392d 100644
--- a/src/H5Oalloc.c
+++ b/src/H5Oalloc.c
@@ -762,7 +762,7 @@ H5O_alloc_new_chunk(H5F_t *f, hid_t dxpl_id, H5O_t *oh, size_t size, size_t *new
     size_t      idx;                    /* Message number */
     uint8_t     *p = NULL;              /*ptr into new chunk            */
     H5O_cont_t  *cont = NULL;           /*native continuation message   */
-    unsigned    chunkno;                /* Chunk allocated */
+    size_t      chunkno;                /* Chunk allocated */
     haddr_t	new_chunk_addr;
     unsigned    u;                      /* Local index variable */
     herr_t      ret_value = SUCCEED;    /* Return value */
diff --git a/src/H5Obogus.c b/src/H5Obogus.c
index cee3199..d930683 100644
--- a/src/H5Obogus.c
+++ b/src/H5Obogus.c
@@ -87,20 +87,20 @@ const H5O_msg_class_t H5O_MSG_BOGUS[1] = {{
  *-------------------------------------------------------------------------
  */
 static void *
-H5O_bogus_decode(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, H5O_t UNUSED *open_oh,
+H5O_bogus_decode(H5F_t *f, hid_t UNUSED dxpl_id, H5O_t UNUSED *open_oh,
     unsigned UNUSED mesg_flags, unsigned UNUSED *ioflags, const uint8_t *p)
 {
     H5O_bogus_t *mesg = NULL;
     void *ret_value;            /* Return value */
 
-    FUNC_ENTER_NOAPI_NOINIT(H5O_bogus_decode)
+    FUNC_ENTER_NOAPI_NOINIT
 
     /* check args */
     HDassert(f);
     HDassert(p);
 
     /* Allocate the bogus message */
-    if(NULL == (mesg = H5MM_calloc(sizeof(H5O_bogus_t))))
+    if(NULL == (mesg = (H5O_bogus_t *)H5MM_calloc(sizeof(H5O_bogus_t))))
 	HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed")
 
     /* decode */
@@ -137,7 +137,7 @@ done:
 static herr_t
 H5O_bogus_encode(H5F_t UNUSED *f, hbool_t UNUSED disable_shared, uint8_t *p, const void UNUSED *mesg)
 {
-    FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5O_bogus_encode)
+    FUNC_ENTER_NOAPI_NOINIT_NOERR
 
     /* check args */
     HDassert(f);
@@ -172,7 +172,7 @@ H5O_bogus_encode(H5F_t UNUSED *f, hbool_t UNUSED disable_shared, uint8_t *p, con
 static size_t
 H5O_bogus_size(const H5F_t UNUSED *f, hbool_t UNUSED disable_shared, const void UNUSED *mesg)
 {
-    FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5O_bogus_size)
+    FUNC_ENTER_NOAPI_NOINIT_NOERR
 
     FUNC_LEAVE_NOAPI(4)
 } /* end H5O_bogus_size() */
@@ -199,7 +199,7 @@ H5O_bogus_debug(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, const void *_mesg, FILE *
 {
     const H5O_bogus_t	*mesg = (const H5O_bogus_t *)_mesg;
 
-    FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5O_bogus_debug)
+    FUNC_ENTER_NOAPI_NOINIT_NOERR
 
     /* check args */
     HDassert(f);
diff --git a/src/H5Ocache.c b/src/H5Ocache.c
index 3056aa7..d51e715 100644
--- a/src/H5Ocache.c
+++ b/src/H5Ocache.c
@@ -1130,7 +1130,7 @@ H5O_chunk_deserialize(H5O_t *oh, haddr_t addr, size_t len, const uint8_t *image,
             HGOTO_ERROR(H5E_OHDR, H5E_CANTLOAD, FAIL, "unknown flag for message")
         if((flags & H5O_MSG_FLAG_SHARED) && (flags & H5O_MSG_FLAG_DONTSHARE))
             HGOTO_ERROR(H5E_OHDR, H5E_CANTLOAD, FAIL, "bad flag combination for message")
-        if((flags & H5O_MSG_FLAG_WAS_UNKNOWN) && (flags & H5O_MSG_FLAG_FAIL_IF_UNKNOWN))
+        if((flags & H5O_MSG_FLAG_WAS_UNKNOWN) && (flags & H5O_MSG_FLAG_FAIL_IF_UNKNOWN_AND_OPEN_FOR_WRITE))
             HGOTO_ERROR(H5E_OHDR, H5E_CANTLOAD, FAIL, "bad flag combination for message")
         if((flags & H5O_MSG_FLAG_WAS_UNKNOWN) && !(flags & H5O_MSG_FLAG_MARK_IF_UNKNOWN))
             HGOTO_ERROR(H5E_OHDR, H5E_CANTLOAD, FAIL, "bad flag combination for message")
@@ -1206,7 +1206,8 @@ H5O_chunk_deserialize(H5O_t *oh, haddr_t addr, size_t len, const uint8_t *image,
                 oh->mesg[mesgno].type = H5O_msg_class_g[H5O_UNKNOWN_ID];
 
                 /* Check for "fail if unknown" message flag */
-                if(flags & H5O_MSG_FLAG_FAIL_IF_UNKNOWN)
+                if((udata->file_intent & H5F_ACC_RDWR) && 
+                   (flags & H5O_MSG_FLAG_FAIL_IF_UNKNOWN_AND_OPEN_FOR_WRITE))
                     HGOTO_ERROR(H5E_OHDR, H5E_BADMESG, FAIL, "unknown message with 'fail if unknown' flag found")
                 /* Check for "mark if unknown" message flag, etc. */
                 else if((flags & H5O_MSG_FLAG_MARK_IF_UNKNOWN) &&
diff --git a/src/H5Odbg.c b/src/H5Odbg.c
index b91a51a..0531a90 100644
--- a/src/H5Odbg.c
+++ b/src/H5Odbg.c
@@ -466,7 +466,7 @@ H5O_debug_real(H5F_t *f, hid_t dxpl_id, H5O_t *oh, haddr_t addr, FILE *stream, i
                 HDfprintf(stream, "%sDS", (flag_printed ? ", " : "<"));
                 flag_printed = TRUE;
             } /* end if */
-            if(oh->mesg[i].flags & H5O_MSG_FLAG_FAIL_IF_UNKNOWN) {
+            if(oh->mesg[i].flags & H5O_MSG_FLAG_FAIL_IF_UNKNOWN_AND_OPEN_FOR_WRITE) {
                 HDfprintf(stream, "%sFIU", (flag_printed ? ", " : "<"));
                 flag_printed = TRUE;
             } /* end if */
diff --git a/src/H5Omtime.c b/src/H5Omtime.c
index e719e08..a3703b5 100644
--- a/src/H5Omtime.c
+++ b/src/H5Omtime.c
@@ -194,8 +194,8 @@ H5O_mtime_decode(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, H5O_t UNUSED *open_oh,
 
     /* decode */
     for(i = 0; i < 14; i++)
-	if(!HDisdigit(p[i]))
-	    HGOTO_ERROR(H5E_OHDR, H5E_CANTINIT, NULL, "badly formatted modification time message")
+        if(!HDisdigit(p[i]))
+            HGOTO_ERROR(H5E_OHDR, H5E_CANTINIT, NULL, "badly formatted modification time message")
 
     /*
      * Convert YYYYMMDDhhmmss UTC to a time_t.  This is a little problematic
@@ -213,36 +213,14 @@ H5O_mtime_decode(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, H5O_t UNUSED *open_oh,
     tm.tm_sec = (p[12]-'0')*10 + (p[13]-'0');
     tm.tm_isdst = -1; /*figure it out*/
     if((time_t)-1 == (the_time = HDmktime(&tm)))
-	HGOTO_ERROR(H5E_OHDR, H5E_CANTINIT, NULL, "badly formatted modification time message")
+        HGOTO_ERROR(H5E_OHDR, H5E_CANTINIT, NULL, "badly formatted modification time message")
 
 #if defined(H5_HAVE_TM_GMTOFF)
-    /* FreeBSD, OSF 4.0 */
+    /* BSD-like systems */
     the_time += tm.tm_gmtoff;
-#elif defined(H5_HAVE___TM_GMTOFF)
-    /* Linux libc-4 */
-    the_time += tm.__tm_gmtoff;
 #elif defined(H5_HAVE_TIMEZONE)
-    /* Linux libc-5 */
-    the_time -= timezone - (tm.tm_isdst?3600:0);
-#elif defined(H5_HAVE_BSDGETTIMEOFDAY) && defined(H5_HAVE_STRUCT_TIMEZONE)
-    /* Irix5.3 */
-    {
-        struct timezone tz;
-
-        if(HDBSDgettimeofday(NULL, &tz) < 0)
-            HGOTO_ERROR(H5E_OHDR, H5E_CANTINIT, NULL, "unable to obtain local timezone information")
-        the_time -= tz.tz_minuteswest * 60 - (tm.tm_isdst ? 3600 : 0);
-    }
-#elif defined(H5_HAVE_GETTIMEOFDAY) && defined(H5_HAVE_STRUCT_TIMEZONE) && defined(H5_GETTIMEOFDAY_GIVES_TZ)
-    {
-	struct timezone tz;
-	struct timeval tv;  /* Used as a placebo; some systems don't like NULL */
-
-	if(HDgettimeofday(&tv, &tz) < 0)
-	    HGOTO_ERROR(H5E_OHDR, H5E_CANTINIT, NULL, "unable to obtain local timezone information")
-
-	the_time -= tz.tz_minuteswest * 60 - (tm.tm_isdst ? 3600 : 0);
-    }
+    /* GNU/Linux systems */
+    the_time -= timezone - (tm.tm_isdst ? 3600 : 0);
 #else
     /*
      * The catch-all.  If we can't convert a character string universal
@@ -251,14 +229,12 @@ H5O_mtime_decode(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, H5O_t UNUSED *open_oh,
      * only way a user can get the modification time is from our internal
      * query routines, which can gracefully recover.
      */
-
-    /* Irix64 */
     HGOTO_ERROR(H5E_OHDR, H5E_CANTINIT, NULL, "unable to obtain local timezone information")
 #endif
 
     /* The return value */
     if(NULL == (mesg = H5FL_MALLOC(time_t)))
-	HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed")
+        HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed")
     *mesg = the_time;
 
     /* Set return value */
diff --git a/src/H5Oprivate.h b/src/H5Oprivate.h
index ae31932..94ba6a0 100644
--- a/src/H5Oprivate.h
+++ b/src/H5Oprivate.h
@@ -70,11 +70,11 @@ typedef struct H5O_t H5O_t;
 #define H5O_MSG_FLAG_CONSTANT	0x01u
 #define H5O_MSG_FLAG_SHARED	0x02u
 #define H5O_MSG_FLAG_DONTSHARE	0x04u
-#define H5O_MSG_FLAG_FAIL_IF_UNKNOWN 0x08u
+#define H5O_MSG_FLAG_FAIL_IF_UNKNOWN_AND_OPEN_FOR_WRITE 0x08u
 #define H5O_MSG_FLAG_MARK_IF_UNKNOWN 0x10u
 #define H5O_MSG_FLAG_WAS_UNKNOWN 0x20u
 #define H5O_MSG_FLAG_SHAREABLE  0x40u
-#define H5O_MSG_FLAG_BITS	(H5O_MSG_FLAG_CONSTANT|H5O_MSG_FLAG_SHARED|H5O_MSG_FLAG_DONTSHARE|H5O_MSG_FLAG_FAIL_IF_UNKNOWN|H5O_MSG_FLAG_MARK_IF_UNKNOWN|H5O_MSG_FLAG_WAS_UNKNOWN|H5O_MSG_FLAG_SHAREABLE)
+#define H5O_MSG_FLAG_BITS	(H5O_MSG_FLAG_CONSTANT|H5O_MSG_FLAG_SHARED|H5O_MSG_FLAG_DONTSHARE|H5O_MSG_FLAG_FAIL_IF_UNKNOWN_AND_OPEN_FOR_WRITE|H5O_MSG_FLAG_MARK_IF_UNKNOWN|H5O_MSG_FLAG_WAS_UNKNOWN|H5O_MSG_FLAG_SHAREABLE)
 
 /* Flags for updating messages */
 #define H5O_UPDATE_TIME         0x01u
diff --git a/src/H5Osdspace.c b/src/H5Osdspace.c
index 9ca8436..875cd56 100644
--- a/src/H5Osdspace.c
+++ b/src/H5Osdspace.c
@@ -308,7 +308,7 @@ H5O_sdspace_copy(const void *_mesg, void *_dest)
 
     /* check args */
     HDassert(mesg);
-    if(!dest && NULL == (dest = H5FL_MALLOC(H5S_extent_t)))
+    if(!dest && NULL == (dest = H5FL_CALLOC(H5S_extent_t)))
 	HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed")
 
     /* Copy extent information */
@@ -463,7 +463,7 @@ H5O_sdspace_pre_copy_file(H5F_t UNUSED *file_src, const void *mesg_src,
      */
     if(udata) {
         /* Allocate copy of dataspace extent */
-        if(NULL == (udata->src_space_extent = H5FL_MALLOC(H5S_extent_t)))
+        if(NULL == (udata->src_space_extent = H5FL_CALLOC(H5S_extent_t)))
             HGOTO_ERROR(H5E_DATASPACE, H5E_NOSPACE, FAIL, "dataspace extent allocation failed")
 
         /* Create a copy of the dataspace extent */
diff --git a/src/H5P.c b/src/H5P.c
index 9011dc9..fc19dd1 100644
--- a/src/H5P.c
+++ b/src/H5P.c
@@ -1512,6 +1512,7 @@ H5Pget_class_name(hid_t pclass_id)
     char *ret_value;       /* return value */
 
     FUNC_ENTER_API(NULL)
+    H5TRACE1("*s", "i", pclass_id);
 
     /* Check arguments. */
     if(NULL == (pclass = (H5P_genclass_t *)H5I_object_verify(pclass_id, H5I_GENPROP_CLS)))
diff --git a/src/H5PL.c b/src/H5PL.c
index 6aa4ec6..d691eb5 100644
--- a/src/H5PL.c
+++ b/src/H5PL.c
@@ -23,13 +23,12 @@
 /***********/
 /* Headers */
 /***********/
-#include "H5private.h"		/* Generic Functions			*/
-#include "H5Eprivate.h"		/* Error handling		  	*/
-#include "H5MMprivate.h"	/* Memory management			*/
-#include "H5PLprivate.h"	/* Plugin       			*/
-#include "H5Zprivate.h"		/* Filter pipeline			*/
+#include "H5private.h"      /* Generic Functions            */
+#include "H5Eprivate.h"     /* Error handling               */
+#include "H5MMprivate.h"    /* Memory management            */
+#include "H5PLprivate.h"    /* Plugin                       */
+#include "H5Zprivate.h"     /* Filter pipeline              */
 
-#ifndef H5_VMS
 
 /****************/
 /* Local Macros */
@@ -41,7 +40,19 @@
 /* Macros for supporting 
  * both Windows and Unix */
 /****************************/
-/* Windows support */
+/* Windows support
+ *
+ * SPECIAL WINDOWS NOTE
+ *
+ * Some of the Win32 API functions expand to fooA or fooW depending on
+ * whether UNICODE or _UNICODE are defined. You MUST explicitly use
+ * the A version of the functions to force char * behavior until we
+ * work out a scheme for proper Windows Unicode support.
+ *
+ * If you do not do this, people will be unable to incorporate our
+ * source code into their own CMake builds if they define UNICODE.
+ */
+
 #ifdef H5_HAVE_WIN32_API
 
 #define H5PL_PATH_SEPARATOR     ";"
@@ -50,7 +61,7 @@
 #define H5PL_HANDLE HINSTANCE
 
 /* Get a handle to a plugin library.  Windows: TEXT macro handles Unicode strings */
-#define H5PL_OPEN_DLIB(S) LoadLibraryEx(TEXT(S), NULL, LOAD_WITH_ALTERED_SEARCH_PATH)
+#define H5PL_OPEN_DLIB(S) LoadLibraryExA(S, NULL, LOAD_WITH_ALTERED_SEARCH_PATH)
 
 /* Get the address of a symbol in dynamic library */
 #define H5PL_GET_LIB_FUNC(H,N) GetProcAddress(H,N)
@@ -86,6 +97,7 @@ typedef const void *(__cdecl *H5PL_get_plugin_info_t)(void);
 typedef const void *(*H5PL_get_plugin_info_t)(void);
 #endif /* H5_HAVE_WIN32_API */
 
+/* Whether to preload pathnames for plugin libraries */
 #define H5PL_DEFAULT_PATH       H5_DEFAULT_PLUGINDIR
 
 /* Special symbol to indicate no plugin loading */
@@ -97,9 +109,9 @@ typedef const void *(*H5PL_get_plugin_info_t)(void);
 
 /* Type for the list of info for opened plugin libraries */
 typedef struct H5PL_table_t {
-    H5PL_type_t pl_type;			/* plugin type	     */
-    int         pl_id;                          /* ID for the plugin */
-    H5PL_HANDLE handle;			/* plugin handle     */
+    H5PL_type_t pl_type;            /* plugin type          */
+    int         pl_id;              /* ID for the plugin    */
+    H5PL_HANDLE handle;             /* plugin handle        */
 } H5PL_table_t;
 
 
@@ -129,8 +141,8 @@ static herr_t H5PL__close(H5PL_HANDLE handle);
 /*******************/
 
 /* Table for opened plugin libraries */
-static size_t		H5PL_table_alloc_g = 0;
-static size_t		H5PL_table_used_g = 0;
+static size_t           H5PL_table_alloc_g = 0;
+static size_t           H5PL_table_used_g = 0;
 static H5PL_table_t     *H5PL_table_g = NULL;
 
 /* Table of location paths for plugin libraries */
@@ -138,8 +150,8 @@ static char             *H5PL_path_table_g[H5PL_MAX_PATH_NUM];
 static size_t           H5PL_num_paths_g = 0;
 static hbool_t          H5PL_path_found_g = FALSE;
 
-/* Whether to preload pathnames for plugin libraries */
-static hbool_t          H5PL_no_plugin_g = FALSE;
+/* Enable all plugin libraries */
+static unsigned int     H5PL_plugin_g = H5PL_ALL_PLUGIN;
 
 

 /*--------------------------------------------------------------------------
@@ -166,7 +178,7 @@ H5PL__init_interface(void)
     if(NULL != (preload_path = HDgetenv("HDF5_PLUGIN_PRELOAD"))) {
         /* Special symbal "::" means no plugin during data reading. */
         if(!HDstrcmp(preload_path, H5PL_NO_PLUGIN))
-            H5PL_no_plugin_g = TRUE;
+            H5PL_plugin_g = 0;
     } /* end if */
 
     FUNC_LEAVE_NOAPI(SUCCEED)
@@ -174,46 +186,83 @@ H5PL__init_interface(void)
 
 

 /*-------------------------------------------------------------------------
- * Function:	H5PL_no_plugin
+ * Function: H5PLset_loading_state
  *
- * Purpose:	Quick way for filter module to query whether to load plugin 
+ * Purpose: Control the loading of dynamic plugin types.
  *
- * Return:	TRUE:	No plugin loading during data reading
+ * This function will not allow plugin types if the pathname from the HDF5_PLUGIN_PRELOAD
+ * environment variable is set to the special "::" string.
  *
- * 		FALSE:	Load plugin during data reading
+ * plugin bit = 0, will prevent the use of that dynamic plugin type.
+ * plugin bit = 1, will allow the use of that dynamic plugin type.
  *
- * Programmer:	Raymond Lu
- *              20 February 2013
+ * H5PL_TYPE_FILTER changes just dynamic filters
+ * A H5PL_ALL_PLUGIN will enable all dynamic plugin types
+ * A zero value will disable all dynamic plugin types
+ *
+ * Return: Non-negative or success
  *
  *-------------------------------------------------------------------------
  */
-htri_t
-H5PL_no_plugin(void)
+herr_t
+H5PLset_loading_state(unsigned int plugin_type)
 {
-    htri_t ret_value;
+    char *preload_path;
+    herr_t ret_value = SUCCEED; /* Return value */
+    FUNC_ENTER_API(FAIL)
+    H5TRACE1("e", "Iu", plugin_type);
+    /* change the bit value of the requested plugin type(s) */
+    H5PL_plugin_g = plugin_type;
+    /* check if special ENV variable is set and disable all plugin types */
+    if(NULL != (preload_path = HDgetenv("HDF5_PLUGIN_PRELOAD"))) {
+        /* Special symbol "::" means no plugin during data reading. */
+        if(!HDstrcmp(preload_path, H5PL_NO_PLUGIN))
+            H5PL_plugin_g = 0;
+    }
+done:
+    FUNC_LEAVE_API(ret_value)
+} /* end H5PLset_loading_state() */
 
-    FUNC_ENTER_NOAPI(FAIL)
 
-    ret_value = (htri_t)H5PL_no_plugin_g;
+/*-------------------------------------------------------------------------
+ * Function: H5PLget_loading_state
+ *
+ * Purpose: Query state of the loading of dynamic plugin types.
+ *
+ * This function will return the state of the global flag.
+ *
+ * Return: Zero if all plugin types are disabled, negative if all
+ * plugin types are enabled, positive if one or more of the plugin types are enabled.
+ *
+ *-------------------------------------------------------------------------
+ */
+herr_t
+H5PLget_loading_state(unsigned int *plugin_type)
+{
+    herr_t ret_value = SUCCEED; /* Return value */
+    FUNC_ENTER_API(FAIL)
+    H5TRACE1("e", "*Iu", plugin_type);
 
-done:
-    FUNC_LEAVE_NOAPI(ret_value)
-} /* end H5PL_no_plugin() */
+    if(plugin_type)
+        *plugin_type = H5PL_plugin_g;
+    done:
+    FUNC_LEAVE_API(ret_value)
+} /* end H5PLget_loading_state() */
 
 

 /*-------------------------------------------------------------------------
- * Function:	H5PL_term_interface
+ * Function:    H5PL_term_interface
  *
- * Purpose:	Terminate the H5PL interface: release all memory, reset all
- *		global variables to initial values. This only happens if all
- *		types have been destroyed from other interfaces.
+ * Purpose:     Terminate the H5PL interface: release all memory, reset all
+ *              global variables to initial values. This only happens if all
+ *              types have been destroyed from other interfaces.
  *
- * Return:	Success:	Positive if any action was taken that might
- *				affect some other interface; zero otherwise.
+ * Return:      Success:    Positive if any action was taken that might
+ *                          affect some other interface; zero otherwise.
  *
- * 		Failure:	Negative.
+ *              Failure:    Negative.
  *
- * Programmer:	Raymond Lu
+ * Programmer:  Raymond Lu
  *              20 February 2013
  *
  *-------------------------------------------------------------------------
@@ -228,13 +277,13 @@ H5PL_term_interface(void)
     if(H5_interface_initialize_g) {
         size_t u;       /* Local index variable */
 
-	/* Close opened dynamic libraries */
+        /* Close opened dynamic libraries */
         for(u = 0; u < H5PL_table_used_g; u++)
             H5PL__close((H5PL_table_g[u]).handle);
 
-	/* Free the table of dynamic libraries */
-	H5PL_table_g = (H5PL_table_t *)H5MM_xfree(H5PL_table_g);
-	H5PL_table_used_g = H5PL_table_alloc_g = 0;
+        /* Free the table of dynamic libraries */
+        H5PL_table_g = (H5PL_table_t *)H5MM_xfree(H5PL_table_g);
+        H5PL_table_used_g = H5PL_table_alloc_g = 0;
 
         /* Free the table of search paths */
         for(u = 0; u < H5PL_num_paths_g; u++)
@@ -243,7 +292,7 @@ H5PL_term_interface(void)
         H5PL_num_paths_g = 0;
         H5PL_path_found_g = FALSE;
 
-	H5_interface_initialize_g = 0;
+        H5_interface_initialize_g = 0;
         i = 1;
     } /* end if */
 
@@ -252,15 +301,15 @@ H5PL_term_interface(void)
 
 

 /*-------------------------------------------------------------------------
- * Function:	H5PL_load
+ * Function:    H5PL_load
  *
- * Purpose:	Given the plugin type and identifier, this function searches
+ * Purpose:     Given the plugin type and identifier, this function searches
  *              and/or loads a dynamic plugin library first among the already
  *              opened libraries then in the designated location paths.
  *
- * Return:	Non-NULL on success/NULL on failure
+ * Return:      Non-NULL on success/NULL on failure
  *
- * Programmer:	Raymond Lu
+ * Programmer:  Raymond Lu
  *              13 February 2013
  *
  *-------------------------------------------------------------------------
@@ -274,9 +323,14 @@ H5PL_load(H5PL_type_t type, int id)
 
     FUNC_ENTER_NOAPI(NULL)
 
-    /* Check for "no plugins" indicated" */
-    if(H5PL_no_plugin_g)
-        HGOTO_ERROR(H5E_PLUGIN, H5E_CANTLOAD, NULL, "required dynamically loaded plugin filter '%d' is not available", id)
+    switch (type) {
+    case H5PL_TYPE_FILTER:
+        if((H5PL_plugin_g & H5PL_FILTER_PLUGIN) == 0)
+            HGOTO_ERROR(H5E_PLUGIN, H5E_CANTLOAD, NULL, "required dynamically loaded plugin filter '%d' is not available", id)
+        break;
+    default:
+        HGOTO_ERROR(H5E_PLUGIN, H5E_CANTLOAD, NULL, "required dynamically loaded plugin '%d' is not valid", id)
+    }
 
     /* Initialize the location paths for dynamic libraries, if they aren't
      * already set up.
@@ -315,13 +369,13 @@ done:
 
 

 /*-------------------------------------------------------------------------
- * Function:	H5PL__init_path_table
+ * Function:    H5PL__init_path_table
  *
- * Purpose:	Initialize the path table.
+ * Purpose:     Initialize the path table.
  *
- * Return:	Non-negative on success/Negative on failure
+ * Return:      Non-negative on success/Negative on failure
  *
- * Programmer:	Quincey Koziol
+ * Programmer:  Quincey Koziol
  *              18 March 2013
  *
  *-------------------------------------------------------------------------
@@ -370,18 +424,18 @@ done:
 
 

 /*-------------------------------------------------------------------------
- * Function:	H5PL__find
+ * Function:    H5PL__find
  *
  * Purpose:     Given a path, this function opens the directory and envokes
  *              another function to go through all files to find the right 
  *              plugin library. Two function definitions are for Unix and 
  *              Windows.
  *
- * Return:	TRUE on success, 
+ * Return:      TRUE on success, 
  *              FALSE on not found,
  *              negative on failure
  *
- * Programmer:	Raymond Lu
+ * Programmer:  Raymond Lu
  *              13 February 2013
  *
  *-------------------------------------------------------------------------
@@ -406,8 +460,14 @@ H5PL__find(H5PL_type_t plugin_type, int type_id, char *dir, const void **info)
         /* The library we are looking for should be called libxxx.so... on Unix 
          * or libxxx.xxx.dylib on Mac.
          */ 
+#ifndef __CYGWIN__
         if(!HDstrncmp(dp->d_name, "lib", (size_t)3) && 
                 (HDstrstr(dp->d_name, ".so") || HDstrstr(dp->d_name, ".dylib"))) {
+#else
+        if(!HDstrncmp(dp->d_name, "cyg", (size_t)3) &&
+                HDstrstr(dp->d_name, ".dll") ) {
+
+#endif
             h5_stat_t   my_stat;
             size_t      pathname_len;
             htri_t      found_in_dir;
@@ -452,17 +512,17 @@ done:
 static htri_t
 H5PL__find(H5PL_type_t plugin_type, int type_id, char *dir, const void **info)
 {
-    WIN32_FIND_DATA fdFile;
-    HANDLE          hFind;
-    char           *pathname = NULL;
-    char            service[2048];
-    htri_t          ret_value = FALSE;
+    WIN32_FIND_DATAA    fdFile;
+    HANDLE              hFind;
+    char                *pathname = NULL;
+    char                service[2048];
+    htri_t              ret_value = FALSE;
 
     FUNC_ENTER_STATIC
 
     /* Specify a file mask. *.* = We want everything! */
     sprintf(service, "%s\\*.dll", dir);
-    if((hFind = FindFirstFile(service, &fdFile)) == INVALID_HANDLE_VALUE)
+    if((hFind = FindFirstFileA(service, &fdFile)) == INVALID_HANDLE_VALUE)
         HGOTO_ERROR(H5E_PLUGIN, H5E_OPENERROR, FAIL, "can't open directory")
 
     do {
@@ -475,7 +535,7 @@ H5PL__find(H5PL_type_t plugin_type, int type_id, char *dir, const void **info)
 
             /* Allocate & initialize the path name */
             pathname_len = HDstrlen(dir) + HDstrlen(fdFile.cFileName) + 2;
-	    if(NULL == (pathname = (char *)H5MM_malloc(pathname_len)))
+            if(NULL == (pathname = (char *)H5MM_malloc(pathname_len)))
                 HGOTO_ERROR(H5E_PLUGIN, H5E_CANTALLOC, FAIL, "can't allocate memory for path")
             HDsnprintf(pathname, pathname_len, "%s\\%s", dir, fdFile.cFileName);
 
@@ -490,10 +550,10 @@ H5PL__find(H5PL_type_t plugin_type, int type_id, char *dir, const void **info)
                 HGOTO_DONE(TRUE)
             } /* end if */
             else
-	        HDassert(pathname);
+                HDassert(pathname);
                 pathname = (char *)H5MM_xfree(pathname);
         } /* end if */
-    } while(FindNextFile(hFind, &fdFile)); /* Find the next file. */
+    } while(FindNextFileA(hFind, &fdFile)); /* Find the next file. */
 
 done:
     if(hFind) 
@@ -507,17 +567,17 @@ done:
 
 

 /*-------------------------------------------------------------------------
- * Function:	H5PL__open
+ * Function:    H5PL__open
  *
  * Purpose:     Iterates through all files to find the right plugin library.
  *              It loads the dynamic plugin library and keeps it on the list 
- *              of loaded libraries. 	
+ *              of loaded libraries.
  *
- * Return:	TRUE on success, 
+ * Return:      TRUE on success, 
  *              FALSE on not found,
  *              negative on failure
  *
- * Programmer:	Raymond Lu
+ * Programmer:  Raymond Lu
  *              13 February 2013
  *
  *-------------------------------------------------------------------------
@@ -595,16 +655,16 @@ done:
 
 

 /*-------------------------------------------------------------------------
- * Function:	H5PL__search_table
+ * Function:    H5PL__search_table
  *
  * Purpose:     Search in the list of already opened dynamic libraries
  *              to see if the one we are looking for is already opened.
  *
- * Return:	TRUE on success, 
+ * Return:      TRUE on success, 
  *              FALSE on not found,
  *              Negative on failure
  *
- * Programmer:	Raymond Lu
+ * Programmer:  Raymond Lu
  *              13 February 2013
  *
  *-------------------------------------------------------------------------
@@ -626,12 +686,12 @@ H5PL__search_table(H5PL_type_t plugin_type, int type_id, const void **info)
                 const H5Z_class2_t   *plugin_info;
 
                 if(NULL == (get_plugin_info = (H5PL_get_plugin_info_t)H5PL_GET_LIB_FUNC((H5PL_table_g[i]).handle, "H5PLget_plugin_info")))
-		    HGOTO_ERROR(H5E_DATATYPE, H5E_CANTGET, FAIL, "can't get function for H5PLget_plugin_info")
+                HGOTO_ERROR(H5E_DATATYPE, H5E_CANTGET, FAIL, "can't get function for H5PLget_plugin_info")
 
-	        if(NULL == (plugin_info = (const H5Z_class2_t *)(*get_plugin_info)()))
-		    HGOTO_ERROR(H5E_DATATYPE, H5E_CANTGET, FAIL, "can't get plugin info")
+                if(NULL == (plugin_info = (const H5Z_class2_t *)(*get_plugin_info)()))
+                    HGOTO_ERROR(H5E_DATATYPE, H5E_CANTGET, FAIL, "can't get plugin info")
 
-	        *info = plugin_info;
+                *info = plugin_info;
                 HGOTO_DONE(TRUE)
             } /* end if */
         } /* end for */
@@ -643,13 +703,13 @@ done:
 
 

 /*-------------------------------------------------------------------------
- * Function:	H5PL__close
+ * Function:    H5PL__close
  *
  * Purpose:     Closes the handle for dynamic library	
  *
- * Return:	Non-negative on success/Negative on failure
+ * Return:      Non-negative on success/Negative on failure
  *
- * Programmer:	Raymond Lu
+ * Programmer:  Raymond Lu
  *              13 February 2013
  *
  *-------------------------------------------------------------------------
@@ -663,4 +723,3 @@ H5PL__close(H5PL_HANDLE handle)
    
     FUNC_LEAVE_NOAPI(SUCCEED)
 } /* end H5PL__close() */
-#endif /*H5_VMS*/
diff --git a/src/H5PLextern.h b/src/H5PLextern.h
index 7f10575..3264435 100644
--- a/src/H5PLextern.h
+++ b/src/H5PLextern.h
@@ -22,20 +22,6 @@
 /* Include HDF5 header */
 #include "hdf5.h"
 
-#ifndef H5_VMS
-
-/*******************/
-/* Public Typedefs */
-/*******************/
-
-/* Plugin type */
-typedef enum H5PL_type_t {
-    H5PL_TYPE_ERROR        = -1,  /*error                    */
-    H5PL_TYPE_FILTER       = 0,   /*filter                   */
-    H5PL_TYPE_NONE         = 1    /*this must be last!       */
-} H5PL_type_t;
-
-
 /* plugins always export */
 #if defined (_MSC_VER)  /* MSVC Compiler Case */
   #define H5PLUGIN_DLL __declspec(dllexport)
@@ -55,7 +41,6 @@ H5PLUGIN_DLL const void *H5PLget_plugin_info(void);
 #ifdef __cplusplus
 }
 #endif
-#endif /*H5_VMS*/
 
 #endif /* _H5PLextern_H */
 
diff --git a/src/H5PLprivate.h b/src/H5PLprivate.h
index a1b77ea..77e115b 100644
--- a/src/H5PLprivate.h
+++ b/src/H5PLprivate.h
@@ -19,23 +19,12 @@
 #ifndef _H5PLprivate_H
 #define _H5PLprivate_H
 
-/* Keep the following in sync with the package's "external" header */
-
-/*******************/
-/* Public Typedefs */
-/*******************/
-
-/* Plugin type */
-typedef enum H5PL_type_t {
-    H5PL_TYPE_ERROR        = -1,  /*error                    */
-    H5PL_TYPE_FILTER       = 0,   /*filter                   */
-    H5PL_TYPE_NONE         = 1    /*this must be last!       */
-} H5PL_type_t;
+/* Include package's public header */
+#include "H5PLpublic.h"
 
 /* Private headers needed by this file */
 #include "H5private.h"          /* Generic Functions                    */
 
-#ifndef H5_VMS
 
 /**************************/
 /* Library Private Macros */
@@ -58,8 +47,6 @@ typedef enum H5PL_type_t {
 
 /* Internal API routines */
 H5_DLL const void *H5PL_load(H5PL_type_t plugin_type, int type_id);
-H5_DLL htri_t H5PL_no_plugin(void);
-#endif /*H5_VMS*/
 
 #endif /* _H5PLprivate_H */
 
diff --git a/src/H5PLextern.h b/src/H5PLpublic.h
similarity index 70%
copy from src/H5PLextern.h
copy to src/H5PLpublic.h
index 7f10575..0296819 100644
--- a/src/H5PLextern.h
+++ b/src/H5PLpublic.h
@@ -12,50 +12,42 @@
  * to either file, you may request a copy from help at hdfgroup.org.            *
  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
 
-/*
- * Programmer:  Raymond Lu <songyulu at hdfgroup.org>
+/* Programmer:  Raymond Lu <songyulu at hdfgroup.org>
  *              13 February 2013
  */
-#ifndef _H5PLextern_H
-#define _H5PLextern_H
 
-/* Include HDF5 header */
-#include "hdf5.h"
+#ifndef _H5PLpublic_H
+#define _H5PLpublic_H
 
-#ifndef H5_VMS
+/* Public headers needed by this file */
+#include "H5public.h"          /* Generic Functions                    */
 
 /*******************/
 /* Public Typedefs */
 /*******************/
 
-/* Plugin type */
+/* Plugin type used by the plugin library */
 typedef enum H5PL_type_t {
     H5PL_TYPE_ERROR        = -1,  /*error                    */
     H5PL_TYPE_FILTER       = 0,   /*filter                   */
     H5PL_TYPE_NONE         = 1    /*this must be last!       */
 } H5PL_type_t;
 
-
-/* plugins always export */
-#if defined (_MSC_VER)  /* MSVC Compiler Case */
-  #define H5PLUGIN_DLL __declspec(dllexport)
-#elif (__GNUC__ >= 4)  /* GCC 4.x has support for visibility options */
-  #define H5PLUGIN_DLL __attribute__ ((visibility("default")))
-#else
-  #define H5PLUGIN_DLL
-#endif
+/* Common dynamic plugin type flags used by the set/get_loading_state functions */
+#define H5PL_FILTER_PLUGIN 0x0001
+#define H5PL_ALL_PLUGIN 0xFFFF
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-H5PLUGIN_DLL H5PL_type_t H5PLget_plugin_type(void);
-H5PLUGIN_DLL const void *H5PLget_plugin_info(void);
+/* plugin state */
+H5_DLL herr_t H5PLset_loading_state(unsigned int plugin_type);
+H5_DLL herr_t H5PLget_loading_state(unsigned int *plugin_type/*out*/);
 
 #ifdef __cplusplus
 }
 #endif
-#endif /*H5_VMS*/
 
-#endif /* _H5PLextern_H */
+#endif /* _H5PLpublic_H */
 
diff --git a/src/H5Pdxpl.c b/src/H5Pdxpl.c
index 7688ecf..4372417 100644
--- a/src/H5Pdxpl.c
+++ b/src/H5Pdxpl.c
@@ -62,7 +62,7 @@
  * group's B-trees as well as chunked dataset's B-trees - QAK)
  */
 #define H5D_XFER_BTREE_SPLIT_RATIO_SIZE sizeof(double[3])
-#define H5D_XFER_BTREE_SPLIT_RATIO_DEF  {0.1, 0.5, 0.9}
+#define H5D_XFER_BTREE_SPLIT_RATIO_DEF  {0.1F, 0.5F, 0.9F}
 /* Definitions for vlen allocation function property */
 #define H5D_XFER_VLEN_ALLOC_SIZE        sizeof(H5MM_allocate_t)
 #define H5D_XFER_VLEN_ALLOC_DEF         H5D_VLEN_ALLOC
diff --git a/src/H5Pfapl.c b/src/H5Pfapl.c
index d743441..e5bba33 100644
--- a/src/H5Pfapl.c
+++ b/src/H5Pfapl.c
@@ -829,6 +829,7 @@ H5Pget_driver_info(hid_t plist_id)
     void *ret_value;            /* Return value */
 
     FUNC_ENTER_API(NULL)
+    H5TRACE1("*x", "i", plist_id);
 
     if(NULL == (plist = (H5P_genplist_t *)H5I_object_verify(plist_id, H5I_GENPROP_LST)))
         HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, NULL, "not a property list")
diff --git a/src/H5Pfcpl.c b/src/H5Pfcpl.c
index d114650..a054471 100644
--- a/src/H5Pfcpl.c
+++ b/src/H5Pfcpl.c
@@ -496,6 +496,9 @@ H5Pset_sym_k(hid_t plist_id, unsigned ik, unsigned lk)
 
     /* Set values */
     if (ik > 0) {
+	if((ik * 2) >= HDF5_BTREE_IK_MAX_ENTRIES)
+	    HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "istore IK value exceeds maximum B-tree entries");
+
         if(H5P_get(plist, H5F_CRT_BTREE_RANK_NAME, btree_k) < 0)
             HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "can't get rank for btree interanl nodes");
         btree_k[H5B_SNODE_ID] = ik;
@@ -593,6 +596,9 @@ H5Pset_istore_k(hid_t plist_id, unsigned ik)
     if (ik == 0)
         HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "istore IK value must be positive");
 
+    if((ik * 2) >= HDF5_BTREE_IK_MAX_ENTRIES)
+        HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "istore IK value exceeds maximum B-tree entries");
+
     /* Get the plist structure */
     if(NULL == (plist = H5P_object_verify(plist_id,H5P_FILE_CREATE)))
         HGOTO_ERROR(H5E_ATOM, H5E_BADATOM, FAIL, "can't find object for ID");
diff --git a/src/H5R.c b/src/H5R.c
index c36c2fa..1e99b86 100644
--- a/src/H5R.c
+++ b/src/H5R.c
@@ -409,6 +409,10 @@ done:
     Currently only set up to work with references to datasets
  EXAMPLES
  REVISION LOG
+
+    M. Scot Breitenfeld
+    3 March 2015
+    Added a check for undefined reference pointer.
 --------------------------------------------------------------------------*/
 static hid_t
 H5R_dereference(H5F_t *file, hid_t dxpl_id, H5R_type_t ref_type, const void *_ref, hbool_t app_ref)
@@ -433,8 +437,10 @@ H5R_dereference(H5F_t *file, hid_t dxpl_id, H5R_type_t ref_type, const void *_re
     switch(ref_type) {
         case H5R_OBJECT:
             oloc.addr = *(const hobj_ref_t *)_ref; /* Only object references currently supported */
-            break;
-
+	    if(!H5F_addr_defined(oloc.addr) || oloc.addr == 0)
+	      HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "Undefined reference pointer")
+	      break;
+            
         case H5R_DATASET_REGION:
         {
             H5HG_t hobjid;  /* Heap object ID */
@@ -446,6 +452,9 @@ H5R_dereference(H5F_t *file, hid_t dxpl_id, H5R_type_t ref_type, const void *_re
             H5F_addr_decode(oloc.file, &p, &(hobjid.addr));
             UINT32DECODE(p, hobjid.idx);
 
+            if(!H5F_addr_defined(hobjid.addr) || hobjid.addr == 0)
+	      HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "Undefined reference pointer")
+
             /* Get the dataset region from the heap (allocate inside routine) */
             if(NULL == (buf = (uint8_t *)H5HG_read(oloc.file, dxpl_id, &hobjid, NULL, NULL)))
                 HGOTO_ERROR(H5E_REFERENCE, H5E_READERROR, FAIL, "Unable to read dataset region information")
diff --git a/src/H5RS.c b/src/H5RS.c
index dc6795e..5bbdabd 100644
--- a/src/H5RS.c
+++ b/src/H5RS.c
@@ -139,7 +139,7 @@ done:
  REVISION LOG
 --------------------------------------------------------------------------*/
 H5RS_str_t *
-H5RS_wrap(const char *s)
+H5RS_wrap(char *s)
 {
     H5RS_str_t *ret_value;   /* Return value */
 
@@ -150,7 +150,7 @@ H5RS_wrap(const char *s)
         HGOTO_ERROR(H5E_RS, H5E_NOSPACE, NULL, "memory allocation failed")
 
     /* Set the internal fields */
-    ret_value->s = (char *)s;      /* (Cast away const OK - QAK) */
+    ret_value->s = s;
     ret_value->wrapped = 1;
     ret_value->n = 1;
 
diff --git a/src/H5RSprivate.h b/src/H5RSprivate.h
index c46f53c..757e0e4 100644
--- a/src/H5RSprivate.h
+++ b/src/H5RSprivate.h
@@ -46,7 +46,7 @@ typedef struct H5RS_str_t H5RS_str_t;
 /* Private routines */
 /********************/
 H5_DLL H5RS_str_t *H5RS_create(const char *s);
-H5_DLL H5RS_str_t *H5RS_wrap(const char *s);
+H5_DLL H5RS_str_t *H5RS_wrap(char *s);
 H5_DLL H5RS_str_t *H5RS_own(char *s);
 H5_DLL herr_t H5RS_decr(H5RS_str_t *rs);
 H5_DLL herr_t H5RS_incr(H5RS_str_t *rs);
diff --git a/src/H5S.c b/src/H5S.c
index 7279d22..f687476 100644
--- a/src/H5S.c
+++ b/src/H5S.c
@@ -482,6 +482,12 @@ H5Sextent_copy(hid_t dst_id,hid_t src_id)
     if(H5S_extent_copy(&(dst->extent), &(src->extent), TRUE) < 0)
         HGOTO_ERROR(H5E_DATASPACE, H5E_CANTCOPY, FAIL, "can't copy extent")
 
+    /* If the selection is 'all', update the number of elements selected in the
+     * destination space */
+    if(H5S_SEL_ALL == H5S_GET_SELECT_TYPE(dst))
+        if(H5S_select_all(dst, FALSE) < 0)
+            HGOTO_ERROR(H5E_DATASPACE, H5E_CANTDELETE, FAIL, "can't change selection")
+
 done:
     FUNC_LEAVE_API(ret_value)
 } /* end H5Sextent_copy() */
@@ -509,6 +515,10 @@ H5S_extent_copy(H5S_extent_t *dst, const H5S_extent_t *src, hbool_t copy_max)
 
     FUNC_ENTER_NOAPI(FAIL)
 
+    /* Release destination extent before we copy over it */
+    if(H5S_extent_release(dst) < 0)
+        HGOTO_ERROR(H5E_DATASPACE, H5E_CANTRELEASE, FAIL, "unable to release dataspace extent")
+
     /* Copy the regular fields */
     dst->type = src->type;
     dst->version = src->version;
@@ -583,7 +593,7 @@ H5S_copy(const H5S_t *src, hbool_t share_selection, hbool_t copy_max)
 
     FUNC_ENTER_NOAPI(NULL)
 
-    if(NULL == (dst = H5FL_MALLOC(H5S_t)))
+    if(NULL == (dst = H5FL_CALLOC(H5S_t)))
         HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed")
 
     /* Copy the source dataspace's extent */
diff --git a/src/H5Sdbg.c b/src/H5Sdbg.c
index df033da..0cbe4f2 100644
--- a/src/H5Sdbg.c
+++ b/src/H5Sdbg.c
@@ -113,6 +113,7 @@ H5S_debug(H5F_t *f, hid_t dxpl_id, const void *_mesg, FILE *stream, int indent,
                                  indent + 3, MAX(0, fwidth - 3));
             break;
 
+        case H5S_NO_CLASS:
         default:
             fprintf(stream, "%*s%-*s **UNKNOWN-%ld**\n", indent, "", fwidth,
                     "Space class:", (long)(H5S_GET_EXTENT_TYPE(mesg)));
diff --git a/src/H5T.c b/src/H5T.c
index 942174c..257e2e2 100644
--- a/src/H5T.c
+++ b/src/H5T.c
@@ -1189,62 +1189,42 @@ H5T_init_interface(void)
     /* From char to floats */
     status |= H5T_register(H5T_PERS_HARD, "schar_flt", native_schar, native_float, H5T__conv_schar_float, H5AC_dxpl_id, FALSE);
     status |= H5T_register(H5T_PERS_HARD, "schar_dbl", native_schar, native_double, H5T__conv_schar_double, H5AC_dxpl_id, FALSE);
-#if H5T_CONV_INTERNAL_INTEGER_LDOUBLE
     status |= H5T_register(H5T_PERS_HARD, "schar_ldbl", native_schar, native_ldouble, H5T__conv_schar_ldouble, H5AC_dxpl_id, FALSE);
-#endif /* H5T_CONV_INTERNAL_INTEGER_LDOUBLE */
 
     /* From unsigned char to floats */
     status |= H5T_register(H5T_PERS_HARD, "uchar_flt", native_uchar, native_float, H5T__conv_uchar_float, H5AC_dxpl_id, FALSE);
     status |= H5T_register(H5T_PERS_HARD, "uchar_dbl", native_uchar, native_double, H5T__conv_uchar_double, H5AC_dxpl_id, FALSE);
-#if H5T_CONV_INTERNAL_INTEGER_LDOUBLE
     status |= H5T_register(H5T_PERS_HARD, "uchar_ldbl", native_uchar, native_ldouble, H5T__conv_uchar_ldouble, H5AC_dxpl_id, FALSE);
-#endif /* H5T_CONV_INTERNAL_INTEGER_LDOUBLE */
 
     /* From short to floats */
     status |= H5T_register(H5T_PERS_HARD, "short_flt", native_short, native_float, H5T__conv_short_float, H5AC_dxpl_id, FALSE);
     status |= H5T_register(H5T_PERS_HARD, "short_dbl", native_short, native_double, H5T__conv_short_double, H5AC_dxpl_id, FALSE);
-#if H5T_CONV_INTERNAL_INTEGER_LDOUBLE
     status |= H5T_register(H5T_PERS_HARD, "short_ldbl", native_short, native_ldouble, H5T__conv_short_ldouble, H5AC_dxpl_id, FALSE);
-#endif /* H5T_CONV_INTERNAL_INTEGER_LDOUBLE */
 
     /* From unsigned short to floats */
     status |= H5T_register(H5T_PERS_HARD, "ushort_flt", native_ushort, native_float, H5T__conv_ushort_float, H5AC_dxpl_id, FALSE);
     status |= H5T_register(H5T_PERS_HARD, "ushort_dbl", native_ushort, native_double, H5T__conv_ushort_double, H5AC_dxpl_id, FALSE);
-#if H5T_CONV_INTERNAL_INTEGER_LDOUBLE
     status |= H5T_register(H5T_PERS_HARD, "ushort_ldbl", native_ushort, native_ldouble, H5T__conv_ushort_ldouble, H5AC_dxpl_id, FALSE);
-#endif /* H5T_CONV_INTERNAL_INTEGER_LDOUBLE */
 
     /* From int to floats */
     status |= H5T_register(H5T_PERS_HARD, "int_flt", native_int, native_float, H5T__conv_int_float, H5AC_dxpl_id, FALSE);
     status |= H5T_register(H5T_PERS_HARD, "int_dbl", native_int, native_double, H5T__conv_int_double, H5AC_dxpl_id, FALSE);
-#if H5T_CONV_INTERNAL_INTEGER_LDOUBLE
     status |= H5T_register(H5T_PERS_HARD, "int_ldbl", native_int, native_ldouble, H5T__conv_int_ldouble, H5AC_dxpl_id, FALSE);
-#endif /* H5T_CONV_INTERNAL_INTEGER_LDOUBLE */
 
     /* From unsigned int to floats */
     status |= H5T_register(H5T_PERS_HARD, "uint_flt", native_uint, native_float, H5T__conv_uint_float, H5AC_dxpl_id, FALSE);
     status |= H5T_register(H5T_PERS_HARD, "uint_dbl", native_uint, native_double, H5T__conv_uint_double, H5AC_dxpl_id, FALSE);
-#if H5T_CONV_INTERNAL_INTEGER_LDOUBLE
     status |= H5T_register(H5T_PERS_HARD, "uint_ldbl", native_uint, native_ldouble, H5T__conv_uint_ldouble, H5AC_dxpl_id, FALSE);
-#endif /* H5T_CONV_INTERNAL_INTEGER_LDOUBLE */
 
     /* From long to floats */
     status |= H5T_register(H5T_PERS_HARD, "long_flt", native_long, native_float, H5T__conv_long_float, H5AC_dxpl_id, FALSE);
     status |= H5T_register(H5T_PERS_HARD, "long_dbl", native_long, native_double, H5T__conv_long_double, H5AC_dxpl_id, FALSE);
-#if H5T_CONV_INTERNAL_INTEGER_LDOUBLE
     status |= H5T_register(H5T_PERS_HARD, "long_ldbl", native_long, native_ldouble, H5T__conv_long_ldouble, H5AC_dxpl_id, FALSE);
-#endif /* H5T_CONV_INTERNAL_INTEGER_LDOUBLE */
 
     /* From unsigned long to floats */
-#if H5T_CONV_INTERNAL_ULONG_FLT
     status |= H5T_register(H5T_PERS_HARD, "ulong_flt", native_ulong, native_float, H5T__conv_ulong_float, H5AC_dxpl_id, FALSE);
-#endif /* H5T_CONV_INTERNAL_ULONG_FLT */
-#if H5T_CONV_INTERNAL_ULONG_DBL
     status |= H5T_register(H5T_PERS_HARD, "ulong_dbl", native_ulong, native_double, H5T__conv_ulong_double, H5AC_dxpl_id, FALSE);
-#endif /* H5T_CONV_INTERNAL_ULONG_DBL */
-#if H5T_CONV_INTERNAL_ULONG_LDOUBLE
     status |= H5T_register(H5T_PERS_HARD, "ulong_ldbl", native_ulong, native_ldouble, H5T__conv_ulong_ldouble, H5AC_dxpl_id, FALSE);
-#endif /* H5T_CONV_INTERNAL_ULONG_LDOUBLE */
 
     /* From long long to floats */
     status |= H5T_register(H5T_PERS_HARD, "llong_flt", native_llong, native_float, H5T__conv_llong_float, H5AC_dxpl_id, FALSE);
@@ -1254,10 +1234,8 @@ H5T_init_interface(void)
 #endif /* H5T_CONV_INTERNAL_LLONG_LDOUBLE */
 
     /* From unsigned long long to floats */
-#if H5T_CONV_INTERNAL_ULLONG_FP
     status |= H5T_register(H5T_PERS_HARD, "ullong_flt", native_ullong, native_float, H5T__conv_ullong_float, H5AC_dxpl_id, FALSE);
     status |= H5T_register(H5T_PERS_HARD, "ullong_dbl", native_ullong, native_double, H5T__conv_ullong_double, H5AC_dxpl_id, FALSE);
-#endif /* H5T_CONV_INTERNAL_ULLONG_FP */
 #ifdef H5T_CONV_INTERNAL_ULLONG_LDOUBLE
     status |= H5T_register(H5T_PERS_HARD, "ullong_ldbl", native_ullong, native_ldouble, H5T__conv_ullong_ldouble, H5AC_dxpl_id, FALSE);
 #endif /* H5T_CONV_INTERNAL_ULLONG_LDOUBLE */
@@ -1265,57 +1243,41 @@ H5T_init_interface(void)
     /* From floats to char */
     status |= H5T_register(H5T_PERS_HARD, "flt_schar", native_float, native_schar, H5T__conv_float_schar, H5AC_dxpl_id, FALSE);
     status |= H5T_register(H5T_PERS_HARD, "dbl_schar", native_double, native_schar, H5T__conv_double_schar, H5AC_dxpl_id, FALSE);
-#if H5T_CONV_INTERNAL_LDOUBLE_INTEGER
     status |= H5T_register(H5T_PERS_HARD, "ldbl_schar", native_ldouble, native_schar, H5T__conv_ldouble_schar, H5AC_dxpl_id, FALSE);
-#endif /* H5T_CONV_INTERNAL_LDOUBLE_INTEGER */
 
     /* From floats to unsigned char */
     status |= H5T_register(H5T_PERS_HARD, "flt_uchar", native_float, native_uchar, H5T__conv_float_uchar, H5AC_dxpl_id, FALSE);
     status |= H5T_register(H5T_PERS_HARD, "dbl_uchar", native_double, native_uchar, H5T__conv_double_uchar, H5AC_dxpl_id, FALSE);
-#if H5T_CONV_INTERNAL_LDOUBLE_INTEGER
     status |= H5T_register(H5T_PERS_HARD, "ldbl_uchar", native_ldouble, native_uchar, H5T__conv_ldouble_uchar, H5AC_dxpl_id, FALSE);
-#endif /* H5T_CONV_INTERNAL_LDOUBLE_INTEGER */
 
     /* From floats to short */
     status |= H5T_register(H5T_PERS_HARD, "flt_short", native_float, native_short, H5T__conv_float_short, H5AC_dxpl_id, FALSE);
     status |= H5T_register(H5T_PERS_HARD, "dbl_short", native_double, native_short, H5T__conv_double_short, H5AC_dxpl_id, FALSE);
-#if H5T_CONV_INTERNAL_LDOUBLE_INTEGER
     status |= H5T_register(H5T_PERS_HARD, "ldbl_short", native_ldouble, native_short, H5T__conv_ldouble_short, H5AC_dxpl_id, FALSE);
-#endif /* H5T_CONV_INTERNAL_LDOUBLE_INTEGER */
 
     /* From floats to unsigned short */
     status |= H5T_register(H5T_PERS_HARD, "flt_ushort", native_float, native_ushort, H5T__conv_float_ushort, H5AC_dxpl_id, FALSE);
     status |= H5T_register(H5T_PERS_HARD, "dbl_ushort", native_double, native_ushort, H5T__conv_double_ushort, H5AC_dxpl_id, FALSE);
-#if H5T_CONV_INTERNAL_LDOUBLE_INTEGER
     status |= H5T_register(H5T_PERS_HARD, "ldbl_ushort", native_ldouble, native_ushort, H5T__conv_ldouble_ushort, H5AC_dxpl_id, FALSE);
-#endif /* H5T_CONV_INTERNAL_LDOUBLE_INTEGER */
 
     /* From floats to int */
     status |= H5T_register(H5T_PERS_HARD, "flt_int", native_float, native_int, H5T__conv_float_int, H5AC_dxpl_id, FALSE);
     status |= H5T_register(H5T_PERS_HARD, "dbl_int", native_double, native_int, H5T__conv_double_int, H5AC_dxpl_id, FALSE);
-#if H5T_CONV_INTERNAL_LDOUBLE_INTEGER
     status |= H5T_register(H5T_PERS_HARD, "ldbl_int", native_ldouble, native_int, H5T__conv_ldouble_int, H5AC_dxpl_id, FALSE);
-#endif /* H5T_CONV_INTERNAL_LDOUBLE_INTEGER */
 
     /* From floats to unsigned int */
     status |= H5T_register(H5T_PERS_HARD, "flt_uint", native_float, native_uint, H5T__conv_float_uint, H5AC_dxpl_id, FALSE);
     status |= H5T_register(H5T_PERS_HARD, "dbl_uint", native_double, native_uint, H5T__conv_double_uint, H5AC_dxpl_id, FALSE);
-#if H5T_CONV_INTERNAL_LDOUBLE_UINT
     status |= H5T_register(H5T_PERS_HARD, "ldbl_uint", native_ldouble, native_uint, H5T__conv_ldouble_uint, H5AC_dxpl_id, FALSE);
-#endif /* H5T_CONV_INTERNAL_LDOUBLE_UINT */
 
     status |= H5T_register(H5T_PERS_HARD, "flt_long", native_float, native_long, H5T__conv_float_long, H5AC_dxpl_id, FALSE);
     status |= H5T_register(H5T_PERS_HARD, "dbl_long", native_double, native_long, H5T__conv_double_long, H5AC_dxpl_id, FALSE);
-#if H5T_CONV_INTERNAL_LDOUBLE_INTEGER
     status |= H5T_register(H5T_PERS_HARD, "ldbl_long", native_ldouble, native_long, H5T__conv_ldouble_long, H5AC_dxpl_id, FALSE);
-#endif /* H5T_CONV_INTERNAL_LDOUBLE_INTEGER */
 
     /* From floats to unsigned long */
     status |= H5T_register(H5T_PERS_HARD, "flt_ulong", native_float, native_ulong, H5T__conv_float_ulong, H5AC_dxpl_id, FALSE);
     status |= H5T_register(H5T_PERS_HARD, "dbl_ulong", native_double, native_ulong, H5T__conv_double_ulong, H5AC_dxpl_id, FALSE);
-#if H5T_CONV_INTERNAL_LDOUBLE_INTEGER
     status |= H5T_register(H5T_PERS_HARD, "ldbl_ulong", native_ldouble, native_ulong, H5T__conv_ldouble_ulong, H5AC_dxpl_id, FALSE);
-#endif /* H5T_CONV_INTERNAL_LDOUBLE_INTEGER */
 
     /* From floats to long long */
 #if H5T_CONV_INTERNAL_FP_LLONG
@@ -1327,10 +1289,8 @@ H5T_init_interface(void)
 #endif /* H5T_CONV_INTERNAL_LDOUBLE_LLONG */
 
     /* From floats to unsigned long long */
-#if H5T_CONV_INTERNAL_FP_ULLONG
     status |= H5T_register(H5T_PERS_HARD, "flt_ullong", native_float, native_ullong, H5T__conv_float_ullong, H5AC_dxpl_id, FALSE);
     status |= H5T_register(H5T_PERS_HARD, "dbl_ullong", native_double, native_ullong, H5T__conv_double_ullong, H5AC_dxpl_id, FALSE);
-#endif /* H5T_CONV_INTERNAL_FP_ULLONG */
 #if H5T_CONV_INTERNAL_LDOUBLE_ULLONG
     status |= H5T_register(H5T_PERS_HARD, "ldbl_ullong", native_ldouble, native_ullong, H5T__conv_ldouble_ullong, H5AC_dxpl_id, FALSE);
 #endif /* H5T_CONV_INTERNAL_LDOUBLE_ULLONG */
diff --git a/src/H5TS.c b/src/H5TS.c
index 3c7e4f4..7df65bf 100644
--- a/src/H5TS.c
+++ b/src/H5TS.c
@@ -489,7 +489,7 @@ H5TS_win32_thread_exit(void)
  *--------------------------------------------------------------------------
  */
 H5TS_thread_t
-H5TS_create_thread(void *func, H5TS_attr_t *attr, void *udata)
+H5TS_create_thread(void *(*func)(void *), H5TS_attr_t *attr, void *udata)
 {
     H5TS_thread_t ret_value;
 
diff --git a/src/H5TSprivate.h b/src/H5TSprivate.h
index cc22f96..5394b77 100644
--- a/src/H5TSprivate.h
+++ b/src/H5TSprivate.h
@@ -122,7 +122,7 @@ H5_DLL herr_t H5TS_mutex_lock(H5TS_mutex_t *mutex);
 H5_DLL herr_t H5TS_mutex_unlock(H5TS_mutex_t *mutex);
 H5_DLL herr_t H5TS_cancel_count_inc(void);
 H5_DLL herr_t H5TS_cancel_count_dec(void);
-H5_DLL H5TS_thread_t H5TS_create_thread(void * func, H5TS_attr_t * attr, void *udata);
+H5_DLL H5TS_thread_t H5TS_create_thread(void *(*func)(void *), H5TS_attr_t * attr, void *udata);
 
 #if defined c_plusplus || defined __cplusplus
 }
diff --git a/src/H5Tconv.c b/src/H5Tconv.c
index 72da1bd..e81f17d 100644
--- a/src/H5Tconv.c
+++ b/src/H5Tconv.c
@@ -7305,7 +7305,6 @@ H5T__conv_schar_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
  *
  *-------------------------------------------------------------------------
  */
-#if H5T_CONV_INTERNAL_INTEGER_LDOUBLE
 herr_t
 H5T__conv_schar_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
@@ -7314,7 +7313,6 @@ H5T__conv_schar_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 {
     H5T_CONV_xF(SCHAR, LDOUBLE, signed char, long double, -, -);
 }
-#endif /* H5T_CONV_INTERNAL_INTEGER_LDOUBLE */
 
 

 /*-------------------------------------------------------------------------
@@ -7382,7 +7380,6 @@ H5T__conv_uchar_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
  *
  *-------------------------------------------------------------------------
  */
-#if H5T_CONV_INTERNAL_INTEGER_LDOUBLE
 herr_t
 H5T__conv_uchar_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
@@ -7391,7 +7388,6 @@ H5T__conv_uchar_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 {
     H5T_CONV_xF(UCHAR, LDOUBLE, unsigned char, long double, -, -);
 }
-#endif /* H5T_CONV_INTERNAL_INTEGER_LDOUBLE */
 
 

 /*-------------------------------------------------------------------------
@@ -7459,7 +7455,6 @@ H5T__conv_short_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
  *
  *-------------------------------------------------------------------------
  */
-#if H5T_CONV_INTERNAL_INTEGER_LDOUBLE
 herr_t
 H5T__conv_short_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
@@ -7468,7 +7463,6 @@ H5T__conv_short_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 {
     H5T_CONV_xF(SHORT, LDOUBLE, short, long double, -, -);
 }
-#endif /* H5T_CONV_INTERNAL_INTEGER_LDOUBLE */
 
 

 /*-------------------------------------------------------------------------
@@ -7536,7 +7530,6 @@ H5T__conv_ushort_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
  *
  *-------------------------------------------------------------------------
  */
-#if H5T_CONV_INTERNAL_INTEGER_LDOUBLE
 herr_t
 H5T__conv_ushort_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
@@ -7545,7 +7538,6 @@ H5T__conv_ushort_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 {
     H5T_CONV_xF(USHORT, LDOUBLE, unsigned short, long double, -, -);
 }
-#endif /* H5T_CONV_INTERNAL_INTEGER_LDOUBLE */
 
 

 /*-------------------------------------------------------------------------
@@ -7613,7 +7605,6 @@ H5T__conv_int_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
  *
  *-------------------------------------------------------------------------
  */
-#if H5T_CONV_INTERNAL_INTEGER_LDOUBLE
 herr_t
 H5T__conv_int_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
@@ -7622,7 +7613,6 @@ H5T__conv_int_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 {
     H5T_CONV_xF(INT, LDOUBLE, int, long double, -, -);
 }
-#endif /* H5T_CONV_INTERNAL_INTEGER_LDOUBLE */
 
 

 /*-------------------------------------------------------------------------
@@ -7690,7 +7680,6 @@ H5T__conv_uint_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
  *
  *-------------------------------------------------------------------------
  */
-#if H5T_CONV_INTERNAL_INTEGER_LDOUBLE
 herr_t
 H5T__conv_uint_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
@@ -7699,7 +7688,6 @@ H5T__conv_uint_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 {
     H5T_CONV_xF(UINT, LDOUBLE, unsigned int, long double, -, -);
 }
-#endif /* H5T_CONV_INTERNAL_INTEGER_LDOUBLE */
 
 

 /*-------------------------------------------------------------------------
@@ -7767,7 +7755,6 @@ H5T__conv_long_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
  *
  *-------------------------------------------------------------------------
  */
-#if H5T_CONV_INTERNAL_INTEGER_LDOUBLE
 herr_t
 H5T__conv_long_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
@@ -7776,7 +7763,6 @@ H5T__conv_long_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 {
     H5T_CONV_xF(LONG, LDOUBLE, long, long double, -, -);
 }
-#endif /* H5T_CONV_INTERNAL_INTEGER_LDOUBLE */
 
 

 /*-------------------------------------------------------------------------
@@ -7794,7 +7780,6 @@ H5T__conv_long_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
  *
  *-------------------------------------------------------------------------
  */
-#if H5T_CONV_INTERNAL_ULONG_FLT
 herr_t
 H5T__conv_ulong_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
@@ -7803,7 +7788,6 @@ H5T__conv_ulong_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 {
     H5T_CONV_xF(ULONG, FLOAT, unsigned long, float, -, -);
 }
-#endif /* H5T_CONV_INTERNAL_ULONG_FLT */
 
 

 /*-------------------------------------------------------------------------
@@ -7821,7 +7805,6 @@ H5T__conv_ulong_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
  *
  *-------------------------------------------------------------------------
  */
-#if H5T_CONV_INTERNAL_ULONG_DBL
 herr_t
 H5T__conv_ulong_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
@@ -7830,7 +7813,6 @@ H5T__conv_ulong_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 {
     H5T_CONV_xF(ULONG, DOUBLE, unsigned long, double, -, -);
 }
-#endif /* H5T_CONV_INTERNAL_ULONG_DBL */
 
 

 /*-------------------------------------------------------------------------
@@ -7848,7 +7830,6 @@ H5T__conv_ulong_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
  *
  *-------------------------------------------------------------------------
  */
-#if H5T_CONV_INTERNAL_ULONG_LDOUBLE
 herr_t
 H5T__conv_ulong_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
@@ -7857,7 +7838,6 @@ H5T__conv_ulong_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 {
     H5T_CONV_xF(ULONG, LDOUBLE, unsigned long, long double, -, -);
 }
-#endif /* H5T_CONV_INTERNAL_ULONG_LDOUBLE */
 
 

 /*-------------------------------------------------------------------------
@@ -7952,7 +7932,6 @@ H5T__conv_llong_ldouble (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
  *
  *-------------------------------------------------------------------------
  */
-#if H5T_CONV_INTERNAL_ULLONG_FP
 herr_t
 H5T__conv_ullong_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
@@ -7961,7 +7940,6 @@ H5T__conv_ullong_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 {
     H5T_CONV_xF(ULLONG, FLOAT, unsigned long long, float, -, -);
 }
-#endif /*H5T_CONV_INTERNAL_ULLONG_FP*/
 
 

 /*-------------------------------------------------------------------------
@@ -7979,7 +7957,6 @@ H5T__conv_ullong_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
  *
  *-------------------------------------------------------------------------
  */
-#if H5T_CONV_INTERNAL_ULLONG_FP
 herr_t
 H5T__conv_ullong_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
@@ -7988,7 +7965,6 @@ H5T__conv_ullong_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 {
     H5T_CONV_xF(ULLONG, DOUBLE, unsigned long long, double, -, -);
 }
-#endif /*H5T_CONV_INTERNAL_ULLONG_FP*/
 
 

 /*-------------------------------------------------------------------------
@@ -8141,7 +8117,6 @@ H5_GCC_DIAG_ON(float-equal)
  *
  *-------------------------------------------------------------------------
  */
-#if H5T_CONV_INTERNAL_LDOUBLE_INTEGER
 herr_t
 H5T__conv_ldouble_schar (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
@@ -8152,7 +8127,6 @@ H5_GCC_DIAG_OFF(float-equal)
     H5T_CONV_Fx(LDOUBLE, SCHAR, long double, signed char, SCHAR_MIN, SCHAR_MAX);
 H5_GCC_DIAG_ON(float-equal)
 }
-#endif /* H5T_CONV_INTERNAL_LDOUBLE_INTEGER */
 
 

 /*-------------------------------------------------------------------------
@@ -8170,7 +8144,6 @@ H5_GCC_DIAG_ON(float-equal)
  *
  *-------------------------------------------------------------------------
  */
-#if H5T_CONV_INTERNAL_LDOUBLE_INTEGER
 herr_t
 H5T__conv_ldouble_uchar (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
@@ -8181,7 +8154,6 @@ H5_GCC_DIAG_OFF(float-equal)
     H5T_CONV_Fx(LDOUBLE, UCHAR, long double, unsigned char, 0, UCHAR_MAX);
 H5_GCC_DIAG_ON(float-equal)
 }
-#endif /* H5T_CONV_INTERNAL_LDOUBLE_INTEGER */
 
 

 /*-------------------------------------------------------------------------
@@ -8307,7 +8279,6 @@ H5_GCC_DIAG_ON(float-equal)
  *
  *-------------------------------------------------------------------------
  */
-#if H5T_CONV_INTERNAL_LDOUBLE_INTEGER
 herr_t
 H5T__conv_ldouble_short (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
@@ -8318,7 +8289,6 @@ H5_GCC_DIAG_OFF(float-equal)
     H5T_CONV_Fx(LDOUBLE, SHORT, long double, short, SHRT_MIN, SHRT_MAX);
 H5_GCC_DIAG_ON(float-equal)
 }
-#endif /*H5T_CONV_INTERNAL_LDOUBLE_INTEGER*/
 
 

 /*-------------------------------------------------------------------------
@@ -8336,7 +8306,6 @@ H5_GCC_DIAG_ON(float-equal)
  *
  *-------------------------------------------------------------------------
  */
-#if H5T_CONV_INTERNAL_LDOUBLE_INTEGER
 herr_t
 H5T__conv_ldouble_ushort (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
@@ -8347,7 +8316,6 @@ H5_GCC_DIAG_OFF(float-equal)
     H5T_CONV_Fx(LDOUBLE, USHORT, long double, unsigned short, 0, USHRT_MAX);
 H5_GCC_DIAG_ON(float-equal)
 }
-#endif /* H5T_CONV_INTERNAL_LDOUBLE_INTEGER */
 
 

 /*-------------------------------------------------------------------------
@@ -8473,7 +8441,6 @@ H5_GCC_DIAG_ON(float-equal)
  *
  *-------------------------------------------------------------------------
  */
-#if H5T_CONV_INTERNAL_LDOUBLE_INTEGER
 herr_t
 H5T__conv_ldouble_int (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
@@ -8484,7 +8451,6 @@ H5_GCC_DIAG_OFF(float-equal)
     H5T_CONV_Fx(LDOUBLE, INT, long double, int, INT_MIN, INT_MAX);
 H5_GCC_DIAG_ON(float-equal)
 }
-#endif /* H5T_CONV_INTERNAL_LDOUBLE_INTEGER */
 
 

 /*-------------------------------------------------------------------------
@@ -8502,7 +8468,6 @@ H5_GCC_DIAG_ON(float-equal)
  *
  *-------------------------------------------------------------------------
  */
-#if H5T_CONV_INTERNAL_LDOUBLE_UINT
 herr_t
 H5T__conv_ldouble_uint (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
@@ -8513,7 +8478,6 @@ H5_GCC_DIAG_OFF(float-equal)
     H5T_CONV_Fx(LDOUBLE, UINT, long double, unsigned int, 0, UINT_MAX);
 H5_GCC_DIAG_ON(float-equal)
 }
-#endif /* H5T_CONV_INTERNAL_LDOUBLE_UINT */
 
 

 /*-------------------------------------------------------------------------
@@ -8639,7 +8603,6 @@ H5_GCC_DIAG_ON(float-equal)
  *
  *-------------------------------------------------------------------------
  */
-#if H5T_CONV_INTERNAL_LDOUBLE_INTEGER
 herr_t
 H5T__conv_ldouble_long (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
@@ -8650,7 +8613,6 @@ H5_GCC_DIAG_OFF(float-equal)
     H5T_CONV_Fx(LDOUBLE, LONG, long double, long, LONG_MIN, LONG_MAX);
 H5_GCC_DIAG_ON(float-equal)
 }
-#endif /*H5T_CONV_INTERNAL_LDOUBLE_INTEGER*/
 
 

 /*-------------------------------------------------------------------------
@@ -8668,7 +8630,6 @@ H5_GCC_DIAG_ON(float-equal)
  *
  *-------------------------------------------------------------------------
  */
-#if H5T_CONV_INTERNAL_LDOUBLE_INTEGER
 herr_t
 H5T__conv_ldouble_ulong (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
@@ -8679,7 +8640,6 @@ H5_GCC_DIAG_OFF(float-equal)
     H5T_CONV_Fx(LDOUBLE, ULONG, long double, unsigned long, 0, ULONG_MAX);
 H5_GCC_DIAG_ON(float-equal)
 }
-#endif /* H5T_CONV_INTERNAL_LDOUBLE_INTEGER */
 
 

 /*-------------------------------------------------------------------------
@@ -8726,7 +8686,6 @@ H5_GCC_DIAG_ON(float-equal)
  *
  *-------------------------------------------------------------------------
  */
-#if H5T_CONV_INTERNAL_FP_ULLONG
 herr_t
 H5T__conv_float_ullong (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
@@ -8735,7 +8694,6 @@ H5T__conv_float_ullong (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 {
     H5T_CONV_Fx(FLOAT, ULLONG, float, unsigned long long, 0, ULLONG_MAX);
 }
-#endif /*H5T_CONV_INTERNAL_FP_ULLONG*/
 
 

 /*-------------------------------------------------------------------------
@@ -8782,7 +8740,6 @@ H5_GCC_DIAG_ON(float-equal)
  *
  *-------------------------------------------------------------------------
  */
-#if H5T_CONV_INTERNAL_FP_ULLONG
 herr_t
 H5T__conv_double_ullong (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 		       size_t nelmts, size_t buf_stride,
@@ -8791,7 +8748,6 @@ H5T__conv_double_ullong (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
 {
     H5T_CONV_Fx(DOUBLE, ULLONG, double, unsigned long long, 0, ULLONG_MAX);
 }
-#endif /*H5T_CONV_INTERNAL_FP_ULLONG*/
 
 

 /*-------------------------------------------------------------------------
diff --git a/src/H5Tfields.c b/src/H5Tfields.c
index 0e0d4e7..fb186fb 100644
--- a/src/H5Tfields.c
+++ b/src/H5Tfields.c
@@ -163,6 +163,7 @@ H5Tget_member_name(hid_t type_id, unsigned membno)
     char	*ret_value;
 
     FUNC_ENTER_API(NULL)
+    H5TRACE2("*s", "iIu", type_id, membno);
 
     /* Check args */
     if (NULL == (dt = (H5T_t *)H5I_object_verify(type_id,H5I_DATATYPE)))
diff --git a/src/H5Tnative.c b/src/H5Tnative.c
index 1a97f39..960a811 100644
--- a/src/H5Tnative.c
+++ b/src/H5Tnative.c
@@ -396,7 +396,7 @@ H5T_get_native_type(H5T_t *dtype, H5T_direction_t direction, size_t *struct_alig
                         HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, NULL, "cannot get member value")
                     HDmemcpy(memb_value, tmp_memb_value, H5T_get_size(super_type));
 
-                    if(H5T_convert(tpath, super_type_id, nat_super_type_id, (size_t)1, (size_t)0, (size_t)0, memb_value, NULL, H5P_DEFAULT) < 0)
+                    if(H5T_convert(tpath, super_type_id, nat_super_type_id, (size_t)1, (size_t)0, (size_t)0, memb_value, NULL, H5P_DATASET_XFER_DEFAULT) < 0)
                         HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, NULL, "cannot get member value")
 
                     if(H5T__enum_insert(new_type, memb_name, memb_value) < 0)
diff --git a/src/H5Topaque.c b/src/H5Topaque.c
index d68e659..e93bf65 100644
--- a/src/H5Topaque.c
+++ b/src/H5Topaque.c
@@ -121,6 +121,7 @@ H5Tget_tag(hid_t type_id)
     char	*ret_value;
 
     FUNC_ENTER_API(NULL)
+    H5TRACE1("*s", "i", type_id);
 
     /* Check args */
     if (NULL == (dt = H5I_object_verify(type_id,H5I_DATATYPE)))
diff --git a/src/H5Tpkg.h b/src/H5Tpkg.h
index bd37829..ab64fdc 100644
--- a/src/H5Tpkg.h
+++ b/src/H5Tpkg.h
@@ -124,74 +124,21 @@
 #define H5T_CONV_INTERNAL_FP_LDOUBLE      1
 #endif /*H5_SIZEOF_LONG_DOUBLE && H5_CONVERT_DENORMAL_FLOAT*/
 
-/* Define an internal macro for converting all integers to long double.  SGI compilers give some
- * incorrect conversions. */
-#if (H5_WANT_DATA_ACCURACY && H5_INTEGER_TO_LDOUBLE_ACCURATE) || (!H5_WANT_DATA_ACCURACY)
-#define H5T_CONV_INTERNAL_INTEGER_LDOUBLE         1
-#endif
-
-/* Define an internal macro for converting unsigned long to float.
- * Pathscale compiler on Sandia's Linux machine has some problem.
- * 64-bit Solaris does different rounding. */
-#if (H5_WANT_DATA_ACCURACY && H5_ULONG_TO_FLOAT_ACCURATE && H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE) || \
-    (!H5_WANT_DATA_ACCURACY)
-#define H5T_CONV_INTERNAL_ULONG_FLT         1
-#endif
-
-/* Define an internal macro for converting unsigned (long) long to double.
- * 64-bit Solaris does different rounding. */
-#if (H5_WANT_DATA_ACCURACY && H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE) || (!H5_WANT_DATA_ACCURACY)
-#define H5T_CONV_INTERNAL_ULONG_DBL         1
-#endif
-
-/* Define an internal macro for converting unsigned long to long double.  SGI compilers give some
- * incorrect conversions. 64-bit Solaris does different rounding. */
-#if (H5_WANT_DATA_ACCURACY && H5_INTEGER_TO_LDOUBLE_ACCURATE && H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE) || \
-    (!H5_WANT_DATA_ACCURACY)
-#define H5T_CONV_INTERNAL_ULONG_LDOUBLE       1
-#endif
-
 /* Define an internal macro for converting long long to long double.  Mac OS 10.4 gives some
  * incorrect conversions. */
-#if (H5_WANT_DATA_ACCURACY && H5_INTEGER_TO_LDOUBLE_ACCURATE && defined(H5_LLONG_TO_LDOUBLE_CORRECT)) || \
-    (!H5_WANT_DATA_ACCURACY)
+#if (H5_WANT_DATA_ACCURACY && defined(H5_LLONG_TO_LDOUBLE_CORRECT)) || (!H5_WANT_DATA_ACCURACY)
 #define H5T_CONV_INTERNAL_LLONG_LDOUBLE       1
 #endif
 
-/* Define an internal macro for converting unsigned long long to floating numbers.  SGI compilers give
- * some incorect conversion.  64-bit Solaris does different rounding.   Windows Visual Studio 6 does
- * not support unsigned long long. */
-#if (H5_WANT_DATA_ACCURACY && H5_ULLONG_TO_FP_CAST_WORKS && H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE) || \
-    (!H5_WANT_DATA_ACCURACY && H5_ULLONG_TO_FP_CAST_WORKS)
-#define H5T_CONV_INTERNAL_ULLONG_FP         1
-#endif
-
 /* Define an internal macro for converting unsigned long long to long double.  SGI compilers give
  * some incorect conversion.  64-bit Solaris does different rounding.   Windows Visual Studio 6 does
  * not support unsigned long long.  For FreeBSD(sleipnir), the last 2 bytes of mantissa are lost when
  * compiler tries to do the conversion.  For Cygwin, compiler doesn't do rounding correctly.
  * Mac OS 10.4 gives some incorrect result. */
-#if (H5_WANT_DATA_ACCURACY && H5_ULLONG_TO_FP_CAST_WORKS && H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE && \
-    defined(H5_ULLONG_TO_LDOUBLE_PRECISION) && defined(H5_LLONG_TO_LDOUBLE_CORRECT)) || (!H5_WANT_DATA_ACCURACY && \
-    H5_ULLONG_TO_FP_CAST_WORKS)
+#if (H5_WANT_DATA_ACCURACY && defined(H5_LLONG_TO_LDOUBLE_CORRECT)) || (!H5_WANT_DATA_ACCURACY)
 #define H5T_CONV_INTERNAL_ULLONG_LDOUBLE         1
 #endif
 
-/* Define an internal macro for converting long double to all integers.  SGI compilers give some incorrect
- * conversions.  HP-UX 11.00 compiler generates floating exception. */
-#if (H5_WANT_DATA_ACCURACY && H5_LDOUBLE_TO_INTEGER_ACCURATE && H5_LDOUBLE_TO_INTEGER_WORKS) || \
-    (!H5_WANT_DATA_ACCURACY && H5_LDOUBLE_TO_INTEGER_WORKS)
-#define H5T_CONV_INTERNAL_LDOUBLE_INTEGER         1
-#endif
-
-/* Define an internal macro for converting long double to unsigned int.  SGI compilers give some incorrect
- * conversions.  HP-UX 11.00 compiler generates floating exception.  Some Intel compilers on some Linux
- * give incorrect values. */
-#if (H5_WANT_DATA_ACCURACY && H5_LDOUBLE_TO_INTEGER_ACCURATE && H5_LDOUBLE_TO_UINT_ACCURATE && \
-    H5_LDOUBLE_TO_INTEGER_WORKS) || (!H5_WANT_DATA_ACCURACY && H5_LDOUBLE_TO_INTEGER_WORKS)
-#define H5T_CONV_INTERNAL_LDOUBLE_UINT         1
-#endif
-
 /* Define an internal macro for converting floating numbers to long long.  The hard conversion on Windows
  * .NET 2003 has a bug and gives wrong exception value. */
 #if (H5_WANT_DATA_ACCURACY && !defined(H5_HW_FP_TO_LLONG_NOT_WORKS)) || (!H5_WANT_DATA_ACCURACY)
@@ -201,28 +148,17 @@
 /* Define an internal macro for converting long double to long long.  SGI compilers give some incorrect
  * conversions. Mac OS 10.4 gives incorrect conversions. HP-UX 11.00 compiler generates floating exception.
  * The hard conversion on Windows .NET 2003 has a bug and gives wrong exception value. */
-#if (H5_WANT_DATA_ACCURACY && !defined(H5_HW_FP_TO_LLONG_NOT_WORKS) && H5_LDOUBLE_TO_INTEGER_ACCURATE && \
-    H5_LDOUBLE_TO_INTEGER_WORKS && defined(H5_LDOUBLE_TO_LLONG_ACCURATE)) || \
-    (!H5_WANT_DATA_ACCURACY && !defined(H5_HW_FP_TO_LLONG_NOT_WORKS) && H5_LDOUBLE_TO_INTEGER_WORKS)
+#if (H5_WANT_DATA_ACCURACY && !defined(H5_HW_FP_TO_LLONG_NOT_WORKS) && \
+    defined(H5_LDOUBLE_TO_LLONG_ACCURATE)) || \
+    (!H5_WANT_DATA_ACCURACY && !defined(H5_HW_FP_TO_LLONG_NOT_WORKS))
 #define H5T_CONV_INTERNAL_LDOUBLE_LLONG         1
 #endif
 
-/* Define an internal macro for converting floating numbers to unsigned long long.  PGI compiler does
- * roundup when the source fraction part is greater than 0.5.  HP-UX compilers set the maximal number
- * for unsigned long long as 0x7fffffffffffffff during conversion. */
-#if (H5_WANT_DATA_ACCURACY && H5_FP_TO_ULLONG_ACCURATE && defined(H5_FP_TO_ULLONG_RIGHT_MAXIMUM)) || \
-    (!H5_WANT_DATA_ACCURACY)
-#define H5T_CONV_INTERNAL_FP_ULLONG         1
-#else
-#define H5T_CONV_INTERNAL_FP_ULLONG         0
-#endif
-
 /* Define an internal macro for converting long double to unsigned long long.  SGI compilers give some
  * incorrect conversions.  Mac OS 10.4 gives incorrect conversions. HP-UX 11.00 compiler generates
  * floating exception. */
-#if (H5_WANT_DATA_ACCURACY && H5_LDOUBLE_TO_INTEGER_ACCURATE && H5_LDOUBLE_TO_INTEGER_WORKS && \
-    H5_FP_TO_ULLONG_ACCURATE && defined(H5_FP_TO_ULLONG_RIGHT_MAXIMUM) && defined(H5_LDOUBLE_TO_LLONG_ACCURATE)) || \
-    (!H5_WANT_DATA_ACCURACY && H5_LDOUBLE_TO_INTEGER_WORKS)
+#if (H5_WANT_DATA_ACCURACY && defined(H5_LDOUBLE_TO_LLONG_ACCURATE)) || \
+    (!H5_WANT_DATA_ACCURACY)
 #define H5T_CONV_INTERNAL_LDOUBLE_ULLONG         1
 #else
 #define H5T_CONV_INTERNAL_LDOUBLE_ULLONG         0
diff --git a/src/H5Z.c b/src/H5Z.c
index 18e365c..fc5a8e6 100644
--- a/src/H5Z.c
+++ b/src/H5Z.c
@@ -93,35 +93,28 @@ H5Z_init_interface (void)
 
     FUNC_ENTER_NOAPI_NOINIT
 
+    /* Internal filters */
+    if (H5Z_register (H5Z_SHUFFLE)<0)
+        HGOTO_ERROR (H5E_PLINE, H5E_CANTINIT, FAIL, "unable to register shuffle filter")
+    if (H5Z_register (H5Z_FLETCHER32)<0)
+        HGOTO_ERROR (H5E_PLINE, H5E_CANTINIT, FAIL, "unable to register fletcher32 filter")
+    if (H5Z_register (H5Z_NBIT)<0)
+        HGOTO_ERROR (H5E_PLINE, H5E_CANTINIT, FAIL, "unable to register nbit filter")
+    if (H5Z_register (H5Z_SCALEOFFSET)<0)
+        HGOTO_ERROR (H5E_PLINE, H5E_CANTINIT, FAIL, "unable to register scaleoffset filter")
+
+    /* External filters */
 #ifdef H5_HAVE_FILTER_DEFLATE
     if (H5Z_register (H5Z_DEFLATE)<0)
-	HGOTO_ERROR (H5E_PLINE, H5E_CANTINIT, FAIL, "unable to register deflate filter")
+        HGOTO_ERROR (H5E_PLINE, H5E_CANTINIT, FAIL, "unable to register deflate filter")
 #endif /* H5_HAVE_FILTER_DEFLATE */
-#ifdef H5_HAVE_FILTER_SHUFFLE
-    if (H5Z_register (H5Z_SHUFFLE)<0)
-	HGOTO_ERROR (H5E_PLINE, H5E_CANTINIT, FAIL, "unable to register shuffle filter")
-#endif /* H5_HAVE_FILTER_SHUFFLE */
-#ifdef H5_HAVE_FILTER_FLETCHER32
-    if (H5Z_register (H5Z_FLETCHER32)<0)
-	HGOTO_ERROR (H5E_PLINE, H5E_CANTINIT, FAIL, "unable to register fletcher32 filter")
-#endif /* H5_HAVE_FILTER_FLETCHER32 */
 #ifdef H5_HAVE_FILTER_SZIP
     H5Z_SZIP->encoder_present = SZ_encoder_enabled();
     if (H5Z_register (H5Z_SZIP)<0)
-	HGOTO_ERROR (H5E_PLINE, H5E_CANTINIT, FAIL, "unable to register szip filter")
+        HGOTO_ERROR (H5E_PLINE, H5E_CANTINIT, FAIL, "unable to register szip filter")
 #endif /* H5_HAVE_FILTER_SZIP */
-#ifdef H5_HAVE_FILTER_NBIT
-    if (H5Z_register (H5Z_NBIT)<0)
-        HGOTO_ERROR (H5E_PLINE, H5E_CANTINIT, FAIL, "unable to register nbit filter")
-#endif /* H5_HAVE_FILTER_NBIT */
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
-    if (H5Z_register (H5Z_SCALEOFFSET)<0)
-        HGOTO_ERROR (H5E_PLINE, H5E_CANTINIT, FAIL, "unable to register scaleoffset filter")
-#endif /* H5_HAVE_FILTER_SCALEOFFSET */
 
-#if (defined H5_HAVE_FILTER_DEFLATE | defined H5_HAVE_FILTER_FLETCHER32 | defined H5_HAVE_FILTER_SHUFFLE | defined H5_HAVE_FILTER_SZIP | defined H5_HAVE_FILTER_NBIT | defined H5_HAVE_FILTER_SCALEOFFSET)
 done:
-#endif /* (defined H5_HAVE_FILTER_DEFLATE | defined H5_HAVE_FILTER_FLETCHER32 | defined H5_HAVE_FILTER_SHUFFLE | defined H5_HAVE_FILTER_SZIP | defined H5_HAVE_FILTER_NBIT | defined H5_HAVE_FILTER_SCALEOFFSET) */
     FUNC_LEAVE_NOAPI(ret_value)
 }
 
diff --git a/src/H5Zfletcher32.c b/src/H5Zfletcher32.c
index 8d2643d..2ee69d1 100644
--- a/src/H5Zfletcher32.c
+++ b/src/H5Zfletcher32.c
@@ -27,8 +27,6 @@
 #include "H5MMprivate.h"	/* Memory management			*/
 #include "H5Zpkg.h"		/* Data filters				*/
 
-#ifdef H5_HAVE_FILTER_FLETCHER32
-
 /* Local function prototypes */
 static size_t H5Z_filter_fletcher32 (unsigned flags, size_t cd_nelmts,
     const unsigned cd_values[], size_t nbytes, size_t *buf_size, void **buf);
@@ -139,9 +137,11 @@ H5Z_filter_fletcher32 (unsigned flags, size_t UNUSED cd_nelmts, const unsigned U
         /* Compute checksum (can't fail) */
         fletcher = H5_checksum_fletcher32(src, nbytes);
 
-	if (NULL==(dst=outbuf=H5MM_malloc(nbytes+FLETCHER_LEN)))
+	if (NULL == (outbuf = H5MM_malloc(nbytes + FLETCHER_LEN)))
 	    HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, 0, "unable to allocate Fletcher32 checksum destination buffer")
 
+        dst = (unsigned char *) outbuf;
+
         /* Copy raw data */
         HDmemcpy((void*)dst, (void*)(*buf), nbytes);
 
@@ -164,5 +164,4 @@ done:
         H5MM_xfree(outbuf);
     FUNC_LEAVE_NOAPI(ret_value)
 }
-#endif /* H5_HAVE_FILTER_FLETCHER32 */
 
diff --git a/src/H5Znbit.c b/src/H5Znbit.c
index ebb534b..9506ace 100644
--- a/src/H5Znbit.c
+++ b/src/H5Znbit.c
@@ -25,8 +25,6 @@
 #include "H5Tprivate.h"		/* Datatypes         			*/
 #include "H5Zpkg.h"		/* Data filters				*/
 
-#ifdef H5_HAVE_FILTER_NBIT
-
 /* Struct of parameters needed for compressing/decompressing
  * one nbit atomic datatype: integer or floating-point
  */
@@ -1424,4 +1422,4 @@ static void H5Z_nbit_compress(unsigned char *data, unsigned d_nelmts, unsigned c
     * the last byte, increment the value by 1. */
    *buffer_size = new_size + 1;
 }
-#endif /* H5_HAVE_FILTER_NBIT */
+
diff --git a/src/H5Zpkg.h b/src/H5Zpkg.h
index b0df856..e2cec89 100644
--- a/src/H5Zpkg.h
+++ b/src/H5Zpkg.h
@@ -23,48 +23,35 @@
 /* Include private header file */
 #include "H5Zprivate.h"          /* Filter functions                */
 
+/********************/
+/* Internal filters */
+/********************/
 
-#ifdef H5_HAVE_FILTER_DEFLATE
-/*
- * Deflate filter
- */
-H5_DLLVAR const H5Z_class2_t H5Z_DEFLATE[1];
-#endif /* H5_HAVE_FILTER_DEFLATE */
-
-#ifdef H5_HAVE_FILTER_SHUFFLE
-/*
- * Shuffle filter
- */
+/* Shuffle filter */
 H5_DLLVAR const H5Z_class2_t H5Z_SHUFFLE[1];
-#endif /* H5_HAVE_FILTER_SHUFFLE */
 
-#ifdef H5_HAVE_FILTER_FLETCHER32
-/*
- * Fletcher32 filter
- */
+/* Fletcher32 filter */
 H5_DLLVAR const H5Z_class2_t H5Z_FLETCHER32[1];
-#endif /* H5_HAVE_FILTER_FLETCHER32 */
 
-#ifdef H5_HAVE_FILTER_SZIP
-/*
- * szip filter
- */
-H5_DLLVAR H5Z_class2_t H5Z_SZIP[1];
-#endif /* H5_HAVE_FILTER_SZIP */
-
-#ifdef H5_HAVE_FILTER_NBIT
-/*
- * nbit filter
- */
+/* n-bit filter */
 H5_DLLVAR H5Z_class2_t H5Z_NBIT[1];
-#endif /* H5_HAVE_FILTER_NBIT */
 
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
-/*
- * scaleoffset filter
- */
+/* Scale/offset filter */
 H5_DLLVAR H5Z_class2_t H5Z_SCALEOFFSET[1];
-#endif /* H5_HAVE_FILTER_SCALEOFFSET */
+
+/********************/
+/* External filters */
+/********************/
+
+/* Deflate filter */
+#ifdef H5_HAVE_FILTER_DEFLATE
+H5_DLLVAR const H5Z_class2_t H5Z_DEFLATE[1];
+#endif /* H5_HAVE_FILTER_DEFLATE */
+
+/* szip filter */
+#ifdef H5_HAVE_FILTER_SZIP
+H5_DLLVAR H5Z_class2_t H5Z_SZIP[1];
+#endif /* H5_HAVE_FILTER_SZIP */
 
 #endif /* _H5Zpkg_H */
 
diff --git a/src/H5Zscaleoffset.c b/src/H5Zscaleoffset.c
index 83864b9..38e2986 100644
--- a/src/H5Zscaleoffset.c
+++ b/src/H5Zscaleoffset.c
@@ -26,8 +26,6 @@
 #include "H5Tprivate.h"		/* Datatypes         			*/
 #include "H5Zpkg.h"		/* Data filters				*/
 
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
-
 /* Struct of parameters needed for compressing/decompressing one atomic datatype */
 typedef struct {
    size_t size;        /* datatype size */
@@ -1722,5 +1720,4 @@ H5Z_scaleoffset_compress(unsigned char *data, unsigned d_nelmts,
    for(i = 0; i < d_nelmts; i++)
        H5Z_scaleoffset_compress_one_atomic(data, i * p.size, buffer, &j, &buf_len, p);
 }
-#endif /* H5_HAVE_FILTER_SCALEOFFSET */
 
diff --git a/src/H5Zshuffle.c b/src/H5Zshuffle.c
index 4a67839..4138bf1 100644
--- a/src/H5Zshuffle.c
+++ b/src/H5Zshuffle.c
@@ -24,8 +24,6 @@
 #include "H5Tprivate.h"		/* Datatypes         			*/
 #include "H5Zpkg.h"		/* Data filters				*/
 
-#ifdef H5_HAVE_FILTER_SHUFFLE
-
 /* Local function prototypes */
 static herr_t H5Z_set_local_shuffle(hid_t dcpl_id, hid_t type_id, hid_t space_id);
 static size_t H5Z_filter_shuffle(unsigned flags, size_t cd_nelmts,
@@ -291,5 +289,4 @@ H5Z_filter_shuffle(unsigned flags, size_t cd_nelmts, const unsigned cd_values[],
 done:
     FUNC_LEAVE_NOAPI(ret_value)
 }
-#endif /*H5_HAVE_FILTER_SHUFFLE */
 
diff --git a/src/H5Ztrans.c b/src/H5Ztrans.c
index 1b8c096..7a94487 100644
--- a/src/H5Ztrans.c
+++ b/src/H5Ztrans.c
@@ -160,35 +160,6 @@ static void H5Z_print(H5Z_node *tree, FILE *stream);
         HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "Unexpected type conversion operation")	\
 }
 
-/* Due to the undefined nature of embedding macros/conditionals within macros, we employ
- * this clever little hack.  We always compile in the code for the type conversion, even if
- * it isn't supported in the compiler.  To avoid errors, we define  ULLONG_TO_FP_XFORM_TYPE_OP_ERROR on
- * unsupported compilers, which will cause the code to execute HGOTO_ERROR and skip the code
- * that does the actual conversion */
-
-
-#ifndef H5_ULLONG_TO_FP_CAST_WORKS
-#define H5Z_XFORM_ULL_DO_OP1(RESL,RESR,TYPE,OP,SIZE)                    \
-{									\
-    HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "Cannot convert from unsigned long long to double: required for data transform") \
-}
-#else
-#define H5Z_XFORM_ULL_DO_OP1(RESL,RESR,TYPE,OP,SIZE)                    \
-    H5Z_XFORM_DO_OP1(RESL,RESR,TYPE,OP,SIZE)
-#endif
-
-/* Windows Intel 8.1 compiler has error converting long long to double.
- * Hard code it in.
- */
-#ifndef H5_LLONG_TO_FP_CAST_WORKS
-#define H5Z_XFORM_LL_DO_OP1(RESL,RESR,TYPE,OP,SIZE)                     \
-{									\
-    HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "Cannot convert from long long to double: required for data transform") \
-}
-#else
-#define H5Z_XFORM_LL_DO_OP1(RESL,RESR,TYPE,OP,SIZE)                     \
-    H5Z_XFORM_DO_OP1(RESL,RESR,TYPE,OP,SIZE)
-#endif
 #if H5_SIZEOF_LONG_DOUBLE !=0
 #define H5Z_XFORM_TYPE_OP(RESL,RESR,TYPE,OP,SIZE)			\
 {									\
@@ -211,9 +182,9 @@ static void H5Z_print(H5Z_node *tree, FILE *stream);
     else if((TYPE) == H5T_NATIVE_ULONG)					\
 	H5Z_XFORM_DO_OP1((RESL), (RESR), unsigned long, OP, (SIZE))	\
     else if((TYPE) == H5T_NATIVE_LLONG)					\
-	H5Z_XFORM_LL_DO_OP1((RESL), (RESR), long long, OP, (SIZE))	\
+	H5Z_XFORM_DO_OP1((RESL), (RESR), long long, OP, (SIZE))	\
     else if((TYPE) == H5T_NATIVE_ULLONG)				\
-	H5Z_XFORM_ULL_DO_OP1((RESL), (RESR), unsigned long long, OP, (SIZE)) \
+	H5Z_XFORM_DO_OP1((RESL), (RESR), unsigned long long, OP, (SIZE)) \
     else if((TYPE) == H5T_NATIVE_FLOAT)					\
 	H5Z_XFORM_DO_OP1((RESL), (RESR), float, OP, (SIZE))		\
     else if((TYPE) == H5T_NATIVE_DOUBLE)				\
@@ -243,9 +214,9 @@ static void H5Z_print(H5Z_node *tree, FILE *stream);
     else if((TYPE) == H5T_NATIVE_ULONG)					\
 	H5Z_XFORM_DO_OP1((RESL), (RESR), unsigned long, OP, (SIZE))	\
     else if((TYPE) == H5T_NATIVE_LLONG)					\
-	H5Z_XFORM_LL_DO_OP1((RESL), (RESR), long long, OP, (SIZE))	\
+	H5Z_XFORM_DO_OP1((RESL), (RESR), long long, OP, (SIZE))	\
     else if((TYPE) == H5T_NATIVE_ULLONG)				\
-	H5Z_XFORM_ULL_DO_OP1((RESL), (RESR), unsigned long long, OP, (SIZE)) \
+	H5Z_XFORM_DO_OP1((RESL), (RESR), unsigned long long, OP, (SIZE)) \
     else if((TYPE) == H5T_NATIVE_FLOAT)					\
 	H5Z_XFORM_DO_OP1((RESL), (RESR), float, OP, (SIZE))		\
     else if((TYPE) == H5T_NATIVE_DOUBLE)				\
diff --git a/src/H5api_adpt.h b/src/H5api_adpt.h
index 845a9a0..7602310 100644
--- a/src/H5api_adpt.h
+++ b/src/H5api_adpt.h
@@ -21,59 +21,16 @@
 #ifndef H5API_ADPT_H
 #define H5API_ADPT_H
 
+#ifdef __cplusplus
+#define __attribute__(X)  /*void*/
+#endif /* __cplusplus */
+#ifndef H5_HAVE_ATTRIBUTE
+#define __attribute__(X)  /*void*/
+#endif /* H5_HAVE_ATTRIBUTE */
+
 /* This will only be defined if HDF5 was built with CMake */
 #ifdef H5_BUILT_AS_DYNAMIC_LIB
 
-#if defined (hdf5_EXPORTS)
-  #define _HDF5DLL_
-#else
-  #define _HDF5USEDLL_
-#endif
-
-#if defined (hdf5_test_EXPORTS)
-  #define _HDF5TESTDLL_
-#else
-  #define _HDF5TESTUSEDLL_
-#endif
-
-#if defined (hdf5_tools_EXPORTS)
-  #define _HDF5TOOLSDLL_
-#else
-  #define _HDF5TOOLSUSEDLL_
-#endif
-
-#if defined (hdf5_cpp_EXPORTS)
-  #define HDF5_CPPDLL_EXPORTS
-#else
-  #define HDF5CPP_USEDLL
-#endif
-
-#if defined (hdf5_hl_EXPORTS)
-  #define _HDF5_HLDLL_EXPORTS_
-#else
-  #define _HDF5USEHLDLL_
-#endif
-
-#if defined (hdf5_hl_cpp_EXPORTS)
-  #define HDF5_HL_CPPDLL_EXPORTS
-#else
-  #define HDF5USE_HLCPPDLL
-#endif
-
-#if defined (hdf5_f90cstub_EXPORTS)
-  #define HDF5FORT_CSTUB_DLL_EXPORTS
-#else
-  #define HDF5FORT_CSTUB_USEDLL
-#endif
-
-#if defined (hdf5_test_f90cstub_EXPORTS)
-  #define HDF5FORTTEST_CSTUB_DLL_EXPORTS
-#endif
-
-#if defined (hdf5_hl_f90cstub_EXPORTS)
-  #define HDF5_HL_F90CSTUBDLL_EXPORTS
-#endif
-
 #if defined(hdf5_EXPORTS)
   #if defined (_MSC_VER)  /* MSVC Compiler Case */
     #define H5_DLL __declspec(dllexport)
@@ -281,144 +238,25 @@
   #define HDF5_HL_F90CSTUBDLLVAR extern
 #endif /* HDF5_HL_F90CSTUBDLL */
 
-#elif defined(H5_BUILT_AS_STATIC_LIB)
+#else
   #define H5_DLL
-  #define H5_HLDLL
-  #define H5_HLCPPDLL
-  #define HDF5_HL_F90CSTUBDLL
   #define H5_DLLVAR extern
-  #define H5_DLLCPP
   #define H5TEST_DLL
   #define H5TEST_DLLVAR extern
   #define H5TOOLS_DLL
   #define H5TOOLS_DLLVAR extern
+  #define H5_DLLCPP
+  #define H5_DLLCPPVAR extern
+  #define H5_HLDLL
+  #define H5_HLDLLVAR extern
+  #define H5_HLCPPDLL
+  #define H5_HLCPPDLLVAR extern
   #define H5_FCDLL
   #define H5_FCDLLVAR extern
   #define H5_FCTESTDLL
   #define H5_FCTESTDLLVAR extern
-
-#else
-/* This is the original HDFGroup defined preprocessor code which should still work
- * with the VS projects that are maintained by "The HDF Group"
- * The Visual Studio project files will not be supported in the next major release of 1.10.
- */
-
-#if defined(H5_HAVE_WIN32_API)
-
-#if defined(_HDF5DLL_)
-#pragma warning(disable: 4273)  /* Disable the dll linkage warnings */
-#define H5_DLL __declspec(dllexport)
-#define H5_DLLVAR extern __declspec(dllexport)
-#elif defined(_HDF5USEDLL_)
-#define H5_DLL __declspec(dllimport)
-#define H5_DLLVAR __declspec(dllimport)
-#else
-#define H5_DLL
-#define H5_DLLVAR extern
-#endif /* _HDF5DLL_ */
-
-#if defined(_HDF5TESTDLL_)
-#pragma warning(disable: 4273)  /* Disable the dll linkage warnings */
-#define H5TEST_DLL __declspec(dllexport)
-#define H5TEST_DLLVAR extern __declspec(dllexport)
-#elif defined(_HDF5TESTUSEDLL_)
-#define H5TEST_DLL __declspec(dllimport)
-#define H5TEST_DLLVAR __declspec(dllimport)
-#else
-#define H5TEST_DLL
-#define H5TEST_DLLVAR extern
-#endif /* _HDF5TESTDLL_ */
-
-#if defined(_HDF5TOOLSDLL_)
-#pragma warning(disable: 4273)  /* Disable the dll linkage warnings */
-#define H5TOOLS_DLL __declspec(dllexport)
-#define H5TOOLS_DLLVAR extern __declspec(dllexport)
-#elif defined(_HDF5TOOLSUSEDLL_)
-#define H5TOOLS_DLL __declspec(dllimport)
-#define H5TOOLS_DLLVAR __declspec(dllimport)
-#else
-#define H5TOOLS_DLL
-#define H5TOOLS_DLLVAR extern
-#endif /* _HDF5TOOLSDLL_ */
-
-#if defined(_HDF5_HLDLL_EXPORTS_)
-#pragma warning(disable: 4273)  /* Disable the dll linkage warnings */
-#define H5_HLDLL __declspec(dllexport)
-#elif defined(_HDF5USEHLDLL_)
-#define H5_HLDLL __declspec(dllimport)
-#else
-#define H5_HLDLL
-#endif /* _HDF5_HLDLL_EXPORTS */
-
-#if defined(HDF5_HL_CPPDLL_EXPORTS)
-#pragma warning(disable: 4273)  /* Disable the dll linkage warnings */
-#define H5_HLCPPDLL __declspec(dllexport)
-#elif defined(HDF5USE_HLCPPDLL)
-#define H5_HLCPPDLL __declspec(dllimport)
-#else
-#define H5_HLCPPDLL
-#endif /*HDF5_HL_CPPDLL_EXPORTS*/
-
-#if defined(HDF5_HL_F90CSTUBDLL_EXPORTS)
-#pragma warning(disable: 4273)  /* Disable the dll linkage warnings */
-#define HDF5_HL_F90CSTUBDLL __declspec(dllexport)
-#elif defined(HDF5USE_HLF90CSTUBDLL)
-#define HDF5_HL_F90CSTUBDLL __declspec(dllimport)
-#else
-#define HDF5_HL_F90CSTUBDLL
-#endif /*HDF5_HL_F90CSTUBDLL_EXPORTS*/
-
-
-#if defined(HDF5FORT_CSTUB_DLL_EXPORTS)
-#pragma warning(disable: 4273)  /* Disable the dll linkage warnings */
-#define H5_FCDLL __declspec(dllexport)
-#define H5_FCDLLVAR extern __declspec(dllexport)
-#elif defined(HDF5FORT_CSTUB_USEDLL)
-#define H5_FCDLL __declspec(dllimport)
-#define H5_FCDLLVAR __declspec(dllimport)
-#else
-#define H5_FCDLL
-#define H5_FCDLLVAR extern
-#endif /* _HDF5_FORTRANDLL_EXPORTS_ */
-
-#if defined(HDF5FORTTEST_CSTUB_DLL_EXPORTS)
-#pragma warning(disable: 4273)  /* Disable the dll linkage warnings */
-#define H5_FCTESTDLL __declspec(dllexport)
-#define H5_FCTESTDLLVAR extern __declspec(dllexport)
-#elif defined(HDF5FORTTEST_CSTUB_USEDLL)
-#define H5_FCTESTDLL __declspec(dllimport)
-#define H5_FCTESTDLLVAR __declspec(dllimport)
-#else
-#define H5_FCTESTDLL
-#define H5_FCTESTDLLVAR extern
-#endif /* _HDF5_FORTRANDLL_EXPORTS_ */
-
-/* Added to export or to import C++ APIs - BMR (02-15-2002) */
-#if defined(HDF5_CPPDLL_EXPORTS) /* this name is generated at creation */
-#define H5_DLLCPP __declspec(dllexport)
-#elif defined(HDF5CPP_USEDLL)
-#define H5_DLLCPP __declspec(dllimport)
-#else
-#define H5_DLLCPP
-#endif /* HDF5_CPPDLL_EXPORTS */
-
-#else /*H5_HAVE_WIN32_API*/
-#define H5_DLL
-#define H5_HLDLL
-#define H5_HLCPPDLL
-#define HDF5_HL_F90CSTUBDLL
-#define H5_DLLVAR extern
-#define H5_DLLCPP
-#define H5TEST_DLL
-#define H5TEST_DLLVAR extern
-#define H5TOOLS_DLL
-#define H5TOOLS_DLLVAR extern
-#define H5_FCDLL
-#define H5_FCDLLVAR extern
-#define H5_FCTESTDLL
-#define H5_FCTESTDLLVAR extern
-#endif /*H5_HAVE_WIN32_API*/
+  #define HDF5_HL_F90CSTUBDLL
+  #define HDF5_HL_F90CSTUBDLLVAR extern
+#endif /* H5_BUILT_AS_DYNAMIC_LIB */
 
 #endif /* H5API_ADPT_H */
-
-#endif /*  */
diff --git a/src/H5config.h.in b/src/H5config.h.in
index daf7d0d..8b4648f 100644
--- a/src/H5config.h.in
+++ b/src/H5config.h.in
@@ -20,9 +20,6 @@
 /* Define the default plugins path to compile */
 #undef DEFAULT_PLUGINDIR
 
-/* Define the default virtual file driver to compile */
-#undef DEFAULT_VFD
-
 /* Define if `dev_t' is a scalar */
 #undef DEV_T_IS_SCALAR
 
@@ -44,17 +41,6 @@
    integer values. */
 #undef FP_TO_INTEGER_OVERFLOW_WORKS
 
-/* Define if your system roundup accurately converting floating-point to
-   unsigned long long values. */
-#undef FP_TO_ULLONG_ACCURATE
-
-/* Define if your system has right maximum convert floating-point to unsigned
-   long long values. */
-#undef FP_TO_ULLONG_RIGHT_MAXIMUM
-
-/* Define if gettimeofday() populates the tz pointer passed in */
-#undef GETTIMEOFDAY_GIVES_TZ
-
 /* Define to 1 if you have the `alarm' function. */
 #undef HAVE_ALARM
 
@@ -64,9 +50,6 @@
 /* Define if the __attribute__(()) extension is present */
 #undef HAVE_ATTRIBUTE
 
-/* Define to 1 if you have the `BSDgettimeofday' function. */
-#undef HAVE_BSDGETTIMEOFDAY
-
 /* Define if the compiler understands C99 designated initialization of structs
    and unions */
 #undef HAVE_C99_DESIGNATED_INITIALIZER
@@ -83,14 +66,10 @@
 /* Define if Darwin or Mac OS X */
 #undef HAVE_DARWIN
 
-/* Define to 1 if you have the declaration of `tzname', and to 0 if you don't.
-   */
-#undef HAVE_DECL_TZNAME
-
 /* Define to 1 if you have the `difftime' function. */
 #undef HAVE_DIFFTIME
 
-/* Define if the direct I/O virtual file driver should be compiled */
+/* Define if the direct I/O virtual file driver (VFD) should be compiled */
 #undef HAVE_DIRECT
 
 /* Define to 1 if you have the <dirent.h> header file. */
@@ -111,18 +90,6 @@
 /* Define if support for deflate (zlib) filter is enabled */
 #undef HAVE_FILTER_DEFLATE
 
-/* Define if support for Fletcher32 checksum is enabled */
-#undef HAVE_FILTER_FLETCHER32
-
-/* Define if support for nbit filter is enabled */
-#undef HAVE_FILTER_NBIT
-
-/* Define if support for scaleoffset filter is enabled */
-#undef HAVE_FILTER_SCALEOFFSET
-
-/* Define if support for shuffle filter is enabled */
-#undef HAVE_FILTER_SHUFFLE
-
 /* Define if support for szip filter is enabled */
 #undef HAVE_FILTER_SZIP
 
@@ -196,24 +163,12 @@
 /* Define to 1 if you have the `dmalloc' library (-ldmalloc). */
 #undef HAVE_LIBDMALLOC
 
-/* Define to 1 if you have the `lmpe' library (-llmpe). */
-#undef HAVE_LIBLMPE
-
 /* Define to 1 if you have the `m' library (-lm). */
 #undef HAVE_LIBM
 
 /* Define to 1 if you have the `mpe' library (-lmpe). */
 #undef HAVE_LIBMPE
 
-/* Define to 1 if you have the `mpi' library (-lmpi). */
-#undef HAVE_LIBMPI
-
-/* Define to 1 if you have the `mpich' library (-lmpich). */
-#undef HAVE_LIBMPICH
-
-/* Define to 1 if you have the `mpio' library (-lmpio). */
-#undef HAVE_LIBMPIO
-
 /* Define to 1 if you have the `nsl' library (-lnsl). */
 #undef HAVE_LIBNSL
 
@@ -325,12 +280,6 @@
 /* Define if `struct text_info' is defined */
 #undef HAVE_STRUCT_TEXT_INFO
 
-/* Define if `struct timezone' is defined */
-#undef HAVE_STRUCT_TIMEZONE
-
-/* Define to 1 if `tm_zone' is a member of `struct tm'. */
-#undef HAVE_STRUCT_TM_TM_ZONE
-
 /* Define if `struct videoconfig' is defined */
 #undef HAVE_STRUCT_VIDEOCONFIG
 
@@ -391,14 +340,6 @@
 /* Define if `tm_gmtoff' is a member of `struct tm' */
 #undef HAVE_TM_GMTOFF
 
-/* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use
-   `HAVE_STRUCT_TM_TM_ZONE' instead. */
-#undef HAVE_TM_ZONE
-
-/* Define to 1 if you don't have `tm_zone' but do have the external array
-   `tzname'. */
-#undef HAVE_TZNAME
-
 /* Define to 1 if you have the <unistd.h> header file. */
 #undef HAVE_UNISTD_H
 
@@ -426,9 +367,6 @@
 /* Define to 1 if you have the `_scrsize' function. */
 #undef HAVE__SCRSIZE
 
-/* Define if `__tm_gmtoff' is a member of `struct tm' */
-#undef HAVE___TM_GMTOFF
-
 /* Define if your system can't handle converting floating-point values to long
    long. */
 #undef HW_FP_TO_LLONG_NOT_WORKS
@@ -436,16 +374,6 @@
 /* Define if HDF5's high-level library headers should be included in hdf5.h */
 #undef INCLUDE_HL
 
-/* Define if your system can accurately convert from integers to long double
-   values. */
-#undef INTEGER_TO_LDOUBLE_ACCURATE
-
-/* Define if your system can convert long double to integers accurately. */
-#undef LDOUBLE_TO_INTEGER_ACCURATE
-
-/* Define if your system can convert from long double to integer values. */
-#undef LDOUBLE_TO_INTEGER_WORKS
-
 /* Define if your system can convert long double to (unsigned) long long
    values correctly. */
 #undef LDOUBLE_TO_LLONG_ACCURATE
@@ -454,13 +382,6 @@
    special algorithm. */
 #undef LDOUBLE_TO_LONG_SPECIAL
 
-/* Define if your system can convert long double to unsigned int values
-   correctly. */
-#undef LDOUBLE_TO_UINT_ACCURATE
-
-/* Define if your system can compile long long to floating-point casts. */
-#undef LLONG_TO_FP_CAST_WORKS
-
 /* Define if your system can convert (unsigned) long long to long double
    values correctly. */
 #undef LLONG_TO_LDOUBLE_CORRECT
@@ -482,9 +403,6 @@
 /* Define if deprecated public API symbols are disabled */
 #undef NO_DEPRECATED_SYMBOLS
 
-/* Define if shared writing must be disabled (CodeWarrior only) */
-#undef NO_SHARED_WRITING
-
 /* Name of package */
 #undef PACKAGE
 
@@ -639,25 +557,6 @@
 /* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
 #undef TIME_WITH_SYS_TIME
 
-/* Define to 1 if your <sys/time.h> declares `struct tm'. */
-#undef TM_IN_SYS_TIME
-
-/* Define if your system can compile unsigned long long to floating-point
-   casts. */
-#undef ULLONG_TO_FP_CAST_WORKS
-
-/* Define if your system can convert unsigned long long to long double with
-   correct precision. */
-#undef ULLONG_TO_LDOUBLE_PRECISION
-
-/* Define if your system accurately converting unsigned long to float values.
-   */
-#undef ULONG_TO_FLOAT_ACCURATE
-
-/* Define if your system can accurately convert unsigned (long) long values to
-   floating-point values. */
-#undef ULONG_TO_FP_BOTTOM_BIT_ACCURATE
-
 /* Define using v1.6 public API symbols by default */
 #undef USE_16_API_DEFAULT
 
@@ -669,10 +568,6 @@
 /* Version number of package */
 #undef VERSION
 
-/* Define if vsnprintf() returns the correct value for formatted strings that
-   don't fit into size allowed */
-#undef VSNPRINTF_WORKS
-
 /* Data accuracy is prefered to speed during data conversions */
 #undef WANT_DATA_ACCURACY
 
diff --git a/src/H5detect.c b/src/H5detect.c
index aed7514..fc0570c 100644
--- a/src/H5detect.c
+++ b/src/H5detect.c
@@ -323,7 +323,7 @@ precision (detected_t *d)
      * steps).  This is necessary because padding bits can change arbitrarily \
      * and interfere with detection of the various properties below unless we \
      * know to ignore them. */                                                \
-    _v1 = 4.0;                                                                \
+    _v1 = (TYPE)4.0L;                                                         \
     HDmemcpy(_buf1, (const void *)&_v1, sizeof(TYPE));                        \
     for(_i = 0; _i < (int)sizeof(TYPE); _i++)                                 \
         for(_byte_mask = (unsigned char)1; _byte_mask; _byte_mask <<= 1) {    \
@@ -335,10 +335,10 @@ precision (detected_t *d)
         } /* end for */                                                       \
                                                                               \
     /* Byte Order */                                                          \
-    for(_i = 0, _v1 = 0.0, _v2 = 1.0; _i < (int)sizeof(TYPE); _i++) {         \
+    for(_i = 0, _v1 = (TYPE)0.0L, _v2 = (TYPE)1.0L; _i < (int)sizeof(TYPE); _i++) {         \
         _v3 = _v1;                                                            \
         _v1 += _v2;                                                           \
-        _v2 /= 256.0;                                                         \
+        _v2 /= (TYPE)256.0L;                                                  \
         HDmemcpy(_buf1, (const void *)&_v1, sizeof(TYPE));                    \
         HDmemcpy(_buf3, (const void *)&_v3, sizeof(TYPE));                    \
         _j = byte_cmp(sizeof(TYPE), _buf3, _buf1, _pad_mask);                 \
@@ -353,20 +353,20 @@ precision (detected_t *d)
         INFO.is_vax = TRUE;                                                   \
                                                                               \
     /* Implicit mantissa bit */                                               \
-    _v1 = 0.5;                                                                \
-    _v2 = 1.0;                                                                \
+    _v1 = (TYPE)0.5L;                                                         \
+    _v2 = (TYPE)1.0L;                                                         \
     INFO.imp = imp_bit (sizeof(TYPE), INFO.perm, &_v1, &_v2, _pad_mask);      \
                                                                               \
     /* Sign bit */                                                            \
-    _v1 = 1.0;                                                                \
-    _v2 = -1.0;                                                               \
+    _v1 = (TYPE)1.0L;                                                         \
+    _v2 = (TYPE)-1.0L;                                                        \
     INFO.sign = bit_cmp (sizeof(TYPE), INFO.perm, &_v1, &_v2, _pad_mask);     \
                                                                               \
     /* Mantissa */                                                            \
     INFO.mpos = 0;                                                            \
                                                                               \
-    _v1 = 1.0;                                                                \
-    _v2 = 1.5;                                                                \
+    _v1 = (TYPE)1.0L;                                                         \
+    _v2 = (TYPE)1.5L;                                                         \
     INFO.msize = bit_cmp (sizeof(TYPE), INFO.perm, &_v1, &_v2, _pad_mask);    \
     INFO.msize += 1 + (INFO.imp?0:1) - INFO.mpos;                             \
                                                                               \
@@ -375,7 +375,7 @@ precision (detected_t *d)
                                                                               \
     INFO.esize = INFO.sign - INFO.epos;                                       \
                                                                               \
-    _v1 = 1.0;                                                                \
+    _v1 = (TYPE)1.0L;                                                         \
     INFO.bias = find_bias (INFO.epos, INFO.esize, INFO.perm, &_v1);           \
     precision (&(INFO));                                                      \
     ALIGNMENT(TYPE, INFO);                                                    \
@@ -858,6 +858,7 @@ done:\n\
     printf("/* signal_handlers tested: %d times */\n", signal_handler_tested_g);
     printf("/* sigbus_handler called: %d times */\n", sigbus_handler_called_g);
     printf("/* sigsegv_handler called: %d times */\n", sigsegv_handler_called_g);
+    printf("/* sigill_handler called: %d times */\n", sigill_handler_called_g);
 } /* end print_results() */
 
 

@@ -1381,8 +1382,8 @@ detect_C89_integers(void)
 static void
 detect_C89_floats(void)
 {
-    DETECT_F(float,		  FLOAT,        d_g[nd_g]); nd_g++;
-    DETECT_F(double,		  DOUBLE,       d_g[nd_g]); nd_g++;
+    DETECT_F(float,     FLOAT,      d_g[nd_g]); nd_g++;
+    DETECT_F(double,    DOUBLE,     d_g[nd_g]); nd_g++;
 }
 
 

@@ -1750,13 +1751,17 @@ main(void)
 
 #if defined(H5SETJMP) && defined(H5_HAVE_SIGNAL)
     /* verify the SIGBUS and SIGSEGV handlers work properly */
-    if (verify_signal_handlers (SIGBUS, sigbus_handler) != 0){
-	fprintf(stderr, "Signal handler %s for signal %d failed\n",
-	    "sigbus_handler", SIGBUS);
+    if (verify_signal_handlers(SIGBUS, sigbus_handler) != 0) {
+        fprintf(stderr, "Signal handler %s for signal %d failed\n",
+                "sigbus_handler", SIGBUS);
     }
-    if (verify_signal_handlers (SIGSEGV, sigsegv_handler) != 0){
-	fprintf(stderr, "Signal handler %s for signal %d failed\n",
-	    "sigsegv_handler", SIGSEGV);
+    if (verify_signal_handlers(SIGSEGV, sigsegv_handler) != 0) {
+        fprintf(stderr, "Signal handler %s for signal %d failed\n",
+                "sigsegv_handler", SIGSEGV);
+    }
+    if (verify_signal_handlers(SIGILL, sigill_handler) != 0) {
+        fprintf(stderr, "Signal handler %s for signal %d failed\n",
+                "sigill_handler", SIGILL);
     }
 #else
     align_status_g |= STA_NoHandlerVerify;
diff --git a/src/H5private.h b/src/H5private.h
index 3f0fccf..4c4b9d1 100644
--- a/src/H5private.h
+++ b/src/H5private.h
@@ -160,6 +160,10 @@
 #include <dirent.h>
 #endif
 
+/* Define the default VFD for this platform.
+ * Since the removal of the Windows VFD, this is sec2 for all platforms.
+ */
+#define H5_DEFAULT_VFD      H5FD_SEC2
 
 #ifdef H5_HAVE_WIN32_API
 /* The following two defines must be before any windows headers are included */
@@ -211,10 +215,9 @@
 #define eventa(func_name)   h5_mpe_eventa
 #define eventb(func_name)   h5_mpe_eventb
 #define MPE_LOG_VARS                                                    \
-    static int h5_mpe_eventa = -1;                                      \
-    static int h5_mpe_eventb = -1;                                      \
-    static char p_event_start[128];                                     \
-    static char p_event_end[128];
+    static int eventa(FUNC) = -1;                                       \
+    static int eventb(FUNC) = -1;                                       \
+    char p_event_start[128];
 
 /* Hardwire the color to "red", since that's what all the routines are using
  * now.  In the future, if we want to change that color for a given routine,
@@ -223,19 +226,18 @@
  * color information down to the BEGIN_MPE_LOG macro (which should have a new
  * BEGIN_MPE_LOG_COLOR variant). -QAK
  */
+
 #define BEGIN_MPE_LOG                                                   \
-  if(H5_MPEinit_g) {                                                    \
-    if(h5_mpe_eventa == -1 && h5_mpe_eventb == -1) {                    \
-         const char *p_color = "red";                                   \
-                                                                        \
-         h5_mpe_eventa = MPE_Log_get_event_number();                    \
-         h5_mpe_eventb = MPE_Log_get_event_number();                    \
-         HDsnprintf(p_event_start, sizeof(p_event_start) - 1, "start_%s", FUNC); \
-         HDsnprintf(p_event_end, sizeof(p_event_end) - 1, "end_%s", FUNC); \
-         MPE_Describe_state(h5_mpe_eventa, h5_mpe_eventb, (char *)FUNC, (char *)p_color); \
-    }                                                                   \
-    MPE_Log_event(h5_mpe_eventa, 0, p_event_start);                     \
-  }
+    if (H5_MPEinit_g){                                                  \
+        sprintf(p_event_start, "start %s", FUNC);                       \
+        if (eventa(FUNC) == -1 && eventb(FUNC) == -1) {                 \
+            const char* p_color = "red";                                \
+            eventa(FUNC)=MPE_Log_get_event_number();                    \
+            eventb(FUNC)=MPE_Log_get_event_number();                    \
+            MPE_Describe_state(eventa(FUNC), eventb(FUNC), FUNC, p_color); \
+        }                                                               \
+        MPE_Log_event(eventa(FUNC), 0, p_event_start);                  \
+    }
 
 
 /*------------------------------------------------------------------------
@@ -245,8 +247,8 @@
  * Programmer: Long Wang
  */
 #define FINISH_MPE_LOG                                                  \
-    if(H5_MPEinit_g) {                                                  \
-        MPE_Log_event(h5_mpe_eventb, 0, p_event_end);                   \
+    if (H5_MPEinit_g) {                                                 \
+        MPE_Log_event(eventb(FUNC), 0, FUNC);                           \
     }
 
 #else /* H5_HAVE_MPE */
@@ -274,19 +276,19 @@
 #endif
 
 /*
- * Does the compiler support the __attribute__(()) syntax?  This is how gcc
- * suppresses warnings about unused function arguments.   It's no big deal if
- * we don't.
+ * Does the compiler support the __attribute__(()) syntax?  It's no
+ * big deal if we don't.
  */
 #ifdef __cplusplus
-#   define __attribute__(X)  /*void*/
 #   define UNUSED    /*void*/
+#   define NORETURN  /*void*/
 #else /* __cplusplus */
 #ifdef H5_HAVE_ATTRIBUTE
 #   define UNUSED    __attribute__((unused))
+#   define NORETURN  __attribute__((noreturn))
 #else
-#   define __attribute__(X)  /*void*/
 #   define UNUSED    /*void*/
+#   define NORETURN  /*void*/
 #endif
 #endif /* __cplusplus */
 
@@ -473,6 +475,48 @@
 #  define H5_DEC_ENUM(TYPE,VAR) (VAR)=((TYPE)((VAR)-1))
 #endif
 
+/* Double constant wrapper
+ * 
+ * Quiets gcc warnings from -Wunsuffixed-float-constants.
+ *
+ * This is a really annoying warning since the standard specifies that
+ * constants of type double do NOT get a suffix so there's no way
+ * to specify a constant of type double. To quiet gcc, we specify floating
+ * point constants as type long double and cast to double.
+ *
+ * Note that this macro only needs to be used where using a double
+ * is important. For most code, suffixing constants with F will quiet the
+ * compiler and not produce erroneous code.
+ */
+#define H5_DOUBLE(S) ((double) S ## L)
+
+/*
+ * Methods to compare the equality of floating-point values:
+ *
+ *    1. H5_XXX_ABS_EQUAL - check if the difference is smaller than the
+ *       Epsilon value.  The Epsilon values, FLT_EPSILON, DBL_EPSILON,
+ *       and LDBL_EPSILON, are defined by compiler in float.h.
+ *
+ *    2. H5_XXX_REL_EQUAL - check if the relative difference is smaller than a
+ *       predefined value M.  See if two values are relatively equal.
+ *       It's the developer's responsibility not to pass in the value 0, which
+ *       may cause the equation to fail.
+ */
+#define H5_FLT_ABS_EQUAL(X,Y)       (HDfabsf(X-Y) < FLT_EPSILON)
+#define H5_DBL_ABS_EQUAL(X,Y)       (HDfabs (X-Y) < DBL_EPSILON)
+#define H5_LDBL_ABS_EQUAL(X,Y)      (HDfabsl(X-Y) < LDBL_EPSILON)
+
+#define H5_FLT_REL_EQUAL(X,Y,M)     (HDfabsf((Y-X) / X) < M)
+#define H5_DBL_REL_EQUAL(X,Y,M)     (HDfabs ((Y-X) / X) < M)
+#define H5_LDBL_REL_EQUAL(X,Y,M)    (HDfabsl((Y-X) / X) < M)
+
+/* KiB, MiB, GiB, TiB, EiB - Used in profiling and timing code */
+#define H5_KB (1024.0F)
+#define H5_MB (1024.0F * 1024.0F)
+#define H5_GB (1024.0F * 1024.0F * 1024.0F)
+#define H5_TB (1024.0F * 1024.0F * 1024.0F * 1024.0F)
+#define H5_EB (1024.0F * 1024.0F * 1024.0F * 1024.0F * 1024.0F)
+
 /*
  * Data types and functions for timing certain parts of the library.
  */
@@ -564,9 +608,6 @@ typedef struct {
 #ifndef HDatol
     #define HDatol(S)    atol(S)
 #endif /* HDatol */
-#ifndef HDBSDgettimeofday
-    #define HDBSDgettimeofday(S,P)  BSDgettimeofday(S,P)
-#endif /* HDBSDgettimeofday */
 #ifndef HDbsearch
     #define HDbsearch(K,B,N,Z,F)  bsearch(K,B,N,Z,F)
 #endif /* HDbsearch */
@@ -1845,7 +1886,7 @@ static herr_t    H5_INTERFACE_INIT_FUNC(void);
 
 /* Local variables for API routines */
 #define FUNC_ENTER_API_VARS                                                   \
-    MPE_LOG_VARS                                                              \
+    MPE_LOG_VARS                                                  \
     H5TRACE_DECL
 
 #define FUNC_ENTER_API_COMMON                         \
diff --git a/src/H5public.h b/src/H5public.h
index fb8cbfa..f2cea1a 100644
--- a/src/H5public.h
+++ b/src/H5public.h
@@ -94,10 +94,10 @@ extern "C" {
 /* Version numbers */
 #define H5_VERS_MAJOR	1	/* For major interface/format changes  	     */
 #define H5_VERS_MINOR	8	/* For minor interface/format changes  	     */
-#define H5_VERS_RELEASE	14	/* For tweaks, bug-fixes, or development     */
+#define H5_VERS_RELEASE	15	/* For tweaks, bug-fixes, or development     */
 #define H5_VERS_SUBRELEASE ""	/* For pre-releases like snap0       */
 				/* Empty string for real releases.           */
-#define H5_VERS_INFO    "HDF5 library version: 1.8.14"      /* Full version string */
+#define H5_VERS_INFO    "HDF5 library version: 1.8.15"      /* Full version string */
 
 #define H5check()	H5check_version(H5_VERS_MAJOR,H5_VERS_MINOR,	      \
 				        H5_VERS_RELEASE)
@@ -332,6 +332,8 @@ H5_DLL herr_t H5get_libversion(unsigned *majnum, unsigned *minnum,
 H5_DLL herr_t H5check_version(unsigned majnum, unsigned minnum,
 			       unsigned relnum);
 H5_DLL herr_t H5free_memory(void *mem);
+H5_DLL void *H5allocate_memory(size_t size, hbool_t clear);
+H5_DLL void *H5resize_memory(void *mem, size_t size);
 
 #ifdef __cplusplus
 }
diff --git a/src/H5timer.c b/src/H5timer.c
index 301d98b..94f2883 100644
--- a/src/H5timer.c
+++ b/src/H5timer.c
@@ -90,8 +90,6 @@
  * Programmer:	Robb Matzke
  *              Thursday, April 16, 1998
  *
- * Modifications:
- *
  *-------------------------------------------------------------------------
  */
 void
@@ -112,8 +110,6 @@ H5_timer_reset (H5_timer_t *timer)
  * Programmer:	Robb Matzke
  *              Thursday, April 16, 1998
  *
- * Modifications:
- *
  *-------------------------------------------------------------------------
  */
 void
@@ -131,18 +127,18 @@ H5_timer_begin (H5_timer_t *timer)
 #ifdef H5_HAVE_GETRUSAGE
     HDgetrusage (RUSAGE_SELF, &rusage);
     timer->utime = (double)rusage.ru_utime.tv_sec +
-                   ((double)rusage.ru_utime.tv_usec / 1e6);
+                   ((double)rusage.ru_utime.tv_usec / 1e6F);
     timer->stime = (double)rusage.ru_stime.tv_sec +
-                   ((double)rusage.ru_stime.tv_usec / 1e6);
+                   ((double)rusage.ru_stime.tv_usec / 1e6F);
 #else
-    timer->utime = 0.0;
-    timer->stime = 0.0;
+    timer->utime = 0.0F;
+    timer->stime = 0.0F;
 #endif
 #ifdef H5_HAVE_GETTIMEOFDAY
     HDgettimeofday (&etime, NULL);
-    timer->etime = (double)etime.tv_sec + ((double)etime.tv_usec / 1e6);
+    timer->etime = (double)etime.tv_sec + ((double)etime.tv_usec / 1e6F);
 #else
-    timer->etime = 0.0;
+    timer->etime = 0.0F;
 #endif
 } /* end H5_timer_begin() */
 
@@ -160,8 +156,6 @@ H5_timer_begin (H5_timer_t *timer)
  * Programmer:	Robb Matzke
  *              Thursday, April 16, 1998
  *
- * Modifications:
- *
  *-------------------------------------------------------------------------
  */
 void
@@ -170,16 +164,16 @@ H5_timer_end (H5_timer_t *sum/*in,out*/, H5_timer_t *timer/*in,out*/)
     H5_timer_t		now;
 
     HDassert(timer);
-    H5_timer_begin (&now);
+    H5_timer_begin(&now);
 
-    timer->utime = MAX(0.0, now.utime - timer->utime);
-    timer->stime = MAX(0.0, now.stime - timer->stime);
-    timer->etime = MAX(0.0, now.etime - timer->etime);
+    timer->utime = MAX(0.0F, now.utime - timer->utime);
+    timer->stime = MAX(0.0F, now.stime - timer->stime);
+    timer->etime = MAX(0.0F, now.etime - timer->etime);
 
     if (sum) {
-	sum->utime += timer->utime;
-	sum->stime += timer->stime;
-	sum->etime += timer->etime;
+        sum->utime += timer->utime;
+        sum->stime += timer->stime;
+        sum->etime += timer->etime;
     }
 } /* end H5_timer_end() */
 
@@ -207,8 +201,6 @@ H5_timer_end (H5_timer_t *sum/*in,out*/, H5_timer_t *timer/*in,out*/)
  * Programmer:	Robb Matzke
  *              Wednesday, August  5, 1998
  *
- * Modifications:
- *
  *-------------------------------------------------------------------------
  */
 void
@@ -216,35 +208,34 @@ H5_bandwidth(char *buf/*out*/, double nbytes, double nseconds)
 {
     double	bw;
 
-    if(nseconds <= 0.0)
-	HDstrcpy(buf, "       NaN");
+    if(nseconds <= 0.0F)
+        HDstrcpy(buf, "       NaN");
     else {
-	bw = nbytes/nseconds;
-        if(HDfabs(bw) < 0.0000000001)
-            /* That is == 0.0, but direct comparison between floats is bad */
-	    HDstrcpy(buf, "0.000  B/s");
-	else if(bw < 1.0)
-	    sprintf(buf, "%10.4e", bw);
-	else if(bw < 1024.0) {
-	    sprintf(buf, "%05.4f", bw);
-	    HDstrcpy(buf+5, "  B/s");
-	} else if(bw < (1024.0 * 1024.0)) {
-	    sprintf(buf, "%05.4f", bw / 1024.0);
-	    HDstrcpy(buf+5, " kB/s");
-	} else if(bw < (1024.0 * 1024.0 * 1024.0)) {
-	    sprintf(buf, "%05.4f", bw / (1024.0 * 1024.0));
-	    HDstrcpy(buf+5, " MB/s");
-	} else if(bw < (1024.0 * 1024.0 * 1024.0 * 1024.0)) {
-	    sprintf(buf, "%05.4f", bw / (1024.0 * 1024.0 * 1024.0));
-	    HDstrcpy(buf+5, " GB/s");
-	} else if(bw < (1024.0 * 1024.0 * 1024.0 * 1024.0 * 1024.0)) {
-	    sprintf(buf, "%05.4f", bw / (1024.0 * 1024.0 * 1024.0 * 1024.0));
-	    HDstrcpy(buf+5, " TB/s");
-	} else {
-	    sprintf(buf, "%10.4e", bw);
-	    if(HDstrlen(buf) > 10)
-		sprintf(buf, "%10.3e", bw);
-	}
+        bw = nbytes/nseconds;
+        if(H5_DBL_ABS_EQUAL(bw, 0.0F))
+	        HDstrcpy(buf, "0.000  B/s");
+        else if(bw < 1.0F)
+            sprintf(buf, "%10.4e", bw);
+        else if(bw < H5_KB) {
+            sprintf(buf, "%05.4f", bw);
+            HDstrcpy(buf+5, "  B/s");
+        } else if(bw < H5_MB) {
+            sprintf(buf, "%05.4f", bw / H5_KB);
+            HDstrcpy(buf+5, " kB/s");
+        } else if(bw < H5_GB) {
+            sprintf(buf, "%05.4f", bw / H5_MB);
+            HDstrcpy(buf+5, " MB/s");
+        } else if(bw < H5_TB) {
+            sprintf(buf, "%05.4f", bw / H5_GB);
+            HDstrcpy(buf+5, " GB/s");
+        } else if(bw < H5_EB) {
+            sprintf(buf, "%05.4f", bw / H5_TB);
+            HDstrcpy(buf+5, " TB/s");
+        } else {
+            sprintf(buf, "%10.4e", bw);
+            if(HDstrlen(buf) > 10)
+                sprintf(buf, "%10.3e", bw);
+        }
     }
 } /* end H5_bandwidth() */
 
diff --git a/src/H5trace.c b/src/H5trace.c
index 5e90ff6..2ee6367 100644
--- a/src/H5trace.c
+++ b/src/H5trace.c
@@ -110,7 +110,7 @@
  *		SO MAY CAUSE H5_trace() TO BE INVOKED RECURSIVELY OR MAY
  *		CAUSE LIBRARY INITIALIZATIONS THAT ARE NOT DESIRED.
  *
- * Return:	void
+ * Return:	Execution time for an API call
  *
  * Programmer:	Robb Matzke
  *              Tuesday, June 16, 1998
@@ -129,34 +129,34 @@ H5_trace(const double *returning, const char *func, const char *type, ...)
     void		*vp = NULL;
     FILE		*out = H5_debug_g.trace;
     H5_timer_t          event_time;
-    static H5_timer_t   first_time = {0.0, 0.0, 0.0};
+    static H5_timer_t   first_time = {0.0F, 0.0F, 0.0F};
     static int          current_depth = 0;
     static int          last_call_depth = 0;
 
     /* FUNC_ENTER() should not be called */
 
     if(!out)
-        return 0.0;	/*tracing is off*/
+        return 0.0F;	/*tracing is off*/
     va_start(ap, type);
 
     if(H5_debug_g.ttop) {
         if(returning) {
             if(current_depth > 1) {
                 --current_depth;
-                return 0.0;
+                return 0.0F;
             } /* end if */
         } /* end if */
         else {
             if(current_depth > 0) {
                 /*do not update last_call_depth*/
                 current_depth++;
-                return 0.0;
+                return 0.0F;
             } /* end if */
         } /* end else */
     } /* end if */
 
-    /* Get tim for event */
-    if(HDfabs(first_time.etime) < 0.0000000001)
+    /* Get time for event */
+    if(HDfabs(first_time.etime) < 0.0000000001F)
         /* That is == 0.0, but direct comparison between floats is bad */
         H5_timer_begin(&first_time);
     if(H5_debug_g.ttimes)
diff --git a/src/Makefile.am b/src/Makefile.am
index 004a01b..bc94252 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -114,7 +114,7 @@ include_HEADERS = hdf5.h H5api_adpt.h H5overflow.h H5pubconf.h H5public.h H5vers
         H5FDmulti.h H5FDsec2.h  H5FDstdio.h \
         H5Gpublic.h  H5Ipublic.h H5Lpublic.h \
         H5MMpublic.h H5Opublic.h H5Ppublic.h \
-        H5PLextern.h \
+        H5PLextern.h H5PLpublic.h \
         H5Rpublic.h H5Spublic.h \
         H5Tpublic.h H5Zpublic.h
 
diff --git a/src/Makefile.in b/src/Makefile.in
index e35a64c..21f01d4 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -109,7 +109,8 @@ noinst_PROGRAMS = H5detect$(EXEEXT) H5make_libsettings$(EXEEXT)
 TESTS =
 subdir = src
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \
+	$(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs
@@ -464,7 +465,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@
 AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@
 AM_MAKEFLAGS = @AM_MAKEFLAGS@
 AR = @AR@
-AS = @AS@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -496,7 +496,6 @@ DIRECT_VFD = @DIRECT_VFD@
 DLLTOOL = @DLLTOOL@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
-DYNAMIC_DIRS = @DYNAMIC_DIRS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -515,17 +514,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@
 FCLIBS = @FCLIBS@
 FC_VERSION = @FC_VERSION@
 FGREP = @FGREP@
-FILTERS = @FILTERS@
 FSEARCH_DIRS = @FSEARCH_DIRS@
 GREP = @GREP@
 H5_CFLAGS = @H5_CFLAGS@
 H5_CPPFLAGS = @H5_CPPFLAGS@
 H5_CXXFLAGS = @H5_CXXFLAGS@
-H5_CXX_SHARED = @H5_CXX_SHARED@
 H5_FCFLAGS = @H5_FCFLAGS@
 H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@
 H5_LDFLAGS = @H5_LDFLAGS@
-H5_LONE_COLON = @H5_LONE_COLON@
 H5_VERSION = @H5_VERSION@
 HADDR_T = @HADDR_T@
 HAVE_DMALLOC = @HAVE_DMALLOC@
@@ -548,7 +544,6 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INSTRUMENT = @INSTRUMENT@
 INSTRUMENT_LIBRARY = @INSTRUMENT_LIBRARY@
-LARGEFILE = @LARGEFILE@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
@@ -589,7 +584,6 @@ R_INTEGER = @R_INTEGER@
 R_LARGE = @R_LARGE@
 SEARCH = @SEARCH@
 SED = @SED@
-SETX = @SETX@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIZE_T = @SIZE_T@
@@ -604,10 +598,6 @@ TR = @TR@
 TRACE_API = @TRACE_API@
 UNAME_INFO = @UNAME_INFO@
 USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@
-USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@
-USE_FILTER_NBIT = @USE_FILTER_NBIT@
-USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@
-USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@
 USE_FILTER_SZIP = @USE_FILTER_SZIP@
 USINGMEMCHECKER = @USINGMEMCHECKER@
 VERSION = @VERSION@
@@ -721,15 +711,15 @@ TRACE = perl $(top_srcdir)/bin/trace
 
 # .chkexe files are used to mark tests that have run successfully.
 # .chklog files are output from those tests.
-# *.clog are from the MPE option.
-CHECK_CLEANFILES = *.chkexe *.chklog *.clog
+# *.clog and *.clog2 are from the MPE option.
+CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2
 
 # Add libtool shared library version numbers to the HDF5 library
 # See libtool versioning documentation online.
 # 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_INTERFACE = 10
+LT_VERS_REVISION = 0 
 LT_VERS_AGE = 0
 
 # Our main target, the HDF5 library
@@ -818,7 +808,7 @@ include_HEADERS = hdf5.h H5api_adpt.h H5overflow.h H5pubconf.h H5public.h H5vers
         H5FDmulti.h H5FDsec2.h  H5FDstdio.h \
         H5Gpublic.h  H5Ipublic.h H5Lpublic.h \
         H5MMpublic.h H5Opublic.h H5Ppublic.h \
-        H5PLextern.h \
+        H5PLextern.h H5PLpublic.h \
         H5Rpublic.h H5Spublic.h \
         H5Tpublic.h H5Zpublic.h
 
diff --git a/src/hdf5.h b/src/hdf5.h
index ef15063..fb41007 100644
--- a/src/hdf5.h
+++ b/src/hdf5.h
@@ -33,7 +33,8 @@
 #include "H5Lpublic.h"		/* Links				*/
 #include "H5MMpublic.h"		/* Memory management			*/
 #include "H5Opublic.h"		/* Object headers			*/
-#include "H5Ppublic.h"		/* Property lists			*/
+#include "H5Ppublic.h"      /* Property lists           */
+#include "H5PLpublic.h"     /* Plugins           */
 #include "H5Rpublic.h"		/* References				*/
 #include "H5Spublic.h"		/* Dataspaces				*/
 #include "H5Tpublic.h"		/* Datatypes				*/
diff --git a/src/libhdf5.settings.in b/src/libhdf5.settings.in
index 0402ffa..01e0403 100644
--- a/src/libhdf5.settings.in
+++ b/src/libhdf5.settings.in
@@ -51,7 +51,7 @@ Languages:
 @BUILD_CXX_CONDITIONAL_TRUE@                      C++ Flags: @CXXFLAGS@
 @BUILD_CXX_CONDITIONAL_TRUE@                   H5 C++ Flags: @H5_CXXFLAGS@
 @BUILD_CXX_CONDITIONAL_TRUE@                   AM C++ Flags: @AM_CXXFLAGS@
- at BUILD_CXX_CONDITIONAL_TRUE@             Shared C++ Library: @H5_CXX_SHARED@
+ at BUILD_CXX_CONDITIONAL_TRUE@             Shared C++ Library: @enable_shared@
 @BUILD_CXX_CONDITIONAL_TRUE@             Static C++ Library: @enable_static@
 
 Features:
@@ -62,7 +62,6 @@ Features:
             Default API Mapping: @DEFAULT_API_VERSION@
  With Deprecated Public Symbols: @DEPRECATED_SYMBOLS@
          I/O filters (external): @EXTERNAL_FILTERS@
-         I/O filters (internal): @FILTERS@
                             MPE: @MPE@
                      Direct VFD: @DIRECT_VFD@
                         dmalloc: @HAVE_DMALLOC@
@@ -71,4 +70,3 @@ Clear file buffers before write: @CLEARFILEBUF@
          Function Stack Tracing: @CODESTACK@
       Strict File Format Checks: @STRICT_FORMAT_CHECKS@
    Optimization Instrumentation: @INSTRUMENT@
-       Large File Support (LFS): @LARGEFILE@
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index 3b7d8db..c402324 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required (VERSION 2.8.11)
+cmake_minimum_required (VERSION 3.1.0)
 PROJECT (HDF5_TEST)
 
 #-----------------------------------------------------------------------------
@@ -27,7 +27,7 @@ set (TEST_LIB_HEADERS
 )
 
 add_library (${HDF5_TEST_LIB_TARGET} ${LIB_TYPE} ${TEST_LIB_SRCS} ${TEST_LIB_HEADERS})
-TARGET_C_PROPERTIES (${HDF5_TEST_LIB_TARGET} " " " ")
+TARGET_C_PROPERTIES (${HDF5_TEST_LIB_TARGET} ${LIB_TYPE} " " " ")
 if (MSVC)
   target_link_libraries (${HDF5_TEST_LIB_TARGET} "ws2_32.lib")
 endif (MSVC)
@@ -68,7 +68,7 @@ if (BUILD_SHARED_LIBS)
     INCLUDE_DIRECTORIES (${HDF5_SRC_DIR})
 
     add_library (${HDF5_TEST_PLUGIN_LIB_TARGET} ${LIB_TYPE} ${HDF5_TEST_SOURCE_DIR}/${test_lib}.c)
-    TARGET_C_PROPERTIES (${HDF5_TEST_PLUGIN_LIB_TARGET} " " " ")
+    TARGET_C_PROPERTIES (${HDF5_TEST_PLUGIN_LIB_TARGET} ${LIB_TYPE} " " " ")
     target_link_libraries (${HDF5_TEST_PLUGIN_LIB_TARGET} ${HDF5_TEST_LIB_TARGET})
     H5_SET_LIB_OPTIONS (
         ${HDF5_TEST_PLUGIN_LIB_TARGET} ${HDF5_TEST_PLUGIN_LIB_NAME}
@@ -99,7 +99,7 @@ if (BUILD_SHARED_LIBS)
     INCLUDE_DIRECTORIES (${HDF5_SRC_DIR})
 
     add_library (${HDF5_TEST_PLUGIN_LIB_TARGET} ${LIB_TYPE} ${HDF5_TEST_SOURCE_DIR}/${test_lib}.c)
-    TARGET_C_PROPERTIES (${HDF5_TEST_PLUGIN_LIB_TARGET} " " " ")
+    TARGET_C_PROPERTIES (${HDF5_TEST_PLUGIN_LIB_TARGET} ${LIB_TYPE} " " " ")
     target_link_libraries (${HDF5_TEST_PLUGIN_LIB_TARGET} ${HDF5_TEST_LIB_TARGET})
     H5_SET_LIB_OPTIONS (
         ${HDF5_TEST_PLUGIN_LIB_TARGET} ${HDF5_TEST_PLUGIN_LIB_NAME}
@@ -154,14 +154,14 @@ set (testhdf5_SRCS
 #-- Adding test for testhdf5
 add_executable (testhdf5 ${testhdf5_SRCS})
 TARGET_NAMING (testhdf5 ${LIB_TYPE})
-TARGET_C_PROPERTIES (testhdf5 " " " ")
+TARGET_C_PROPERTIES (testhdf5 ${LIB_TYPE} " " " ")
 target_link_libraries (testhdf5 ${HDF5_TEST_LIB_TARGET} ${HDF5_LIB_TARGET})
 set_target_properties (testhdf5 PROPERTIES FOLDER test)
 
 MACRO (ADD_H5_EXE file)
   add_executable (${file} ${HDF5_TEST_SOURCE_DIR}/${file}.c)
   TARGET_NAMING (${file} ${LIB_TYPE})
-  TARGET_C_PROPERTIES (${file} " " " ")
+  TARGET_C_PROPERTIES (${file} ${LIB_TYPE} " " " ")
   target_link_libraries (${file} ${HDF5_TEST_LIB_TARGET} ${HDF5_LIB_TARGET})
   set_target_properties (${file} PROPERTIES FOLDER test)
 ENDMACRO (ADD_H5_EXE file)
@@ -189,7 +189,7 @@ set (H5_TESTS
     objcopy
     links
     unlink
-#    big
+    big
     mtime
     fillval
     mount
@@ -218,9 +218,6 @@ set (H5_TESTS
     file_image
     unregister
 )
-if (NOT CYGWIN)
-  set (H5_TESTS ${H5_TESTS} big)
-endif (NOT CYGWIN)
 
 foreach (test ${H5_TESTS})
   ADD_H5_EXE(${test})
@@ -235,14 +232,14 @@ endforeach (test ${H5_TESTS})
 #-- Adding test for cache
 add_executable (cache ${HDF5_TEST_SOURCE_DIR}/cache.c ${HDF5_TEST_SOURCE_DIR}/cache_common.c)
 TARGET_NAMING (cache ${LIB_TYPE})
-TARGET_C_PROPERTIES (cache " " " ")
+TARGET_C_PROPERTIES (cache ${LIB_TYPE} " " " ")
 target_link_libraries (cache ${HDF5_LIB_TARGET} ${HDF5_TEST_LIB_TARGET})
 set_target_properties (cache PROPERTIES FOLDER test)
 
 #-- Adding test for cache_api
 add_executable (cache_api ${HDF5_TEST_SOURCE_DIR}/cache_api.c ${HDF5_TEST_SOURCE_DIR}/cache_common.c)
 TARGET_NAMING (cache_api ${LIB_TYPE})
-TARGET_C_PROPERTIES (cache_api " " " ")
+TARGET_C_PROPERTIES (cache_api ${LIB_TYPE} " " " ")
 target_link_libraries (cache_api ${HDF5_LIB_TARGET} ${HDF5_TEST_LIB_TARGET})
 set_target_properties (cache_api PROPERTIES FOLDER test)
 
@@ -255,7 +252,7 @@ add_executable (ttsafe
     ${HDF5_TEST_SOURCE_DIR}/ttsafe_acreate.c
 )
 TARGET_NAMING (ttsafe ${LIB_TYPE})
-TARGET_C_PROPERTIES (ttsafe " " " ")
+TARGET_C_PROPERTIES (ttsafe ${LIB_TYPE} " " " ")
 target_link_libraries (ttsafe ${HDF5_LIB_TARGET} ${HDF5_TEST_LIB_TARGET})
 set_target_properties (ttsafe PROPERTIES FOLDER test)
 
@@ -263,7 +260,7 @@ set_target_properties (ttsafe PROPERTIES FOLDER test)
 if (HDF5_ENABLE_DEPRECATED_SYMBOLS)
   add_executable (err_compat ${HDF5_TEST_SOURCE_DIR}/err_compat.c)
   TARGET_NAMING (err_compat ${LIB_TYPE})
-  TARGET_C_PROPERTIES (err_compat " " " ")
+  TARGET_C_PROPERTIES (err_compat ${LIB_TYPE} " " " ")
   target_link_libraries (err_compat ${HDF5_LIB_TARGET} ${HDF5_TEST_LIB_TARGET})
   set_target_properties (err_compat PROPERTIES FOLDER test)
 endif (HDF5_ENABLE_DEPRECATED_SYMBOLS)
@@ -271,14 +268,14 @@ endif (HDF5_ENABLE_DEPRECATED_SYMBOLS)
 #-- Adding test for error_test
 add_executable (error_test ${HDF5_TEST_SOURCE_DIR}/error_test.c)
 TARGET_NAMING (error_test ${LIB_TYPE})
-TARGET_C_PROPERTIES (error_test " " " ")
+TARGET_C_PROPERTIES (error_test ${LIB_TYPE} " " " ")
 target_link_libraries (error_test ${HDF5_LIB_TARGET} ${HDF5_TEST_LIB_TARGET})
 set_target_properties (error_test PROPERTIES FOLDER test)
 
 #-- Adding test for links_env
 add_executable (links_env ${HDF5_TEST_SOURCE_DIR}/links_env.c)
 TARGET_NAMING (links_env ${LIB_TYPE})
-TARGET_C_PROPERTIES (links_env " " " ")
+TARGET_C_PROPERTIES (links_env ${LIB_TYPE} " " " ")
 target_link_libraries (links_env ${HDF5_LIB_TARGET} ${HDF5_TEST_LIB_TARGET})
 set_target_properties (links_env PROPERTIES FOLDER test)
 
@@ -299,8 +296,8 @@ endif (\${TEST_RESULT} STREQUAL \"0\")
 ##############################################################################
 if (BUILD_SHARED_LIBS)
   add_executable (plugin ${HDF5_TEST_SOURCE_DIR}/plugin.c)
-  TARGET_NAMING (plugin ${LIB_TYPE})
-  TARGET_C_PROPERTIES (plugin " " " ")
+  TARGET_NAMING (plugin SHARED)
+  TARGET_C_PROPERTIES (plugin SHARED " " " ")
   target_link_libraries (plugin ${HDF5_TEST_PLUGIN_LIB_TARGET})
   set_target_properties (plugin PROPERTIES FOLDER test)
 endif (BUILD_SHARED_LIBS)
diff --git a/test/CMakeTests.cmake b/test/CMakeTests.cmake
index bf5ad11..5087290 100644
--- a/test/CMakeTests.cmake
+++ b/test/CMakeTests.cmake
@@ -5,15 +5,36 @@
 ##############################################################################
 ##############################################################################
 
+# make test dir
+file (MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/H5TEST")
+file (MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/H5TEST/testfiles")
+file (MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/H5TEST/testfiles/plist_files")
+if (HDF5_TEST_VFD)
+  set (VFD_LIST
+      sec2
+      stdio
+      core
+      split
+      multi
+      family
+  )
+  if (DIRECT_VFD)
+    set (VFD_LIST ${VFD_LIST} direct)
+  endif (DIRECT_VFD)
+  foreach (vfdtest ${VFD_LIST})
+    file (MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/${vfdtest}")
+  endforeach (vfdtest ${VFD_LIST})
+endif (HDF5_TEST_VFD)
+
 # --------------------------------------------------------------------
-# Copy all the HDF5 files from the test directory into the source directory
+# Copy all the HDF5 files from the source directory into the test directory
 # --------------------------------------------------------------------
 set (HDF5_TEST_FILES
   tnullspace.h5
 )
 
 foreach (h5_tfile ${HDF5_TEST_FILES})
-  set (dest "${PROJECT_BINARY_DIR}/${h5_tfile}")
+  set (dest "${PROJECT_BINARY_DIR}/H5TEST/${h5_tfile}")
   #message (STATUS " Copying ${h5_tfile}")
   add_custom_command (
       TARGET     ${HDF5_TEST_LIB_TARGET}
@@ -22,6 +43,20 @@ foreach (h5_tfile ${HDF5_TEST_FILES})
       ARGS       -E copy_if_different ${HDF5_TOOLS_SRC_DIR}/testfiles/${h5_tfile} ${dest}
   )
 endforeach (h5_tfile ${HDF5_TEST_FILES})
+if (HDF5_TEST_VFD)
+  foreach (vfdtest ${VFD_LIST})
+    foreach (h5_tfile ${HDF5_TEST_FILES})
+      set (dest "${PROJECT_BINARY_DIR}/${vfdtest}/${h5_tfile}")
+      #message (STATUS " Copying ${h5_tfile}")
+      add_custom_command (
+          TARGET     ${HDF5_TEST_LIB_TARGET}
+          POST_BUILD
+          COMMAND    ${CMAKE_COMMAND}
+          ARGS       -E copy_if_different ${HDF5_TOOLS_SRC_DIR}/testfiles/${h5_tfile} ${dest}
+      )
+    endforeach (h5_tfile ${HDF5_TEST_FILES})
+  endforeach (vfdtest ${VFD_LIST})
+endif (HDF5_TEST_VFD)
 
 # --------------------------------------------------------------------
 # Copy all the HDF5 files from the test directory into the source directory
@@ -35,7 +70,7 @@ set (HDF5_REFERENCE_FILES
 )
 
 foreach (ref_file ${HDF5_REFERENCE_FILES})
-  set (dest "${PROJECT_BINARY_DIR}/${ref_file}")
+  set (dest "${PROJECT_BINARY_DIR}/H5TEST/${ref_file}")
   #message (STATUS " Copying ${h5_file}")
   add_custom_command (
       TARGET     ${HDF5_TEST_LIB_TARGET}
@@ -44,11 +79,26 @@ foreach (ref_file ${HDF5_REFERENCE_FILES})
       ARGS       -E copy_if_different ${HDF5_TEST_SOURCE_DIR}/testfiles/${ref_file} ${dest}
   )
 endforeach (ref_file ${HDF5_REFERENCE_FILES})
+if (HDF5_TEST_VFD)
+  foreach (vfdtest ${VFD_LIST})
+    foreach (ref_file ${HDF5_REFERENCE_FILES})
+      set (dest "${PROJECT_BINARY_DIR}/${vfdtest}/${ref_file}")
+      #message (STATUS " Copying ${h5_file}")
+      add_custom_command (
+          TARGET     ${HDF5_TEST_LIB_TARGET}
+          POST_BUILD
+          COMMAND    ${CMAKE_COMMAND}
+          ARGS       -E copy_if_different ${HDF5_TEST_SOURCE_DIR}/testfiles/${ref_file} ${dest}
+      )
+    endforeach (ref_file ${HDF5_REFERENCE_FILES})
+  endforeach (vfdtest ${VFD_LIST})
+endif (HDF5_TEST_VFD)
 
 # --------------------------------------------------------------------
 #-- Copy all the HDF5 files from the test directory into the source directory
 # --------------------------------------------------------------------
 set (HDF5_REFERENCE_TEST_FILES
+    bad_compound.h5
     be_data.h5
     be_extlink1.h5
     be_extlink2.h5
@@ -84,7 +134,7 @@ set (HDF5_REFERENCE_TEST_FILES
 )
 
 foreach (h5_file ${HDF5_REFERENCE_TEST_FILES})
-  set (dest "${HDF5_TEST_BINARY_DIR}/${h5_file}")
+  set (dest "${HDF5_TEST_BINARY_DIR}/H5TEST/${h5_file}")
   #message (STATUS " Copying ${h5_file} to ${dest}")
   add_custom_command (
       TARGET     ${HDF5_TEST_LIB_TARGET}
@@ -93,6 +143,20 @@ foreach (h5_file ${HDF5_REFERENCE_TEST_FILES})
       ARGS       -E copy_if_different ${HDF5_TEST_SOURCE_DIR}/${h5_file} ${dest}
   )
 endforeach (h5_file ${HDF5_REFERENCE_TEST_FILES})
+if (HDF5_TEST_VFD)
+  foreach (vfdtest ${VFD_LIST})
+    foreach (h5_file ${HDF5_REFERENCE_TEST_FILES})
+      set (dest "${HDF5_TEST_BINARY_DIR}/${vfdtest}/${h5_file}")
+      #message (STATUS " Copying ${h5_file} to ${dest}")
+      add_custom_command (
+          TARGET     ${HDF5_TEST_LIB_TARGET}
+          POST_BUILD
+          COMMAND    ${CMAKE_COMMAND}
+          ARGS       -E copy_if_different ${HDF5_TEST_SOURCE_DIR}/${h5_file} ${dest}
+      )
+    endforeach (h5_file ${HDF5_REFERENCE_TEST_FILES})
+  endforeach (vfdtest ${VFD_LIST})
+endif (HDF5_TEST_VFD)
 
 # Remove any output file left over from previous test run
 add_test (
@@ -116,24 +180,42 @@ add_test (
         tsohm.h5
         tsohm_dst.h5
         tsohm_src.h5
+    WORKING_DIRECTORY
+        ${HDF5_TEST_BINARY_DIR}/H5TEST
 )
 
 if (HDF5_ENABLE_USING_MEMCHECKER)
   add_test (NAME H5TEST-testhdf5-base COMMAND $<TARGET_FILE:testhdf5> -x heap -x file -x select)
-  set_tests_properties (H5TEST-testhdf5-base PROPERTIES DEPENDS H5TEST-clear-testhdf5-objects)
-  set_tests_properties (H5TEST-testhdf5-base PROPERTIES ENVIRONMENT HDF5_ALARM_SECONDS=3600)
+  set_tests_properties (H5TEST-testhdf5-base PROPERTIES
+      DEPENDS H5TEST-clear-testhdf5-objects
+      ENVIRONMENT "HDF5_ALARM_SECONDS=3600;srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST"
+      WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST
+  )
   add_test (NAME H5TEST-testhdf5-heap COMMAND $<TARGET_FILE:testhdf5> -o heap)
-  set_tests_properties (H5TEST-testhdf5-heap PROPERTIES DEPENDS H5TEST-clear-testhdf5-objects)
-  set_tests_properties (H5TEST-testhdf5-heap PROPERTIES ENVIRONMENT HDF5_ALARM_SECONDS=3600)
+  set_tests_properties (H5TEST-testhdf5-heap PROPERTIES
+      DEPENDS H5TEST-clear-testhdf5-objects
+      ENVIRONMENT "HDF5_ALARM_SECONDS=3600;srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST"
+      WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST
+  )
   add_test (NAME H5TEST-testhdf5-file COMMAND $<TARGET_FILE:testhdf5> -o file)
-  set_tests_properties (H5TEST-testhdf5-file PROPERTIES DEPENDS H5TEST-clear-testhdf5-objects)
-  set_tests_properties (H5TEST-testhdf5-file PROPERTIES ENVIRONMENT HDF5_ALARM_SECONDS=3600)
+  set_tests_properties (H5TEST-testhdf5-file PROPERTIES
+      DEPENDS H5TEST-clear-testhdf5-objects
+      ENVIRONMENT "HDF5_ALARM_SECONDS=3600;srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST"
+      WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST
+  )
   add_test (NAME H5TEST-testhdf5-select COMMAND $<TARGET_FILE:testhdf5> -o select)
-  set_tests_properties (H5TEST-testhdf5-select PROPERTIES DEPENDS H5TEST-clear-testhdf5-objects)
-  set_tests_properties (H5TEST-testhdf5-select PROPERTIES ENVIRONMENT HDF5_ALARM_SECONDS=3600)
+  set_tests_properties (H5TEST-testhdf5-select PROPERTIES
+      DEPENDS H5TEST-clear-testhdf5-objects
+      ENVIRONMENT "HDF5_ALARM_SECONDS=3600;srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST"
+      WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST
+  )
 else (HDF5_ENABLE_USING_MEMCHECKER)
   add_test (NAME H5TEST-testhdf5 COMMAND $<TARGET_FILE:testhdf5>)
-  set_tests_properties (H5TEST-testhdf5 PROPERTIES DEPENDS H5TEST-clear-testhdf5-objects)
+  set_tests_properties (H5TEST-testhdf5 PROPERTIES
+      DEPENDS H5TEST-clear-testhdf5-objects
+      ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST"
+      WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST
+  )
 endif (HDF5_ENABLE_USING_MEMCHECKER)
   
 ##############################################################################
@@ -150,6 +232,7 @@ add_test (
         dt_arith1.h5
         dt_arith2.h5
         dtransform.h5
+        dtypes3.h5
         dtypes4.h5
         dtypes5.h5
         efc0.h5
@@ -196,6 +279,7 @@ add_test (
         extlinks19B00027.h5
         extlinks19B00028.h5
         fheap.h5
+        log_vfd_out.log
         new_multi_file_v16-r.h5
         new_multi_file_v16-s.h5
         objcopy_ext.dat
@@ -204,14 +288,23 @@ add_test (
         tstint2.h5
         unregister_filter_1.h5
         unregister_filter_2.h5
+    WORKING_DIRECTORY
+        ${HDF5_TEST_BINARY_DIR}/H5TEST
 )
 
 foreach (test ${H5_TESTS})
   add_test (NAME H5TEST-${test} COMMAND $<TARGET_FILE:${test}>)
-  set_tests_properties (H5TEST-${test} PROPERTIES DEPENDS H5TEST-clear-objects)
+  set_tests_properties (H5TEST-${test} PROPERTIES
+      DEPENDS H5TEST-clear-objects 
+      ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST"
+      WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST
+  )
 endforeach (test ${H5_TESTS})
 
 set_tests_properties (H5TEST-flush2 PROPERTIES DEPENDS H5TEST-flush1)
+set_tests_properties (H5TEST-fheap PROPERTIES TIMEOUT 1800)
+set_tests_properties (H5TEST-testmeta PROPERTIES TIMEOUT 1800)
+set_tests_properties (H5TEST-big PROPERTIES TIMEOUT 1800)
 
 ##############################################################################
 ##############################################################################
@@ -225,9 +318,15 @@ add_test (
     COMMAND    ${CMAKE_COMMAND}
         -E remove 
         cache_test.h5
+    WORKING_DIRECTORY
+        ${HDF5_TEST_BINARY_DIR}/H5TEST
 )
 add_test (NAME H5TEST-cache COMMAND $<TARGET_FILE:cache>)
-set_tests_properties (H5TEST-cache PROPERTIES DEPENDS H5TEST-clear-cache-objects)
+set_tests_properties (H5TEST-cache PROPERTIES
+    DEPENDS H5TEST-clear-cache-objects
+    ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST"
+    WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST
+)
 
 #-- Adding test for cache_api
 add_test (
@@ -235,9 +334,15 @@ add_test (
     COMMAND    ${CMAKE_COMMAND}
         -E remove 
         cache_api_test.h5
+    WORKING_DIRECTORY
+        ${HDF5_TEST_BINARY_DIR}/H5TEST
 )
 add_test (NAME H5TEST-cache_api COMMAND $<TARGET_FILE:cache_api>)
-set_tests_properties (H5TEST-cache_api PROPERTIES DEPENDS H5TEST-clear-cache_api-objects)
+set_tests_properties (H5TEST-cache_api PROPERTIES
+    DEPENDS H5TEST-clear-cache_api-objects 
+    ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST"
+    WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST
+)
 
 #-- Adding test for ttsafe
 add_test (
@@ -248,9 +353,15 @@ add_test (
         ttsafe_dcreate.h5
         ttsafe_cancel.h5
         ttsafe_acreate.h5
+    WORKING_DIRECTORY
+        ${HDF5_TEST_BINARY_DIR}/H5TEST
 )
 add_test (NAME H5TEST-ttsafe COMMAND $<TARGET_FILE:ttsafe>)
-set_tests_properties (H5TEST-ttsafe PROPERTIES DEPENDS H5TEST-clear-ttsafe-objects)
+set_tests_properties (H5TEST-ttsafe PROPERTIES
+    DEPENDS H5TEST-clear-ttsafe-objects
+    ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST"
+    WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST
+)
 
 #-- Adding test for err_compat
 if (HDF5_ENABLE_DEPRECATED_SYMBOLS)
@@ -260,6 +371,8 @@ if (HDF5_ENABLE_DEPRECATED_SYMBOLS)
           -E remove 
           err_compat.txt
           err_compat.txt.err
+      WORKING_DIRECTORY
+          ${HDF5_TEST_BINARY_DIR}/H5TEST
   )
   add_test (NAME H5TEST-err_compat COMMAND "${CMAKE_COMMAND}"
       -D "TEST_PROGRAM=$<TARGET_FILE:err_compat>"
@@ -268,10 +381,14 @@ if (HDF5_ENABLE_DEPRECATED_SYMBOLS)
       -D "TEST_MASK_ERROR=true"
       -D "TEST_OUTPUT=err_compat.txt"
       -D "TEST_REFERENCE=err_compat_1"
-      -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
+      -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/H5TEST"
       -P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
   )
-  set_tests_properties (H5TEST-err_compat PROPERTIES DEPENDS H5TEST-clear-err_compat-objects)
+  set_tests_properties (H5TEST-err_compat PROPERTIES
+      DEPENDS H5TEST-clear-err_compat-objects
+      ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST"
+      WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST
+  )
 endif (HDF5_ENABLE_DEPRECATED_SYMBOLS)
 
 #-- Adding test for error_test
@@ -281,6 +398,8 @@ add_test (
         -E remove 
         error_test.txt
         error_test.txt.err
+    WORKING_DIRECTORY
+        ${HDF5_TEST_BINARY_DIR}/H5TEST
 )
 add_test (NAME H5TEST-error_test COMMAND "${CMAKE_COMMAND}"
     -D "TEST_PROGRAM=$<TARGET_FILE:error_test>"
@@ -289,11 +408,14 @@ add_test (NAME H5TEST-error_test COMMAND "${CMAKE_COMMAND}"
     -D "TEST_MASK_ERROR=true"
     -D "TEST_OUTPUT=error_test.txt"
     -D "TEST_REFERENCE=error_test_1"
-    -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
+    -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/H5TEST"
     -P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
 )
-set_tests_properties (H5TEST-error_test PROPERTIES DEPENDS H5TEST-clear-error_test-objects)
-set_tests_properties (H5TEST-error_test PROPERTIES ENVIRONMENT "HDF5_PLUGIN_PRELOAD=::")
+set_tests_properties (H5TEST-error_test PROPERTIES 
+    DEPENDS H5TEST-clear-error_test-objects
+    ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST;HDF5_PLUGIN_PRELOAD=::"
+    WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST
+)
 
 #-- Adding test for links_env
 add_test (
@@ -305,6 +427,8 @@ add_test (
         extlinks_env0.h5
         extlinks_env1.h5
         tmp/extlinks_env1.h5
+    WORKING_DIRECTORY
+        ${HDF5_TEST_BINARY_DIR}/H5TEST
 )
 add_test (NAME H5TEST-links_env COMMAND "${CMAKE_COMMAND}"
     -D "TEST_PROGRAM=$<TARGET_FILE:links_env>"
@@ -314,13 +438,22 @@ add_test (NAME H5TEST-links_env COMMAND "${CMAKE_COMMAND}"
     -D "TEST_EXPECT=0"
     -D "TEST_OUTPUT=links_env.txt"
     -D "TEST_REFERENCE=links_env.out"
-    -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
+    -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/H5TEST"
     -P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
 )
-set_tests_properties (H5TEST-links_env PROPERTIES DEPENDS H5TEST-clear-links_env-objects)
+set_tests_properties (H5TEST-links_env PROPERTIES
+    DEPENDS H5TEST-clear-links_env-objects
+    ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/H5TEST"
+    WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST
+)
 
 #-- Adding test for libinfo
-add_test (NAME H5TEST-testlibinfo COMMAND ${CMAKE_COMMAND} -D "TEST_PROGRAM=$<TARGET_FILE:${HDF5_LIB_TARGET}>" -P "${GREP_RUNNER}")
+add_test (
+    NAME H5TEST-testlibinfo
+    COMMAND ${CMAKE_COMMAND} -D "TEST_PROGRAM=$<TARGET_FILE:${HDF5_LIB_TARGET}>" -P "${GREP_RUNNER}"
+    WORKING_DIRECTORY
+        ${HDF5_TEST_BINARY_DIR}/H5TEST
+)
 
 ##############################################################################
 ###    P L U G I N  T E S T S
@@ -334,7 +467,10 @@ if (BUILD_SHARED_LIBS)
   endif (WIN32)
 
   add_test (NAME H5PLUGIN-plugin COMMAND $<TARGET_FILE:plugin>)
-  set_tests_properties (H5PLUGIN-plugin PROPERTIES ENVIRONMENT "HDF5_PLUGIN_PATH=${CMAKE_BINARY_DIR}/testdir1${CMAKE_SEP}${CMAKE_BINARY_DIR}/testdir2")
+  set_tests_properties (H5PLUGIN-plugin PROPERTIES
+      ENVIRONMENT "HDF5_PLUGIN_PATH=${CMAKE_BINARY_DIR}/testdir1${CMAKE_SEP}${CMAKE_BINARY_DIR}/testdir2;srcdir=${HDF5_TEST_BINARY_DIR}"
+      WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}
+  )
 else (BUILD_SHARED_LIBS)
   message (STATUS " **** Plugins libraries must be built as shared libraries **** ")
   add_test (
@@ -351,15 +487,6 @@ endif (BUILD_SHARED_LIBS)
 
 if (HDF5_TEST_VFD)
 
-  set (VFD_LIST
-      sec2
-      stdio
-      core
-      split
-      multi
-      family
-  )
-
   set (H5_VFD_TESTS
       testhdf5
       accum
@@ -415,10 +542,6 @@ if (HDF5_TEST_VFD)
   if (NOT CYGWIN)
     set (H5_VFD_TESTS ${H5_VFD_TESTS} big)
   endif (NOT CYGWIN)
-  
-  if (DIRECT_VFD)
-    set (VFD_LIST ${VFD_LIST} direct)
-  endif (DIRECT_VFD)
 
   MACRO (CHECK_VFD_TEST vfdtest vfdname resultcode)
     if (${vfdtest} STREQUAL "flush1" OR ${vfdtest} STREQUAL "flush2")
@@ -432,9 +555,13 @@ if (HDF5_TEST_VFD)
                   -D "TEST_VFD:STRING=${vfdname}"
                   -D "TEST_EXPECT=${resultcode}"
                   -D "TEST_OUTPUT=${vfdtest}"
-                  -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
+                  -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/${vfdname}"
                   -P "${HDF_RESOURCES_DIR}/vfdTest.cmake"
           )
+          set_tests_properties (VFD-${vfdname}-${vfdtest} PROPERTIES
+              ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/${vfdname}"
+              WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/${vfdname}
+          )
         else (NOT BUILD_SHARED_LIBS AND NOT CMAKE_BUILD_TYPE MATCHES Debug)
           add_test (
               NAME VFD-${vfdname}-${vfdtest}
@@ -450,9 +577,13 @@ if (HDF5_TEST_VFD)
                 -D "TEST_VFD:STRING=${vfdname}"
                 -D "TEST_EXPECT=${resultcode}"
                 -D "TEST_OUTPUT=${vfdtest}"
-                -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
+                -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/${vfdname}"
                 -P "${HDF_RESOURCES_DIR}/vfdTest.cmake"
         )
+        set_tests_properties (VFD-${vfdname}-${vfdtest} PROPERTIES
+            ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/${vfdname}"
+            WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/${vfdname}
+        )
       endif (${vfdname} STREQUAL "multi" OR ${vfdname} STREQUAL "split")
     else (${vfdtest} STREQUAL "flush1" OR ${vfdtest} STREQUAL "flush2")
       add_test (
@@ -463,9 +594,13 @@ if (HDF5_TEST_VFD)
               -D "TEST_VFD:STRING=${vfdname}"
               -D "TEST_EXPECT=${resultcode}"
               -D "TEST_OUTPUT=${vfdtest}"
-              -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
+              -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/${vfdname}"
               -P "${HDF_RESOURCES_DIR}/vfdTest.cmake"
       )
+      set_tests_properties (VFD-${vfdname}-${vfdtest} PROPERTIES
+          ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/${vfdname}"
+          WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/${vfdname}
+      )
     endif (${vfdtest} STREQUAL "flush1" OR ${vfdtest} STREQUAL "flush2")
   ENDMACRO (CHECK_VFD_TEST vfdtest vfdname resultcode)
 
@@ -475,15 +610,19 @@ if (HDF5_TEST_VFD)
         CHECK_VFD_TEST (${test} ${vfdname} ${resultcode})
       else (WIN32)
         add_test (
-            NAME VFD-${vfdname}-${test} 
-            COMMAND "${CMAKE_COMMAND}"
-                -D "TEST_PROGRAM=$<TARGET_FILE:${test}>"
-                -D "TEST_ARGS:STRING="
-                -D "TEST_VFD:STRING=${vfdname}"
-                -D "TEST_EXPECT=${resultcode}"
-                -D "TEST_OUTPUT=${test}"
-                -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
-                -P "${HDF_RESOURCES_DIR}/vfdTest.cmake"
+          NAME VFD-${vfdname}-${test} 
+          COMMAND "${CMAKE_COMMAND}"
+              -D "TEST_PROGRAM=$<TARGET_FILE:${test}>"
+              -D "TEST_ARGS:STRING="
+              -D "TEST_VFD:STRING=${vfdname}"
+              -D "TEST_EXPECT=${resultcode}"
+              -D "TEST_OUTPUT=${vfdname}-${test}"
+              -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/${vfdname}"
+              -P "${HDF_RESOURCES_DIR}/vfdTest.cmake"
+        )
+        set_tests_properties (VFD-${vfdname}-${test} PROPERTIES
+            ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/${vfdname}"
+            WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/${vfdname}
         )
       endif (WIN32)
     endforeach (test ${H5_VFD_TESTS})
@@ -501,10 +640,15 @@ if (HDF5_TEST_VFD)
             -D "TEST_ARGS:STRING="
             -D "TEST_VFD:STRING=${vfdname}"
             -D "TEST_EXPECT=${resultcode}"
-            -D "TEST_OUTPUT=fheap"
-            -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
+            -D "TEST_OUTPUT=${vfdname}-fheap"
+            -D "TEST_FOLDER=${PROJECT_BINARY_DIR}/${vfdname}"
             -P "${HDF_RESOURCES_DIR}/vfdTest.cmake"
       )
+      set_tests_properties (VFD-${vfdname}-fheap PROPERTIES
+          TIMEOUT 1800
+          ENVIRONMENT "srcdir=${HDF5_TEST_BINARY_DIR}/${vfdname}"
+          WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/${vfdname}
+      )
     endif (HDF5_TEST_FHEAP_VFD)
   ENDMACRO (ADD_VFD_TEST)
   
@@ -524,8 +668,8 @@ endif (HDF5_TEST_VFD)
 if (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS)
   MACRO (ADD_H5_GENERATOR genfile)
     add_executable (${genfile} ${HDF5_TEST_SOURCE_DIR}/${genfile}.c)
-    TARGET_NAMING (${genfile} ${LIB_TYPE})
-    TARGET_C_PROPERTIES (${genfile} " " " ")
+    TARGET_NAMING (${genfile} STATIC)
+    TARGET_C_PROPERTIES (${genfile} STATIC " " " ")
     target_link_libraries (${genfile} ${HDF5_TEST_LIB_TARGET} ${HDF5_LIB_TARGET})
     set_target_properties (${genfile} PROPERTIES FOLDER generator/test)
   ENDMACRO (ADD_H5_GENERATOR genfile)
diff --git a/test/Makefile.in b/test/Makefile.in
index 2235cef..02ab570 100644
--- a/test/Makefile.in
+++ b/test/Makefile.in
@@ -115,7 +115,8 @@ check_PROGRAMS = $(am__EXEEXT_1) error_test$(EXEEXT) \
 TESTS = $(am__EXEEXT_1) $(TEST_SCRIPT)
 subdir = test
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \
+	$(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs
@@ -774,7 +775,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@
 AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@
 AM_MAKEFLAGS = @AM_MAKEFLAGS@
 AR = @AR@
-AS = @AS@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -806,7 +806,6 @@ DIRECT_VFD = @DIRECT_VFD@
 DLLTOOL = @DLLTOOL@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
-DYNAMIC_DIRS = @DYNAMIC_DIRS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -825,17 +824,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@
 FCLIBS = @FCLIBS@
 FC_VERSION = @FC_VERSION@
 FGREP = @FGREP@
-FILTERS = @FILTERS@
 FSEARCH_DIRS = @FSEARCH_DIRS@
 GREP = @GREP@
 H5_CFLAGS = @H5_CFLAGS@
 H5_CPPFLAGS = @H5_CPPFLAGS@
 H5_CXXFLAGS = @H5_CXXFLAGS@
-H5_CXX_SHARED = @H5_CXX_SHARED@
 H5_FCFLAGS = @H5_FCFLAGS@
 H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@
 H5_LDFLAGS = @H5_LDFLAGS@
-H5_LONE_COLON = @H5_LONE_COLON@
 H5_VERSION = @H5_VERSION@
 HADDR_T = @HADDR_T@
 HAVE_DMALLOC = @HAVE_DMALLOC@
@@ -858,7 +854,6 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INSTRUMENT = @INSTRUMENT@
 INSTRUMENT_LIBRARY = @INSTRUMENT_LIBRARY@
-LARGEFILE = @LARGEFILE@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
@@ -899,7 +894,6 @@ R_INTEGER = @R_INTEGER@
 R_LARGE = @R_LARGE@
 SEARCH = @SEARCH@
 SED = @SED@
-SETX = @SETX@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIZE_T = @SIZE_T@
@@ -914,10 +908,6 @@ TR = @TR@
 TRACE_API = @TRACE_API@
 UNAME_INFO = @UNAME_INFO@
 USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@
-USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@
-USE_FILTER_NBIT = @USE_FILTER_NBIT@
-USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@
-USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@
 USE_FILTER_SZIP = @USE_FILTER_SZIP@
 USINGMEMCHECKER = @USINGMEMCHECKER@
 VERSION = @VERSION@
@@ -1031,15 +1021,15 @@ TRACE = perl $(top_srcdir)/bin/trace
 
 # .chkexe files are used to mark tests that have run successfully.
 # .chklog files are output from those tests.
-# *.clog are from the MPE option.
+# *.clog and *.clog2 are from the MPE option.
 
 # Temporary files.  These files are the ones created by setting the
 # HDF5_NOCLEANUP environment variable and running `make test' without
 # specifying a file prefix or low-level driver.  Changing the file
 # prefix or low-level driver with environment variables will influence
 # the temporary file name in ways that the makefile is not aware of.
-CHECK_CLEANFILES = *.chkexe *.chklog *.clog accum.h5 cmpd_dset.h5 \
-	compact_dataset.h5 dataset.h5 dset_offset.h5 \
+CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 accum.h5 \
+	cmpd_dset.h5 compact_dataset.h5 dataset.h5 dset_offset.h5 \
 	max_compact_dataset.h5 simple.h5 set_local.h5 random_chunks.h5 \
 	huge_chunks.h5 chunk_cache.h5 big_chunk.h5 chunk_expand.h5 \
 	copy_dcpl_newfile.h5 extend.h5 istore.h5 extlinks*.h5 \
diff --git a/test/cache.c b/test/cache.c
index 27c61e7..26ef80f 100644
--- a/test/cache.c
+++ b/test/cache.c
@@ -20324,7 +20324,10 @@ check_auto_cache_resize(void)
 
         auto_size_ctl.decr_mode              = H5C_decr__age_out_with_threshold;
 
-        auto_size_ctl.upper_hr_threshold     = 0.999; /* for ease of testing */
+        /* NOTE: upper_hr_threshold MUST be type double (not float)
+         * or the cache test will fail on 64-bit systems.
+         */
+        auto_size_ctl.upper_hr_threshold     = H5_DOUBLE(0.999); /* for ease of testing */
 
         auto_size_ctl.decrement              = 0.5f;
 
@@ -28337,7 +28340,7 @@ check_auto_cache_resize_aux_fcns(void)
             pass = FALSE;
             failure_mssg = "H5C_get_cache_hit_rate failed.\n";
 
-        } else if ( ! DBL_REL_EQUAL(hit_rate, 0.5, FP_EPSILON) ) { /* i.e. hit_rate != 0.5 */
+        } else if ( ! DBL_REL_EQUAL(hit_rate, 0.5F, FP_EPSILON) ) { /* i.e. hit_rate != 0.5 */
 
             pass = FALSE;
             failure_mssg =
diff --git a/test/cache_api.c b/test/cache_api.c
index b1ccef1..8f556be 100644
--- a/test/cache_api.c
+++ b/test/cache_api.c
@@ -2173,7 +2173,7 @@ H5AC_cache_config_t invalid_configs[NUM_INVALID_CONFIGS] =
     /* long int    epoch_length           = */ 50000,
     /* enum H5C_cache_incr_mode incr_mode = */ H5C_incr__threshold,
     /* double      lower_hr_threshold     = */ 0.9f,
-    /* double      increment              = */ 0.999999999999,
+    /* double      increment              = */ H5_DOUBLE(0.999999999999),
     /* hbool_t     apply_max_increment    = */ TRUE,
     /* size_t      max_increment          = */ (4 * 1024 * 1024),
     /* enum H5C_cache_flash_incr_mode       */
@@ -2532,7 +2532,7 @@ H5AC_cache_config_t invalid_configs[NUM_INVALID_CONFIGS] =
     /* double      flash_threshold        = */ 0.5f,
     /* enum H5C_cache_decr_mode decr_mode = */ H5C_decr__threshold,
     /* double      upper_hr_threshold     = */ 0.999f,
-    /* double      decrement              = */ 1.0000000001,
+    /* double      decrement              = */ H5_DOUBLE(1.0000000001),
     /* hbool_t     apply_max_decrement    = */ TRUE,
     /* size_t      max_decrement          = */ (1 * 1024 * 1024),
     /* int         epochs_before_eviction = */ 3,
@@ -2712,7 +2712,7 @@ H5AC_cache_config_t invalid_configs[NUM_INVALID_CONFIGS] =
     /* size_t      max_decrement          = */ (1 * 1024 * 1024),
     /* int         epochs_before_eviction = */ 3,
     /* hbool_t     apply_empty_reserve    = */ TRUE,
-    /* double      empty_reserve          = */ 1.00000000001,
+    /* double      empty_reserve          = */ H5_DOUBLE(1.00000000001),
     /* int         dirty_bytes_threshold  = */ (256 * 1024),
     /* int	  metadata_write_strategy = */
 				      H5AC__DEFAULT_METADATA_WRITE_STRATEGY
@@ -2776,7 +2776,7 @@ H5AC_cache_config_t invalid_configs[NUM_INVALID_CONFIGS] =
     /* double      flash_multiple         = */ 2.0f,
     /* double      flash_threshold        = */ 0.5f,
     /* enum H5C_cache_decr_mode decr_mode = */ H5C_decr__age_out_with_threshold,
-    /* double      upper_hr_threshold     = */ 1.00000001,
+    /* double      upper_hr_threshold     = */ H5_DOUBLE(1.00000001),
     /* double      decrement              = */ 0.9f,
     /* hbool_t     apply_max_decrement    = */ TRUE,
     /* size_t      max_decrement          = */ (1 * 1024 * 1024),
diff --git a/test/cache_common.c b/test/cache_common.c
index f41e6af..4077d29 100644
--- a/test/cache_common.c
+++ b/test/cache_common.c
@@ -4609,7 +4609,7 @@ check_and_validate_cache_hit_rate(hid_t file_id,
 
         } else {
 
-            expected_hit_rate = 0.0;
+            expected_hit_rate = 0.0F;
         }
 
         result = H5Fget_mdc_hit_rate(file_id, &hit_rate);
@@ -4619,7 +4619,7 @@ check_and_validate_cache_hit_rate(hid_t file_id,
             pass = FALSE;
             failure_mssg = "H5Fget_mdc_hit_rate() failed.";
 
-        } else if ( ! DBL_REL_EQUAL(hit_rate, expected_hit_rate, 0.00001) ) {
+        } else if ( ! DBL_REL_EQUAL(hit_rate, expected_hit_rate, 0.00001F) ) {
 
             pass = FALSE;
             failure_mssg = "unexpected hit rate.";
diff --git a/test/cross_read.c b/test/cross_read.c
index ba99c9e..35dd2ce 100644
--- a/test/cross_read.c
+++ b/test/cross_read.c
@@ -100,15 +100,15 @@ static int check_data(const char *dsetname, hid_t fid, hbool_t floating_number)
     for (j = 0; j < NX; j++) {
         for (i = 0; i < NY; i++) {
             data_in[j][i] = ((double)(i + j + 1))/3;
-            data_out[j][i] = 0;
+            data_out[j][i] = 0.0F;
 
             int_data_in[j][i] = i + j;
             int_data_out[j][i] = 0;
         }
     }
     for (i = 0; i < NY; i++) {
-        data_in[NX][i] = -2.2;
-        data_out[NX][i] = 0;
+        data_in[NX][i] = -2.2F;
+        data_out[NX][i] = 0.0F;
 
         int_data_in[NX][i] = -2;
         int_data_out[NX][i] = 0;
@@ -126,7 +126,7 @@ static int check_data(const char *dsetname, hid_t fid, hbool_t floating_number)
 	/* Check results */
 	for (j=0; j<(NX+1); j++) {
 	    for (i=0; i<NY; i++) {
-		if (!DBL_REL_EQUAL(data_out[j][i], data_in[j][i], 0.001)) {
+		if (!DBL_REL_EQUAL(data_out[j][i], data_in[j][i], 0.001F)) {
 		    if (!nerrors++) {
 			H5_FAILED();
 			printf("element [%d][%d] is %g but should have been %g\n",
@@ -213,116 +213,46 @@ static int open_dataset(char *fname)
     nerrors += check_data(DATASETNAME1, file, TRUE);
 
     TESTING("dataset of LE FLOAT with scale-offset filter");
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
     nerrors += check_data(DATASETNAME2, file, TRUE);
-#else /*H5_HAVE_FILTER_SCALEOFFSET*/
-    SKIPPED();
-    puts(not_supported);
-#endif /*H5_HAVE_FILTER_SCALEOFFSET*/
  
     TESTING("dataset of BE FLOAT with scale-offset filter");
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
     nerrors += check_data(DATASETNAME3, file, TRUE);
-#else /*H5_HAVE_FILTER_SCALEOFFSET*/
-    SKIPPED();
-    puts(not_supported);
-#endif /*H5_HAVE_FILTER_SCALEOFFSET*/
 
     TESTING("dataset of LE DOUBLE with scale-offset filter");
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
     nerrors += check_data(DATASETNAME4, file, TRUE);
-#else /*H5_HAVE_FILTER_SCALEOFFSET*/
-    SKIPPED();
-    puts(not_supported);
-#endif /*H5_HAVE_FILTER_SCALEOFFSET*/
  
     TESTING("dataset of BE DOUBLE with scale-offset filter");
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
     nerrors += check_data(DATASETNAME5, file, TRUE);
-#else /*H5_HAVE_FILTER_SCALEOFFSET*/
-    SKIPPED();
-    puts(not_supported);
-#endif /*H5_HAVE_FILTER_SCALEOFFSET*/
  
     TESTING("dataset of LE CHAR with scale-offset filter");
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
     nerrors += check_data(DATASETNAME6, file, FALSE);
-#else /*H5_HAVE_FILTER_SCALEOFFSET*/
-    SKIPPED();
-    puts(not_supported);
-#endif /*H5_HAVE_FILTER_SCALEOFFSET*/
  
     TESTING("dataset of BE CHAR with scale-offset filter");
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
     nerrors += check_data(DATASETNAME7, file, FALSE);
-#else /*H5_HAVE_FILTER_SCALEOFFSET*/
-    SKIPPED();
-    puts(not_supported);
-#endif /*H5_HAVE_FILTER_SCALEOFFSET*/
  
     TESTING("dataset of LE SHORT with scale-offset filter");
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
     nerrors += check_data(DATASETNAME8, file, FALSE);
-#else /*H5_HAVE_FILTER_SCALEOFFSET*/
-    SKIPPED();
-    puts(not_supported);
-#endif /*H5_HAVE_FILTER_SCALEOFFSET*/
  
     TESTING("dataset of BE SHORT with scale-offset filter");
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
     nerrors += check_data(DATASETNAME9, file, FALSE);
-#else /*H5_HAVE_FILTER_SCALEOFFSET*/
-    SKIPPED();
-    puts(not_supported);
-#endif /*H5_HAVE_FILTER_SCALEOFFSET*/
 
     TESTING("dataset of LE INT with scale-offset filter");
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
     nerrors += check_data(DATASETNAME10, file, FALSE);
-#else /*H5_HAVE_FILTER_SCALEOFFSET*/
-    SKIPPED();
-    puts(not_supported);
-#endif /*H5_HAVE_FILTER_SCALEOFFSET*/
  
     TESTING("dataset of BE INT with scale-offset filter");
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
     nerrors += check_data(DATASETNAME11, file, FALSE);
-#else /*H5_HAVE_FILTER_SCALEOFFSET*/
-    SKIPPED();
-    puts(not_supported);
-#endif /*H5_HAVE_FILTER_SCALEOFFSET*/
 
     TESTING("dataset of LE LONG LONG with scale-offset filter");
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
     nerrors += check_data(DATASETNAME12, file, FALSE);
-#else /*H5_HAVE_FILTER_SCALEOFFSET*/
-    SKIPPED();
-    puts(not_supported);
-#endif /*H5_HAVE_FILTER_SCALEOFFSET*/
  
     TESTING("dataset of BE LONG LONG with scale-offset filter");
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
     nerrors += check_data(DATASETNAME13, file, FALSE);
-#else /*H5_HAVE_FILTER_SCALEOFFSET*/
-    SKIPPED();
-    puts(not_supported);
-#endif /*H5_HAVE_FILTER_SCALEOFFSET*/
 
     TESTING("dataset of LE FLOAT with Fletcher32 filter");
-#ifdef H5_HAVE_FILTER_FLETCHER32
     nerrors += check_data(DATASETNAME14, file, TRUE);
-#else /*H5_HAVE_FILTER_FLETCHER32*/
-    SKIPPED();
-    puts(not_supported);
-#endif /*H5_HAVE_FILTER_FLETCHER32*/
  
     TESTING("dataset of BE FLOAT with Fletcher32 filter");
-#ifdef H5_HAVE_FILTER_FLETCHER32
     nerrors += check_data(DATASETNAME15, file, TRUE);
-#else /*H5_HAVE_FILTER_FLETCHER32*/
-    SKIPPED();
-    puts(not_supported);
-#endif /*H5_HAVE_FILTER_FLETCHER32*/
  
     TESTING("dataset of LE FLOAT with Deflate filter");
 #ifdef H5_HAVE_FILTER_DEFLATE
@@ -357,36 +287,16 @@ static int open_dataset(char *fname)
 #endif /*H5_HAVE_FILTER_SZIP*/
 
     TESTING("dataset of LE FLOAT with Shuffle filter");
-#ifdef H5_HAVE_FILTER_SHUFFLE
     nerrors += check_data(DATASETNAME20, file, TRUE);
-#else /*H5_HAVE_FILTER_SHUFFLE*/
-    SKIPPED();
-    puts(not_supported);
-#endif /*H5_HAVE_FILTER_SHUFFLE*/
 
     TESTING("dataset of BE FLOAT with Shuffle filter");
-#ifdef H5_HAVE_FILTER_SHUFFLE
     nerrors += check_data(DATASETNAME21, file, TRUE);
-#else /*H5_HAVE_FILTER_SHUFFLE*/
-    SKIPPED();
-    puts(not_supported);
-#endif /*H5_HAVE_FILTER_SHUFFLE*/
 
     TESTING("dataset of LE FLOAT with Nbit filter");
-#ifdef H5_HAVE_FILTER_NBIT
     nerrors += check_data(DATASETNAME22, file, TRUE);
-#else /*H5_HAVE_FILTER_NBIT*/
-    SKIPPED();
-    puts(not_supported);
-#endif /*H5_HAVE_FILTER_NBIT*/
 
     TESTING("dataset of BE FLOAT with Nbit filter");
-#ifdef H5_HAVE_FILTER_NBIT
     nerrors += check_data(DATASETNAME23, file, TRUE);
-#else /*H5_HAVE_FILTER_NBIT*/
-    SKIPPED();
-    puts(not_supported);
-#endif /*H5_HAVE_FILTER_NBIT*/
 
     if(H5Fclose(file))
         TEST_ERROR
diff --git a/test/dsets.c b/test/dsets.c
index 8ba79c3..cc1fa03 100644
--- a/test/dsets.c
+++ b/test/dsets.c
@@ -70,19 +70,17 @@ const char *FILENAME[] = {
 #define DSET_CONV_BUF_NAME	"conv_buf"
 #define DSET_TCONV_NAME		"tconv"
 #define DSET_DEFLATE_NAME	"deflate"
-#ifdef H5_HAVE_FILTER_SZIP
-#define DSET_SZIP_NAME          "szip"
-#endif /* H5_HAVE_FILTER_SZIP */
 #define DSET_SHUFFLE_NAME	"shuffle"
 #define DSET_FLETCHER32_NAME	"fletcher32"
 #define DSET_FLETCHER32_NAME_2	"fletcher32_2"
 #define DSET_FLETCHER32_NAME_3	"fletcher32_3"
 #define DSET_SHUF_DEF_FLET_NAME	"shuffle+deflate+fletcher32"
 #define DSET_SHUF_DEF_FLET_NAME_2	"shuffle+deflate+fletcher32_2"
-#if defined H5_HAVE_FILTER_SZIP && defined H5_HAVE_FILTER_SHUFFLE && defined H5_HAVE_FILTER_FLETCHER32
+#ifdef H5_HAVE_FILTER_SZIP
+#define DSET_SZIP_NAME          "szip"
 #define DSET_SHUF_SZIP_FLET_NAME	"shuffle+szip+fletcher32"
 #define DSET_SHUF_SZIP_FLET_NAME_2	"shuffle+szip+fletcher32_2"
-#endif /* defined H5_HAVE_FILTER_SZIP && defined H5_HAVE_FILTER_SHUFFLE && defined H5_HAVE_FILTER_FLETCHER32 */
+#endif /* H5_HAVE_FILTER_SZIP */
 
 #define DSET_BOGUS_NAME		"bogus"
 #define DSET_MISSING_NAME	"missing"
@@ -2011,21 +2009,17 @@ test_get_filter_info(void)
   /* Verify that each filter is reported as having the right combination
    * of encoder and decoder.
    */
-#ifdef H5_HAVE_FILTER_FLETCHER32
   if(H5Zget_filter_info(H5Z_FILTER_FLETCHER32, &flags) < 0) TEST_ERROR
 
   if(((flags & H5Z_FILTER_CONFIG_ENCODE_ENABLED) == 0) ||
      ((flags & H5Z_FILTER_CONFIG_DECODE_ENABLED) == 0))
       TEST_ERROR
-#endif
 
-#ifdef H5_HAVE_FILTER_SHUFFLE
   if(H5Zget_filter_info(H5Z_FILTER_SHUFFLE, &flags) < 0) TEST_ERROR
 
   if(((flags & H5Z_FILTER_CONFIG_ENCODE_ENABLED) == 0) ||
      ((flags & H5Z_FILTER_CONFIG_DECODE_ENABLED) == 0))
       TEST_ERROR
-#endif
 
 #ifdef H5_HAVE_FILTER_DEFLATE
   if(H5Zget_filter_info(H5Z_FILTER_DEFLATE, &flags) < 0) TEST_ERROR
@@ -2088,10 +2082,8 @@ UNUSED
     const hsize_t chunk_size[2] = {FILTER_CHUNK_DIM1, FILTER_CHUNK_DIM2};  /* Chunk dimensions */
     hsize_t     null_size;          /* Size of dataset with null filter */
 
-#ifdef H5_HAVE_FILTER_FLETCHER32
     hsize_t     fletcher32_size;       /* Size of dataset with Fletcher32 checksum */
     unsigned    data_corrupt[3];     /* position and length of data to be corrupted */
-#endif /* H5_HAVE_FILTER_FLETCHER32 */
 
 #ifdef H5_HAVE_FILTER_DEFLATE
     hsize_t     deflate_size;       /* Size of dataset with deflate filter */
@@ -2103,13 +2095,11 @@ UNUSED
     unsigned szip_pixels_per_block=4;
 #endif /* H5_HAVE_FILTER_SZIP */
 
-#ifdef H5_HAVE_FILTER_SHUFFLE
     hsize_t     shuffle_size;       /* Size of dataset with shuffle filter */
-#endif /* H5_HAVE_FILTER_SHUFFLE */
 
-#if(defined H5_HAVE_FILTER_DEFLATE | defined H5_HAVE_FILTER_SZIP) && defined H5_HAVE_FILTER_SHUFFLE && defined H5_HAVE_FILTER_FLETCHER32
-    hsize_t     combo_size;     /* Size of dataset with shuffle+deflate filter */
-#endif /* H5_HAVE_FILTER_DEFLATE && H5_HAVE_FILTER_SHUFFLE && H5_HAVE_FILTER_FLETCHER32 */
+#if(defined H5_HAVE_FILTER_DEFLATE | defined H5_HAVE_FILTER_SZIP)
+    hsize_t     combo_size;     /* Size of dataset with multiple filters */
+#endif /* defined H5_HAVE_FILTER_DEFLATE | defined H5_HAVE_FILTER_SZIP */
 
     /* test the H5Zget_filter_info function */
     if(test_get_filter_info() < 0) goto error;
@@ -2133,7 +2123,6 @@ UNUSED
      * STEP 1: Test Fletcher32 Checksum by itself.
      *----------------------------------------------------------
      */
-#ifdef H5_HAVE_FILTER_FLETCHER32
     puts("Testing Fletcher32 checksum(enabled for read)");
     if((dc = H5Pcreate(H5P_DATASET_CREATE)) < 0) goto error;
     if(H5Pset_chunk (dc, 2, chunk_size) < 0) goto error;
@@ -2174,11 +2163,6 @@ UNUSED
     /* Clean up objects used for this test */
     if(H5Pclose (dc) < 0) goto error;
 
-#else /* H5_HAVE_FILTER_FLETCHER32 */
-    TESTING("fletcher32 checksum");
-    SKIPPED();
-    puts("    Fletcher32 checksum not enabled");
-#endif /* H5_HAVE_FILTER_FLETCHER32 */
 
     /*----------------------------------------------------------
      * STEP 2: Test deflation by itself.
@@ -2236,7 +2220,6 @@ UNUSED
      * STEP 4: Test shuffling by itself.
      *----------------------------------------------------------
      */
-#ifdef H5_HAVE_FILTER_SHUFFLE
     puts("Testing shuffle filter");
     if((dc = H5Pcreate(H5P_DATASET_CREATE)) < 0) goto error;
     if(H5Pset_chunk (dc, 2, chunk_size) < 0) goto error;
@@ -2251,17 +2234,12 @@ UNUSED
 
     /* Clean up objects used for this test */
     if(H5Pclose (dc) < 0) goto error;
-#else /* H5_HAVE_FILTER_SHUFFLE */
-    TESTING("shuffle filter");
-    SKIPPED();
-    puts("    Shuffle filter not enabled");
-#endif /* H5_HAVE_FILTER_SHUFFLE */
 
     /*----------------------------------------------------------
      * STEP 5: Test shuffle + deflate + checksum in any order.
      *----------------------------------------------------------
      */
-#if defined H5_HAVE_FILTER_DEFLATE && defined H5_HAVE_FILTER_SHUFFLE && defined H5_HAVE_FILTER_FLETCHER32
+#ifdef H5_HAVE_FILTER_DEFLATE
     puts("Testing shuffle+deflate+checksum filters(checksum first)");
     if((dc = H5Pcreate(H5P_DATASET_CREATE)) < 0) goto error;
     if(H5Pset_chunk (dc, 2, chunk_size) < 0) goto error;
@@ -2285,17 +2263,17 @@ UNUSED
 
     /* Clean up objects used for this test */
     if(H5Pclose (dc) < 0) goto error;
-#else /* H5_HAVE_FILTER_DEFLATE && H5_HAVE_FILTER_SHUFFLE && H5_HAVE_FILTER_FLETCHER32 */
+#else /* H5_HAVE_FILTER_DEFLATE */
     TESTING("shuffle+deflate+fletcher32 filters");
     SKIPPED();
-    puts("    Deflate, shuffle, or fletcher32 checksum filter not enabled");
-#endif /* H5_HAVE_FILTER_DEFLATE && H5_HAVE_FILTER_SHUFFLE && H5_HAVE_FILTER_FLETCHER32 */
+    puts("    Deflate filter not enabled");
+#endif /* H5_HAVE_FILTER_DEFLATE */
 
     /*----------------------------------------------------------
      * STEP 6: Test shuffle + szip + checksum in any order.
      *----------------------------------------------------------
      */
-#if defined H5_HAVE_FILTER_SZIP && defined H5_HAVE_FILTER_SHUFFLE && defined H5_HAVE_FILTER_FLETCHER32
+#ifdef H5_HAVE_FILTER_SZIP
 
     TESTING("shuffle+szip+checksum filters(checksum first, with encoder)");
     if((dc = H5Pcreate(H5P_DATASET_CREATE)) < 0) goto error;
@@ -2344,11 +2322,11 @@ UNUSED
 	SKIPPED();
     }
 
-#else /* H5_HAVE_FILTER_SZIP && H5_HAVE_FILTER_SHUFFLE && H5_HAVE_FILTER_FLETCHER32 */
+#else /* H5_HAVE_FILTER_SZIP */
     TESTING("shuffle+szip+fletcher32 filters");
     SKIPPED();
-    puts("    Szip, shuffle, or fletcher32 checksum filter not enabled");
-#endif /* H5_HAVE_FILTER_SZIP && H5_HAVE_FILTER_SHUFFLE && H5_HAVE_FILTER_FLETCHER32 */
+    puts("    szip filter not enabled");
+#endif /* H5_HAVE_FILTER_SZIP */
     return 0;
 
 error:
@@ -2623,20 +2601,15 @@ error:
 static herr_t
 test_onebyte_shuffle(hid_t file)
 {
-#ifdef H5_HAVE_FILTER_SHUFFLE
     hid_t		dataset, space,dc;
     const hsize_t	size[2] = {10, 20};
     const hsize_t       chunk_size[2] = {10, 20};
     unsigned char       orig_data[10][20];
     unsigned char       new_data[10][20];
     size_t		i, j;
-#else /* H5_HAVE_FILTER_SHUFFLE */
-    const char		*not_supported= "    Data shuffling is not enabled.";
-#endif /* H5_HAVE_FILTER_SHUFFLE */
 
     TESTING("8-bit shuffling (setup)");
 
-#ifdef H5_HAVE_FILTER_SHUFFLE
     /* Create the data space */
     if((space = H5Screate_simple(2, size, NULL)) < 0) goto error;
 
@@ -2654,10 +2627,6 @@ test_onebyte_shuffle(hid_t file)
 	orig_data[i][j] = (unsigned char)HDrandom();
 
     PASSED();
-#else
-    SKIPPED();
-    puts(not_supported);
-#endif
 
     /*----------------------------------------------------------------------
      * STEP 1: Test shuffling by setting up a chunked dataset and writing
@@ -2666,16 +2635,11 @@ test_onebyte_shuffle(hid_t file)
      */
     TESTING("8-bit shuffling (write)");
 
-#ifdef H5_HAVE_FILTER_SHUFFLE
     if(H5Dwrite(dataset, H5T_NATIVE_UCHAR, H5S_ALL, H5S_ALL, H5P_DEFAULT,
 		 orig_data) < 0)
 	goto error;
 
     PASSED();
-#else
-    SKIPPED();
-    puts(not_supported);
-#endif
 
     /*----------------------------------------------------------------------
      * STEP 2: Try to read the data we just wrote.
@@ -2683,7 +2647,6 @@ test_onebyte_shuffle(hid_t file)
      */
     TESTING("8-bit shuffling (read)");
 
-#ifdef H5_HAVE_FILTER_SHUFFLE
     /* Read the dataset back */
     if(H5Dread(dataset, H5T_NATIVE_UCHAR, H5S_ALL, H5S_ALL, H5P_DEFAULT,
 		new_data) < 0)
@@ -2710,10 +2673,6 @@ test_onebyte_shuffle(hid_t file)
     if(H5Dclose(dataset) < 0) goto error;
 
     PASSED();
-#else
-    SKIPPED();
-    puts(not_supported);
-#endif
 
     return 0;
 
@@ -2739,7 +2698,6 @@ error:
 static herr_t
 test_nbit_int(hid_t file)
 {
-#ifdef H5_HAVE_FILTER_NBIT
     hid_t               dataset, datatype, mem_datatype, space, dc;
     hsize_t             size[2] = {2, 5};
     hsize_t             chunk_size[2] = {2,5};
@@ -2748,13 +2706,10 @@ test_nbit_int(hid_t file)
     unsigned int        mask;
     size_t              precision, offset;
     size_t             i, j;
-#else /* H5_HAVE_FILTER_NBIT */
-    const char          *not_supported= "    Nbit is not enabled.";
-#endif /* H5_HAVE_FILTER_NBIT */
 
     puts("Testing nbit filter");
     TESTING("    nbit int (setup)");
-#ifdef H5_HAVE_FILTER_NBIT
+
     /* Define dataset datatype (integer), and set precision, offset */
     datatype = H5Tcopy(H5T_NATIVE_INT);
     precision = 17; /* precision includes sign bit */
@@ -2792,10 +2747,6 @@ test_nbit_int(hid_t file)
       }
 
     PASSED();
-#else
-    SKIPPED();
-    puts(not_supported);
-#endif
 
     /*----------------------------------------------------------------------
      * STEP 1: Test nbit by setting up a chunked dataset and writing
@@ -2804,15 +2755,10 @@ test_nbit_int(hid_t file)
      */
     TESTING("    nbit int (write)");
 
-#ifdef H5_HAVE_FILTER_NBIT
     if(H5Dwrite(dataset, mem_datatype, H5S_ALL, H5S_ALL, H5P_DEFAULT,
                  orig_data) < 0)
         goto error;
     PASSED();
-#else
-    SKIPPED();
-    puts(not_supported);
-#endif
 
     /*----------------------------------------------------------------------
      * STEP 2: Try to read the data we just wrote.
@@ -2820,7 +2766,6 @@ test_nbit_int(hid_t file)
      */
     TESTING("    nbit int (read)");
 
-#ifdef H5_HAVE_FILTER_NBIT
     /* Read the dataset back */
     if(H5Dread(dataset, mem_datatype, H5S_ALL, H5S_ALL, H5P_DEFAULT,
                 new_data) < 0)
@@ -2852,10 +2797,7 @@ test_nbit_int(hid_t file)
     if(H5Dclose(dataset) < 0) goto error;
 
     PASSED();
-#else
-    SKIPPED();
-    puts(not_supported);
-#endif
+
     return 0;
 error:
     return -1;
@@ -2879,24 +2821,20 @@ error:
 static herr_t
 test_nbit_float(hid_t file)
 {
-#ifdef H5_HAVE_FILTER_NBIT
     hid_t               dataset, datatype, space, dc;
     const hsize_t       size[2] = {2, 5};
     const hsize_t       chunk_size[2] = {2, 5};
     /* orig_data[] are initialized to be within the range that can be represented by
      * dataset datatype (no precision loss during datatype conversion)
      */
-    float               orig_data[2][5] = {{(float)188384.00f, (float)19.103516f, (float)-1.0831790e9f, (float)-84.242188f,
-    (float)5.2045898f}, {(float)-49140.000f, (float)2350.2500f, (float)-3.2110596e-1f, (float)6.4998865e-5f, (float)-0.0000000f}};
+    float               orig_data[2][5] = {{188384.0f, 19.103516f, -1.0831790e9f, -84.242188f, 5.2045898f},
+                                           {-49140.0f, 2350.25f, -3.2110596e-1f, 6.4998865e-5f, -0.0f}};
     float               new_data[2][5];
     size_t              precision, offset;
     size_t             i, j;
-#else /* H5_HAVE_FILTER_NBIT */
-    const char          *not_supported= "    Nbit is not enabled.";
-#endif /* H5_HAVE_FILTER_NBIT */
 
     TESTING("    nbit float (setup)");
-#ifdef H5_HAVE_FILTER_NBIT
+
     /* Define user-defined single-precision floating-point type for dataset */
     datatype = H5Tcopy(H5T_IEEE_F32BE);
     if(H5Tset_fields(datatype, (size_t)26, (size_t)20, (size_t)6, (size_t)7, (size_t)13) < 0) goto error;
@@ -2919,10 +2857,6 @@ test_nbit_float(hid_t file)
     if((dataset = H5Dcreate2(file, DSET_NBIT_FLOAT_NAME, datatype,
                              space, H5P_DEFAULT, dc, H5P_DEFAULT)) < 0) goto error;
     PASSED();
-#else
-    SKIPPED();
-    puts(not_supported);
-#endif
 
     /*----------------------------------------------------------------------
      * STEP 1: Test nbit by setting up a chunked dataset and writing
@@ -2931,16 +2865,11 @@ test_nbit_float(hid_t file)
      */
     TESTING("    nbit float (write)");
 
-#ifdef H5_HAVE_FILTER_NBIT
     if(H5Dwrite(dataset, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, H5P_DEFAULT,
                  orig_data) < 0)
         goto error;
 
     PASSED();
-#else
-    SKIPPED();
-    puts(not_supported);
-#endif
 
     /*----------------------------------------------------------------------
      * STEP 2: Try to read the data we just wrote.
@@ -2948,7 +2877,6 @@ test_nbit_float(hid_t file)
      */
     TESTING("    nbit float (read)");
 
-#ifdef H5_HAVE_FILTER_NBIT
     /* Read the dataset back */
     if(H5Dread(dataset, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, H5P_DEFAULT,
                 new_data) < 0)
@@ -2979,10 +2907,6 @@ test_nbit_float(hid_t file)
     if(H5Dclose(dataset) < 0) goto error;
 
     PASSED();
-#else
-    SKIPPED();
-    puts(not_supported);
-#endif
 
     return 0;
 
@@ -3009,25 +2933,33 @@ static herr_t
 test_nbit_double(hid_t file)
 {
 /* assume unsigned int and float has the same number of bytes */
-#ifdef H5_HAVE_FILTER_NBIT
     hid_t               dataset, datatype, space, dc;
     const hsize_t       size[2] = {2, 5};
     const hsize_t       chunk_size[2] = {2, 5};
     /* orig_data[] are initialized to be within the range that can be represented by
      * dataset datatype (no precision loss during datatype conversion)
      */
-    double              orig_data[2][5] = {{1.6081706885101836e+60, -255.32099170994480,
-    1.2677579992621376e-61, 64568.289448797700, -1.0619721778839084e-75}, {2.1499497833454840e+56,
-    6.6562295504670740e-3, -1.5747263393432150, 1.0711093225222612, -9.8971679387636870e-1}};
+    double              orig_data[2][5] = {
+        {
+            H5_DOUBLE(1.6081706885101836e+60),
+            H5_DOUBLE(-255.32099170994480),
+            H5_DOUBLE(1.2677579992621376e-61),
+            H5_DOUBLE(64568.289448797700),
+            H5_DOUBLE(-1.0619721778839084e-75)
+        }, 
+        {
+            H5_DOUBLE(2.1499497833454840e+56),
+            H5_DOUBLE(6.6562295504670740e-3), 
+            H5_DOUBLE(-1.5747263393432150), 
+            H5_DOUBLE(1.0711093225222612), 
+            H5_DOUBLE(-9.8971679387636870e-1)
+        }};
     double              new_data[2][5];
     size_t              precision, offset;
     size_t             i, j;
-#else /* H5_HAVE_FILTER_NBIT */
-    const char          *not_supported= "    Nbit is not enabled.";
-#endif /* H5_HAVE_FILTER_NBIT */
 
     TESTING("    nbit double (setup)");
-#ifdef H5_HAVE_FILTER_NBIT
+
     /* Define user-defined doule-precision floating-point type for dataset */
     datatype = H5Tcopy(H5T_IEEE_F64BE);
     if(H5Tset_fields(datatype, (size_t)55, (size_t)46, (size_t)9, (size_t)5, (size_t)41) < 0) goto error;
@@ -3051,10 +2983,6 @@ test_nbit_double(hid_t file)
                              space, H5P_DEFAULT, dc, H5P_DEFAULT)) < 0) goto error;
 
     PASSED();
-#else
-    SKIPPED();
-    puts(not_supported);
-#endif
 
     /*----------------------------------------------------------------------
      * STEP 1: Test nbit by setting up a chunked dataset and writing
@@ -3063,15 +2991,10 @@ test_nbit_double(hid_t file)
      */
     TESTING("    nbit double (write)");
 
-#ifdef H5_HAVE_FILTER_NBIT
     if(H5Dwrite(dataset, H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT,
                  orig_data) < 0)
         goto error;
     PASSED();
-#else
-    SKIPPED();
-    puts(not_supported);
-#endif
 
     /*----------------------------------------------------------------------
      * STEP 2: Try to read the data we just wrote.
@@ -3079,7 +3002,6 @@ test_nbit_double(hid_t file)
      */
     TESTING("    nbit double (read)");
 
-#ifdef H5_HAVE_FILTER_NBIT
     /* Read the dataset back */
     if(H5Dread(dataset, H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT,
                 new_data) < 0)
@@ -3110,10 +3032,6 @@ test_nbit_double(hid_t file)
     if(H5Dclose(dataset) < 0) goto error;
 
     PASSED();
-#else
-    SKIPPED();
-    puts(not_supported);
-#endif
 
     return 0;
 
@@ -3139,7 +3057,6 @@ error:
 static herr_t
 test_nbit_array(hid_t file)
 {
-#ifdef H5_HAVE_FILTER_NBIT
     hid_t               dataset, base_datatype, array_datatype, space, dc;
     hid_t               mem_base_datatype, mem_array_datatype;
     const hsize_t       size[2] = {2, 5};
@@ -3149,12 +3066,9 @@ test_nbit_array(hid_t file)
     unsigned int        new_data[2][5][3][2];
     size_t              precision, offset;
     size_t             i, j, m, n;
-#else /* H5_HAVE_FILTER_NBIT */
-    const char          *not_supported= "    Nbit is not enabled.";
-#endif /* H5_HAVE_FILTER_NBIT */
 
     TESTING("    nbit array (setup)");
-#ifdef H5_HAVE_FILTER_NBIT
+
     /* Define dataset array datatype's base datatype and set precision, offset */
     base_datatype = H5Tcopy(H5T_NATIVE_UINT);
     precision = 22;
@@ -3192,12 +3106,8 @@ test_nbit_array(hid_t file)
         for(m = 0; m < (size_t)adims[0]; m++)
           for(n = 0; n < (size_t)adims[1]; n++)
             orig_data[i][j][m][n] = (unsigned int)(((long long)HDrandom() %
-                                     (long long)HDpow(2.0, (double)precision)) << offset);
+                                     (long long)HDpow(2.0F, (double)precision)) << offset);
     PASSED();
-#else
-    SKIPPED();
-    puts(not_supported);
-#endif
 
     /*----------------------------------------------------------------------
      * STEP 1: Test nbit by setting up a chunked dataset and writing
@@ -3206,16 +3116,11 @@ test_nbit_array(hid_t file)
      */
     TESTING("    nbit array (write)");
 
-#ifdef H5_HAVE_FILTER_NBIT
     if(H5Dwrite(dataset, mem_array_datatype, H5S_ALL, H5S_ALL, H5P_DEFAULT,
                  orig_data) < 0)
         goto error;
 
     PASSED();
-#else
-    SKIPPED();
-    puts(not_supported);
-#endif
 
     /*----------------------------------------------------------------------
      * STEP 2: Try to read the data we just wrote.
@@ -3223,7 +3128,6 @@ test_nbit_array(hid_t file)
      */
     TESTING("    nbit array (read)");
 
-#ifdef H5_HAVE_FILTER_NBIT
     /* Read the dataset back */
     if(H5Dread(dataset, mem_array_datatype, H5S_ALL, H5S_ALL, H5P_DEFAULT,
                 new_data) < 0)
@@ -3257,10 +3161,7 @@ test_nbit_array(hid_t file)
     if(H5Dclose(dataset) < 0) goto error;
 
     PASSED();
-#else
-    SKIPPED();
-    puts(not_supported);
-#endif
+
     return 0;
 
 error:
@@ -3285,7 +3186,6 @@ error:
 static herr_t
 test_nbit_compound(hid_t file)
 {
-#ifdef H5_HAVE_FILTER_NBIT
     typedef struct {     /* Struct with atomic fields */
         int i;
         char c;
@@ -3300,19 +3200,16 @@ test_nbit_compound(hid_t file)
     hid_t               dataset, space, dc;
     const hsize_t       size[2] = {2, 5};
     const hsize_t       chunk_size[2] = {2, 5};
-    const float         float_val[2][5] = {{(float)188384.00, (float)19.103516, (float)-1.0831790e9, (float)-84.242188,
-    (float)5.2045898}, {(float)-49140.000, (float)2350.2500, (float)-3.2110596e-1, (float)6.4998865e-5, (float)-0.0000000}};
+    const float         float_val[2][5] = {{188384.0F, 19.103516F, -1.0831790e9F, -84.242188F, 5.2045898F}, 
+                                           {-49140.0F, 2350.25F, -3.2110596e-1F, 6.4998865e-5F, -0.0F}};
     atomic              orig_data[2][5];
     atomic              new_data[2][5];
     unsigned int        i_mask, s_mask, c_mask;
     size_t             i, j;
 
-#else /* H5_HAVE_FILTER_NBIT */
-    const char          *not_supported= "    Nbit is not enabled.";
-#endif /* H5_HAVE_FILTER_NBIT */
 
     TESTING("    nbit compound (setup)");
-#ifdef H5_HAVE_FILTER_NBIT
+
     /* Define datatypes of members of compound datatype */
     i_tid=H5Tcopy(H5T_NATIVE_INT);
     c_tid=H5Tcopy(H5T_NATIVE_CHAR);
@@ -3368,11 +3265,11 @@ test_nbit_compound(hid_t file)
     for(i= 0;i< (size_t)size[0]; i++)
       for(j = 0; j < (size_t)size[1]; j++) {
         orig_data[i][j].i = (int)(((long long)HDrandom() %
-                             (long long)HDpow(2.0, (double)(precision[0]-1))) << offset[0]);
+                             (long long)HDpow(2.0F, (double)(precision[0]-1))) << offset[0]);
         orig_data[i][j].c = (char)(((long long)HDrandom() %
-                             (long long)HDpow(2.0, (double)(precision[1]-1))) << offset[1]);
+                             (long long)HDpow(2.0F, (double)(precision[1]-1))) << offset[1]);
         orig_data[i][j].s = (short)(((long long)HDrandom() %
-                             (long long)HDpow(2.0, (double)(precision[2]-1))) << offset[2]);
+                             (long long)HDpow(2.0F, (double)(precision[2]-1))) << offset[2]);
         orig_data[i][j].f = float_val[i][j];
 
         /* some even-numbered integer values are negtive */
@@ -3383,10 +3280,6 @@ test_nbit_compound(hid_t file)
       }
 
     PASSED();
-#else
-    SKIPPED();
-    puts(not_supported);
-#endif
 
     /*----------------------------------------------------------------------
      * STEP 1: Test nbit by setting up a chunked dataset and writing
@@ -3395,15 +3288,10 @@ test_nbit_compound(hid_t file)
      */
     TESTING("    nbit compound (write)");
 
-#ifdef H5_HAVE_FILTER_NBIT
     if(H5Dwrite(dataset, mem_cmpd_tid, H5S_ALL, H5S_ALL, H5P_DEFAULT,
                  orig_data) < 0)
         goto error;
     PASSED();
-#else
-    SKIPPED();
-    puts(not_supported);
-#endif
 
     /*----------------------------------------------------------------------
      * STEP 2: Try to read the data we just wrote.
@@ -3411,7 +3299,6 @@ test_nbit_compound(hid_t file)
      */
     TESTING("    nbit compound (read)");
 
-#ifdef H5_HAVE_FILTER_NBIT
     /* Read the dataset back */
     if(H5Dread(dataset, mem_cmpd_tid, H5S_ALL, H5S_ALL, H5P_DEFAULT,
                 new_data) < 0)
@@ -3453,10 +3340,7 @@ test_nbit_compound(hid_t file)
     if(H5Dclose(dataset) < 0) goto error;
 
     PASSED();
-#else
-    SKIPPED();
-    puts(not_supported);
-#endif
+
     return 0;
 
 error:
@@ -3481,7 +3365,6 @@ error:
 static herr_t
 test_nbit_compound_2(hid_t file)
 {
-#ifdef H5_HAVE_FILTER_NBIT
     typedef struct {     /* Struct with atomic fields */
         int i;
         char c;
@@ -3511,19 +3394,16 @@ test_nbit_compound_2(hid_t file)
     hid_t               dataset, space, dc;
     const hsize_t       size[2] = {2, 5};
     const hsize_t       chunk_size[2] = {2, 5};
-    const float         float_val[2][5] = {{(float)188384.00, (float)19.103516, (float)-1.0831790e9, (float)-84.242188,
-    (float)5.2045898}, {(float)-49140.000, (float)2350.2500, (float)-3.2110596e-1, (float)6.4998865e-5, (float)-0.0000000}};
+    const float         float_val[2][5] = {{188384.0F, 19.103516F, -1.0831790e9F, -84.242188F, 5.2045898F},
+                                           {-49140.0F, 2350.25F, -3.2110596e-1F, 6.4998865e-5F, -0.0F}};
     complex             orig_data[2][5];
     complex             new_data[2][5];
     unsigned int        i_mask, s_mask, c_mask, b_mask;
     size_t             i, j, m, n, b_failed, d_failed;
 
-#else /* H5_HAVE_FILTER_NBIT */
-    const char          *not_supported= "    Nbit is not enabled.";
-#endif /* H5_HAVE_FILTER_NBIT */
 
     TESTING("    nbit compound complex (setup)");
-#ifdef H5_HAVE_FILTER_NBIT
+
     /* Define datatypes of members of compound datatype */
     i_tid=H5Tcopy(H5T_NATIVE_INT);
     c_tid=H5Tcopy(H5T_NATIVE_CHAR);
@@ -3611,38 +3491,34 @@ test_nbit_compound_2(hid_t file)
     for(i= 0;i< (size_t)size[0]; i++)
       for(j = 0; j < (size_t)size[1]; j++) {
         orig_data[i][j].a.i = (int)(((long long)HDrandom() %
-                               (long long)HDpow(2.0, (double)(precision[0]-1))) << offset[0]);
+                               (long long)HDpow(2.0F, (double)(precision[0]-1))) << offset[0]);
         orig_data[i][j].a.c = (char)(((long long)HDrandom() %
-                               (long long)HDpow(2.0, (double)(precision[1]-1))) << offset[1]);
+                               (long long)HDpow(2.0F, (double)(precision[1]-1))) << offset[1]);
         orig_data[i][j].a.s = (short)(-((long long)HDrandom() %
-                               (long long)HDpow(2.0, (double)(precision[2]-1))) << offset[2]);
+                               (long long)HDpow(2.0F, (double)(precision[2]-1))) << offset[2]);
         orig_data[i][j].a.f = float_val[i][j];
 
         orig_data[i][j].v = (unsigned int)(((long long)HDrandom() %
-                             (long long)HDpow(2.0, (double)precision[3])) << offset[3]);
+                             (long long)HDpow(2.0F, (double)precision[3])) << offset[3]);
 
         for(m = 0; m < (size_t)array_dims[0]; m++)
           for(n = 0; n < (size_t)array_dims[1]; n++)
             orig_data[i][j].b[m][n] = (char)(((long long)HDrandom() %
-                                       (long long)HDpow(2.0, (double)(precision[4]-1))) << offset[4]);
+                                       (long long)HDpow(2.0F, (double)(precision[4]-1))) << offset[4]);
 
         for(m = 0; m < (size_t)array_dims[0]; m++)
           for(n = 0; n < (size_t)array_dims[1]; n++) {
             orig_data[i][j].d[m][n].i = (int)(-((long long)HDrandom() %
-                                         (long long)HDpow(2.0, (double)(precision[0]-1))) << offset[0]);
+                                         (long long)HDpow(2.0F, (double)(precision[0]-1))) << offset[0]);
             orig_data[i][j].d[m][n].c = (char)(((long long)HDrandom() %
-                                         (long long)HDpow(2.0, (double)(precision[1]-1))) << offset[1]);
+                                         (long long)HDpow(2.0F, (double)(precision[1]-1))) << offset[1]);
             orig_data[i][j].d[m][n].s = (short)(((long long)HDrandom() %
-                                         (long long)HDpow(2.0, (double)(precision[2]-1))) << offset[2]);
+                                         (long long)HDpow(2.0F, (double)(precision[2]-1))) << offset[2]);
             orig_data[i][j].d[m][n].f = float_val[i][j];
           }
       }
 
     PASSED();
-#else
-    SKIPPED();
-    puts(not_supported);
-#endif
 
     /*----------------------------------------------------------------------
      * STEP 1: Test nbit by setting up a chunked dataset and writing
@@ -3651,15 +3527,10 @@ test_nbit_compound_2(hid_t file)
      */
     TESTING("    nbit compound complex (write)");
 
-#ifdef H5_HAVE_FILTER_NBIT
     if(H5Dwrite(dataset, mem_cmpd_tid2, H5S_ALL, H5S_ALL, H5P_DEFAULT,
                  orig_data) < 0)
         goto error;
     PASSED();
-#else
-    SKIPPED();
-    puts(not_supported);
-#endif
 
     /*----------------------------------------------------------------------
      * STEP 2: Try to read the data we just wrote.
@@ -3667,7 +3538,6 @@ test_nbit_compound_2(hid_t file)
      */
     TESTING("    nbit compound complex (read)");
 
-#ifdef H5_HAVE_FILTER_NBIT
     /* Read the dataset back */
     if(H5Dread(dataset, mem_cmpd_tid2, H5S_ALL, H5S_ALL, H5P_DEFAULT,
                 new_data) < 0)
@@ -3751,10 +3621,7 @@ test_nbit_compound_2(hid_t file)
     if(H5Dclose(dataset) < 0) goto error;
 
     PASSED();
-#else
-    SKIPPED();
-    puts(not_supported);
-#endif
+
     return 0;
 
 error:
@@ -3779,7 +3646,6 @@ error:
 static herr_t
 test_nbit_compound_3(hid_t file)
 {
-#ifdef H5_HAVE_FILTER_NBIT
     typedef struct {     /* Struct with some no-op type fields */
         int i;              /* integer field, NOT a no-op type */
         char str[30];       /* fixed-length string, no-op type */
@@ -3797,12 +3663,8 @@ test_nbit_compound_3(hid_t file)
     atomic              new_data[5];
     size_t             i, k, j;
 
-#else /* H5_HAVE_FILTER_NBIT */
-    const char          *not_supported= "    Nbit is not enabled.";
-#endif /* H5_HAVE_FILTER_NBIT */
 
     TESTING("    nbit compound with no-op type (setup)");
-#ifdef H5_HAVE_FILTER_NBIT
 
     /* Define datatypes of members of compound datatype */
     i_tid=H5Tcopy(H5T_NATIVE_INT);
@@ -3847,7 +3709,7 @@ test_nbit_compound_3(hid_t file)
     /* Initialize data */
     for(i = 0; i < (size_t)size[0]; i++) {
         HDmemset(&orig_data[i], 0, sizeof(orig_data[i]));
-        orig_data[i].i = HDrandom() % (long)HDpow(2.0, 17.0 - 1.0);
+        orig_data[i].i = HDrandom() % (long)HDpow(2.0F, 17.0F - 1.0F);
         HDstrcpy(orig_data[i].str, "fixed-length C string");
         orig_data[i].vl_str = HDstrdup("variable-length C string");
 
@@ -3862,10 +3724,6 @@ test_nbit_compound_3(hid_t file)
     }
 
     PASSED();
-#else
-    SKIPPED();
-    puts(not_supported);
-#endif
 
     /*----------------------------------------------------------------------
      * STEP 1: Test nbit by setting up a chunked dataset and writing
@@ -3874,15 +3732,10 @@ test_nbit_compound_3(hid_t file)
      */
     TESTING("    nbit compound with no-op type (write)");
 
-#ifdef H5_HAVE_FILTER_NBIT
     if(H5Dwrite(dataset, cmpd_tid, H5S_ALL, H5S_ALL, H5P_DEFAULT,
                  orig_data) < 0)
         goto error;
     PASSED();
-#else
-    SKIPPED();
-    puts(not_supported);
-#endif
 
     /*----------------------------------------------------------------------
      * STEP 2: Try to read the data we just wrote.
@@ -3890,7 +3743,6 @@ test_nbit_compound_3(hid_t file)
      */
     TESTING("    nbit compound with no-op type (read)");
 
-#ifdef H5_HAVE_FILTER_NBIT
     /* Read the dataset back */
     if(H5Dread(dataset, cmpd_tid, H5S_ALL, H5S_ALL, H5P_DEFAULT,
                 new_data) < 0)
@@ -3947,10 +3799,7 @@ test_nbit_compound_3(hid_t file)
     if(H5Dclose(dataset) < 0) goto error;
 
     PASSED();
-#else
-    SKIPPED();
-    puts(not_supported);
-#endif
+
     return 0;
 
 error:
@@ -3975,19 +3824,14 @@ error:
 static herr_t
 test_nbit_int_size(hid_t file)
 {
-#ifdef H5_HAVE_FILTER_NBIT
     hid_t   dataspace, dataset, datatype, mem_datatype, dset_create_props;
     hsize_t dims[2], chunk_size[2];
     hsize_t dset_size = 0;
     int     orig_data[DSET_DIM1][DSET_DIM2];
     int     i, j;
     size_t  precision, offset;
-#else /* H5_HAVE_FILTER_NBIT */
-    const char          *not_supported= "    Nbit is not enabled.";
-#endif /* H5_HAVE_FILTER_NBIT */
 
     TESTING("    nbit integer dataset size");
-#ifdef H5_HAVE_FILTER_NBIT
 
    /* Define dataset datatype (integer), and set precision, offset */
    if((datatype = H5Tcopy(H5T_NATIVE_INT)) < 0) {
@@ -4120,10 +3964,6 @@ test_nbit_int_size(hid_t file)
    H5Pclose (dset_create_props);
 
     PASSED();
-#else
-    SKIPPED();
-    puts(not_supported);
-#endif
 
    return 0;
 error:
@@ -4149,7 +3989,6 @@ error:
 static herr_t
 test_nbit_flt_size(hid_t file)
 {
-#ifdef H5_HAVE_FILTER_NBIT
     hid_t   dataspace, dataset, datatype, dset_create_props;
     hsize_t dims[2], chunk_size[2];
     hsize_t dset_size = 0;
@@ -4157,12 +3996,8 @@ test_nbit_flt_size(hid_t file)
     int     i, j;
     size_t  precision, offset;
     size_t  spos, epos, esize, mpos, msize;
-#else /* H5_HAVE_FILTER_NBIT */
-    const char          *not_supported= "    Nbit is not enabled.";
-#endif /* H5_HAVE_FILTER_NBIT */
 
     TESTING("    nbit floating-number dataset size");
-#ifdef H5_HAVE_FILTER_NBIT
 
   /* Define floating-point type for dataset
    *-------------------------------------------------------------------
@@ -4326,10 +4161,6 @@ test_nbit_flt_size(hid_t file)
    H5Pclose (dset_create_props);
 
     PASSED();
-#else
-    SKIPPED();
-    puts(not_supported);
-#endif
 
    return 0;
 error:
@@ -4354,20 +4185,16 @@ error:
 static herr_t
 test_scaleoffset_int(hid_t file)
 {
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
     hid_t               dataset, datatype, space, dc;
     const hsize_t       size[2] = {2, 5};
     const hsize_t       chunk_size[2] = {2,5};
     int                 orig_data[2][5];
     int                 new_data[2][5];
     size_t             i, j;
-#else /* H5_HAVE_FILTER_SCALEOFFSET */
-    const char          *not_supported= "    Scaleoffset is not enabled.";
-#endif /* H5_HAVE_FILTER_SCALEOFFSET */
 
     puts("Testing scaleoffset filter");
     TESTING("    scaleoffset int without fill value (setup)");
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
+
     datatype = H5Tcopy(H5T_NATIVE_INT);
 
     /* Set order of dataset datatype */
@@ -4401,10 +4228,6 @@ test_scaleoffset_int(hid_t file)
       }
 
     PASSED();
-#else
-    SKIPPED();
-    puts(not_supported);
-#endif
 
     /*----------------------------------------------------------------------
      * STEP 1: Test scaleoffset by setting up a chunked dataset and writing
@@ -4413,14 +4236,9 @@ test_scaleoffset_int(hid_t file)
      */
     TESTING("    scaleoffset int without fill value (write)");
 
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
     if(H5Dwrite(dataset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT,
                  orig_data) < 0) goto error;
     PASSED();
-#else
-    SKIPPED();
-    puts(not_supported);
-#endif
 
     /*----------------------------------------------------------------------
      * STEP 2: Try to read the data we just wrote.
@@ -4428,7 +4246,6 @@ test_scaleoffset_int(hid_t file)
      */
     TESTING("    scaleoffset int without fill value (read)");
 
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
     /* Read the dataset back */
     if(H5Dread(dataset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT,
                 new_data) < 0) goto error;
@@ -4455,10 +4272,7 @@ test_scaleoffset_int(hid_t file)
     if(H5Dclose(dataset) < 0) goto error;
 
     PASSED();
-#else
-    SKIPPED();
-    puts(not_supported);
-#endif
+
     return 0;
 error:
     return -1;
@@ -4483,7 +4297,6 @@ error:
 static herr_t
 test_scaleoffset_int_2(hid_t file)
 {
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
     hid_t               dataset, datatype, space, mspace, dc;
     const hsize_t       size[2] = {2, 5};
     const hsize_t       chunk_size[2] = {2,5};
@@ -4495,12 +4308,9 @@ test_scaleoffset_int_2(hid_t file)
     hsize_t             block[2];  /* Block sizes */
     int                 fillval;
     size_t              j;
-#else /* H5_HAVE_FILTER_SCALEOFFSET */
-    const char          *not_supported= "    Scaleoffset is not enabled.";
-#endif /* H5_HAVE_FILTER_SCALEOFFSET */
 
     TESTING("    scaleoffset int with fill value (setup)");
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
+
     datatype = H5Tcopy(H5T_NATIVE_INT);
 
     /* Set order of dataset datatype */
@@ -4547,10 +4357,6 @@ test_scaleoffset_int_2(hid_t file)
     }
 
     PASSED();
-#else
-    SKIPPED();
-    puts(not_supported);
-#endif
 
     /*----------------------------------------------------------------------
      * STEP 1: Test scaleoffset by setting up a chunked dataset and writing
@@ -4559,15 +4365,10 @@ test_scaleoffset_int_2(hid_t file)
      */
     TESTING("    scaleoffset int with fill value (write)");
 
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
     /* only data in the hyperslab will be written, other value should be fill value */
     if(H5Dwrite(dataset, H5T_NATIVE_INT, mspace, mspace, H5P_DEFAULT,
                  orig_data) < 0) goto error;
     PASSED();
-#else
-    SKIPPED();
-    puts(not_supported);
-#endif
 
     /*----------------------------------------------------------------------
      * STEP 2: Try to read the data we just wrote.
@@ -4575,7 +4376,6 @@ test_scaleoffset_int_2(hid_t file)
      */
     TESTING("    scaleoffset int with fill value (read)");
 
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
     /* Read the dataset back */
     if(H5Dread(dataset, H5T_NATIVE_INT, mspace, mspace, H5P_DEFAULT,
                 new_data) < 0) goto error;
@@ -4600,10 +4400,7 @@ test_scaleoffset_int_2(hid_t file)
     if(H5Dclose(dataset) < 0) goto error;
 
     PASSED();
-#else
-    SKIPPED();
-    puts(not_supported);
-#endif
+
     return 0;
 error:
     return -1;
@@ -4628,19 +4425,15 @@ error:
 static herr_t
 test_scaleoffset_float(hid_t file)
 {
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
     hid_t               dataset, datatype, space, dc;
     const hsize_t       size[2] = {2, 5};
     const hsize_t       chunk_size[2] = {2,5};
     float               orig_data[2][5];
     float               new_data[2][5];
     size_t              i, j;
-#else /* H5_HAVE_FILTER_SCALEOFFSET */
-    const char          *not_supported= "    Scaleoffset is not enabled.";
-#endif /* H5_HAVE_FILTER_SCALEOFFSET */
 
     TESTING("    scaleoffset float without fill value, D-scaling (setup)");
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
+
     datatype = H5Tcopy(H5T_NATIVE_FLOAT);
 
     /* Set order of dataset datatype */
@@ -4668,7 +4461,7 @@ test_scaleoffset_float(hid_t file)
     /* Initialize data */
     for(i= 0;i< (size_t)size[0]; i++)
       for(j = 0; j < (size_t)size[1]; j++) {
-        orig_data[i][j] = (float)((HDrandom() % 100000) / (float)1000.0);
+        orig_data[i][j] = (float)((HDrandom() % 100000) / 1000.0F);
 
         /* even-numbered values are negtive */
         if((i*size[1]+j+1)%2 == 0)
@@ -4676,10 +4469,6 @@ test_scaleoffset_float(hid_t file)
       }
 
     PASSED();
-#else
-    SKIPPED();
-    puts(not_supported);
-#endif
 
     /*----------------------------------------------------------------------
      * STEP 1: Test scaleoffset by setting up a chunked dataset and writing
@@ -4688,14 +4477,9 @@ test_scaleoffset_float(hid_t file)
      */
     TESTING("    scaleoffset float without fill value, D-scaling (write)");
 
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
     if(H5Dwrite(dataset, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, H5P_DEFAULT,
                  orig_data) < 0) goto error;
     PASSED();
-#else
-    SKIPPED();
-    puts(not_supported);
-#endif
 
     /*----------------------------------------------------------------------
      * STEP 2: Try to read the data we just wrote.
@@ -4703,7 +4487,6 @@ test_scaleoffset_float(hid_t file)
      */
     TESTING("    scaleoffset float without fill value, D-scaling (read)");
 
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
     /* Read the dataset back */
     if(H5Dread(dataset, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, H5P_DEFAULT,
                 new_data) < 0) goto error;
@@ -4711,7 +4494,7 @@ test_scaleoffset_float(hid_t file)
     /* Check that the values read are the same as the values written */
     for(i=0; i<(size_t)size[0]; i++) {
         for(j=0; j<(size_t)size[1]; j++) {
-            if(HDfabs(new_data[i][j]-orig_data[i][j]) > HDpow(10.0, -3.0)) {
+            if(HDfabs(new_data[i][j]-orig_data[i][j]) > HDpow(10.0F, -3.0F)) {
                 H5_FAILED();
                 printf("    Read different values than written.\n");
                 printf("    At index %lu,%lu\n", (unsigned long)i, (unsigned long)j);
@@ -4730,10 +4513,7 @@ test_scaleoffset_float(hid_t file)
     if(H5Dclose(dataset) < 0) goto error;
 
     PASSED();
-#else
-    SKIPPED();
-    puts(not_supported);
-#endif
+
     return 0;
 error:
     return -1;
@@ -4758,7 +4538,6 @@ error:
 static herr_t
 test_scaleoffset_float_2(hid_t file)
 {
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
     hid_t               dataset, datatype, space, mspace, dc;
     const hsize_t       size[2] = {2, 5};
     const hsize_t       chunk_size[2] = {2,5};
@@ -4770,12 +4549,9 @@ test_scaleoffset_float_2(hid_t file)
     hsize_t             count[2];  /* Block count */
     hsize_t             block[2];  /* Block sizes */
     size_t              j;
-#else /* H5_HAVE_FILTER_SCALEOFFSET */
-    const char          *not_supported= "    Scaleoffset is not enabled.";
-#endif /* H5_HAVE_FILTER_SCALEOFFSET */
 
     TESTING("    scaleoffset float with fill value, D-scaling (setup)");
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
+
     datatype = H5Tcopy(H5T_NATIVE_FLOAT);
 
     /* Set order of dataset datatype */
@@ -4788,7 +4564,7 @@ test_scaleoffset_float_2(hid_t file)
     if((dc = H5Pcreate(H5P_DATASET_CREATE)) < 0) goto error;
 
     /* Set fill value */
-    fillval = 10000.0;
+    fillval = 10000.0F;
     if(H5Pset_fill_value(dc, H5T_NATIVE_FLOAT, &fillval) < 0) goto error;
 
     /* Set up to use scaleoffset filter, decimal scale factor is 3,
@@ -4816,7 +4592,7 @@ test_scaleoffset_float_2(hid_t file)
 
     /* Initialize data of hyperslab */
     for(j = 0; j < (size_t)size[1]; j++) {
-        orig_data[0][j] = (float)((HDrandom() % 100000) / (float)1000.0);
+        orig_data[0][j] = (float)((HDrandom() % 100000) / 1000.0F);
 
         /* even-numbered values are negtive */
         if((j+1)%2 == 0)
@@ -4824,10 +4600,6 @@ test_scaleoffset_float_2(hid_t file)
     }
 
     PASSED();
-#else
-    SKIPPED();
-    puts(not_supported);
-#endif
 
     /*----------------------------------------------------------------------
      * STEP 1: Test scaleoffset by setting up a chunked dataset and writing
@@ -4836,15 +4608,10 @@ test_scaleoffset_float_2(hid_t file)
      */
     TESTING("    scaleoffset float with fill value, D-scaling (write)");
 
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
     /* only data in the hyperslab will be written, other value should be fill value */
     if(H5Dwrite(dataset, H5T_NATIVE_FLOAT, mspace, mspace, H5P_DEFAULT,
                  orig_data) < 0) goto error;
     PASSED();
-#else
-    SKIPPED();
-    puts(not_supported);
-#endif
 
     /*----------------------------------------------------------------------
      * STEP 2: Try to read the data we just wrote.
@@ -4852,14 +4619,13 @@ test_scaleoffset_float_2(hid_t file)
      */
     TESTING("    scaleoffset float with fill value, D-scaling (read)");
 
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
     /* Read the dataset back */
     if(H5Dread(dataset, H5T_NATIVE_FLOAT, mspace, mspace, H5P_DEFAULT,
                 new_data) < 0) goto error;
 
     /* Check that the values read are the same as the values written */
     for(j=0; j<(size_t)size[1]; j++) {
-        if(HDfabs(new_data[0][j]-orig_data[0][j]) > HDpow(10.0, -3.0)) {
+        if(HDfabs(new_data[0][j]-orig_data[0][j]) > HDpow(10.0F, -3.0F)) {
             H5_FAILED();
             printf("    Read different values than written.\n");
             printf("    At index %lu,%lu\n", (unsigned long)0, (unsigned long)j);
@@ -4876,10 +4642,7 @@ test_scaleoffset_float_2(hid_t file)
     if(H5Dclose(dataset) < 0) goto error;
 
     PASSED();
-#else
-    SKIPPED();
-    puts(not_supported);
-#endif
+
     return 0;
 error:
     return -1;
@@ -4904,19 +4667,15 @@ error:
 static herr_t
 test_scaleoffset_double(hid_t file)
 {
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
     hid_t               dataset, datatype, space, dc;
     const hsize_t       size[2] = {2, 5};
     const hsize_t       chunk_size[2] = {2,5};
     double              orig_data[2][5];
     double              new_data[2][5];
     size_t              i, j;
-#else /* H5_HAVE_FILTER_SCALEOFFSET */
-    const char          *not_supported= "    Scaleoffset is not enabled.";
-#endif /* H5_HAVE_FILTER_SCALEOFFSET */
 
     TESTING("    scaleoffset double without fill value, D-scaling (setup)");
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
+
     datatype = H5Tcopy(H5T_NATIVE_DOUBLE);
 
     /* Set order of dataset datatype */
@@ -4944,7 +4703,7 @@ test_scaleoffset_double(hid_t file)
     /* Initialize data */
     for(i= 0;i< (size_t)size[0]; i++)
       for(j = 0; j < (size_t)size[1]; j++) {
-        orig_data[i][j] = (HDrandom() % 10000000) / 10000000.0;
+        orig_data[i][j] = (HDrandom() % 10000000) / 10000000.0F;
 
         /* even-numbered values are negtive */
         if((i*size[1]+j+1)%2 == 0)
@@ -4952,10 +4711,6 @@ test_scaleoffset_double(hid_t file)
       }
 
     PASSED();
-#else
-    SKIPPED();
-    puts(not_supported);
-#endif
 
     /*----------------------------------------------------------------------
      * STEP 1: Test scaleoffset by setting up a chunked dataset and writing
@@ -4964,14 +4719,9 @@ test_scaleoffset_double(hid_t file)
      */
     TESTING("    scaleoffset double without fill value, D-scaling (write)");
 
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
     if(H5Dwrite(dataset, H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT,
                  orig_data) < 0) goto error;
     PASSED();
-#else
-    SKIPPED();
-    puts(not_supported);
-#endif
 
     /*----------------------------------------------------------------------
      * STEP 2: Try to read the data we just wrote.
@@ -4979,7 +4729,6 @@ test_scaleoffset_double(hid_t file)
      */
     TESTING("    scaleoffset double without fill value, D-scaling (read)");
 
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
     /* Read the dataset back */
     if(H5Dread(dataset, H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT,
                 new_data) < 0) goto error;
@@ -4987,7 +4736,7 @@ test_scaleoffset_double(hid_t file)
     /* Check that the values read are the same as the values written */
     for(i=0; i<(size_t)size[0]; i++) {
         for(j=0; j<(size_t)size[1]; j++) {
-            if(HDfabs(new_data[i][j]-orig_data[i][j]) > HDpow(10.0, -7.0)) {
+            if(HDfabs(new_data[i][j]-orig_data[i][j]) > HDpow(10.0F, -7.0F)) {
                 H5_FAILED();
                 printf("    Read different values than written.\n");
                 printf("    At index %lu,%lu\n", (unsigned long)i, (unsigned long)j);
@@ -5006,10 +4755,7 @@ test_scaleoffset_double(hid_t file)
     if(H5Dclose(dataset) < 0) goto error;
 
     PASSED();
-#else
-    SKIPPED();
-    puts(not_supported);
-#endif
+
     return 0;
 error:
     return -1;
@@ -5034,7 +4780,6 @@ error:
 static herr_t
 test_scaleoffset_double_2(hid_t file)
 {
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
     hid_t               dataset, datatype, space, mspace, dc;
     const hsize_t       size[2] = {2, 5};
     const hsize_t       chunk_size[2] = {2,5};
@@ -5046,12 +4791,9 @@ test_scaleoffset_double_2(hid_t file)
     hsize_t             count[2];  /* Block count */
     hsize_t             block[2];  /* Block sizes */
     size_t              j;
-#else /* H5_HAVE_FILTER_SCALEOFFSET */
-    const char          *not_supported= "    Scaleoffset is not enabled.";
-#endif /* H5_HAVE_FILTER_SCALEOFFSET */
 
     TESTING("    scaleoffset double with fill value, D-scaling (setup)");
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
+
     datatype = H5Tcopy(H5T_NATIVE_DOUBLE);
 
     /* Set order of dataset datatype */
@@ -5064,7 +4806,7 @@ test_scaleoffset_double_2(hid_t file)
     if((dc = H5Pcreate(H5P_DATASET_CREATE)) < 0) goto error;
 
     /* Set fill value */
-    fillval = 10000.0;
+    fillval = 10000.0F;
     if(H5Pset_fill_value(dc, H5T_NATIVE_DOUBLE, &fillval) < 0) goto error;
 
     /* Set up to use scaleoffset filter, decimal scale factor is 7,
@@ -5092,7 +4834,7 @@ test_scaleoffset_double_2(hid_t file)
 
     /* Initialize data of hyperslab */
     for(j = 0; j < (size_t)size[1]; j++) {
-        orig_data[0][j] = (HDrandom() % 10000000) / 10000000.0;
+        orig_data[0][j] = (HDrandom() % 10000000) / 10000000.0F;
 
         /* even-numbered values are negtive */
         if((j+1)%2 == 0)
@@ -5100,10 +4842,6 @@ test_scaleoffset_double_2(hid_t file)
     }
 
     PASSED();
-#else
-    SKIPPED();
-    puts(not_supported);
-#endif
 
     /*----------------------------------------------------------------------
      * STEP 1: Test scaleoffset by setting up a chunked dataset and writing
@@ -5112,15 +4850,10 @@ test_scaleoffset_double_2(hid_t file)
      */
     TESTING("    scaleoffset double with fill value, D-scaling (write)");
 
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
     /* only data in the hyperslab will be written, other value should be fill value */
     if(H5Dwrite(dataset, H5T_NATIVE_DOUBLE, mspace, mspace, H5P_DEFAULT,
                  orig_data) < 0) goto error;
     PASSED();
-#else
-    SKIPPED();
-    puts(not_supported);
-#endif
 
     /*----------------------------------------------------------------------
      * STEP 2: Try to read the data we just wrote.
@@ -5128,14 +4861,13 @@ test_scaleoffset_double_2(hid_t file)
      */
     TESTING("    scaleoffset double with fill value, D-scaling (read)");
 
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
     /* Read the dataset back */
     if(H5Dread(dataset, H5T_NATIVE_DOUBLE, mspace, mspace, H5P_DEFAULT,
                 new_data) < 0) goto error;
 
     /* Check that the values read are the same as the values written */
     for(j=0; j<(size_t)size[1]; j++) {
-        if(HDfabs(new_data[0][j]-orig_data[0][j]) > HDpow(10.0, -7.0)) {
+        if(HDfabs(new_data[0][j]-orig_data[0][j]) > HDpow(10.0F, -7.0F)) {
             H5_FAILED();
             printf("    Read different values than written.\n");
             printf("    At index %lu,%lu\n", (unsigned long)0, (unsigned long)j);
@@ -5153,10 +4885,7 @@ test_scaleoffset_double_2(hid_t file)
     if(H5Dclose(dataset) < 0) goto error;
 
     PASSED();
-#else
-    SKIPPED();
-    puts(not_supported);
-#endif
+
     return 0;
 error:
     return -1;
@@ -5905,11 +5634,11 @@ test_set_local(hid_t fapl)
     h5_fixname(FILENAME[5], fapl, filename, sizeof filename);
 
     /* Initialize the integer & floating-point dataset */
-    n=1.0;
+    n=1.0F;
     for(i = 0; i < DSET_DIM1; i++)
 	for(j = 0; j < DSET_DIM2; j++) {
 	    points[i][j] = (int)n++;
-	    points_dbl[i][j] = (double)1.5*n++;
+	    points_dbl[i][j] = (double)1.5F*n++;
 	}
 
     /* Open file */
@@ -6103,7 +5832,7 @@ test_set_local(hid_t fapl)
 	for(j=0; j<dims[1]; j++) {
 	    /* If the difference between two values is greater than 0.001%, they're
              * considered not equal. */
-            if(!DBL_REL_EQUAL(points_dbl[i][j],check_dbl[i][j],0.00001)) {
+            if(!DBL_REL_EQUAL(points_dbl[i][j],check_dbl[i][j],0.00001F)) {
 		H5_FAILED();
 		printf("    Line %d: Read different values than written.\n",__LINE__);
 		printf("    At index %lu,%lu\n", (unsigned long)(i), (unsigned long)(j));
@@ -6384,7 +6113,7 @@ test_filter_delete(hid_t file)
 
     TESTING("filter deletion");
 
-#if defined H5_HAVE_FILTER_DEFLATE && defined H5_HAVE_FILTER_SHUFFLE && defined H5_HAVE_FILTER_FLETCHER32
+#ifdef H5_HAVE_FILTER_DEFLATE
     /* create the data space */
     if((sid = H5Screate_simple(2, dims, NULL)) < 0) goto error;
 
@@ -6589,7 +6318,6 @@ test_filters_endianess(void)
 
     TESTING("filters with big-endian/little-endian data");
 
-#if defined H5_HAVE_FILTER_FLETCHER32
    /*-------------------------------------------------------------------------
     * step 1: open a file written on a little-endian machine
     *-------------------------------------------------------------------------
@@ -6622,9 +6350,7 @@ test_filters_endianess(void)
     if(H5Fclose(fid) < 0) FAIL_STACK_ERROR
 
     PASSED();
-#else
-    SKIPPED();
-#endif
+
     return 0;
 
 error:
@@ -7429,7 +7155,7 @@ test_chunk_cache(hid_t fapl)
     /* Set new rdcc settings on fapl */
     nslots_2 = nslots_1 * 2;
     nbytes_2 = nbytes_1 * 2;
-    w0_2 = w0_1 / 2.;
+    w0_2 = w0_1 / 2.0F;
     if (H5Pset_cache(fapl_local, 0, nslots_2, nbytes_2, w0_2) < 0) FAIL_STACK_ERROR
 
     h5_fixname(FILENAME[8], fapl, filename, sizeof filename);
@@ -7624,7 +7350,7 @@ test_big_chunks_bypass_cache(hid_t fapl)
     /* Define cache size to be smaller than chunk size */
     rdcc_nelmts = BYPASS_CHUNK_DIM/5;
     rdcc_nbytes = sizeof(int)*BYPASS_CHUNK_DIM/5;
-    if(H5Pset_cache(fapl_local, 0, rdcc_nelmts, rdcc_nbytes, (double)0.0) < 0) FAIL_STACK_ERROR
+    if(H5Pset_cache(fapl_local, 0, rdcc_nelmts, rdcc_nbytes, 0.0F) < 0) FAIL_STACK_ERROR
 
     /* Create file */
     if((fid = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, fapl_local)) < 0) FAIL_STACK_ERROR
diff --git a/test/dt_arith.c b/test/dt_arith.c
index 5ae401b..8823e24 100644
--- a/test/dt_arith.c
+++ b/test/dt_arith.c
@@ -28,7 +28,7 @@
 #define NTESTELEM	10000
 
 /* Epsilon for floating-point comparisons */
-#define FP_EPSILON 0.000001
+#define FP_EPSILON 0.000001F
 
 /*
  * Offset from alinged memory returned by malloc().  This can be used to test
@@ -3305,7 +3305,7 @@ test_conv_flt_1 (const char *name, int run_test, hid_t src, hid_t dst)
             if(check_expo[0]<(-(int)dst_ebias) || check_expo[1]<(-(int)dst_ebias)) {
                 int expo_diff=check_expo[0]-check_expo[1];
                 int valid_bits=(int)((dst_ebias+dst_msize)+MIN(check_expo[0],check_expo[1]))-1;
-                double epsilon=1.0;
+                double epsilon=1.0F;
 
                 /* Re-scale the mantissas based on any exponent difference */
                 if(expo_diff!=0)
@@ -3883,12 +3883,10 @@ test_conv_int_fp(const char *name, int run_test, hid_t src, hid_t dst)
                 HDmemcpy(aligned, saved+j*sizeof(long long), sizeof(long long));
                 hw_float = (float)(*((long long*)aligned));
                 break;
-#ifdef H5_ULLONG_TO_FP_CAST_WORKS
             case INT_ULLONG:
                 HDmemcpy(aligned, saved+j*sizeof(unsigned long long), sizeof(unsigned long long));
                 hw_float = (float)(*((unsigned long long*)aligned));
                 break;
-#endif /* H5_ULLONG_TO_FP_CAST_WORKS */
             case FLT_FLOAT:
             case FLT_DOUBLE:
             case FLT_LDOUBLE:
@@ -3936,12 +3934,10 @@ test_conv_int_fp(const char *name, int run_test, hid_t src, hid_t dst)
                 HDmemcpy(aligned, saved+j*sizeof(long long), sizeof(long long));
                 hw_double = (double)(*((long long*)aligned));
                 break;
-#ifdef H5_ULLONG_TO_FP_CAST_WORKS
             case INT_ULLONG:
                 HDmemcpy(aligned, saved+j*sizeof(unsigned long long), sizeof(unsigned long long));
                 hw_double = (double)(*((unsigned long long*)aligned));
                 break;
-#endif /* H5_ULLONG_TO_FP_CAST_WORKS */
             case FLT_FLOAT:
             case FLT_DOUBLE:
             case FLT_LDOUBLE:
@@ -3990,12 +3986,10 @@ test_conv_int_fp(const char *name, int run_test, hid_t src, hid_t dst)
                 HDmemcpy(aligned, saved+j*sizeof(long long), sizeof(long long));
                 hw_ldouble = (long double)(*((long long*)aligned));
                 break;
-#ifdef H5_ULLONG_TO_FP_CAST_WORKS
             case INT_ULLONG:
                 HDmemcpy(aligned, saved+j*sizeof(unsigned long long), sizeof(unsigned long long));
                 hw_ldouble = (long double)(*((unsigned long long*)aligned));
                 break;
-#endif /* H5_ULLONG_TO_FP_CAST_WORKS */
             case FLT_FLOAT:
             case FLT_DOUBLE:
             case FLT_LDOUBLE:
@@ -4501,24 +4495,6 @@ test_conv_int_fp(const char *name, int run_test, hid_t src, hid_t dst)
         }
 #endif /*end H5_FP_TO_ULLONG_BOTTOM_BIT_WORKS*/
 
-/* For GNU compilers on FreeBSD(sleipnir), during conversion from 'unsigned long long'
-* to 'long double', the last 2 bytes of mantissa are lost.  But this loss seems
-* acceptable.  We allow it to go through instead of fail it.  Sometimes, there's roundup
-* to the 3rd last byte of mantissa.  So we only try to compare all but the last 3 bytes.
-*/
-#ifndef H5_ULLONG_TO_LDOUBLE_PRECISION
-#if H5_SIZEOF_LONG_DOUBLE !=0
-        if(src_type==INT_ULLONG && dst_type==FLT_LDOUBLE) {
-            long double tmp_s, tmp_h;
-            HDmemcpy(&tmp_s,&buf[j*dst_size],sizeof(long double));
-            HDmemcpy(&tmp_h,&hw[0],sizeof(long double));
-            /*Don't compare the last 3 bytes of mantissa*/
-            if(!HDmemcmp(&tmp_s+4, &tmp_h+4, sizeof(long double)-4))
-                continue; /*no error*/
-        }
-#endif
-#endif /*end H5_ULLONG_TO_LDOUBLE_PRECISION*/
-
 
 #ifdef H5_VMS
         /* OpenVMS converts the value of zero in char or short to negative zero in 
@@ -5141,9 +5117,7 @@ run_int_fp_conv(const char *name)
     nerrors += test_conv_int_fp(name, TEST_NORMAL, H5T_NATIVE_LONG, H5T_NATIVE_FLOAT);
     nerrors += test_conv_int_fp(name, TEST_NORMAL, H5T_NATIVE_LONG, H5T_NATIVE_DOUBLE);
 
-#if H5_ULONG_TO_FLOAT_ACCURATE
     nerrors += test_conv_int_fp(name, TEST_NORMAL, H5T_NATIVE_ULONG, H5T_NATIVE_FLOAT);
-#endif
     nerrors += test_conv_int_fp(name, TEST_NORMAL, H5T_NATIVE_ULONG, H5T_NATIVE_DOUBLE);
 #endif
 
@@ -5151,29 +5125,10 @@ run_int_fp_conv(const char *name)
     nerrors += test_conv_int_fp(name, TEST_NORMAL, H5T_NATIVE_LLONG, H5T_NATIVE_FLOAT);
     nerrors += test_conv_int_fp(name, TEST_NORMAL, H5T_NATIVE_LLONG, H5T_NATIVE_DOUBLE);
 
-#ifdef H5_ULLONG_TO_FP_CAST_WORKS
     nerrors += test_conv_int_fp(name, TEST_NORMAL, H5T_NATIVE_ULLONG, H5T_NATIVE_FLOAT);
     nerrors += test_conv_int_fp(name, TEST_NORMAL, H5T_NATIVE_ULLONG, H5T_NATIVE_DOUBLE);
-#else /* H5_ULLONG_TO_FP_CAST_WORKS */
-    {
-        char		str[256];		/*hello string		*/
-
-        HDsnprintf(str, sizeof(str), "Testing %s %s -> %s conversions",
-                name, "unsigned long long", "float");
-        printf("%-70s", str);
-        SKIPPED();
-        HDputs("    Test skipped due to compiler not handling conversion.");
-
-        HDsnprintf(str, sizeof(str), "Testing %s %s -> %s conversions",
-                name, "unsigned long long", "double");
-        printf("%-70s", str);
-        SKIPPED();
-        HDputs("    Test skipped due to compiler not handling conversion.");
-    }
-#endif /* H5_ULLONG_TO_FP_CAST_WORKS */
 #endif
 
-#if H5_INTEGER_TO_LDOUBLE_ACCURATE
 #if H5_SIZEOF_LONG_DOUBLE!=H5_SIZEOF_DOUBLE
     nerrors += test_conv_int_fp(name, TEST_NORMAL, H5T_NATIVE_SCHAR, H5T_NATIVE_LDOUBLE);
     nerrors += test_conv_int_fp(name, TEST_NORMAL, H5T_NATIVE_UCHAR, H5T_NATIVE_LDOUBLE);
@@ -5215,9 +5170,9 @@ run_int_fp_conv(const char *name)
         HDputs("    Test skipped due to compiler error in handling conversion.");
     }
 #endif /* H5_LLONG_TO_LDOUBLE_CORRECT */
-#if H5_ULLONG_TO_FP_CAST_WORKS && H5_ULLONG_TO_LDOUBLE_PRECISION && H5_LLONG_TO_LDOUBLE_CORRECT
+#if H5_LLONG_TO_LDOUBLE_CORRECT
     nerrors += test_conv_int_fp(name, TEST_NORMAL, H5T_NATIVE_ULLONG, H5T_NATIVE_LDOUBLE);
-#else /* H5_ULLONG_TO_FP_CAST_WORKS && H5_ULLONG_TO_LDOUBLE_PRECISION && H5_LLONG_TO_LDOUBLE_CORRECT */
+#else /* H5_LLONG_TO_LDOUBLE_CORRECT */
     {
         char		str[256];		/*hello string		*/
 
@@ -5227,26 +5182,10 @@ run_int_fp_conv(const char *name)
         SKIPPED();
         HDputs("    Test skipped due to compiler not handling conversion.");
     }
-#endif /* H5_ULLONG_TO_FP_CAST_WORKS && H5_ULLONG_TO_LDOUBLE_PRECISION && H5_LLONG_TO_LDOUBLE_CORRECT */
-#endif
+#endif /* H5_LLONG_TO_LDOUBLE_CORRECT */
 #endif
-#else /*H5_INTEGER_TO_LDOUBLE_ACCURATE*/
-    {
-        char		str[256];		/*string		*/
-
-        HDsnprintf(str, sizeof(str), "Testing %s %s -> %s conversions",
-                name, "all integers", "long double");
-        printf("%-70s", str);
-        SKIPPED();
-#if H5_SIZEOF_LONG_DOUBLE !=0
-        HDputs("    Test skipped due to hardware conversion error.");
-#else
-        HDputs("    Test skipped due to disabled long double.");
 #endif
 
-    }
-#endif /*H5_INTEGER_TO_LDOUBLE_ACCURATE*/
-
     return nerrors;
 }
 
@@ -5316,52 +5255,17 @@ run_fp_int_conv(const char *name)
             nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_FLOAT, H5T_NATIVE_LLONG);
             nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_DOUBLE, H5T_NATIVE_LLONG);
         }
-#ifdef H5_FP_TO_ULLONG_RIGHT_MAXIMUM
         nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_FLOAT, H5T_NATIVE_ULLONG);
         nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_DOUBLE, H5T_NATIVE_ULLONG);
-#else /*H5_FP_TO_ULLONG_RIGHT_MAXIMUM*/
-        {
-            char		str[256];		/*hello string		*/
-
-            HDsnprintf(str, sizeof(str), "Testing %s %s -> %s conversions",
-                    name, "float", "unsigned long long");
-            printf("%-70s", str);
-            SKIPPED();
-            HDputs("    Test skipped due to hardware conversion error.");
-
-            HDsnprintf(str, sizeof(str), "Testing %s %s -> %s conversions",
-                    name, "double", "unsigned long long");
-            printf("%-70s", str);
-            SKIPPED();
-            HDputs("    Test skipped due to hardware conversion error.");
-        }
-#endif /*H5_FP_TO_ULLONG_RIGHT_MAXIMUM*/
 #endif
 
-#if H5_LDOUBLE_TO_INTEGER_WORKS && H5_LDOUBLE_TO_INTEGER_ACCURATE
 #if H5_SIZEOF_LONG_DOUBLE!=H5_SIZEOF_DOUBLE
         nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_LDOUBLE, H5T_NATIVE_SCHAR);
         nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_LDOUBLE, H5T_NATIVE_UCHAR);
         nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_LDOUBLE, H5T_NATIVE_SHORT);
         nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_LDOUBLE, H5T_NATIVE_USHORT);
         nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_LDOUBLE, H5T_NATIVE_INT);
-#if H5_LDOUBLE_TO_UINT_ACCURATE
         nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_LDOUBLE, H5T_NATIVE_UINT);
-#else /*H5_LDOUBLE_TO_UINT_ACCURATE*/
-        {
-            char		str[256];		/*string		*/
-
-            HDsnprintf(str, sizeof(str), "Testing %s %s -> %s conversions",
-                    name, "long double", "unsigned int");
-            printf("%-70s", str);
-            SKIPPED();
-#if H5_SIZEOF_LONG_DOUBLE!=0
-            HDputs("    Test skipped due to hardware conversion error.");
-#else
-            HDputs("    Test skipped due to disabled long double.");
-#endif
-        }
-#endif /*H5_LDOUBLE_TO_UINT_ACCURATE*/
 #if H5_SIZEOF_LONG!=H5_SIZEOF_INT && H5_SIZEOF_LONG_DOUBLE!=0
 #ifndef H5_LDOUBLE_TO_LONG_SPECIAL
         nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_LDOUBLE, H5T_NATIVE_LONG);
@@ -5401,9 +5305,9 @@ run_fp_int_conv(const char *name)
 #endif
         }
 #endif /*H5_LDOUBLE_TO_LLONG_ACCURATE*/
-#if defined(H5_FP_TO_ULLONG_RIGHT_MAXIMUM) && defined(H5_LDOUBLE_TO_LLONG_ACCURATE)
+#if defined(H5_LDOUBLE_TO_LLONG_ACCURATE)
         nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_LDOUBLE, H5T_NATIVE_ULLONG);
-#else /*H5_FP_TO_ULLONG_RIGHT_MAXIMUM && H5_LDOUBLE_TO_LLONG_ACCURATE*/
+#else /*H5_LDOUBLE_TO_LLONG_ACCURATE*/
         {
             char		str[256];		/*string		*/
 
@@ -5417,24 +5321,9 @@ run_fp_int_conv(const char *name)
             HDputs("    Test skipped due to disabled long double.");
 #endif
         }
-#endif /*H5_FP_TO_ULLONG_RIGHT_MAXIMUM && H5_LDOUBLE_TO_LLONG_ACCURATE*/
-#endif
+#endif /*H5_LDOUBLE_TO_LLONG_ACCURATE*/
 #endif
-#else /*H5_LDOUBLE_TO_INTEGER_WORKS && H5_LDOUBLE_TO_INTEGER_ACCURATE*/
-        {
-            char		str[256];		/*hello string		*/
-
-            HDsnprintf(str, sizeof(str), "Testing %s %s -> %s conversions",
-                    name, "long double", "all integers");
-            printf("%-70s", str);
-            SKIPPED();
-#if H5_SIZEOF_LONG_DOUBLE!=0
-            HDputs("    Test skipped due to hardware conversion error.");
-#else
-            HDputs("    Test skipped due to disabled long double.");
 #endif
-        }
-#endif /*H5_LDOUBLE_TO_INTEGER_WORKS && H5_LDOUBLE_TO_INTEGER_ACCURATE*/
 #ifndef H5_VMS
     } /* end for */
 #endif /* H5_VMS */
diff --git a/test/dtransform.c b/test/dtransform.c
index ea1a619..4adbaf5 100644
--- a/test/dtransform.c
+++ b/test/dtransform.c
@@ -17,7 +17,7 @@
 
 #define ROWS    12
 #define COLS    18
-#define FLOAT_TOL 0.0001
+#define FLOAT_TOL 0.0001F
 
 static int init_test(hid_t file_id);
 static int test_copy(const hid_t dxpl_id_c_to_f_copy, const hid_t dxpl_id_polynomial_copy);
@@ -297,25 +297,8 @@ int main(void)
     TEST_TYPE_CONTIG(dxpl_id_utrans_inv, unsigned int, H5T_NATIVE_UINT, "uint", transformData, 0);
     TEST_TYPE_CONTIG(dxpl_id_c_to_f, long, H5T_NATIVE_LONG, "long", windchillFfloat, 1);
     TEST_TYPE_CONTIG(dxpl_id_utrans_inv, unsigned long, H5T_NATIVE_ULONG, "ulong", transformData, 0);
-
-#ifndef H5_VMS
-#ifdef H5_LLONG_TO_FP_CAST_WORKS
     TEST_TYPE_CONTIG(dxpl_id_c_to_f, long long, H5T_NATIVE_LLONG, "llong", windchillFfloat, 1);
-#else
-    TESTING("contiguous, with type conversion (float->llong)")
-    SKIPPED()
-#endif
-#else /*H5_VMS*/
-    TESTING("contiguous, with type conversion (float->llong): some problem in library's conversion")
-    SKIPPED()
-#endif /*H5_VMS*/
-
-#ifdef H5_ULLONG_TO_FP_CAST_WORKS
     TEST_TYPE_CONTIG(dxpl_id_utrans_inv, unsigned long long, H5T_NATIVE_ULLONG, "ullong", transformData, 0);
-#else
-    TESTING("contiguous, with type conversion (float->ullong)")
-    SKIPPED()
-#endif
     TEST_TYPE_CONTIG(dxpl_id_c_to_f, float, H5T_NATIVE_FLOAT, "float", windchillFfloat, 1);
     TEST_TYPE_CONTIG(dxpl_id_c_to_f, double, H5T_NATIVE_DOUBLE, "double", windchillFfloat, 1);
 #if H5_SIZEOF_LONG_DOUBLE!=0
@@ -331,19 +314,8 @@ int main(void)
     TEST_TYPE_CHUNK(dxpl_id_utrans_inv, unsigned int, H5T_NATIVE_UINT, "uint", transformData, 0);
     TEST_TYPE_CHUNK(dxpl_id_c_to_f, long, H5T_NATIVE_LONG, "long", windchillFfloat, 1);
     TEST_TYPE_CHUNK(dxpl_id_utrans_inv, unsigned long, H5T_NATIVE_ULONG, "ulong", transformData, 0);
-#ifdef H5_LLONG_TO_FP_CAST_WORKS
     TEST_TYPE_CHUNK(dxpl_id_c_to_f, long long, H5T_NATIVE_LLONG, "llong", windchillFfloat, 1);
-#else
-    TESTING("chunked, with type conversion (float->llong)")
-    SKIPPED()
-#endif
-
-#ifdef H5_ULLONG_TO_FP_CAST_WORKS
     TEST_TYPE_CHUNK(dxpl_id_utrans_inv, unsigned long long, H5T_NATIVE_ULLONG, "ullong", transformData, 0);
-#else
-    TESTING("chunked, with type conversion (float->ullong)")
-    SKIPPED()
-#endif
     TEST_TYPE_CHUNK(dxpl_id_c_to_f, float, H5T_NATIVE_FLOAT, "float", windchillFfloat, 1);
     TEST_TYPE_CHUNK(dxpl_id_c_to_f, double, H5T_NATIVE_DOUBLE, "double", windchillFfloat, 1);
 #if H5_SIZEOF_LONG_DOUBLE!=0
diff --git a/test/dtypes.c b/test/dtypes.c
index 52e7983..9a78ca9 100644
--- a/test/dtypes.c
+++ b/test/dtypes.c
@@ -65,8 +65,8 @@
         FAIL_STACK_ERROR                                                       \
     if((NMEMBS) != H5I_nmembers(H5I_DATATYPE)) {                               \
         H5_FAILED();                                                           \
-        printf("    #dtype ids expected: %d; found: %d\n", NMEMBS,             \
-            H5I_nmembers(H5I_DATATYPE));                                       \
+        printf("    #dtype ids expected: %lld; found: %lld\n",                 \
+               (long long)NMEMBS, (long long)H5I_nmembers(H5I_DATATYPE));      \
         goto error;                                                            \
     }
 
@@ -688,8 +688,9 @@ test_compound_2(void)
     const hsize_t	four = 4;
     unsigned char	*buf=NULL, *orig=NULL, *bkg=NULL;
     hid_t		st=-1, dt=-1;
-    hid_t       array_dt;
-    int			i, nmembs;
+    hid_t               array_dt;
+    int64_t		nmembs;
+    int			i;
 
     TESTING("compound element reordering");
 
@@ -809,8 +810,9 @@ test_compound_3(void)
     const hsize_t	four = 4;
     unsigned char	*buf=NULL, *orig=NULL, *bkg=NULL;
     hid_t		st=-1, dt=-1;
-    hid_t       array_dt;
-    int			i, nmembs;
+    hid_t               array_dt;
+    int64_t		nmembs;
+    int			i;
 
     TESTING("compound subset conversions");
 
@@ -931,8 +933,9 @@ test_compound_4(void)
     const hsize_t	four = 4;
     unsigned char	*buf=NULL, *orig=NULL, *bkg=NULL;
     hid_t		st=-1, dt=-1;
-    hid_t       array_dt;
-    int			i, nmembs;
+    hid_t               array_dt;
+    int64_t		nmembs;
+    int			i;
 
     TESTING("compound element shrinking & reordering");
 
@@ -1160,7 +1163,8 @@ test_compound_6(void)
     const size_t	nelmts = NTESTELEM;
     unsigned char	*buf=NULL, *orig=NULL, *bkg=NULL;
     hid_t		st=-1, dt=-1;
-    int			i, nmembs;
+    int64_t		nmembs;
+    int			i;
 
     TESTING("compound element growing");
 
@@ -3004,7 +3008,7 @@ test_compound_16(void)
     if(H5Fget_obj_ids(file, H5F_OBJ_DATATYPE, (size_t)2, open_dtypes) < 0) TEST_ERROR
     if(open_dtypes[1]) {
         H5_FAILED(); AT();
-        printf("    H5Fget_obj_ids returned as second id: %d; expected: 0\n", open_dtypes[1]);
+        printf("    H5Fget_obj_ids returned as second id: %lld; expected: 0\n", (long long)open_dtypes[1]);
         goto error;
     }
 
@@ -3545,6 +3549,7 @@ test_transient (hid_t fapl)
     static hsize_t	ds_size[2] = {10, 20};
     hid_t		file=-1, type=-1, space=-1, dset=-1, t2=-1;
     char		filename[1024];
+    hid_t		ret_id;		/* Generic hid_t return value	*/
     herr_t		status;
 
     TESTING("transient datatypes");
@@ -3579,9 +3584,9 @@ test_transient (hid_t fapl)
 
     /* It should not be possible to create an attribute for a transient type */
     H5E_BEGIN_TRY {
-	status = H5Acreate2(type, "attr1", H5T_NATIVE_INT, space, H5P_DEFAULT, H5P_DEFAULT);
+	ret_id = H5Acreate2(type, "attr1", H5T_NATIVE_INT, space, H5P_DEFAULT, H5P_DEFAULT);
     } H5E_END_TRY;
-    if (status>=0) {
+    if (ret_id>=0) {
 	H5_FAILED();
 	HDputs ("    Attributes should not be allowed for transient types!");
 	goto error;
@@ -5143,6 +5148,7 @@ test_encode(void)
     size_t      enum_buf_size = 0;
     size_t      vlstr_buf_size = 0;
     unsigned char       *cmpd_buf=NULL, *enum_buf=NULL, *vlstr_buf=NULL;
+    hid_t	ret_id;
     herr_t      ret;
 
     TESTING("functions of encoding and decoding datatypes");
@@ -5243,9 +5249,9 @@ test_encode(void)
 
     /* Try decoding bogus buffer */
     H5E_BEGIN_TRY {
-	ret = H5Tdecode(cmpd_buf);
+	ret_id = H5Tdecode(cmpd_buf);
     } H5E_END_TRY;
-    if(ret!=FAIL) {
+    if(ret_id!=FAIL) {
         H5_FAILED();
         printf("Decoded bogus buffer!\n");
         goto error;
@@ -6530,6 +6536,135 @@ error:
     return 1;
 } /* end test_named_indirect_reopen() */
 
+/*-------------------------------------------------------------------------
+ * Function:	test_named_indirect_reopen_file
+ *
+ * Purpose:	Tests that a named compound datatype that refers to a named
+ *          string datatype can be reopened indirectly through H5Dget_type,
+ *          and shows the correct H5Tcommitted() state, including after the
+ *          file has been closed and reopened.
+ *
+ * Return:	Success:	0
+ *
+ *		Failure:	number of errors
+ *
+ * Programmer:	Mark Hodson
+ *              Tuesday, March 17, 2015
+ *
+ * Modifications:
+ *
+ *-------------------------------------------------------------------------
+ */
+static int
+test_named_indirect_reopen_file(hid_t fapl)
+{
+    hid_t file=-1, space=-1, cmptype=-1, reopened_cmptype=-1, strtype=-1, reopened_strtype=-1, dset=-1;
+    static hsize_t dims[1] = {3};
+    size_t strtype_size, cmptype_size;
+    char filename[1024];
+
+    TESTING("indirectly reopening recursively committed datatypes including file reopening");
+
+    /* PREPARATION */
+
+    /* Create file, dataspace */
+    h5_fixname(FILENAME[1], fapl, filename, sizeof filename);
+    if((file = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, fapl)) < 0) TEST_ERROR
+    if((space = H5Screate_simple(1, dims, dims)) < 0) TEST_ERROR
+
+    /* Create string type */
+    if((strtype = H5Tcopy(H5T_C_S1)) < 0) TEST_ERROR
+    if(H5Tset_size(strtype, H5T_VARIABLE) < 0) TEST_ERROR
+
+    /* Get size of string type */
+    if((strtype_size = H5Tget_size(strtype)) == 0) TEST_ERROR
+
+    /* Commit compound type and verify the size doesn't change */
+    if(H5Tcommit2(file, "str_type", strtype, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT) < 0) TEST_ERROR
+    if(strtype_size != H5Tget_size(strtype)) TEST_ERROR
+
+    /* Create compound type */
+    if((cmptype = H5Tcreate(H5T_COMPOUND, sizeof(char *))) < 0) TEST_ERROR
+    if(H5Tinsert(cmptype, "vlstr", (size_t)0, strtype) < 0) TEST_ERROR
+
+    /* Get size of compound type */
+    if((cmptype_size = H5Tget_size(cmptype)) == 0) TEST_ERROR
+
+    /* Commit compound type and verify the size doesn't change */
+    if(H5Tcommit2(file, "cmp_type", cmptype, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT) < 0) TEST_ERROR
+    if(cmptype_size != H5Tget_size(cmptype)) TEST_ERROR
+
+    /* Create dataset with compound type */
+    if((dset = H5Dcreate2(file, "cmp_dset", cmptype, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) < 0) TEST_ERROR
+
+    /* Close original types */
+    if(H5Tclose(strtype) < 0) TEST_ERROR
+    if(H5Tclose(cmptype) < 0) TEST_ERROR
+
+    /* CHECK DATA TYPES WHILE STILL HOLDING THE FILE OPEN */
+
+    /* Indirectly reopen compound type, verify that they report as committed, and the size doesn't change */
+    if((reopened_cmptype = H5Dget_type(dset)) < 0) TEST_ERROR
+    if(cmptype_size != H5Tget_size(reopened_cmptype)) TEST_ERROR
+    if(H5Tcommitted(reopened_cmptype) != 1) TEST_ERROR
+
+    /* Indirectly reopen string type, verify that they report as committed, and the size doesn't change */
+    if((reopened_strtype = H5Tget_member_type(reopened_cmptype, 0)) < 0) TEST_ERROR
+    if(strtype_size != H5Tget_size(reopened_strtype)) TEST_ERROR
+    if(H5Tcommitted(reopened_strtype) != 1) TEST_ERROR 
+
+    /* Close types and dataset */
+    if(H5Tclose(reopened_strtype) < 0) TEST_ERROR
+    if(H5Tclose(reopened_cmptype) < 0) TEST_ERROR
+    if(H5Dclose(dset) < 0) TEST_ERROR
+
+    /* CHECK DATA TYPES AFTER REOPENING THE SAME FILE */
+
+    /* Close file */
+     if(H5Fclose(file) < 0) TEST_ERROR
+
+    /* Reopen file */
+    if((file = H5Fopen(filename, H5F_ACC_RDWR, fapl)) < 0) TEST_ERROR
+
+    /* Reopen dataset */
+    if((dset = H5Dopen2(file, "cmp_dset", H5P_DEFAULT)) < 0) TEST_ERROR
+
+    /* Indirectly reopen compound type, verify that they report as committed, and the size doesn't change */
+    if((reopened_cmptype = H5Dget_type(dset)) < 0) TEST_ERROR
+    if(cmptype_size != H5Tget_size(reopened_cmptype)) TEST_ERROR
+    if(H5Tcommitted(reopened_cmptype) != 1) TEST_ERROR
+
+    /* Indirectly reopen string type, verify that they report as committed, and the size doesn't change */
+    if((reopened_strtype = H5Tget_member_type(reopened_cmptype, 0)) < 0) TEST_ERROR
+    if(strtype_size != H5Tget_size(reopened_strtype)) TEST_ERROR
+    /*if(H5Tcommitted(reopened_strtype) != 1) TEST_ERROR */
+
+    /* Close types and dataset */
+    if(H5Tclose(reopened_strtype) < 0) TEST_ERROR
+    if(H5Tclose(reopened_cmptype) < 0) TEST_ERROR
+    if(H5Dclose(dset) < 0) TEST_ERROR
+
+    /* DONE */
+
+    /* Close file and dataspace */
+    if(H5Sclose(space) < 0) TEST_ERROR
+    if(H5Fclose(file) < 0) TEST_ERROR
+    PASSED();
+    return 0;
+
+error:
+    H5E_BEGIN_TRY {
+	H5Tclose(cmptype);
+	H5Tclose(strtype);
+	H5Tclose(reopened_cmptype);
+        H5Tclose(reopened_strtype);
+	H5Sclose(space);
+	H5Dclose(dset);
+	H5Fclose(file);
+    } H5E_END_TRY;
+    return 1;
+} /* end test_named_indirect_reopen() */
+
 static void create_del_obj_named_test_file(const char *filename, hid_t fapl,
     hbool_t new_format)
 {
@@ -7284,10 +7419,9 @@ main(void)
     nerrors += test_latest();
     nerrors += test_int_float_except();
     nerrors += test_named_indirect_reopen(fapl);
-#ifndef H5_CANNOT_OPEN_TWICE
+    nerrors += test_named_indirect_reopen_file(fapl);
     nerrors += test_delete_obj_named(fapl);
     nerrors += test_delete_obj_named_fileid(fapl);
-#endif /*H5_CANNOT_OPEN_TWICE*/
     nerrors += test_set_order_compound(fapl);
     nerrors += test_str_create();
 #ifndef H5_NO_DEPRECATED_SYMBOLS
@@ -7295,7 +7429,6 @@ main(void)
 #endif /* H5_NO_DEPRECATED_SYMBOLS */
     h5_cleanup(FILENAME, fapl); /*must happen before first reset*/
     reset_hdf5();
-
     nerrors += test_conv_str_1();
     nerrors += test_conv_str_2();
     nerrors += test_conv_str_3();
@@ -7323,7 +7456,6 @@ main(void)
     nerrors += test_opaque();
     nerrors += test_set_order();
     nerrors += test_utf_ascii_conv();
-
     if(nerrors) {
         printf("***** %lu FAILURE%s! *****\n",
                nerrors, 1==nerrors?"":"S");
diff --git a/test/fheap.c b/test/fheap.c
index a256301..1a2ac12 100644
--- a/test/fheap.c
+++ b/test/fheap.c
@@ -15710,9 +15710,9 @@ test_write(hid_t fapl, H5HF_create_t *cparam, fheap_test_param_t *tparam)
 
         /* Change size of data to write */
         if(u < 20)
-            obj_size *= 1.3;
+            obj_size = (size_t)(obj_size * 1.3F);
         else
-            obj_size /= 1.3;
+            obj_size = (size_t)(obj_size / 1.3F);
     } /* end for */
 
     /* Close the fractal heap */
@@ -15755,9 +15755,9 @@ test_write(hid_t fapl, H5HF_create_t *cparam, fheap_test_param_t *tparam)
 
         /* Change size of data to write */
         if(u < 20)
-            obj_size *= 1.3;
+            obj_size = (size_t)(obj_size * 1.3F);
         else
-            obj_size /= 1.3;
+            obj_size = (size_t)(obj_size / 1.3F);
     } /* end for */
 
     /* Close the fractal heap */
diff --git a/test/fillval.c b/test/fillval.c
index b73ed17..aa8831e 100644
--- a/test/fillval.c
+++ b/test/fillval.c
@@ -909,9 +909,9 @@ test_rdwr_cases(hid_t file, hid_t dcpl, const char *dname, void *_fillval,
     else if(datatype == H5T_COMPOUND) {
         HDmemset(buf_c, 0, ((size_t)nelmts * sizeof(comp_datatype)));
         for(u = 0; u < nelmts; u++) {
-	    buf_c[u].a = (float)1111.11;
+	    buf_c[u].a = 1111.11F;
  	    buf_c[u].x = 2222;
-	    buf_c[u].y = 3333.3333;
+	    buf_c[u].y = 3333.3333F;
 	    buf_c[u].z = 'd';
 	}
         if(H5Dwrite(dset2, ctype_id, mspace, fspace, H5P_DEFAULT, buf_c) < 0)
@@ -1144,7 +1144,7 @@ test_rdwr(hid_t fapl, const char *base_name, H5D_layout_t layout)
          * as compound type */
         if(H5Pset_fill_time(dcpl, H5D_FILL_TIME_ALLOC) < 0) goto error;
         HDmemset(&fill_ctype, 0, sizeof(fill_ctype));
-        fill_ctype.y = 4444.4444;
+        fill_ctype.y = 4444.4444F;
         if(H5Pset_fill_value(dcpl, ctype_id, &fill_ctype) < 0) goto error;
         nerrors += test_rdwr_cases(file, dcpl, "dset11", &fill_ctype, H5D_FILL_TIME_ALLOC,
 				layout, H5T_COMPOUND, ctype_id);
@@ -1197,7 +1197,7 @@ test_rdwr(hid_t fapl, const char *base_name, H5D_layout_t layout)
      * as compound type */
     if(H5Pset_fill_time(dcpl, H5D_FILL_TIME_ALLOC) < 0) goto error;
     HDmemset(&fill_ctype, 0, sizeof(fill_ctype));
-    fill_ctype.y = 4444.4444;
+    fill_ctype.y = 4444.4444F;
     if(H5Pset_fill_value(dcpl, ctype_id, &fill_ctype) < 0) goto error;
     nerrors += test_rdwr_cases(file, dcpl, "dset12", &fill_ctype, H5D_FILL_TIME_ALLOC,
                                 layout, H5T_COMPOUND, ctype_id);
diff --git a/test/flush2.c b/test/flush2.c
index da41415..4f4caf6 100644
--- a/test/flush2.c
+++ b/test/flush2.c
@@ -63,26 +63,27 @@ check_dset(hid_t file, const char* name)
     assert(100 == ds_size[0] && 100 == ds_size[1]);
 
     /* Read some data */
-    if(H5Dread(dset, H5T_NATIVE_DOUBLE, space, space, H5P_DEFAULT,
-    the_data) < 0) goto error;
+    if(H5Dread(dset, H5T_NATIVE_DOUBLE, space, space, H5P_DEFAULT, the_data) < 0)
+        goto error;
     for(i = 0; i < (size_t)ds_size[0]; i++)
-  for(j = 0; j < (size_t)ds_size[1]; j++) {
-      /*
-       * The extra cast in the following statement is a bug workaround
-       * for the Win32 version 5.0 compiler.
-       * 1998-11-06 ptl
-       */
-      error = fabs(the_data[i][j] - (double)(hssize_t)i / ((hssize_t)j + 1));
-      if(error > 0.0001) {
-    H5_FAILED();
-    printf("    dset[%lu][%lu] = %g\n",
-      (unsigned long)i, (unsigned long)j, the_data[i][j]);
-    printf("    should be %g\n",
-      (double)(hssize_t)i/(hssize_t)(j+1));
-    goto error;
-      }
-  }
-    if(H5Dclose(dset) < 0) goto error;
+        for(j = 0; j < (size_t)ds_size[1]; j++) {
+            /*
+             * The extra cast in the following statement is a bug workaround
+             * for the Win32 version 5.0 compiler.
+             * 1998-11-06 ptl
+             */
+            error = fabs(the_data[i][j] - (double)(hssize_t)i / ((hssize_t)j + 1));
+            if(error > 0.0001F) {
+                H5_FAILED();
+                printf("    dset[%lu][%lu] = %g\n",
+                    (unsigned long)i, (unsigned long)j, the_data[i][j]);
+                printf("    should be %g\n",
+                    (double)(hssize_t)i/(hssize_t)(j+1));
+                goto error;
+            } /* end if */
+        } /* end for */
+    if(H5Dclose(dset) < 0)
+        goto error;
     return 0;
 
 error:
@@ -186,7 +187,7 @@ main(void)
         PASSED()
     else
     {
-#if defined H5_HAVE_WIN32_API && defined _HDF5USEDLL_
+#if defined H5_HAVE_WIN32_API && !defined (hdf5_EXPORTS)
     SKIPPED();
     puts("   DLL will flush the file even when calling _exit, skip this test temporarily");
 #elif defined H5_VMS
@@ -209,7 +210,7 @@ main(void)
         PASSED()
     else
     {
-#if defined H5_HAVE_WIN32_API && defined _HDF5USEDLL_
+#if defined H5_HAVE_WIN32_API && !defined (hdf5_EXPORTS)
     SKIPPED();
     puts("   DLL will flush the file even when calling _exit, skip this test temporarily");
 #elif defined H5_VMS
diff --git a/test/gen_bogus.c b/test/gen_bogus.c
index 7d8d073..df1e81f 100644
--- a/test/gen_bogus.c
+++ b/test/gen_bogus.c
@@ -62,7 +62,7 @@ int main(void)
     if(H5Dclose(did) < 0) goto error;
 
     /* Set "fail if unknown" message flag for bogus message */
-    bogus_flags = H5O_MSG_FLAG_FAIL_IF_UNKNOWN;
+    bogus_flags = H5O_MSG_FLAG_FAIL_IF_UNKNOWN_AND_OPEN_FOR_WRITE;
     if(H5Pset(dcpl, H5O_BOGUS_MSG_FLAGS_NAME, &bogus_flags) < 0) goto error;
 
     /* Create second dataset, with "fail if unknown" message flag */
diff --git a/test/gen_cross.c b/test/gen_cross.c
index 3b0a56f..1c73016 100644
--- a/test/gen_cross.c
+++ b/test/gen_cross.c
@@ -175,7 +175,6 @@ create_normal_dset(hid_t fid, hid_t fsid, hid_t msid)
 
     return 0;
 
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
 error:
     H5E_BEGIN_TRY {
         H5Pclose(dcpl);
@@ -183,7 +182,6 @@ error:
     } H5E_END_TRY;
 
     return -1;
-#endif /* H5_HAVE_FILTER_SCALEOFFSET */
 }
 
 

@@ -205,7 +203,6 @@ error:
 int
 create_scale_offset_dsets_float(hid_t fid, hid_t fsid, hid_t msid)
 {
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
     hid_t       dataset;         /* dataset handles */
     hid_t       dcpl;
     float       data[NX][NY];          /* data to write */
@@ -267,15 +264,8 @@ create_scale_offset_dsets_float(hid_t fid, hid_t fsid, hid_t msid)
     if(H5Pclose(dcpl) < 0)
         TEST_ERROR
 
-#else /* H5_HAVE_FILTER_SCALEOFFSET */
-    const char          *not_supported= "Scaleoffset filter is not enabled. Can't create the dataset.";
-
-    puts(not_supported);
-#endif /* H5_HAVE_FILTER_SCALEOFFSET */
-
     return 0;
 
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
 error:
     H5E_BEGIN_TRY {
         H5Pclose(dcpl);
@@ -283,7 +273,6 @@ error:
     } H5E_END_TRY;
 
     return -1;
-#endif /* H5_HAVE_FILTER_SCALEOFFSET */
 }
 
 

@@ -305,7 +294,6 @@ error:
 int
 create_scale_offset_dsets_double(hid_t fid, hid_t fsid, hid_t msid)
 {
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
     hid_t       dataset;         /* dataset handles */
     hid_t       dcpl;
     double      data[NX][NY];          /* data to write */
@@ -367,15 +355,8 @@ create_scale_offset_dsets_double(hid_t fid, hid_t fsid, hid_t msid)
     if(H5Pclose(dcpl) < 0)
         TEST_ERROR
 
-#else /* H5_HAVE_FILTER_SCALEOFFSET */
-    const char          *not_supported= "Scaleoffset filter is not enabled. Can't create the dataset.";
-
-    puts(not_supported);
-#endif /* H5_HAVE_FILTER_SCALEOFFSET */
-
     return 0;
 
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
 error:
     H5E_BEGIN_TRY {
         H5Pclose(dcpl);
@@ -383,7 +364,6 @@ error:
     } H5E_END_TRY;
 
     return -1;
-#endif /* H5_HAVE_FILTER_SCALEOFFSET */
 }
 
 

@@ -405,7 +385,6 @@ error:
 int
 create_scale_offset_dsets_char(hid_t fid, hid_t fsid, hid_t msid)
 {
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
     hid_t       dataset;         /* dataset handles */
     hid_t       dcpl;
     char        data[NX][NY];          /* data to write */
@@ -475,15 +454,8 @@ create_scale_offset_dsets_char(hid_t fid, hid_t fsid, hid_t msid)
     if(H5Pclose(dcpl) < 0)
         TEST_ERROR
 
-#else /* H5_HAVE_FILTER_SCALEOFFSET */
-    const char          *not_supported= "Scaleoffset filter is not enabled. Can't create the dataset.";
-
-    puts(not_supported);
-#endif /* H5_HAVE_FILTER_SCALEOFFSET */
-
     return 0;
 
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
 error:
     H5E_BEGIN_TRY {
         H5Pclose(dcpl);
@@ -491,7 +463,6 @@ error:
     } H5E_END_TRY;
 
     return -1;
-#endif /* H5_HAVE_FILTER_SCALEOFFSET */
 }
 
 

@@ -513,7 +484,6 @@ error:
 int
 create_scale_offset_dsets_short(hid_t fid, hid_t fsid, hid_t msid)
 {
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
     hid_t       dataset;         /* dataset handles */
     hid_t       dcpl;
     short       data[NX][NY];          /* data to write */
@@ -583,15 +553,8 @@ create_scale_offset_dsets_short(hid_t fid, hid_t fsid, hid_t msid)
     if(H5Pclose(dcpl) < 0)
         TEST_ERROR
 
-#else /* H5_HAVE_FILTER_SCALEOFFSET */
-    const char          *not_supported= "Scaleoffset filter is not enabled. Can't create the dataset.";
-
-    puts(not_supported);
-#endif /* H5_HAVE_FILTER_SCALEOFFSET */
-
     return 0;
 
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
 error:
     H5E_BEGIN_TRY {
         H5Pclose(dcpl);
@@ -599,7 +562,6 @@ error:
     } H5E_END_TRY;
 
     return -1;
-#endif /* H5_HAVE_FILTER_SCALEOFFSET */
 }
 
 

@@ -621,7 +583,6 @@ error:
 int
 create_scale_offset_dsets_int(hid_t fid, hid_t fsid, hid_t msid)
 {
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
     hid_t       dataset;         /* dataset handles */
     hid_t       dcpl;
     int         data[NX][NY];          /* data to write */
@@ -691,15 +652,8 @@ create_scale_offset_dsets_int(hid_t fid, hid_t fsid, hid_t msid)
     if(H5Pclose(dcpl) < 0)
         TEST_ERROR
 
-#else /* H5_HAVE_FILTER_SCALEOFFSET */
-    const char          *not_supported= "Scaleoffset filter is not enabled. Can't create the dataset.";
-
-    puts(not_supported);
-#endif /* H5_HAVE_FILTER_SCALEOFFSET */
-
     return 0;
 
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
 error:
     H5E_BEGIN_TRY {
         H5Pclose(dcpl);
@@ -707,7 +661,6 @@ error:
     } H5E_END_TRY;
 
     return -1;
-#endif /* H5_HAVE_FILTER_SCALEOFFSET */
 }
 
 

@@ -730,7 +683,6 @@ error:
 int
 create_scale_offset_dsets_long_long(hid_t fid, hid_t fsid, hid_t msid)
 {
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
     hid_t       dataset;         /* dataset handles */
     hid_t       dcpl;
     long long   data[NX][NY];          /* data to write */
@@ -800,15 +752,8 @@ create_scale_offset_dsets_long_long(hid_t fid, hid_t fsid, hid_t msid)
     if(H5Pclose(dcpl) < 0)
         TEST_ERROR
 
-#else /* H5_HAVE_FILTER_SCALEOFFSET */
-    const char          *not_supported= "Scaleoffset filter is not enabled. Can't create the dataset.";
-
-    puts(not_supported);
-#endif /* H5_HAVE_FILTER_SCALEOFFSET */
-
     return 0;
 
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
 error:
     H5E_BEGIN_TRY {
         H5Pclose(dcpl);
@@ -816,7 +761,6 @@ error:
     } H5E_END_TRY;
 
     return -1;
-#endif /* H5_HAVE_FILTER_SCALEOFFSET */
 }
 
 

@@ -838,7 +782,6 @@ error:
 int
 create_fletcher_dsets_float(hid_t fid, hid_t fsid, hid_t msid)
 {
-#ifdef H5_HAVE_FILTER_FLETCHER32
     hid_t       dataset;         /* dataset handles */
     hid_t       dcpl;
     float       data[NX][NY];          /* data to write */
@@ -900,15 +843,8 @@ create_fletcher_dsets_float(hid_t fid, hid_t fsid, hid_t msid)
     if(H5Pclose(dcpl) < 0)
         TEST_ERROR
 
-#else /* H5_HAVE_FILTER_FLETCHER32 */
-    const char          *not_supported= "Fletcher filter is not enabled. Can't create the dataset.";
-
-    puts(not_supported);
-#endif /* H5_HAVE_FILTER_FLETCHER32 */
-
     return 0;
 
-#ifdef H5_HAVE_FILTER_FLETCHER32
 error:
     H5E_BEGIN_TRY {
         H5Pclose(dcpl);
@@ -916,7 +852,6 @@ error:
     } H5E_END_TRY;
 
     return -1;
-#endif /* H5_HAVE_FILTER_FLETCHER32 */
 }
 
 

@@ -1131,7 +1066,6 @@ error:
 int
 create_shuffle_dsets_float(hid_t fid, hid_t fsid, hid_t msid)
 {
-#ifdef H5_HAVE_FILTER_SHUFFLE
     hid_t       dataset;         /* dataset handles */
     hid_t       dcpl;
     float       data[NX][NY];          /* data to write */
@@ -1193,15 +1127,8 @@ create_shuffle_dsets_float(hid_t fid, hid_t fsid, hid_t msid)
     if(H5Pclose(dcpl) < 0)
         TEST_ERROR
 
-#else /* H5_HAVE_FILTER_SHUFFLE */
-    const char          *not_supported= "Shuffle filter is not enabled. Can't create the dataset.";
-
-    puts(not_supported);
-#endif /* H5_HAVE_FILTER_SHUFFLE */
-
     return 0;
 
-#ifdef H5_HAVE_FILTER_SHUFFLE
 error:
     H5E_BEGIN_TRY {
         H5Pclose(dcpl);
@@ -1209,7 +1136,6 @@ error:
     } H5E_END_TRY;
 
     return -1;
-#endif /* H5_HAVE_FILTER_SHUFFLE */
 }
 
 

@@ -1231,7 +1157,6 @@ error:
 int
 create_nbit_dsets_float(hid_t fid, hid_t fsid, hid_t msid)
 {
-#ifdef H5_HAVE_FILTER_NBIT
     hid_t       dataset;         /* dataset handles */
     hid_t       datatype;
     hid_t       dcpl;
@@ -1314,15 +1239,8 @@ create_nbit_dsets_float(hid_t fid, hid_t fsid, hid_t msid)
     if(H5Pclose(dcpl) < 0)
         TEST_ERROR
 
-#else /* H5_HAVE_FILTER_NBIT */
-    const char          *not_supported= "Nbit filter is not enabled. Can't create the dataset.";
-
-    puts(not_supported);
-#endif /* H5_HAVE_FILTER_NBIT */
-
     return 0;
 
-#ifdef H5_HAVE_FILTER_NBIT
 error:
     H5E_BEGIN_TRY {
         H5Pclose(dcpl);
@@ -1330,7 +1248,6 @@ error:
     } H5E_END_TRY;
 
     return -1;
-#endif /* H5_HAVE_FILTER_NBIT */
 }
 
 

@@ -1451,3 +1368,4 @@ main (void)
 
     return 0;
 }
+
diff --git a/test/gen_filters.c b/test/gen_filters.c
index 58400d5..b44339d 100644
--- a/test/gen_filters.c
+++ b/test/gen_filters.c
@@ -48,7 +48,6 @@ static size_t filter_bogus(unsigned int flags, size_t cd_nelmts,
 static herr_t
 test_filters_endianess(void)
 {
-#if defined H5_HAVE_FILTER_FLETCHER32
     hid_t     fid = -1;              /* file ID */
     hid_t     dsid = -1;             /* dataset ID */
     hid_t     sid = -1;              /* dataspace ID */
@@ -85,10 +84,8 @@ test_filters_endianess(void)
     if(H5Sclose(sid) < 0) goto error;
     if(H5Fclose(fid) < 0) goto error;
 
-#endif /* H5_HAVE_FILTER_FLETCHER32 */
     return 0;
 
-#if defined H5_HAVE_FILTER_FLETCHER32
 error:
     H5E_BEGIN_TRY {
         H5Pclose(dcpl);
@@ -97,7 +94,6 @@ error:
         H5Fclose(fid);
     } H5E_END_TRY;
     return -1;
-#endif /* H5_HAVE_FILTER_FLETCHER32 */
 } /* end test_filters_endianess() */
 
 /* This message derives from H5Z */
diff --git a/test/h5test.c b/test/h5test.c
index fce8c9b..21aacb5 100644
--- a/test/h5test.c
+++ b/test/h5test.c
@@ -92,6 +92,8 @@ MPI_Info    h5_io_info_g=MPI_INFO_NULL;/* MPI INFO object for IO */
 static const char *multi_letters = "msbrglo";
 
 static herr_t h5_errors(hid_t estack, void *client_data);
+static char * h5_fixname_real(const char *base_name, hid_t fapl, const char *suffix, 
+                              char *fullname, size_t size);
 
 

 /*-------------------------------------------------------------------------
@@ -268,9 +270,59 @@ h5_reset(void)
 char *
 h5_fixname(const char *base_name, hid_t fapl, char *fullname, size_t size)
 {
+    return (h5_fixname_real(base_name, fapl, ".h5", fullname, size));
+}
+
+

+/*-------------------------------------------------------------------------
+ * Function:  h5_fixname_no_suffix
+ *
+ * Purpose:  Same as h5_fixname but with no suffix appended
+ *
+ * Return:  Success:  The FULLNAME pointer.
+ *
+ *    Failure:  NULL if BASENAME or FULLNAME is the null
+ *        pointer or if FULLNAME isn't large enough for
+ *        the result.
+ *
+ *-------------------------------------------------------------------------
+ */
+char *
+h5_fixname_no_suffix(const char *base_name, hid_t fapl, char *fullname, size_t size)
+{
+    return (h5_fixname_real(base_name, fapl, NULL, fullname, size));
+}
+
+

+/*-------------------------------------------------------------------------
+ * Function:  h5_fixname_real
+ *
+ * Purpose:  Create a file name from a file base name like `test' and
+ *    return it through the FULLNAME (at most SIZE characters
+ *    counting the null terminator). The full name is created by
+ *    prepending the contents of HDF5_PREFIX (separated from the
+ *    base name by a slash) and appending a file extension based on
+ *    the driver supplied, resulting in something like
+ *    `ufs:/u/matzke/test.h5'.
+ *
+ * Return:  Success:  The FULLNAME pointer.
+ *
+ *    Failure:  NULL if BASENAME or FULLNAME is the null
+ *        pointer or if FULLNAME isn't large enough for
+ *        the result.
+ *
+ * Programmer:  Robb Matzke
+ *              Thursday, November 19, 1998
+ *
+ *-------------------------------------------------------------------------
+ */
+static char *
+h5_fixname_real(const char *base_name, hid_t fapl, const char *_suffix, 
+                char *fullname, size_t size)
+{
     const char     *prefix = NULL;
-    const char     *suffix = ".h5";     /* suffix has default */
     char           *ptr, last = '\0';
+    const char     *suffix = _suffix;
     size_t          i, j;
     hid_t           driver = -1;
     int             isppdriver = 0;  /* if the driver is MPI parallel */
@@ -285,10 +337,12 @@ h5_fixname(const char *base_name, hid_t fapl, char *fullname, size_t size)
         if((driver = H5Pget_driver(fapl)) < 0)
             return NULL;
 
-        if(H5FD_FAMILY == driver)
-            suffix = "%05d.h5";
-        else if (H5FD_MULTI == driver)
-            suffix = NULL;
+        if(suffix) {
+            if(H5FD_FAMILY == driver)
+                suffix = "%05d.h5";
+            else if (H5FD_MULTI == driver)
+                suffix = NULL;
+        }
     }
 
     /* Must first check fapl is not H5P_DEFAULT (-1) because H5FD_XXX
@@ -318,11 +372,11 @@ h5_fixname(const char *base_name, hid_t fapl, char *fullname, size_t size)
      */
     if(isppdriver) {
 #ifdef H5_HAVE_PARALLEL
-  /*
+        /*
          * For parallel:
          *      First use command line option, then the environment
          *      variable, then try the constant
-   */
+         */
         static int explained = 0;
 
         prefix = (paraprefix ? paraprefix : getenv_all(MPI_COMM_WORLD, 0, "HDF5_PARAPREFIX"));
@@ -335,12 +389,12 @@ h5_fixname(const char *base_name, hid_t fapl, char *fullname, size_t size)
 
             if (mpi_rank == 0)
                 printf("*** Hint ***\n"
-                        "You can use environment variable HDF5_PARAPREFIX to "
-                        "run parallel test files in a\n"
-                        "different directory or to add file type prefix. E.g.,\n"
-                        "   HDF5_PARAPREFIX=pfs:/PFS/user/me\n"
-                        "   export HDF5_PARAPREFIX\n"
-                        "*** End of Hint ***\n");
+                       "You can use environment variable HDF5_PARAPREFIX to "
+                       "run parallel test files in a\n"
+                       "different directory or to add file type prefix. E.g.,\n"
+                       "   HDF5_PARAPREFIX=pfs:/PFS/user/me\n"
+                       "   export HDF5_PARAPREFIX\n"
+                       "*** End of Hint ***\n");
 
             explained = TRUE;
 #ifdef HDF5_PARAPREFIX
@@ -352,7 +406,7 @@ h5_fixname(const char *base_name, hid_t fapl, char *fullname, size_t size)
         /*
          * For serial:
          *      First use the environment variable, then try the constant
-        */
+         */
         prefix = HDgetenv("HDF5_PREFIX");
 
 #ifdef HDF5_PREFIX
@@ -425,18 +479,18 @@ h5_fixname(const char *base_name, hid_t fapl, char *fullname, size_t size)
                 return NULL;
         }
     } else if (HDstrlen(base_name) >= size) {
-  /* Buffer is too small */
-  return NULL;
+        /* Buffer is too small */
+        return NULL;
     } else {
-  HDstrcpy(fullname, base_name);
-   }
+        HDstrcpy(fullname, base_name);
+    }
 
     /* Append a suffix */
     if (suffix) {
-  if (HDstrlen(fullname) + HDstrlen(suffix) >= size)
+        if (HDstrlen(fullname) + HDstrlen(suffix) >= size)
             return NULL;
 
-  HDstrcat(fullname, suffix);
+        HDstrcat(fullname, suffix);
     }
 
     /* Remove any double slashes in the filename */
@@ -854,7 +908,7 @@ h5_get_file_size(const char *filename, hid_t fapl)
 {
     char temp[2048];    /* Temporary buffer for file names */
     h5_stat_t  sb;     /* Structure for querying file info */
-  int j = 0;
+    int j = 0;
 
     if(fapl == H5P_DEFAULT) {
         /* Get the file's statistics */
@@ -870,9 +924,6 @@ h5_get_file_size(const char *filename, hid_t fapl)
 
         /* Check for simple cases */
         if(driver == H5FD_SEC2 || driver == H5FD_STDIO || driver == H5FD_CORE ||
-#ifdef H5_HAVE_PARALLEL
-                driver == H5FD_MPIO || 
-#endif /* H5_HAVE_PARALLEL */
 #ifdef H5_HAVE_WINDOWS
                 driver == H5FD_WINDOWS ||
 #endif /* H5_HAVE_WINDOWS */
@@ -907,6 +958,22 @@ h5_get_file_size(const char *filename, hid_t fapl)
             /* Return total size */
             return(tot_size);
         } /* end if */
+#ifdef H5_HAVE_PARALLEL
+        else if(driver == H5FD_MPIO) {
+            MPI_File fh;         /* MPI file handle used to open the file and verify its size */
+            int mpi_ret;
+            MPI_Offset file_size;
+
+            mpi_ret = MPI_File_open(MPI_COMM_WORLD, filename, MPI_MODE_RDONLY, MPI_INFO_NULL, &fh);
+            if (mpi_ret != MPI_SUCCESS) return -1;
+            mpi_ret = MPI_File_get_size(fh, &file_size);
+            if (mpi_ret != MPI_SUCCESS) return -1;
+            mpi_ret = MPI_File_close(&fh);
+            if (mpi_ret != MPI_SUCCESS) return -1;
+
+            return file_size;
+        }
+#endif /* H5_HAVE_PARALLEL */
         else if(driver == H5FD_FAMILY) {
             h5_stat_size_t tot_size = 0;
 
diff --git a/test/h5test.h b/test/h5test.h
index 90e4cad..d31e963 100644
--- a/test/h5test.h
+++ b/test/h5test.h
@@ -141,8 +141,8 @@ extern "C" {
 
 /* Generally useful testing routines */
 H5TEST_DLL int h5_cleanup(const char *base_name[], hid_t fapl);
-H5TEST_DLL char *h5_fixname(const char *base_name, hid_t fapl, char *fullname,
-		 size_t size);
+H5TEST_DLL char *h5_fixname(const char *base_name, hid_t fapl, char *fullname, size_t size);
+H5TEST_DLL char *h5_fixname_no_suffix(const char *base_name, hid_t fapl, char *fullname, size_t size);
 H5TEST_DLL hid_t h5_fileaccess(void);
 H5TEST_DLL void h5_no_hwconv(void);
 H5TEST_DLL const char *h5_rmprefix(const char *filename);
diff --git a/test/hyperslab.c b/test/hyperslab.c
index 5e2c109..9bc085c 100644
--- a/test/hyperslab.c
+++ b/test/hyperslab.c
@@ -609,10 +609,10 @@ test_multifill(size_t nx)
 
     for(i = 0; i < nx; i++) {
         src[i].left = 1111111;
-        src[i].mid = 12345.6789;
+        src[i].mid = 12345.6789F;
         src[i].right = 2222222;
         dst[i].left = 3333333;
-        dst[i].mid = 98765.4321;
+        dst[i].mid = 98765.4321F;
         dst[i].right = 4444444;
     } /* end for */
 
@@ -621,7 +621,7 @@ test_multifill(size_t nx)
      * over and over again.
      */
     fill.left = 55555555;
-    fill.mid = 3.1415927;
+    fill.mid = 3.1415927F;
     fill.right = 66666666;
     src_stride = 0;
 
diff --git a/test/links.c b/test/links.c
index 95398cd..f40ead0 100644
--- a/test/links.c
+++ b/test/links.c
@@ -141,7 +141,7 @@ const char *FILENAME[] = {
 #define H5L_DIM1 100
 #define H5L_DIM2 100
 
-#define FILTER_FILESIZE_MAX_FRACTION .9
+#define FILTER_FILESIZE_MAX_FRACTION 0.9F
 
 /* Creation order macros */
 #define CORDER_GROUP_NAME       "corder_group"
@@ -4145,7 +4145,8 @@ external_set_elink_cb(hid_t fapl, hbool_t new_format)
     op_data.target_file = filename2;
     /* Core file driver has issues when used as the member file driver for a family file */
     /* Family file driver cannot be used with family or multi drivers for member files */
-    /* Also disable parallel member drivers, because IS_H5FD_MPI whould report FALSE, causing problems */
+    /* Also disable parallel member drivers, because H5F_HAS_FEATURE(H5FD_FEAT_HAS_MPI) 
+       would report FALSE, causing problems */
     base_driver = H5Pget_driver(fapl);
     op_data.base_fapl = (base_driver == H5FD_FAMILY || base_driver ==  H5FD_MULTI
             || base_driver == H5FD_MPIO || base_driver == H5FD_CORE) ? H5P_DEFAULT : fapl;
diff --git a/test/mtime.c b/test/mtime.c
index 8b1bf3e..f6296fc 100644
--- a/test/mtime.c
+++ b/test/mtime.c
@@ -114,7 +114,7 @@ main(void)
         puts("    Modification times will be mantained in the file but");
         puts("    cannot be queried on this system.  See H5O_mtime_decode().");
         return 0;
-    } else if(HDfabs(HDdifftime(now, oi1.ctime)) > 60.0) {
+    } else if(HDfabs(HDdifftime(now, oi1.ctime)) > 60.0F) {
         H5_FAILED();
         tm = HDlocaltime(&(oi1.ctime));
         HDstrftime((char*)buf1, sizeof buf1, "%Y-%m-%d %H:%M:%S", tm);
diff --git a/test/objcopy.c b/test/objcopy.c
index af0a835..d95a05e 100644
--- a/test/objcopy.c
+++ b/test/objcopy.c
@@ -2315,7 +2315,7 @@ test_copy_dataset_compound(hid_t fcpl_src, hid_t fcpl_dst, hid_t src_fapl, hid_t
 #endif /* H5_CLEAR_MEMORY */
     for(i = 0; i < DIM_SIZE_1; i++) {
         buf[i].a = i;
-        buf[i].d = 1. / (i + 1);
+        buf[i].d = 1.0F / (i + 1);
     } /* end for */
 
     /* Initialize the filenames */
@@ -2447,9 +2447,9 @@ test_copy_dataset_chunked(hid_t fcpl_src, hid_t fcpl_dst, hid_t src_fapl, hid_t
 
     /* set initial data values */
     for(i = 0; i < DIM_SIZE_1; i++) {
-        buf1d[i] = (float)(i / 2.0);
+        buf1d[i] = (float)(i / 2.0F);
         for(j = 0; j < DIM_SIZE_2; j++)
-            buf2d[i][j] = (float)(i + (j / 100.0));
+            buf2d[i][j] = (float)(i + (j / 100.0F));
     } /* end for */
 
     /* Initialize the filenames */
@@ -2790,9 +2790,9 @@ test_copy_dataset_chunked_sparse(hid_t fcpl_src, hid_t fcpl_dst, hid_t src_fapl,
 
     /* set initial data values */
     for(i = 0; i < DIM_SIZE_1; i++) {
-        buf1d[i] = (float)(i / 10.0);
+        buf1d[i] = (float)(i / 10.0F);
         for(j = 0; j < DIM_SIZE_2; j++)
-            buf2d[i][j] = (float)(i + (j / 100.0));
+            buf2d[i][j] = (float)(i + (j / 100.0F));
     } /* end for */
 
     /* Initialize the filenames */
@@ -2985,7 +2985,7 @@ test_copy_dataset_compressed(hid_t fcpl_src, hid_t fcpl_dst, hid_t src_fapl, hid
     /* set initial data values */
     for (i=0; i<DIM_SIZE_1; i++)
         for (j=0; j<DIM_SIZE_2; j++)
-            buf[i][j] = (float)(100.0);         /* Something easy to compress */
+            buf[i][j] = 100.0F;         /* Something easy to compress */
 
     /* Initialize the filenames */
     h5_fixname(FILENAME[0], src_fapl, src_filename, sizeof src_filename);
@@ -3114,7 +3114,7 @@ test_copy_dataset_compact(hid_t fcpl_src, hid_t fcpl_dst, hid_t src_fapl, hid_t
     /* set initial data values */
     for (i=0; i<DIM_SIZE_1; i++)
         for (j=0; j<DIM_SIZE_2; j++)
-            buf[i][j] = (float)(i+j/100.0);
+            buf[i][j] = (float)(i+j/100.0F);
 
     /* Initialize the filenames */
     h5_fixname(FILENAME[0], src_fapl, src_filename, sizeof src_filename);
@@ -7599,7 +7599,7 @@ test_copy_dataset_contig_cmpd_vl(hid_t fcpl_src, hid_t fcpl_dst, hid_t src_fapl,
         buf[i].b.p = (int *)HDmalloc(buf[i].b.len * sizeof(int));
         for(j = 0; j < buf[i].b.len; j++)
             ((int *)buf[i].b.p)[j] = (int)(i * 10 + j);
-        buf[i].c = 1. / (i + 1.);
+        buf[i].c = 1.0F / (i + 1.0F);
     } /* end for */
 
     /* Initialize the filenames */
@@ -7738,7 +7738,7 @@ test_copy_dataset_chunked_cmpd_vl(hid_t fcpl_src, hid_t fcpl_dst, hid_t src_fapl
         buf[i].b.p = (int *)HDmalloc(buf[i].b.len * sizeof(int));
         for(j = 0; j < buf[i].b.len; j++)
             ((int *)buf[i].b.p)[j] = (int)(i * 10 + j);
-        buf[i].c = 1. / (i + 1.);
+        buf[i].c = 1.0F / (i + 1.0F);
     } /* end for */
 
     /* Initialize the filenames */
@@ -7883,7 +7883,7 @@ test_copy_dataset_compact_cmpd_vl(hid_t fcpl_src, hid_t fcpl_dst, hid_t src_fapl
         buf[i].b.p = (int *)HDmalloc(buf[i].b.len * sizeof(int));
         for(j = 0; j < buf[i].b.len; j++)
             ((int *)buf[i].b.p)[j] = (int)(i * 10 + j);
-        buf[i].c = 1. / (i + 1.);
+        buf[i].c = 1.0F / (i + 1.0F);
     } /* end for */
 
     /* Initialize the filenames */
diff --git a/test/ohdr.c b/test/ohdr.c
index 1151101..1b324a9 100644
--- a/test/ohdr.c
+++ b/test/ohdr.c
@@ -686,16 +686,13 @@ main(void)
 
             PASSED();
 
-            TESTING("object with unknown header message & 'fail if unknown' flag set");
+            TESTING("object with unknown header message & 'fail if unknown and open for write' flag set");
 
-            /* Attempt to open the dataset with the unknown header message, and "fail if unknown" flag */
-            H5E_BEGIN_TRY {
-                dset = H5Dopen2(file2, "/Dataset2", H5P_DEFAULT);
-            } H5E_END_TRY;
-            if(dset >= 0) {
-                H5Dclose(dset);
+            /* Open the dataset with the unknown header message, and "fail if unknown and open for write" flag */
+            if((dset = H5Dopen2(file2, "/Dataset2", H5P_DEFAULT)) < 0)
+                TEST_ERROR
+            if(H5Dclose(dset) < 0)
                 TEST_ERROR
-            } /* end if */
 
             PASSED();
 
@@ -777,6 +774,26 @@ main(void)
             if(H5Dclose(dset) < 0)
                 TEST_ERROR
 
+            /* Close the file with the bogus objects */
+            if(H5Fclose(file2) < 0)
+                TEST_ERROR
+
+            PASSED();
+
+            /* Open the file with objects that have unknown header messages (generated with gen_bogus.c) with RW intent this time */
+            if((file2 = H5Fopen(testfile, H5F_ACC_RDWR, H5P_DEFAULT)) < 0)
+                TEST_ERROR
+
+            TESTING("object with unknown header message & 'fail if unknown and open for write' flag set");
+
+            /* Attempt to open the dataset with the unknown header message, and "fail if unknown and open for write" flag */
+            H5E_BEGIN_TRY {
+                dset = H5Dopen2(file2, "/Dataset2", H5P_DEFAULT);
+            } H5E_END_TRY;
+            if(dset >= 0) {
+                H5Dclose(dset);
+                TEST_ERROR
+            } /* end if */
 
             /* Close the file with the bogus objects */
             if(H5Fclose(file2) < 0)
diff --git a/test/plugin.c b/test/plugin.c
index 86bc952..74a8f4b 100644
--- a/test/plugin.c
+++ b/test/plugin.c
@@ -456,14 +456,14 @@ error:
 }
 
 /*-------------------------------------------------------------------------
- * Function:	test_read_with_filters
+ * Function:    test_read_with_filters
  *
- * Purpose:	Tests reading dataset created with dynamically loaded filters
+ * Purpose: Tests reading dataset created with dynamically loaded filters
  *
- * Return:	Success:	0
- *		Failure:	-1
+ * Return:  Success:    0
+ *      Failure:    -1
  *
- * Programmer:	Raymond Lu
+ * Programmer:  Raymond Lu
  *              14 March 2013
  *
  *-------------------------------------------------------------------------
@@ -471,7 +471,7 @@ error:
 static herr_t
 test_read_with_filters(hid_t file)
 {
-    hid_t	dset;                 /* Dataset ID */
+    hid_t   dset;                 /* Dataset ID */
 
     /*----------------------------------------------------------
      * STEP 1: Test deflation by itself.
@@ -526,6 +526,77 @@ error:
 }
 
 /*-------------------------------------------------------------------------
+ * Function:    test_noread_data
+ *
+ * Purpose: Tests not reading data
+ *
+ * Return:  Success:    0
+ *      Failure:    -1
+ *
+ *-------------------------------------------------------------------------
+ */
+static herr_t
+test_noread_data(hid_t dataset)
+{
+    int        check[DSET_DIM1][DSET_DIM2];
+    herr_t     ret;
+
+    /* Read the dataset back */
+    H5E_BEGIN_TRY {
+        ret = H5Dread(dataset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, check);
+    } H5E_END_TRY
+    if(ret >= 0)
+        TEST_ERROR
+
+    PASSED();
+    return 0;
+
+error:
+    return -1;
+}
+
+/*-------------------------------------------------------------------------
+ * Function:	test_noread_with_filters
+ *
+ * Purpose:	Tests reading dataset created with dynamically loaded filters disabled
+ *
+ * Return:	Success:	0
+ *		Failure:	-1
+ *
+ *-------------------------------------------------------------------------
+ */
+static herr_t
+test_noread_with_filters(hid_t file)
+{
+    hid_t	dset;                 /* Dataset ID */
+    unsigned     plugin_state;         /* status of plugins */
+    TESTING("Testing DYNLIB1 filter with plugins disabled");
+
+    /* disable filter plugin */
+    if(H5PLget_loading_state(&plugin_state) < 0) TEST_ERROR
+    plugin_state = plugin_state & ~H5PL_FILTER_PLUGIN;
+    if(H5PLset_loading_state(plugin_state) < 0) TEST_ERROR
+
+    if((dset = H5Dopen2(file,DSET_DYNLIB1_NAME,H5P_DEFAULT)) < 0) TEST_ERROR
+
+    if(test_noread_data(dset) < 0) TEST_ERROR
+
+    if(H5Dclose(dset) < 0) TEST_ERROR
+
+    /* re-enable filter plugin */
+    plugin_state = plugin_state | H5PL_FILTER_PLUGIN;
+    if(H5PLset_loading_state(plugin_state) < 0) TEST_ERROR
+
+    return 0;
+
+error:
+    /* re-enable filter plugin */
+    plugin_state = plugin_state | H5PL_FILTER_PLUGIN;
+    if(H5PLset_loading_state(plugin_state) < 0) TEST_ERROR
+    return -1;
+}
+
+/*-------------------------------------------------------------------------
  * Function:	test_filters_for_groups
  *
  * Purpose:	Tests creating group with dynamically loaded filters
@@ -713,6 +784,17 @@ main(void)
     /* Open the groups with filters */
     nerrors += (test_groups_with_filters(file) < 0	? 1 : 0);
 
+    /* Close the library so that all loaded plugin libraries are unloaded */
+    h5_reset();
+    fapl = h5_fileaccess();
+
+    /* Reopen the file for testing data reading */
+    if((file = H5Fopen(filename, H5F_ACC_RDONLY, fapl)) < 0)
+        TEST_ERROR
+
+    /* Read the data with disabled filters */
+    nerrors += (test_noread_with_filters(file) < 0  ? 1 : 0);
+
     if(H5Fclose(file) < 0)
         TEST_ERROR 
 
diff --git a/test/set_extent.c b/test/set_extent.c
index aaa6516..f6c3766 100644
--- a/test/set_extent.c
+++ b/test/set_extent.c
@@ -130,10 +130,10 @@ int main( void )
     if((fapl2 = H5Pcopy(fapl)) < 0) TEST_ERROR
 
     /* Set chunk cache so only part of the chunks can be cached on fapl */
-    if(H5Pset_cache(fapl, 0, (size_t)8, 256 * sizeof(int), 0.75) < 0) TEST_ERROR
+    if(H5Pset_cache(fapl, 0, (size_t)8, 256 * sizeof(int), 0.75F) < 0) TEST_ERROR
 
     /* Disable chunk caching on fapl2 */
-    if(H5Pset_cache(fapl2, 0, (size_t)0, (size_t)0, 0.) < 0) TEST_ERROR
+    if(H5Pset_cache(fapl2, 0, (size_t)0, (size_t)0, 0.0F) < 0) TEST_ERROR
 
     /* Set the "use the latest version of the format" bounds for creating objects in the file */
     if(H5Pset_libver_bounds(fapl2, H5F_LIBVER_LATEST, H5F_LIBVER_LATEST) < 0) TEST_ERROR
diff --git a/test/tarray.c b/test/tarray.c
index c2af58d..c86d3bd 100644
--- a/test/tarray.c
+++ b/test/tarray.c
@@ -541,7 +541,7 @@ test_array_compound_atomic(void)
     for(i = 0; i < SPACE1_DIM1; i++)
         for(j = 0; j < ARRAY1_DIM1; j++) {
             wdata[i][j].i = i * 10 + j;
-            wdata[i][j].f = (float)(i * 2.5 + j);
+            wdata[i][j].f = (float)(i * 2.5F + j);
         } /* end for */
 
     /* Create file */
@@ -745,7 +745,7 @@ test_array_compound_array(void)
         for(j=0; j<ARRAY1_DIM1; j++) {
             wdata[i][j].i=i*10+j;
             for(k=0; k<ARRAY1_DIM1; k++)
-                wdata[i][j].f[k]=(float)(i*10+j*2.5+k);
+                wdata[i][j].f[k]=(float)(i * 10.0F + j * 2.5F + k);
         } /* end for */
 
     /* Create file */
@@ -1534,8 +1534,8 @@ test_array_bkg(void)
 		for (j = 0; j < ALEN; j++)
 		  {
 			cf[i].a[j] = 100*(i+1) + j;
-			cf[i].b[j] = (float)(100.*(i+1) + 0.01*j);
-			cf[i].c[j] = 100.*(i+1) + 0.02*j;
+			cf[i].b[j] = (float)(100.0F*(i+1) + 0.01F*j);
+			cf[i].c[j] = (double)(100.0F*(i+1) + 0.02F*j);
 		  }
 	  }
 
@@ -1674,7 +1674,7 @@ test_array_bkg(void)
     /* -------------------------------- */
     for (i=0; i< LENGTH; i++)
         for (j = 0; j < ALEN; j++)
-            cf[i].b[j]=fld[i].b[j] = (float)1.313;
+            cf[i].b[j]=fld[i].b[j] = 1.313F;
 
     status = H5Dwrite (dataset, type, H5S_ALL, H5S_ALL, H5P_DEFAULT, fld);
     CHECK(status, FAIL, "H5Dwrite");
diff --git a/test/tattr.c b/test/tattr.c
index 57b3263..d533ef6 100644
--- a/test/tattr.c
+++ b/test/tattr.c
@@ -97,7 +97,7 @@ int attr_data2[ATTR2_DIM1][ATTR2_DIM2]={{7614,-416},{197814,-3}}; /* Test data f
 #define ATTR3_DIM1	2
 #define ATTR3_DIM2	2
 #define ATTR3_DIM3	2
-double attr_data3[ATTR3_DIM1][ATTR3_DIM2][ATTR3_DIM3]={{{2.3,-26.1},{0.123,-10.0}},{{973.23,-0.91827},{2.0,23.0}}}; /* Test data for 3rd attribute */
+double attr_data3[ATTR3_DIM1][ATTR3_DIM2][ATTR3_DIM3]={{{2.3F,-26.1F}, {0.123F,-10.0F}},{{973.23F,-0.91827F},{2.0F,23.0F}}}; /* Test data for 3rd attribute */
 
 #define ATTR4_NAME  "Attr4"
 #define ATTR4_RANK	2
@@ -113,12 +113,12 @@ struct attr4_struct {
     int i;
     double d;
     char c;
- } attr_data4[ATTR4_DIM1][ATTR4_DIM2]={{{3,-26.1,'d'},{-100000, 0.123,'3'}},
-    {{-23,981724.2,'Q'},{0,2.0,'\n'}}}; /* Test data for 4th attribute */
+ } attr_data4[ATTR4_DIM1][ATTR4_DIM2]={{{3,-26.1F,'d'},{-100000, 0.123F,'3'}},
+    {{-23,981724.2F,'Q'},{0,2.0F,'\n'}}}; /* Test data for 4th attribute */
 
 #define ATTR5_NAME  "Attr5"
 #define ATTR5_RANK	0
-float attr_data5=(float)-5.123;        /* Test data for 5th attribute */
+float attr_data5=-5.123F;        /* Test data for 5th attribute */
 
 #define ATTR6_RANK	3
 #define ATTR6_DIM1	100
@@ -499,7 +499,7 @@ test_attr_flush(hid_t fapl)
         att,            /* Attribute ID */
         spc,            /* Dataspace ID */
         set;            /* Dataset ID */
-    double wdata=3.14159;       /* Data to write */
+    double wdata=3.14159F;       /* Data to write */
     double rdata;       /* Data read in */
     herr_t ret;		/* Generic return value		*/
 
@@ -521,8 +521,8 @@ test_attr_flush(hid_t fapl)
     ret=H5Aread(att, H5T_NATIVE_DOUBLE, &rdata);
     CHECK(ret, FAIL, "H5Awrite");
 
-    if(!DBL_ABS_EQUAL(rdata,0.0))
-        TestErrPrintf("attribute value wrong: rdata=%f, should be %f\n",rdata,0.0);
+    if(!DBL_ABS_EQUAL(rdata,0.0F))
+        TestErrPrintf("attribute value wrong: rdata=%f, should be %f\n",rdata,0.0F);
 
     ret=H5Fflush(fil, H5F_SCOPE_GLOBAL);
     CHECK(ret, FAIL, "H5Fflush");
@@ -530,8 +530,8 @@ test_attr_flush(hid_t fapl)
     ret=H5Aread(att, H5T_NATIVE_DOUBLE, &rdata);
     CHECK(ret, FAIL, "H5Awrite");
 
-    if(!DBL_ABS_EQUAL(rdata,0.0))
-        TestErrPrintf("attribute value wrong: rdata=%f, should be %f\n",rdata,0.0);
+    if(!DBL_ABS_EQUAL(rdata,0.0F))
+        TestErrPrintf("attribute value wrong: rdata=%f, should be %f\n",rdata,0.0F);
 
     ret=H5Awrite(att, H5T_NATIVE_DOUBLE, &wdata);
     CHECK(ret, FAIL, "H5Awrite");
@@ -982,7 +982,7 @@ test_attr_scalar_read(hid_t fapl)
     hid_t	sid;	        /* Dataspace ID			*/
     hid_t	attr;	        /* Attribute ID			*/
     H5S_class_t stype;          /* Dataspace class              */
-    float       rdata = 0.0;    /* Buffer for reading 1st attribute */
+    float       rdata = 0.0F;    /* Buffer for reading 1st attribute */
     H5O_info_t  oinfo;          /* Object info                  */
     herr_t	ret;		/* Generic return value		*/
 
diff --git a/test/tbogus.h5 b/test/tbogus.h5
index 2b8b1dd..5b1d85e 100644
Binary files a/test/tbogus.h5 and b/test/tbogus.h5 differ
diff --git a/test/test_plugin.sh.in b/test/test_plugin.sh.in
index b268661..a6d8c50 100644
--- a/test/test_plugin.sh.in
+++ b/test/test_plugin.sh.in
@@ -28,8 +28,16 @@ exit_code=$EXIT_SUCCESS
 TEST_NAME=plugin
 TEST_BIN=`pwd`/$TEST_NAME
 FROM_DIR=`pwd`/.libs
-PLUGIN_LIB1="$FROM_DIR/libdynlib1.* $FROM_DIR/libdynlib3.*"
-PLUGIN_LIB2="$FROM_DIR/libdynlib2.*"
+case $(uname) in
+    CYGWIN* )
+        PLUGIN_LIB1="$FROM_DIR/cygdynlib1* $FROM_DIR/cygdynlib3*"
+        PLUGIN_LIB2="$FROM_DIR/cygdynlib2*"
+        ;;
+    *)
+        PLUGIN_LIB1="$FROM_DIR/libdynlib1.* $FROM_DIR/libdynlib3.*"
+        PLUGIN_LIB2="$FROM_DIR/libdynlib2.*"
+        ::
+esac
 PLUGIN_LIBDIR1=testdir1
 PLUGIN_LIBDIR2=testdir2
 CP="cp -p"	# Use -p to preserve mode,ownership,timestamps
diff --git a/test/testhdf5.c b/test/testhdf5.c
index e7a5cf1..eade815 100644
--- a/test/testhdf5.c
+++ b/test/testhdf5.c
@@ -66,9 +66,8 @@ main(int argc, char *argv[])
     AddTest("array", test_array, cleanup_array,  "Array Datatypes", NULL);
     AddTest("genprop", test_genprop, cleanup_genprop,  "Generic Properties", NULL);
     AddTest("unicode", test_unicode, cleanup_unicode,  "UTF-8 Encoding", NULL);
-    AddTest("misc", test_misc, cleanup_misc,  "Miscellaneous", NULL);
-    /* id test needs to be the last test. */
     AddTest("id", test_ids, NULL,  "User-Created Identifiers", NULL);
+    AddTest("misc", test_misc, cleanup_misc,  "Miscellaneous", NULL);
 
     /* Display testing information */
     TestInfo(argv[0]);
@@ -90,8 +89,7 @@ main(int argc, char *argv[])
     /* Exit failure if errors encountered; else exit success. */
     /* No need to print anything since PerformTests() already does. */
     if (GetTestNumErrs() > 0)
-	/* Since exiting failed, don't do at_exit stuff by calling _exit */
-	_exit(EXIT_FAILURE);
+	exit(EXIT_FAILURE);
     else
 	exit(EXIT_SUCCESS);
 }   /* end main() */
diff --git a/test/testhdf5.h b/test/testhdf5.h
index 907fce9..62dadde 100644
--- a/test/testhdf5.h
+++ b/test/testhdf5.h
@@ -68,6 +68,18 @@
    }									      \
 }
 
+#define CHECK_PTR_NULL(ret,where) {						      \
+   if (VERBOSE_HI) {					      \
+      print_func("   Call to routine: %15s at line %4d in %s returned %p\n",  \
+                 (where), (int)__LINE__, __FILE__, (ret));		      \
+   }									      \
+   if (ret) {							      \
+      TestErrPrintf ("*** UNEXPECTED RETURN from %s is not NULL line %4d in %s\n", \
+                  (where), (int)__LINE__, __FILE__);			      \
+      H5Eprint2(H5E_DEFAULT, stdout);				      \
+   }									      \
+}
+
 /* Used to make certain a return value _is_ a value */
 #define VERIFY(_x, _val, where) do {					      \
     long __x = (long)_x, __val = (long)_val;				      \
diff --git a/test/testmeta.c b/test/testmeta.c
index a008cc7..e1d12e6 100644
--- a/test/testmeta.c
+++ b/test/testmeta.c
@@ -105,9 +105,11 @@ int main(void)
 
     for(j=0; j<NDATAOBJECTS; j++)
     {
-        printf("\rWriting Object #%d of %d", j+1, NDATAOBJECTS);
-        fflush(stdout);
-
+        /* Removed print statement as it would lock system resources on Windows */
+        /*
+         * printf("\rWriting Object #%d of %d", j+1, NDATAOBJECTS);
+         * fflush(stdout);
+         */
         floatval = (float)j;
 
         /* Create group to hold data arrays for this object */
diff --git a/test/tfile.c b/test/tfile.c
index 82e0182..736fe42 100644
--- a/test/tfile.c
+++ b/test/tfile.c
@@ -2333,7 +2333,7 @@ test_rw_noupdate(void)
     diff = HDdifftime(sb2.st_mtime, sb1.st_mtime);
 
     /* Check That Timestamps Are Equal */
-    if(diff > 0.0) {
+    if(diff > 0.0F) {
         /* Output message about test being performed */
         MESSAGE(1, ("Testing to verify that nothing is written if nothing is changed: This test is skipped on this system because the modification time from stat is the same as the last access time (We know OpenVMS behaves in this way).\n"));
     } /* end if */
@@ -2366,7 +2366,7 @@ test_rw_noupdate(void)
 
         /* Ensure That Timestamps Are Equal */
         diff = HDdifftime(sb2.st_mtime, sb1.st_mtime);
-        ret = (diff > 0.0);
+        ret = (diff > 0.0F);
         VERIFY(ret, 0, "Timestamp");
     } /* end else */
 } /* end test_rw_noupdate() */
@@ -2957,9 +2957,7 @@ test_file(void)
 
     test_file_create();		/* Test file creation(also creation templates)*/
     test_file_open();		/* Test file opening */
-#ifndef H5_NO_SHARED_WRITING
     test_file_close();          /* Test file close behavior */
-#endif /* H5_NO_SHARED_WRITING */
     test_get_file_id();         /* Test H5Iget_file_id */
     test_get_obj_ids();         /* Test H5Fget_obj_ids for Jira Issue 8528 */
     test_file_perm();           /* Test file access permissions */
diff --git a/test/tgenprop.c b/test/tgenprop.c
index 004e346..d147099 100644
--- a/test/tgenprop.c
+++ b/test/tgenprop.c
@@ -47,7 +47,7 @@ int         prop1_def=10;   /* Property 1 default value */
 #define PROP1_DEF_VALUE (&prop1_def)
 
 #define PROP2_NAME     "Property 2"
-float         prop2_def=(float)3.14;   /* Property 2 default value */
+float         prop2_def=3.14F;   /* Property 2 default value */
 #define PROP2_SIZE      sizeof(prop2_def)
 #define PROP2_DEF_VALUE (&prop2_def)
 
@@ -57,7 +57,7 @@ char          prop3_def[10]="Ten chars";   /* Property 3 default value */
 #define PROP3_DEF_VALUE (&prop3_def)
 
 #define PROP4_NAME     "Property 4"
-double          prop4_def=1.41;   /* Property 4 default value */
+double          prop4_def=1.41F;   /* Property 4 default value */
 #define PROP4_SIZE      sizeof(prop4_def)
 #define PROP4_DEF_VALUE (&prop4_def)
 
diff --git a/test/th5s.c b/test/th5s.c
index 8e18fad..f2d2693 100644
--- a/test/th5s.c
+++ b/test/th5s.c
@@ -79,7 +79,7 @@ struct space4_struct {
     unsigned u;
     float f;
     char c2;
- } space4_data={'v',987123,(float)-3.14,'g'}; /* Test data for 4th dataspace */
+ } space4_data={'v',987123,-3.14F,'g'}; /* Test data for 4th dataspace */
 
 /****************************************************************
 **
@@ -1652,7 +1652,7 @@ test_h5s_chunk(void)
     /* Initialize float array */
     for(i = 0; i < 50000; i++)
         for(j = 0; j < 3; j++)
-            chunk_data_flt[i][j] = (float)((i + 1) * 2.5 - j * 100.3);
+            chunk_data_flt[i][j] = (float)((i + 1) * 2.5F - j * 100.3F);
 
     status = H5Dwrite(dsetID, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, H5P_DEFAULT, chunk_data_flt);
     CHECK(status, FAIL, "H5Dwrite");
@@ -1688,7 +1688,7 @@ test_h5s_chunk(void)
     for(i=0; i<50000; i++) {
         for(j=0; j<3; j++) {
             /* Check if the two values are within 0.001% range. */
-            if(!DBL_REL_EQUAL(chunk_data_dbl[i][j], chunk_data_flt[i][j], 0.00001))
+            if(!DBL_REL_EQUAL(chunk_data_dbl[i][j], chunk_data_flt[i][j], 0.00001F))
                 TestErrPrintf("%u: chunk_data_dbl[%d][%d]=%e, chunk_data_flt[%d][%d]=%e\n", (unsigned)__LINE__, i, j, chunk_data_dbl[i][j], i, j, chunk_data_flt[i][j]);
         } /* end for */
     } /* end for */
@@ -2212,6 +2212,125 @@ test_h5s_extent_equal(void)
 
 /****************************************************************
 **
+**  test_h5s_extent_copy(): Exercise extent copy code
+**
+****************************************************************/
+static void
+test_h5s_extent_copy(void)
+{
+    hid_t spaces[14] = {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}; /* Array of all dataspaces */
+    hid_t tmp_space = -1;
+    hsize_t d1_dims1[1] = {10}, /* 1-D dimensions */
+        d1_dims2[1] = {20},
+        d1_dims3[1] = {H5S_UNLIMITED};
+    hsize_t d2_dims1[2] = {10, 10},             /* 2-D dimensions */
+        d2_dims2[2] = {20, 20},
+        d2_dims3[2] = {H5S_UNLIMITED, H5S_UNLIMITED};
+    hsize_t d3_dims1[3] = {10, 10, 10},         /* 3-D dimensions */
+        d3_dims2[3] = {20, 20, 20},
+        d3_dims3[3] = {H5S_UNLIMITED, H5S_UNLIMITED, H5S_UNLIMITED};
+    hsize_t npoints[14];        /* Expected number of points in selection for each element in spaces */
+    hssize_t npoints_ret;       /* Number of points returned by H5Sget_select_npoints() */
+    htri_t ext_equal;           /* Whether two dataspace extents are equal */
+    const unsigned num_spaces = sizeof(spaces) / sizeof(spaces[0]);
+    unsigned i, j;
+    herr_t ret;                 /* Generic error return */
+
+    /* Create dataspaces */
+    spaces[0] = H5Screate(H5S_NULL);
+    CHECK(spaces[0], FAIL, "H5Screate");
+    npoints[0] = (hsize_t)0;
+
+    spaces[1] = H5Screate(H5S_SCALAR);
+    CHECK(spaces[1], FAIL, "H5Screate");
+    npoints[1] = (hsize_t)1;
+
+    spaces[2] = H5Screate_simple(1, d1_dims1, NULL);
+    CHECK(spaces[2], FAIL, "H5Screate");
+    npoints[2] = d1_dims1[0];
+    spaces[3] = H5Screate_simple(1, d1_dims2, NULL);
+    CHECK(spaces[3], FAIL, "H5Screate");
+    npoints[3] = d1_dims2[0];
+    spaces[4] = H5Screate_simple(1, d1_dims1, d1_dims2);
+    CHECK(spaces[4], FAIL, "H5Screate");
+    npoints[4] = d1_dims1[0];
+    spaces[5] = H5Screate_simple(1, d1_dims1, d1_dims3);
+    CHECK(spaces[5], FAIL, "H5Screate");
+    npoints[5] = d1_dims1[0];
+
+    spaces[6] = H5Screate_simple(2, d2_dims1, NULL);
+    CHECK(spaces[6], FAIL, "H5Screate");
+    npoints[6] = d2_dims1[0] * d2_dims1[1];
+    spaces[7] = H5Screate_simple(2, d2_dims2, NULL);
+    CHECK(spaces[7], FAIL, "H5Screate");
+    npoints[7] = d2_dims2[0] * d2_dims2[1];
+    spaces[8] = H5Screate_simple(2, d2_dims1, d2_dims2);
+    CHECK(spaces[8], FAIL, "H5Screate");
+    npoints[8] = d2_dims1[0] * d2_dims1[1];
+    spaces[9] = H5Screate_simple(2, d2_dims1, d2_dims3);
+    CHECK(spaces[9], FAIL, "H5Screate");
+    npoints[9] = d2_dims1[0] * d2_dims1[1];
+
+    spaces[10] = H5Screate_simple(3, d3_dims1, NULL);
+    CHECK(spaces[10], FAIL, "H5Screate");
+    npoints[10] = d3_dims1[0] * d3_dims1[1] * d3_dims1[2];
+    spaces[11] = H5Screate_simple(3, d3_dims2, NULL);
+    CHECK(spaces[11], FAIL, "H5Screate");
+    npoints[11] = d3_dims2[0] * d3_dims2[1] * d3_dims2[2];
+    spaces[12] = H5Screate_simple(3, d3_dims1, d3_dims2);
+    CHECK(spaces[12], FAIL, "H5Screate");
+    npoints[12] = d3_dims1[0] * d3_dims1[1] * d3_dims1[2];
+    spaces[13] = H5Screate_simple(3, d3_dims1, d3_dims3);
+    CHECK(spaces[13], FAIL, "H5Screate");
+    npoints[13] = d3_dims1[0] * d3_dims1[1] * d3_dims1[2];
+
+    tmp_space = H5Screate(H5S_NULL);
+    CHECK(tmp_space, FAIL, "H5Screate");
+
+    /* Copy between all dataspace combinations.  Note there are a few
+     * duplicates. */
+    for(i = 0; i < num_spaces; i++)
+        for(j = i; j < num_spaces; j++) {
+            /* Copy from i to j, unless the inner loop just restarted, in which
+             * case i and j are the same, so the second call to H5Sextent_copy()
+             * will test copying from i/j to i/j */
+            ret = H5Sextent_copy(tmp_space, spaces[j]);
+            CHECK(ret, FAIL, "H5Sextent_copy");
+
+            /* Verify that the extents are equal */
+            ext_equal = H5Sextent_equal(tmp_space, spaces[j]);
+            VERIFY(ext_equal, TRUE, "H5Sextent_equal");
+
+            /* Verify that the correct number of elements is selected */
+            npoints_ret = H5Sget_select_npoints(tmp_space);
+            VERIFY((hsize_t)npoints_ret, npoints[j], "H5Sget_select_npoints");
+
+            /* Copy from j to i */
+            ret = H5Sextent_copy(tmp_space, spaces[i]);
+            CHECK(ret, FAIL, "H5Sextent_copy");
+
+            /* Verify that the extents are equal */
+            ext_equal = H5Sextent_equal(tmp_space, spaces[i]);
+            VERIFY(ext_equal, TRUE, "H5Sextent_equal");
+
+            /* Verify that the correct number of elements is selected */
+            npoints_ret = H5Sget_select_npoints(tmp_space);
+            VERIFY((hsize_t)npoints_ret, npoints[i], "H5Sget_select_npoints");
+        } /* end for */
+
+    /* Close dataspaces */
+    for(i = 0; i < num_spaces; i++) {
+        ret = H5Sclose(spaces[i]);
+        CHECK(ret, FAIL, "H5Sclose");
+        spaces[i] = -1;
+    } /* end for */
+
+    ret = H5Sclose(tmp_space);
+    CHECK(ret, FAIL, "H5Sclose");
+} /* test_h5s_extent_copy() */
+
+/****************************************************************
+**
 **  test_h5s(): Main H5S (dataspace) testing routine.
 **
 ****************************************************************/
@@ -2235,6 +2354,7 @@ test_h5s(void)
     test_h5s_chunk();	        /* Exercise bug fix for chunked I/O */
 
     test_h5s_extent_equal();	/* Test extent comparison code */
+    test_h5s_extent_copy();     /* Test extent copy code */
 } /* test_h5s() */
 
 

diff --git a/test/tid.c b/test/tid.c
index 5889b95..cd8e64a 100644
--- a/test/tid.c
+++ b/test/tid.c
@@ -553,7 +553,7 @@ static herr_t fake_free(void *obj)
 static int test_id_wrap(void)
 {
     H5I_type_t testType;    /* ID class for testing */
-    hid_t *id_array=NULL;    /* Array of IDs allocated */
+    hid_t *id_array;    /* Array of IDs allocated */
     hid_t test_id;      /* Test ID */
     void *obj;          /* Object pointer returned for ID */
     unsigned u;         /* Local index variable */
@@ -660,10 +660,6 @@ static int test_id_wrap(void)
     return(0);
 
 out:
-    /* cleanup */
-    if (id_array)
-	HDfree(id_array);
-
     return(-1);
 }
 
diff --git a/test/tmisc.c b/test/tmisc.c
index fcb5eac..d606438 100644
--- a/test/tmisc.c
+++ b/test/tmisc.c
@@ -1865,9 +1865,21 @@ test_misc11(void)
     ret = H5Pset_sizes(fcpl, (size_t)MISC11_SIZEOF_OFF, (size_t)MISC11_SIZEOF_LEN);
     CHECK(ret, FAIL, "H5Pset_sizes");
 
+    /* This should fail as (32770*2) will exceed ^16 - 2 bytes for storing btree entries */
+    H5E_BEGIN_TRY {
+	ret=H5Pset_sym_k(fcpl, 32770, 0);
+    } H5E_END_TRY;
+    VERIFY(ret, FAIL, "H5Pset_sym_k");
+
     ret=H5Pset_sym_k(fcpl,MISC11_SYM_IK,MISC11_SYM_LK);
     CHECK(ret, FAIL, "H5Pset_sym_k");
 
+    /* This should fail as (32770*2) will exceed ^16 - 2 bytes for storing btree entries */
+    H5E_BEGIN_TRY {
+	ret=H5Pset_istore_k(fcpl, 32770);
+    } H5E_END_TRY;
+    VERIFY(ret, FAIL, "H5Pset_istore_k");
+
     ret=H5Pset_istore_k(fcpl,MISC11_ISTORE_IK);
     CHECK(ret, FAIL, "H5Pset_istore_k");
 
@@ -2447,17 +2459,17 @@ test_misc13(void)
 static void
 test_misc14(void)
 {
-    hid_t file_id;              /* File ID */
-    hid_t fapl;                 /* File access property list ID */
-    hid_t DataSpace;            /* Dataspace ID */
-    hid_t Dataset1;             /* Dataset ID #1 */
-    hid_t Dataset2;             /* Dataset ID #2 */
-    hid_t Dataset3;             /* Dataset ID #3 */
-    double data1 = 5.0;         /* Data to write for dataset #1 */
-    double data2 = 10.0;        /* Data to write for dataset #2 */
-    double data3 = 15.0;        /* Data to write for dataset #3 */
-    double rdata;               /* Data read in */
-    herr_t ret;                 /* Generic return value */
+    hid_t file_id;                  /* File ID */
+    hid_t fapl;                     /* File access property list ID */
+    hid_t DataSpace;                /* Dataspace ID */
+    hid_t Dataset1;                 /* Dataset ID #1 */
+    hid_t Dataset2;                 /* Dataset ID #2 */
+    hid_t Dataset3;                 /* Dataset ID #3 */
+    double data1 = 5.0F;            /* Data to write for dataset #1 */
+    double data2 = 10.0F;           /* Data to write for dataset #2 */
+    double data3 = 15.0F;           /* Data to write for dataset #3 */
+    double rdata;                   /* Data read in */
+    herr_t ret;                     /* Generic return value */
 
     /* Test creating two datasets and deleting the second */
 
@@ -4993,7 +5005,7 @@ test_misc28(void)
      * bytes). */
     fapl = H5Pcreate(H5P_FILE_ACCESS);
     CHECK(fapl, FAIL, "H5Pcreate");
-    ret = H5Pset_cache(fapl, MISC28_NSLOTS, MISC28_NSLOTS, MISC28_SIZE, 0.75);
+    ret = H5Pset_cache(fapl, MISC28_NSLOTS, MISC28_NSLOTS, MISC28_SIZE, 0.75F);
     CHECK(ret, FAIL, "H5Pset_cache");
 
     /* Create the dcpl and set the chunk size */
@@ -5348,6 +5360,73 @@ test_misc31(void)
 
 

 /****************************************************************
+ *
+ *  test_misc32(): Simple test of filter memory allocation
+ *                 functions.
+ *
+ ***************************************************************/
+static void
+test_misc32(void)
+{
+    void *buffer;
+    void *resized;
+    size_t size;
+
+    /* Output message about test being performed */
+    MESSAGE(5, ("Edge case test of filter memory allocation functions\n"));
+
+    /* Test that the filter memory allocation functions behave correctly
+     * at edge cases.
+     */
+
+    /* FREE */
+
+    /* Test freeing a NULL pointer.
+     * No real confirmation check here, but Valgrind will confirm no
+     * shenanigans.
+     */
+    buffer = NULL;
+    H5free_memory(buffer);
+
+    /* ALLOCATE */
+
+    /* Size zero returns NULL.
+     * Also checks that a size of zero and setting the buffer clear flag
+     * to TRUE can be used together.
+     *
+     * Note that we have asserts in the code, so only check when NDEBUG
+     * is defined.
+     */
+#ifdef NDEBUG
+    buffer = H5allocate_memory(0, FALSE);
+    CHECK_PTR_NULL(buffer, "H5allocate_memory"); /*BAD*/
+    buffer = H5allocate_memory(0, TRUE);
+    CHECK_PTR_NULL(buffer, "H5allocate_memory"); /*BAD*/
+#endif /* NDEBUG */
+
+    /* RESIZE */
+
+    /* Size zero returns NULL. Valgrind will confirm buffer is freed. */
+    size = 1024;
+    buffer = H5allocate_memory(size, TRUE);
+    resized = H5resize_memory(buffer, 0);
+    CHECK_PTR_NULL(resized, "H5resize_memory");
+
+    /* NULL input pointer returns new buffer */
+    resized = H5resize_memory(NULL, 1024);
+    CHECK_PTR(resized, "H5resize_memory");
+    H5free_memory(resized);
+
+    /* NULL input pointer and size zero returns NULL */
+#ifdef NDEBUG
+    resized = H5resize_memory(NULL, 0);
+    CHECK_PTR_NULL(resized, "H5resize_memory"); /*BAD*/
+#endif /* NDEBUG */
+    
+} /* end test_misc32() */
+
+

+/****************************************************************
 **
 **  test_misc(): Main misc. test routine.
 **
@@ -5393,6 +5472,7 @@ test_misc(void)
     test_misc29();      /* Test that speculative metadata reads are handled correctly */
     test_misc30();      /* Exercise local heap loading bug where free lists were getting dropped */
     test_misc31();      /* Test Reentering library through deprecated routines after H5close() */
+    test_misc32();      /* Test filter memory allocation functions */
 
 } /* test_misc() */
 
diff --git a/test/trefer.c b/test/trefer.c
index bd105a3..6223029 100644
--- a/test/trefer.c
+++ b/test/trefer.c
@@ -500,6 +500,12 @@ test_reference_region(void)
     H5O_type_t  obj_type;       /* Type of object */
     int        i, j;           /* counting variables */
     herr_t	ret;		/* Generic return value		*/
+    haddr_t     addr = HADDR_UNDEF; /* test for undefined reference */
+    hid_t dset_NA;   /* Dataset id for undefined reference */
+    hid_t space_NA; /* Dataspace id for undefined reference */
+    hsize_t             dims_NA[1] = {1};  /* Dims array for undefined reference */
+    hdset_reg_ref_t     wdata_NA[1],       /* Write buffer */
+                        rdata_NA[1];       /* Read buffer */
 
     /* Output message about test being performed */
     MESSAGE(5, ("Testing Dataset Region Reference Functions\n"));
@@ -586,6 +592,31 @@ test_reference_region(void)
     ret = H5Dwrite(dset1, H5T_STD_REF_DSETREG, H5S_ALL, H5S_ALL, H5P_DEFAULT, wbuf);
     CHECK(ret, FAIL, "H5Dwrite");
 
+    /*
+     * Store a dataset region reference which will not get written to disk
+     */
+
+    /* Create reference to an element in dset1 */
+    ret = H5Sselect_elements(sid2, H5S_SELECT_SET, (size_t)1, (const hsize_t *)coord1);
+    CHECK(ret, FAIL, "H5Sselect_elements");
+    ret = H5Rcreate(&wdata_NA[0], fid1, "/Dataset1", H5R_DATASET_REGION, sid2);
+    CHECK(ret, FAIL, "H5Rcreate");
+
+    /* Create the dataspace of the region references */
+    space_NA = H5Screate_simple(1, dims_NA, NULL);
+    CHECK(space_NA, FAIL, "H5Screate_simple");
+
+    /* Create the dataset and write the region references to it */
+    dset_NA = H5Dcreate2(fid1, "DS_NA", H5T_STD_REF_DSETREG, space_NA, H5P_DEFAULT,
+                H5P_DEFAULT, H5P_DEFAULT);
+    CHECK(dset_NA, FAIL, "H5Dcreate");
+
+    /* Close and release resources for undefined region reference tests */
+    ret = H5Dclose(dset_NA);
+    CHECK(ret, FAIL, "H5Dclose");
+    ret = H5Sclose(space_NA); 
+    CHECK(ret, FAIL, "H5Sclose");
+
     /* Close disk dataspace */
     ret = H5Sclose(sid1);
     CHECK(ret, FAIL, "H5Sclose");
@@ -606,6 +637,41 @@ test_reference_region(void)
     fid1 = H5Fopen(FILE2, H5F_ACC_RDWR, H5P_DEFAULT);
     CHECK(fid1, FAIL, "H5Fopen");
 
+    /* 
+     * Start the test of an undefined reference 
+     */
+    
+    /* Open the dataset of the undefined references */
+    dset_NA = H5Dopen2(fid1, "DS_NA", H5P_DEFAULT);
+    CHECK(dset_NA, FAIL, "H5Dopen2");
+
+    /* Read the data */
+    ret = H5Dread(dset_NA, H5T_STD_REF_DSETREG, H5S_ALL, H5S_ALL, H5P_DEFAULT, rdata_NA);
+    CHECK(ret, FAIL, "H5Dread");
+    
+    /*
+     * Dereference an undefined reference (should fail)
+     */
+    H5E_BEGIN_TRY {
+      dset2 = H5Rdereference(dset_NA, H5R_DATASET_REGION, &rdata_NA[0]);
+    } H5E_END_TRY;                                  
+    VERIFY(dset2, FAIL, "H5Rdereference"); 
+
+    /* Close and release resources. */
+    ret = H5Dclose(dset_NA);
+    CHECK(ret, FAIL, "H5Dclose");
+
+    /* This close should fail since H5Rdereference never created 
+     * the id of the referenced object. */
+    H5E_BEGIN_TRY {
+      ret = H5Dclose(dset2);
+    } H5E_END_TRY;                                  
+    VERIFY(ret, FAIL, "H5Dclose"); 
+
+    /* 
+     * End the test of an undefined reference 
+     */
+
     /* Open the dataset */
     dset1 = H5Dopen2(fid1, "/Dataset1", H5P_DEFAULT);
     CHECK(dset1, FAIL, "H5Dopen2");
@@ -614,6 +680,10 @@ test_reference_region(void)
     ret = H5Dread(dset1, H5T_STD_REF_DSETREG, H5S_ALL, H5S_ALL, H5P_DEFAULT, rbuf);
     CHECK(ret, FAIL, "H5Dread");
 
+    /* Try to read an unaddressed dataset */
+    dset2 = H5Rdereference(dset1, H5R_DATASET_REGION, &addr);
+    VERIFY(dset2, FAIL, "H5Rdereference haddr_undef");
+
     /* Try to open objects */
     dset2 = H5Rdereference(dset1, H5R_DATASET_REGION, &rbuf[0]);
     CHECK(dset2, FAIL, "H5Rdereference");
@@ -1031,6 +1101,7 @@ test_reference_obj_deleted(void)
     hid_t		sid1;       /* Dataspace ID			*/
     hobj_ref_t  oref;       /* Object Reference to test */
     H5O_type_t          obj_type;       /* Object type */
+    haddr_t addr = HADDR_UNDEF; /* test for undefined reference */                
     herr_t		ret;		/* Generic return value		*/
 
     /* Create file */
@@ -1088,6 +1159,10 @@ test_reference_obj_deleted(void)
     dataset = H5Dopen2(fid1, "/Dataset2", H5P_DEFAULT);
     CHECK(ret, FAIL, "H5Dopen2");
 
+    /* Open undefined reference */
+    dset2 = H5Rdereference(dataset, H5R_OBJECT, &addr);
+    VERIFY(dset2, FAIL, "H5Rdereference");
+
     /* Read selection from disk */
     HDmemset(&oref, 0, sizeof(hobj_ref_t));
     ret = H5Dread(dataset, H5T_STD_REF_OBJ, H5S_ALL, H5S_ALL, H5P_DEFAULT, &oref);
diff --git a/test/tsohm.c b/test/tsohm.c
index a0f3eec..11fb8ab 100644
--- a/test/tsohm.c
+++ b/test/tsohm.c
@@ -57,7 +57,7 @@ const unsigned test_minsizes[H5O_SHMESG_MAX_NINDEXES] = {0, 2, 40, 100, 3, 1000}
 #define NAME_BUF_SIZE 512
 
 /* How much overhead counts as "not much" when converting B-trees, etc. */
-#define OVERHEAD_ALLOWED 1.15
+#define OVERHEAD_ALLOWED 1.15F
 
 #define NUM_DATASETS 10
 #define NUM_ATTRIBUTES 100
@@ -600,7 +600,7 @@ size1_helper(hid_t file, const char* filename, hid_t fapl_id, int test_file_clos
     wdata.i6 = 66;
     wdata.i7 = 77;
     wdata.i8 = 88;
-    wdata.f1 = 0.0;
+    wdata.f1 = 0.0F;
 
     /* Intialize rdata */
     HDmemset(&rdata, 0, sizeof(rdata));
diff --git a/test/ttsafe_cancel.c b/test/ttsafe_cancel.c
index 56f431e..d8ed462 100644
--- a/test/ttsafe_cancel.c
+++ b/test/ttsafe_cancel.c
@@ -123,7 +123,7 @@ void tts_cancel(void)
 void *tts_cancel_thread(void UNUSED *arg)
 {
     int datavalue;
-    int *buffer;
+    int buffer;
     hid_t dataspace, datatype, dataset;
     hsize_t dimsf[1];	/* dataset dimensions */
     cancel_cleanup_t *cleanup_structure;
@@ -156,10 +156,9 @@ void *tts_cancel_thread(void UNUSED *arg)
     ret=H5Dwrite(dataset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, &datavalue);
     assert(ret>=0);
 
-    buffer = HDmalloc(sizeof(int));
-    ret=H5Dread(dataset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, buffer);
+    ret=H5Dread(dataset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, &buffer);
     assert(ret>=0);
-    ret=H5Diterate(buffer, H5T_NATIVE_INT, dataspace, tts_cancel_callback, &dataset);
+    ret=H5Diterate(&buffer, H5T_NATIVE_INT, dataspace, tts_cancel_callback, &dataset);
     assert(ret>=0);
 
     sleep(3);
diff --git a/test/tunicode.c b/test/tunicode.c
index 856c2cb..2804fe6 100644
--- a/test/tunicode.c
+++ b/test/tunicode.c
@@ -39,8 +39,8 @@
 
 #define RANK 1
 #define COMP_INT_VAL 7
-#define COMP_FLOAT_VAL -42.0
-#define COMP_DOUBLE_VAL 42.0
+#define COMP_FLOAT_VAL -42.0F
+#define COMP_DOUBLE_VAL 42.0F
 
 /* Test function prototypes */
 void test_fl_string(hid_t fid, const char *string);
diff --git a/test/tvltypes.c b/test/tvltypes.c
index 516974e..2928e57 100644
--- a/test/tvltypes.c
+++ b/test/tvltypes.c
@@ -731,7 +731,7 @@ test_vltypes_vlen_compound(void)
         wdata[i].len=i+1;
         for(j=0; j<(i+1); j++) {
             ((s1 *)wdata[i].p)[j].i=i*10+j;
-            ((s1 *)wdata[i].p)[j].f=(float)((i*20+j)/3.0);
+            ((s1 *)wdata[i].p)[j].f=(float)((i*20+j)/3.0F);
           } /* end for */
     } /* end for */
 
@@ -877,7 +877,7 @@ rewrite_vltypes_vlen_compound(void)
         wdata[i].len = i + increment;
         for(j = 0; j < (i + increment); j++) {
             ((s1 *)wdata[i].p)[j].i = i * 40 + j;
-            ((s1 *)wdata[i].p)[j].f = (float)((i * 60 + j) / 3.0);
+            ((s1 *)wdata[i].p)[j].f = (float)((i * 60 + j) / 3.0F);
           } /* end for */
     } /* end for */
 
@@ -1018,7 +1018,7 @@ test_vltypes_compound_vlen_vlen(void)
     /* Allocate and initialize VL data to write */
     for(i=0; i<SPACE3_DIM1; i++) {
         wdata[i].i=i*10;
-        wdata[i].f=(float)((i*20)/3.0);
+        wdata[i].f=(float)((i*20)/3.0F);
         wdata[i].v.p=HDmalloc((i+L1_INCM)*sizeof(hvl_t));
         wdata[i].v.len=i+L1_INCM;
         for(t1=(wdata[i].v).p,j=0; j<(i+L1_INCM); j++, t1++) {
@@ -1479,7 +1479,7 @@ test_vltypes_compound_vlen_atomic(void)
     /* Allocate and initialize VL data to write */
     for(i=0; i<SPACE1_DIM1; i++) {
         wdata[i].i=i*10;
-        wdata[i].f=(float)((i*20)/3.0);
+        wdata[i].f=(float)((i*20)/3.0F);
         wdata[i].v.p=HDmalloc((i+1)*sizeof(unsigned int));
         wdata[i].v.len=i+1;
         for(j=0; j<(i+1); j++)
@@ -1595,7 +1595,7 @@ test_vltypes_compound_vlen_atomic(void)
 
     /* Check data read in */
     for(i = 0; i < SPACE1_DIM1; i++)
-        if(rdata[i].i != 0 || !FLT_ABS_EQUAL(rdata[i].f, 0.0) || rdata[i].v.len != 0 || rdata[i].v.p != NULL)
+        if(rdata[i].i != 0 || !FLT_ABS_EQUAL(rdata[i].f, 0.0F) || rdata[i].v.len != 0 || rdata[i].v.p != NULL)
             TestErrPrintf("VL doesn't match!, rdata[%d].i=%d, rdata[%d].f=%f, rdata[%d].v.len=%u, rdata[%d].v.p=%p\n",(int)i,rdata[i].i,(int)i,rdata[i].f,(int)i,(unsigned)rdata[i].v.len,(int)i,rdata[i].v.p);
 
     /* Write dataset to disk */
@@ -1697,7 +1697,7 @@ rewrite_vltypes_compound_vlen_atomic(void)
     /* Allocate and initialize VL data to write */
     for(i = 0; i < SPACE1_DIM1; i++) {
         wdata[i].i = i * 40;
-        wdata[i].f = (float)((i * 50) / 3.0);
+        wdata[i].f = (float)((i * 50) / 3.0F);
         wdata[i].v.p = HDmalloc((i + increment) * sizeof(unsigned int));
         wdata[i].v.len = i + increment;
         for(j = 0; j < (i + increment); j++)
@@ -2430,8 +2430,8 @@ test_vltypes_fill_value(void)
     hsize_t small_dims[] = {SPACE4_DIM_SMALL};
     hsize_t large_dims[] = {SPACE4_DIM_LARGE};
     size_t dset_elmts;                  /* Number of elements in a particular dataset */
-    const dtype1_struct fill1 = {1, 2, "foobar", "", NULL, "\0", "dead", 3, 4.0, 100.0, 1.0, "liquid", "meter"};
-    const dtype1_struct wdata = {3, 4, "", NULL, "\0", "foo", "two", 6, 8.0, 200.0, 2.0, "solid", "yard"};
+    const dtype1_struct fill1 = {1, 2, "foobar", "", NULL, "\0", "dead", 3, 4.0F, 100.0F, 1.0F, "liquid", "meter"};
+    const dtype1_struct wdata = {3, 4, "", NULL, "\0", "foo", "two", 6, 8.0F, 200.0F, 2.0F, "solid", "yard"};
     dtype1_struct *rbuf = NULL;         /* Buffer for reading data */
     size_t mem_used = 0;                /* Memory used during allocation */
     H5D_layout_t layout;                /* Dataset storage layout */
diff --git a/testpar/CMakeLists.txt b/testpar/CMakeLists.txt
index 2a1ce8d..37b461b 100644
--- a/testpar/CMakeLists.txt
+++ b/testpar/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required (VERSION 2.8.11)
+cmake_minimum_required (VERSION 3.1.0)
 PROJECT (HDF5_TEST_PAR)
 
 #-----------------------------------------------------------------------------
@@ -28,14 +28,14 @@ set (testphdf5_SRCS
 #-- Adding test for testhdf5
 add_executable (testphdf5 ${testphdf5_SRCS})
 TARGET_NAMING (testphdf5 ${LIB_TYPE})
-TARGET_C_PROPERTIES (testphdf5 " " " ")
+TARGET_C_PROPERTIES (testphdf5 ${LIB_TYPE} " " " ")
 target_link_libraries (testphdf5 ${HDF5_TEST_LIB_TARGET} ${HDF5_LIB_TARGET} ${LINK_LIBS})
 set_target_properties (testphdf5 PROPERTIES FOLDER test/par)
 
 MACRO (ADD_H5P_EXE file)
   add_executable (${file} ${HDF5_TEST_PAR_SOURCE_DIR}/${file}.c)
   TARGET_NAMING (${file} ${LIB_TYPE})
-  TARGET_C_PROPERTIES (${file} " " " ")
+  TARGET_C_PROPERTIES (${file} ${LIB_TYPE} " " " ")
   target_link_libraries (${file} ${HDF5_TEST_LIB_TARGET} ${HDF5_LIB_TARGET} ${LINK_LIBS})
   set_target_properties (${file} PROPERTIES FOLDER test/par)
 ENDMACRO (ADD_H5P_EXE file)
@@ -45,6 +45,8 @@ set (H5P_TESTS
     t_cache
     t_pflush1
     t_pflush2
+    t_pshutdown
+    t_prestart
     t_shapesame
 )
 
diff --git a/testpar/Makefile.am b/testpar/Makefile.am
index 8619e97..c79a609 100644
--- a/testpar/Makefile.am
+++ b/testpar/Makefile.am
@@ -25,7 +25,7 @@ AM_CPPFLAGS+=-I$(top_srcdir)/src -I$(top_srcdir)/test
 
 # Test programs.  These are our main targets.
 #
-TEST_PROG_PARA=t_mpi testphdf5 t_cache t_pflush1 t_pflush2 t_shapesame
+TEST_PROG_PARA=t_mpi testphdf5 t_cache t_pflush1 t_pflush2 t_pshutdown t_prestart t_shapesame
 
 check_PROGRAMS = $(TEST_PROG_PARA)
 
@@ -38,7 +38,8 @@ LDADD = $(LIBH5TEST) $(LIBHDF5)
 # Temporary files
 # MPItest.h5 is from t_mpi
 # Para*.h5 are from testphdf
+# shutdown.h5 is from t_pshutdown
 # go is used for debugging. See testphdf5.c.
-CHECK_CLEANFILES+=MPItest.h5 Para*.h5 CacheTestDummy.h5 go
+CHECK_CLEANFILES+=MPItest.h5 Para*.h5 CacheTestDummy.h5 shutdown.h5 go
 
 include $(top_srcdir)/config/conclude.am
diff --git a/testpar/Makefile.in b/testpar/Makefile.in
index dc5b6b1..5b43546 100644
--- a/testpar/Makefile.in
+++ b/testpar/Makefile.in
@@ -103,7 +103,8 @@ check_PROGRAMS = $(am__EXEEXT_1)
 TESTS =
 subdir = testpar
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \
+	$(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs
@@ -111,7 +112,8 @@ CONFIG_HEADER = $(top_builddir)/src/H5config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
 am__EXEEXT_1 = t_mpi$(EXEEXT) testphdf5$(EXEEXT) t_cache$(EXEEXT) \
-	t_pflush1$(EXEEXT) t_pflush2$(EXEEXT) t_shapesame$(EXEEXT)
+	t_pflush1$(EXEEXT) t_pflush2$(EXEEXT) t_pshutdown$(EXEEXT) \
+	t_prestart$(EXEEXT) t_shapesame$(EXEEXT)
 t_cache_SOURCES = t_cache.c
 t_cache_OBJECTS = t_cache.$(OBJEXT)
 t_cache_LDADD = $(LDADD)
@@ -132,6 +134,14 @@ t_pflush2_SOURCES = t_pflush2.c
 t_pflush2_OBJECTS = t_pflush2.$(OBJEXT)
 t_pflush2_LDADD = $(LDADD)
 t_pflush2_DEPENDENCIES = $(LIBH5TEST) $(LIBHDF5)
+t_prestart_SOURCES = t_prestart.c
+t_prestart_OBJECTS = t_prestart.$(OBJEXT)
+t_prestart_LDADD = $(LDADD)
+t_prestart_DEPENDENCIES = $(LIBH5TEST) $(LIBHDF5)
+t_pshutdown_SOURCES = t_pshutdown.c
+t_pshutdown_OBJECTS = t_pshutdown.$(OBJEXT)
+t_pshutdown_LDADD = $(LDADD)
+t_pshutdown_DEPENDENCIES = $(LIBH5TEST) $(LIBHDF5)
 t_shapesame_SOURCES = t_shapesame.c
 t_shapesame_OBJECTS = t_shapesame.$(OBJEXT)
 t_shapesame_LDADD = $(LDADD)
@@ -178,10 +188,10 @@ AM_V_CCLD = $(am__v_CCLD_ at AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_ at AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD    " $@;
 am__v_CCLD_1 = 
-SOURCES = t_cache.c t_mpi.c t_pflush1.c t_pflush2.c t_shapesame.c \
-	$(testphdf5_SOURCES)
-DIST_SOURCES = t_cache.c t_mpi.c t_pflush1.c t_pflush2.c t_shapesame.c \
-	$(testphdf5_SOURCES)
+SOURCES = t_cache.c t_mpi.c t_pflush1.c t_pflush2.c t_prestart.c \
+	t_pshutdown.c t_shapesame.c $(testphdf5_SOURCES)
+DIST_SOURCES = t_cache.c t_mpi.c t_pflush1.c t_pflush2.c t_prestart.c \
+	t_pshutdown.c t_shapesame.c $(testphdf5_SOURCES)
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -425,7 +435,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@
 AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@
 AM_MAKEFLAGS = @AM_MAKEFLAGS@
 AR = @AR@
-AS = @AS@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -457,7 +466,6 @@ DIRECT_VFD = @DIRECT_VFD@
 DLLTOOL = @DLLTOOL@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
-DYNAMIC_DIRS = @DYNAMIC_DIRS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -476,17 +484,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@
 FCLIBS = @FCLIBS@
 FC_VERSION = @FC_VERSION@
 FGREP = @FGREP@
-FILTERS = @FILTERS@
 FSEARCH_DIRS = @FSEARCH_DIRS@
 GREP = @GREP@
 H5_CFLAGS = @H5_CFLAGS@
 H5_CPPFLAGS = @H5_CPPFLAGS@
 H5_CXXFLAGS = @H5_CXXFLAGS@
-H5_CXX_SHARED = @H5_CXX_SHARED@
 H5_FCFLAGS = @H5_FCFLAGS@
 H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@
 H5_LDFLAGS = @H5_LDFLAGS@
-H5_LONE_COLON = @H5_LONE_COLON@
 H5_VERSION = @H5_VERSION@
 HADDR_T = @HADDR_T@
 HAVE_DMALLOC = @HAVE_DMALLOC@
@@ -509,7 +514,6 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INSTRUMENT = @INSTRUMENT@
 INSTRUMENT_LIBRARY = @INSTRUMENT_LIBRARY@
-LARGEFILE = @LARGEFILE@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
@@ -550,7 +554,6 @@ R_INTEGER = @R_INTEGER@
 R_LARGE = @R_LARGE@
 SEARCH = @SEARCH@
 SED = @SED@
-SETX = @SETX@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIZE_T = @SIZE_T@
@@ -565,10 +568,6 @@ TR = @TR@
 TRACE_API = @TRACE_API@
 UNAME_INFO = @UNAME_INFO@
 USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@
-USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@
-USE_FILTER_NBIT = @USE_FILTER_NBIT@
-USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@
-USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@
 USE_FILTER_SZIP = @USE_FILTER_SZIP@
 USINGMEMCHECKER = @USINGMEMCHECKER@
 VERSION = @VERSION@
@@ -682,18 +681,19 @@ TRACE = perl $(top_srcdir)/bin/trace
 
 # .chkexe files are used to mark tests that have run successfully.
 # .chklog files are output from those tests.
-# *.clog are from the MPE option.
+# *.clog and *.clog2 are from the MPE option.
 
 # Temporary files
 # MPItest.h5 is from t_mpi
 # Para*.h5 are from testphdf
+# shutdown.h5 is from t_pshutdown
 # go is used for debugging. See testphdf5.c.
-CHECK_CLEANFILES = *.chkexe *.chklog *.clog MPItest.h5 Para*.h5 \
-	CacheTestDummy.h5 go
+CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 MPItest.h5 \
+	Para*.h5 CacheTestDummy.h5 shutdown.h5 go
 
 # Test programs.  These are our main targets.
 #
-TEST_PROG_PARA = t_mpi testphdf5 t_cache t_pflush1 t_pflush2 t_shapesame
+TEST_PROG_PARA = t_mpi testphdf5 t_cache t_pflush1 t_pflush2 t_pshutdown t_prestart t_shapesame
 testphdf5_SOURCES = testphdf5.c t_dset.c t_file.c t_file_image.c t_mdset.c \
 	t_ph5basic.c t_coll_chunk.c t_span_tree.c t_chunk_alloc.c t_filter_read.c
 
@@ -781,6 +781,14 @@ t_pflush2$(EXEEXT): $(t_pflush2_OBJECTS) $(t_pflush2_DEPENDENCIES) $(EXTRA_t_pfl
 	@rm -f t_pflush2$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(t_pflush2_OBJECTS) $(t_pflush2_LDADD) $(LIBS)
 
+t_prestart$(EXEEXT): $(t_prestart_OBJECTS) $(t_prestart_DEPENDENCIES) $(EXTRA_t_prestart_DEPENDENCIES) 
+	@rm -f t_prestart$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(t_prestart_OBJECTS) $(t_prestart_LDADD) $(LIBS)
+
+t_pshutdown$(EXEEXT): $(t_pshutdown_OBJECTS) $(t_pshutdown_DEPENDENCIES) $(EXTRA_t_pshutdown_DEPENDENCIES) 
+	@rm -f t_pshutdown$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(t_pshutdown_OBJECTS) $(t_pshutdown_LDADD) $(LIBS)
+
 t_shapesame$(EXEEXT): $(t_shapesame_OBJECTS) $(t_shapesame_DEPENDENCIES) $(EXTRA_t_shapesame_DEPENDENCIES) 
 	@rm -f t_shapesame$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(t_shapesame_OBJECTS) $(t_shapesame_LDADD) $(LIBS)
@@ -807,6 +815,8 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/t_pflush1.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/t_pflush2.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/t_ph5basic.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/t_prestart.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/t_pshutdown.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/t_shapesame.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/t_span_tree.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/testphdf5.Po at am__quote@
diff --git a/testpar/t_cache.c b/testpar/t_cache.c
index 85315ce..290cd3f 100644
--- a/testpar/t_cache.c
+++ b/testpar/t_cache.c
@@ -4242,7 +4242,6 @@ setup_rand(void)
     unsigned predefined_seeds[3] = {33402, 33505, 33422};
     unsigned seed;
     struct timeval tv;
-    struct timezone tz;
 
     if ( ( use_predefined_seeds ) &&
          ( world_mpi_size == num_predefined_seeds ) ) {
@@ -4258,7 +4257,7 @@ setup_rand(void)
 
     } else {
 
-        if ( HDgettimeofday(&tv, &tz) != 0 ) {
+        if ( HDgettimeofday(&tv, NULL) != 0 ) {
 
             nerrors++;
             if ( verbose ) {
diff --git a/testpar/t_chunk_alloc.c b/testpar/t_chunk_alloc.c
index 1ed21a2..c0eab29 100644
--- a/testpar/t_chunk_alloc.c
+++ b/testpar/t_chunk_alloc.c
@@ -95,36 +95,36 @@ create_chunked_dataset(const char *filename, int chunk_factor, write_type write_
     MPI_Comm_rank(MPI_COMM_WORLD,&mpi_rank);
 
     /* Only MAINPROCESS should create the file.  Others just wait. */
-    if (MAINPROCESS){
+    if (MAINPROCESS) {
         nchunks=chunk_factor*mpi_size;
-  dims[0]=nchunks*CHUNK_SIZE;
-  /* Create the data space with unlimited dimensions. */
-  dataspace = H5Screate_simple (1, dims, maxdims);
-  VRFY((dataspace >= 0), "");
+        dims[0]=nchunks*CHUNK_SIZE;
+        /* Create the data space with unlimited dimensions. */
+        dataspace = H5Screate_simple (1, dims, maxdims);
+        VRFY((dataspace >= 0), "");
 
-  memspace = H5Screate_simple(1, chunk_dims, NULL);
-  VRFY((memspace >= 0), "");
+        memspace = H5Screate_simple(1, chunk_dims, NULL);
+        VRFY((memspace >= 0), "");
 
-  /* Create a new file. If file exists its contents will be overwritten. */
-  file_id = H5Fcreate(h5_rmprefix(filename), H5F_ACC_TRUNC, H5P_DEFAULT,
-        H5P_DEFAULT);
-  VRFY((file_id >= 0), "H5Fcreate");
+	/* Create a new file. If file exists its contents will be overwritten. */
+	file_id = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT,
+                            H5P_DEFAULT);
+	VRFY((file_id >= 0), "H5Fcreate");
 
-  /* Modify dataset creation properties, i.e. enable chunking  */
-  cparms = H5Pcreate(H5P_DATASET_CREATE);
-  VRFY((cparms >= 0), "");
+        /* Modify dataset creation properties, i.e. enable chunking  */
+        cparms = H5Pcreate(H5P_DATASET_CREATE);
+        VRFY((cparms >= 0), "");
 
-  hrc = H5Pset_alloc_time(cparms, H5D_ALLOC_TIME_EARLY);
-  VRFY((hrc >= 0), "");
+        hrc = H5Pset_alloc_time(cparms, H5D_ALLOC_TIME_EARLY);
+        VRFY((hrc >= 0), "");
 
-  hrc = H5Pset_chunk(cparms, 1, chunk_dims);
-  VRFY((hrc >= 0), "");
+        hrc = H5Pset_chunk(cparms, 1, chunk_dims);
+        VRFY((hrc >= 0), "");
 
-  /* Create a new dataset within the file using cparms creation properties. */
-  dataset = H5Dcreate2(file_id, DSET_NAME, H5T_NATIVE_UCHAR, dataspace, H5P_DEFAULT, cparms, H5P_DEFAULT);
-  VRFY((dataset >= 0), "");
+        /* Create a new dataset within the file using cparms creation properties. */
+        dataset = H5Dcreate2(file_id, DSET_NAME, H5T_NATIVE_UCHAR, dataspace, H5P_DEFAULT, cparms, H5P_DEFAULT);
+        VRFY((dataset >= 0), "");
 
-  if(write_pattern == sec_last) {
+        if(write_pattern == sec_last) {
             HDmemset(buffer, 100, CHUNK_SIZE);
 
             count[0] = 1;
@@ -133,35 +133,35 @@ create_chunked_dataset(const char *filename, int chunk_factor, write_type write_
             offset[0] = (nchunks-2)*chunk_dims[0];
 
             hrc = H5Sselect_hyperslab(dataspace, H5S_SELECT_SET, offset, stride, count, block);
-                VRFY((hrc >= 0), "");
+            VRFY((hrc >= 0), "");
 
             /* Write sec_last chunk */
             hrc = H5Dwrite(dataset, H5T_NATIVE_UCHAR, memspace, dataspace, H5P_DEFAULT, buffer);
             VRFY((hrc >= 0), "H5Dwrite");
         } /* end if */
 
-  /* Close resources */
-  hrc = H5Dclose (dataset);
-  VRFY((hrc >= 0), "");
-  dataset = -1;
+        /* Close resources */
+        hrc = H5Dclose (dataset);
+        VRFY((hrc >= 0), "");
+        dataset = -1;
 
-  hrc = H5Sclose (dataspace);
-  VRFY((hrc >= 0), "");
+        hrc = H5Sclose (dataspace);
+        VRFY((hrc >= 0), "");
 
-  hrc = H5Sclose (memspace);
-  VRFY((hrc >= 0), "");
+        hrc = H5Sclose (memspace);
+        VRFY((hrc >= 0), "");
 
-  hrc = H5Pclose (cparms);
-  VRFY((hrc >= 0), "");
+        hrc = H5Pclose (cparms);
+        VRFY((hrc >= 0), "");
 
-  hrc = H5Fclose (file_id);
-  VRFY((hrc >= 0), "");
-  file_id = -1;
+        hrc = H5Fclose (file_id);
+        VRFY((hrc >= 0), "");
+        file_id = -1;
 
-  /* verify file size */
-  filesize = get_filesize(filename);
-  est_filesize = nchunks * CHUNK_SIZE * sizeof(unsigned char);
-  VRFY((filesize >= est_filesize), "file size check");
+        /* verify file size */
+        filesize = get_filesize(filename);
+        est_filesize = nchunks * CHUNK_SIZE * sizeof(unsigned char);
+        VRFY((filesize >= est_filesize), "file size check");
 
     }
 
diff --git a/testpar/t_dset.c b/testpar/t_dset.c
index 2bc3b09..ae022fb 100644
--- a/testpar/t_dset.c
+++ b/testpar/t_dset.c
@@ -2502,7 +2502,6 @@ extend_readAll(void)
  * Example of using the parallel HDF5 library to read a compressed
  * dataset in an HDF5 file with collective parallel access support.
  */
-
 #ifdef H5_HAVE_FILTER_DEFLATE
 void
 compress_readAll(void)
@@ -3451,7 +3450,6 @@ actual_io_mode_tests(void) {
 #define DSET_NOCOLCAUSE "nocolcause"
 #define NELM          2
 #define FILE_EXTERNAL "nocolcause_extern.data"
-#undef H5_HAVE_FILTER_FLETCHER32
 static void 
 test_no_collective_cause_mode(int selection_mode) 
 {
@@ -3487,9 +3485,9 @@ test_no_collective_cause_mode(int selection_mode)
     hid_t       file_space = -1;
     hsize_t     chunk_dims[RANK];
     herr_t      ret;
-#ifdef H5_HAVE_FILTER_FLETCHER32            
+#ifdef LATER /* fletcher32 */
     H5Z_filter_t filter_info;
-#endif    
+#endif /* LATER */
     /* set to global value as default */
     int l_facc_type = facc_type;   
     char message[256];
@@ -3521,7 +3519,7 @@ test_no_collective_cause_mode(int selection_mode)
         is_chunked = 0;
     }
 
-#ifdef H5_HAVE_FILTER_FLETCHER32
+#ifdef LATER /* fletcher32 */
     if (selection_mode & TEST_FILTERS) {
         ret = H5Zfilter_avail(H5Z_FILTER_FLETCHER32);
         VRFY ((ret >=0 ), "Fletcher32 filter is available.\n");
@@ -3532,7 +3530,7 @@ test_no_collective_cause_mode(int selection_mode)
         ret = H5Pset_fletcher32(dcpl);
         VRFY((ret >= 0),"set filter (flecher32) succeeded");
     }
-#endif /* H5_HAVE_FILTER_FLETCHER32 */
+#endif /* LATER */
 
     if (selection_mode & TEST_NOT_SIMPLE_OR_SCALAR_DATASPACES) {
         sid = H5Screate(H5S_NULL);
@@ -3540,9 +3538,16 @@ test_no_collective_cause_mode(int selection_mode)
         is_chunked = 0;
     }
     else {
-        /* Create the basic Space */    
-        dims[0] = dim0;
-        dims[1] = dim1;
+        /* Create the basic Space */
+        /* if this is a compact dataset, create a small dataspace that does not exceed 64K */
+        if (selection_mode & TEST_NOT_CONTIGUOUS_OR_CHUNKED_DATASET_COMPACT) {
+            dims[0] = ROW_FACTOR * 6;
+            dims[1] = COL_FACTOR * 6;
+        }
+        else {
+            dims[0] = dim0;
+            dims[1] = dim1;
+        }
         sid = H5Screate_simple (RANK, dims, NULL);
         VRFY((sid >= 0), "H5Screate_simple succeeded");
     }
@@ -3606,13 +3611,13 @@ test_no_collective_cause_mode(int selection_mode)
         no_collective_cause_global_expected |= H5D_MPIO_NOT_CONTIGUOUS_OR_CHUNKED_DATASET;
     }
 
-#ifdef H5_HAVE_FILTER_FLETCHER32            
+#ifdef LATER /* fletcher32 */
     if (selection_mode & TEST_FILTERS) {
         test_name = "Broken Collective I/O - Filter is required";
         no_collective_cause_local_expected |= H5D_MPIO_FILTERS;
         no_collective_cause_global_expected |= H5D_MPIO_FILTERS;
     }
-#endif /* H5_HAVE_FILTER_FLETCHER32 */
+#endif /* LATER */
 
     if (selection_mode & TEST_COLLECTIVE) {
         test_name = "Broken Collective I/O - Not Broken";
@@ -3645,7 +3650,7 @@ test_no_collective_cause_mode(int selection_mode)
     }
 
     /* Get the number of elements in the selection */
-    length = dim0 * dim1;
+    length = dims[0] * dims[1];
 
     /* Allocate and initialize the buffer */
     buffer = (int *)HDmalloc(sizeof(int) * length);
@@ -3801,9 +3806,9 @@ test_no_collective_cause_mode_filter(int selection_mode)
     hid_t       file_space = -1;
     hsize_t     chunk_dims[RANK];
     herr_t      ret;
-#ifdef H5_HAVE_FILTER_FLETCHER32            
+#ifdef LATER /* fletcher32 */
     H5Z_filter_t filter_info;
-#endif    
+#endif /* LATER */
     char message[256];
 
     /* Set up MPI parameters */
@@ -3822,7 +3827,7 @@ test_no_collective_cause_mode_filter(int selection_mode)
     VRFY((dcpl >= 0), "dataset creation plist created successfully");
 
     if (selection_mode == TEST_FILTERS_READ )  {
-#ifdef H5_HAVE_FILTER_FLETCHER32            
+#ifdef LATER /* fletcher32 */
             ret = H5Zfilter_avail(H5Z_FILTER_FLETCHER32);
             VRFY ((ret >=0 ), "Fletcher32 filter is available.\n");
 
@@ -3831,7 +3836,7 @@ test_no_collective_cause_mode_filter(int selection_mode)
 
             ret = H5Pset_fletcher32(dcpl);
             VRFY((ret >= 0),"set filter (flecher32) succeeded");
-#endif /* H5_HAVE_FILTER_FLETCHER32 */
+#endif /* LATER */
     }
     else  {
         VRFY(0, "Unexpected mode, only test for TEST_FILTERS_READ.");
@@ -3869,12 +3874,12 @@ test_no_collective_cause_mode_filter(int selection_mode)
             dcpl, H5P_DEFAULT);
     VRFY((dataset >= 0), "H5Dcreate2() dataset succeeded");
 
-#ifdef H5_HAVE_FILTER_FLETCHER32            
+#ifdef LATER /* fletcher32 */
     /* Set expected cause */
     test_name = "Broken Collective I/O - Filter is required";
     no_collective_cause_local_expected = H5D_MPIO_FILTERS;
     no_collective_cause_global_expected = H5D_MPIO_FILTERS;
-#endif
+#endif /* LATER */
 
     /* Get the file dataspace */
     file_space = H5Dget_space(dataset);
@@ -4003,13 +4008,13 @@ no_collective_cause_tests(void)
     test_no_collective_cause_mode (TEST_NOT_SIMPLE_OR_SCALAR_DATASPACES);
     test_no_collective_cause_mode (TEST_NOT_CONTIGUOUS_OR_CHUNKED_DATASET_COMPACT);
     test_no_collective_cause_mode (TEST_NOT_CONTIGUOUS_OR_CHUNKED_DATASET_EXTERNAL);
-#ifdef H5_HAVE_FILTER_FLETCHER32            
+#ifdef LATER /* fletcher32 */
    /* TODO: use this instead of below TEST_FILTERS_READ when H5Dcreate and 
     * H5Dwrite is ready for mpio + filter feature.
     */
     /* test_no_collective_cause_mode (TEST_FILTERS); */
     test_no_collective_cause_mode_filter (TEST_FILTERS_READ);
-#endif    
+#endif /* LATER */ 
 
     /* 
      * Test combined causes 
@@ -4365,6 +4370,11 @@ test_dense_attr(void)
     hid_t atFileSpace, atid;
     hsize_t atDims[1] = {10000};
     herr_t status;
+    const char *filename;
+
+    /* get filename */
+    filename = (const char *)GetTestParameters();
+    HDassert( filename != NULL );
 
     /* set up MPI parameters */
     MPI_Comm_size(MPI_COMM_WORLD,&mpi_size);
@@ -4376,7 +4386,7 @@ test_dense_attr(void)
     VRFY((status >= 0), "H5Pset_libver_bounds succeeded");
     status = H5Pset_fapl_mpio(fpid, MPI_COMM_WORLD, MPI_INFO_NULL);
     VRFY((status >= 0), "H5Pset_fapl_mpio succeeded");
-    fid = H5Fcreate("ph5Dense.h5", H5F_ACC_TRUNC, H5P_DEFAULT, fpid);
+    fid = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, fpid);
     VRFY((fid > 0), "H5Fcreate succeeded");
     status = H5Pclose(fpid);
     VRFY((status >= 0), "H5Pclose succeeded");
diff --git a/testpar/t_filter_read.c b/testpar/t_filter_read.c
index 7e782ce..5e1cd04 100644
--- a/testpar/t_filter_read.c
+++ b/testpar/t_filter_read.c
@@ -215,9 +215,7 @@ test_filter_read(void)
     hsize_t     null_size;          /* Size of dataset without filters */
     herr_t      hrc;
     const char *filename;
-#ifdef H5_HAVE_FILTER_FLETCHER32
     hsize_t     fletcher32_size;       /* Size of dataset with Fletcher32 checksum */
-#endif /* H5_HAVE_FILTER_FLETCHER32 */
 
 #ifdef H5_HAVE_FILTER_DEFLATE
     hsize_t     deflate_size;       /* Size of dataset with deflate filter */
@@ -229,13 +227,11 @@ test_filter_read(void)
     unsigned szip_pixels_per_block=4;
 #endif /* H5_HAVE_FILTER_SZIP */
 
-#ifdef H5_HAVE_FILTER_SHUFFLE
     hsize_t     shuffle_size;       /* Size of dataset with shuffle filter */
-#endif /* H5_HAVE_FILTER_SHUFFLE */
 
-#if(defined H5_HAVE_FILTER_DEFLATE | defined H5_HAVE_FILTER_SZIP) && defined H5_HAVE_FILTER_SHUFFLE && defined H5_HAVE_FILTER_FLETCHER32
-    hsize_t     combo_size;     /* Size of dataset with shuffle+deflate filter */
-#endif /* H5_HAVE_FILTER_DEFLATE && H5_HAVE_FILTER_SHUFFLE && H5_HAVE_FILTER_FLETCHER32 */
+#if(defined H5_HAVE_FILTER_DEFLATE || defined H5_HAVE_FILTER_SZIP)
+    hsize_t     combo_size;     /* Size of dataset with multiple filters */
+#endif /* H5_HAVE_FILTER_DEFLATE || H5_HAVE_FILTER_SZIP */
 
     filename = GetTestParameters();
 
@@ -262,7 +258,6 @@ test_filter_read(void)
      * STEP 1: Test Fletcher32 Checksum by itself.
      *----------------------------------------------------------
      */
-#ifdef H5_HAVE_FILTER_FLETCHER32
 
     dc = H5Pcreate(H5P_DATASET_CREATE);
     VRFY(dc>=0,"H5Pset_filter");
@@ -280,7 +275,6 @@ test_filter_read(void)
     hrc = H5Pclose (dc);
     VRFY(hrc>=0, "H5Pclose");
 
-#endif /* H5_HAVE_FILTER_FLETCHER32 */
 
     /*----------------------------------------------------------
      * STEP 2: Test deflation by itself.
@@ -305,6 +299,7 @@ test_filter_read(void)
 
 #endif /* H5_HAVE_FILTER_DEFLATE */
 
+
     /*----------------------------------------------------------
      * STEP 3: Test szip compression by itself.
      *----------------------------------------------------------
@@ -328,11 +323,12 @@ test_filter_read(void)
     }
 #endif /* H5_HAVE_FILTER_SZIP */
 
+
     /*----------------------------------------------------------
      * STEP 4: Test shuffling by itself.
      *----------------------------------------------------------
      */
-#ifdef H5_HAVE_FILTER_SHUFFLE
+
     dc = H5Pcreate(H5P_DATASET_CREATE);
     VRFY(dc>=0, "H5Pcreate");
 
@@ -349,13 +345,12 @@ test_filter_read(void)
     hrc = H5Pclose (dc);
     VRFY(hrc>=0, "H5Pclose");
 
-#endif /* H5_HAVE_FILTER_SHUFFLE */
 
     /*----------------------------------------------------------
      * STEP 5: Test shuffle + deflate + checksum in any order.
      *----------------------------------------------------------
      */
-#if defined H5_HAVE_FILTER_DEFLATE && defined H5_HAVE_FILTER_SHUFFLE && defined H5_HAVE_FILTER_FLETCHER32
+#ifdef H5_HAVE_FILTER_DEFLATE
     /* Testing shuffle+deflate+checksum filters (checksum first) */
     dc = H5Pcreate(H5P_DATASET_CREATE);
     VRFY(dc>=0, "H5Pcreate");
@@ -400,13 +395,13 @@ test_filter_read(void)
     hrc = H5Pclose (dc);
     VRFY(hrc>=0, "H5Pclose");
 
-#endif /* H5_HAVE_FILTER_DEFLATE && H5_HAVE_FILTER_SHUFFLE && H5_HAVE_FILTER_FLETCHER32 */
+#endif /* H5_HAVE_FILTER_DEFLATE */
 
     /*----------------------------------------------------------
      * STEP 6: Test shuffle + szip + checksum in any order.
      *----------------------------------------------------------
      */
-#if defined H5_HAVE_FILTER_SZIP && defined H5_HAVE_FILTER_SHUFFLE && defined H5_HAVE_FILTER_FLETCHER32
+#ifdef H5_HAVE_FILTER_SZIP
 
     /* Testing shuffle+szip(with encoder)+checksum filters(checksum first) */
     dc = H5Pcreate(H5P_DATASET_CREATE);
@@ -458,6 +453,6 @@ test_filter_read(void)
         VRFY(hrc>=0, "H5Pclose");
     }
 
-#endif /* H5_HAVE_FILTER_SZIP && H5_HAVE_FILTER_SHUFFLE && H5_HAVE_FILTER_FLETCHER32 */
+#endif /* H5_HAVE_FILTER_SZIP */
 }
 
diff --git a/testpar/t_pflush1.c b/testpar/t_pflush1.c
index ebe5c38..1bcfeb8 100644
--- a/testpar/t_pflush1.c
+++ b/testpar/t_pflush1.c
@@ -164,12 +164,9 @@ main(int argc, char* argv[])
     } /* end else */
 
     /*
-     * Some systems like Linux with mpich, if you just _exit without MPI_Finalize
-     * called, it would terminate but left the launching process waiting forever.
-     * OTHO, some systems like AIX do not like files not closed when MPI_Finalize
-     * is called.  So, we need to get the MPI file handles, close them by hand,
-     * then MPI_Finalize. Then the _exit is still needed to stop at_exit from
-     * happening in some systems.
+     * Some systems like AIX do not like files not closed when MPI_Finalize
+     * is called.  So, we need to get the MPI file handles, close them by hand.
+     * Then the _exit is still needed to stop at_exit from happening in some systems.
      * Note that MPIO VFD returns the address of the file-handle in the VFD struct
      * because MPI_File_close wants to modify the file-handle variable.
      */
@@ -195,13 +192,11 @@ main(int argc, char* argv[])
 
     fflush(stdout);
     fflush(stderr);
-    MPI_Finalize();
     HD_exit(0);
 
 error:
     fflush(stdout);
     fflush(stderr);
-    MPI_Finalize();
     HD_exit(1);
 }
 
diff --git a/testpar/t_pflush2.c b/testpar/t_pflush2.c
index a570d4c..3b46afd 100644
--- a/testpar/t_pflush2.c
+++ b/testpar/t_pflush2.c
@@ -101,13 +101,17 @@ check_file(char* name, hid_t fapl)
     if(H5Dclose(dset) < 0) goto error;
     if(H5Fclose(file) < 0) goto error;
     if(H5Pclose(plist) < 0) goto error;
+    if(H5Sclose(space) < 0) goto error;
 
     return 0;
 
 error:
     H5E_BEGIN_TRY {
-        H5Fclose(file);
         H5Pclose(plist);
+        H5Gclose(groups);
+        H5Dclose(dset);
+        H5Fclose(file);
+        H5Sclose(space);
     } H5E_END_TRY;
     return 1;
 }
diff --git a/testpar/t_prestart.c b/testpar/t_prestart.c
new file mode 100644
index 0000000..fab4a7c
--- /dev/null
+++ b/testpar/t_prestart.c
@@ -0,0 +1,138 @@
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * 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.     *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+
+/*
+ * Programmer:  Mohamad Chaarawi
+ *              February 2015
+ *
+ * Purpose: This test opens a file created by the t_pshutdown program
+ * and makes sure the objects created are there.
+ */
+
+#include "testphdf5.h"
+
+int nerrors = 0;			/* errors count */
+
+const char *FILENAME[] = {
+    "shutdown",
+    NULL
+};
+
+int
+main (int argc, char **argv)
+{
+    hid_t       file_id, dset_id, grp_id;
+    hid_t       fapl, sid, mem_dataspace;
+    herr_t      ret;
+    char	filename[1024];
+    int         mpi_size, mpi_rank, ndims, i, j;
+    MPI_Comm    comm  = MPI_COMM_WORLD;
+    MPI_Info    info  = MPI_INFO_NULL;
+    hsize_t     dims[RANK];
+    hsize_t     start[RANK];
+    hsize_t     count[RANK];
+    hsize_t     stride[RANK];
+    hsize_t     block[RANK];
+    DATATYPE   *data_array = NULL, *dataptr;	/* data buffer */
+
+    MPI_Init(&argc, &argv);
+    MPI_Comm_size(comm, &mpi_size);
+    MPI_Comm_rank(comm, &mpi_rank);  
+
+    if(MAINPROCESS)
+	TESTING("proper shutdown of HDF5 library");
+ 
+    /* Set up file access property list with parallel I/O access */
+    fapl = H5Pcreate(H5P_FILE_ACCESS);
+    VRFY((fapl >= 0), "H5Pcreate succeeded");
+    ret = H5Pset_fapl_mpio(fapl, comm, info);
+    VRFY((ret >= 0), "");
+
+    h5_fixname(FILENAME[0], fapl, filename, sizeof filename);
+    file_id = H5Fopen(filename, H5F_ACC_RDONLY, fapl);
+    VRFY((file_id >= 0), "H5Fopen succeeded");
+
+    grp_id = H5Gopen2(file_id, "Group", H5P_DEFAULT);
+    VRFY((grp_id >= 0), "H5Gopen succeeded");
+
+    dset_id = H5Dopen2(grp_id, "Dataset", H5P_DEFAULT);
+    VRFY((dset_id >= 0), "H5Dopen succeeded");
+
+    sid = H5Dget_space(dset_id);
+    VRFY((dset_id >= 0), "H5Dget_space succeeded");
+
+    ndims = H5Sget_simple_extent_dims(sid, dims, NULL);
+    VRFY((ndims == 2), "H5Sget_simple_extent_dims succeeded");
+    VRFY(dims[0] == ROW_FACTOR*mpi_size, "Wrong dataset dimensions");
+    VRFY(dims[1] == COL_FACTOR*mpi_size, "Wrong dataset dimensions");
+
+    /* allocate memory for data buffer */
+    data_array = (DATATYPE *)HDmalloc(dims[0]*dims[1]*sizeof(DATATYPE));
+    VRFY((data_array != NULL), "data_array HDmalloc succeeded");
+
+    /* Each process takes a slabs of rows. */
+    block[0] = dims[0]/mpi_size;
+    block[1] = dims[1];
+    stride[0] = block[0];
+    stride[1] = block[1];
+    count[0] = 1;
+    count[1] = 1;
+    start[0] = mpi_rank*block[0];
+    start[1] = 0;
+
+    ret = H5Sselect_hyperslab(sid, H5S_SELECT_SET, start, stride, count, block);
+    VRFY((ret >= 0), "H5Sset_hyperslab succeeded");
+
+    /* create a memory dataspace independently */
+    mem_dataspace = H5Screate_simple (RANK, block, NULL);
+    VRFY((mem_dataspace >= 0), "");
+
+    /* write data independently */
+    ret = H5Dread(dset_id, H5T_NATIVE_INT, mem_dataspace, sid,
+                  H5P_DEFAULT, data_array);
+    VRFY((ret >= 0), "H5Dwrite succeeded");
+
+    dataptr = data_array;
+
+    for (i=0; i < block[0]; i++){
+	for (j=0; j < block[1]; j++){
+	    if(*dataptr != mpi_rank+1) {
+                printf("Dataset Verify failed at [%lu][%lu](row %lu, col %lu): expect %d, got %d\n",
+                       (unsigned long)i, (unsigned long)j,
+                       (unsigned long)(i+start[0]), (unsigned long)(j+start[1]),
+                       mpi_rank+1, *(dataptr));
+                nerrors ++;
+            }
+            dataptr++;
+	}
+    }
+    MPI_Finalize();
+    HDremove(filename);
+
+    /* release data buffers */
+    if(data_array) 
+        HDfree(data_array);
+
+    nerrors += GetTestNumErrs();
+
+    if(MAINPROCESS) {
+        if(0 == nerrors)
+            PASSED()
+        else
+	    H5_FAILED()
+    }
+
+    return (nerrors!=0);
+}
diff --git a/testpar/t_pshutdown.c b/testpar/t_pshutdown.c
new file mode 100644
index 0000000..be9734f
--- /dev/null
+++ b/testpar/t_pshutdown.c
@@ -0,0 +1,127 @@
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * 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.     *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+
+/*
+ * Programmer:  Mohamad Chaarawi
+ *              February 2015
+ *
+ * Purpose: This test creates a file and a bunch of objects in the
+ * file and then calls MPI_Finalize without closing anything. The
+ * library should exercise the attribute callback destroy attached to
+ * MPI_COMM_SELF and terminate the HDF5 library closing all open
+ * objects. The t_prestart test will read back the file and make sure
+ * all created objects are there.
+ */
+
+#include "testphdf5.h"
+
+int nerrors = 0;			/* errors count */
+
+const char *FILENAME[] = {
+    "shutdown",
+    NULL
+};
+
+int
+main (int argc, char **argv)
+{
+    hid_t       file_id, dset_id, grp_id;
+    hid_t       fapl, sid, mem_dataspace;
+    hsize_t     dims[RANK], i;
+    herr_t      ret;
+    char	filename[1024];
+    int         mpi_size, mpi_rank;
+    MPI_Comm    comm  = MPI_COMM_WORLD;
+    MPI_Info    info  = MPI_INFO_NULL;
+    hsize_t     start[RANK];
+    hsize_t     count[RANK];
+    hsize_t     stride[RANK];
+    hsize_t     block[RANK];
+    DATATYPE   *data_array = NULL;	/* data buffer */
+
+    MPI_Init(&argc, &argv);
+    MPI_Comm_size(comm, &mpi_size);
+    MPI_Comm_rank(comm, &mpi_rank);  
+
+    if(MAINPROCESS)
+	TESTING("proper shutdown of HDF5 library");
+ 
+    /* Set up file access property list with parallel I/O access */
+    fapl = H5Pcreate(H5P_FILE_ACCESS);
+    VRFY((fapl >= 0), "H5Pcreate succeeded");
+    ret = H5Pset_fapl_mpio(fapl, comm, info);
+    VRFY((ret >= 0), "");
+
+    h5_fixname(FILENAME[0], fapl, filename, sizeof filename);
+    file_id = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, fapl);
+    VRFY((file_id >= 0), "H5Fcreate succeeded");
+    grp_id = H5Gcreate2(file_id, "Group", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+    VRFY((grp_id >= 0), "H5Gcreate succeeded");
+
+    dims[0] = ROW_FACTOR*mpi_size;
+    dims[1] = COL_FACTOR*mpi_size;
+    sid = H5Screate_simple (RANK, dims, NULL);
+    VRFY((sid >= 0), "H5Screate_simple succeeded");
+
+    dset_id = H5Dcreate2(grp_id, "Dataset", H5T_NATIVE_INT, sid, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+    VRFY((dset_id >= 0), "H5Dcreate succeeded");
+
+    /* allocate memory for data buffer */
+    data_array = (DATATYPE *)HDmalloc(dims[0]*dims[1]*sizeof(DATATYPE));
+    VRFY((data_array != NULL), "data_array HDmalloc succeeded");
+
+    /* Each process takes a slabs of rows. */
+    block[0] = dims[0]/mpi_size;
+    block[1] = dims[1];
+    stride[0] = block[0];
+    stride[1] = block[1];
+    count[0] = 1;
+    count[1] = 1;
+    start[0] = mpi_rank*block[0];
+    start[1] = 0;
+
+    /* put some trivial data in the data_array */
+    for(i=0 ; i<dims[0]*dims[1]; i++)
+        data_array[i] = mpi_rank + 1;
+
+    ret = H5Sselect_hyperslab(sid, H5S_SELECT_SET, start, stride, count, block);
+    VRFY((ret >= 0), "H5Sset_hyperslab succeeded");
+
+    /* create a memory dataspace independently */
+    mem_dataspace = H5Screate_simple (RANK, block, NULL);
+    VRFY((mem_dataspace >= 0), "");
+
+    /* write data independently */
+    ret = H5Dwrite(dset_id, H5T_NATIVE_INT, mem_dataspace, sid,
+                   H5P_DEFAULT, data_array);
+    VRFY((ret >= 0), "H5Dwrite succeeded");
+
+    /* release data buffers */
+    if(data_array) 
+        HDfree(data_array);
+
+    MPI_Finalize();
+
+    nerrors += GetTestNumErrs();
+
+    if(MAINPROCESS) {
+        if(0 == nerrors)
+            PASSED()
+        else
+	    H5_FAILED()
+    }
+
+    return (nerrors!=0);
+}
diff --git a/testpar/t_shapesame.c b/testpar/t_shapesame.c
index 1a74295..9088470 100644
--- a/testpar/t_shapesame.c
+++ b/testpar/t_shapesame.c
@@ -2237,8 +2237,9 @@ contig_hs_dr_pio_test(ShapeSameTestMethods sstest_type)
     int         express_test;
     int         local_express_test;
     int         mpi_rank = -1;
+    int         mpi_size;
     int	        test_num = 0;
-    int		edge_size = 10;
+    int		edge_size;
     int		chunk_edge_size = 0;
     int	        small_rank;
     int	        large_rank;
@@ -2258,8 +2259,11 @@ contig_hs_dr_pio_test(ShapeSameTestMethods sstest_type)
 
     HDcompile_assert(sizeof(uint32_t) == sizeof(unsigned));
 
+    MPI_Comm_size(MPI_COMM_WORLD, &mpi_size);
     MPI_Comm_rank(MPI_COMM_WORLD, &mpi_rank);
 
+    edge_size = (mpi_size > 6 ? mpi_size : 6);
+
     local_express_test = GetTestExpress();
 
     mpi_result = MPI_Allreduce((void *)&local_express_test,
@@ -4519,7 +4523,7 @@ ckrbrd_hs_dr_pio_test(ShapeSameTestMethods sstest_type)
     int	        mpi_size = -1;
     int         mpi_rank = -1;
     int	        test_num = 0;
-    int		edge_size = 10;
+    int		edge_size;
     int         checker_edge_size = 3;
     int		chunk_edge_size = 0;
     int	        small_rank = 3;
@@ -4541,6 +4545,8 @@ ckrbrd_hs_dr_pio_test(ShapeSameTestMethods sstest_type)
     MPI_Comm_size(MPI_COMM_WORLD, &mpi_size);
     MPI_Comm_rank(MPI_COMM_WORLD, &mpi_rank);
 
+    edge_size = (mpi_size > 6 ? mpi_size : 6);
+
     local_express_test = GetTestExpress();
 
     HDcompile_assert(sizeof(uint32_t) == sizeof(unsigned));
@@ -5031,9 +5037,11 @@ int main(int argc, char **argv)
 {
     int mpi_size, mpi_rank;				/* mpi variables */
 
+#ifndef H5_HAVE_WIN32_API
     /* Un-buffer the stdout and stderr */
-    setbuf(stderr, NULL);
-    setbuf(stdout, NULL);
+    HDsetbuf(stderr, NULL);
+    HDsetbuf(stdout, NULL);
+#endif
 
     MPI_Init(&argc, &argv);
     MPI_Comm_size(MPI_COMM_WORLD, &mpi_size);
@@ -5134,10 +5142,7 @@ int main(int argc, char **argv)
 	    printf("Shape Same tests finished with no errors\n");
 	printf("===================================\n");
     }
-    /* close HDF5 library */
-    H5close();
 
-    /* MPI_Finalize must be called AFTER H5close which may use MPI calls */
     MPI_Finalize();
 
     /* cannot just return (nerrors) because exit code is limited to 1byte */
diff --git a/testpar/testphdf5.c b/testpar/testphdf5.c
index 865d381..7992e80 100644
--- a/testpar/testphdf5.c
+++ b/testpar/testphdf5.c
@@ -307,9 +307,11 @@ int main(int argc, char **argv)
     H5Ptest_param_t io_mode_confusion_params;
     H5Ptest_param_t rr_obj_flush_confusion_params;
 
+#ifndef H5_HAVE_WIN32_API
     /* Un-buffer the stdout and stderr */
-    setbuf(stderr, NULL);
-    setbuf(stdout, NULL);
+    HDsetbuf(stderr, NULL);
+    HDsetbuf(stdout, NULL);
+#endif
 
     MPI_Init(&argc, &argv);
     MPI_Comm_size(MPI_COMM_WORLD, &mpi_size);
@@ -525,7 +527,7 @@ int main(int argc, char **argv)
     }
 
     AddTest("denseattr", test_dense_attr, NULL,
-	    "Store Dense Attributes", NULL);
+	    "Store Dense Attributes", PARATESTFILE);
 
 
     /* Display testing information */
diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt
index a9a8c49..fd47379 100644
--- a/tools/CMakeLists.txt
+++ b/tools/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required (VERSION 2.8.11)
+cmake_minimum_required (VERSION 3.1.0)
 PROJECT (HDF5_TOOLS)
 
 #-----------------------------------------------------------------------------
@@ -44,3 +44,6 @@ add_subdirectory (${HDF5_TOOLS_SOURCE_DIR}/h5stat)
 
 #-- Add the h5dump and test executables
 add_subdirectory (${HDF5_TOOLS_SOURCE_DIR}/h5dump)
+
+#-- Add the perform and test executables
+add_subdirectory (${HDF5_TOOLS_SOURCE_DIR}/perform)
diff --git a/tools/Makefile.am b/tools/Makefile.am
index 76b32d2..095cc30 100644
--- a/tools/Makefile.am
+++ b/tools/Makefile.am
@@ -24,6 +24,7 @@ include $(top_srcdir)/config/commence.am
 CONFIG=ordered
 
 # All subdirectories
-SUBDIRS=lib h5diff h5ls h5dump misc h5import h5repack h5jam h5copy h5stat
+SUBDIRS=lib h5diff h5ls h5dump misc h5import h5repack h5jam h5copy h5stat \
+    perform
 
 include $(top_srcdir)/config/conclude.am
diff --git a/tools/Makefile.in b/tools/Makefile.in
index 0b0e2d0..974e6b4 100644
--- a/tools/Makefile.in
+++ b/tools/Makefile.in
@@ -101,7 +101,8 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \
 TESTS =
 subdir = tools
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \
+	$(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs
@@ -405,7 +406,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@
 AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@
 AM_MAKEFLAGS = @AM_MAKEFLAGS@
 AR = @AR@
-AS = @AS@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -437,7 +437,6 @@ DIRECT_VFD = @DIRECT_VFD@
 DLLTOOL = @DLLTOOL@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
-DYNAMIC_DIRS = @DYNAMIC_DIRS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -456,17 +455,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@
 FCLIBS = @FCLIBS@
 FC_VERSION = @FC_VERSION@
 FGREP = @FGREP@
-FILTERS = @FILTERS@
 FSEARCH_DIRS = @FSEARCH_DIRS@
 GREP = @GREP@
 H5_CFLAGS = @H5_CFLAGS@
 H5_CPPFLAGS = @H5_CPPFLAGS@
 H5_CXXFLAGS = @H5_CXXFLAGS@
-H5_CXX_SHARED = @H5_CXX_SHARED@
 H5_FCFLAGS = @H5_FCFLAGS@
 H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@
 H5_LDFLAGS = @H5_LDFLAGS@
-H5_LONE_COLON = @H5_LONE_COLON@
 H5_VERSION = @H5_VERSION@
 HADDR_T = @HADDR_T@
 HAVE_DMALLOC = @HAVE_DMALLOC@
@@ -489,7 +485,6 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INSTRUMENT = @INSTRUMENT@
 INSTRUMENT_LIBRARY = @INSTRUMENT_LIBRARY@
-LARGEFILE = @LARGEFILE@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
@@ -530,7 +525,6 @@ R_INTEGER = @R_INTEGER@
 R_LARGE = @R_LARGE@
 SEARCH = @SEARCH@
 SED = @SED@
-SETX = @SETX@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIZE_T = @SIZE_T@
@@ -545,10 +539,6 @@ TR = @TR@
 TRACE_API = @TRACE_API@
 UNAME_INFO = @UNAME_INFO@
 USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@
-USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@
-USE_FILTER_NBIT = @USE_FILTER_NBIT@
-USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@
-USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@
 USE_FILTER_SZIP = @USE_FILTER_SZIP@
 USINGMEMCHECKER = @USINGMEMCHECKER@
 VERSION = @VERSION@
@@ -662,12 +652,14 @@ TRACE = perl $(top_srcdir)/bin/trace
 
 # .chkexe files are used to mark tests that have run successfully.
 # .chklog files are output from those tests.
-# *.clog are from the MPE option.
-CHECK_CLEANFILES = *.chkexe *.chklog *.clog
+# *.clog and *.clog2 are from the MPE option.
+CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2
 CONFIG = ordered
 
 # All subdirectories
-SUBDIRS = lib h5diff h5ls h5dump misc h5import h5repack h5jam h5copy h5stat
+SUBDIRS = lib h5diff h5ls h5dump misc h5import h5repack h5jam h5copy h5stat \
+    perform
+
 
 # Automake needs to be taught how to build lib, progs, and tests targets.
 # These will be filled in automatically for the most part (e.g.,
diff --git a/tools/h5copy/CMakeLists.txt b/tools/h5copy/CMakeLists.txt
index 267d92b..7291197 100644
--- a/tools/h5copy/CMakeLists.txt
+++ b/tools/h5copy/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required (VERSION 2.8.11)
+cmake_minimum_required (VERSION 3.1.0)
 PROJECT (HDF5_TOOLS_H5COPY)
 
 #-----------------------------------------------------------------------------
@@ -11,7 +11,7 @@ INCLUDE_DIRECTORIES (${HDF5_TOOLS_SRC_DIR}/lib)
 # --------------------------------------------------------------------
 add_executable (h5copy ${HDF5_TOOLS_H5COPY_SOURCE_DIR}/h5copy.c)
 TARGET_NAMING (h5copy ${LIB_TYPE})
-TARGET_C_PROPERTIES (h5copy " " " ")
+TARGET_C_PROPERTIES (h5copy ${LIB_TYPE} " " " ")
 target_link_libraries (h5copy  ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
 set_target_properties (h5copy PROPERTIES FOLDER tools)
 
@@ -20,8 +20,8 @@ set (H5_DEP_EXECUTABLES h5copy)
 if (BUILD_TESTING)
   if (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS)
     add_executable (h5copygentest ${HDF5_TOOLS_H5COPY_SOURCE_DIR}/h5copygentest.c)
-    TARGET_NAMING (h5copygentest ${LIB_TYPE})
-    TARGET_C_PROPERTIES (h5copygentest " " " ")
+    TARGET_NAMING (h5copygentest STATIC)
+    TARGET_C_PROPERTIES (h5copygentest STATIC " " " ")
     target_link_libraries (h5copygentest ${HDF5_LIB_TARGET})
     set_target_properties (h5copygentest PROPERTIES FOLDER generator/tools)
 
diff --git a/tools/h5copy/Makefile.in b/tools/h5copy/Makefile.in
index 76573a0..e128cfe 100644
--- a/tools/h5copy/Makefile.in
+++ b/tools/h5copy/Makefile.in
@@ -105,7 +105,8 @@ check_PROGRAMS = $(am__EXEEXT_1)
 TESTS = $(am__EXEEXT_1) $(TEST_SCRIPT)
 subdir = tools/h5copy
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \
+	$(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs
@@ -413,7 +414,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@
 AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@
 AM_MAKEFLAGS = @AM_MAKEFLAGS@
 AR = @AR@
-AS = @AS@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -445,7 +445,6 @@ DIRECT_VFD = @DIRECT_VFD@
 DLLTOOL = @DLLTOOL@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
-DYNAMIC_DIRS = @DYNAMIC_DIRS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -464,17 +463,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@
 FCLIBS = @FCLIBS@
 FC_VERSION = @FC_VERSION@
 FGREP = @FGREP@
-FILTERS = @FILTERS@
 FSEARCH_DIRS = @FSEARCH_DIRS@
 GREP = @GREP@
 H5_CFLAGS = @H5_CFLAGS@
 H5_CPPFLAGS = @H5_CPPFLAGS@
 H5_CXXFLAGS = @H5_CXXFLAGS@
-H5_CXX_SHARED = @H5_CXX_SHARED@
 H5_FCFLAGS = @H5_FCFLAGS@
 H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@
 H5_LDFLAGS = @H5_LDFLAGS@
-H5_LONE_COLON = @H5_LONE_COLON@
 H5_VERSION = @H5_VERSION@
 HADDR_T = @HADDR_T@
 HAVE_DMALLOC = @HAVE_DMALLOC@
@@ -497,7 +493,6 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INSTRUMENT = @INSTRUMENT@
 INSTRUMENT_LIBRARY = @INSTRUMENT_LIBRARY@
-LARGEFILE = @LARGEFILE@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
@@ -538,7 +533,6 @@ R_INTEGER = @R_INTEGER@
 R_LARGE = @R_LARGE@
 SEARCH = @SEARCH@
 SED = @SED@
-SETX = @SETX@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIZE_T = @SIZE_T@
@@ -553,10 +547,6 @@ TR = @TR@
 TRACE_API = @TRACE_API@
 UNAME_INFO = @UNAME_INFO@
 USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@
-USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@
-USE_FILTER_NBIT = @USE_FILTER_NBIT@
-USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@
-USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@
 USE_FILTER_SZIP = @USE_FILTER_SZIP@
 USINGMEMCHECKER = @USINGMEMCHECKER@
 VERSION = @VERSION@
@@ -670,11 +660,11 @@ TRACE = perl $(top_srcdir)/bin/trace
 
 # .chkexe files are used to mark tests that have run successfully.
 # .chklog files are output from those tests.
-# *.clog are from the MPE option.
+# *.clog and *.clog2 are from the MPE option.
 
 # Temporary files.  *.h5 are generated by h5dumpgentest.  They should
 # copied to the testfiles/ directory if update is required.
-CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.h5
+CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 *.h5
 
 # Test programs and scripts
 TEST_PROG = h5copygentest
diff --git a/tools/h5diff/CMakeLists.txt b/tools/h5diff/CMakeLists.txt
index 35c55a4..39095a5 100644
--- a/tools/h5diff/CMakeLists.txt
+++ b/tools/h5diff/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required (VERSION 2.8.11)
+cmake_minimum_required (VERSION 3.1.0)
 PROJECT (HDF5_TOOLS_H5DIFF)
 
 #-----------------------------------------------------------------------------
@@ -14,7 +14,7 @@ add_executable (h5diff
     ${HDF5_TOOLS_H5DIFF_SOURCE_DIR}/h5diff_main.c
 )
 TARGET_NAMING (h5diff ${LIB_TYPE})
-TARGET_C_PROPERTIES (h5diff " " " ")
+TARGET_C_PROPERTIES (h5diff ${LIB_TYPE} " " " ")
 target_link_libraries (h5diff  ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
 set_target_properties (h5diff PROPERTIES FOLDER tools)
 
@@ -26,7 +26,7 @@ if (H5_HAVE_PARALLEL)
       ${HDF5_TOOLS_H5DIFF_SOURCE_DIR}/ph5diff_main.c
   )
   TARGET_NAMING (ph5diff ${LIB_TYPE})
-  TARGET_C_PROPERTIES (ph5diff " " " ")
+  TARGET_C_PROPERTIES (ph5diff ${LIB_TYPE} " " " ")
   target_link_libraries (ph5diff  ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
   set_target_properties (ph5diff PROPERTIES FOLDER tools)
 endif (H5_HAVE_PARALLEL)
@@ -37,8 +37,8 @@ if (BUILD_TESTING)
   # --------------------------------------------------------------------
   if (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS)
     add_executable (h5diffgentest ${HDF5_TOOLS_H5DIFF_SOURCE_DIR}/h5diffgentest.c)
-    TARGET_NAMING (h5diffgentest ${LIB_TYPE})
-    TARGET_C_PROPERTIES (h5diffgentest " " " ")
+    TARGET_NAMING (h5diffgentest STATIC)
+    TARGET_C_PROPERTIES (h5diffgentest STATIC " " " ")
     target_link_libraries (h5diffgentest ${HDF5_LIB_TARGET})
     set_target_properties (h5diffgentest PROPERTIES FOLDER generator/tools)
     
diff --git a/tools/h5diff/CMakeTests.cmake b/tools/h5diff/CMakeTests.cmake
index 686803b..c650dbe 100644
--- a/tools/h5diff/CMakeTests.cmake
+++ b/tools/h5diff/CMakeTests.cmake
@@ -1072,12 +1072,7 @@ ADD_H5_TEST (h5diff_80 1 -v ${FILE7} ${FILE8})
 ADD_H5_TEST (h5diff_90 0 -v ${FILE2} ${FILE2})
 
 # 10. read by hyperslab, print indexes
-#if test -n "$pmode" -a "$mydomainname" = hdfgroup.uiuc.edu; then
-#    # skip this test which sometimes hangs in some THG machines
-#    message (STATUS "SKIP -v ${FILE9} ${FILE10})
-#else
-#    ADD_H5_TEST (h5diff_100 1 -v ${FILE9} ${FILE10}) 
-#fi
+ADD_H5_TEST (h5diff_100 1 -v ${FILE9} ${FILE10}) 
 
 # 11. floating point comparison
 ADD_H5_TEST (h5diff_101 1 -v ${FILE1} ${FILE1} g1/d1  g1/d2) 
diff --git a/tools/h5diff/Makefile.in b/tools/h5diff/Makefile.in
index 6a8d2ac..c95967d 100644
--- a/tools/h5diff/Makefile.in
+++ b/tools/h5diff/Makefile.in
@@ -105,7 +105,8 @@ check_PROGRAMS = $(am__EXEEXT_2)
 TESTS = $(am__EXEEXT_2) $(TEST_SCRIPT)
 subdir = tools/h5diff
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \
+	$(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs
@@ -420,7 +421,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@
 AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@
 AM_MAKEFLAGS = @AM_MAKEFLAGS@
 AR = @AR@
-AS = @AS@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -452,7 +452,6 @@ DIRECT_VFD = @DIRECT_VFD@
 DLLTOOL = @DLLTOOL@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
-DYNAMIC_DIRS = @DYNAMIC_DIRS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -471,17 +470,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@
 FCLIBS = @FCLIBS@
 FC_VERSION = @FC_VERSION@
 FGREP = @FGREP@
-FILTERS = @FILTERS@
 FSEARCH_DIRS = @FSEARCH_DIRS@
 GREP = @GREP@
 H5_CFLAGS = @H5_CFLAGS@
 H5_CPPFLAGS = @H5_CPPFLAGS@
 H5_CXXFLAGS = @H5_CXXFLAGS@
-H5_CXX_SHARED = @H5_CXX_SHARED@
 H5_FCFLAGS = @H5_FCFLAGS@
 H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@
 H5_LDFLAGS = @H5_LDFLAGS@
-H5_LONE_COLON = @H5_LONE_COLON@
 H5_VERSION = @H5_VERSION@
 HADDR_T = @HADDR_T@
 HAVE_DMALLOC = @HAVE_DMALLOC@
@@ -504,7 +500,6 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INSTRUMENT = @INSTRUMENT@
 INSTRUMENT_LIBRARY = @INSTRUMENT_LIBRARY@
-LARGEFILE = @LARGEFILE@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
@@ -545,7 +540,6 @@ R_INTEGER = @R_INTEGER@
 R_LARGE = @R_LARGE@
 SEARCH = @SEARCH@
 SED = @SED@
-SETX = @SETX@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIZE_T = @SIZE_T@
@@ -560,10 +554,6 @@ TR = @TR@
 TRACE_API = @TRACE_API@
 UNAME_INFO = @UNAME_INFO@
 USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@
-USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@
-USE_FILTER_NBIT = @USE_FILTER_NBIT@
-USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@
-USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@
 USE_FILTER_SZIP = @USE_FILTER_SZIP@
 USINGMEMCHECKER = @USINGMEMCHECKER@
 VERSION = @VERSION@
@@ -677,11 +667,11 @@ TRACE = perl $(top_srcdir)/bin/trace
 
 # .chkexe files are used to mark tests that have run successfully.
 # .chklog files are output from those tests.
-# *.clog are from the MPE option.
+# *.clog and *.clog2 are from the MPE option.
 
 # Temporary files.  *.h5 are generated by h5diff.  They should
 # be copied to the testfiles/ directory if update is required
-CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.h5 expect_sorted \
+CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 *.h5 expect_sorted \
 	actual_sorted
 
 # Always build and test h5diff but build and test ph5diff only if parallel
diff --git a/tools/h5diff/h5diffgentest.c b/tools/h5diff/h5diffgentest.c
index 80405e9..1b80317 100644
--- a/tools/h5diff/h5diffgentest.c
+++ b/tools/h5diff/h5diffgentest.c
@@ -317,10 +317,10 @@ int test_basic(const char *fname1, const char *fname2, const char *fname3)
     */
 
     {
-        double data1[3][2] = {{1,1},  {1,1},       {0,0}};
-        double data2[3][2] = {{0,1.1},{1.01,1.001},{0,1}};
-        double data3[3][2] = {{100,100},{100,100},{100,100}};
-        double data4[3][2] = {{105,120},{160,95},{80,40}};
+        double data1[3][2] = {{  1.0F,   1.0F}, {  1.00F,   1.000F}, {  0.0F,   0.0F}};
+        double data2[3][2] = {{  0.0F,   1.1F}, {  1.01F,   1.001F}, {  0.0F,   1.0F}};
+        double data3[3][2] = {{100.0F, 100.0F}, {100.00F, 100.000F}, {100.0F, 100.0F}};
+        double data4[3][2] = {{105.0F, 120.0F}, {160.00F,  95.000F}, { 80.0F,  40.0F}};
 
         write_dset(gid1,2,dims2,"dset1",H5T_NATIVE_DOUBLE,data1);
         write_dset(gid2,2,dims2,"dset2",H5T_NATIVE_DOUBLE,data2);
@@ -371,8 +371,8 @@ int test_basic(const char *fname1, const char *fname2, const char *fname3)
     *-------------------------------------------------------------------------
     */
     {
-        double data9[3][2] = {{100,100},{100,0},{0,100}};
-        double data10[3][2] ={{120,80}, {0,100},{0,50}};
+        double data9[3][2] = {{100.0F, 100.0F}, {100.0F,   0.0F}, {0.0F, 100.0F}};
+        double data10[3][2] ={{120.0F,  80.0F}, {  0.0F, 100.0F}, {0.0F,  50.0F}};
 
         write_dset(gid1,2,dims2,"dset9",H5T_NATIVE_DOUBLE,data9);
         write_dset(gid1,2,dims2,"dset10",H5T_NATIVE_DOUBLE,data10);
@@ -393,8 +393,14 @@ int test_basic(const char *fname1, const char *fname2, const char *fname3)
         /* epsilon = 0.0000000000000001 = 1e-16
          * system epsilon for double : DBL_EPSILON = 2.22045E-16
          */
-        double data13[3][2] ={{0.0000000000000000, 0.0000000000000001},{0.0000000000000001, 0.0000000000000000},{0.00000000000000033, 0.0000000000000001}};
-        double data14[3][2] ={{0.0000000000000000, 0.0000000000000004},{0.0000000000000002, 0.0000000000000001},{0.0000000000000001, 0.00000000000000000}};
+        double data13[3][2] ={
+            {H5_DOUBLE(0.0000000000000000),  H5_DOUBLE(0.0000000000000001)},
+            {H5_DOUBLE(0.0000000000000001),  H5_DOUBLE(0.0000000000000000)},
+            {H5_DOUBLE(0.00000000000000033), H5_DOUBLE(0.0000000000000001)}};
+        double data14[3][2] ={
+            {H5_DOUBLE(0.0000000000000000), H5_DOUBLE(0.0000000000000004)},
+            {H5_DOUBLE(0.0000000000000002), H5_DOUBLE(0.0000000000000001)},
+            {H5_DOUBLE(0.0000000000000001), H5_DOUBLE(0.00000000000000000)}};
 
         write_dset(gid1,2,dims2,"fp1",H5T_NATIVE_FLOAT,data11);
         write_dset(gid1,2,dims2,"fp2",H5T_NATIVE_FLOAT,data12);
@@ -412,7 +418,7 @@ int test_basic(const char *fname1, const char *fname2, const char *fname3)
         *-------------------------------------------------------------------------
         */
 
-        long double data15[3][2] ={{1,1},{1,1},{1,1}};
+        long double data15[3][2] ={{1.0L,1.0L},{1.0L,1.0L},{1.0L,1.0L}};
 
         write_dset(gid1,2,dims2,"ld",H5T_NATIVE_LDOUBLE,data15);
 
@@ -430,19 +436,19 @@ int test_basic(const char *fname1, const char *fname2, const char *fname3)
         float data15[6];
         float data16[6];
 
-        data15[0] = (float) sqrt( (double)-1 );
-        data15[1] = 1;
-        data15[2] = (float) sqrt( (double)-1 );
-        data15[3] = 1;
-        data15[4] = 1;
-        data15[5] = 1;
+        data15[0] = (float)HDsqrt(-1.0F);
+        data15[1] = 1.0F;
+        data15[2] = (float)HDsqrt(-1.0F);
+        data15[3] = 1.0F;
+        data15[4] = 1.0F;
+        data15[5] = 1.0F;
 
-        data16[0] = (float) sqrt( (double)-1 );
-        data16[1] = (float) sqrt( (double)-1 );
-        data16[2] = 1;
-        data16[3] = 1;
-        data16[4] = 1;
-        data16[5] = 1;
+        data16[0] = (float)HDsqrt(-1.0F);
+        data16[1] = (float)HDsqrt(-1.0F);
+        data16[2] = 1.0F;
+        data16[3] = 1.0F;
+        data16[4] = 1.0F;
+        data16[5] = 1.0F;
 
         write_dset(gid1,1,dims1,"fp15",H5T_NATIVE_FLOAT,data15);
         write_dset(gid1,1,dims1,"fp16",H5T_NATIVE_FLOAT,data16);
@@ -458,19 +464,19 @@ int test_basic(const char *fname1, const char *fname2, const char *fname3)
         double data17[6];
         double data18[6];
 
-        data17[0] = sqrt( (double)-1 );
-        data17[1] = 1;
-        data17[2] = sqrt( (double)-1 );
-        data17[3] = 1;
-        data17[4] = 1;
-        data17[5] = 1;
+        data17[0] = HDsqrt(-1.0F);
+        data17[1] = 1.0F;
+        data17[2] = HDsqrt(-1.0F);
+        data17[3] = 1.0F;
+        data17[4] = 1.0F;
+        data17[5] = 1.0F;
 
-        data18[0] = (float) sqrt( (double)-1 );
-        data18[1] = (float) sqrt( (double)-10000 );
-        data18[2] = 1;
-        data18[3] = 1;
-        data18[4] = 1;
-        data18[5] = 1;
+        data18[0] = HDsqrt(-1.0F);
+        data18[1] = HDsqrt(-10000.0F);
+        data18[2] = 1.0F;
+        data18[3] = 1.0F;
+        data18[4] = 1.0F;
+        data18[5] = 1.0F;
 
         write_dset(gid1,1,dims1,"fp17",H5T_NATIVE_DOUBLE,data17);
         write_dset(gid1,1,dims1,"fp18",H5T_NATIVE_DOUBLE,data18);
@@ -485,11 +491,11 @@ int test_basic(const char *fname1, const char *fname2, const char *fname3)
         float  data19[6];
         double data20[6];
 
-        data19[0] = data19[1] = data19[2] = log(0);
-        data19[3] = data19[4] = data19[5] = -log(0);
+        data19[0] = data19[1] = data19[2] = (float)HDlog(0.0F);
+        data19[3] = data19[4] = data19[5] = (float)-HDlog(0.0F);
 
-        data20[0] = data20[1] = data20[2] = log(0);
-        data20[3] = data20[4] = data20[5] = -log(0);
+        data20[0] = data20[1] = data20[2] = HDlog(0.0F);
+        data20[3] = data20[4] = data20[5] = -HDlog(0.0F);
 
         write_dset(gid1,1,dims1,"fp19",H5T_NATIVE_FLOAT,data19);
         write_dset(gid1,1,dims1,"fp19_COPY",H5T_NATIVE_FLOAT,data19);
@@ -514,15 +520,15 @@ int test_basic(const char *fname1, const char *fname2, const char *fname3)
         size_t   type_size;
         hid_t    tid;
 
-        buf1[0].d = sqrt( (double)-1 );
-        buf1[0].f = (float) sqrt( (double)-1 );
-        buf2[0].d = sqrt( (double)-1 );
-        buf2[0].f = (float) sqrt( (double)-1 );
+        buf1[0].d = HDsqrt(-1.0F);
+        buf1[0].f = (float)HDsqrt(-1.0F);
+        buf2[0].d = HDsqrt(-1.0F);
+        buf2[0].f = (float)HDsqrt(-1.0F);
 
-        buf1[1].d = sqrt( (double)-1 );
-        buf1[1].f = (float) sqrt( (double)-1 );
-        buf2[1].d = 0;
-        buf2[1].f = 0;
+        buf1[1].d = HDsqrt(-1.0F);
+        buf1[1].f = (float)HDsqrt(-1.0F);
+        buf2[1].d = 0.0F;
+        buf2[1].f = 0.0F;
 
         type_size = sizeof( cmp1_t );
         tid = H5Tcreate (H5T_COMPOUND, type_size );
@@ -555,7 +561,7 @@ int test_basic(const char *fname1, const char *fname2, const char *fname3)
             int i;
         } cmp3_t;
 
-        double       data2[6] = {0,0,0,0,0,0};
+        double       data2[6] = {0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F};
         int          data3[6] = {0,0,0,0,0,0};
         int          data4[3][2] = {{0,0},{0,0},{0,0}};
         int          data5[2][2] = {{0,0},{0,0}};
@@ -770,10 +776,10 @@ int test_datatypes(const char *fname)
     int     buf3b[3][2] = {{1,1},{3,4},{5,6}};
     long    buf4a[3][2] = {{1,1},{1,1},{1,1}};
     long    buf4b[3][2] = {{1,1},{3,4},{5,6}};
-    float   buf5a[3][2] = {{1,1},{1,1},{1,1}};
-    float   buf5b[3][2] = {{1,1},{3,4},{5,6}};
-    double  buf6a[3][2] = {{1,1},{1,1},{1,1}};
-    double  buf6b[3][2] = {{1,1},{3,4},{5,6}};
+    float   buf5a[3][2] = {{1.0F, 1.0F}, {1.0F, 1.0F}, {1.0F, 1.0F}};
+    float   buf5b[3][2] = {{1.0F, 1.0F}, {3.0F, 4.0F}, {5.0F, 6.0F}};
+    double  buf6a[3][2] = {{1.0F, 1.0F}, {1.0F, 1.0F}, {1.0F, 1.0F}};
+    double  buf6b[3][2] = {{1.0F, 1.0F}, {3.0F, 4.0F}, {5.0F, 6.0F}};
 
     /*unsigned/signed test
     signed char -128 to 127
@@ -1025,10 +1031,10 @@ static int test_attributes_verbose_level(const char *fname1, const char *fname2)
 
     /* file1 attr */
     int    f1_attr_idata[2]= {1,2};        /* integer */
-    float  f1_attr_fdata[2]= {1.1,2.2};    /* float */
+    float  f1_attr_fdata[2]= {1.1F,2.2F};    /* float */
     /* file2 attr */
     int    f2_attr_idata[2]= {2,3};        /* integer */
-    float  f2_attr_fdata[2]= {2.1,3.2};    /* float */
+    float  f2_attr_fdata[2]= {2.1F,3.2F};    /* float */
 
 
     /*----------------------------------------------------------------------
@@ -4363,7 +4369,7 @@ static void test_comps_array (const char *fname, const char *dset, const char *a
         for(j=0; j < SDIM_CMPD_ARRAY; j++) 
         {
             wdata[i].cmpd2[j].i2 = i*10 + diff;
-            wdata[i].cmpd2[j].f2 = (float)(i*10.5) + diff;
+            wdata[i].cmpd2[j].f2 = (float)(i*10.5F) + diff;
         } /* end for */
     }
 
@@ -4480,7 +4486,7 @@ static void test_comps_vlen (const char * fname, const char *dset, const char *a
         for(j=0; j<(i+1); j++)
         {
             ((cmpd2_t *)wdata[i].vl.p)[j].i2 = i*10 + diff;
-            ((cmpd2_t *)wdata[i].vl.p)[j].f2 = (float)(i*10.5) + diff;
+            ((cmpd2_t *)wdata[i].vl.p)[j].f2 = (float)(i*10.5F) + diff;
         } /* end for */
     } /* end for */
 
@@ -4606,7 +4612,7 @@ static void test_comps_array_vlen (const char * fname, const char *dset,const ch
             {
                 /* Initialize data of compound3 */
                 ((cmpd3_t *)wdata[i].cmpd2[j].vl.p)[k].i3 = j*10 + diff;
-                ((cmpd3_t *)wdata[i].cmpd2[j].vl.p)[k].f3 = (float)(j*10.5) + diff;
+                ((cmpd3_t *)wdata[i].cmpd2[j].vl.p)[k].f3 = (float)(j*10.5F) + diff;
             } /* end for */
         } /* end for */
     }
@@ -4753,8 +4759,8 @@ static void test_comps_vlen_arry (const char * fname, const char *dset, const ch
             for (k=0; k < SDIM_CMPD_ARRAY; k++)
             {
                 /* compound 3 data */
-                ((cmpd2_t *)(wdata[i].vl.p))[j].cmpd3[k].i3 = k*10.5 + diff;
-                ((cmpd2_t *)(wdata[i].vl.p))[j].cmpd3[k].f3 = (float)(k*10.5) + diff;
+                ((cmpd2_t *)(wdata[i].vl.p))[j].cmpd3[k].i3 = k*10.5F + diff;
+                ((cmpd2_t *)(wdata[i].vl.p))[j].cmpd3[k].f3 = (float)(k*10.5F) + diff;
             }
         } /* end for */
     } /* end for */
@@ -5246,27 +5252,27 @@ void write_attr_in(hid_t loc_id,
     char       buf1[2][STR_SIZE]= {"ab","de"};        /* string */
     char       *buf1a[2];                             /* VL string */
     char       buf2[2]= {1,2};                 /* bitfield, opaque */
-    s_t        buf3[2]= {{1,2},{3,4}};         /* compound */
+    s_t        buf3[2]= {{1,2.0F},{3,4.0F}};         /* compound */
     hobj_ref_t buf4[2];                        /* reference */
     e_t        buf45[2]= {RED,RED};            /* enum */
     hvl_t      buf5[2];                        /* vlen */
     hsize_t    dimarray[1]={3};                /* array dimension */
     int        buf6[2][3]= {{1,2,3},{4,5,6}};  /* array */
     int        buf7[2]= {1,2};                 /* integer */
-    float      buf8[2]= {1,2};                 /* float */
+    float      buf8[2]= {1.0F, 2.0F};                 /* float */
 
     /* create 2D attributes with dimension [3][2], 6 elements */
     hsize_t    dims2[2]={3,2};
-    char       buf12[3][2][STR_SIZE]= {{"ab","cd"},{"ef","gh"},{"ij","kl"}};     /* string */
-    char       *buf12a[3][2];                                               /* VL string */
-    char       buf22[3][2]= {{1,2},{3,4},{5,6}};                     /* bitfield, opaque */
-    s_t        buf32[6]= {{1,2},{3,4},{5,6},{7,8},{9,10},{11,12}};   /* compound */
-    hobj_ref_t buf42[3][2];                                          /* reference */
-    e_t        buf452[3][2];                                         /* enum */
-    hvl_t      buf52[3][2];                                          /* vlen */
-    int        buf62[6][3]= {{1,2,3},{4,5,6},{7,8,9},{10,11,12},{13,14,15},{16,17,18}};  /* array */
-    int        buf72[3][2]= {{1,2},{3,4},{5,6}};                     /* integer */
-    float      buf82[3][2]= {{1,2},{3,4},{5,6}};                     /* float */
+    char       buf12[3][2][STR_SIZE]= {{"ab","cd"},{"ef","gh"},{"ij","kl"}};            /* string */
+    char       *buf12a[3][2];                                                           /* VL string */
+    char       buf22[3][2]= {{1,2},{3,4},{5,6}};                                        /* bitfield, opaque */
+    s_t        buf32[6]= {{1,2.0F},{3,4.0F},{5,6.0F},{7,8.0F},{9,10.0F},{11,12.0F}};    /* compound */
+    hobj_ref_t buf42[3][2];                                                             /* reference */
+    e_t        buf452[3][2];                                                            /* enum */
+    hvl_t      buf52[3][2];                                                             /* vlen */
+    int        buf62[6][3]= {{1,2,3},{4,5,6},{7,8,9},{10,11,12},{13,14,15},{16,17,18}}; /* array */
+    int        buf72[3][2]= {{1,2},{3,4},{5,6}};                                        /* integer */
+    float      buf82[3][2]= {{1.0F,2.0F},{3.0F,4.0F},{5.0F,6.0F}};                      /* float */
 
     /* create 3D attributes with dimension [4][3][2], 24 elements */
     hsize_t    dims3[3]={4,3,2};
@@ -6017,7 +6023,7 @@ void write_attr_in(hid_t loc_id,
             for (k = 0; k < 2; k++) {
                 if (make_diffs) {
                     buf33[i][j][k].a=0;
-                    buf33[i][j][k].b=0;
+                    buf33[i][j][k].b=0.0F;
                 }
                 else {
                     buf33[i][j][k].a=n++;
@@ -6231,7 +6237,7 @@ void write_attr_in(hid_t loc_id,
             for (k = 0; k < 2; k++) {
                 if (make_diffs) {
                     buf73[i][j][k]=0;
-                    buf83[i][j][k]=0;
+                    buf83[i][j][k]=0.0F;
                 }
                 else {
                     buf73[i][j][k]=n++;
@@ -6303,26 +6309,26 @@ void write_dset_in(hid_t loc_id,
     char       buf1[2][STR_SIZE]= {"ab","de"}; /* string */
     char       *buf1a[2];                      /* VL string */
     char       buf2[2]= {1,2};                 /* bitfield, opaque */
-    s_t        buf3[2]= {{1,2},{3,4}};         /* compound */
+    s_t        buf3[2]= {{1,2.0F},{3,4.0F}};   /* compound */
     hobj_ref_t buf4[2];                        /* reference */
     e_t        buf45[2]= {RED,GREEN};          /* enum */
     hvl_t      buf5[2];                        /* vlen */
     hsize_t    dimarray[1]={3};                /* array dimension */
     int        buf6[2][3]= {{1,2,3},{4,5,6}};  /* array */
     int        buf7[2]= {1,2};                 /* integer */
-    float      buf8[2]= {1,2};                 /* float */
+    float      buf8[2]= {1.0F,2.0F};           /* float */
 
     /* create 2D attributes with dimension [3][2], 6 elements */
     hsize_t    dims2[2]={3,2};
     char       buf12[3][2][STR_SIZE]= {{"ab","cd"},{"ef","gh"},{"ij","kl"}};     /* string */
     char       *buf12a[3][2];                                        /* VL string */
     char       buf22[3][2]= {{1,2},{3,4},{5,6}};                     /* bitfield, opaque */
-    s_t        buf32[6]= {{1,2},{3,4},{5,6},{7,8},{9,10},{11,12}};   /* compound */
+    s_t        buf32[6]= {{1,2.0F},{3,4.0F},{5,6.0F},{7,8.0F},{9,10.0F},{11,12.0F}};   /* compound */
     hobj_ref_t buf42[3][2];                                          /* reference */
     hvl_t      buf52[3][2];                                          /* vlen */
     int        buf62[6][3]= {{1,2,3},{4,5,6},{7,8,9},{10,11,12},{13,14,15},{16,17,18}};  /* array */
     int        buf72[3][2]= {{1,2},{3,4},{5,6}};                     /* integer */
-    float      buf82[3][2]= {{1,2},{3,4},{5,6}};                     /* float */
+    float      buf82[3][2]= {{1.0F,2.0F},{3.0F,4.0F},{5.0F,6.0F}};                     /* float */
 
     /* create 3D attributes with dimension [4][3][2], 24 elements */
     hsize_t    dims3[3]={4,3,2};
@@ -6859,7 +6865,7 @@ void write_dset_in(hid_t loc_id,
                 if (make_diffs)
                 {
                     buf33[i][j][k].a=0;
-                    buf33[i][j][k].b=0;
+                    buf33[i][j][k].b=0.0F;
                 }
                 else {
                     buf33[i][j][k].a=n++;
@@ -6968,7 +6974,7 @@ void write_dset_in(hid_t loc_id,
             for (k = 0; k < 2; k++) {
                 if (make_diffs) {
                     buf73[i][j][k]=0;
-                    buf83[i][j][k]=0;
+                    buf83[i][j][k]=0.0F;
                 }
                 else {
                     buf73[i][j][k]=n++;
diff --git a/tools/h5dump/CMakeLists.txt b/tools/h5dump/CMakeLists.txt
index 584222e..7658c04 100644
--- a/tools/h5dump/CMakeLists.txt
+++ b/tools/h5dump/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required (VERSION 2.8.11)
+cmake_minimum_required (VERSION 3.1.0)
 PROJECT (HDF5_TOOLS_H5DUMP)
 
 #-----------------------------------------------------------------------------
@@ -15,7 +15,7 @@ add_executable (h5dump
     ${HDF5_TOOLS_H5DUMP_SOURCE_DIR}/h5dump_xml.c
 )
 TARGET_NAMING (h5dump ${LIB_TYPE})
-TARGET_C_PROPERTIES (h5dump " " " ")
+TARGET_C_PROPERTIES (h5dump ${LIB_TYPE} " " " ")
 target_link_libraries (h5dump  ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
 set_target_properties (h5dump PROPERTIES FOLDER tools)
 
@@ -27,8 +27,8 @@ if (BUILD_TESTING)
   # --------------------------------------------------------------------
   if (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS)
     add_executable (h5dumpgentest ${HDF5_TOOLS_H5DUMP_SOURCE_DIR}/h5dumpgentest.c)
-    TARGET_NAMING (h5dumpgentest ${LIB_TYPE})
-    TARGET_C_PROPERTIES (h5dumpgentest " " " ")
+    TARGET_NAMING (h5dumpgentest STATIC)
+    TARGET_C_PROPERTIES (h5dumpgentest STATIC " " " ")
     target_link_libraries (h5dumpgentest ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET})
     set_target_properties (h5dumpgentest PROPERTIES FOLDER generator/tools)
     
diff --git a/tools/h5dump/CMakeTests.cmake b/tools/h5dump/CMakeTests.cmake
index 07a48f7..49a5acd 100644
--- a/tools/h5dump/CMakeTests.cmake
+++ b/tools/h5dump/CMakeTests.cmake
@@ -49,6 +49,7 @@
       ${HDF5_TOOLS_SRC_DIR}/testfiles/tbin4.ddl
       ${HDF5_TOOLS_SRC_DIR}/testfiles/tbinregR.ddl
       ${HDF5_TOOLS_SRC_DIR}/testfiles/tbigdims.ddl
+      ${HDF5_TOOLS_SRC_DIR}/testfiles/tbitnopaque.ddl
       ${HDF5_TOOLS_SRC_DIR}/testfiles/tboot1.ddl
       ${HDF5_TOOLS_SRC_DIR}/testfiles/tboot2.ddl
       ${HDF5_TOOLS_SRC_DIR}/testfiles/tboot2A.ddl
@@ -204,6 +205,7 @@
       ${HDF5_TOOLS_SRC_DIR}/testfiles/tattrreg.h5
       ${HDF5_TOOLS_SRC_DIR}/testfiles/tbigdims.h5
       ${HDF5_TOOLS_SRC_DIR}/testfiles/tbinary.h5
+      ${HDF5_TOOLS_SRC_DIR}/testfiles/tbitnopaque.h5
       ${HDF5_TOOLS_SRC_DIR}/testfiles/tchar.h5
       ${HDF5_TOOLS_SRC_DIR}/testfiles/tcmpdattrintsize.h5
       ${HDF5_TOOLS_SRC_DIR}/testfiles/tcmpdintarray.h5
@@ -801,6 +803,8 @@
           tbinregR.out.err
           tbigdims.out
           tbigdims.out.err
+          tbitnopaque.out
+          tbitnopaque.out.err
           tboot1.out
           tboot1.out.err
           tboot2.out
@@ -1143,6 +1147,8 @@
   ADD_H5ERR_MASK_TEST (tcomp-3 0 "--enable-error-stack;-t;/#6632;-g;/group2;tcompound.h5")
   # test complicated compound datatype
   ADD_H5_TEST (tcomp-4 0 --enable-error-stack tcompound_complex.h5)
+  # tests for bitfields and opaque data types
+  ADD_H5_TEST (tbitnopaque 0 --enable-error-stack tbitnopaque.h5)
 
   #test for the nested compound type
   ADD_H5_TEST (tnestcomp-1 0 --enable-error-stack tnestedcomp.h5)
@@ -1329,30 +1335,14 @@
     set (USE_FILTER_SZIP "true")
   endif (H5_HAVE_FILTER_SZIP)
 
-  if (H5_HAVE_FILTER_SHUFFLE)
-    set (USE_FILTER_SHUFFLE "true")
-  endif (H5_HAVE_FILTER_SHUFFLE)
-
-  if (H5_HAVE_FILTER_FLETCHER32)
-    set (USE_FILTER_FLETCHER32 "true")
-  endif (H5_HAVE_FILTER_FLETCHER32)
-
-  if (H5_HAVE_FILTER_NBIT)
-    set (USE_FILTER_NBIT "true")
-  endif (H5_HAVE_FILTER_NBIT)
-
-  if (H5_HAVE_FILTER_SCALEOFFSET)
-    set (USE_FILTER_SCALEOFFSET "true")
-  endif (H5_HAVE_FILTER_SCALEOFFSET)
-
-  if (USE_FILTER_DEFLATE AND USE_FILTER_SHUFFLE AND USE_FILTER_FLETCHER32 AND USE_FILTER_NBIT AND USE_FILTER_SCALEOFFSET)
+  if (USE_FILTER_DEFLATE)
     # data read internal filters
     ADD_H5_TEST (treadintfilter 0 --enable-error-stack -d deflate -d shuffle -d fletcher32 -d nbit -d scaleoffset tfilters.h5)
     if (HDF5_ENABLE_SZIP_SUPPORT)
       # data read all filters
       ADD_H5_TEST (treadfilter 0 --enable-error-stack -d all -d szip tfilters.h5)
     endif (HDF5_ENABLE_SZIP_SUPPORT)
-  endif (USE_FILTER_DEFLATE AND USE_FILTER_SHUFFLE AND USE_FILTER_FLETCHER32 AND USE_FILTER_NBIT AND USE_FILTER_SCALEOFFSET)
+  endif (USE_FILTER_DEFLATE)
 
   # test for displaying objects with very long names
   ADD_H5_TEST (tlonglinks 0 --enable-error-stack tlonglinks.h5)
diff --git a/tools/h5dump/CMakeTestsXML.cmake b/tools/h5dump/CMakeTestsXML.cmake
index 0d4e0f4..0a667c4 100644
--- a/tools/h5dump/CMakeTestsXML.cmake
+++ b/tools/h5dump/CMakeTestsXML.cmake
@@ -411,14 +411,6 @@
   ADD_XML_H5_TEST (tempty-dtd.h5 0 --use-dtd tempty.h5)
   ADD_XML_H5_TEST (tempty-dtd-2.h5 0 -u tempty.h5)
 
-  # The lone colon here confuses some systems (Cray X1).  Skip
-  # it if configure detects that this is a problem.
-  set (TESTTYPE "TEST")
-  if (NOT "H5_LONE_COLON")
-    set (TESTTYPE "SKIP")
-  endif (NOT "H5_LONE_COLON")
-  ADD_XML_SKIP_H5_TEST (tempty-nons.h5 0 ${TESTTYPE} -X : tempty.h5)
-
   ADD_XML_H5_TEST (tempty-nons-2.h5 0 --xml-ns=: tempty.h5)
 
   ## Some of these combinations are syntactically correct but
diff --git a/tools/h5dump/Makefile.in b/tools/h5dump/Makefile.in
index 8cb1661..7371adf 100644
--- a/tools/h5dump/Makefile.in
+++ b/tools/h5dump/Makefile.in
@@ -106,7 +106,8 @@ bin_PROGRAMS = h5dump$(EXEEXT)
 TESTS = $(am__EXEEXT_1) $(TEST_SCRIPT)
 subdir = tools/h5dump
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \
+	$(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs
@@ -419,7 +420,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@
 AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@
 AM_MAKEFLAGS = @AM_MAKEFLAGS@
 AR = @AR@
-AS = @AS@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -451,7 +451,6 @@ DIRECT_VFD = @DIRECT_VFD@
 DLLTOOL = @DLLTOOL@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
-DYNAMIC_DIRS = @DYNAMIC_DIRS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -470,17 +469,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@
 FCLIBS = @FCLIBS@
 FC_VERSION = @FC_VERSION@
 FGREP = @FGREP@
-FILTERS = @FILTERS@
 FSEARCH_DIRS = @FSEARCH_DIRS@
 GREP = @GREP@
 H5_CFLAGS = @H5_CFLAGS@
 H5_CPPFLAGS = @H5_CPPFLAGS@
 H5_CXXFLAGS = @H5_CXXFLAGS@
-H5_CXX_SHARED = @H5_CXX_SHARED@
 H5_FCFLAGS = @H5_FCFLAGS@
 H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@
 H5_LDFLAGS = @H5_LDFLAGS@
-H5_LONE_COLON = @H5_LONE_COLON@
 H5_VERSION = @H5_VERSION@
 HADDR_T = @HADDR_T@
 HAVE_DMALLOC = @HAVE_DMALLOC@
@@ -503,7 +499,6 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INSTRUMENT = @INSTRUMENT@
 INSTRUMENT_LIBRARY = @INSTRUMENT_LIBRARY@
-LARGEFILE = @LARGEFILE@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
@@ -544,7 +539,6 @@ R_INTEGER = @R_INTEGER@
 R_LARGE = @R_LARGE@
 SEARCH = @SEARCH@
 SED = @SED@
-SETX = @SETX@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIZE_T = @SIZE_T@
@@ -559,10 +553,6 @@ TR = @TR@
 TRACE_API = @TRACE_API@
 UNAME_INFO = @UNAME_INFO@
 USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@
-USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@
-USE_FILTER_NBIT = @USE_FILTER_NBIT@
-USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@
-USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@
 USE_FILTER_SZIP = @USE_FILTER_SZIP@
 USINGMEMCHECKER = @USINGMEMCHECKER@
 VERSION = @VERSION@
@@ -676,11 +666,11 @@ TRACE = perl $(top_srcdir)/bin/trace
 
 # .chkexe files are used to mark tests that have run successfully.
 # .chklog files are output from those tests.
-# *.clog are from the MPE option.
+# *.clog and *.clog2 are from the MPE option.
 
 # Temporary files.  *.h5 are generated by h5dumpgentest.  They should
 # copied to the testfiles/ directory if update is required.
-CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.h5 *.bin
+CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 *.h5 *.bin
 
 # Test programs and scripts
 TEST_PROG = h5dumpgentest
diff --git a/tools/h5dump/binread.c b/tools/h5dump/binread.c
index 5abb9af..74db92c 100644
--- a/tools/h5dump/binread.c
+++ b/tools/h5dump/binread.c
@@ -49,8 +49,7 @@
 static void
 usage (void)
 {
- fprintf(stderr, "\
- usage: binread FILE_NAME\n");
+    fprintf(stderr, "usage: binread FILE_NAME\n");
 }
 
 /*-------------------------------------------------------------------------
@@ -64,38 +63,35 @@ usage (void)
 int
 main (int argc, const char *argv[])
 {
- FILE  *stream;
- int    numread;
- TYPE   buf[NELMTS];
- size_t i, nelmts = NELMTS;
- char  *fname=NULL;
-
- if (argc != 2)
- {
-  usage();
-  exit(1);
- }
-
- fname = strdup(argv[1]);
-
- if( (stream = fopen(fname, "rb" )) != NULL )
- {
-  numread = fread( buf, sizeof( TYPE ), nelmts, stream );
-  printf( "Number of items read = %d\n", numread );
-
-  for (i = 0; i < nelmts; i++)
-  {
-   printf(FORMAT,buf[i]);
-  }
-  printf("\n");
-
-  fclose( stream );
- }
- else
-  printf( "File %s could not be opened\n",fname );
-
- free(fname);
-
- return 0;
+    FILE  *stream;
+    size_t numread;
+    TYPE   buf[NELMTS];
+    size_t i, nelmts = NELMTS;
+    char  *fname=NULL;
+
+    if (argc != 2) {
+        usage();
+        exit(1);
+    }
+
+    fname = strdup(argv[1]);
+
+    if((stream = fopen(fname, "rb")) != NULL) {
+        numread = fread(buf, sizeof( TYPE ), nelmts, stream);
+        printf("Number of items read = %llu\n", (unsigned long long)numread);
+
+        for (i = 0; i < nelmts; i++) {
+            printf(FORMAT,buf[i]);
+        }
+        printf("\n");
+
+        fclose(stream);
+    }
+    else
+        printf("File %s could not be opened\n", fname);
+
+    free(fname);
+
+    return 0;
 }
 
diff --git a/tools/h5dump/errfiles/tarray1_big.err b/tools/h5dump/errfiles/tarray1_big.err
index edfe0df..d5cd435 100644
--- a/tools/h5dump/errfiles/tarray1_big.err
+++ b/tools/h5dump/errfiles/tarray1_big.err
@@ -2,59 +2,23 @@ HDF5-DIAG: Error detected in HDF5 (version (number)) thread (IDs):
   #000: (file name) line (number) in H5Rdereference(): unable to dereference object
     major: References
     minor: Unable to initialize object
-  #001: (file name) line (number) in H5R_dereference(): Unable to read dataset region information
-    major: References
-    minor: Read failed
-  #002: (file name) line (number) in H5HG_read(): unable to protect global heap
-    major: Heap
-    minor: Unable to protect metadata
-  #003: (file name) line (number) in H5HG_protect(): unable to protect global heap
-    major: Heap
-    minor: Unable to protect metadata
-  #004: (file name) line (number) in H5AC_protect(): H5C_protect() failed.
-    major: Object cache
-    minor: Unable to protect metadata
-  #005: (file name) line (number) in H5C_protect(): incorrect cache entry type
-    major: Object cache
-    minor: Inappropriate type
+  #001: (file name) line (number) in H5R_dereference(): Undefined reference pointer
+    major: Invalid arguments to routine
+    minor: Bad value
 HDF5-DIAG: Error detected in HDF5 (version (number)) thread (IDs):
   #000: (file name) line (number) in H5Rdereference(): unable to dereference object
     major: References
     minor: Unable to initialize object
-  #001: (file name) line (number) in H5R_dereference(): Unable to read dataset region information
-    major: References
-    minor: Read failed
-  #002: (file name) line (number) in H5HG_read(): unable to protect global heap
-    major: Heap
-    minor: Unable to protect metadata
-  #003: (file name) line (number) in H5HG_protect(): unable to protect global heap
-    major: Heap
-    minor: Unable to protect metadata
-  #004: (file name) line (number) in H5AC_protect(): H5C_protect() failed.
-    major: Object cache
-    minor: Unable to protect metadata
-  #005: (file name) line (number) in H5C_protect(): incorrect cache entry type
-    major: Object cache
-    minor: Inappropriate type
+  #001: (file name) line (number) in H5R_dereference(): Undefined reference pointer
+    major: Invalid arguments to routine
+    minor: Bad value
 HDF5-DIAG: Error detected in HDF5 (version (number)) thread (IDs):
   #000: (file name) line (number) in H5Rdereference(): unable to dereference object
     major: References
     minor: Unable to initialize object
-  #001: (file name) line (number) in H5R_dereference(): Unable to read dataset region information
-    major: References
-    minor: Read failed
-  #002: (file name) line (number) in H5HG_read(): unable to protect global heap
-    major: Heap
-    minor: Unable to protect metadata
-  #003: (file name) line (number) in H5HG_protect(): unable to protect global heap
-    major: Heap
-    minor: Unable to protect metadata
-  #004: (file name) line (number) in H5AC_protect(): H5C_protect() failed.
-    major: Object cache
-    minor: Unable to protect metadata
-  #005: (file name) line (number) in H5C_protect(): incorrect cache entry type
-    major: Object cache
-    minor: Inappropriate type
+  #001: (file name) line (number) in H5R_dereference(): Undefined reference pointer
+    major: Invalid arguments to routine
+    minor: Bad value
 H5tools-DIAG: Error detected in HDF5:tools (version (number)) thread (IDs):
   #000: (file name) line (number) in h5tools_dump_simple_data(): H5Rdereference failed
     major: Failure in tools library
diff --git a/tools/h5dump/errfiles/tattrregR.err b/tools/h5dump/errfiles/tattrregR.err
index 4dca3ae..c5aa5ba 100644
--- a/tools/h5dump/errfiles/tattrregR.err
+++ b/tools/h5dump/errfiles/tattrregR.err
@@ -2,40 +2,16 @@ HDF5-DIAG: Error detected in HDF5 (version (number)) thread (IDs):
   #000: (file name) line (number) in H5Rdereference(): unable to dereference object
     major: References
     minor: Unable to initialize object
-  #001: (file name) line (number) in H5R_dereference(): Unable to read dataset region information
-    major: References
-    minor: Read failed
-  #002: (file name) line (number) in H5HG_read(): unable to protect global heap
-    major: Heap
-    minor: Unable to protect metadata
-  #003: (file name) line (number) in H5HG_protect(): unable to protect global heap
-    major: Heap
-    minor: Unable to protect metadata
-  #004: (file name) line (number) in H5AC_protect(): H5C_protect() failed.
-    major: Object cache
-    minor: Unable to protect metadata
-  #005: (file name) line (number) in H5C_protect(): incorrect cache entry type
-    major: Object cache
-    minor: Inappropriate type
+  #001: (file name) line (number) in H5R_dereference(): Undefined reference pointer
+    major: Invalid arguments to routine
+    minor: Bad value
 HDF5-DIAG: Error detected in HDF5 (version (number)) thread (IDs):
   #000: (file name) line (number) in H5Rdereference(): unable to dereference object
     major: References
     minor: Unable to initialize object
-  #001: (file name) line (number) in H5R_dereference(): Unable to read dataset region information
-    major: References
-    minor: Read failed
-  #002: (file name) line (number) in H5HG_read(): unable to protect global heap
-    major: Heap
-    minor: Unable to protect metadata
-  #003: (file name) line (number) in H5HG_protect(): unable to protect global heap
-    major: Heap
-    minor: Unable to protect metadata
-  #004: (file name) line (number) in H5AC_protect(): H5C_protect() failed.
-    major: Object cache
-    minor: Unable to protect metadata
-  #005: (file name) line (number) in H5C_protect(): incorrect cache entry type
-    major: Object cache
-    minor: Inappropriate type
+  #001: (file name) line (number) in H5R_dereference(): Undefined reference pointer
+    major: Invalid arguments to routine
+    minor: Bad value
 H5tools-DIAG: Error detected in HDF5:tools (version (number)) thread (IDs):
   #000: (file name) line (number) in h5tools_dump_simple_data(): H5Rdereference failed
     major: Failure in tools library
diff --git a/tools/h5dump/errfiles/tdataregR.err b/tools/h5dump/errfiles/tdataregR.err
index 4dca3ae..c5aa5ba 100644
--- a/tools/h5dump/errfiles/tdataregR.err
+++ b/tools/h5dump/errfiles/tdataregR.err
@@ -2,40 +2,16 @@ HDF5-DIAG: Error detected in HDF5 (version (number)) thread (IDs):
   #000: (file name) line (number) in H5Rdereference(): unable to dereference object
     major: References
     minor: Unable to initialize object
-  #001: (file name) line (number) in H5R_dereference(): Unable to read dataset region information
-    major: References
-    minor: Read failed
-  #002: (file name) line (number) in H5HG_read(): unable to protect global heap
-    major: Heap
-    minor: Unable to protect metadata
-  #003: (file name) line (number) in H5HG_protect(): unable to protect global heap
-    major: Heap
-    minor: Unable to protect metadata
-  #004: (file name) line (number) in H5AC_protect(): H5C_protect() failed.
-    major: Object cache
-    minor: Unable to protect metadata
-  #005: (file name) line (number) in H5C_protect(): incorrect cache entry type
-    major: Object cache
-    minor: Inappropriate type
+  #001: (file name) line (number) in H5R_dereference(): Undefined reference pointer
+    major: Invalid arguments to routine
+    minor: Bad value
 HDF5-DIAG: Error detected in HDF5 (version (number)) thread (IDs):
   #000: (file name) line (number) in H5Rdereference(): unable to dereference object
     major: References
     minor: Unable to initialize object
-  #001: (file name) line (number) in H5R_dereference(): Unable to read dataset region information
-    major: References
-    minor: Read failed
-  #002: (file name) line (number) in H5HG_read(): unable to protect global heap
-    major: Heap
-    minor: Unable to protect metadata
-  #003: (file name) line (number) in H5HG_protect(): unable to protect global heap
-    major: Heap
-    minor: Unable to protect metadata
-  #004: (file name) line (number) in H5AC_protect(): H5C_protect() failed.
-    major: Object cache
-    minor: Unable to protect metadata
-  #005: (file name) line (number) in H5C_protect(): incorrect cache entry type
-    major: Object cache
-    minor: Inappropriate type
+  #001: (file name) line (number) in H5R_dereference(): Undefined reference pointer
+    major: Invalid arguments to routine
+    minor: Bad value
 H5tools-DIAG: Error detected in HDF5:tools (version (number)) thread (IDs):
   #000: (file name) line (number) in h5tools_dump_simple_data(): H5Rdereference failed
     major: Failure in tools library
diff --git a/tools/h5dump/h5dumpgentest.c b/tools/h5dump/h5dumpgentest.c
index 046c5e1..012dbe0 100644
--- a/tools/h5dump/h5dumpgentest.c
+++ b/tools/h5dump/h5dumpgentest.c
@@ -389,7 +389,7 @@ gent_dataset(void)
 
     for(i = 0; i < 30; i++)
         for(j = 0; j < 20; j++)
-            dset2[i][j] = 0.0001 * j + i;
+            dset2[i][j] = 0.0001F * j + i;
 
     H5Dwrite(dataset, H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, dset2);
 
@@ -484,7 +484,7 @@ gent_attribute(void)
     space = H5Screate_simple(1, dims, NULL);
     attr = H5Acreate2(root, "attr3", H5T_IEEE_F64BE, space, H5P_DEFAULT, H5P_DEFAULT);
 
-    for(i = 0; i < 10; i++) d[i] = 0.1 * i;
+    for(i = 0; i < 10; i++) d[i] = 0.1F * i;
 
     H5Awrite(attr, H5T_NATIVE_DOUBLE, d);
     H5Sclose(space);
@@ -912,16 +912,16 @@ static void gent_compound_dt(void) {       /* test compound data type */
     for(i = 0; i < (int)sdim; i++) {
         dset1[i].a = i;
         dset1[i].b = (float)(i*i);
-        dset1[i].c = (float)(1./(i+1));
+        dset1[i].c = (float)(1.0F/(i+1));
 
         dset2[i].a = i;
-        dset2[i].b = (float)(i+ i*0.1);
+        dset2[i].b = (float)(i+ i*0.1F);
 
         dset4[i].a = i;
         dset4[i].b = (float)(i+3);
 
         dset5[i].a = i;
-        dset5[i].b = (float)(i*0.1);
+        dset5[i].b = (float)(i*0.1F);
     }
 
 
@@ -1097,16 +1097,16 @@ static void gent_compound_dt2(void) {       /* test compound data type */
     for(i = 0; i < (int)sdim; i++) {
         dset1[i].a = i;
         dset1[i].b = (float)(i*i);
-        dset1[i].c = (float)(1./(i+1));
+        dset1[i].c = (float)(1.0F/(i+1));
 
         dset2[i].a = i;
-        dset2[i].b = (float)(i+ i*0.1);
+        dset2[i].b = (float)(i+ i*0.1F);
 
         dset4[i].a = i;
-        dset4[i].b = (float)(i*1.0);
+        dset4[i].b = (float)(i*1.0F);
 
         dset5[i].a = i;
-        dset5[i].b = (float)(i*1.0);
+        dset5[i].b = (float)(i*1.0F);
     }
 
     fid = H5Fcreate(FILE9, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
@@ -1346,7 +1346,7 @@ static void gent_all(void)
     space = H5Screate_simple(1, dims, NULL);
     dataset = H5Dcreate2(group, "dset2.1", H5T_IEEE_F32BE, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
     for(i = 0; i < 10; i++)
-        dset2_1[i] = (float)(i * 0.1 + 1);
+        dset2_1[i] = (float)(i * 0.1F + 1);
     H5Dwrite(dataset, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, H5P_DEFAULT, dset2_1);
     H5Sclose(space);
     H5Dclose(dataset);
@@ -1357,7 +1357,7 @@ static void gent_all(void)
     dataset = H5Dcreate2(group, "dset2.2", H5T_IEEE_F32BE, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
     for(i = 0; i < 3; i++)
         for(j = 0; j < 5; j++)
-            dset2_2[i][j] = (float)((i + 1) * j * 0.1);
+            dset2_2[i][j] = (float)((i + 1) * j * 0.1F);
     H5Dwrite(dataset, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, H5P_DEFAULT, dset2_2);
     H5Sclose(space);
     H5Dclose(dataset);
@@ -1525,7 +1525,7 @@ gent_many(void)
     space2 = H5Screate_simple(1, dims, NULL);
     attr = H5Acreate2(dataset, "attr3", H5T_IEEE_F64BE, space2, H5P_DEFAULT, H5P_DEFAULT);
     for(i = 0; i < 10; i++)
-        d[i] = 0.1 * i;
+        d[i] = 0.1F * i;
     H5Awrite(attr, H5T_NATIVE_DOUBLE, d);
     H5Sclose(space2);
     H5Aclose(attr);
@@ -2338,10 +2338,10 @@ static void gent_nestcomp(void)
     for(i = 0; i< 10; i++) {
         s1[i].a = i;
         s1[i].b = (float)(i*i);
-        s1[i].c = 1./(i+1);
+        s1[i].c = 1.0F/(i+1);
         s1[i].d.a = 65 + i;
-        s1[i].d.b[0] = -100.;
-        s1[i].d.b[1] =  100.;
+        s1[i].d.b[0] = -100.0F;
+        s1[i].d.b[1] =  100.0F;
     }
 
     /*
@@ -2542,7 +2542,7 @@ static void gent_vldatatypes(void)
         wdata[i].len = i + 1;
 
         for(j = 0; j < i + 1; j++)
-            ((float *)wdata[i].p)[j] = (float)(i * 10 + ((float)j) / 10.0);
+            ((float *)wdata[i].p)[j] = (float)(i * 10 + ((float)j) / 10.0F);
     }
 
     /* write out the floats in little-endian format */
@@ -2676,7 +2676,7 @@ static void gent_vldatatypes3(void)
     /* Allocate and initialize VL data to write */
     for(i=0; i<SPACE1_DIM1; i++) {
         wdata[i].i=i*10;
-        wdata[i].f=(float)((i*20)/3.0);
+        wdata[i].f=(float)((i*20)/3.0F);
         wdata[i].v.p=HDmalloc((i+1)*sizeof(unsigned int));
         wdata[i].v.len=i+1;
         for(j=0; j<(i+1); j++)
@@ -2748,7 +2748,7 @@ static void gent_vldatatypes4(void)
         wdata[i].len=i+1;
         for(j=0; j<(i+1); j++) {
             ((s1 *)wdata[i].p)[j].i=i*10+j;
-            ((s1 *)wdata[i].p)[j].f=(float)((i*20+j)/3.0);
+            ((s1 *)wdata[i].p)[j].f=(float)((i*20+j)/3.0F);
         } /* end for */
     } /* end for */
 
@@ -3119,7 +3119,7 @@ static void gent_array4(void)
     for(i=0; i<SPACE1_DIM1; i++)
         for(j=0; j<ARRAY1_DIM1; j++) {
             wdata[i][j].i=i*10+j;
-            wdata[i][j].f=(float)(i*2.5+j);
+            wdata[i][j].f=(float)(i*2.5F+j);
         } /* end for */
 
     /* Create file */
@@ -3187,7 +3187,7 @@ static void gent_array5(void)
         for(j=0; j<ARRAY1_DIM1; j++) {
             wdata[i][j].i=i*10+j;
             for(k=0; k<ARRAY1_DIM1; k++)
-                wdata[i][j].f[k]=(float)(i*10+j*2.5+k);
+                wdata[i][j].f[k]=(float)(i*10+j*2.5F+k);
         } /* end for */
 
     /* Create file */
@@ -4893,10 +4893,10 @@ static void gent_compound_complex(void)
             }
         }
 
-        Array1[m].e = (float)( m * .96 );
+        Array1[m].e = (float)( m * 0.96F );
 
         for(n = 0; n < F41_ARRAY_DIMf; n++) {
-            Array1[m].f[n] = ( m * 1024.9637 );
+            Array1[m].f[n] = ( m * 1024.9637F );
         }
 
         Array1[m].g = 'm';
@@ -5393,7 +5393,7 @@ static void gent_filters(void)
      * shuffle
      *-------------------------------------------------------------------------
      */
-#if defined (H5_HAVE_FILTER_SHUFFLE)
+
     /* remove the filters from the dcpl */
     ret = H5Premove_filter(dcpl,H5Z_FILTER_ALL);
     HDassert(ret >= 0);
@@ -5404,14 +5404,13 @@ static void gent_filters(void)
 
     ret=make_dset(fid,"shuffle",sid,H5T_NATIVE_INT,dcpl,buf1);
     HDassert(ret >= 0);
-#endif
 
 
     /*-------------------------------------------------------------------------
      * checksum
      *-------------------------------------------------------------------------
      */
-#if defined (H5_HAVE_FILTER_FLETCHER32)
+
     /* remove the filters from the dcpl */
     ret = H5Premove_filter(dcpl,H5Z_FILTER_ALL);
     HDassert(ret >= 0);
@@ -5422,13 +5421,12 @@ static void gent_filters(void)
 
     ret=make_dset(fid,"fletcher32",sid,H5T_NATIVE_INT,dcpl,buf1);
     HDassert(ret >= 0);
-#endif
 
     /*-------------------------------------------------------------------------
      * nbit
      *-------------------------------------------------------------------------
      */
-#if defined (H5_HAVE_FILTER_NBIT)
+
     /* remove the filters from the dcpl */
     ret = H5Premove_filter(dcpl,H5Z_FILTER_ALL);
     HDassert(ret >= 0);
@@ -5441,13 +5439,12 @@ static void gent_filters(void)
     H5Tset_precision(tid,H5Tget_size(tid)-1);
     ret=make_dset(fid,"nbit",sid,tid,dcpl,buf1);
     HDassert(ret >= 0);
-#endif
 
     /*-------------------------------------------------------------------------
      * scaleoffset
      *-------------------------------------------------------------------------
      */
-#if defined (H5_HAVE_FILTER_SCALEOFFSET)
+
     /* remove the filters from the dcpl */
     ret = H5Premove_filter(dcpl,H5Z_FILTER_ALL);
     HDassert(ret >= 0);
@@ -5458,7 +5455,6 @@ static void gent_filters(void)
 
     ret=make_dset(fid,"scaleoffset",sid,H5T_NATIVE_INT,dcpl,buf1);
     HDassert(ret >= 0);
-#endif
 
     /*-------------------------------------------------------------------------
      * all filters
@@ -5468,11 +5464,9 @@ static void gent_filters(void)
     ret = H5Premove_filter(dcpl,H5Z_FILTER_ALL);
     HDassert(ret >= 0);
 
-#if defined (H5_HAVE_FILTER_SHUFFLE)
     /* set the shuffle filter */
     ret = H5Pset_shuffle(dcpl);
     HDassert(ret >= 0);
-#endif
 
 #ifdef H5_HAVE_FILTER_SZIP
     if(h5tools_can_encode(H5Z_FILTER_SZIP) == 1) {
@@ -5489,17 +5483,13 @@ static void gent_filters(void)
     HDassert(ret >= 0);
 #endif
 
-#if defined (H5_HAVE_FILTER_FLETCHER32)
     /* set the checksum filter */
     ret = H5Pset_fletcher32(dcpl);
     HDassert(ret >= 0);
-#endif
 
-#if defined (H5_HAVE_FILTER_NBIT)
     /* set the nbit filter */
     ret = H5Pset_nbit(dcpl);
     HDassert(ret >= 0);
-#endif
 
     ret=make_dset(fid,"all",sid,H5T_NATIVE_INT,dcpl,buf1);
     HDassert(ret >= 0);
@@ -6843,7 +6833,7 @@ gent_fpformat(void)
 {
     hid_t    fid, sid, did;
     hsize_t  dims[1]  = {6};
-    double   dbuf[6]  = {-0.1234567, 0.1234567, 0, 0, 0, 0};
+    double   dbuf[6]  = {-0.1234567f, 0.1234567f, 0, 0, 0, 0};
     float    fbuf[6]  = {-0.1234567f, 0.1234567f, 0, 0, 0, 0};
 
     fid = H5Fcreate(FILE60, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
@@ -7136,7 +7126,7 @@ gent_packedbits(void)
 
     for(i = 0; i < dims[0]; i++)
         for(j = 0; j < dims[1]; j++)
-            dsetdbl[i][j] = 0.0001 * j + i;
+            dsetdbl[i][j] = 0.0001F * j + i;
 
     H5Dwrite(dataset, H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, dsetdbl);
 
@@ -7326,7 +7316,7 @@ gent_attr_intsize(void)
 
     for(i = 0; i < dims[0]; i++)
         for(j = 0; j < dims[1]; j++)
-            dsetdbl[i][j] = 0.0001 * j + i;
+            dsetdbl[i][j] = 0.0001F * j + i;
 
     H5Awrite(attr, H5T_NATIVE_DOUBLE, dsetdbl);
 
@@ -7534,7 +7524,7 @@ static void gent_compound_intsizes(void) {
 
         for(n = 0; n < dims[0]; n++)
             for(o = 0; o < dims[1]; o++)
-                Array1[m].dsetdbl[n][o] = 0.0001 * o + n;
+                Array1[m].dsetdbl[n][o] = 0.0001F * o + n;
     }
 
     /* Create the array data type for the 8 bits signed int array             */
@@ -7809,7 +7799,7 @@ static void gent_compound_attr_intsizes(void) {
 
         for(n = 0; n < dims[0]; n++)
             for(o = 0; o < dims[1]; o++)
-                Array1[m].dsetdbl[n][o] = 0.0001 * o + n;
+                Array1[m].dsetdbl[n][o] = 0.0001F * o + n;
     }
 
     /* Create the array data type for the 8 bits signed int array             */
@@ -7977,17 +7967,17 @@ static void gent_nested_compound_dt(void) {       /* test nested data type */
         dset1[i].b = (float)(i*i);
 
         dset2[i].a = i;
-        dset2[i].b = (float)(i+i*0.1);
+        dset2[i].b = (float)(i+i*0.1F);
         dset2[i].c = GREEN;
 
         for(j = 0; j < 5; j++) {
             dset3[i].a[j] = i*j;
             for(k = 0; k < 6; k++) {
-                dset3[i].b[j][k] = (float)(i*j*k*1.0);
+                dset3[i].b[j][k] = (float)(i*j*k*1.0F);
             }
         }
         dset3[i].c.a = i;
-        dset3[i].c.b = (float)(i*1.0);
+        dset3[i].c.b = (float)(i*1.0F);
     }
 
     fid = H5Fcreate(FILE72, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
@@ -8275,7 +8265,7 @@ gent_intscalars(void)
 
     for(i = 0; i < dims[0]; i++)
         for(j = 0; j < dims[1]; j++)
-            dsetdbl[i][j] = 0.0001 * j + i;
+            dsetdbl[i][j] = 0.0001F * j + i;
 
     H5Dwrite(dataset, tid, H5S_ALL, H5S_ALL, H5P_DEFAULT, dsetdbl);
 
@@ -8474,7 +8464,7 @@ gent_attr_intscalars(void)
 
     for(i = 0; i < dims[0]; i++)
         for(j = 0; j < dims[1]; j++)
-            dsetdbl[i][j] = 0.0001 * j + i;
+            dsetdbl[i][j] = 0.0001F * j + i;
 
     H5Awrite(attr, tid, dsetdbl);
 
diff --git a/tools/h5dump/testh5dump.sh.in b/tools/h5dump/testh5dump.sh.in
index 6fd100f..49c947d 100644
--- a/tools/h5dump/testh5dump.sh.in
+++ b/tools/h5dump/testh5dump.sh.in
@@ -19,10 +19,6 @@ srcdir=@srcdir@
 
 USE_FILTER_SZIP="@USE_FILTER_SZIP@"
 USE_FILTER_DEFLATE="@USE_FILTER_DEFLATE@"
-USE_FILTER_SHUFFLE="@USE_FILTER_SHUFFLE@"
-USE_FILTER_FLETCHER32="@USE_FILTER_FLETCHER32@"
-USE_FILTER_NBIT="@USE_FILTER_NBIT@"
-USE_FILTER_SCALEOFFSET="@USE_FILTER_SCALEOFFSET@"
 
 TESTNAME=h5dump
 EXIT_SUCCESS=0
@@ -438,8 +434,21 @@ TESTING() {
 # the actual output file is calculated by replacing the `.ddl' with
 # `.out'.  The actual output is not removed if $HDF5_NOCLEANUP has a
 # non-zero value.
+# If $1 == ignorecase then do caseless CMP and DIFF.
 # ADD_H5_TEST
 TOOLTEST() {
+    # check if caseless compare and diff requested
+    if [ "$1" = ignorecase ]; then
+	caseless="-i"
+	# replace cmp with diff which runs much longer.
+	xCMP="$DIFF -i"
+	shift
+    else
+	caseless=""
+	# stick with faster cmp if ignorecase is not requested.
+	xCMP="$CMP"
+    fi
+
     expect="$TESTDIR/$1"
     actual="$TESTDIR/`basename $1 .ddl`.out"
     actual_err="$TESTDIR/`basename $1 .ddl`.err"
@@ -465,13 +474,13 @@ TOOLTEST() {
     # Create the expect file if it doesn't yet exist.
      echo " CREATED"
      cp $actual $expect
-    elif $CMP $expect $actual; then
+    elif $xCMP $expect $actual > /dev/null 2>&1 ; then
      echo " PASSED"
     else
      echo "*FAILED*"
      echo "    Expected result (*.ddl) differs from actual result (*.out)"
      nerrors="`expr $nerrors + 1`"
-     test yes = "$verbose" && $DIFF $expect $actual |sed 's/^/    /'
+     test yes = "$verbose" && $DIFF $caseless $expect $actual |sed 's/^/    /'
     fi
 
     # Clean up output file
@@ -1181,7 +1190,7 @@ TOOLTEST tallfilters.ddl --enable-error-stack -H -p -d all  tfilters.h5
 # user defined
 TOOLTEST tuserfilter.ddl --enable-error-stack -H  -p -d myfilter  tfilters.h5
 
-if test $USE_FILTER_DEFLATE = "yes" -a $USE_FILTER_SHUFFLE = "yes" -a $USE_FILTER_FLETCHER32 = "yes" -a $USE_FILTER_NBIT = "yes" -a $USE_FILTER_SCALEOFFSET = "yes" ; then
+if test $USE_FILTER_DEFLATE = "yes" ; then
   # data read internal filters
   TOOLTEST treadintfilter.ddl --enable-error-stack -d deflate -d shuffle -d fletcher32 -d nbit -d scaleoffset tfilters.h5
   if test $USE_FILTER_SZIP = "yes"; then
diff --git a/tools/h5dump/testh5dumppbits.sh.in b/tools/h5dump/testh5dumppbits.sh.in
index 0f6503d..6556ff5 100644
--- a/tools/h5dump/testh5dumppbits.sh.in
+++ b/tools/h5dump/testh5dumppbits.sh.in
@@ -20,10 +20,6 @@ srcdir=@srcdir@
 # Determine which filters are available
 USE_FILTER_SZIP="@USE_FILTER_SZIP@"
 USE_FILTER_DEFLATE="@USE_FILTER_DEFLATE@"
-USE_FILTER_SHUFFLE="@USE_FILTER_SHUFFLE@"
-USE_FILTER_FLETCHER32="@USE_FILTER_FLETCHER32@"
-USE_FILTER_NBIT="@USE_FILTER_NBIT@"
-USE_FILTER_SCALEOFFSET="@USE_FILTER_SCALEOFFSET@"
 
 TESTNAME=h5dump
 EXIT_SUCCESS=0
diff --git a/tools/h5dump/testh5dumpxml.sh.in b/tools/h5dump/testh5dumpxml.sh.in
index 4dad9cd..1efde85 100644
--- a/tools/h5dump/testh5dumpxml.sh.in
+++ b/tools/h5dump/testh5dumpxml.sh.in
@@ -21,8 +21,6 @@ TESTNAME=h5dumpxml
 EXIT_SUCCESS=0
 EXIT_FAILURE=1
 
-H5_LONE_COLON="@H5_LONE_COLON@"
-
 DUMPER=h5dump               # The tool name
 DUMPER_BIN=`pwd`/$DUMPER    # The path of the tool binary
 
@@ -356,15 +354,7 @@ TOOLTEST tnamed_dtype_attr.h5.xml --xml tnamed_dtype_attr.h5
 
 TOOLTEST tempty-dtd.h5.xml --xml --use-dtd tempty.h5
 TOOLTEST tempty-dtd-2.h5.xml --xml -u tempty.h5
-
-# The lone colon here confuses some systems (Cray X1).  Skip
-# it if configure detects that this is a problem.
-if test "X$H5_LONE_COLON" != "Xno"; then 
-  TOOLTEST tempty-nons.h5.xml --xml -X ":" tempty.h5
-else
-  SKIP tempty-nons.h5.xml --xml -X ":" tempty.h5
-fi
-
+TOOLTEST tempty-nons.h5.xml --xml -X ":" tempty.h5
 TOOLTEST tempty-nons-2.h5.xml --xml --xml-ns=":" tempty.h5
 
 ## Some of these combinations are syntactically correct but
diff --git a/tools/h5import/CMakeLists.txt b/tools/h5import/CMakeLists.txt
index a18133f..bf1515e 100644
--- a/tools/h5import/CMakeLists.txt
+++ b/tools/h5import/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required (VERSION 2.8.11)
+cmake_minimum_required (VERSION 3.1.0)
 PROJECT (HDF5_TOOLS_H5IMPORT)
 
 #-----------------------------------------------------------------------------
@@ -11,7 +11,7 @@ INCLUDE_DIRECTORIES (${HDF5_TOOLS_SRC_DIR}/lib)
 # --------------------------------------------------------------------
 add_executable (h5import ${HDF5_TOOLS_H5IMPORT_SOURCE_DIR}/h5import.c)
 TARGET_NAMING (h5import ${LIB_TYPE})
-TARGET_C_PROPERTIES (h5import " " " ")
+TARGET_C_PROPERTIES (h5import ${LIB_TYPE} " " " ")
 target_link_libraries (h5import  ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
 #set_target_properties (h5import PROPERTIES COMPILE_DEFINITIONS H5DEBUGIMPORT)
 set_target_properties (h5import PROPERTIES FOLDER tools)
@@ -24,7 +24,7 @@ if (BUILD_TESTING)
   # --------------------------------------------------------------------
   add_executable (h5importtest ${HDF5_TOOLS_H5IMPORT_SOURCE_DIR}/h5importtest.c)
   TARGET_NAMING (h5importtest ${LIB_TYPE})
-  TARGET_C_PROPERTIES (h5importtest " " " ")
+  TARGET_C_PROPERTIES (h5importtest ${LIB_TYPE} " " " ")
   target_link_libraries (h5importtest ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET})
   set_target_properties (h5importtest PROPERTIES FOLDER tools)
 
diff --git a/tools/h5import/Makefile.in b/tools/h5import/Makefile.in
index d3b0185..0778fc2 100644
--- a/tools/h5import/Makefile.in
+++ b/tools/h5import/Makefile.in
@@ -105,7 +105,8 @@ bin_PROGRAMS = h5import$(EXEEXT)
 TESTS = $(am__EXEEXT_1) $(TEST_SCRIPT)
 subdir = tools/h5import
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \
+	$(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs
@@ -413,7 +414,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@
 AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@
 AM_MAKEFLAGS = @AM_MAKEFLAGS@
 AR = @AR@
-AS = @AS@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -445,7 +445,6 @@ DIRECT_VFD = @DIRECT_VFD@
 DLLTOOL = @DLLTOOL@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
-DYNAMIC_DIRS = @DYNAMIC_DIRS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -464,17 +463,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@
 FCLIBS = @FCLIBS@
 FC_VERSION = @FC_VERSION@
 FGREP = @FGREP@
-FILTERS = @FILTERS@
 FSEARCH_DIRS = @FSEARCH_DIRS@
 GREP = @GREP@
 H5_CFLAGS = @H5_CFLAGS@
 H5_CPPFLAGS = @H5_CPPFLAGS@
 H5_CXXFLAGS = @H5_CXXFLAGS@
-H5_CXX_SHARED = @H5_CXX_SHARED@
 H5_FCFLAGS = @H5_FCFLAGS@
 H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@
 H5_LDFLAGS = @H5_LDFLAGS@
-H5_LONE_COLON = @H5_LONE_COLON@
 H5_VERSION = @H5_VERSION@
 HADDR_T = @HADDR_T@
 HAVE_DMALLOC = @HAVE_DMALLOC@
@@ -497,7 +493,6 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INSTRUMENT = @INSTRUMENT@
 INSTRUMENT_LIBRARY = @INSTRUMENT_LIBRARY@
-LARGEFILE = @LARGEFILE@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
@@ -538,7 +533,6 @@ R_INTEGER = @R_INTEGER@
 R_LARGE = @R_LARGE@
 SEARCH = @SEARCH@
 SED = @SED@
-SETX = @SETX@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIZE_T = @SIZE_T@
@@ -553,10 +547,6 @@ TR = @TR@
 TRACE_API = @TRACE_API@
 UNAME_INFO = @UNAME_INFO@
 USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@
-USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@
-USE_FILTER_NBIT = @USE_FILTER_NBIT@
-USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@
-USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@
 USE_FILTER_SZIP = @USE_FILTER_SZIP@
 USINGMEMCHECKER = @USINGMEMCHECKER@
 VERSION = @VERSION@
@@ -670,10 +660,10 @@ TRACE = perl $(top_srcdir)/bin/trace
 
 # .chkexe files are used to mark tests that have run successfully.
 # .chklog files are output from those tests.
-# *.clog are from the MPE option.
+# *.clog and *.clog2 are from the MPE option.
 
 # Temporary files from h5importtest
-CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.bin
+CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 *.bin
 
 # Test programs and scripts
 TEST_PROG = h5importtest
diff --git a/tools/h5import/h5importtest.c b/tools/h5import/h5importtest.c
index 49f977c..ac839fb 100644
--- a/tools/h5import/h5importtest.c
+++ b/tools/h5import/h5importtest.c
@@ -40,13 +40,13 @@ main(void)
     FILE      *sp;
 
     float     row4[3], col4[4], pln4[5];
-    float     rowo4 = (float)11.0e0, colo4 = (float)21.0e0, plno4 = (float)51.0e0;
-    float     rowi4 = (float)1.0e0, coli4 = (float)2.0e0, plni4 = (float)5.0e0;
+    float     rowo4 = 11.0F, colo4 = 21.0F, plno4 = 51.0F;
+    float     rowi4 = 1.0F, coli4 = 2.0F, plni4 = 5.0F;
 
     int       b32i3[5][3][4];
     int       row4i[3], col4i[4], pln4i[5];
-    int       rowo4i = (int)11 , colo4i = (int)21 , plno4i = (int)51 ;
-    int       rowi4i = (int)1 , coli4i = (int)2 , plni4i = (int)5 ;
+    int       rowo4i = 11 , colo4i = 21 , plno4i = 51 ;
+    int       rowi4i = 1 , coli4i = 2 , plni4i = 5 ;
 
 #ifdef H5_SIZEOF_LONG_LONG
     long long row4i64[3], col4i64[4], pln4i64[5];
@@ -66,8 +66,8 @@ main(void)
 
     double    b64r3[5][3][4];
     double    row8[3], col8[4], pln8[5];
-    double    rowo8 = 11.0e0, colo8 = 21.0e0, plno8 = 51.0e0;
-    double    rowi8 = 1.0e0, coli8 = 2.0e0, plni8 = 5.0e0;
+    double    rowo8 = 11.0F, colo8 = 21.0F, plno8 = 51.0F;
+    double    rowi8 = 1.0F, coli8 = 2.0F, plni8 = 5.0F;
 
 
     /*
diff --git a/tools/h5jam/CMakeLists.txt b/tools/h5jam/CMakeLists.txt
index a8e3a7c..4498132 100644
--- a/tools/h5jam/CMakeLists.txt
+++ b/tools/h5jam/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required (VERSION 2.8.11)
+cmake_minimum_required (VERSION 3.1.0)
 PROJECT (HDF5_TOOLS_H5JAM)
 
 #-----------------------------------------------------------------------------
@@ -11,25 +11,25 @@ INCLUDE_DIRECTORIES (${HDF5_TOOLS_SRC_DIR}/lib)
 # --------------------------------------------------------------------
 add_executable (h5jam ${HDF5_TOOLS_H5JAM_SOURCE_DIR}/h5jam.c)
 TARGET_NAMING (h5jam ${LIB_TYPE})
-TARGET_C_PROPERTIES (h5jam " " " ")
+TARGET_C_PROPERTIES (h5jam ${LIB_TYPE} " " " ")
 target_link_libraries (h5jam  ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
 set_target_properties (h5jam PROPERTIES FOLDER tools)
 
 add_executable (getub ${HDF5_TOOLS_H5JAM_SOURCE_DIR}/getub.c)
 TARGET_NAMING (getub ${LIB_TYPE})
-TARGET_C_PROPERTIES (getub " " " ")
+TARGET_C_PROPERTIES (getub ${LIB_TYPE} " " " ")
 target_link_libraries (getub  ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
 set_target_properties (getub PROPERTIES FOLDER tools)
 
 add_executable (tellub ${HDF5_TOOLS_H5JAM_SOURCE_DIR}/tellub.c)
 TARGET_NAMING (tellub ${LIB_TYPE})
-TARGET_C_PROPERTIES (tellub " " " ")
+TARGET_C_PROPERTIES (tellub ${LIB_TYPE} " " " ")
 target_link_libraries (tellub  ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
 set_target_properties (tellub PROPERTIES FOLDER tools)
 
 add_executable (h5unjam ${HDF5_TOOLS_H5JAM_SOURCE_DIR}/h5unjam.c)
 TARGET_NAMING (h5unjam ${LIB_TYPE})
-TARGET_C_PROPERTIES (h5unjam " " " ")
+TARGET_C_PROPERTIES (h5unjam ${LIB_TYPE} " " " ")
 target_link_libraries (h5unjam  ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
 set_target_properties (h5unjam PROPERTIES FOLDER tools)
 
@@ -47,7 +47,7 @@ if (BUILD_TESTING)
   if (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS)
     add_executable (h5jamgentest ${HDF5_TOOLS_H5JAM_SOURCE_DIR}/h5jamgentest.c)
     TARGET_NAMING (h5jamgentest ${LIB_TYPE})
-    TARGET_C_PROPERTIES (testhdf5 " " " ")
+    TARGET_C_PROPERTIES (testhdf5 ${LIB_TYPE} " " " ")
     target_link_libraries (h5jamgentest ${HDF5_LIB_TARGET})
     set_target_properties (h5jamgentest PROPERTIES FOLDER generator/tools)
     
diff --git a/tools/h5jam/Makefile.in b/tools/h5jam/Makefile.in
index d0c8f16..ed8151f 100644
--- a/tools/h5jam/Makefile.in
+++ b/tools/h5jam/Makefile.in
@@ -105,7 +105,8 @@ check_PROGRAMS = tellub$(EXEEXT) h5jamgentest$(EXEEXT) getub$(EXEEXT)
 TESTS = $(TEST_SCRIPT)
 subdir = tools/h5jam
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \
+	$(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs
@@ -425,7 +426,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@
 AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@
 AM_MAKEFLAGS = @AM_MAKEFLAGS@
 AR = @AR@
-AS = @AS@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -457,7 +457,6 @@ DIRECT_VFD = @DIRECT_VFD@
 DLLTOOL = @DLLTOOL@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
-DYNAMIC_DIRS = @DYNAMIC_DIRS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -476,17 +475,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@
 FCLIBS = @FCLIBS@
 FC_VERSION = @FC_VERSION@
 FGREP = @FGREP@
-FILTERS = @FILTERS@
 FSEARCH_DIRS = @FSEARCH_DIRS@
 GREP = @GREP@
 H5_CFLAGS = @H5_CFLAGS@
 H5_CPPFLAGS = @H5_CPPFLAGS@
 H5_CXXFLAGS = @H5_CXXFLAGS@
-H5_CXX_SHARED = @H5_CXX_SHARED@
 H5_FCFLAGS = @H5_FCFLAGS@
 H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@
 H5_LDFLAGS = @H5_LDFLAGS@
-H5_LONE_COLON = @H5_LONE_COLON@
 H5_VERSION = @H5_VERSION@
 HADDR_T = @HADDR_T@
 HAVE_DMALLOC = @HAVE_DMALLOC@
@@ -509,7 +505,6 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INSTRUMENT = @INSTRUMENT@
 INSTRUMENT_LIBRARY = @INSTRUMENT_LIBRARY@
-LARGEFILE = @LARGEFILE@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
@@ -550,7 +545,6 @@ R_INTEGER = @R_INTEGER@
 R_LARGE = @R_LARGE@
 SEARCH = @SEARCH@
 SED = @SED@
-SETX = @SETX@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIZE_T = @SIZE_T@
@@ -565,10 +559,6 @@ TR = @TR@
 TRACE_API = @TRACE_API@
 UNAME_INFO = @UNAME_INFO@
 USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@
-USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@
-USE_FILTER_NBIT = @USE_FILTER_NBIT@
-USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@
-USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@
 USE_FILTER_SZIP = @USE_FILTER_SZIP@
 USINGMEMCHECKER = @USINGMEMCHECKER@
 VERSION = @VERSION@
@@ -682,12 +672,12 @@ TRACE = perl $(top_srcdir)/bin/trace
 
 # .chkexe files are used to mark tests that have run successfully.
 # .chklog files are output from those tests.
-# *.clog are from the MPE option.
+# *.clog and *.clog2 are from the MPE option.
 
 # Temporary files.  *.h5 are generated by jamgentest.  They should
 # copied to the testfiles/ directory if update is required.
-CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.h5 testfiles/h5jam-*-sav \
-	testfiles/h5unjam-*-sav
+CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 *.h5 \
+	testfiles/h5jam-*-sav testfiles/h5unjam-*-sav
 TEST_SCRIPT = testh5jam.sh
 
 # Add h5jam and h5unjam specific linker flags here
diff --git a/tools/h5jam/h5jamgentest.c b/tools/h5jam/h5jamgentest.c
index 9636597..5a93c13 100644
--- a/tools/h5jam/h5jamgentest.c
+++ b/tools/h5jam/h5jamgentest.c
@@ -254,7 +254,7 @@ gent_ub(const char * filename, size_t ub_size, size_t ub_fill)
   space = H5Screate_simple(1, dims, NULL);
   dataset = H5Dcreate2(group, "dset2.1", H5T_IEEE_F32BE, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
   for (i = 0; i < 10; i++)
-       dset2_1[i] = (float)(i*0.1+1);
+       dset2_1[i] = (float)(i*0.1F+1);
   H5Dwrite(dataset, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, H5P_DEFAULT, dset2_1);
   H5Sclose(space);
   H5Dclose(dataset);
@@ -265,7 +265,7 @@ gent_ub(const char * filename, size_t ub_size, size_t ub_fill)
   dataset = H5Dcreate2(group, "dset2.2", H5T_IEEE_F32BE, space, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
   for (i = 0; i < 3; i++)
        for (j = 0; j < 5; j++)
-            dset2_2[i][j] = (float)((i+1)*j*0.1);
+            dset2_2[i][j] = (float)((i+1)*j*0.1F);
   H5Dwrite(dataset, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, H5P_DEFAULT, dset2_2);
   H5Sclose(space);
   H5Dclose(dataset);
diff --git a/tools/h5jam/testh5jam.sh.in b/tools/h5jam/testh5jam.sh.in
index 16d9b3d..8e4aca7 100644
--- a/tools/h5jam/testh5jam.sh.in
+++ b/tools/h5jam/testh5jam.sh.in
@@ -20,8 +20,6 @@ srcdir=@srcdir@
 # Determine which filters are available
 USE_FILTER_SZIP="@USE_FILTER_SZIP@"
 USE_FILTER_DEFLATE="@USE_FILTER_DEFLATE@"
-USE_FILTER_SHUFFLE="@USE_FILTER_SHUFFLE@"
-USE_FILTER_FLETCHER32="@USE_FILTER_FLETCHER32@"
 
 TESTNAME=h5jam/h5unjam
 EXIT_SUCCESS=0
diff --git a/tools/h5ls/CMakeLists.txt b/tools/h5ls/CMakeLists.txt
index f3749e3..984b36b 100644
--- a/tools/h5ls/CMakeLists.txt
+++ b/tools/h5ls/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required (VERSION 2.8.11)
+cmake_minimum_required (VERSION 3.1.0)
 PROJECT (HDF5_TOOLS_H5LS)
 
 #-----------------------------------------------------------------------------
@@ -11,7 +11,7 @@ INCLUDE_DIRECTORIES (${HDF5_TOOLS_SRC_DIR}/lib)
 #-----------------------------------------------------------------------------
 add_executable (h5ls ${HDF5_TOOLS_H5LS_SOURCE_DIR}/h5ls.c)
 TARGET_NAMING (h5ls ${LIB_TYPE})
-TARGET_C_PROPERTIES (h5ls " " " ")
+TARGET_C_PROPERTIES (h5ls ${LIB_TYPE} " " " ")
 target_link_libraries (h5ls  ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
 set_target_properties (h5ls PROPERTIES FOLDER tools)
 
diff --git a/tools/h5ls/Makefile.in b/tools/h5ls/Makefile.in
index 2c4fe10..c77784e 100644
--- a/tools/h5ls/Makefile.in
+++ b/tools/h5ls/Makefile.in
@@ -104,7 +104,8 @@ bin_PROGRAMS = h5ls$(EXEEXT)
 TESTS = $(TEST_SCRIPT)
 subdir = tools/h5ls
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \
+	$(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs
@@ -405,7 +406,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@
 AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@
 AM_MAKEFLAGS = @AM_MAKEFLAGS@
 AR = @AR@
-AS = @AS@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -437,7 +437,6 @@ DIRECT_VFD = @DIRECT_VFD@
 DLLTOOL = @DLLTOOL@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
-DYNAMIC_DIRS = @DYNAMIC_DIRS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -456,17 +455,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@
 FCLIBS = @FCLIBS@
 FC_VERSION = @FC_VERSION@
 FGREP = @FGREP@
-FILTERS = @FILTERS@
 FSEARCH_DIRS = @FSEARCH_DIRS@
 GREP = @GREP@
 H5_CFLAGS = @H5_CFLAGS@
 H5_CPPFLAGS = @H5_CPPFLAGS@
 H5_CXXFLAGS = @H5_CXXFLAGS@
-H5_CXX_SHARED = @H5_CXX_SHARED@
 H5_FCFLAGS = @H5_FCFLAGS@
 H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@
 H5_LDFLAGS = @H5_LDFLAGS@
-H5_LONE_COLON = @H5_LONE_COLON@
 H5_VERSION = @H5_VERSION@
 HADDR_T = @HADDR_T@
 HAVE_DMALLOC = @HAVE_DMALLOC@
@@ -489,7 +485,6 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INSTRUMENT = @INSTRUMENT@
 INSTRUMENT_LIBRARY = @INSTRUMENT_LIBRARY@
-LARGEFILE = @LARGEFILE@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
@@ -530,7 +525,6 @@ R_INTEGER = @R_INTEGER@
 R_LARGE = @R_LARGE@
 SEARCH = @SEARCH@
 SED = @SED@
-SETX = @SETX@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIZE_T = @SIZE_T@
@@ -545,10 +539,6 @@ TR = @TR@
 TRACE_API = @TRACE_API@
 UNAME_INFO = @UNAME_INFO@
 USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@
-USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@
-USE_FILTER_NBIT = @USE_FILTER_NBIT@
-USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@
-USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@
 USE_FILTER_SZIP = @USE_FILTER_SZIP@
 USINGMEMCHECKER = @USINGMEMCHECKER@
 VERSION = @VERSION@
@@ -662,8 +652,8 @@ TRACE = perl $(top_srcdir)/bin/trace
 
 # .chkexe files are used to mark tests that have run successfully.
 # .chklog files are output from those tests.
-# *.clog are from the MPE option.
-CHECK_CLEANFILES = *.chkexe *.chklog *.clog
+# *.clog and *.clog2 are from the MPE option.
+CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2
 
 # Test programs and scripts
 TEST_SCRIPT = testh5ls.sh
diff --git a/tools/h5repack/CMakeLists.txt b/tools/h5repack/CMakeLists.txt
index cb8720e..42d9f3d 100644
--- a/tools/h5repack/CMakeLists.txt
+++ b/tools/h5repack/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required (VERSION 2.8.11)
+cmake_minimum_required (VERSION 3.1.0)
 PROJECT (HDF5_TOOLS_H5REPACK)
 
 #-----------------------------------------------------------------------------
@@ -22,7 +22,7 @@ set (REPACK_COMMON_SRCS
 
 add_executable (h5repack ${REPACK_COMMON_SRCS} ${HDF5_TOOLS_H5REPACK_SOURCE_DIR}/h5repack_main.c)
 TARGET_NAMING (h5repack ${LIB_TYPE})
-TARGET_C_PROPERTIES (h5repack " " " ")
+TARGET_C_PROPERTIES (h5repack ${LIB_TYPE} " " " ")
 target_link_libraries (h5repack  ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
 set_target_properties (h5repack PROPERTIES FOLDER tools)
 
@@ -34,13 +34,13 @@ if (BUILD_TESTING)
   # --------------------------------------------------------------------
   add_executable (testh5repack_detect_szip ${HDF5_TOOLS_H5REPACK_SOURCE_DIR}/testh5repack_detect_szip.c)
   TARGET_NAMING (testh5repack_detect_szip ${LIB_TYPE})
-  TARGET_C_PROPERTIES (testh5repack_detect_szip " " " ")
+  TARGET_C_PROPERTIES (testh5repack_detect_szip ${LIB_TYPE} " " " ")
   target_link_libraries (testh5repack_detect_szip ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET} ${HDF5_TEST_LIB_TARGET})
   set_target_properties (testh5repack_detect_szip PROPERTIES FOLDER tools)
 
   add_executable (h5repacktest ${REPACK_COMMON_SRCS} ${HDF5_TOOLS_H5REPACK_SOURCE_DIR}/h5repacktst.c)
   TARGET_NAMING (h5repacktest ${LIB_TYPE})
-  TARGET_C_PROPERTIES (h5repacktest " " " ")
+  TARGET_C_PROPERTIES (h5repacktest ${LIB_TYPE} " " " ")
   target_link_libraries (h5repacktest  ${HDF5_TOOLS_LIB_TARGET} ${HDF5_TEST_LIB_TARGET})
   set_target_properties (h5repacktest PROPERTIES FOLDER tools)
 
@@ -54,12 +54,12 @@ if (BUILD_TESTING)
     add_definitions (${HDF_EXTRA_C_FLAGS})
     INCLUDE_DIRECTORIES (${HDF5_SRC_DIR})
 
-    add_library (${HDF5_TOOL_PLUGIN_LIB_TARGET} ${LIB_TYPE} dynlib_rpk.c)
-    TARGET_C_PROPERTIES (${HDF5_TOOL_PLUGIN_LIB_TARGET} " " " ")
+    add_library (${HDF5_TOOL_PLUGIN_LIB_TARGET} SHARED dynlib_rpk.c)
+    TARGET_C_PROPERTIES (${HDF5_TOOL_PLUGIN_LIB_TARGET} SHARED " " " ")
     target_link_libraries (${HDF5_TOOL_PLUGIN_LIB_TARGET} ${HDF5_TEST_LIB_TARGET})
     H5_SET_LIB_OPTIONS (
         ${HDF5_TOOL_PLUGIN_LIB_TARGET} ${HDF5_TOOL_PLUGIN_LIB_NAME}
-        ${LIB_TYPE}
+        SHARED
         HDF5_TOOL_PLUGIN_LIB_NAME_RELEASE
         HDF5_TOOL_PLUGIN_LIB_NAME_DEBUG
     )
diff --git a/tools/h5repack/CMakeTests.cmake b/tools/h5repack/CMakeTests.cmake
index 220c871..3391c3f 100644
--- a/tools/h5repack/CMakeTests.cmake
+++ b/tools/h5repack/CMakeTests.cmake
@@ -649,22 +649,6 @@
     set (USE_FILTER_SZIP "true")
   endif (H5_HAVE_FILTER_SZIP)
 
-  if (H5_HAVE_FILTER_SHUFFLE)
-    set (USE_FILTER_SHUFFLE "true")
-  endif (H5_HAVE_FILTER_SHUFFLE)
-
-  if (H5_HAVE_FILTER_FLETCHER32)
-    set (USE_FILTER_FLETCHER32 "true")
-  endif (H5_HAVE_FILTER_FLETCHER32)
-
-  if (H5_HAVE_FILTER_NBIT)
-    set (USE_FILTER_NBIT "true")
-  endif (H5_HAVE_FILTER_NBIT)
-
-  if (H5_HAVE_FILTER_SCALEOFFSET)
-    set (USE_FILTER_SCALEOFFSET "true")
-  endif (H5_HAVE_FILTER_SCALEOFFSET)
-  
 # copy files (these files have no filters) 
   ADD_H5_TEST (fill "TEST" ${FILE0})
   ADD_H5_TEST (objs "TEST" ${FILE1})
@@ -709,42 +693,26 @@
 
 # shuffle with individual object
   set (arg ${FILE4} -f dset2:SHUF  -l dset2:CHUNK=20x10)
-  set (TESTTYPE "TEST")
-  if (NOT USE_FILTER_SHUFFLE)
-    set (TESTTYPE "SKIP")
-  endif (NOT USE_FILTER_SHUFFLE)
-  ADD_H5_TEST (shuffle_individual ${TESTTYPE} ${arg}) 
+  ADD_H5_TEST (shuffle_individual "TEST" ${arg}) 
 
 # shuffle for all
   set (arg ${FILE4} -f SHUF)
-  set (TESTTYPE "TEST")
-  if (NOT USE_FILTER_SHUFFLE)
-    set (TESTTYPE "SKIP")
-  endif (NOT USE_FILTER_SHUFFLE)
-  ADD_H5_TEST (shuffle_all ${TESTTYPE} ${arg})
+  ADD_H5_TEST (shuffle_all "TEST" ${arg})
   
 # fletcher32  with individual object
   set (arg ${FILE4} -f dset2:FLET  -l dset2:CHUNK=20x10)
-  set (TESTTYPE "TEST")
-  if (NOT USE_FILTER_FLETCHER32)
-    set (TESTTYPE "SKIP")
-  endif (NOT USE_FILTER_FLETCHER32)
-  ADD_H5_TEST (fletcher_individual ${TESTTYPE} ${arg})
+  ADD_H5_TEST (fletcher_individual "TEST" ${arg})
 
 # fletcher32 for all
   set (arg ${FILE4} -f FLET)
-  set (TESTTYPE "TEST")
-  if (NOT USE_FILTER_FLETCHER32)
-    set (TESTTYPE "SKIP")
-  endif (NOT USE_FILTER_FLETCHER32)
-  ADD_H5_TEST (fletcher_all ${TESTTYPE} ${arg})
+  ADD_H5_TEST (fletcher_all "TEST" ${arg})
 
 # all filters
   set (arg ${FILE4} -f dset2:SHUF -f dset2:FLET -f dset2:SZIP=8,NN -f dset2:GZIP=1 -l dset2:CHUNK=20x10)
   set (TESTTYPE "TEST")
-  if (NOT USE_FILTER_SZIP_ENCODER OR NOT USE_FILTER_SZIP OR NOT USE_FILTER_SHUFFLE OR NOT USE_FILTER_FLETCHER32 OR NOT USE_FILTER_DEFLATE)
+  if (NOT USE_FILTER_SZIP_ENCODER OR NOT USE_FILTER_SZIP OR NOT USE_FILTER_DEFLATE)
     set (TESTTYPE "SKIP")
-  endif (NOT USE_FILTER_SZIP_ENCODER OR NOT USE_FILTER_SZIP OR NOT USE_FILTER_SHUFFLE OR NOT USE_FILTER_FLETCHER32 OR NOT USE_FILTER_DEFLATE)
+  endif (NOT USE_FILTER_SZIP_ENCODER OR NOT USE_FILTER_SZIP OR NOT USE_FILTER_DEFLATE)
   ADD_H5_TEST (all_filters ${TESTTYPE} ${arg})
 
 # verbose gzip with individual object
@@ -793,90 +761,50 @@
     
 # shuffle copy
   set (arg ${FILE9})
-  set (TESTTYPE "TEST")
-  if (NOT USE_FILTER_SHUFFLE)
-    set (TESTTYPE "SKIP")
-  endif (NOT USE_FILTER_SHUFFLE)
-  ADD_H5_TEST (shuffle_copy ${TESTTYPE} ${arg})
+  ADD_H5_TEST (shuffle_copy "TEST" ${arg})
 
 # shuffle remove
   set (arg ${FILE9} -f dset_shuffle:NONE)
-  set (TESTTYPE "TEST")
-  if (NOT USE_FILTER_SHUFFLE)
-    set (TESTTYPE "SKIP")
-  endif (NOT USE_FILTER_SHUFFLE)
-  ADD_H5_TEST (shuffle_remove ${TESTTYPE} ${arg})
+  ADD_H5_TEST (shuffle_remove "TEST" ${arg})
 
 # fletcher32 copy
   set (arg ${FILE10})
-  set (TESTTYPE "TEST")
-  if (NOT USE_FILTER_FLETCHER32)
-    set (TESTTYPE "SKIP")
-  endif (NOT USE_FILTER_FLETCHER32)
-  ADD_H5_TEST (fletcher_copy ${TESTTYPE} ${arg})
+  ADD_H5_TEST (fletcher_copy "TEST" ${arg})
 
 # fletcher32 remove
   set (arg ${FILE10} -f dset_fletcher32:NONE)
-  set (TESTTYPE "TEST")
-  if (NOT USE_FILTER_FLETCHER32)
-    set (TESTTYPE "SKIP")
-  endif (NOT USE_FILTER_FLETCHER32)
-  ADD_H5_TEST (fletcher_remove ${TESTTYPE} ${arg})
+  ADD_H5_TEST (fletcher_remove "TEST" ${arg})
 
 # nbit copy
   set (arg ${FILE12})
-  set (TESTTYPE "TEST")
-  if (NOT USE_FILTER_NBIT)
-    set (TESTTYPE "SKIP")
-  endif (NOT USE_FILTER_NBIT)
-  ADD_H5_TEST (nbit_copy ${TESTTYPE} ${arg})
+  ADD_H5_TEST (nbit_copy "TEST" ${arg})
 
 # nbit remove
   set (arg ${FILE12} -f dset_nbit:NONE)
-  set (TESTTYPE "TEST")
-  if (NOT USE_FILTER_NBIT)
-    set (TESTTYPE "SKIP")
-  endif (NOT USE_FILTER_NBIT)
-  ADD_H5_TEST (nbit_remove ${TESTTYPE} ${arg})
+  ADD_H5_TEST (nbit_remove "TEST" ${arg})
 
 # nbit add
   set (arg ${FILE12} -f dset_int31:NBIT)
-  set (TESTTYPE "TEST")
-  if (NOT USE_FILTER_NBIT)
-    set (TESTTYPE "SKIP")
-  endif (NOT USE_FILTER_NBIT)
-  ADD_H5_TEST (nbit_add ${TESTTYPE} ${arg})
+  ADD_H5_TEST (nbit_add "TEST" ${arg})
 
 # scaleoffset copy
   set (arg ${FILE13})
-  set (TESTTYPE "TEST")
-  if (NOT USE_FILTER_SCALEOFFSET)
-    set (TESTTYPE "SKIP")
-  endif (NOT USE_FILTER_SCALEOFFSET)
-  ADD_H5_TEST (scale_copy ${TESTTYPE} ${arg})
+  ADD_H5_TEST (scale_copy "TEST" ${arg})
 
 # scaleoffset add
   set (arg ${FILE13} -f dset_none:SOFF=31,IN)
-  set (TESTTYPE "TEST")
-  if (NOT USE_FILTER_SCALEOFFSET)
-    set (TESTTYPE "SKIP")
-  endif (NOT USE_FILTER_SCALEOFFSET)
-  ADD_H5_TEST (scale_add ${TESTTYPE} ${arg})
+  ADD_H5_TEST (scale_add "TEST" ${arg})
 
 # scaleoffset remove
   set (arg ${FILE13} -f dset_scaleoffset:NONE)
-  set (TESTTYPE "TEST")
-  if (NOT USE_FILTER_SCALEOFFSET)
-    set (TESTTYPE "SKIP")
-  endif (NOT USE_FILTER_SCALEOFFSET)
-  ADD_H5_TEST (scale_remove ${TESTTYPE} ${arg})
+  ADD_H5_TEST (scale_remove "TEST" ${arg})
 
 # remove all  filters
   set (arg ${FILE11} -f NONE)
   set (TESTTYPE "TEST")
-  if (NOT USE_FILTER_FLETCHER32 OR NOT USE_FILTER_DEFLATE OR NOT USE_FILTER_SZIP OR NOT USE_FILTER_SZIP_ENCODER OR NOT USE_FILTER_SHUFFLE OR NOT USE_FILTER_NBIT OR NOT USE_FILTER_SCALEOFFSET)
+  if (NOT USE_FILTER_DEFLATE OR NOT USE_FILTER_SZIP OR NOT USE_FILTER_SZIP_ENCODER)
     set (TESTTYPE "SKIP")
-  endif (NOT USE_FILTER_FLETCHER32 OR NOT USE_FILTER_DEFLATE OR NOT USE_FILTER_SZIP OR NOT USE_FILTER_SZIP_ENCODER OR NOT USE_FILTER_SHUFFLE OR NOT USE_FILTER_NBIT OR NOT USE_FILTER_SCALEOFFSET)
+  endif (NOT USE_FILTER_DEFLATE OR NOT USE_FILTER_SZIP OR NOT USE_FILTER_SZIP_ENCODER)
   ADD_H5_TEST (remove_all ${TESTTYPE} ${arg})
 
 #filter conversions
@@ -943,14 +871,14 @@
 # Use first dset to test.
 #---------------------------------------------------------------------------
 # chunk to chunk - specify chunk dim bigger than any current dim
-ADD_H5_VERIFY_TEST (chunk2chunk "TEST" 0 h5repack_layout3.h5 chunk_unlimit1 CHUNK -l chunk_unlimit1:CHUNK=100x300)
+  ADD_H5_VERIFY_TEST (chunk2chunk "TEST" 0 h5repack_layout3.h5 chunk_unlimit1 CHUNK -l chunk_unlimit1:CHUNK=100x300)
 
 # chunk to contiguous 
-ADD_H5_VERIFY_TEST (chunk2conti "TEST" 0 h5repack_layout3.h5 chunk_unlimit1 CONTI -l chunk_unlimit1:CONTI)
+  ADD_H5_VERIFY_TEST (chunk2conti "TEST" 0 h5repack_layout3.h5 chunk_unlimit1 CONTI -l chunk_unlimit1:CONTI)
 
 # chunk to compact - convert big dataset (should be > 64k) for this purpose, 
 # should remain as original layout (chunk)
-ADD_H5_VERIFY_TEST (chunk2compa "TEST" 0 h5repack_layout3.h5 chunk_unlimit1 CHUNK -l chunk_unlimit1:COMPA)
+  ADD_H5_VERIFY_TEST (chunk2compa "TEST" 0 h5repack_layout3.h5 chunk_unlimit1 CHUNK -l chunk_unlimit1:COMPA)
 
 #--------------------------------------------------------------------------
 # Test -f for some specific cases. Chunked dataset with unlimited max dims.
@@ -960,16 +888,16 @@ ADD_H5_VERIFY_TEST (chunk2compa "TEST" 0 h5repack_layout3.h5 chunk_unlimit1 CHUN
 # - should not change max dims from unlimit
 
 # chunk dim is bigger than dataset dim. ( dset size < 64k )
-ADD_H5_VERIFY_TEST (error1 "TEST" 0 h5repack_layout3.h5 chunk_unlimit1 H5S_UNLIMITED -f chunk_unlimit1:NONE)
+  ADD_H5_VERIFY_TEST (error1 "TEST" 0 h5repack_layout3.h5 chunk_unlimit1 H5S_UNLIMITED -f chunk_unlimit1:NONE)
 
 # chunk dim is bigger than dataset dim. ( dset size > 64k )
-ADD_H5_VERIFY_TEST (error2 "TEST" 0 h5repack_layout3.h5 chunk_unlimit2 H5S_UNLIMITED -f chunk_unlimit2:NONE)
+  ADD_H5_VERIFY_TEST (error2 "TEST" 0 h5repack_layout3.h5 chunk_unlimit2 H5S_UNLIMITED -f chunk_unlimit2:NONE)
 
 # chunk dims are smaller than dataset dims. ( dset size < 64k )
-ADD_H5_VERIFY_TEST (error3 "TEST" 0 h5repack_layout3.h5 chunk_unlimit3 H5S_UNLIMITED -f chunk_unlimit3:NONE)
+  ADD_H5_VERIFY_TEST (error3 "TEST" 0 h5repack_layout3.h5 chunk_unlimit3 H5S_UNLIMITED -f chunk_unlimit3:NONE)
 
 # file input - should not fail
-ADD_H5_TEST (error4 "TEST" h5repack_layout3.h5 -f NONE)
+  ADD_H5_TEST (error4 "TEST" h5repack_layout3.h5 -f NONE)
 
 #--------------------------------------------------------------------------
 # Test base: Convert CHUNK to CONTI for a chunked dataset with small dataset 
@@ -977,9 +905,9 @@ ADD_H5_TEST (error4 "TEST" h5repack_layout3.h5 -f NONE)
 # (HDFFV-8214)
 #--------------------------------------------------------------------------
 # chunk dim is bigger than dataset dim. should succeed.
-ADD_H5_VERIFY_TEST (ckdim_biger "TEST" 0 h5repack_layout3.h5 chunk_unlimit2 CONTI -l chunk_unlimit2:CONTI)
+  ADD_H5_VERIFY_TEST (ckdim_biger "TEST" 0 h5repack_layout3.h5 chunk_unlimit2 CONTI -l chunk_unlimit2:CONTI)
 # chunk dim is smaller than dataset dim. should succeed.  
-ADD_H5_VERIFY_TEST (ckdim_smaller "TEST" 0 h5repack_layout3.h5 chunk_unlimit3 CONTI -l chunk_unlimit3:CONTI)
+  ADD_H5_VERIFY_TEST (ckdim_smaller "TEST" 0 h5repack_layout3.h5 chunk_unlimit3 CONTI -l chunk_unlimit3:CONTI)
 
 
 
@@ -1008,9 +936,9 @@ ADD_H5_VERIFY_TEST (ckdim_smaller "TEST" 0 h5repack_layout3.h5 chunk_unlimit3 CO
 # several global filters
   set (arg ${FILE4} --filter GZIP=1 --filter SHUF)
   set (TESTTYPE "TEST")
-  if (NOT USE_FILTER_DEFLATE OR NOT USE_FILTER_SHUFFLE)
+  if (NOT USE_FILTER_DEFLATE)
     set (TESTTYPE "SKIP")
-  endif (NOT USE_FILTER_DEFLATE OR NOT USE_FILTER_SHUFFLE)
+  endif (NOT USE_FILTER_DEFLATE)
   ADD_H5_TEST (global_filters ${TESTTYPE} ${arg})
 
 # syntax of -i infile -o outfile
diff --git a/tools/h5repack/Makefile.in b/tools/h5repack/Makefile.in
index 50e7341..6d1bfd6 100644
--- a/tools/h5repack/Makefile.in
+++ b/tools/h5repack/Makefile.in
@@ -108,7 +108,8 @@ bin_PROGRAMS = h5repack$(EXEEXT)
 TESTS = $(am__EXEEXT_1) $(TEST_SCRIPT)
 subdir = tools/h5repack
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \
+	$(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs
@@ -437,7 +438,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@
 AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@
 AM_MAKEFLAGS = @AM_MAKEFLAGS@
 AR = @AR@
-AS = @AS@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -469,7 +469,6 @@ DIRECT_VFD = @DIRECT_VFD@
 DLLTOOL = @DLLTOOL@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
-DYNAMIC_DIRS = @DYNAMIC_DIRS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -488,17 +487,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@
 FCLIBS = @FCLIBS@
 FC_VERSION = @FC_VERSION@
 FGREP = @FGREP@
-FILTERS = @FILTERS@
 FSEARCH_DIRS = @FSEARCH_DIRS@
 GREP = @GREP@
 H5_CFLAGS = @H5_CFLAGS@
 H5_CPPFLAGS = @H5_CPPFLAGS@
 H5_CXXFLAGS = @H5_CXXFLAGS@
-H5_CXX_SHARED = @H5_CXX_SHARED@
 H5_FCFLAGS = @H5_FCFLAGS@
 H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@
 H5_LDFLAGS = @H5_LDFLAGS@
-H5_LONE_COLON = @H5_LONE_COLON@
 H5_VERSION = @H5_VERSION@
 HADDR_T = @HADDR_T@
 HAVE_DMALLOC = @HAVE_DMALLOC@
@@ -521,7 +517,6 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INSTRUMENT = @INSTRUMENT@
 INSTRUMENT_LIBRARY = @INSTRUMENT_LIBRARY@
-LARGEFILE = @LARGEFILE@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
@@ -562,7 +557,6 @@ R_INTEGER = @R_INTEGER@
 R_LARGE = @R_LARGE@
 SEARCH = @SEARCH@
 SED = @SED@
-SETX = @SETX@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIZE_T = @SIZE_T@
@@ -577,10 +571,6 @@ TR = @TR@
 TRACE_API = @TRACE_API@
 UNAME_INFO = @UNAME_INFO@
 USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@
-USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@
-USE_FILTER_NBIT = @USE_FILTER_NBIT@
-USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@
-USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@
 USE_FILTER_SZIP = @USE_FILTER_SZIP@
 USINGMEMCHECKER = @USINGMEMCHECKER@
 VERSION = @VERSION@
@@ -694,11 +684,11 @@ TRACE = perl $(top_srcdir)/bin/trace
 
 # .chkexe files are used to mark tests that have run successfully.
 # .chklog files are output from those tests.
-# *.clog are from the MPE option.
+# *.clog and *.clog2 are from the MPE option.
 
 # Temporary files.  *.h5 are generated by h5repack.  They should
 # copied to the testfiles/ directory if update is required.
-CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.h5 *.bin \
+CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 *.h5 *.bin \
 	testfiles/h5diff_attr1.h5 testfiles/tfamily*.h5
 
 # Test programs and scripts
diff --git a/tools/h5repack/h5repack.sh.in b/tools/h5repack/h5repack.sh.in
index a4d12bd..4a32491 100644
--- a/tools/h5repack/h5repack.sh.in
+++ b/tools/h5repack/h5repack.sh.in
@@ -24,10 +24,6 @@ srcdir=@srcdir@
 
 USE_FILTER_SZIP="@USE_FILTER_SZIP@"
 USE_FILTER_DEFLATE="@USE_FILTER_DEFLATE@"
-USE_FILTER_SHUFFLE="@USE_FILTER_SHUFFLE@"
-USE_FILTER_FLETCHER32="@USE_FILTER_FLETCHER32@"
-USE_FILTER_NBIT="@USE_FILTER_NBIT@"
-USE_FILTER_SCALEOFFSET="@USE_FILTER_SCALEOFFSET@"
 
 TESTNAME=h5repack
 EXIT_SUCCESS=0
@@ -97,6 +93,8 @@ $SRC_H5REPACK_TESTFILES/h5repack_layouto.h5
 $SRC_H5REPACK_TESTFILES/h5repack_layout2.h5
 $SRC_H5REPACK_TESTFILES/h5repack_layout3.h5
 $SRC_H5REPACK_TESTFILES/h5repack_named_dtypes.h5
+$SRC_H5REPACK_TESTFILES/h5repack_nested_8bit_enum.h5
+$SRC_H5REPACK_TESTFILES/h5repack_nested_8bit_enum_deflated.h5
 $SRC_H5REPACK_TESTFILES/h5repack_nbit.h5
 $SRC_H5REPACK_TESTFILES/h5repack_objs.h5
 $SRC_H5REPACK_TESTFILES/h5repack_refs.h5
@@ -705,6 +703,12 @@ TOOLTEST hlink h5repack_hlink.h5
 TOOLTEST layout h5repack_layout.h5
 TOOLTEST early h5repack_early.h5
 
+# nested 8bit enum in both deflated and non-deflated datafiles
+if [ $USE_FILTER_DEFLATE != "yes" ]; then
+TOOLTEST nested_8bit_enum h5repack_nested_8bit_enum.h5
+else
+TOOLTEST nested_8bit_enum h5repack_nested_8bit_enum_deflated.h5
+fi
 
 # use h5repack_layout.h5 to write some filters  (this file has  no filters)
 
@@ -742,40 +746,24 @@ fi
 
 # shuffle with individual object
 arg="h5repack_layout.h5 -f dset2:SHUF  -l dset2:CHUNK=20x10"
-if test $USE_FILTER_SHUFFLE != "yes"  ; then
- SKIP $arg
-else
- TOOLTEST shuffle_individual $arg 
-fi
+TOOLTEST shuffle_individual $arg 
   
 
 # shuffle for all
 arg="h5repack_layout.h5 -f SHUF"
-if test $USE_FILTER_SHUFFLE != "yes"  ; then
- SKIP $arg
-else
- TOOLTEST shuffle_all $arg
-fi
+TOOLTEST shuffle_all $arg
   
 # fletcher32  with individual object
 arg="h5repack_layout.h5 -f dset2:FLET  -l dset2:CHUNK=20x10"
-if test $USE_FILTER_FLETCHER32 != "yes"  ; then
- SKIP $arg
-else
- TOOLTEST fletcher_individual $arg
-fi
+TOOLTEST fletcher_individual $arg
 
 # fletcher32 for all
 arg="h5repack_layout.h5 -f FLET"
-if test $USE_FILTER_FLETCHER32 != "yes"  ; then
- SKIP $arg
-else
- TOOLTEST fletcher_all $arg
-fi
+TOOLTEST fletcher_all $arg
 
 # all filters
 arg="h5repack_layout.h5 -f dset2:SHUF -f dset2:FLET -f dset2:SZIP=8,NN -f dset2:GZIP=1 -l dset2:CHUNK=20x10"
-if test $USE_FILTER_SZIP_ENCODER != "yes" -o $USE_FILTER_SZIP != "yes" -o $USE_FILTER_SHUFFLE != "yes" -o $USE_FILTER_FLETCHER32 != "yes" -o $USE_FILTER_DEFLATE != "yes" ; then
+if test $USE_FILTER_SZIP_ENCODER != "yes" -o $USE_FILTER_SZIP != "yes" -o $USE_FILTER_DEFLATE != "yes" ; then
  SKIP $arg
 else
  TOOLTEST all_filters $arg
@@ -828,87 +816,47 @@ fi
     
 # shuffle copy
 arg="h5repack_shuffle.h5"
-if test $USE_FILTER_SHUFFLE != "yes" ; then
- SKIP $arg
-else
- TOOLTEST shuffle_copy $arg
-fi
+TOOLTEST shuffle_copy $arg
 
 # shuffle remove
 arg="h5repack_shuffle.h5 -f dset_shuffle:NONE"
-if test $USE_FILTER_SHUFFLE != "yes" ; then
- SKIP $arg
-else
- TOOLTEST shuffle_remove $arg
-fi
+TOOLTEST shuffle_remove $arg
 
 # fletcher32 copy
 arg="h5repack_fletcher.h5"
-if test $USE_FILTER_FLETCHER32 != "yes" ; then
- SKIP $arg
-else
- TOOLTEST fletcher_copy $arg
-fi
+TOOLTEST fletcher_copy $arg
 
 # fletcher32 remove
 arg="h5repack_fletcher.h5 -f dset_fletcher32:NONE"
-if test $USE_FILTER_FLETCHER32 != "yes" ; then
- SKIP $arg
-else
- TOOLTEST fletcher_remove $arg
-fi        
+TOOLTEST fletcher_remove $arg
 
 # nbit copy
 arg="h5repack_nbit.h5"
-if test $USE_FILTER_NBIT != "yes" ; then
- SKIP $arg
-else
- TOOLTEST nbit_copy $arg
-fi
+TOOLTEST nbit_copy $arg
 
 # nbit remove
 arg="h5repack_nbit.h5 -f dset_nbit:NONE"
-if test $USE_FILTER_NBIT != "yes" ; then
- SKIP $arg
-else
- TOOLTEST nbit_remove $arg
-fi        
+TOOLTEST nbit_remove $arg
 
 # nbit add
 arg="h5repack_nbit.h5 -f dset_int31:NBIT"
-if test $USE_FILTER_NBIT != "yes" ; then
- SKIP $arg
-else
- TOOLTEST nbit_add $arg
-fi
+TOOLTEST nbit_add $arg
 
 # scaleoffset copy
 arg="h5repack_soffset.h5"
-if test $USE_FILTER_SCALEOFFSET != "yes" ; then
- SKIP $arg
-else
- TOOLTEST scale_copy $arg
-fi
+TOOLTEST scale_copy $arg
 
 # scaleoffset add
 arg="h5repack_soffset.h5 -f dset_none:SOFF=31,IN"
-if test $USE_FILTER_SCALEOFFSET != "yes" ; then
- SKIP $arg
-else
- TOOLTEST scale_add $arg
-fi
+TOOLTEST scale_add $arg
 
 # scaleoffset remove
 arg="h5repack_soffset.h5 -f dset_scaleoffset:NONE"
-if test $USE_FILTER_SCALEOFFSET != "yes" ; then
- SKIP $arg
-else
- TOOLTEST scale_remove $arg
-fi        
+TOOLTEST scale_remove $arg
 
 # remove all  filters
 arg="h5repack_filters.h5 -f NONE"
-if test $USE_FILTER_FLETCHER32 != "yes" -o $USE_FILTER_DEFLATE != "yes" -o $USE_FILTER_SZIP != "yes" -o $USE_FILTER_SZIP_ENCODER != "yes" -o $USE_FILTER_SHUFFLE != "yes"  -o $USE_FILTER_NBIT != "yes"  -o $USE_FILTER_SCALEOFFSET != "yes"  ; then
+if test $USE_FILTER_DEFLATE != "yes" -o $USE_FILTER_SZIP != "yes" -o $USE_FILTER_SZIP_ENCODER != "yes" ; then
  SKIP $arg
 else
  TOOLTEST remove_all $arg
@@ -1061,7 +1009,7 @@ fi
 # several global filters
 
 arg="h5repack_layout.h5 --filter GZIP=1 --filter SHUF"
-if test $USE_FILTER_DEFLATE != "yes" -o $USE_FILTER_SHUFFLE != "yes" ; then
+if test $USE_FILTER_DEFLATE != "yes" ; then
  SKIP $arg
 else
  TOOLTEST global_filters $arg
diff --git a/tools/h5repack/h5repack_main.c b/tools/h5repack/h5repack_main.c
index 3d4de6f..2d896f7 100644
--- a/tools/h5repack/h5repack_main.c
+++ b/tools/h5repack/h5repack_main.c
@@ -21,7 +21,7 @@
 #define PROGRAMNAME "h5repack"
 
 static int parse_command_line(int argc, const char **argv, pack_opt_t* options);
-static void leave(int ret);
+static void leave(int ret) NORETURN;
 
 
 /* module-scoped variables */
diff --git a/tools/h5repack/h5repacktst.c b/tools/h5repack/h5repacktst.c
index a32f33a..f49e587 100644
--- a/tools/h5repack/h5repacktst.c
+++ b/tools/h5repack/h5repacktst.c
@@ -441,8 +441,6 @@ int main (void)
 
     TESTING("    addding shuffle filter");
 
-#ifdef H5_HAVE_FILTER_SHUFFLE
-
     /*-------------------------------------------------------------------------
     * test an individual object option
     *-------------------------------------------------------------------------
@@ -464,9 +462,6 @@ int main (void)
         GOERROR;
 
     PASSED();
-#else
-    SKIPPED();
-#endif
 
     /*-------------------------------------------------------------------------
     * test all objects option
@@ -475,8 +470,6 @@ int main (void)
 
     TESTING("    addding shuffle filter to all");
 
-#ifdef H5_HAVE_FILTER_SHUFFLE
-
     if (h5repack_init (&pack_options, 0) < 0)
         GOERROR;
     if (h5repack_addfilter("SHUF",&pack_options) < 0)
@@ -493,13 +486,9 @@ int main (void)
         GOERROR;
 
     PASSED();
-#else
-    SKIPPED();
-#endif
 
-    TESTING("    adding checksum filter");
 
-#ifdef H5_HAVE_FILTER_FLETCHER32
+    TESTING("    adding checksum filter");
 
     /*-------------------------------------------------------------------------
     * test an individual object option
@@ -522,9 +511,6 @@ int main (void)
         GOERROR;
 
     PASSED();
-#else
-    SKIPPED();
-#endif
 
     /*-------------------------------------------------------------------------
     * test all objects option
@@ -534,8 +520,6 @@ int main (void)
 
     TESTING("    adding checksum filter to all");
 
-#ifdef H5_HAVE_FILTER_FLETCHER32
-
     if (h5repack_init (&pack_options, 0) < 0)
         GOERROR;
     if (h5repack_addfilter("FLET",&pack_options) < 0)
@@ -552,9 +536,6 @@ int main (void)
         GOERROR;
 
     PASSED();
-#else
-    SKIPPED();
-#endif
 
 
     TESTING("    filter queue fletcher, shuffle, deflate, szip");
@@ -568,16 +549,10 @@ int main (void)
         GOERROR;
     if (h5repack_addlayout("dset1:CHUNK 20x10",&pack_options) < 0)
         GOERROR;
-
-#if defined (H5_HAVE_FILTER_FLETCHER32)
     if (h5repack_addfilter("dset1:FLET",&pack_options) < 0)
         GOERROR;
-#endif
-
-#ifdef H5_HAVE_FILTER_SHUFFLE
     if (h5repack_addfilter("dset1:SHUF",&pack_options) < 0)
         GOERROR;
-#endif
 
 #if defined (H5_HAVE_FILTER_SZIP)
     if (szip_can_encode) {
@@ -1032,7 +1007,6 @@ int main (void)
 
     TESTING("    copy of shuffle filter");
 
-#ifdef H5_HAVE_FILTER_SHUFFLE
     if (h5repack_init (&pack_options, 0) < 0)
         GOERROR;
     if (h5repack(FNAME9,FNAME9OUT,&pack_options) < 0)
@@ -1045,13 +1019,10 @@ int main (void)
         GOERROR;
 
     PASSED();
-#else
-    SKIPPED();
-#endif
+
 
     TESTING("    removing shuffle filter");
 
-#ifdef H5_HAVE_FILTER_SHUFFLE
     if (h5repack_init (&pack_options, 0) < 0)
         GOERROR;
     if (h5repack_addfilter("dset_shuffle:NONE",&pack_options) < 0)
@@ -1066,13 +1037,10 @@ int main (void)
         GOERROR;
 
     PASSED();
-#else
-    SKIPPED();
-#endif
+
 
     TESTING("    copy of fletcher filter");
 
-#ifdef H5_HAVE_FILTER_FLETCHER32
     if (h5repack_init (&pack_options, 0) < 0)
         GOERROR;
     if (h5repack(FNAME10,FNAME10OUT,&pack_options) < 0)
@@ -1085,13 +1053,10 @@ int main (void)
         GOERROR;
 
     PASSED();
-#else
-    SKIPPED();
-#endif
+
 
     TESTING("    removing fletcher filter");
 
-#ifdef H5_HAVE_FILTER_FLETCHER32
     if (h5repack_init (&pack_options, 0) < 0)
         GOERROR;
     if (h5repack_addfilter("dset_fletcher32:NONE",&pack_options) < 0)
@@ -1106,14 +1071,10 @@ int main (void)
         GOERROR;
 
     PASSED();
-#else
-    SKIPPED();
-#endif
 
 
     TESTING("    copy of nbit filter");
 
-#ifdef H5_HAVE_FILTER_NBIT
     if (h5repack_init (&pack_options, 0) < 0)
         GOERROR;
     if (h5repack(FNAME12,FNAME12OUT,&pack_options) < 0)
@@ -1126,13 +1087,10 @@ int main (void)
         GOERROR;
 
     PASSED();
-#else
-    SKIPPED();
-#endif
+
 
     TESTING("    removing nbit filter");
 
-#ifdef H5_HAVE_FILTER_NBIT
     if (h5repack_init (&pack_options, 0) < 0)
         GOERROR;
     if (h5repack_addfilter("dset_nbit:NONE",&pack_options) < 0)
@@ -1147,14 +1105,10 @@ int main (void)
         GOERROR;
 
     PASSED();
-#else
-    SKIPPED();
-#endif
 
 
     TESTING("    adding nbit filter");
 
-#ifdef H5_HAVE_FILTER_NBIT
     if (h5repack_init (&pack_options, 0) < 0)
         GOERROR;
     if (h5repack_addfilter("dset_int31:NBIT",&pack_options) < 0)
@@ -1169,14 +1123,10 @@ int main (void)
         GOERROR;
 
     PASSED();
-#else
-    SKIPPED();
-#endif
 
 
     TESTING("    copy of scaleoffset filter");
 
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
     if (h5repack_init (&pack_options, 0) < 0)
         GOERROR;
     if (h5repack(FNAME13,FNAME13OUT,&pack_options) < 0)
@@ -1189,13 +1139,10 @@ int main (void)
         GOERROR;
 
     PASSED();
-#else
-    SKIPPED();
-#endif
+
 
     TESTING("    removing scaleoffset filter");
 
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
     if (h5repack_init (&pack_options, 0) < 0)
         GOERROR;
     if (h5repack_addfilter("dset_scaleoffset:NONE",&pack_options) < 0)
@@ -1210,14 +1157,10 @@ int main (void)
         GOERROR;
 
     PASSED();
-#else
-    SKIPPED();
-#endif
 
 
     TESTING("    adding scaleoffset filter");
 
-#ifdef H5_HAVE_FILTER_SCALEOFFSET
     if (h5repack_init (&pack_options, 0) < 0)
         GOERROR;
     if (h5repack_addfilter("dset_none:SOFF=31,IN",&pack_options) < 0)
@@ -1232,10 +1175,6 @@ int main (void)
         GOERROR;
 
     PASSED();
-#else
-    SKIPPED();
-#endif
-
 
 
     /*-------------------------------------------------------------------------
@@ -1251,9 +1190,7 @@ int main (void)
 
     TESTING("    filter conversion from deflate to szip");
 
-#if defined (H5_HAVE_FILTER_SZIP) \
-    && defined (H5_HAVE_FILTER_DEFLATE) \
-    && defined (H5_HAVE_FILTER_FLETCHER32) && defined (H5_HAVE_FILTER_SHUFFLE)
+#if defined (H5_HAVE_FILTER_SZIP) && defined (H5_HAVE_FILTER_DEFLATE)
 
     if (szip_can_encode) {
         if (h5repack_init (&pack_options, 0) < 0)
@@ -1279,9 +1216,7 @@ int main (void)
 
     TESTING("    filter conversion from szip to deflate");
 
-#if defined (H5_HAVE_FILTER_SZIP) \
-    && defined (H5_HAVE_FILTER_DEFLATE) \
-    && defined (H5_HAVE_FILTER_FLETCHER32) && defined (H5_HAVE_FILTER_SHUFFLE)
+#if defined (H5_HAVE_FILTER_SZIP) && defined (H5_HAVE_FILTER_DEFLATE)
 
     if (szip_can_encode) {
         if (h5repack_init (&pack_options, 0) < 0)
@@ -1313,8 +1248,7 @@ int main (void)
 
     TESTING("    removing all filters");
 
-#if defined (H5_HAVE_FILTER_SZIP) && defined (H5_HAVE_FILTER_DEFLATE) \
-    && defined (H5_HAVE_FILTER_FLETCHER32) && defined (H5_HAVE_FILTER_SHUFFLE)
+#if defined (H5_HAVE_FILTER_SZIP) && defined (H5_HAVE_FILTER_DEFLATE)
 
     if (h5repack_init (&pack_options, 0) < 0)
         GOERROR;
@@ -1420,7 +1354,7 @@ int main (void)
 
     TESTING("    several global filters");
 
-#if defined (H5_HAVE_FILTER_DEFLATE) && defined (H5_HAVE_FILTER_SHUFFLE)
+#if defined (H5_HAVE_FILTER_DEFLATE)
 
     if (h5repack_init (&pack_options, 0) < 0)
         GOERROR;
@@ -2336,13 +2270,12 @@ int make_shuffle(hid_t loc_id)
     * shuffle
     *-------------------------------------------------------------------------
     */
-#if defined (H5_HAVE_FILTER_SHUFFLE)
+
     /* set the shuffle filter */
     if (H5Pset_shuffle(dcpl) < 0)
         goto out;
     if (make_dset(loc_id,"dset_shuffle",sid,dcpl,buf) < 0)
         goto out;
-#endif
 
 
     /*-------------------------------------------------------------------------
@@ -2403,7 +2336,7 @@ int make_fletcher32(hid_t loc_id)
     * fletcher32
     *-------------------------------------------------------------------------
     */
-#if defined (H5_HAVE_FILTER_FLETCHER32)
+
     /* remove the filters from the dcpl */
     if (H5Premove_filter(dcpl,H5Z_FILTER_ALL) < 0)
         goto out;
@@ -2412,7 +2345,6 @@ int make_fletcher32(hid_t loc_id)
         goto out;
     if (make_dset(loc_id,"dset_fletcher32",sid,dcpl,buf) < 0)
         goto out;
-#endif
 
     /*-------------------------------------------------------------------------
     * close space and dcpl
@@ -2477,7 +2409,6 @@ int make_nbit(hid_t loc_id)
         goto out;
     }
 
-#if defined H5_HAVE_FILTER_NBIT
     /* remove the filters from the dcpl */
     if(H5Premove_filter(dcpl, H5Z_FILTER_ALL) < 0)
     {
@@ -2511,7 +2442,6 @@ int make_nbit(hid_t loc_id)
         goto out;
     }
     H5Dclose(dsid);
-#endif
 
     /*-------------------------------------------------------------------------
     * close
@@ -2573,7 +2503,6 @@ int make_scaleoffset(hid_t loc_id)
 
     dtid = H5Tcopy(H5T_NATIVE_INT);
 
-#if defined (H5_HAVE_FILTER_SCALEOFFSET)
     /* remove the filters from the dcpl */
     if(H5Premove_filter(dcpl, H5Z_FILTER_ALL) < 0) {
         H5Tclose(dtid);
@@ -2602,7 +2531,6 @@ int make_scaleoffset(hid_t loc_id)
     }
     H5Tclose(dtid);
     H5Dclose(dsid);
-#endif
 
     /*-------------------------------------------------------------------------
     * close space and dcpl
@@ -2636,10 +2564,8 @@ int make_all_filters(hid_t loc_id)
 {
     hid_t    dcpl; /* dataset creation property list */
     hid_t    sid;  /* dataspace ID */
-#if defined (H5_HAVE_FILTER_NBIT)
     hid_t    dtid;
     hid_t    dsid;
-#endif /* H5_HAVE_FILTER_NBIT */
 #if defined (H5_HAVE_FILTER_SZIP)
     unsigned szip_options_mask=H5_SZIP_ALLOW_K13_OPTION_MASK|H5_SZIP_NN_OPTION_MASK;
     unsigned szip_pixels_per_block=8;
@@ -2669,17 +2595,13 @@ int make_all_filters(hid_t loc_id)
     if (H5Pset_chunk(dcpl, RANK, chunk_dims) < 0)
         goto out;
 
-#if defined (H5_HAVE_FILTER_SHUFFLE)
     /* set the shuffle filter */
     if (H5Pset_shuffle(dcpl) < 0)
         goto out;
-#endif
 
-#if defined (H5_HAVE_FILTER_FLETCHER32)
     /* set the checksum filter */
     if (H5Pset_fletcher32(dcpl) < 0)
         goto out;
-#endif
 
 #if defined (H5_HAVE_FILTER_SZIP)
     if (h5tools_can_encode(H5Z_FILTER_SZIP) == 1)
@@ -2705,7 +2627,6 @@ int make_all_filters(hid_t loc_id)
     if (make_dset(loc_id,"dset_all",sid,dcpl,buf) < 0)
         goto out;
 
-#if defined (H5_HAVE_FILTER_FLETCHER32)
     /* remove the filters from the dcpl */
     if (H5Premove_filter(dcpl,H5Z_FILTER_ALL) < 0)
         goto out;
@@ -2714,7 +2635,6 @@ int make_all_filters(hid_t loc_id)
         goto out;
     if (make_dset(loc_id,"dset_fletcher32",sid,dcpl,buf) < 0)
         goto out;
-#endif
 
 
     /* Make sure encoding is enabled */
@@ -2736,7 +2656,6 @@ int make_all_filters(hid_t loc_id)
 #endif
 
 
-#if defined (H5_HAVE_FILTER_SHUFFLE)
     /* remove the filters from the dcpl */
     if (H5Premove_filter(dcpl,H5Z_FILTER_ALL) < 0)
         goto out;
@@ -2745,7 +2664,6 @@ int make_all_filters(hid_t loc_id)
         goto out;
     if (make_dset(loc_id,"dset_shuffle",sid,dcpl,buf) < 0)
         goto out;
-#endif
 
 
 #if defined (H5_HAVE_FILTER_DEFLATE)
@@ -2761,7 +2679,6 @@ int make_all_filters(hid_t loc_id)
 
 
 
-#if defined (H5_HAVE_FILTER_NBIT)
     /* remove the filters from the dcpl */
     if (H5Premove_filter(dcpl, H5Z_FILTER_ALL) < 0)
         goto out;
@@ -2782,8 +2699,6 @@ int make_all_filters(hid_t loc_id)
         return -1;
     if(H5Dclose(dsid) < 0)
         return -1;
-#endif
-
 
     if(H5Sclose(sid) < 0)
         goto out;
diff --git a/tools/h5repack/testfiles/README b/tools/h5repack/testfiles/README
new file mode 100644
index 0000000..4096dee
--- /dev/null
+++ b/tools/h5repack/testfiles/README
@@ -0,0 +1,5 @@
+h5repack_nested_8bit_enum_deflated.h5:
+h5repack_nested_8bit_enum.h5:
+    enuberated 8bit type nested in compount type.  Original file provided
+    by a user (HDFFV-8667) as a test file. Used h5copy to extract only the
+    Compound type dataset. The non-deflated version is produced by h5repack.
diff --git a/tools/h5repack/testfiles/h5repack_nested_8bit_enum.h5 b/tools/h5repack/testfiles/h5repack_nested_8bit_enum.h5
new file mode 100644
index 0000000..f1bd8e9
Binary files /dev/null and b/tools/h5repack/testfiles/h5repack_nested_8bit_enum.h5 differ
diff --git a/tools/h5repack/testfiles/h5repack_nested_8bit_enum_deflated.h5 b/tools/h5repack/testfiles/h5repack_nested_8bit_enum_deflated.h5
new file mode 100644
index 0000000..2e66da2
Binary files /dev/null and b/tools/h5repack/testfiles/h5repack_nested_8bit_enum_deflated.h5 differ
diff --git a/tools/h5stat/CMakeLists.txt b/tools/h5stat/CMakeLists.txt
index 0658216..5230693 100644
--- a/tools/h5stat/CMakeLists.txt
+++ b/tools/h5stat/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required (VERSION 2.8.11)
+cmake_minimum_required (VERSION 3.1.0)
 PROJECT (HDF5_TOOLS_H5STAT)
 
 #-----------------------------------------------------------------------------
@@ -11,7 +11,7 @@ INCLUDE_DIRECTORIES (${HDF5_TOOLS_SRC_DIR}/lib)
 # --------------------------------------------------------------------
 add_executable (h5stat ${HDF5_TOOLS_H5STAT_SOURCE_DIR}/h5stat.c)
 TARGET_NAMING (h5stat ${LIB_TYPE})
-TARGET_C_PROPERTIES (h5stat " " " ")
+TARGET_C_PROPERTIES (h5stat ${LIB_TYPE} " " " ")
 target_link_libraries (h5stat  ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
 set_target_properties (h5stat PROPERTIES FOLDER tools)
 
@@ -23,8 +23,8 @@ if (BUILD_TESTING)
   # --------------------------------------------------------------------
   if (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS)
     add_executable (h5stat_gentest ${HDF5_TOOLS_H5STAT_SOURCE_DIR}/h5stat_gentest.c)
-    TARGET_NAMING (h5stat_gentest ${LIB_TYPE})
-    TARGET_C_PROPERTIES (h5stat_gentest " " " ")
+    TARGET_NAMING (h5stat_gentest STATIC)
+    TARGET_C_PROPERTIES (h5stat_gentest STATIC " " " ")
     target_link_libraries (h5stat_gentest ${HDF5_LIB_TARGET})
     set_target_properties (h5stat_gentest PROPERTIES FOLDER generator/tools)
     
diff --git a/tools/h5stat/Makefile.in b/tools/h5stat/Makefile.in
index 32b6d4c..1bbefe9 100644
--- a/tools/h5stat/Makefile.in
+++ b/tools/h5stat/Makefile.in
@@ -106,7 +106,8 @@ bin_PROGRAMS = h5stat$(EXEEXT)
 TESTS = $(am__EXEEXT_1) $(TEST_SCRIPT)
 subdir = tools/h5stat
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \
+	$(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs
@@ -415,7 +416,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@
 AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@
 AM_MAKEFLAGS = @AM_MAKEFLAGS@
 AR = @AR@
-AS = @AS@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -447,7 +447,6 @@ DIRECT_VFD = @DIRECT_VFD@
 DLLTOOL = @DLLTOOL@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
-DYNAMIC_DIRS = @DYNAMIC_DIRS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -466,17 +465,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@
 FCLIBS = @FCLIBS@
 FC_VERSION = @FC_VERSION@
 FGREP = @FGREP@
-FILTERS = @FILTERS@
 FSEARCH_DIRS = @FSEARCH_DIRS@
 GREP = @GREP@
 H5_CFLAGS = @H5_CFLAGS@
 H5_CPPFLAGS = @H5_CPPFLAGS@
 H5_CXXFLAGS = @H5_CXXFLAGS@
-H5_CXX_SHARED = @H5_CXX_SHARED@
 H5_FCFLAGS = @H5_FCFLAGS@
 H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@
 H5_LDFLAGS = @H5_LDFLAGS@
-H5_LONE_COLON = @H5_LONE_COLON@
 H5_VERSION = @H5_VERSION@
 HADDR_T = @HADDR_T@
 HAVE_DMALLOC = @HAVE_DMALLOC@
@@ -499,7 +495,6 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INSTRUMENT = @INSTRUMENT@
 INSTRUMENT_LIBRARY = @INSTRUMENT_LIBRARY@
-LARGEFILE = @LARGEFILE@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
@@ -540,7 +535,6 @@ R_INTEGER = @R_INTEGER@
 R_LARGE = @R_LARGE@
 SEARCH = @SEARCH@
 SED = @SED@
-SETX = @SETX@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIZE_T = @SIZE_T@
@@ -555,10 +549,6 @@ TR = @TR@
 TRACE_API = @TRACE_API@
 UNAME_INFO = @UNAME_INFO@
 USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@
-USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@
-USE_FILTER_NBIT = @USE_FILTER_NBIT@
-USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@
-USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@
 USE_FILTER_SZIP = @USE_FILTER_SZIP@
 USINGMEMCHECKER = @USINGMEMCHECKER@
 VERSION = @VERSION@
@@ -672,12 +662,12 @@ TRACE = perl $(top_srcdir)/bin/trace
 
 # .chkexe files are used to mark tests that have run successfully.
 # .chklog files are output from those tests.
-# *.clog are from the MPE option.
+# *.clog and *.clog2 are from the MPE option.
 
 # Temporary files.  *.h5 are generated by h5repart_gentest.  They should
 # copied to the testfiles/ directory if update is required. fst_family*.h5
 # and scd_family*.h5 were created by setting the HDF5_NOCLEANUP variable.
-CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.h5 \
+CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 *.h5 \
 	../testfiles/fst_family*.h5 ../testfiles/scd_family*.h5
 
 #test script and program
diff --git a/tools/h5stat/testh5stat.sh.in b/tools/h5stat/testh5stat.sh.in
index cb0446b..4d698da 100644
--- a/tools/h5stat/testh5stat.sh.in
+++ b/tools/h5stat/testh5stat.sh.in
@@ -25,10 +25,6 @@ srcdir=@srcdir@
 # Determine which filters are available
 USE_FILTER_SZIP="@USE_FILTER_SZIP@"
 USE_FILTER_DEFLATE="@USE_FILTER_DEFLATE@"
-USE_FILTER_SHUFFLE="@USE_FILTER_SHUFFLE@"
-USE_FILTER_FLETCHER32="@USE_FILTER_FLETCHER32@"
-USE_FILTER_NBIT="@USE_FILTER_NBIT@"
-USE_FILTER_SCALEOFFSET="@USE_FILTER_SCALEOFFSET@"
 
 TESTNAME=h5stat
 EXIT_SUCCESS=0
diff --git a/tools/lib/CMakeLists.txt b/tools/lib/CMakeLists.txt
index e65673a..dbd72cd 100644
--- a/tools/lib/CMakeLists.txt
+++ b/tools/lib/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required (VERSION 2.8.11)
+cmake_minimum_required (VERSION 3.1.0)
 PROJECT (HDF5_TOOLS_LIB)
 
 #-----------------------------------------------------------------------------
@@ -24,6 +24,7 @@ set (H5_TOOLS_LIB_SRCS
     ${HDF5_TOOLS_LIB_SOURCE_DIR}/h5tools_type.c
     ${HDF5_TOOLS_LIB_SOURCE_DIR}/h5tools_utils.c
     ${HDF5_TOOLS_LIB_SOURCE_DIR}/h5trav.c
+    ${HDF5_TOOLS_LIB_SOURCE_DIR}/io_timer.c
 )
 
 set (H5_TOOLS_LIB_HDRS
@@ -37,14 +38,14 @@ set (H5_TOOLS_LIB_HDRS
 )
 
 add_library (${HDF5_TOOLS_LIB_TARGET} ${LIB_TYPE} ${H5_TOOLS_LIB_SRCS} ${H5_TOOLS_LIB_HDRS})
-TARGET_C_PROPERTIES (${HDF5_TOOLS_LIB_TARGET} " " " ")
+TARGET_C_PROPERTIES (${HDF5_TOOLS_LIB_TARGET} ${LIB_TYPE} " " " ")
 target_link_libraries (${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
 set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_TOOLS_LIB_TARGET}")
 H5_SET_LIB_OPTIONS (
     ${HDF5_TOOLS_LIB_TARGET} ${HDF5_TOOLS_LIB_NAME}
     ${LIB_TYPE}
     HDF5_TOOLS_LIB_NAME_RELEASE
-  HDF5_TOOLS_LIB_NAME_DEBUG
+    HDF5_TOOLS_LIB_NAME_DEBUG
 )
 #set_target_properties (${HDF5_TOOLS_LIB_TARGET} PROPERTIES COMPILE_DEFINITIONS H5DIFF_DEBUG)
 set_target_properties (${HDF5_TOOLS_LIB_TARGET} PROPERTIES 
@@ -75,7 +76,7 @@ install (
 #-----------------------------------------------------------------------------
 if (HDF5_EXPORTED_TARGETS)
   if (BUILD_SHARED_LIBS)
-    INSTALL_TARGET_PDB (${HDF5_TOOLS_LIB_TARGET} ${HDF5_INSTALL_LIB_DIR} toolslibraries)
+    INSTALL_TARGET_PDB (${HDF5_TOOLS_LIB_TARGET} ${HDF5_INSTALL_BIN_DIR} toolslibraries)
   endif (BUILD_SHARED_LIBS)
   
   install (
diff --git a/tools/lib/Makefile.am b/tools/lib/Makefile.am
index 9050aac..e8fc6a1 100644
--- a/tools/lib/Makefile.am
+++ b/tools/lib/Makefile.am
@@ -28,7 +28,7 @@ noinst_LTLIBRARIES=libh5tools.la
 
 libh5tools_la_SOURCES=h5tools.c h5tools_dump.c h5tools_str.c h5tools_utils.c h5diff.c \
     h5diff_array.c h5diff_attr.c h5diff_dset.c h5diff_util.c h5trav.c  \
-    h5tools_filters.c h5tools_ref.c h5tools_type.c
+    h5tools_filters.c h5tools_ref.c h5tools_type.c io_timer.c
 
 # Test program.  Link using libhdf5 and libh5tools
 TEST_PROG=
diff --git a/tools/lib/Makefile.in b/tools/lib/Makefile.in
index 210b6b3..0b531b3 100644
--- a/tools/lib/Makefile.in
+++ b/tools/lib/Makefile.in
@@ -103,7 +103,8 @@ check_PROGRAMS = $(am__EXEEXT_1)
 TESTS = $(am__EXEEXT_1)
 subdir = tools/lib
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \
+	$(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs
@@ -115,7 +116,7 @@ libh5tools_la_LIBADD =
 am_libh5tools_la_OBJECTS = h5tools.lo h5tools_dump.lo h5tools_str.lo \
 	h5tools_utils.lo h5diff.lo h5diff_array.lo h5diff_attr.lo \
 	h5diff_dset.lo h5diff_util.lo h5trav.lo h5tools_filters.lo \
-	h5tools_ref.lo h5tools_type.lo
+	h5tools_ref.lo h5tools_type.lo io_timer.lo
 libh5tools_la_OBJECTS = $(am_libh5tools_la_OBJECTS)
 AM_V_lt = $(am__v_lt_ at AM_V@)
 am__v_lt_ = $(am__v_lt_ at AM_DEFAULT_V@)
@@ -402,7 +403,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@
 AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@
 AM_MAKEFLAGS = @AM_MAKEFLAGS@
 AR = @AR@
-AS = @AS@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -434,7 +434,6 @@ DIRECT_VFD = @DIRECT_VFD@
 DLLTOOL = @DLLTOOL@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
-DYNAMIC_DIRS = @DYNAMIC_DIRS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -453,17 +452,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@
 FCLIBS = @FCLIBS@
 FC_VERSION = @FC_VERSION@
 FGREP = @FGREP@
-FILTERS = @FILTERS@
 FSEARCH_DIRS = @FSEARCH_DIRS@
 GREP = @GREP@
 H5_CFLAGS = @H5_CFLAGS@
 H5_CPPFLAGS = @H5_CPPFLAGS@
 H5_CXXFLAGS = @H5_CXXFLAGS@
-H5_CXX_SHARED = @H5_CXX_SHARED@
 H5_FCFLAGS = @H5_FCFLAGS@
 H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@
 H5_LDFLAGS = @H5_LDFLAGS@
-H5_LONE_COLON = @H5_LONE_COLON@
 H5_VERSION = @H5_VERSION@
 HADDR_T = @HADDR_T@
 HAVE_DMALLOC = @HAVE_DMALLOC@
@@ -486,7 +482,6 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INSTRUMENT = @INSTRUMENT@
 INSTRUMENT_LIBRARY = @INSTRUMENT_LIBRARY@
-LARGEFILE = @LARGEFILE@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
@@ -527,7 +522,6 @@ R_INTEGER = @R_INTEGER@
 R_LARGE = @R_LARGE@
 SEARCH = @SEARCH@
 SED = @SED@
-SETX = @SETX@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIZE_T = @SIZE_T@
@@ -542,10 +536,6 @@ TR = @TR@
 TRACE_API = @TRACE_API@
 UNAME_INFO = @UNAME_INFO@
 USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@
-USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@
-USE_FILTER_NBIT = @USE_FILTER_NBIT@
-USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@
-USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@
 USE_FILTER_SZIP = @USE_FILTER_SZIP@
 USINGMEMCHECKER = @USINGMEMCHECKER@
 VERSION = @VERSION@
@@ -659,14 +649,14 @@ TRACE = perl $(top_srcdir)/bin/trace
 
 # .chkexe files are used to mark tests that have run successfully.
 # .chklog files are output from those tests.
-# *.clog are from the MPE option.
-CHECK_CLEANFILES = *.chkexe *.chklog *.clog
+# *.clog and *.clog2 are from the MPE option.
+CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2
 
 # This is our main target, the h5tools library.
 noinst_LTLIBRARIES = libh5tools.la
 libh5tools_la_SOURCES = h5tools.c h5tools_dump.c h5tools_str.c h5tools_utils.c h5diff.c \
     h5diff_array.c h5diff_attr.c h5diff_dset.c h5diff_util.c h5trav.c  \
-    h5tools_filters.c h5tools_ref.c h5tools_type.c
+    h5tools_filters.c h5tools_ref.c h5tools_type.c io_timer.c
 
 
 # Test program.  Link using libhdf5 and libh5tools
@@ -773,6 +763,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/h5tools_type.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/h5tools_utils.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/h5trav.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/io_timer.Plo at am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
diff --git a/tools/lib/h5tools_filters.c b/tools/lib/h5tools_filters.c
index 79cf253..ccdba26 100644
--- a/tools/lib/h5tools_filters.c
+++ b/tools/lib/h5tools_filters.c
@@ -107,44 +107,24 @@ int h5tools_canreadf(const char* name, /* object name, serves also as boolean pr
 			 *-------------------------------------------------------------------------
 			 */
 		case H5Z_FILTER_SHUFFLE:
-#ifndef H5_HAVE_FILTER_SHUFFLE
-			if (name)
-				print_warning(name,"shuffle");
-			return 0;
-#endif
 			break;
 			/*-------------------------------------------------------------------------
 			 * H5Z_FILTER_FLETCHER32 3 , fletcher32 checksum of EDC
 			 *-------------------------------------------------------------------------
 			 */
 		case H5Z_FILTER_FLETCHER32:
-#ifndef H5_HAVE_FILTER_FLETCHER32
-			if (name)
-				print_warning(name,"fletcher32");
-			return 0;
-#endif
 			break;
 			/*-------------------------------------------------------------------------
 			 * H5Z_FILTER_NBIT
 			 *-------------------------------------------------------------------------
 			 */
 		case H5Z_FILTER_NBIT:
-#ifndef H5_HAVE_FILTER_NBIT
-			if (name)
-				print_warning(name,"nbit");
-			return 0;
-#endif
 			break;
 			/*-------------------------------------------------------------------------
 			 * H5Z_FILTER_SCALEOFFSET
 			 *-------------------------------------------------------------------------
 			 */
 		case H5Z_FILTER_SCALEOFFSET:
-#ifndef H5_HAVE_FILTER_SCALEOFFSET
-			if (name)
-				print_warning(name,"scaleoffset");
-			return 0;
-#endif
 			break;
 		}/*switch*/
 	}/*for*/
@@ -211,24 +191,12 @@ int h5tools_can_encode(H5Z_filter_t filtn) {
 #endif
 		break;
 	case H5Z_FILTER_SHUFFLE:
-#ifndef H5_HAVE_FILTER_SHUFFLE
-		return 0;
-#endif
 		break;
 	case H5Z_FILTER_FLETCHER32:
-#ifndef H5_HAVE_FILTER_FLETCHER32
-		return 0;
-#endif
 		break;
 	case H5Z_FILTER_NBIT:
-#ifndef H5_HAVE_FILTER_NBIT
-		return 0;
-#endif
 		break;
 	case H5Z_FILTER_SCALEOFFSET:
-#ifndef H5_HAVE_FILTER_SCALEOFFSET
-		return 0;
-#endif
 		break;
 	}/*switch*/
 
diff --git a/tools/lib/h5tools_str.c b/tools/lib/h5tools_str.c
index ac191d6..22518d6 100644
--- a/tools/lib/h5tools_str.c
+++ b/tools/lib/h5tools_str.c
@@ -155,11 +155,7 @@ h5tools_str_append(h5tools_str_t *str/*in,out*/, const char *fmt, ...)
          * to lack of buffer size, so try one more time after realloc more
          * buffer size before return NULL. 
          */
-        if (nchars < 0 
-#ifndef H5_VSNPRINTF_WORKS
-                && (HDstrlen(str->s) < str->nalloc)
-#endif
-                ) {
+        if (nchars < 0) {
             /* failure, such as bad format */
             return NULL;
         }
diff --git a/tools/lib/h5tools_utils.c b/tools/lib/h5tools_utils.c
index d7c5adb..fc8cf1d 100644
--- a/tools/lib/h5tools_utils.c
+++ b/tools/lib/h5tools_utils.c
@@ -89,28 +89,11 @@ void parallel_print(const char* format, ...)
         HDvprintf(format, ap);
     else {
         if(overflow_file == NULL) /*no overflow has occurred yet */ {
-#if 0
-            printf("calling HDvsnprintf: OUTBUFF_SIZE=%ld, outBuffOffset=%ld, ", (long)OUTBUFF_SIZE, (long)outBuffOffset);
-#endif
             bytes_written = HDvsnprintf(outBuff+outBuffOffset, OUTBUFF_SIZE-outBuffOffset, format, ap);
-#if 0
-            printf("bytes_written=%ld\n", (long)bytes_written);
-#endif
             HDva_end(ap);
             HDva_start(ap, format);
 
-#if 0
-            printf("Result: bytes_written=%ld, OUTBUFF_SIZE-outBuffOffset=%ld\n", (long)bytes_written, (long)OUTBUFF_SIZE-outBuffOffset);
-#endif
-
-            if ((bytes_written < 0) ||
-#ifdef H5_VSNPRINTF_WORKS
-                    (bytes_written >= (OUTBUFF_SIZE-outBuffOffset))
-#else
-                    ((bytes_written+1) == (OUTBUFF_SIZE-outBuffOffset))
-#endif
-            )
-            {
+            if((bytes_written < 0) || (bytes_written >= (OUTBUFF_SIZE - outBuffOffset))) {
                 /* Terminate the outbuff at the end of the previous output */
                 outBuff[outBuffOffset] = '\0';
 
diff --git a/tools/lib/h5tools_utils.h b/tools/lib/h5tools_utils.h
index 3285278..fd588b9 100644
--- a/tools/lib/h5tools_utils.h
+++ b/tools/lib/h5tools_utils.h
@@ -124,9 +124,9 @@ H5TOOLS_DLLVAR int     h5tools_nCols;               /*max number of columns for
 /* Definitions of useful routines */
 H5TOOLS_DLL void     indentation(int);
 H5TOOLS_DLL void     print_version(const char *progname);
-H5TOOLS_DLL void     parallel_print(const char* format, ... );
-H5TOOLS_DLL void     error_msg(const char *fmt, ...);
-H5TOOLS_DLL void     warn_msg(const char *fmt, ...);
+H5TOOLS_DLL void     parallel_print(const char* format, ... )__attribute__((format (printf, 1, 2)));
+H5TOOLS_DLL void     error_msg(const char *fmt, ...)__attribute__((format (printf, 1, 2)));
+H5TOOLS_DLL void     warn_msg(const char *fmt, ...)__attribute__((format (printf, 1, 2)));
 H5TOOLS_DLL void     help_ref_msg(FILE *output);
 H5TOOLS_DLL void     free_table(table_t *table);
 #ifdef H5DUMP_DEBUG
diff --git a/tools/lib/h5trav.c b/tools/lib/h5trav.c
index d0a4a76..90e6d3d 100644
--- a/tools/lib/h5trav.c
+++ b/tools/lib/h5trav.c
@@ -50,6 +50,10 @@ typedef struct {
     hid_t fid;                      /* File ID being traversed */
 } trav_print_udata_t;
 
+typedef struct trav_path_op_data_t {
+    const char *path;
+} trav_path_op_data_t;
+
 /* format for hsize_t */
 #ifdef H5TRAV_PRINT_SPACE
 #define HSIZE_T_FORMAT   "%" H5_PRINTF_LL_WIDTH "u"
@@ -899,11 +903,11 @@ trav_attr(hid_t
 #ifndef H5TRAV_PRINT_SPACE
 UNUSED
 #endif /* H5TRAV_PRINT_SPACE */
-obj, const char *attr_name, const H5A_info_t UNUSED *ainfo, void *op_data)
+obj, const char *attr_name, const H5A_info_t UNUSED *ainfo, void *_op_data)
 {
-    char               *buf;
+    trav_path_op_data_t *op_data = (trav_path_op_data_t *)_op_data;
+    const char          *buf = op_data->path;
 
-    buf = (char*)op_data;
     if((strlen(buf)==1) && (*buf=='/'))
         printf(" %-10s %s%s", "attribute", buf, attr_name);
     else
@@ -1009,10 +1013,14 @@ trav_print_visit_obj(const char *path, const H5O_info_t *oinfo,
 
     /* Check if we've already seen this object */
     if(NULL == already_visited) {
+        trav_path_op_data_t op_data;
+
+        op_data.path = path;
         /* Finish printing line about object */
         printf("\n");
         if(trav_verbosity > 0)
-            H5Aiterate_by_name(print_udata->fid, path, trav_index_by, trav_index_order, NULL, trav_attr, (void *)path, H5P_DEFAULT);
+            H5Aiterate_by_name(print_udata->fid, path, trav_index_by, trav_index_order, 
+                               NULL, trav_attr, &op_data, H5P_DEFAULT);
     }
     else
         /* Print the link's original name */
diff --git a/tools/lib/io_timer.c b/tools/lib/io_timer.c
new file mode 100644
index 0000000..b8d44de
--- /dev/null
+++ b/tools/lib/io_timer.c
@@ -0,0 +1,232 @@
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * Copyright by The HDF Group.                                               *
+ * 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.     *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/* changes:
+ * rename pio_timer.c as io_timer.c;
+ * Removed pio_perf.h so that it is not dependant on it;
+ * Removed set_timer_type() and get_timer_type() since no one calls them;
+ * Merged sio_timer.c into io_timer.c;
+ */
+
+/*
+ * Purpose:
+ *
+ * This is a module of useful timing functions for performance testing.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "H5private.h"
+#include "hdf5.h"
+
+#ifdef H5_HAVE_PARALLEL
+#include <mpi.h>
+#endif
+
+#include "io_timer.h"
+
+/*
+ * The number to divide the tv_usec field with to get a nice decimal to add to
+ * the number of seconds.
+ */
+#define MICROSECOND     1000000.0F
+
+/* global variables */
+io_time_t   *timer_g;            /* timer: global for stub functions     */
+
+/*
+ * Function:  sub_time
+ * Purpose:   Struct two time values, and return the difference, in microseconds
+ *
+ *         Note that the function assumes that a > b
+ * Programmer: Leon Arber, 1/27/06
+ */
+static double sub_time(struct timeval* a, struct timeval* b)
+{
+    return (((double)a->tv_sec +
+     ((double)a->tv_usec) / MICROSECOND) -
+  ((double)b->tv_sec +
+   ((double)b->tv_usec) / MICROSECOND));
+}
+
+
+/*
+ * Function:    io_time_new
+ * Purpose:     Build us a brand, spankin', new performance time object.
+ *              The object is a black box to the user. They just tell us
+ *              what type of timer they want (MPI_CLOCK for MPI_Wtime or
+ *              SYS_CLOCK for system time).
+ * Return:      Pointer to io_time object
+ * Programmer:  Bill Wendling, 01. October 2001
+ * Modifications:
+ */
+io_time_t *
+io_time_new(clock_type type)
+{
+    io_time_t *pt = (io_time_t *)HDcalloc(1, sizeof(struct io_time_t));
+
+    /* set global timer variable */
+    timer_g = pt;
+
+    pt->type = type;
+    return pt;
+}
+
+/*
+ * Function:    io_time_destroy
+ * Purpose:     Remove the memory allocated for the io_time object. Only
+ *              need to call on a pointer allocated with the ``io_time_new''
+ *              function.
+ * Return:      Nothing
+ * Programmer:  Bill Wendling, 01. October 2001
+ * Modifications:
+ */
+void
+io_time_destroy(io_time_t *pt)
+{
+    HDfree(pt);
+    /* reset the global timer pointer too. */
+    timer_g = NULL;
+}
+
+#if 0
+/* no one is calling set_timer_type or get_timer_type ???*/
+/*
+ * Function:    set_timer_type
+ * Purpose:     Set the type of the timer to either MPI_CLOCK or SYS_CLOCK.
+ *              This really only needs to be called if you didn't construct a
+ *              timer with the pio_timer_new function (shame!).
+ * Return:      Nothing
+ * Programmer:  Bill Wendling, 04. October 2001
+ * Modifications:
+ */
+void
+set_timer_type(io_time_t *pt, clock_type type)
+{
+    pt->type = type;
+}
+
+/*
+ * Function:    get_timer_type
+ * Purpose:     Get the type of the timer.
+ * Return:      MPI_CLOCK or SYS_CLOCK.
+ * Programmer:  Bill Wendling, 04. October 2001
+ * Modifications:
+ */
+clock_type
+get_timer_type(io_time_t *pt)
+{
+    return pt->type;
+}
+#endif
+
+/*
+ * Function:    set_time
+ * Purpose:     Set the time in a ``io_time_t'' object.
+ * Return:      Pointer to the passed in ``io_time_t'' object if SUCCEED; Null otherwise.
+ * Programmer:  Bill Wendling, 01. October 2001
+ * Modifications:
+ */
+io_time_t *
+set_time(io_time_t *pt, timer_type t, int start_stop)
+{
+    /* sanity check */
+    assert(pt);
+
+    switch(pt->type){
+#ifdef H5_HAVE_PARALLEL
+    case MPI_CLOCK:
+	if (start_stop == TSTART) {
+	    pt->mpi_timer[t] = MPI_Wtime();
+
+	    /* When we start the timer for HDF5_FINE_WRITE_FIXED_DIMS or HDF5_FINE_READ_FIXED_DIMS
+	     * we compute the time it took to only open the file */
+	    if(t == HDF5_FINE_WRITE_FIXED_DIMS)
+		pt->total_time[HDF5_FILE_WRITE_OPEN] += pt->mpi_timer[t] - pt->mpi_timer[HDF5_GROSS_WRITE_FIXED_DIMS];
+	    else if(t == HDF5_FINE_READ_FIXED_DIMS)
+		pt->total_time[HDF5_FILE_READ_OPEN] += pt->mpi_timer[t] - pt->mpi_timer[HDF5_GROSS_READ_FIXED_DIMS];
+
+	} else {
+	    pt->total_time[t] += MPI_Wtime() - pt->mpi_timer[t];
+	    pt->mpi_timer[t] = MPI_Wtime();
+
+	    /* When we stop the timer for HDF5_GROSS_WRITE_FIXED_DIMS or HDF5_GROSS_READ_FIXED_DIMS
+	     * we compute the time it took to close the file after the last read/write finished */
+	    if(t == HDF5_GROSS_WRITE_FIXED_DIMS)
+		pt->total_time[HDF5_FILE_WRITE_CLOSE] += pt->mpi_timer[t] - pt->mpi_timer[HDF5_FINE_WRITE_FIXED_DIMS];
+	    else if(t == HDF5_GROSS_READ_FIXED_DIMS)
+		pt->total_time[HDF5_FILE_READ_CLOSE] += pt->mpi_timer[t] - pt->mpi_timer[HDF5_FINE_READ_FIXED_DIMS];
+	}
+	break;
+#endif /* H5_HAVE_PARALLEL */
+    case SYS_CLOCK:
+            if (start_stop == TSTART) {
+                HDgettimeofday(&pt->sys_timer[t], NULL);
+
+		/* When we start the timer for HDF5_FINE_WRITE_FIXED_DIMS or HDF5_FINE_READ_FIXED_DIMS
+		 * we compute the time it took to only open the file */
+		if(t == HDF5_FINE_WRITE_FIXED_DIMS)
+		    pt->total_time[HDF5_FILE_WRITE_OPEN] += sub_time(&(pt->sys_timer[t]), &(pt->sys_timer[HDF5_GROSS_WRITE_FIXED_DIMS]));
+		else if(t == HDF5_FINE_READ_FIXED_DIMS)
+		    pt->total_time[HDF5_FILE_READ_OPEN] += sub_time(&(pt->sys_timer[t]), &(pt->sys_timer[HDF5_GROSS_READ_FIXED_DIMS]));
+
+
+            } else {
+                struct timeval sys_t;
+
+                HDgettimeofday(&sys_t, NULL);
+                pt->total_time[t] += sub_time(&sys_t, &(pt->sys_timer[t]));
+
+		/* When we stop the timer for HDF5_GROSS_WRITE_FIXED_DIMS or HDF5_GROSS_READ_FIXED_DIMS
+		 * we compute the time it took to close the file after the last read/write finished */
+		if(t == HDF5_GROSS_WRITE_FIXED_DIMS)
+		    pt->total_time[HDF5_FILE_WRITE_CLOSE] += sub_time(&(pt->sys_timer[t]), &(pt->sys_timer[HDF5_FINE_WRITE_FIXED_DIMS]));
+		else if(t == HDF5_GROSS_READ_FIXED_DIMS)
+		    pt->total_time[HDF5_FILE_READ_CLOSE] += sub_time(&(pt->sys_timer[t]), &(pt->sys_timer[HDF5_FINE_READ_FIXED_DIMS]));
+
+            }
+	break;
+    default:
+	HDfprintf(stderr, "Unknown time clock type (%d)\n", pt->type);
+	return (NULL);
+	break;
+    }
+
+#if 0
+    /* this does not belong here. Need fix in h5perf code when set_time() is called. -AKC- */
+    debug_start_stop_time(pt, t, start_stop);
+#endif
+
+    return pt;
+}
+
+/*
+ * Function:    get_time
+ * Purpose:     Get the time from a ``io_time_t'' object.
+ * Return:      The number of seconds as a DOUBLE.
+ * Programmer:  Bill Wendling, 01. October 2001
+ * Modifications:
+ */
+double
+get_time(io_time_t *pt, timer_type t)
+{
+    return pt->total_time[t];
+}
+
+#if 0
+/* standalone is not working yet. Need fix later. -AKC- */
+#ifdef STANDALONE
+#include "pio_standalone.c"
+#endif
+#endif
diff --git a/perform/pio_timer.h b/tools/lib/io_timer.h
similarity index 79%
rename from perform/pio_timer.h
rename to tools/lib/io_timer.h
index a5ee6d7..4ce0733 100644
--- a/perform/pio_timer.h
+++ b/tools/lib/io_timer.h
@@ -13,8 +13,8 @@
  * access to either file, you may request a copy from help at hdfgroup.org.     *
  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
 
-#ifndef PIO_TIMER__
-#define PIO_TIMER__
+#ifndef IO_TIMER__
+#define IO_TIMER__
 
 #include "hdf5.h"
 
@@ -27,6 +27,9 @@
 #   include <time.h>
 #endif
 
+#ifdef H5_HAVE_WINSOCK2_H
+#  include <winsock2.h>
+#endif /* H5_HAVE_WINSOCK2_H */
 /* The different types of timers we can have */
 typedef enum timer_type_ {
     HDF5_FILE_OPENCLOSE,
@@ -47,8 +50,8 @@ typedef enum timer_type_ {
 } timer_type;
 
 typedef enum clock_type_ {
-    MPI_TIMER = 0,  /* Use MPI timer to measure time        */
-    SYS_TIMER = 1   /* Use system clock to measure time     */
+    SYS_CLOCK = 0,   /* Use system clock to measure time     */
+    MPI_CLOCK = 1    /* Use MPI clock to measure time        */
 } clock_type;
 
 /* Miscellaneous identifiers */
@@ -58,25 +61,23 @@ enum {
 };
 
 /* The performance time structure */
-typedef struct pio_time_ {
+typedef struct io_time_t {
     clock_type type;
     double total_time[NUM_TIMERS];
     double mpi_timer[NUM_TIMERS];
     struct timeval sys_timer[NUM_TIMERS];
-} pio_time;
+} io_time_t;
 
 /* External function declarations */
 #ifdef __cplusplus
 extern "C" {
 #endif  /* __cplusplus */
-extern pio_time    *pio_time_new(clock_type t);
-extern void         pio_time_destroy(pio_time *pt);
-extern void         set_timer_type(pio_time *pt, clock_type type);
-extern clock_type   get_timer_type(pio_time *pt);
-extern pio_time    *set_time(pio_time *pt, timer_type t, int start_stop);
-extern double       get_time(pio_time *pt, timer_type t);
+H5TOOLS_DLL io_time_t   *io_time_new(clock_type t);
+H5TOOLS_DLL void         io_time_destroy(io_time_t *pt);
+H5TOOLS_DLL io_time_t   *set_time(io_time_t *pt, timer_type t, int start_stop);
+H5TOOLS_DLL double       get_time(io_time_t *pt, timer_type t);
 #ifdef __cplusplus
 }
 #endif  /* __cplusplus */
 
-#endif  /* PIO_TIMER__ */
+#endif  /* IO_TIMER__ */
diff --git a/tools/misc/CMakeLists.txt b/tools/misc/CMakeLists.txt
index 8af05b4..e0f94d0 100644
--- a/tools/misc/CMakeLists.txt
+++ b/tools/misc/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required (VERSION 2.8.11)
+cmake_minimum_required (VERSION 3.1.0)
 PROJECT (HDF5_TOOLS_MISC)
 
 #-----------------------------------------------------------------------------
@@ -12,19 +12,19 @@ INCLUDE_DIRECTORIES (${HDF5_TOOLS_SRC_DIR}/lib)
 #-- Misc Executables
 add_executable (h5debug ${HDF5_TOOLS_MISC_SOURCE_DIR}/h5debug.c)
 TARGET_NAMING (h5debug ${LIB_TYPE})
-TARGET_C_PROPERTIES (h5debug " " " ")
+TARGET_C_PROPERTIES (h5debug ${LIB_TYPE} " " " ")
 target_link_libraries (h5debug ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET})
 set_target_properties (h5debug PROPERTIES FOLDER tools)
 
 add_executable (h5repart ${HDF5_TOOLS_MISC_SOURCE_DIR}/h5repart.c)
 TARGET_NAMING (h5repart ${LIB_TYPE})
-TARGET_C_PROPERTIES (h5repart " " " ")
+TARGET_C_PROPERTIES (h5repart ${LIB_TYPE} " " " ")
 target_link_libraries (h5repart ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET})
 set_target_properties (h5repart PROPERTIES FOLDER tools)
 
 add_executable (h5mkgrp ${HDF5_TOOLS_MISC_SOURCE_DIR}/h5mkgrp.c)
 TARGET_NAMING (h5mkgrp ${LIB_TYPE})
-TARGET_C_PROPERTIES (h5mkgrp " " " ")
+TARGET_C_PROPERTIES (h5mkgrp ${LIB_TYPE} " " " ")
 target_link_libraries (h5mkgrp  ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
 set_target_properties (h5mkgrp PROPERTIES FOLDER tools)
 
@@ -47,8 +47,8 @@ if (BUILD_TESTING)
   # --------------------------------------------------------------------
   if (HDF5_BUILD_GENERATORS AND NOT BUILD_SHARED_LIBS)
     add_executable (h5repart_gentest ${HDF5_TOOLS_MISC_SOURCE_DIR}/h5repart_gentest.c)
-    TARGET_NAMING (h5repart_gentest ${LIB_TYPE})
-    TARGET_C_PROPERTIES (h5repart_gentest " " " ")
+    TARGET_NAMING (h5repart_gentest STATIC)
+    TARGET_C_PROPERTIES (h5repart_gentest STATIC " " " ")
     target_link_libraries (h5repart_gentest ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET})
     set_target_properties (h5repart_gentest PROPERTIES FOLDER generator/tools)
     #add_test (NAME h5repart_gentest COMMAND $<TARGET_FILE:h5repart_gentest>)
@@ -56,7 +56,7 @@ if (BUILD_TESTING)
 
   add_executable (h5repart_test ${HDF5_TOOLS_MISC_SOURCE_DIR}/repart_test.c)
   TARGET_NAMING (h5repart_test ${LIB_TYPE})
-  TARGET_C_PROPERTIES (h5repart_test " " " ")
+  TARGET_C_PROPERTIES (h5repart_test ${LIB_TYPE} " " " ")
   target_link_libraries (h5repart_test ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET})
   set_target_properties (h5repart_test PROPERTIES FOLDER tools)
 
diff --git a/tools/misc/Makefile.in b/tools/misc/Makefile.in
index 1160938..1b8e0eb 100644
--- a/tools/misc/Makefile.in
+++ b/tools/misc/Makefile.in
@@ -107,7 +107,8 @@ bin_PROGRAMS = h5debug$(EXEEXT) h5repart$(EXEEXT) h5mkgrp$(EXEEXT)
 TESTS = $(am__EXEEXT_1) $(TEST_SCRIPT)
 subdir = tools/misc
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \
+	$(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs
@@ -440,7 +441,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@
 AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@
 AM_MAKEFLAGS = @AM_MAKEFLAGS@
 AR = @AR@
-AS = @AS@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -472,7 +472,6 @@ DIRECT_VFD = @DIRECT_VFD@
 DLLTOOL = @DLLTOOL@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
-DYNAMIC_DIRS = @DYNAMIC_DIRS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -491,17 +490,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@
 FCLIBS = @FCLIBS@
 FC_VERSION = @FC_VERSION@
 FGREP = @FGREP@
-FILTERS = @FILTERS@
 FSEARCH_DIRS = @FSEARCH_DIRS@
 GREP = @GREP@
 H5_CFLAGS = @H5_CFLAGS@
 H5_CPPFLAGS = @H5_CPPFLAGS@
 H5_CXXFLAGS = @H5_CXXFLAGS@
-H5_CXX_SHARED = @H5_CXX_SHARED@
 H5_FCFLAGS = @H5_FCFLAGS@
 H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@
 H5_LDFLAGS = @H5_LDFLAGS@
-H5_LONE_COLON = @H5_LONE_COLON@
 H5_VERSION = @H5_VERSION@
 HADDR_T = @HADDR_T@
 HAVE_DMALLOC = @HAVE_DMALLOC@
@@ -524,7 +520,6 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INSTRUMENT = @INSTRUMENT@
 INSTRUMENT_LIBRARY = @INSTRUMENT_LIBRARY@
-LARGEFILE = @LARGEFILE@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
@@ -565,7 +560,6 @@ R_INTEGER = @R_INTEGER@
 R_LARGE = @R_LARGE@
 SEARCH = @SEARCH@
 SED = @SED@
-SETX = @SETX@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIZE_T = @SIZE_T@
@@ -580,10 +574,6 @@ TR = @TR@
 TRACE_API = @TRACE_API@
 UNAME_INFO = @UNAME_INFO@
 USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@
-USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@
-USE_FILTER_NBIT = @USE_FILTER_NBIT@
-USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@
-USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@
 USE_FILTER_SZIP = @USE_FILTER_SZIP@
 USINGMEMCHECKER = @USINGMEMCHECKER@
 VERSION = @VERSION@
@@ -697,12 +687,12 @@ TRACE = perl $(top_srcdir)/bin/trace
 
 # .chkexe files are used to mark tests that have run successfully.
 # .chklog files are output from those tests.
-# *.clog are from the MPE option.
+# *.clog and *.clog2 are from the MPE option.
 
 # Temporary files.  *.h5 are generated by h5repart_gentest.  They should
 # copied to the testfiles/ directory if update is required. fst_family*.h5
 # and scd_family*.h5 were created by setting the HDF5_NOCLEANUP variable.
-CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.h5 \
+CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 *.h5 \
 	../testfiles/fst_family*.h5 ../testfiles/scd_family*.h5
 
 #test script and program
diff --git a/tools/misc/h5cc.in b/tools/misc/h5cc.in
index da1a26d..cabd83f 100644
--- a/tools/misc/h5cc.in
+++ b/tools/misc/h5cc.in
@@ -347,7 +347,7 @@ if test "x$do_link" = "xyes"; then
     hpux*)                flag="-Wl,+b -Wl," ;;
     freebsd*|solaris*)    flag="-R" ;;
     rs6000*|aix*)         flag="-L" ;;
-    irix*|sgi)            flag="-rpath " ;;
+    sgi)                  flag="-rpath " ;;
     *)                    flag="" ;;
   esac
 
diff --git a/perform/CMakeLists.txt b/tools/perform/CMakeLists.txt
similarity index 73%
rename from perform/CMakeLists.txt
rename to tools/perform/CMakeLists.txt
index 6887c60..17b40fa 100644
--- a/perform/CMakeLists.txt
+++ b/tools/perform/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required (VERSION 2.8.11)
+cmake_minimum_required (VERSION 3.1.0)
 PROJECT (HDF5_PERFORM )
 
 #-----------------------------------------------------------------------------
@@ -17,31 +17,29 @@ INCLUDE_DIRECTORIES (${HDF5_TOOLS_SRC_DIR}/lib )
 # --------------------------------------------------------------------
 #-- Adding test for h5perf_serial
 set (h5perf_serial_SRCS
-    ${HDF5_PERFORM_SOURCE_DIR}/sio_timer.c
     ${HDF5_PERFORM_SOURCE_DIR}/sio_perf.c
     ${HDF5_PERFORM_SOURCE_DIR}/sio_engine.c
 )
 add_executable (h5perf_serial ${h5perf_serial_SRCS})
 TARGET_NAMING (h5perf_serial ${LIB_TYPE})
-TARGET_C_PROPERTIES (h5perf_serial " " " ")
+TARGET_C_PROPERTIES (h5perf_serial ${LIB_TYPE} " " " ")
 target_link_libraries (h5perf_serial ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET})
 set_target_properties (h5perf_serial PROPERTIES FOLDER perform)
 
 if (HDF5_BUILD_PERFORM_STANDALONE)
   #-- Adding test for h5perf_serial_alone
   set (h5perf_serial_alone_SRCS
-      ${HDF5_PERFORM_SOURCE_DIR}/sio_timer.c
       ${HDF5_PERFORM_SOURCE_DIR}/sio_perf.c
       ${HDF5_PERFORM_SOURCE_DIR}/sio_engine.c
   )
   add_executable (h5perf_serial_alone ${h5perf_serial_alone_SRCS})
-  set_property (TARGET h5perf_serial_alone 
-      APPEND PROPERTY COMPILE_DEFINITIONS STANDALONE
-  )
   TARGET_NAMING (h5perf_serial_alone ${LIB_TYPE})
-  TARGET_C_PROPERTIES (h5perf_serial_alone " " " ")
+  TARGET_C_PROPERTIES (h5perf_serial_alone ${LIB_TYPE} " " " ")
   target_link_libraries (h5perf_serial_alone ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET})
   set_target_properties (h5perf_serial_alone PROPERTIES FOLDER perform)
+  set_property (TARGET h5perf_serial_alone 
+      APPEND PROPERTY COMPILE_DEFINITIONS STANDALONE
+  )
 endif (HDF5_BUILD_PERFORM_STANDALONE)
 
 #-- Adding test for chunk
@@ -50,7 +48,7 @@ set (chunk_SRCS
 )
 ADD_EXECUTABLE(chunk ${chunk_SRCS})
 TARGET_NAMING (chunk ${LIB_TYPE})
-TARGET_C_PROPERTIES (chunk " " " ")
+TARGET_C_PROPERTIES (chunk ${LIB_TYPE} " " " ")
 TARGET_LINK_LIBRARIES(chunk ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET})
 set_target_properties (chunk PROPERTIES FOLDER perform)
 
@@ -60,7 +58,7 @@ set (iopipe_SRCS
 )
 add_executable (iopipe ${iopipe_SRCS})
 TARGET_NAMING (iopipe ${LIB_TYPE})
-TARGET_C_PROPERTIES (iopipe " " " ")
+TARGET_C_PROPERTIES (iopipe ${LIB_TYPE} " " " ")
 target_link_libraries (iopipe ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET})
 set_target_properties (iopipe PROPERTIES FOLDER perform)
 
@@ -70,19 +68,21 @@ set (overhead_SRCS
 )
 add_executable (overhead ${overhead_SRCS})
 TARGET_NAMING (overhead ${LIB_TYPE})
-TARGET_C_PROPERTIES (overhead " " " ")
+TARGET_C_PROPERTIES (overhead ${LIB_TYPE} " " " ")
 target_link_libraries (overhead ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET})
 set_target_properties (overhead PROPERTIES FOLDER perform)
 
+if (BUILD_TESTING)
 #-- Adding test for perf_meta
-set (perf_meta_SRCS
-    ${HDF5_PERFORM_SOURCE_DIR}/perf_meta.c
-)
-add_executable (perf_meta ${perf_meta_SRCS})
-TARGET_NAMING (perf_meta ${LIB_TYPE})
-TARGET_C_PROPERTIES (perf_meta " " " ")
-target_link_libraries (perf_meta ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET} ${HDF5_TEST_LIB_TARGET})
-set_target_properties (perf_meta PROPERTIES FOLDER perform)
+  set (perf_meta_SRCS
+      ${HDF5_PERFORM_SOURCE_DIR}/perf_meta.c
+  )
+  add_executable (perf_meta ${perf_meta_SRCS})
+  TARGET_NAMING (perf_meta ${LIB_TYPE})
+  TARGET_C_PROPERTIES (perf_meta ${LIB_TYPE} " " " ")
+  target_link_libraries (perf_meta ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET} ${HDF5_TEST_LIB_TARGET})
+  set_target_properties (perf_meta PROPERTIES FOLDER perform)
+endif (BUILD_TESTING)
 
 #-- Adding test for zip_perf
 set (zip_perf_SRCS
@@ -90,51 +90,37 @@ set (zip_perf_SRCS
 )
 add_executable (zip_perf ${zip_perf_SRCS})
 TARGET_NAMING (zip_perf ${LIB_TYPE})
-TARGET_C_PROPERTIES (zip_perf " " " ")
+TARGET_C_PROPERTIES (zip_perf ${LIB_TYPE} " " " ")
 target_link_libraries (zip_perf ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
 set_target_properties (zip_perf PROPERTIES FOLDER perform)
 
-if (H5_HAVE_PARALLEL)
+if (H5_HAVE_PARALLEL AND BUILD_TESTING)
   #-- Adding test for h5perf
   set (h5perf_SRCS
-      ${HDF5_PERFORM_SOURCE_DIR}/pio_timer.c
       ${HDF5_PERFORM_SOURCE_DIR}/pio_perf.c
       ${HDF5_PERFORM_SOURCE_DIR}/pio_engine.c
   )
   add_executable (h5perf ${h5perf_SRCS})
   TARGET_NAMING (h5perf ${LIB_TYPE})
-  TARGET_C_PROPERTIES (h5perf " " " ")
+  TARGET_C_PROPERTIES (h5perf ${LIB_TYPE} " " " ")
   target_link_libraries (h5perf ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET} ${HDF5_TEST_LIB_TARGET})
   set_target_properties (h5perf PROPERTIES FOLDER perform)
 
   if (HDF5_BUILD_PERFORM_STANDALONE)
     #-- Adding test for h5perf
     set (h5perf_alone_SRCS
-        ${HDF5_PERFORM_SOURCE_DIR}/pio_timer.c
         ${HDF5_PERFORM_SOURCE_DIR}/pio_perf.c
         ${HDF5_PERFORM_SOURCE_DIR}/pio_engine.c
     )
     add_executable (h5perf_alone ${h5perf_alone_SRCS})
-    set_property (TARGET h5perf_alone 
-        APPEND PROPERTY COMPILE_DEFINITIONS STANDALONE
-    )
     TARGET_NAMING (h5perf_alone ${LIB_TYPE})
-    TARGET_C_PROPERTIES (h5perf_alone " " " ")
+    TARGET_C_PROPERTIES (h5perf_alone ${LIB_TYPE} " " " ")
     target_link_libraries (h5perf_alone ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET} ${HDF5_TEST_LIB_TARGET})
     set_target_properties (h5perf_alone PROPERTIES FOLDER perform)
-  endif (HDF5_BUILD_PERFORM_STANDALONE)
-
-  if (HDF5_BUILD_PARALLEL_ALL)
-    #-- Adding test for benchpar
-    set (benchpar_SRCS
-        ${HDF5_PERFORM_SOURCE_DIR}/benchpar.c
+    set_property (TARGET h5perf_alone 
+        APPEND PROPERTY COMPILE_DEFINITIONS STANDALONE
     )
-    add_executable (benchpar ${benchpar_SRCS})
-    TARGET_NAMING (benchpar ${LIB_TYPE})
-    TARGET_C_PROPERTIES (benchpar " " " ")
-    target_link_libraries (benchpar ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET} ${HDF5_TEST_LIB_TARGET})
-    set_target_properties (benchpar PROPERTIES FOLDER perform)
-  endif (HDF5_BUILD_PARALLEL_ALL)
-endif (H5_HAVE_PARALLEL)
+  endif (HDF5_BUILD_PERFORM_STANDALONE)
+endif (H5_HAVE_PARALLEL AND BUILD_TESTING)
 
 include (CMakeTests.cmake)
diff --git a/perform/CMakeTests.cmake b/tools/perform/CMakeTests.cmake
similarity index 90%
rename from perform/CMakeTests.cmake
rename to tools/perform/CMakeTests.cmake
index f8a5846..6927124 100644
--- a/perform/CMakeTests.cmake
+++ b/tools/perform/CMakeTests.cmake
@@ -32,6 +32,7 @@ add_test (
 )
 
 add_test (NAME PERFORM_h5perf_serial COMMAND $<TARGET_FILE:h5perf_serial>)
+set_tests_properties (PERFORM_h5perf_serial PROPERTIES TIMEOUT 1800)
 
 if (HDF5_BUILD_PERFORM_STANDALONE)
   add_test (NAME PERFORM_h5perf_serial_alone COMMAND $<TARGET_FILE:h5perf_serial_alone>)
@@ -54,8 +55,4 @@ if (H5_HAVE_PARALLEL)
   if (HDF5_BUILD_PERFORM_STANDALONE)
     add_test (NAME PERFORM_h5perf_alone COMMAND ${MPIEXEC} ${MPIEXEC_PREFLAGS} ${MPIEXEC_NUMPROC_FLAG} ${MPIEXEC_MAX_NUMPROCS} ${MPIEXEC_POSTFLAGS} $<TARGET_FILE:h5perf_alone>)
   endif (HDF5_BUILD_PERFORM_STANDALONE)
-
-  if (HDF5_BUILD_PARALLEL_ALL)
-    add_test (NAME PERFORM_benchpar COMMAND ${MPIEXEC} ${MPIEXEC_PREFLAGS} ${MPIEXEC_NUMPROC_FLAG} ${MPIEXEC_MAX_NUMPROCS} ${MPIEXEC_POSTFLAGS} $<TARGET_FILE:benchpar>)
-  endif (HDF5_BUILD_PARALLEL_ALL)
 endif (H5_HAVE_PARALLEL)
diff --git a/perform/COPYING b/tools/perform/COPYING
similarity index 100%
rename from perform/COPYING
rename to tools/perform/COPYING
diff --git a/perform/Makefile.am b/tools/perform/Makefile.am
similarity index 96%
rename from perform/Makefile.am
rename to tools/perform/Makefile.am
index 59c598a..1af0e7f 100644
--- a/perform/Makefile.am
+++ b/tools/perform/Makefile.am
@@ -59,8 +59,8 @@ TEST_PROG = iopipe chunk overhead zip_perf perf_meta h5perf_serial $(BUILD_ALL_P
 # "make clean" and some systems, e.g., AIX, do not like it.
 check_PROGRAMS= iopipe chunk overhead zip_perf perf_meta $(BUILD_ALL_PROGS) perf
 
-h5perf_SOURCES=pio_perf.c pio_engine.c pio_timer.c
-h5perf_serial_SOURCES=sio_perf.c sio_engine.c sio_timer.c
+h5perf_SOURCES=pio_perf.c pio_engine.c
+h5perf_serial_SOURCES=sio_perf.c sio_engine.c
 
 # These are the files that `make clean' (and derivatives) will remove from
 # this directory.
diff --git a/perform/Makefile.in b/tools/perform/Makefile.in
similarity index 98%
rename from perform/Makefile.in
rename to tools/perform/Makefile.in
index 8db63de..325bc4d 100644
--- a/perform/Makefile.in
+++ b/tools/perform/Makefile.in
@@ -109,9 +109,10 @@ check_PROGRAMS = iopipe$(EXEEXT) chunk$(EXEEXT) overhead$(EXEEXT) \
 	zip_perf$(EXEEXT) perf_meta$(EXEEXT) $(am__EXEEXT_2) \
 	perf$(EXEEXT)
 TESTS = $(am__EXEEXT_3)
-subdir = perform
+subdir = tools/perform
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal_cxx.m4 \
+	$(top_srcdir)/m4/aclocal_fc.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs
@@ -130,15 +131,13 @@ AM_V_lt = $(am__v_lt_ at AM_V@)
 am__v_lt_ = $(am__v_lt_ at AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 am__v_lt_1 = 
-am_h5perf_OBJECTS = pio_perf.$(OBJEXT) pio_engine.$(OBJEXT) \
-	pio_timer.$(OBJEXT)
+am_h5perf_OBJECTS = pio_perf.$(OBJEXT) pio_engine.$(OBJEXT)
 h5perf_OBJECTS = $(am_h5perf_OBJECTS)
 h5perf_DEPENDENCIES = $(LIBH5TOOLS) $(LIBH5TEST) $(LIBHDF5)
 h5perf_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(h5perf_LDFLAGS) $(LDFLAGS) -o $@
-am_h5perf_serial_OBJECTS = sio_perf.$(OBJEXT) sio_engine.$(OBJEXT) \
-	sio_timer.$(OBJEXT)
+am_h5perf_serial_OBJECTS = sio_perf.$(OBJEXT) sio_engine.$(OBJEXT)
 h5perf_serial_OBJECTS = $(am_h5perf_serial_OBJECTS)
 h5perf_serial_DEPENDENCIES = $(LIBH5TOOLS) $(LIBH5TEST) $(LIBHDF5)
 h5perf_serial_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
@@ -446,7 +445,6 @@ AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@
 AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@
 AM_MAKEFLAGS = @AM_MAKEFLAGS@
 AR = @AR@
-AS = @AS@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -478,7 +476,6 @@ DIRECT_VFD = @DIRECT_VFD@
 DLLTOOL = @DLLTOOL@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
-DYNAMIC_DIRS = @DYNAMIC_DIRS@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
@@ -497,17 +494,14 @@ FCFLAGS_f90 = @FCFLAGS_f90@
 FCLIBS = @FCLIBS@
 FC_VERSION = @FC_VERSION@
 FGREP = @FGREP@
-FILTERS = @FILTERS@
 FSEARCH_DIRS = @FSEARCH_DIRS@
 GREP = @GREP@
 H5_CFLAGS = @H5_CFLAGS@
 H5_CPPFLAGS = @H5_CPPFLAGS@
 H5_CXXFLAGS = @H5_CXXFLAGS@
-H5_CXX_SHARED = @H5_CXX_SHARED@
 H5_FCFLAGS = @H5_FCFLAGS@
 H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@
 H5_LDFLAGS = @H5_LDFLAGS@
-H5_LONE_COLON = @H5_LONE_COLON@
 H5_VERSION = @H5_VERSION@
 HADDR_T = @HADDR_T@
 HAVE_DMALLOC = @HAVE_DMALLOC@
@@ -530,7 +524,6 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 INSTRUMENT = @INSTRUMENT@
 INSTRUMENT_LIBRARY = @INSTRUMENT_LIBRARY@
-LARGEFILE = @LARGEFILE@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBOBJS = @LIBOBJS@
@@ -571,7 +564,6 @@ R_INTEGER = @R_INTEGER@
 R_LARGE = @R_LARGE@
 SEARCH = @SEARCH@
 SED = @SED@
-SETX = @SETX@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 SIZE_T = @SIZE_T@
@@ -586,10 +578,6 @@ TR = @TR@
 TRACE_API = @TRACE_API@
 UNAME_INFO = @UNAME_INFO@
 USE_FILTER_DEFLATE = @USE_FILTER_DEFLATE@
-USE_FILTER_FLETCHER32 = @USE_FILTER_FLETCHER32@
-USE_FILTER_NBIT = @USE_FILTER_NBIT@
-USE_FILTER_SCALEOFFSET = @USE_FILTER_SCALEOFFSET@
-USE_FILTER_SHUFFLE = @USE_FILTER_SHUFFLE@
 USE_FILTER_SZIP = @USE_FILTER_SZIP@
 USINGMEMCHECKER = @USINGMEMCHECKER@
 VERSION = @VERSION@
@@ -703,8 +691,8 @@ TRACE = perl $(top_srcdir)/bin/trace
 
 # .chkexe files are used to mark tests that have run successfully.
 # .chklog files are output from those tests.
-# *.clog are from the MPE option.
-CHECK_CLEANFILES = *.chkexe *.chklog *.clog
+# *.clog and *.clog2 are from the MPE option.
+CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2
 
 # Add h5perf and h5perf_serial specific linker flags here
 h5perf_LDFLAGS = $(LT_STATIC_EXEC) $(AM_LDFLAGS)
@@ -723,8 +711,8 @@ h5perf_serial_LDFLAGS = $(LT_STATIC_EXEC) $(AM_LDFLAGS)
 @BUILD_PARALLEL_CONDITIONAL_TRUE at TEST_PROG_PARA = h5perf perf
 # Serial test programs.
 TEST_PROG = iopipe chunk overhead zip_perf perf_meta h5perf_serial $(BUILD_ALL_PROGS)
-h5perf_SOURCES = pio_perf.c pio_engine.c pio_timer.c
-h5perf_serial_SOURCES = sio_perf.c sio_engine.c sio_timer.c
+h5perf_SOURCES = pio_perf.c pio_engine.c
+h5perf_serial_SOURCES = sio_perf.c sio_engine.c
 
 # These are the files that `make clean' (and derivatives) will remove from
 # this directory.
@@ -772,9 +760,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign perform/Makefile'; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tools/perform/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --foreign perform/Makefile
+	  $(AUTOMAKE) --foreign tools/perform/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -898,10 +886,8 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/perf_meta.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/pio_engine.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/pio_perf.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/pio_timer.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/sio_engine.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/sio_perf.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/sio_timer.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/zip_perf.Po at am__quote@
 
 .c.o:
diff --git a/perform/build_h5perf_alone.sh b/tools/perform/build_h5perf_alone.sh
similarity index 100%
rename from perform/build_h5perf_alone.sh
rename to tools/perform/build_h5perf_alone.sh
diff --git a/perform/build_h5perf_serial_alone.sh b/tools/perform/build_h5perf_serial_alone.sh
similarity index 100%
rename from perform/build_h5perf_serial_alone.sh
rename to tools/perform/build_h5perf_serial_alone.sh
diff --git a/perform/chunk.c b/tools/perform/chunk.c
similarity index 98%
rename from perform/chunk.c
rename to tools/perform/chunk.c
index a3c11c1..6825a4c 100644
--- a/perform/chunk.c
+++ b/tools/perform/chunk.c
@@ -57,20 +57,20 @@
 #define RM_CACHE_STRT	25
 #define RM_CACHE_END	25
 #define RM_CACHE_DELT	5
-#define RM_START	0.50
-#define RM_END	        5.00
-#define RM_DELTA	0.50
-#define RM_W0		0.0
+#define RM_START	0.50F
+#define RM_END	        5.00F
+#define RM_DELTA	0.50F
+#define RM_W0		0.0F
 #define RM_NRDCC	521
 
 /* Diagonal test */
 #define DIAG_CACHE_STRT	25
 #define DIAG_CACHE_END	25
 #define DIAG_CACHE_DELT	5
-#define DIAG_START	0.50
-#define DIAG_END	5.00
-#define DIAG_DELTA	0.50
-/* #define DIAG_W0		0.65 */
+#define DIAG_START	0.50F
+#define DIAG_END	5.00F
+#define DIAG_DELTA	0.50F
+/* #define DIAG_W0		0.65F */
 /* #define DIAG_NRDCC		521 */
 
 static size_t	nio_g;
diff --git a/perform/gen_report.pl b/tools/perform/gen_report.pl
similarity index 100%
rename from perform/gen_report.pl
rename to tools/perform/gen_report.pl
diff --git a/perform/iopipe.c b/tools/perform/iopipe.c
similarity index 96%
rename from perform/iopipe.c
rename to tools/perform/iopipe.c
index 85063fa..a04ef82 100644
--- a/perform/iopipe.c
+++ b/tools/perform/iopipe.c
@@ -81,25 +81,25 @@ print_stats (const char *prefix,
     double  u_time, s_time;
 
     u_time = ((double)(r_stop->ru_utime.tv_sec)+
-        (double)(r_stop->ru_utime.tv_usec)/1000000.0) -
+        (double)(r_stop->ru_utime.tv_usec)/1000000.0F) -
        ((double)(r_start->ru_utime.tv_sec)+
-        (double)(r_start->ru_utime.tv_usec)/1000000.0);
+        (double)(r_start->ru_utime.tv_usec)/1000000.0F);
 
     s_time = ((double)(r_stop->ru_stime.tv_sec)+
-        (double)(r_stop->ru_stime.tv_usec)/1000000.0) -
+        (double)(r_stop->ru_stime.tv_usec)/1000000.0F) -
        ((double)(r_start->ru_stime.tv_sec)+
-        (double)(r_start->ru_stime.tv_usec)/1000000.0);
+        (double)(r_start->ru_stime.tv_usec)/1000000.0F);
 #endif
 #ifndef H5_HAVE_SYS_TIMEB
     e_time = ((double)(t_stop->tv_sec)+
-        (double)(t_stop->tv_usec)/1000000.0) -
+        (double)(t_stop->tv_usec)/1000000.0F) -
        ((double)(t_start->tv_sec)+
-        (double)(t_start->tv_usec)/1000000.0);
+        (double)(t_start->tv_usec)/1000000.0F);
 #else
     e_time = ((double)(t_stop->tv_sec)+
-        (double)(t_stop->tv_usec)/1000.0) -
+        (double)(t_stop->tv_usec)/1000.0F) -
        ((double)(t_start->tv_sec)+
-        (double)(t_start->tv_usec)/1000.0);
+        (double)(t_start->tv_usec)/1000.0F);
 #endif
     bw = (double)nbytes / e_time;
 
@@ -191,7 +191,7 @@ main (void)
      * 1998-11-06 ptl
      */
     printf ("I/O request size is %1.1fMB\n",
-      (double)(hssize_t)(size[0]*size[1])/1024.0*1024);
+      (double)(hssize_t)(size[0]*size[1])/1024.0F*1024);
 
     /* Open the files */
     file = H5Fcreate (HDF5_FILE_NAME, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
diff --git a/perform/overhead.c b/tools/perform/overhead.c
similarity index 99%
rename from perform/overhead.c
rename to tools/perform/overhead.c
index 9341e64..046668f 100644
--- a/perform/overhead.c
+++ b/tools/perform/overhead.c
@@ -209,7 +209,7 @@ test(fill_t fill_style, const double splits[],
     if((fapl = H5Pcreate(H5P_FILE_ACCESS)) < 0) goto error;
     if(!use_rdcc) {
         if(H5Pget_cache(fapl, &mdc_nelmts, NULL, NULL, NULL) < 0) goto error;
-        if(H5Pset_cache(fapl, mdc_nelmts, 0, 0, 0.0) < 0) goto error;
+        if(H5Pset_cache(fapl, mdc_nelmts, 0, 0, 0.0F) < 0) goto error;
     }
     if((file = H5Fcreate(FILE_NAME_1, H5F_ACC_TRUNC, H5P_DEFAULT, fapl)) < 0) goto error;
     if((dcpl = H5Pcreate(H5P_DATASET_CREATE)) < 0) goto error;
diff --git a/perform/perf.c b/tools/perform/perf.c
similarity index 97%
rename from perform/perf.c
rename to tools/perform/perf.c
index f006afb..1bd33b6 100644
--- a/perform/perf.c
+++ b/tools/perform/perf.c
@@ -46,7 +46,6 @@
 #   include <mpio.h>
 #endif
 
-
 /* Macro definitions */
 /* Verify:
  * if val is false (0), print mesg and if fatal is true (non-zero), die.
@@ -64,6 +63,8 @@
     }                                                                          \
 } while(0)
 #define RANK 1
+#define MAX_PATH 1024
+
 hsize_t dims[RANK];     /* dataset dim sizes */
 hsize_t block[RANK], stride[RANK], count[RANK];
 hssize_t start[RANK];
@@ -90,6 +91,11 @@ char    opt_file[256] = "perftest.out";
 char    opt_pvfstab[256] = "notset";
 int     opt_pvfstab_set = 0;
 
+const char *FILENAME[] = {
+   opt_file,
+   NULL
+};
+
 /* function prototypes */
 static int parse_args(int argc, char **argv);
 
@@ -114,6 +120,7 @@ int main(int argc, char **argv)
     MPI_File fh;
     MPI_Status status;
     int nchars;
+    char filename[MAX_PATH];
     herr_t ret;           /* Generic return value */
 
     /* startup MPI and determine the rank of this process */
@@ -126,7 +133,6 @@ int main(int argc, char **argv)
 
     if (mynod == 0) printf("# Using hdf5-io calls.\n");
 
-
     /* kindof a weird hack- if the location of the pvfstab file was
      * specified on the command line, then spit out this location into
      * the appropriate environment variable: */
@@ -198,8 +204,10 @@ int main(int argc, char **argv)
   	}
     }
 
+    h5_fixname_no_suffix(FILENAME[0], acc_tpl, filename, sizeof filename);
+
     /* create the parallel file */
-    fid = H5Fcreate(opt_file, H5F_ACC_TRUNC, H5P_DEFAULT, acc_tpl);
+    fid = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, acc_tpl);
     VRFY((fid >= 0), "H5Fcreate succeeded", H5FATAL);
 
     /* define a contiquous dataset of opt_iter*nprocs*opt_block chars */
@@ -261,7 +269,7 @@ int main(int argc, char **argv)
     MPI_Barrier(MPI_COMM_WORLD);
 
     /* reopen the file for reading */
-    fid=H5Fopen(opt_file,H5F_ACC_RDONLY,acc_tpl);
+    fid=H5Fopen(filename,H5F_ACC_RDONLY,acc_tpl);
     VRFY((fid >= 0), "", H5FATAL);
 
     /* open the dataset */
@@ -382,6 +390,7 @@ die_jar_jar_die:
 
     free(tmp);
     if (opt_correct) free(tmp2);
+
     MPI_Finalize();
 
     return(0);
@@ -405,6 +414,7 @@ parse_args(int argc, char **argv)
                 break;
             case 'f': /* filename */
                 strncpy(opt_file, optarg, 255);
+                FILENAME[0] = opt_file;
                 break;
             case 'p': /* pvfstab file */
                 strncpy(opt_pvfstab, optarg, 255);
diff --git a/perform/perf_meta.c b/tools/perform/perf_meta.c
similarity index 100%
rename from perform/perf_meta.c
rename to tools/perform/perf_meta.c
diff --git a/perform/pio_engine.c b/tools/perform/pio_engine.c
similarity index 99%
rename from perform/pio_engine.c
rename to tools/perform/pio_engine.c
index 3535fb4..96cfcc2 100644
--- a/perform/pio_engine.c
+++ b/tools/perform/pio_engine.c
@@ -38,7 +38,6 @@
 #endif  /* !MPI_FILE_NULL */
 
 #include "pio_perf.h"
-#include "pio_timer.h"
 
 /* Macro definitions */
 
@@ -174,15 +173,15 @@ do_pio(parameters param)
     switch (iot) {
         case MPIO:
             fd.mpifd = MPI_FILE_NULL;
-            res.timers = pio_time_new(MPI_TIMER);
+            res.timers = io_time_new(MPI_CLOCK);
             break;
         case POSIXIO:
             fd.posixfd = -1;
-            res.timers = pio_time_new(MPI_TIMER);
+            res.timers = io_time_new(MPI_CLOCK);
             break;
         case PHDF5:
             fd.h5fd = -1;
-            res.timers = pio_time_new(MPI_TIMER);
+            res.timers = io_time_new(MPI_CLOCK);
             break;
         default:
             /* unknown request */
diff --git a/perform/pio_perf.c b/tools/perform/pio_perf.c
similarity index 97%
rename from perform/pio_perf.c
rename to tools/perform/pio_perf.c
index cf41cbe..4db2249 100644
--- a/perform/pio_perf.c
+++ b/tools/perform/pio_perf.c
@@ -664,7 +664,7 @@ run_test(iotype iot, parameters parms, struct options *opts)
 
          }
 
-         pio_time_destroy(res.timers);
+         io_time_destroy(res.timers);
     }
 
     /*
@@ -1676,6 +1676,58 @@ usage(const char *prog)
     }
 }
 
+void debug_start_stop_time(io_time_t *pt, timer_type t, int start_stop)
+{
+#if 1
+        if (pio_debug_level >= 4) {
+            const char *msg;
+            int myrank;
+
+            MPI_Comm_rank(pio_comm_g, &myrank);
+
+            switch (t) {
+            case HDF5_FILE_OPENCLOSE:
+                msg = "File Open/Close";
+                break;
+            case HDF5_DATASET_CREATE:
+                msg = "Dataset Create";
+                break;
+            case HDF5_MPI_WRITE:
+                msg = "MPI Write";
+                break;
+            case HDF5_MPI_READ:
+                msg = "MPI Read";
+                break;
+            case HDF5_FINE_WRITE_FIXED_DIMS:
+                msg = "Fine Write";
+                break;
+            case HDF5_FINE_READ_FIXED_DIMS:
+                msg = "Fine Read";
+                break;
+            case HDF5_GROSS_WRITE_FIXED_DIMS:
+                msg = "Gross Write";
+                break;
+            case HDF5_GROSS_READ_FIXED_DIMS:
+                msg = "Gross Read";
+                break;
+            case HDF5_RAW_WRITE_FIXED_DIMS:
+                msg = "Raw Write";
+                break;
+            case HDF5_RAW_READ_FIXED_DIMS:
+                msg = "Raw Read";
+                break;
+            default:
+                msg = "Unknown Timer";
+                break;
+            }
+
+            fprintf(output, "    Proc %d: %s %s: %.2f\n", myrank, msg,
+                    (start_stop == TSTART ? "Start" : "Stop"),
+                    pt->total_time[t]);
+        }
+#endif
+} /* debug_start_stop_time */
+
 #else /* H5_HAVE_PARALLEL */
 
 /*
diff --git a/perform/pio_perf.h b/tools/perform/pio_perf.h
similarity index 97%
rename from perform/pio_perf.h
rename to tools/perform/pio_perf.h
index 3295e2b..0fff7a3 100644
--- a/perform/pio_perf.h
+++ b/tools/perform/pio_perf.h
@@ -24,7 +24,7 @@
 #else
 #include "pio_standalone.h"
 #endif
-#include "pio_timer.h"
+#include "io_timer.h"
 
 /* setup the dataset no fill option if this is v1.5 or more */
 #if H5_VERS_MAJOR > 1 || H5_VERS_MINOR > 4
@@ -59,7 +59,7 @@ typedef struct parameters_ {
 
 typedef struct results_ {
     herr_t      ret_code;
-    pio_time   *timers;
+    io_time_t   *timers;
 } results;
 
 #ifndef SUCCESS
@@ -71,7 +71,7 @@ typedef struct results_ {
 #endif  /* !FAIL */
 
 extern FILE     *output;            /* output file                          */
-extern pio_time *timer_g;           /* timer: global for stub functions     */
+extern io_time_t *timer_g;           /* timer: global for stub functions     */
 extern int      comm_world_rank_g;  /* my rank in MPI_COMM_RANK             */
 extern int      comm_world_nprocs_g;/* num. of processes of MPI_COMM_WORLD  */
 extern MPI_Comm pio_comm_g;         /* Communicator to run the PIO          */
diff --git a/perform/pio_standalone.c b/tools/perform/pio_standalone.c
similarity index 100%
rename from perform/pio_standalone.c
rename to tools/perform/pio_standalone.c
diff --git a/perform/pio_standalone.h b/tools/perform/pio_standalone.h
similarity index 100%
rename from perform/pio_standalone.h
rename to tools/perform/pio_standalone.h
diff --git a/perform/sio_engine.c b/tools/perform/sio_engine.c
similarity index 99%
rename from perform/sio_engine.c
rename to tools/perform/sio_engine.c
index 07e6b16c..3b28ea7 100644
--- a/perform/sio_engine.c
+++ b/tools/perform/sio_engine.c
@@ -29,7 +29,6 @@
 #include "hdf5.h"
 
 #include "sio_perf.h"
-#include "sio_timer.h"
 
 /* Macro definitions */
 
@@ -143,11 +142,11 @@ do_sio(parameters param)
     switch (iot) {
     case POSIXIO:
         fd.posixfd = -1;
-        res.timers = sio_time_new();
+        res.timers = io_time_new(SYS_CLOCK);
         break;
     case HDF5:
         fd.h5fd = -1;
-        res.timers = sio_time_new();
+        res.timers = io_time_new(SYS_CLOCK);
         break;
     default:
         /* unknown request */
diff --git a/perform/sio_perf.c b/tools/perform/sio_perf.c
similarity index 95%
rename from perform/sio_perf.c
rename to tools/perform/sio_perf.c
index 26cec6d..7d75a2d 100644
--- a/perform/sio_perf.c
+++ b/tools/perform/sio_perf.c
@@ -68,7 +68,7 @@
 #define SIO_HDF5            0x4
 
 /* report 0.0 in case t is zero too */
-#define MB_PER_SEC(bytes,t) (((t)==0.0) ? 0.0 : ((((double)bytes) / ONE_MB) / (t)))
+#define MB_PER_SEC(bytes,t) (((t)==0.0F) ? 0.0F : ((((double)bytes) / ONE_MB) / (t)))
 
 #ifndef TRUE
 #define TRUE    1
@@ -451,14 +451,14 @@ run_test(iotype iot, parameters parms, struct options *opts)
     minmax         *read_mm_table=NULL;
     minmax         *read_gross_mm_table=NULL;
     minmax         *read_raw_mm_table=NULL;
-    minmax          write_sys_mm = {0.0, 0.0, 0.0, 0};
-    minmax          write_mm = {0.0, 0.0, 0.0, 0};
-    minmax          write_gross_mm = {0.0, 0.0, 0.0, 0};
-    minmax          write_raw_mm = {0.0, 0.0, 0.0, 0};
-    minmax          read_sys_mm = {0.0, 0.0, 0.0, 0};
-    minmax          read_mm = {0.0, 0.0, 0.0, 0};
-    minmax          read_gross_mm = {0.0, 0.0, 0.0, 0};
-    minmax          read_raw_mm = {0.0, 0.0, 0.0, 0};
+    minmax          write_sys_mm = {0.0F, 0.0F, 0.0F, 0};
+    minmax          write_mm = {0.0F, 0.0F, 0.0F, 0};
+    minmax          write_gross_mm = {0.0F, 0.0F, 0.0F, 0};
+    minmax          write_raw_mm = {0.0F, 0.0F, 0.0F, 0};
+    minmax          read_sys_mm = {0.0F, 0.0F, 0.0F, 0};
+    minmax          read_mm = {0.0F, 0.0F, 0.0F, 0};
+    minmax          read_gross_mm = {0.0F, 0.0F, 0.0F, 0};
+    minmax          read_raw_mm = {0.0F, 0.0F, 0.0F, 0};
 
     raw_size = (off_t)parms.num_bytes;
     parms.io_type = iot;
@@ -547,7 +547,7 @@ run_test(iotype iot, parameters parms, struct options *opts)
 
             read_raw_mm_table[i] = read_gross_mm;
         }
-        sio_time_destroy(res.timers);
+        io_time_destroy(res.timers);
     }
 
     /*
@@ -717,7 +717,7 @@ accumulate_minmax_stuff(minmax *mm, int count)
     int i;
     minmax total_mm;
 
-    total_mm.sum = 0.0;
+    total_mm.sum = 0.0F;
     total_mm.max = -DBL_MAX;
     total_mm.min = DBL_MAX;
     total_mm.num = count;
@@ -1407,3 +1407,50 @@ usage(const char *prog)
         fflush(stdout);
 }
 
+void debug_start_stop_time(io_time_t *pt, timer_type t, int start_stop)
+{
+        if (sio_debug_level >= 4) {
+            const char *msg;
+
+            switch (t) {
+            case HDF5_FILE_OPENCLOSE:
+                msg = "File Open/Close";
+                break;
+            case HDF5_DATASET_CREATE:
+                msg = "Dataset Create";
+                break;
+            case HDF5_MPI_WRITE:
+                msg = "MPI Write";
+                break;
+            case HDF5_MPI_READ:
+                msg = "MPI Read";
+                break;
+            case HDF5_FINE_WRITE_FIXED_DIMS:
+                msg = "Fine Write";
+                break;
+            case HDF5_FINE_READ_FIXED_DIMS:
+                msg = "Fine Read";
+                break;
+            case HDF5_GROSS_WRITE_FIXED_DIMS:
+                msg = "Gross Write";
+                break;
+            case HDF5_GROSS_READ_FIXED_DIMS:
+                msg = "Gross Read";
+                break;
+            case HDF5_RAW_WRITE_FIXED_DIMS:
+                msg = "Raw Write";
+                break;
+            case HDF5_RAW_READ_FIXED_DIMS:
+                msg = "Raw Read";
+                break;
+            default:
+                msg = "Unknown Timer";
+                break;
+            }
+
+            fprintf(output, "    %s %s: %.2f\n", msg,
+                    (start_stop == TSTART ? "Start" : "Stop"),
+                    pt->total_time[t]);
+        }
+} /* debug_start_stop_time */
+
diff --git a/perform/sio_perf.h b/tools/perform/sio_perf.h
similarity index 96%
rename from perform/sio_perf.h
rename to tools/perform/sio_perf.h
index b40fed3..311d909 100644
--- a/perform/sio_perf.h
+++ b/tools/perform/sio_perf.h
@@ -15,7 +15,7 @@
 #ifndef SIO_PERF_H__
 #define SIO_PERF_H__
 
-#include "sio_timer.h"
+#include "io_timer.h"
 #ifndef STANDALONE
 #include "H5private.h"
 #include "h5test.h"
@@ -71,7 +71,7 @@ typedef struct parameters_ {
 
 typedef struct results_ {
     herr_t      ret_code;
-    sio_time   *timers;
+    io_time_t   *timers;
 } results;
 
 #ifndef SUCCESS
@@ -83,7 +83,7 @@ typedef struct results_ {
 #endif  /* !FAIL */
 
 extern FILE     *output;            /* output file                          */
-extern sio_time *timer_g;           /* timer: global for stub functions     */
+extern io_time_t *timer_g;           /* timer: global for stub functions     */
 extern int      sio_debug_level;    /* The debug level:
                                      *   0 - Off
                                      *   1 - Minimal
diff --git a/perform/sio_standalone.c b/tools/perform/sio_standalone.c
similarity index 100%
rename from perform/sio_standalone.c
rename to tools/perform/sio_standalone.c
diff --git a/perform/sio_standalone.h b/tools/perform/sio_standalone.h
similarity index 99%
rename from perform/sio_standalone.h
rename to tools/perform/sio_standalone.h
index b2f8220..4eb1ded 100644
--- a/perform/sio_standalone.h
+++ b/tools/perform/sio_standalone.h
@@ -87,7 +87,6 @@
 #define HDatof(S)               atof(S)
 #define HDatoi(S)               atoi(S)
 #define HDatol(S)               atol(S)
-#define HDBSDgettimeofday(S,P)  BSDgettimeofday(S,P)
 #define HDbsearch(K,B,N,Z,F)    bsearch(K,B,N,Z,F)
 #define HDcalloc(N,Z)           calloc(N,Z)
 #define HDceil(X)               ceil(X)
diff --git a/perform/zip_perf.c b/tools/perform/zip_perf.c
similarity index 99%
rename from perform/zip_perf.c
rename to tools/perform/zip_perf.c
index edd5b0f..f73ba40 100644
--- a/perform/zip_perf.c
+++ b/tools/perform/zip_perf.c
@@ -43,10 +43,10 @@
 #define ONE_MB              (ONE_KB * ONE_KB)
 #define ONE_GB              (ONE_MB * ONE_KB)
 
-#define MICROSECOND         1000000.0
+#define MICROSECOND         1000000.0F
 
 /* report 0.0 in case t is zero too */
-#define MB_PER_SEC(bytes,t) ((fabs(t)<0.0000000001) ? 0.0 : ((((double)bytes) / ONE_MB) / (t)))
+#define MB_PER_SEC(bytes,t) ((fabs(t)<0.0000000001F) ? 0.0F : ((((double)bytes) / ONE_MB) / (t)))
 
 #ifndef TRUE
 #define TRUE    1
@@ -182,7 +182,7 @@ write_file(Bytef *source, uLongf sourceLen)
 
     /* destination buffer needs to be at least 0.1% larger than sourceLen
      * plus 12 bytes */
-    destLen = (uLongf)((double)sourceLen + ((double)sourceLen * 0.1)) + 12;
+    destLen = (uLongf)((double)sourceLen + ((double)sourceLen * 0.1F)) + 12;
     dest = (Bytef *)HDmalloc(destLen);
 
     if (!dest)
@@ -464,7 +464,7 @@ do_write_test(unsigned long file_size, unsigned long min_buf_size,
             error("out of memory");
         }
 
-        compression_time = 0.0;
+        compression_time = 0.0F;
 
         if (random_test)
             fill_with_random_data(src, src_len);
diff --git a/tools/testfiles/tbitnopaque.ddl b/tools/testfiles/tbitnopaque.ddl
new file mode 100644
index 0000000..9000463
--- /dev/null
+++ b/tools/testfiles/tbitnopaque.ddl
@@ -0,0 +1,293 @@
+HDF5 "tbitnopaque.h5" {
+GROUP "/" {
+   GROUP "bittypetests" {
+      DATASET "bitfield_1" {
+         DATATYPE  H5T_STD_B8LE
+         DATASPACE  SIMPLE { ( 32 ) / ( 32 ) }
+         DATA {
+         (0): 0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8, 0xf7, 0xf6,
+         (10): 0xf5, 0xf4, 0xf3, 0xf2, 0xf1, 0xf0, 0xef, 0xee, 0xed, 0xec,
+         (20): 0xeb, 0xea, 0xe9, 0xe8, 0xe7, 0xe6, 0xe5, 0xe4, 0xe3, 0xe2,
+         (30): 0xe1, 0xe0
+         }
+      }
+      DATASET "bitfield_2" {
+         DATATYPE  H5T_STD_B16LE
+         DATASPACE  SIMPLE { ( 32 ) / ( 32 ) }
+         DATA {
+         (0): ff:ff, 00:00, ef:ff, 00:00, df:ff, 00:00, cf:ff, 00:00, bf:ff,
+         (9): 00:00, af:ff, 00:00, 9f:ff, 00:00, 8f:ff, 00:00, 7f:ff, 00:00,
+         (18): 6f:ff, 00:00, 5f:ff, 00:00, 4f:ff, 00:00, 3f:ff, 00:00, 2f:ff,
+         (27): 00:00, 1f:ff, 00:00, 0f:ff, 00:00
+         }
+      }
+      DATASET "bitfield_3" {
+         DATATYPE  H5T_STD_B32LE
+         DATASPACE  SIMPLE { ( 32 ) / ( 32 ) }
+         DATA {
+         (0): ff:ff:ff:ff, 00:00:00:00, df:ff:ff:ff, 00:00:00:00,
+         (4): bf:ff:ff:ff, 00:00:00:00, 9f:ff:ff:ff, 00:00:00:00,
+         (8): 7f:ff:ff:ff, 00:00:00:00, 5f:ff:ff:ff, 00:00:00:00,
+         (12): 3f:ff:ff:ff, 00:00:00:00, 1f:ff:ff:ff, 00:00:00:00,
+         (16): ff:fe:ff:ff, 00:00:00:00, df:fe:ff:ff, 00:00:00:00,
+         (20): bf:fe:ff:ff, 00:00:00:00, 9f:fe:ff:ff, 00:00:00:00,
+         (24): 7f:fe:ff:ff, 00:00:00:00, 5f:fe:ff:ff, 00:00:00:00,
+         (28): 3f:fe:ff:ff, 00:00:00:00, 1f:fe:ff:ff, 00:00:00:00
+         }
+      }
+      DATASET "bitfield_4" {
+         DATATYPE  H5T_STD_B64LE
+         DATASPACE  SIMPLE { ( 32 ) / ( 32 ) }
+         DATA {
+         (0): ff:ff:ff:ff:ff:ff:ff:ff, bf:ff:ff:ff:ff:ff:ff:ff,
+         (2): 7f:ff:ff:ff:ff:ff:ff:ff, 3f:ff:ff:ff:ff:ff:ff:ff,
+         (4): ff:fe:ff:ff:ff:ff:ff:ff, bf:fe:ff:ff:ff:ff:ff:ff,
+         (6): 7f:fe:ff:ff:ff:ff:ff:ff, 3f:fe:ff:ff:ff:ff:ff:ff,
+         (8): ff:fd:ff:ff:ff:ff:ff:ff, bf:fd:ff:ff:ff:ff:ff:ff,
+         (10): 7f:fd:ff:ff:ff:ff:ff:ff, 3f:fd:ff:ff:ff:ff:ff:ff,
+         (12): ff:fc:ff:ff:ff:ff:ff:ff, bf:fc:ff:ff:ff:ff:ff:ff,
+         (14): 7f:fc:ff:ff:ff:ff:ff:ff, 3f:fc:ff:ff:ff:ff:ff:ff,
+         (16): ff:fb:ff:ff:ff:ff:ff:ff, bf:fb:ff:ff:ff:ff:ff:ff,
+         (18): 7f:fb:ff:ff:ff:ff:ff:ff, 3f:fb:ff:ff:ff:ff:ff:ff,
+         (20): ff:fa:ff:ff:ff:ff:ff:ff, bf:fa:ff:ff:ff:ff:ff:ff,
+         (22): 7f:fa:ff:ff:ff:ff:ff:ff, 3f:fa:ff:ff:ff:ff:ff:ff,
+         (24): ff:f9:ff:ff:ff:ff:ff:ff, bf:f9:ff:ff:ff:ff:ff:ff,
+         (26): 7f:f9:ff:ff:ff:ff:ff:ff, 3f:f9:ff:ff:ff:ff:ff:ff,
+         (28): ff:f8:ff:ff:ff:ff:ff:ff, bf:f8:ff:ff:ff:ff:ff:ff,
+         (30): 7f:f8:ff:ff:ff:ff:ff:ff, 3f:f8:ff:ff:ff:ff:ff:ff
+         }
+      }
+   }
+   GROUP "cmpdtypetests" {
+      DATASET "compound_1" {
+         DATATYPE  H5T_COMPOUND {
+            H5T_STD_B8LE "a";
+            H5T_STD_B16LE "b";
+            H5T_STD_B32LE "c";
+            H5T_STD_B64LE "d";
+         }
+         DATASPACE  SIMPLE { ( 32 ) / ( 32 ) }
+         DATA {
+         (0): {
+               0xff,
+               ff:ff,
+               ff:ff:ff:ff,
+               ff:ff:ff:ff:ff:ff:ff:ff
+            },
+         (1): {
+               0xfe,
+               ef:ff,
+               df:ff:ff:ff,
+               bf:ff:ff:ff:ff:ff:ff:ff
+            },
+         (2): {
+               0xfd,
+               df:ff,
+               bf:ff:ff:ff,
+               7f:ff:ff:ff:ff:ff:ff:ff
+            },
+         (3): {
+               0xfc,
+               cf:ff,
+               9f:ff:ff:ff,
+               3f:ff:ff:ff:ff:ff:ff:ff
+            },
+         (4): {
+               0xfb,
+               bf:ff,
+               7f:ff:ff:ff,
+               ff:fe:ff:ff:ff:ff:ff:ff
+            },
+         (5): {
+               0xfa,
+               af:ff,
+               5f:ff:ff:ff,
+               bf:fe:ff:ff:ff:ff:ff:ff
+            },
+         (6): {
+               0xf9,
+               9f:ff,
+               3f:ff:ff:ff,
+               7f:fe:ff:ff:ff:ff:ff:ff
+            },
+         (7): {
+               0xf8,
+               8f:ff,
+               1f:ff:ff:ff,
+               3f:fe:ff:ff:ff:ff:ff:ff
+            },
+         (8): {
+               0xf7,
+               7f:ff,
+               ff:fe:ff:ff,
+               ff:fd:ff:ff:ff:ff:ff:ff
+            },
+         (9): {
+               0xf6,
+               6f:ff,
+               df:fe:ff:ff,
+               bf:fd:ff:ff:ff:ff:ff:ff
+            },
+         (10): {
+               0xf5,
+               5f:ff,
+               bf:fe:ff:ff,
+               7f:fd:ff:ff:ff:ff:ff:ff
+            },
+         (11): {
+               0xf4,
+               4f:ff,
+               9f:fe:ff:ff,
+               3f:fd:ff:ff:ff:ff:ff:ff
+            },
+         (12): {
+               0xf3,
+               3f:ff,
+               7f:fe:ff:ff,
+               ff:fc:ff:ff:ff:ff:ff:ff
+            },
+         (13): {
+               0xf2,
+               2f:ff,
+               5f:fe:ff:ff,
+               bf:fc:ff:ff:ff:ff:ff:ff
+            },
+         (14): {
+               0xf1,
+               1f:ff,
+               3f:fe:ff:ff,
+               7f:fc:ff:ff:ff:ff:ff:ff
+            },
+         (15): {
+               0xf0,
+               0f:ff,
+               1f:fe:ff:ff,
+               3f:fc:ff:ff:ff:ff:ff:ff
+            },
+         (16): {
+               0xef,
+               ff:fe,
+               ff:fd:ff:ff,
+               ff:fb:ff:ff:ff:ff:ff:ff
+            },
+         (17): {
+               0xee,
+               ef:fe,
+               df:fd:ff:ff,
+               bf:fb:ff:ff:ff:ff:ff:ff
+            },
+         (18): {
+               0xed,
+               df:fe,
+               bf:fd:ff:ff,
+               7f:fb:ff:ff:ff:ff:ff:ff
+            },
+         (19): {
+               0xec,
+               cf:fe,
+               9f:fd:ff:ff,
+               3f:fb:ff:ff:ff:ff:ff:ff
+            },
+         (20): {
+               0xeb,
+               bf:fe,
+               7f:fd:ff:ff,
+               ff:fa:ff:ff:ff:ff:ff:ff
+            },
+         (21): {
+               0xea,
+               af:fe,
+               5f:fd:ff:ff,
+               bf:fa:ff:ff:ff:ff:ff:ff
+            },
+         (22): {
+               0xe9,
+               9f:fe,
+               3f:fd:ff:ff,
+               7f:fa:ff:ff:ff:ff:ff:ff
+            },
+         (23): {
+               0xe8,
+               8f:fe,
+               1f:fd:ff:ff,
+               3f:fa:ff:ff:ff:ff:ff:ff
+            },
+         (24): {
+               0xe7,
+               7f:fe,
+               ff:fc:ff:ff,
+               ff:f9:ff:ff:ff:ff:ff:ff
+            },
+         (25): {
+               0xe6,
+               6f:fe,
+               df:fc:ff:ff,
+               bf:f9:ff:ff:ff:ff:ff:ff
+            },
+         (26): {
+               0xe5,
+               5f:fe,
+               bf:fc:ff:ff,
+               7f:f9:ff:ff:ff:ff:ff:ff
+            },
+         (27): {
+               0xe4,
+               4f:fe,
+               9f:fc:ff:ff,
+               3f:f9:ff:ff:ff:ff:ff:ff
+            },
+         (28): {
+               0xe3,
+               3f:fe,
+               7f:fc:ff:ff,
+               ff:f8:ff:ff:ff:ff:ff:ff
+            },
+         (29): {
+               0xe2,
+               2f:fe,
+               5f:fc:ff:ff,
+               bf:f8:ff:ff:ff:ff:ff:ff
+            },
+         (30): {
+               0xe1,
+               1f:fe,
+               3f:fc:ff:ff,
+               7f:f8:ff:ff:ff:ff:ff:ff
+            },
+         (31): {
+               0xe0,
+               0f:fe,
+               1f:fc:ff:ff,
+               3f:f8:ff:ff:ff:ff:ff:ff
+            }
+         }
+      }
+   }
+   GROUP "opaquetypetests" {
+      DATASET "opaque_1" {
+         DATATYPE  H5T_OPAQUE {
+            OPAQUE_TAG "1-byte opaque type";
+         }
+         DATASPACE  SIMPLE { ( 32 ) / ( 32 ) }
+         DATA {
+         (0): 0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8, 0xf7, 0xf6,
+         (10): 0xf5, 0xf4, 0xf3, 0xf2, 0xf1, 0xf0, 0xef, 0xee, 0xed, 0xec,
+         (20): 0xeb, 0xea, 0xe9, 0xe8, 0xe7, 0xe6, 0xe5, 0xe4, 0xe3, 0xe2,
+         (30): 0xe1, 0xe0
+         }
+      }
+      DATASET "opaque_2" {
+         DATATYPE  H5T_OPAQUE {
+            OPAQUE_TAG "2-byte opaque type";
+         }
+         DATASPACE  SIMPLE { ( 32 ) / ( 32 ) }
+         DATA {
+         (0): ff:ff, 00:00, ef:ff, 00:00, df:ff, 00:00, cf:ff, 00:00, bf:ff,
+         (9): 00:00, af:ff, 00:00, 9f:ff, 00:00, 8f:ff, 00:00, 7f:ff, 00:00,
+         (18): 6f:ff, 00:00, 5f:ff, 00:00, 4f:ff, 00:00, 3f:ff, 00:00, 2f:ff,
+         (27): 00:00, 1f:ff, 00:00, 0f:ff, 00:00
+         }
+      }
+   }
+}
+}
diff --git a/tools/testfiles/tbitnopaque.h5 b/tools/testfiles/tbitnopaque.h5
new file mode 100644
index 0000000..2b1f23d
Binary files /dev/null and b/tools/testfiles/tbitnopaque.h5 differ
diff --git a/vms/COPYING b/vms/COPYING
deleted file mode 100644
index 6903daf..0000000
--- a/vms/COPYING
+++ /dev/null
@@ -1,16 +0,0 @@
-
-  Copyright by  The HDF Group and 
-                The Board of Trustees of the University of Illinois. 
-  All rights reserved. 
-
-  The files and subdirectories in this directory are 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://www.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. 
-
diff --git a/vms/build.com b/vms/build.com
deleted file mode 100644
index c760b42..0000000
--- a/vms/build.com
+++ /dev/null
@@ -1,67 +0,0 @@
-$!#
-$!# 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 builds C, Fortran, C++ HDF5 libraries and runs the tests
-$! Specify location of the top HDF5 source directory
-$
-$ hdf5top == "SYS$SYSUSERS:[LU.hdf5_5_31]"
-$ len = F$LENGTH(hdf5top)
-$ tmp = F$EXTRACT(0, len-1, hdf5top)
-$ hdf5vms     = tmp + ".VMS]"
-$ hdf5ctest   = tmp + ".TEST]"
-$ hdf5f90test = tmp + ".FORTRAN.TEST]"
-$ hdf5cxxtest = tmp  + ".C__.TEST]"
-$ hdf5toolstest = tmp  + ".TOOLS.TESTFILES]"
-$ hdf5toolstest_h5diff = tmp  + ".TOOLS.H5DIFF.TESTFILES]"
-$ hdf5toolstest_h5repack = tmp  + ".TOOLS.H5REPACK.TESTFILES]"
-$ hdf5toolstest_h5copy = tmp  + ".TOOLS.H5COPY.TESTFILES]"
-$ hdf5toolstest_h5import  = tmp  + ".TOOLS.H5IMPORT.TESTFILES]"
-$ hdf5toolstest_h5jam  = tmp  + ".TOOLS.H5JAM.TESTFILES]"
-$ set def 'hdf5vms'
-$@make
-$ set def 'hdf5ctest'
-$@check
-$ set def 'hdf5f90test'
-$@check
-$ set def 'hdf5cxxtest'
-$@check
-$ set def 'hdf5toolstest'
-$ copy [-.h5dump]check_h5dump.com     check_h5dump.com 
-$ copy [-.h5ls]check_h5ls.com         check_h5ls.com
-$@check_h5dump.com
-$@check_h5ls.com
-$!
-$ set def 'hdf5toolstest_h5diff'
-$ copy [-]check_h5diff.com     check_h5diff.com
-$@check_h5diff.com
-$!
-$ set def 'hdf5toolstest_h5repack'
-$ copy [-]check_h5repack.com check_h5repack.com
-$@check_h5repack.com
-$!
-$ set def 'hdf5toolstest_h5copy'
-$ copy [-]check_h5copy.com check_h5copy.com
-$@check_h5copy.com
-$!
-$ set def 'hdf5toolstest_h5import'
-$ copy [-]check_h5import.com check_h5import.com
-$@check_h5import.com
-$!
-$ set def 'hdf5toolstest_h5jam'
-$ copy [.-]check_h5jam.com check_h5jam.com
-$@check_h5jam.com
-$
-$ exit
diff --git a/vms/c++/examples/check.com b/vms/c++/examples/check.com
deleted file mode 100644
index 0149819..0000000
--- a/vms/c++/examples/check.com
+++ /dev/null
@@ -1,53 +0,0 @@
-$!#
-$!# 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.
-$!#
-$!
-$! Command file to run C++ examples
-$!
-$!
-$ type sys$input
-
-       Running create
-$ run create 
-$!
-$ type sys$input
-
-       Running readdata
-$ run readdata 
-$!
-$ type sys$input
-
-       Running writedata
-$ run writedata 
-$!
-$ type sys$input
-
-       Running compound
-$ run compound 
-$!
-$ type sys$input
-
-       Running extend_ds
-$ run extend_ds 
-$!
-$ type sys$input
-
-       Running chunks
-$ run chunks 
-$!
-$ type sys$input
-
-       Running h5group
-$ run h5group 
-$ exit
diff --git a/vms/c++/examples/make.com b/vms/c++/examples/make.com
deleted file mode 100644
index bdb8729..0000000
--- a/vms/c++/examples/make.com
+++ /dev/null
@@ -1,89 +0,0 @@
-$!#
-$!# 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.
-$!#
-$!
-$! Make HDF5 C++ examples
-$!
-$ define zlib_dir SYS$SYSUSERS:[lu.zlib-1_2_5]
-$ cxxopt = "/float=ieee_float/standard=strict_ansi/define=H5_VMS/include=zlib_dir"
-$ ccc := cxx 'cxxopt /include=([-.-.include])
-$!
-$!
-$ cxxobj= "chunks.cxx, compound.cxx, create.cxx, extend_ds.cxx, h5group.cxx, "+-
-          "readdata.cxx, writedata.cxx"
-$! 
-$!                              
-$! ccc 'cxxobj
-$! Somehow, the C++ compiler doesn't like the list of source files.
-$!
-$ ccc chunks.cxx
-$ ccc compound.cxx
-$ ccc create.cxx
-$ ccc extend_ds.cxx
-$ ccc h5group.cxx
-$ ccc readdata.cxx
-$ ccc writedata.cxx
-$!         
-$ type sys$input
-
-       Creating chunks 
-$ cxxlink  chunks, -
-           [-.-.lib]hdf5_cplus.olb/lib, -
-           [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!
-$ type sys$input
-
-       Creating compound 
-$ cxxlink  compound, -
-           [-.-.lib]hdf5_cplus.olb/lib, -
-           [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!
-$ type sys$input
-
-       Creating create 
-$ cxxlink  create, -
-           [-.-.lib]hdf5_cplus.olb/lib, -
-           [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!
-$ type sys$input
-
-       Creating extend_ds  
-$ cxxlink  extend_ds, -
-           [-.-.lib]hdf5_cplus.olb/lib, -
-           [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!
-$ type sys$input
-
-       Creating h5group 
-$ cxxlink  h5group, -
-           [-.-.lib]hdf5_cplus.olb/lib, -
-           [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!
-$ type sys$input
-
-       Creating readdata  
-$ cxxlink  readdata, -
-           [-.-.lib]hdf5_cplus.olb/lib, -
-           [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!
-$ type sys$input
-
-       Creating writedata  
-$ cxxlink  writedata, -
-           [-.-.lib]hdf5_cplus.olb/lib, -
-           [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!                              
-$ type sys$input
-$!
-$ exit
diff --git a/vms/c++/src/make.com b/vms/c++/src/make.com
deleted file mode 100644
index 67e0207..0000000
--- a/vms/c++/src/make.com
+++ /dev/null
@@ -1,87 +0,0 @@
-$!#
-$!# 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.
-$!#
-$! Makefile for VMS systems.
-$!
-$! Make HDF5 C++ library
-$!
-$! The next two lines should be uncommented only when building by hand in the
-$! current directory. Use build.com in the vms directory to build
-$! the distribution. Make sure that location of the zlib library is correct.
-$! define zlib_dir sys$sysusers:[pourmal.zlib-1_2_3]
-$! cxxopt = "/float=ieee_float/standard=strict_ansi/define=H5_VMS"
-$ ccc := cxx 'cxxopt /include=([-.-.src])
-$!
-$! type sys$input
-$!	Creating  HDF5 C++ library
-$!
-$ lib/create/object hdf5_cplus.olb
-$ ccc H5AbstractDs.cxx
-$ lib/insert/object hdf5_cplus H5AbstractDs
-$ ccc H5ArrayType.cxx
-$ lib/insert/object hdf5_cplus H5ArrayType
-$ ccc H5AtomType.cxx
-$ lib/insert/object hdf5_cplus H5AtomType
-$ ccc H5Attribute.cxx
-$ lib/insert/object hdf5_cplus H5Attribute
-$ ccc H5CommonFG.cxx
-$ lib/insert/object hdf5_cplus H5CommonFG
-$ ccc H5CompType.cxx
-$ lib/insert/object hdf5_cplus H5CompType
-$ ccc H5DataSet.cxx
-$ lib/insert/object hdf5_cplus H5DataSet
-$ ccc H5DataSpace.cxx
-$ lib/insert/object hdf5_cplus H5DataSpace
-$ ccc H5DataType.cxx
-$ lib/insert/object hdf5_cplus H5DataType
-$ ccc H5DcreatProp.cxx
-$ lib/insert/object hdf5_cplus H5DcreatProp
-$ ccc H5DxferProp.cxx 
-$ lib/insert/object hdf5_cplus H5DxferProp
-$ ccc H5EnumType.cxx
-$ lib/insert/object hdf5_cplus H5EnumType
-$ ccc H5Exception.cxx
-$ lib/insert/object hdf5_cplus H5Exception
-$ ccc H5FaccProp.cxx
-$ lib/insert/object hdf5_cplus H5FaccProp
-$ ccc H5FcreatProp.cxx
-$ lib/insert/object hdf5_cplus H5FcreatProp
-$ ccc H5File.cxx
-$ lib/insert/object hdf5_cplus H5File
-$ ccc H5FloatType.cxx
-$ lib/insert/object hdf5_cplus H5FloatType
-$ ccc H5Group.cxx
-$ lib/insert/object hdf5_cplus H5Group
-$ ccc H5IdComponent.cxx
-$ lib/insert/object hdf5_cplus H5IdComponent
-$ ccc H5IntType.cxx
-$ lib/insert/object hdf5_cplus H5IntType
-$ ccc H5Library.cxx
-$ lib/insert/object hdf5_cplus H5Library
-$ ccc H5Location.cxx
-$ lib/insert/object hdf5_cplus H5Location
-$ ccc H5Object.cxx
-$ lib/insert/object hdf5_cplus H5Object
-$ ccc H5PredType.cxx
-$ lib/insert/object hdf5_cplus H5PredType
-$ ccc H5PropList.cxx 
-$ lib/insert/object hdf5_cplus H5PropList
-$ ccc H5StrType.cxx
-$ lib/insert/object hdf5_cplus H5StrType
-$ ccc H5VarLenType.cxx
-$ lib/insert/object hdf5_cplus H5VarLenType
-$!
-$ type sys$input
-	Done
-$ exit
diff --git a/vms/c++/test/H5srcdir_str.h b/vms/c++/test/H5srcdir_str.h
deleted file mode 100644
index 5febc35..0000000
--- a/vms/c++/test/H5srcdir_str.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * 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.     *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-/* If you are reading this file and it has a '.h' suffix, it was automatically
- * generated from the '.in' version.  Make changes there. But for OpenVMS, this
- * file is created by hand.
- */
-
-/* Set the 'srcdir' path from configure time */
-static const char *config_srcdir = "[.]";
-
diff --git a/vms/c++/test/check.com b/vms/c++/test/check.com
deleted file mode 100644
index cd523c3..0000000
--- a/vms/c++/test/check.com
+++ /dev/null
@@ -1,23 +0,0 @@
-$!#
-$!# 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.
-$!#
-$! Makefile for VMS systems.
-$!
-$! Command file to run C++ tests
-$!
-$ type sys$input
- 	Running C++ tests
-$!
-$ run testhdf5
-$ exit
diff --git a/vms/c++/test/make.com b/vms/c++/test/make.com
deleted file mode 100644
index 7016a18..0000000
--- a/vms/c++/test/make.com
+++ /dev/null
@@ -1,49 +0,0 @@
-$!#
-$!# 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.
-$!#
-$! Makefile for VMS systems.
-$!
-$! Make HDF5 C++ library tests
-$!
-$! The next two lines should be uncommented only when building by hand in the
-$! current directory. Use build.com in the vms directory to build
-$! the distribution. Make sure that location of the zlib library is correct.
-$! define zlib_dir sys$sysusers:[pourmal.zlib-1_2_3]
-$! cxxopt = "/float=ieee_float/standard=strict_ansi/define=H5_VMS"
-$
-$ ccc := cxx 'cxxopt /include=([-.-.src], [-.-.test], [-.src])
-$! 
-$!
-$!                               
-$ ccc h5cpputil
-$ ccc dsets
-$ ccc tattr
-$ ccc tcompound
-$ ccc testhdf5 
-$ ccc tfile
-$ ccc tfilter
-$ ccc th5s
-$ ccc tlinks
-$ ccc trefer
-$ ccc ttypes
-$ ccc tvlstr
-$ type sys$input
-       Creating testhdf5
-$ cxxlink  testhdf5, dsets, h5cpputil, tattr, tcompound, tfile, tfilter, th5s, -
-           tlinks, trefer, ttypes, tvlstr, -
-           [-.src]hdf5_cplus.olb/lib, [-.-.test]libh5test.olb/lib, -
-           [-.-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$ type sys$input
- 	Done
-$ exit
diff --git a/vms/examples/check.com b/vms/examples/check.com
deleted file mode 100644
index e78dcf5..0000000
--- a/vms/examples/check.com
+++ /dev/null
@@ -1,31 +0,0 @@
-$!#
-$!# 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.
-$!#
-$! Makefile for VMS systems.
-$!
-$ type sys$input
-       Running examples
-$ run  h5_write
-$ run  h5_read
-$ run  h5_extend_write
-$ run  h5_chunk_read
-$ run  h5_compound
-$ run  h5_group
-$ run  h5_select
-$ run  h5_attribute
-$ run  h5_mount
-$ run  h5_reference
-$ run  h5_ref2reg
-$ run  h5_drivers
-$ exit
diff --git a/vms/examples/make.com b/vms/examples/make.com
deleted file mode 100644
index 4c2853e..0000000
--- a/vms/examples/make.com
+++ /dev/null
@@ -1,125 +0,0 @@
-$!#
-$!# 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.
-$!#
-$! Makefile for VMS systems.
-$!
-$! Make HDF5 C examples
-$! Build examples after you install libraries and examples.
-$! install.com installs binaries under the HDF5 directory in the top
-$! source directory.
-$!
-$ define zlib_dir SYS$SYSUSERS:[lu.zlib-1_2_5]
-$ ccopt = "/float=ieee_float/nowarnings/define=H5_VMS/include=zlib_dir"
-$ ccc := cc 'ccopt /include=([-.-.include])
-$ type sys$input
- 	Compiling  C examples
-$!
-$ cobj= "h5_attribute.c, h5_chunk_read.c, h5_compound.c, h5_drivers.c, h5_dtransform.c,"+-
-        "h5_elink_unix2win.c, h5_extend_write.c, h5_extlink.c, h5_group.c,"+-
-        "h5_interm_group.c, h5_mount.c, h5_read.c, h5_ref2reg.c, h5_reference.c,"+-
-        "h5_select.c, h5_shared_mesg.c, h5_write.c"
-$!                               
-$ ccc 'cobj 
-$
-$ type sys$input
-       Creating h5_attribute 
-$ link     h5_attribute, -
-            [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib
-
-$ type sys$input
-       Creating h5_chunk_read 
-$ link     h5_chunk_read, -
-            [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib
-
-$ type sys$input
-       Creating h5_compound 
-$ link     h5_compound, -
-            [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib
-
-$ type sys$input
-       Creating h5_drivers
-$ link     h5_drivers, -
-            [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib
-
-$ type sys$input
-       Creating h5_dtransform 
-$ link     h5_dtransform, -
-            [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib
-
-$ type sys$input
-       Creating h5_elink_unix2win 
-$ link     h5_elink_unix2win, -
-            [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib
-
-$ type sys$input
-       Creating h5_extend_write
-$ link     h5_extend_write, -
-            [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib
-
-$ type sys$input
-       Creating h5_extend_write 
-$ link     h5_extend_write, -
-            [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib
-
-$ type sys$input
-       Creating h5_extlink 
-$ link     h5_extlink, -
-            [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib
-
-$ type sys$input
-       Creating h5_group 
-$ link     h5_group, -
-            [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib
-
-$ type sys$input
-       Creating h5_interm_group 
-$ link     h5_interm_group, -
-            [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib
-
-$ type sys$input
-       Creating h5_mount 
-$ link     h5_mount, -
-            [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib
-
-$ type sys$input
-       Creating h5_read 
-$ link     h5_read, -
-            [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib
-
-$ type sys$input
-       Creating h5_ref2reg
-$ link     h5_ref2reg, -
-            [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib
-
-$ type sys$input
-       Creating h5_reference 
-$ link     h5_reference, -
-            [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib
-
-$ type sys$input
-       Creating h5_select 
-$ link     h5_select, -
-            [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib
-
-$ type sys$input
-       Creating h5_shared_mesg 
-$ link     h5_shared_mesg, -
-            [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib
-
-$ type sys$input
-       Creating h5_write 
-$ link     h5_write, -
-            [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib
-
-$ exit
diff --git a/vms/fortran/examples/check.com b/vms/fortran/examples/check.com
deleted file mode 100644
index dce880e..0000000
--- a/vms/fortran/examples/check.com
+++ /dev/null
@@ -1,99 +0,0 @@
-$!#
-$!# 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.
-$!#
-$! Makefile for VMS systems.
-$!
-$! Command file to run Fortran examples; examples need to run in a defined
-$! order due to file dependencies.
-$!
-$ type sys$input
-
-
-	Running Fortran examples
-
-$ type sys$input
-
-	Running h5_crtdat
-$ run h5_crtdat
-$
-$ type sys$input
-
-	Running h5_rdwt 
-$ run h5_rdwt
-$
-$ type sys$input 
-
-	Running h5_subset
-$ run h5_subset
-$
-$ type sys$input
-
-	Running hyperslab
-$ run hyperslab
-$
-$ type sys$input
-
-	Running h5_cmprss
-$ run h5_cmprss
-$
-$ type sys$input
-
-	Running h5_crtatt
-$ run h5_crtatt
-$
-$ type sys$input
-
-	Running h5_crtgrp
-$ run h5_crtgrp
-$
-$ type sys$input
-
-	Running h5_crtgrpar
-$ run h5_crtgrpar
-$
-$ type sys$input
-
-	Running h5_crtgrpd
-$ run h5_crtgrpd
-$
-$ type sys$input
-
-	Running selectele
-$ run selectele
-$
-$ type sys$input
-
-	Running h5_extend
-$ run h5_extend
-$
-$ type sys$input
-
-	Running refobjexample
-$ run refobjexample
-$
-$ type sys$input
-
-	Running refregexample
-$ run refregexample
-$
-$ type sys$input
-
-	Running mountexample
-$ run mountexample
-$
-$ type sys$input
-
-	Running compound
-$ run compound
-$ exit
diff --git a/vms/fortran/examples/make.com b/vms/fortran/examples/make.com
deleted file mode 100644
index 4b49578..0000000
--- a/vms/fortran/examples/make.com
+++ /dev/null
@@ -1,124 +0,0 @@
-$!#
-$!# 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.
-$!#
-$! Makefile for VMS systems.
-$!
-$! Make HDF5 Fortran examples
-$!
-$ fcopt = "/float=ieee_float/define=H5_VMS"
-$ define zlib_dir SYS$SYSUSERS:[lu.zlib-1_2_5]
-$ fff := fortran 'fcopt /module=[-.-.include]
-$
-$ type sys$input
-	Compiling HDF5 Fortran examples
-$!
-$ ffiles="h5_rdwt.f90, h5_subset.f90, hyperslab.f90, "+-
-         "h5_crtatt.f90, h5_crtgrp.f90, h5_crtgrpar.f90, h5_cmprss,"+-
-         "h5_crtgrpd.f90, h5_crtdat.f90, selectele.f90, h5_extend.f90,"+-
-         "refobjexample.f90, refregexample.f90, mountexample.f90,"+-
-         "compound.f90"
-$!
-$ fff 'ffiles
-$ type sys$input
-
-        Creating h5_crtdat
-$ link       h5_crtdat ,-
-             [-.-.lib]hdf5_fortran.olb/lib,-
-             [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$ type sys$input
-
-        Creating h5_rdwt 
-$ link       h5_rdwt,-
-             [-.-.lib]hdf5_fortran.olb/lib,-
-             [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$ type sys$input
-
-        Creating h5_subset
-$ link       h5_subset,-
-             [-.-.lib]hdf5_fortran.olb/lib,-
-             [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$ type sys$input
-
-        Creating hyperslab
-$ link       hyperslab,-
-             [-.-.lib]hdf5_fortran.olb/lib,-
-             [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$ type sys$input
-
-        Creating h5_cmprss
-$ link       h5_cmprss,-
-             [-.-.lib]hdf5_fortran.olb/lib,-
-             [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$ type sys$input
-
-
-        Creating h5_crtatt
-$ link       h5_crtatt,-
-             [-.-.lib]hdf5_fortran.olb/lib,-
-             [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$ type sys$input
-
-        Creating h5_crtgrp
-$ link       h5_crtgrp,-
-             [-.-.lib]hdf5_fortran.olb/lib,-
-             [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$ type sys$input
-
-        Creating h5_crtgrpar
-$ link       h5_crtgrpar,-
-             [-.-.lib]hdf5_fortran.olb/lib,-
-             [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$ type sys$input
-
-        Creating h5_crtgrpd
-$ link       h5_crtgrpd,-
-             [-.-.lib]hdf5_fortran.olb/lib,-
-             [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$ type sys$input
-
-        Creating selectele
-$ link       selectele,-
-             [-.-.lib]hdf5_fortran.olb/lib,-
-             [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$ type sys$input
-
-        Creating h5_extend
-$ link       h5_extend,-
-             [-.-.lib]hdf5_fortran.olb/lib,-
-             [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$ type sys$input
-
-        Creating refobjexample
-$ link       refobjexample,-
-             [-.-.lib]hdf5_fortran.olb/lib,-
-             [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$ type sys$input
-
-        Creating refregexample
-$ link       refregexample,-
-             [-.-.lib]hdf5_fortran.olb/lib,-
-             [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$ type sys$input
-
-        Creating mountexample
-$ link       mountexample,-
-             [-.-.lib]hdf5_fortran.olb/lib,-
-             [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$ type sys$input
-
-        Creating compound
-$ link       compound,-
-             [-.-.lib]hdf5_fortran.olb/lib,-
-             [-.-.lib]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$ exit
diff --git a/vms/fortran/src/make.com b/vms/fortran/src/make.com
deleted file mode 100644
index f2ecbcd..0000000
--- a/vms/fortran/src/make.com
+++ /dev/null
@@ -1,83 +0,0 @@
-$!#
-$!# 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.
-$!#
-$! Makefile for VMS systems.
-$!
-$! Make HDF5 Fortran library
-$!
-$! The thre two lines should be uncommented only when building by hand in the
-$! current directory. Use build.com in the vms directory to build
-$! the distribution. Make sure that location of the zlib library is correct.
-$!
-$! define zlib_dir sys$sysusers:[pourmal.zlib-1_2_3]
-$! ccopt = "/float=ieee_float/define=H5_VMS/debug/nooptimize/include=zlib_dir"
-$! fcopt = "/float=ieee_float/define=H5_VMS/debug/nooptimize/include=zlib_dir"
-$ ccc := cc 'ccopt /include=[-.-.src]
-$ fff := fortran 'fcopt 
-$ type sys$input
-       Creating and running H5test_kind to generate H5fortran_detect.f90
-$!
-$ fff  H5test_kind_sizeof.f90
-$ link H5test_kind_sizeof
-$ define/user_mode sys$output H5fortran_detect.f90
-$ run  H5test_kind_sizeof
-$!
-$ type sys$input
-       Creating and running H5fortran_detect.f90 to generate H5fort_type_defines.h
-$!
-$ fff  H5fortran_detect.f90 
-$ link H5fortran_detect 
-$ define/user_mode sys$output H5fort_type_defines.h
-$ run  H5fortran_detect 
-$!
-$ type sys$input
- 	Creating and running H5match_types to generate H5fortran_types.f90
-$!
-$ ccc  H5match_types.c
-$ link H5match_types
-$ run  H5match_types
-$!
-$!
-$ type sys$input
-	Creating  HDF5 Fortran library
-$!
-$ cobj="H5f90kit, H5_f, H5Af, H5Df, H5Ef, H5Ff, H5Gf, "+-
-       "H5If, H5Lf, H5Of, H5Pf, H5Rf, H5Sf, H5Tf, H5Zf"
-$! H5_ff_F90.f90 is needed to compile H5_ff.f90, therefore I have it on this line EIP 2011/10/04
-$ ffiles= "H5_ff_F90.f90, H5_ff.f90, H5Aff.f90, H5Dff.f90, H5Eff.f90,"+-
-          "H5Lff.f90, H5Off.f90,"+-
-          "H5Fff.f90, H5Gff.f90, H5Iff.f90, H5Pff.f90, H5Rff.f90, H5Sff.f90,"+-
-          "H5Tff.f90, H5Zff.f90, H5_DBLE_InterfaceExclude.f90, H5_DBLE_InterfaceInclude.f90,"+-
-          "HDF5.f90"
-$ ffiles_F90="H5Aff_F90.f90, H5Dff_F90.f90, H5Eff_F90.f90, H5Fff_F90.f90, H5Lff_F90.f90,"+-
-             "H5Off_F90.f90, H5Pff_F90.f90, H5Rff_F90.f90, H5Tff_F90.f90"
-$ fobj="H5f90global, "+-
-       "H5fortran_types, H5_ff_F90, H5_ff, H5Aff, H5Dff, H5Eff,"+-
-       "H5Fff, H5Gff, H5Iff, H5Lff, H5Off, H5Pff, H5Rff, H5Sff,"+-
-       "H5Tff, H5Zff, H5_DBLE_InterfaceExclude, H5_DBLE_InterfaceInclude, HDF5"
-$ fobj_F90="H5Aff_F90, H5Dff_F90, H5Eff_F90, H5Lff_F90,"+-
-           "H5Off_F90, H5Pff_F90, H5Rff_F90, H5Tff_F90"
-$!
-$ ccc 'cobj 
-$ fff H5fortran_types.f90
-$ fff H5f90global.f90
-$ 
-$ fff 'ffiles_F90
-$ fff 'ffiles
-$ library/create []hdf5_fortran  'cobj
-$ library/replace []hdf5_fortran  'fobj
-$ library/replace []hdf5_fortran  'fobj_F90
-$ type sys$input
-       Done
-$ exit
diff --git a/vms/fortran/test/check.com b/vms/fortran/test/check.com
deleted file mode 100644
index 0a53e20..0000000
--- a/vms/fortran/test/check.com
+++ /dev/null
@@ -1,26 +0,0 @@
-$!#
-$!# 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.
-$!#
-$! Makefile for VMS systems.
-$!
-$! Command file to run Fortran tests
-$!
-$!
-$ type sys$input
-        Running Fortran tests
-$ run fortranlib_test
-$ run fortranlib_test_1_8
-$ run fflush1
-$ run fflush2
-$ exit
diff --git a/vms/fortran/test/make.com b/vms/fortran/test/make.com
deleted file mode 100644
index 478c64c..0000000
--- a/vms/fortran/test/make.com
+++ /dev/null
@@ -1,69 +0,0 @@
-$!#
-$!# 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.
-$!#
-$! Makefile for VMS systems.
-$!
-$! Make HDF5 Fortran tests
-$!
-$! define zlib_dir sys$sysusers:[pourmal.zlib-1_2_3]
-$! ccopt = "/float=ieee_float/define=H5_VMS/debug/nooptimize/include=zlib_dir"
-$! fcopt = "/float=ieee_float/define=H5_VMS/debug/nooptimize/include=zlib_dir"
-$ ccc := cc 'ccopt /include=[-.-.src]
-$ fff := fortran 'fcopt /module=[-.src]
-$
-$ type sys$input
-	Creating  HDF5 Fortran tests
-$!
-$ cobj="t "
-$ ffiles="fortranlib_test.f90, 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, tf.f90"
-$ ffiles18="fortranlib_test_1_8.f90, tH5F.f90, tH5O.f90,"+-
-       "tH5A_1_8.f90, tH5G_1_8.f90"
-
-$ fobj="fortranlib_test, tH5F, tH5D, "+-
-       "tH5R, tH5S, tH5T, tH5VL, tH5Z, tH5Sselect,"+-
-       "tH5P, tH5A, tH5I, tH5G, tH5E, tf"
-$ fobj18="fortranlib_test_1_8, tH5F, tH5O, tH5A_1_8, tH5G_1_8"
-$!
-$ ccc 'cobj 
-$ fff 'ffiles
-$ fff 'ffiles18
-$ fff  fflush1.f90
-$ fff  fflush2.f90
-$ library/create []h5test_fortran  t, tf 
-$ link fflush1,h5test_fortran.olb/lib,-
-             [-.-.test]libh5test.olb/lib, -
-             [-.src]hdf5_fortran.olb/lib,-
-             [-.-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$ link fflush2,h5test_fortran.olb/lib,-
-             [-.-.test]libh5test.olb/lib, - 
-             [-.src]hdf5_fortran.olb/lib,-
-             [-.-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$ link/exec=fortranlib_test.exe -
-  fortranlib_test.obj, tH5F.obj, tH5D.obj, -
-  tH5R.obj, tH5S.obj, tH5T.obj, tH5VL.obj, tH5Z.obj, tH5Sselect.obj, -
-  tH5P.obj, tH5A.obj, tH5I.obj, tH5G.obj, tH5E.obj,-
-  h5test_fortran.olb/lib,[-.-.test]libh5test.olb/lib, -
-  [-.src]hdf5_fortran.olb/lib,-
-  [-.-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$ link/exec=fortranlib_test_1_8.exe -
-  fortranlib_test_1_8.obj, tH5F.obj, tH5O.obj, tH5A_1_8.obj, tH5G_1_8.obj,-
-  h5test_fortran.olb/lib,[-.-.test]libh5test.olb/lib, -
-  [-.src]hdf5_fortran.olb/lib,-
-  [-.-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$ type sys$input
-	Created HDF5 Fortran tests
-$!
-$ exit
diff --git a/vms/install.com b/vms/install.com
deleted file mode 100644
index 4ac9174..0000000
--- a/vms/install.com
+++ /dev/null
@@ -1,166 +0,0 @@
-$!#
-$!# 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 command file installs built binaries, header files, examples and
-$! scripts under [.hdf5] directory in the main distribution
-$!
-$ 
-$!
-$!
-$ hdf5top      = F$DIRECTORY()
-$ len          = F$LENGTH(hdf5top)
-$ hdf5top_dir  = F$EXTRACT(0, len-4, hdf5top)
-$!
-$ hdf5src               = hdf5top_dir + "SRC]"
-$ hdf5examples          = hdf5top_dir + "EXAMPLES]"
-$ hdf5tools_h5copy      = hdf5top_dir + "TOOLS.H5COPY]"
-$ hdf5tools_h5diff      = hdf5top_dir + "TOOLS.H5DIFF]"
-$ hdf5tools_h5dump      = hdf5top_dir + "TOOLS.H5DUMP]"
-$ hdf5tools_h5ls        = hdf5top_dir + "TOOLS.H5LS]"
-$ hdf5tools_h5repack    = hdf5top_dir + "TOOLS.H5REPACK]"
-$ hdf5tools_h5jam       = hdf5top_dir + "TOOLS.H5JAM]"
-$ hdf5tools_h5import    = hdf5top_dir + "TOOLS.H5IMPORT]"
-$ hdf5tools_h5stat      = hdf5top_dir + "TOOLS.H5STAT]"
-$ hdf5tools_h5misc      = hdf5top_dir + "TOOLS.MISC]"
-$ hdf5fortran_examples  = hdf5top_dir + "FORTRAN.EXAMPLES]"
-$ hdf5fortran_src       = hdf5top_dir + "FORTRAN.SRC]"
-$ hdf5cxx_src           = hdf5top_dir + "C__.SRC]"
-$ hdf5cxx_examples      = hdf5top_dir + "C__.EXAMPLES]"
-$!
-$ hdf5install            = hdf5top_dir + "HDF5]"
-$ hdf5install_include    = hdf5top_dir + "HDF5.INCLUDE]"
-$ hdf5install_examples   = hdf5top_dir + "HDF5.EXAMPLES]"
-$ hdf5install_examples_c         = hdf5top_dir + "HDF5.EXAMPLES.C]"
-$ hdf5install_examples_f90       = hdf5top_dir + "HDF5.EXAMPLES.F90]"
-$ hdf5install_examples_cxx       = hdf5top_dir + "HDF5.EXAMPLES.CXX]"
-$ hdf5install_lib        = hdf5top_dir + "HDF5.LIB]"
-$ hdf5install_bin        = hdf5top_dir + "HDF5.BIN]"
-$
-$ if F$SEARCH(hdf5install) .NES. ""
-$    then write sys$output "''hdf5install' directory exists, will not create"
-$ else
-$    write sys$output "Creating ''hdf5install'..."
-$    create/dir 'hdf5install'
-$ endif
-$
-$ if F$SEARCH(hdf5install_include) .NES. ""
-$    then write sys$output "''hdf5install_include' directory exists, will not create"
-$ else
-$    write sys$output "Creating ''hdf5install_include'..."
-$    create/dir 'hdf5install_include' 
-$ endif
-$ if F$SEARCH(hdf5install_lib) .NES. ""
-$    then write sys$output "''hdf5install_lib' directory exists, will not create"
-$ else
-$    write sys$output "Creating ''hdf5install_lib'..."
-$    create/dir 'hdf5install_lib' 
-$ endif
-$ if F$SEARCH(hdf5install_bin) .NES. ""
-$    then write sys$output "''hdf5install_bin' directory exists, will not create"
-$ else
-$    write sys$output "Creating ''hdf5install_bin'..."
-$    create/dir 'hdf5install_bin' 
-$ endif
-$ if F$SEARCH(hdf5install_examples) .NES. ""
-$    then write sys$output "''hdf5install_examples' directory exists, will not create"
-$ else
-$    write sys$output "Creating ''hdf5install_examples'..."
-$    create/dir 'hdf5install_examples' 
-$ endif
-$ if F$SEARCH(hdf5install_examples_c) .NES. ""
-$    then write sys$output "''hdf5install_examples_c' directory exists, will not create"
-$ else
-$    write sys$output "Creating ''hdf5install_examples_c'..."
-$    create/dir 'hdf5install_examples_c' 
-$ endif
-$ if F$SEARCH(hdf5install_examples_f90) .NES. ""
-$    then write sys$output "''hdf5install_examples_f90' directory exists, will not create"
-$ else
-$    write sys$output "Creating ''hdf5install_examples_f90'..."
-$    create/dir 'hdf5install_examples_f90' 
-$ endif
-$ if F$SEARCH(hdf5install_examples_cxx) .NES. ""
-$    then write sys$output "''hdf5install_examples_cxx' directory exists, will not create"
-$ else
-$    write sys$output "Creating ''hdf5install_examples_cxx'..."
-$    create/dir 'hdf5install_examples_cxx' 
-$ endif
-
-$!
-$ write sys$output "Installing C library and header files"
-$ set def 'hdf5src'
-$ copy HDF5.olb 'hdf5install_lib'
-$ copy *.h      'hdf5install_include'
-$ del 'hdf5install_include'*private*.*;*
-$!
-$ write sys$output "Installing Fortran library module files"
-$ set def 'hdf5fortran_src'
-$ copy HDF5_FORTRAN.olb 'hdf5install_lib'
-$ copy *.F90$MOD      'hdf5install_include'
-$!
-$ write sys$output "Installing C++ library and header files"
-$ set def 'hdf5cxx_src'
-$ copy HDF5_CPLUS.olb 'hdf5install_lib'
-$ copy *.h      'hdf5install_include'
-$!
-$ write sys$output "Installing utilties"
-$ set def 'hdf5tools_h5copy'
-$ copy h5copy.exe 'hdf5install_bin'
-$!
-$ set def 'hdf5tools_h5diff'
-$ copy h5diff.exe 'hdf5install_bin'
-$!
-$ set def 'hdf5tools_h5dump'
-$ copy h5dump.exe 'hdf5install_bin'
-$!
-$ set def 'hdf5tools_h5repack'
-$ copy h5repack.exe 'hdf5install_bin'
-$!
-$ set def 'hdf5tools_h5ls'
-$ copy h5ls.exe 'hdf5install_bin'
-$!
-$ set def 'hdf5tools_h5jam'
-$ copy h5jam.exe   'hdf5install_bin'
-$ copy h5unjam.exe 'hdf5install_bin'
-$!
-$ set def 'hdf5tools_h5import'
-$ copy h5import.exe 'hdf5install_bin'
-$!
-$ set def 'hdf5tools_h5stat'
-$ copy h5stat.exe 'hdf5install_bin'
-$!
-$ set def 'hdf5tools_h5misc'
-$ copy h5debug.exe 'hdf5install_bin'
-$ copy h5mkgrp.exe 'hdf5install_bin'
-$!
-$ write sys$output "Installing examples"
-$ set def 'hdf5examples'
-$ copy *.c 'hdf5install_examples_c'
-$!
-$ set def 'hdf5fortran_examples'
-$ copy *.f90 'hdf5install_examples_f90'
-$!
-$ set def 'hdf5cxx_examples'
-$ copy *.cpp 'hdf5install_examples_cxx'
-$ rename 'hdf5install_examples_cxx'*.cpp 'hdf5install_examples_cxx'*.cxx
-$
-$ 
-$!
-$ set def 'hdf5top'
-$ copy [.examples]*.com 'hdf5install_examples_c'
-$ copy [.fortran.examples]*.com 'hdf5install_examples_f90'
-$ copy [.c__.examples]*.com 'hdf5install_examples_cxx'
-$ exit
diff --git a/vms/make.com b/vms/make.com
deleted file mode 100644
index b75e505..0000000
--- a/vms/make.com
+++ /dev/null
@@ -1,147 +0,0 @@
-$!#
-$!# 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 copies all make files from the VMS directory to the 
-$! source directories and builds libraries, tests, and utilties
-$!
-$ copy [.c__.src]make.com       [-.c__.src]
-$ copy [.c__.test]*.com         [-.c__.test]
-$ copy [.c__.test]H5srcdir_str.h    [-.c__.test]
-$ copy [.fortran.src]make.com   [-.fortran.src]
-$ copy [.fortran.test]*.com     [-.fortran.test]
-$ copy [.src]make.com           [-.src]
-$ copy [.src]h5pubconf.h        [-.src]
-$ copy [.test]*.com             [-.test]
-$ copy [.test]H5srcdir_str.h    [-.test]
-$ copy [.tools.h5copy]*.com     [-.tools.h5copy]
-$ copy [.tools.h5dump]*.com     [-.tools.h5dump]
-$ copy [.tools.h5ls]*.com       [-.tools.h5ls]
-$ copy [.tools.h5diff]*.com     [-.tools.h5diff]
-$ copy [.tools.h5repack]*.com   [-.tools.h5repack]
-$ copy [.tools.h5import]*.com   [-.tools.h5import]
-$ copy [.tools.h5jam]*.com      [-.tools.h5jam]
-$ copy [.tools.h5stat]*.com     [-.tools.h5stat]
-$ copy [.tools.lib]make.com     [-.tools.lib]
-$ copy [.tools.testfiles]*.ddl  [-.tools.testfiles]
-$ copy [.tools.misc]make.com    [-.tools.misc]
-$!
-$! Define location of ZLIB library. If you do not have it on your system, download
-$! source code from http://www.zlib.net/, build and install on your system
-$ define zlib_dir SYS$SYSUSERS:[LU.ZLIB-1_2_8]
-$! define zlib_dir sys$sysusers:[pourmal.zlib-1_2_3-ieee]
-$!
-$! Set up compilation flags here
-$! Do not remove define=H5_VMS and standard=strict_ansi qualifiers.
-$!
-$ ccopt == "/float=ieee_float/define=(_LARGEFILE,H5_VMS)/include=zlib_dir"
-$ fcopt == "/float=ieee_float/define=(_LARGEFILE,H5_VMS)/include=zlib_dir"
-$ cxxopt == "/float=ieee_float/define=(_LARGEFILE,H5_VMS)/"+-
-            "standard=strict_ansi/include=zlib_dir"
-$!
-$!
-$ hdf5top     = F$DIRECTORY()
-$ len         = F$LENGTH(hdf5top)
-$ hdf5top_dir = F$EXTRACT(0, len-4, hdf5top)
-$!
-$ hdf5src              = hdf5top_dir + "SRC]"
-$ hdf5test             = hdf5top_dir + "TEST]"
-$ hdf5examples         = hdf5top_dir + "EXAMPLES]"
-$ hdf5tools_lib        = hdf5top_dir + "TOOLS.LIB]"
-$ hdf5tools_h5copy     = hdf5top_dir + "TOOLS.H5COPY]"
-$ hdf5tools_h5diff     = hdf5top_dir + "TOOLS.H5DIFF]"
-$ hdf5tools_h5dump     = hdf5top_dir + "TOOLS.H5DUMP]"
-$ hdf5tools_h5import   = hdf5top_dir + "TOOLS.H5IMPORT]"
-$ hdf5tools_h5jam      = hdf5top_dir + "TOOLS.H5JAM]"
-$ hdf5tools_h5ls       = hdf5top_dir + "TOOLS.H5LS]"
-$ hdf5tools_h5repack   = hdf5top_dir + "TOOLS.H5REPACK]"
-$ hdf5tools_h5stat     = hdf5top_dir + "TOOLS.H5STAT]"
-$ hdf5tools_misc       = hdf5top_dir + "TOOLS.MISC]"
-$ hdf5fortran_examples = hdf5top_dir + "FORTRAN.EXAMPLES]"
-$ hdf5fortran_src      = hdf5top_dir + "FORTRAN.SRC]"
-$ hdf5fortran_test     = hdf5top_dir + "FORTRAN.TEST]"
-$ hdf5cxx_src          = hdf5top_dir + "C__.SRC]"
-$ hdf5cxx_test         = hdf5top_dir + "C__.TEST]"
-$ hdf5cxx_examples     = hdf5top_dir + "C__.EXAMPLES]"
-$!
-$ write sys$output "Building C library"
-$ set def 'hdf5src'
-$ @make.com
-$!
-$!
-$ write sys$output "Building C library tests"
-$ set def 'hdf5test'
-$ @make.com
-$!
-$ write sys$output "Building tools library"
-$ set def 'hdf5tools_lib'
-$ @make.com
-$!
-$ write sys$output "Building h5copy"
-$ set def 'hdf5tools_h5copy'
-$ @make.com
-$!
-$ write sys$output "Building h5diff"
-$ set def 'hdf5tools_h5diff'
-$ @make.com
-$!
-$ write sys$output "Building h5dump"
-$ set def 'hdf5tools_h5dump'
-$ @make.com
-$!
-$ write sys$output "Building h5import"
-$ set def 'hdf5tools_h5import'
-$ @make.com
-$!
-$ write sys$output "Building h5jam"
-$ set def 'hdf5tools_h5jam'
-$ @make.com
-$!
-$ write sys$output "Building h5ls"
-$ set def 'hdf5tools_h5ls'
-$ @make.com
-$!
-$ write sys$output "Building h5repack"
-$ set def 'hdf5tools_h5repack'
-$ @make.com
-$!
-$ write sys$output "Building h5stat"
-$ set def 'hdf5tools_h5stat'
-$ @make.com
-$!
-$ write sys$output "Building misc"
-$ set def 'hdf5tools_misc'
-$ @make.com
-$!
-$ write sys$output "Building Fortran library"
-$ set def 'hdf5fortran_src'
-$ @make.com
-$!
-$ write sys$output "Building Fortran library tests"
-$ set def 'hdf5fortran_test'
-$ @make.com
-$!
-$ write sys$output "Building C++ library"
-$ set def 'hdf5cxx_src'
-$ copy *.cpp *.cxx
-$ @make.com
-$!
-$ write sys$output "Building C++ library tests"
-$ set def 'hdf5cxx_test'
-$ copy *.cpp *.cxx
-$ @make.com
-$!
-$ set def 'hdf5top'
-$ exit
diff --git a/vms/src/h5pubconf.h b/vms/src/h5pubconf.h
deleted file mode 100644
index b2b12d4..0000000
--- a/vms/src/h5pubconf.h
+++ /dev/null
@@ -1,719 +0,0 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * 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.     *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-/* src/H5config.h.  Generated from H5config.h.in by configure.  */
-/* src/H5config.h.in.  Generated from configure.ac by autoheader.  */
-
-/* Define if building universal (internal helper macro) */
-/* #undef H5_AC_APPLE_UNIVERSAL_BUILD */
-
-/* Define if your system generates wrong code for log2 routine. */
-/* #undef H5_BAD_LOG2_CODE_GENERATED */
-
-/* Define if the memory buffers being written to disk should be cleared before
-   writing. */
-#define H5_CLEAR_MEMORY 1
-
-/* Define if your system can handle converting denormalized floating-point
-   values. */
-#define H5_CONVERT_DENORMAL_FLOAT 1
-
-/* Define if C++ compiler recognizes offsetof */
-#define H5_CXX_HAVE_OFFSETOF 1
-
-/* Define the default virtual file driver to compile */
-#define H5_DEFAULT_VFD H5FD_SEC2
-
-/* Define if `dev_t' is a scalar */
-#define H5_DEV_T_IS_SCALAR 1
-
-/* Define to dummy `main' function (if any) required to link to the Fortran
-   libraries. */
-/* #undef H5_FC_DUMMY_MAIN */
-
-/* Define if F77 and FC dummy `main' functions are identical. */
-/* #undef H5_FC_DUMMY_MAIN_EQ_F77 */
-
-/* Define to a macro mangling the given C identifier (in lower and upper
-   case), which must not contain underscores, for linking with Fortran. */
-/* #undef H5_FC_FUNC */
-
-/* As FC_FUNC, but for C identifiers containing underscores. */
-/* #undef H5_FC_FUNC_ */
-
-/* Define if your system can handle overflow converting floating-point to
-   integer values. */
-#define H5_FP_TO_INTEGER_OVERFLOW_WORKS 1
-
-/* Define if your system roundup accurately converting floating-point to
-   unsigned long long values. */
-#define H5_FP_TO_ULLONG_ACCURATE 1
-
-/* Define if your system has right maximum convert floating-point to unsigned
-   long long values. */
-#define H5_FP_TO_ULLONG_RIGHT_MAXIMUM 1
-
-/* Define if gettimeofday() populates the tz pointer passed in */
-/* #undef H5_GETTIMEOFDAY_GIVES_TZ */
-
-/* Define to 1 if you have the `alarm' function. */
-#define H5_HAVE_ALARM 1
-
-/* Define if the __attribute__(()) extension is present */
-/* #undef H5_HAVE_ATTRIBUTE */
-
-/* Define to 1 if you have the `BSDgettimeofday' function. */
-/* #undef H5_HAVE_BSDGETTIMEOFDAY */
-
-/* Define if the compiler understands C99 designated initialization of structs
-   and unions */
-#define H5_HAVE_C99_DESIGNATED_INITIALIZER 1
-
-/* Define if the compiler understands the __func__ keyword */
-#define H5_HAVE_C99_FUNC 1
-
-/* Define to 1 if you have the `clock_gettime' function. */
-#define H5_HAVE_CLOCK_GETTIME 1
-
-/* Define if the function stack tracing code is to be compiled in */
-/* #undef H5_HAVE_CODESTACK */
-
-/* Define to 1 if you have the declaration of `tzname', and to 0 if you don't.
-   */
-/* #undef H5_HAVE_DECL_TZNAME */
-
-/* Define to 1 if you have the `difftime' function. */
-#define H5_HAVE_DIFFTIME 1
-
-/* Define if the direct I/O virtual file driver should be compiled */
-/* #undef H5_HAVE_DIRECT */
-
-/* Define to 1 if you have the <dirent.h> header file. */
-#define H5_HAVE_DIRENT_H 1
-
-/* Define to 1 if you have the <dlfcn.h> header file. */
-#define H5_HAVE_DLFCN_H 1
-
-/* Define to 1 if you have the <dmalloc.h> header file. */
-/* #undef H5_HAVE_DMALLOC_H */
-
-/* Define if library information should be embedded in the executables */
-/* #undef H5_HAVE_EMBEDDED_LIBINFO */
-
-/* Define to 1 if you have the <features.h> header file. */
-/* #undef H5_HAVE_FEATURES_H */
-
-/* Define if support for deflate (zlib) filter is enabled */
-#define H5_HAVE_FILTER_DEFLATE 1
-
-/* Define if support for Fletcher32 checksum is enabled */
-#define H5_HAVE_FILTER_FLETCHER32 1
-
-/* Define if support for nbit filter is enabled */
-#define H5_HAVE_FILTER_NBIT 1
-
-/* Define if support for scaleoffset filter is enabled */
-#define H5_HAVE_FILTER_SCALEOFFSET 1
-
-/* Define if support for shuffle filter is enabled */
-#define H5_HAVE_FILTER_SHUFFLE 1
-
-/* Define if support for szip filter is enabled */
-/* #undef H5_HAVE_FILTER_SZIP */
-
-/* Define to 1 if you have the `fork' function. */
-/* #undef H5_HAVE_FORK */
-
-/* Define to 1 if you have the `frexpf' function. */
-#define H5_HAVE_FREXPF 1
-
-/* Define to 1 if you have the `frexpl' function. */
-#define H5_HAVE_FREXPL 1
-
-/* Define to 1 if you have the `fseeko' function. */
-#define H5_HAVE_FSEEKO 1
-
-/* Define to 1 if you have the `fseek64' function. */
-/* #undef H5_HAVE_FSEEKO64 */
-
-/* Define to 1 if you have the `fstat64' function. */
-/* #undef H5_HAVE_FSTAT64 */
-
-/* Define to 1 if you have the `ftello' function. */
-#define H5_HAVE_FTELLO 1
-
-/* Define to 1 if you have the `ftruncate64' function. */
-/* #undef H5_HAVE_FTRUNCATE64 */
-
-/* Define if the compiler understands the __FUNCTION__ keyword */
-/* #undef H5_HAVE_FUNCTION */
-
-/* Define to 1 if you have the `GetConsoleScreenBufferInfo' function. */
-/* #undef H5_HAVE_GETCONSOLESCREENBUFFERINFO */
-
-/* Define to 1 if you have the `gethostname' function. */
-#define H5_HAVE_GETHOSTNAME 1
-
-/* Define to 1 if you have the `getpwuid' function. */
-/* #undef H5_HAVE_GETPWUID */
-
-/* Define to 1 if you have the `getrusage' function. */
-/* #undef H5_HAVE_GETRUSAGE */
-
-/* Define to 1 if you have the `gettextinfo' function. */
-/* #undef H5_HAVE_GETTEXTINFO */
-
-/* Define to 1 if you have the `gettimeofday' function. */
-#define H5_HAVE_GETTIMEOFDAY 1
-
-/* Define to 1 if you have the `get_fpc_csr' function. */
-/* #undef H5_HAVE_GET_FPC_CSR */
-
-/* Define if library will contain instrumentation to detect correct
-   optimization operation */
-#define H5_HAVE_INSTRUMENTED_LIBRARY 1
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#define H5_HAVE_INTTYPES_H 1
-
-/* Define to 1 if you have the `ioctl' function. */
-#define H5_HAVE_IOCTL 1
-
-/* Define to 1 if you have the <io.h> header file. */
-/* #undef H5_HAVE_IO_H */
-
-/* Define to 1 if you have the `dl' library (-ldl). */
-#define H5_HAVE_LIBDL 1
-
-/* Define to 1 if you have the `dmalloc' library (-ldmalloc). */
-/* #undef H5_HAVE_LIBDMALLOC */
-
-/* Define to 1 if you have the `lmpe' library (-llmpe). */
-/* #undef H5_HAVE_LIBLMPE */
-
-/* Define to 1 if you have the `m' library (-lm). */
-#define H5_HAVE_LIBM 1
-
-/* Define to 1 if you have the `mpe' library (-lmpe). */
-/* #undef H5_HAVE_LIBMPE */
-
-/* Define to 1 if you have the `mpi' library (-lmpi). */
-/* #undef H5_HAVE_LIBMPI */
-
-/* Define to 1 if you have the `mpich' library (-lmpich). */
-/* #undef H5_HAVE_LIBMPICH */
-
-/* Define to 1 if you have the `mpio' library (-lmpio). */
-/* #undef H5_HAVE_LIBMPIO */
-
-/* Define to 1 if you have the `nsl' library (-lnsl). */
-/* #undef H5_HAVE_LIBNSL */
-
-/* Define to 1 if you have the `pthread' library (-lpthread). */
-/* #undef H5_HAVE_LIBPTHREAD */
-
-/* Define to 1 if you have the `socket' library (-lsocket). */
-/* #undef H5_HAVE_LIBSOCKET */
-
-/* Define to 1 if you have the `sz' library (-lsz). */
-/* #undef H5_HAVE_LIBSZ */
-
-/* Define to 1 if you have the `z' library (-lz). */
-#define H5_HAVE_LIBZ 1
-
-/* Define to 1 if you have the `longjmp' function. */
-#define H5_HAVE_LONGJMP 1
-
-/* Define to 1 if you have the `lseek64' function. */
-/* #undef H5_HAVE_LSEEK64 */
-
-/* Define to 1 if you have the `lstat' function. */
-/* #undef H5_HAVE_LSTAT */
-
-/* Define to 1 if you have the <mach/mach_time.h> header file. */
-/* #undef H5_HAVE_MACH_MACH_TIME_H */
-
-/* Define to 1 if you have the <memory.h> header file. */
-/* #undef H5_HAVE_MEMORY_H */
-
-/* Define if we have MPE support */
-/* #undef H5_HAVE_MPE */
-
-/* Define to 1 if you have the <mpe.h> header file. */
-/* #undef H5_HAVE_MPE_H */
-
-/* Define if `MPI_Comm_c2f' and `MPI_Comm_f2c' exists */
-/* #undef H5_HAVE_MPI_MULTI_LANG_Comm */
-
-/* Define if `MPI_Info_c2f' and `MPI_Info_f2c' exists */
-/* #undef H5_HAVE_MPI_MULTI_LANG_Info */
-
-/* Define if we have parallel support */
-/* #undef H5_HAVE_PARALLEL */
-
-/* Define to 1 if you have the <pthread.h> header file. */
-/* #undef H5_HAVE_PTHREAD_H */
-
-/* Define to 1 if you have the `random' function. */
-#define H5_HAVE_RANDOM 1
-
-/* Define to 1 if you have the `rand_r' function. */
-/* #define H5_HAVE_RAND_R 1 */
-
-/* Define to 1 if you have the `setjmp' function. */
-#define H5_HAVE_SETJMP 1
-
-/* Define to 1 if you have the <setjmp.h> header file. */
-#define H5_HAVE_SETJMP_H 1
-
-/* Define to 1 if you have the `setsysinfo' function. */
-/* #undef H5_HAVE_SETSYSINFO */
-
-/* Define to 1 if you have the `siglongjmp' function. */
-#define H5_HAVE_SIGLONGJMP 1
-
-/* Define to 1 if you have the `signal' function. */
-#define H5_HAVE_SIGNAL 1
-
-/* Define to 1 if you have the `sigprocmask' function. */
-/* #undef H5_HAVE_SIGPROCMASK */
-
-/* Define to 1 if you have the `sigsetjmp' function. */
-/* #undef H5_HAVE_SIGSETJMP */
-
-/* Define to 1 if you have the `snprintf' function. */
-#define H5_HAVE_SNPRINTF 1
-
-/* Define to 1 if you have the `srandom' function. */
-#define H5_HAVE_SRANDOM 1
-
-/* Define to 1 if you have the `stat64' function. */
-/* #undef H5_HAVE_STAT64 */
-
-/* Define if `struct stat' has the `st_blocks' field */
-/* #undef H5_HAVE_STAT_ST_BLOCKS */
-
-/* Define to 1 if you have the <stddef.h> header file. */
-#define H5_HAVE_STDDEF_H 1
-
-/* Define to 1 if you have the <stdint.h> header file. */
-/* #undef H5_HAVE_STDINT_H */
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#define H5_HAVE_STDLIB_H 1
-
-/* Define to 1 if you have the `strdup' function. */
-#define H5_HAVE_STRDUP 1
-
-/* Define to 1 if you have the <strings.h> header file. */
-#define H5_HAVE_STRINGS_H 1
-
-/* Define to 1 if you have the <string.h> header file. */
-#define H5_HAVE_STRING_H 1
-
-/* Define if `struct text_info' is defined */
-/* #undef H5_HAVE_STRUCT_TEXT_INFO */
-
-/* Define if `struct timezone' is defined */
-/* #undef H5_HAVE_STRUCT_TIMEZONE */
-
-/* Define to 1 if `tm_zone' is member of `struct tm'. */
-#define H5_HAVE_STRUCT_TM_TM_ZONE 1
-
-/* Define if `struct videoconfig' is defined */
-/* #undef H5_HAVE_STRUCT_VIDEOCONFIG */
-
-/* Define to 1 if you have the `symlink' function. */
-/* #undef H5_HAVE_SYMLINK */
-
-/* Define to 1 if you have the `system' function. */
-#define H5_HAVE_SYSTEM 1
-
-/* Define to 1 if you have the <sys/fpu.h> header file. */
-/* #undef H5_HAVE_SYS_FPU_H */
-
-/* Define to 1 if you have the <sys/ioctl.h> header file. */
-#define H5_HAVE_SYS_IOCTL_H 1
-
-/* Define to 1 if you have the <sys/proc.h> header file. */
-/* #undef H5_HAVE_SYS_PROC_H */
-
-/* Define to 1 if you have the <sys/resource.h> header file. */
-#define H5_HAVE_SYS_RESOURCE_H 1
-
-/* Define to 1 if you have the <sys/socket.h> header file. */
-#define H5_HAVE_SYS_SOCKET_H 1
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#define H5_HAVE_SYS_STAT_H 1
-
-/* Define to 1 if you have the <sys/sysinfo.h> header file. */
-/* #undef H5_HAVE_SYS_SYSINFO_H */
-
-/* Define to 1 if you have the <sys/timeb.h> header file. */
-#define H5_HAVE_SYS_TIMEB_H 1
-
-/* Define to 1 if you have the <sys/time.h> header file. */
-#define H5_HAVE_SYS_TIME_H 1
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#define H5_HAVE_SYS_TYPES_H 1
-
-/* Define to 1 if you have the <szlib.h> header file. */
-/* #undef H5_HAVE_SZLIB_H */
-
-/* Define if we have thread safe support */
-/* #undef H5_HAVE_THREADSAFE */
-
-/* Define if `timezone' is a global variable */
-#define H5_HAVE_TIMEZONE 1
-
-/* Define if the ioctl TIOCGETD is defined */
-#define H5_HAVE_TIOCGETD 1
-
-/* Define if the ioctl TIOGWINSZ is defined */
-#define H5_HAVE_TIOCGWINSZ 1
-
-/* Define to 1 if you have the `tmpfile' function. */
-#define H5_HAVE_TMPFILE 1
-
-/* Define if `tm_gmtoff' is a member of `struct tm' */
-/* #undef H5_HAVE_TM_GMTOFF */
-
-/* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use
-   `HAVE_STRUCT_TM_TM_ZONE' instead. */
-#define H5_HAVE_TM_ZONE 1
-
-/* Define to 1 if you don't have `tm_zone' but do have the external array
-   `tzname'. */
-/* #undef H5_HAVE_TZNAME */
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#define H5_HAVE_UNISTD_H 1
-
-/* Define to 1 if you have the `asprintf' function. */
-/* #undef H5_HAVE_ASPRINTF */
-
-/* Define to 1 if you have the `vasprintf' function. */
-/* #undef H5_HAVE_VASPRINTF */
-
-/* Define to 1 if you have the `vsnprintf' function. */
-#define H5_HAVE_VSNPRINTF 1
-
-/* Define to 1 if you have the `waitpid' function. */
-#define H5_HAVE_WAITPID 1
-
-/* Define if your system has OpenVMS path name. This macro is added by hand. */
-#define H5_HAVE_VMS_PATH 1
-
-/* Define if your system has window style path name. */
-/* #undef H5_HAVE_WINDOW_PATH */
-
-/* Define to 1 if you have the <winsock.h> header file. */
-/* #undef H5_HAVE_WINSOCK2_H */
-
-/* Define to 1 if you have the <zlib.h> header file. */
-#define H5_HAVE_ZLIB_H 1
-
-/* Define to 1 if you have the `_getvideoconfig' function. */
-/* #undef H5_HAVE__GETVIDEOCONFIG */
-
-/* Define to 1 if you have the `_scrsize' function. */
-/* #undef H5_HAVE__SCRSIZE */
-
-/* Define if `__tm_gmtoff' is a member of `struct tm' */
-/* #undef H5_HAVE___TM_GMTOFF */
-
-/* Define if your system can't handle converting floating-point values to long
-   long. */
-/* #undef H5_HW_FP_TO_LLONG_NOT_WORKS */
-
-/* Define if HDF5's high-level library headers should be included in hdf5.h */
-#define H5_INCLUDE_HL 1
-
-/* Define if your system can accurately convert from integers to long double
-   values. */
-#define H5_INTEGER_TO_LDOUBLE_ACCURATE 1
-
-/* Define if your system can convert long double to integers accurately. */
-#define H5_LDOUBLE_TO_INTEGER_ACCURATE 1
-
-/* Define if your system can convert from long double to integer values. */
-#define H5_LDOUBLE_TO_INTEGER_WORKS 1
-
-/* Define if your system can convert long double to (unsigned) long long
-   values correctly. */
-#define H5_LDOUBLE_TO_LLONG_ACCURATE 1
-
-/* Define if your system converts long double to (unsigned) long values with
-   special algorithm. */
-/* #undef H5_LDOUBLE_TO_LONG_SPECIAL */
-
-/* Define if your system can convert long double to unsigned int values
-   correctly. */
-#define H5_LDOUBLE_TO_UINT_ACCURATE 1
-
-/* Define if your system can compile long long to floating-point casts. */
-#define H5_LLONG_TO_FP_CAST_WORKS 1
-
-/* Define if your system can convert (unsigned) long long to long double
-   values correctly. */
-#define H5_LLONG_TO_LDOUBLE_CORRECT 1
-
-/* Define if your system can convert (unsigned) long to long double values
-   with special algorithm. */
-/* #undef H5_LONG_TO_LDOUBLE_SPECIAL */
-
-/* Define to the sub-directory in which libtool stores uninstalled libraries.
-   */
-#define H5_LT_OBJDIR ".libs/"
-
-/* Define if the metadata trace file code is to be compiled in */
-/* #undef H5_METADATA_TRACE_FILE */
-
-/* Define if we can violate pointer alignment restrictions */
-#define H5_NO_ALIGNMENT_RESTRICTIONS 1
-
-/* Define if deprecated public API symbols are disabled */
-/* #undef H5_NO_DEPRECATED_SYMBOLS */
-
-/* Define if shared writing must be disabled (CodeWarrior only) */
-#define H5_NO_SHARED_WRITING 1
-
-/* Name of package */
-#define H5_PACKAGE "hdf5"
-
-/* Define to the address where bug reports for this package should be sent. */
-#define H5_PACKAGE_BUGREPORT "help at hdfgroup.org"
-
-/* Define to the full name of this package. */
-#define H5_PACKAGE_NAME "HDF5"
-
-/* Define to the full name and version of this package. */
-#define H5_PACKAGE_STRING "HDF5 1.8.14"
-
-/* Define to the one symbol short name of this package. */
-#define H5_PACKAGE_TARNAME "hdf5"
-
-/* Define to the home page for this package. */
-#define H5_PACKAGE_URL ""
-
-/* Define to the version of this package. */
-#define H5_PACKAGE_VERSION "1.8.14"
-
-/* Width for printf() for type `long long' or `__int64', use `ll' */
-#define H5_PRINTF_LL_WIDTH "ll"
-
-/* The size of `char', as computed by sizeof. */
-#define H5_SIZEOF_CHAR 1
-
-/* The size of `double', as computed by sizeof. */
-#define H5_SIZEOF_DOUBLE 8
-
-/* The size of `float', as computed by sizeof. */
-#define H5_SIZEOF_FLOAT 4
-
-/* The size of `int', as computed by sizeof. */
-#define H5_SIZEOF_INT 4
-
-/* The size of `int16_t', as computed by sizeof. */
-#define H5_SIZEOF_INT16_T 2
-
-/* The size of `int32_t', as computed by sizeof. */
-#define H5_SIZEOF_INT32_T 4
-
-/* The size of `int64_t', as computed by sizeof. */
-#define H5_SIZEOF_INT64_T 8
-
-/* The size of `int8_t', as computed by sizeof. */
-#define H5_SIZEOF_INT8_T 1
-
-/* The size of `int_fast16_t', as computed by sizeof. */
-/* #define H5_SIZEOF_INT_FAST16_T 0 */
-
-/* The size of `int_fast32_t', as computed by sizeof. */
-/* #define H5_SIZEOF_INT_FAST32_T 0 */
-
-/* The size of `int_fast64_t', as computed by sizeof. */
-/* #define H5_SIZEOF_INT_FAST64_T 0 */
-
-/* The size of `int_fast8_t', as computed by sizeof. */
-/* #define H5_SIZEOF_INT_FAST8_T 0 */
-
-/* The size of `int_least16_t', as computed by sizeof. */
-/* #define H5_SIZEOF_INT_LEAST16_T 0 */
-
-/* The size of `int_least32_t', as computed by sizeof. */
-/* #define H5_SIZEOF_INT_LEAST32_T 0 */
-
-/* The size of `int_least64_t', as computed by sizeof. */
-/* #define H5_SIZEOF_INT_LEAST64_T 0 */
-
-/* The size of `int_least8_t', as computed by sizeof. */
-/* #define H5_SIZEOF_INT_LEAST8_T 0 */
-
-/* The size of `long', as computed by sizeof. */
-#define H5_SIZEOF_LONG 4
-
-/* The size of `long double', as computed by sizeof. */
-#define H5_SIZEOF_LONG_DOUBLE 16
-
-/* The size of `long long', as computed by sizeof. */
-#define H5_SIZEOF_LONG_LONG 8
-
-/* The size of `off64_t', as computed by sizeof. */
-#define H5_SIZEOF_OFF64_T 0
-
-/* The size of `off_t', as computed by sizeof. */
-#define H5_SIZEOF_OFF_T 8
-
-/* The size of `ptrdiff_t', as computed by sizeof. */
-#define H5_SIZEOF_PTRDIFF_T 4
-
-/* The size of `short', as computed by sizeof. */
-#define H5_SIZEOF_SHORT 2
-
-/* The size of `size_t', as computed by sizeof. */
-#define H5_SIZEOF_SIZE_T 4
-
-/* The size of `ssize_t', as computed by sizeof. */
-#define H5_SIZEOF_SSIZE_T 4
-
-/* The size of `uint16_t', as computed by sizeof. */
-#define H5_SIZEOF_UINT16_T 2
-
-/* The size of `uint32_t', as computed by sizeof. */
-#define H5_SIZEOF_UINT32_T 4
-
-/* The size of `uint64_t', as computed by sizeof. */
-#define H5_SIZEOF_UINT64_T 8
-
-/* The size of `uint8_t', as computed by sizeof. */
-#define H5_SIZEOF_UINT8_T 1
-
-/* The size of `uint_fast16_t', as computed by sizeof. */
-/* #define H5_SIZEOF_UINT_FAST16_T 0 */
-
-/* The size of `uint_fast32_t', as computed by sizeof. */
-/* #define H5_SIZEOF_UINT_FAST32_T 0 */
-
-/* The size of `uint_fast64_t', as computed by sizeof. */
-/* #define H5_SIZEOF_UINT_FAST64_T 0 */
-
-/* The size of `uint_fast8_t', as computed by sizeof. */
-/* #define H5_SIZEOF_UINT_FAST8_T 0 */
-
-/* The size of `uint_least16_t', as computed by sizeof. */
-/* #define H5_SIZEOF_UINT_LEAST16_T 0 */
-
-/* The size of `uint_least32_t', as computed by sizeof. */
-/* #define H5_SIZEOF_UINT_LEAST32_T 0 */
-
-/* The size of `uint_least64_t', as computed by sizeof. */
-/* #define H5_SIZEOF_UINT_LEAST64_T 0 */
-
-/* The size of `uint_least8_t', as computed by sizeof. */
-/* #define H5_SIZEOF_UINT_LEAST8_T 0 */
-
-/* The size of `unsigned', as computed by sizeof. */
-#define H5_SIZEOF_UNSIGNED 4
-
-/* The size of `__int64', as computed by sizeof. */
-#define H5_SIZEOF___INT64 0
-
-/* Define to 1 if you have the ANSI C header files. */
-#define H5_STDC_HEADERS 1
-
-/* Define if strict file format checks are enabled */
-/* #undef H5_STRICT_FORMAT_CHECKS */
-
-/* Define if your system supports pthread_attr_setscope(&attribute,
-   PTHREAD_SCOPE_SYSTEM) call. */
-#define H5_SYSTEM_SCOPE_THREADS 1
-
-/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
-#define H5_TIME_WITH_SYS_TIME 1
-
-/* Define to 1 if your <sys/time.h> declares `struct tm'. */
-/* #undef H5_TM_IN_SYS_TIME */
-
-/* Define if your system can compile unsigned long long to floating-point
-   casts. */
-#define H5_ULLONG_TO_FP_CAST_WORKS 1
-
-/* Define if your system can convert unsigned long long to long double with
-   correct precision. */
-#define H5_ULLONG_TO_LDOUBLE_PRECISION 1
-
-/* Define if your system accurately converting unsigned long to float values.
-   */
-/* #undef H5_ULONG_TO_FLOAT_ACCURATE */
-
-/* Define if your system can accurately convert unsigned (long) long values to
-   floating-point values. */
-#define H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE 1
-
-/* Define using v1.6 public API symbols by default */
-/* #define H5_USE_16_API_DEFAULT 1 */
-
-/* Define if a memory checking tool will be used on the library, to cause
-   library to be very picky about memory operations and also disable the
-   internal free list manager code. */
-/* #undef H5_USING_MEMCHECKER */
-
-/* Version number of package */
-#define H5_VERSION "1.8.14"
-
-/* Define if vsnprintf() returns the correct value for formatted strings that
-   don't fit into size allowed */
-#define H5_VSNPRINTF_WORKS 1
-
-/* Data accuracy is prefered to speed during data conversions */
-#define H5_WANT_DATA_ACCURACY 1
-
-/* Check exception handling functions during data conversions */
-#define H5_WANT_DCONV_EXCEPTION 1
-
-/* Define to 1 if your processor stores words with the most significant byte
-   first (like Motorola and SPARC, unlike Intel and VAX). */
-/* #undef H5_WORDS_BIGENDIAN */
-
-/* Number of bits in a file offset, on hosts where this is settable. */
-/* #undef H5__FILE_OFFSET_BITS */
-
-/* Define for large files, on AIX-style hosts. */
-/* #undef H5__LARGE_FILES */
-
-/* Define to empty if `const' does not conform to ANSI C. */
-/* #undef H5_const */
-
-/* Define to `__inline__' or `__inline' if that's what the C compiler
-   calls it, or to nothing if 'inline' is not supported under any name.  */
-#ifndef __cplusplus
-/* #undef H5_inline */
-#endif
-
-/* Define to `long int' if <sys/types.h> does not define. */
-/* #undef H5_off_t */
-
-/* Define to `long' if <sys/types.h> does not define. */
-/* #undef H5_ptrdiff_t */
-
-/* Define to `unsigned long' if <sys/types.h> does not define. */
-/* #undef H5_size_t */
-
-/* Define to `long' if <sys/types.h> does not define. */
-/* #undef H5_ssize_t */
-#define H5_HAVE_FILE_VERSIONS 1
-#define H5_CANNOT_OPEN_TWICE  1
diff --git a/vms/src/make.com b/vms/src/make.com
deleted file mode 100644
index be5efea..0000000
--- a/vms/src/make.com
+++ /dev/null
@@ -1,87 +0,0 @@
-$!#
-$!# 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.
-$!#
-$! Makefile for VMS systems.
-$!
-$! Make HDF5 library
-$!
-$! The next two lines should be uncommented only when building by hand in the
-$! current directory. Use build.com in the vms directory to build 
-$! the distribution. Make sure that location of the zlib library is correct.
-$!
-$! define zlib_dir sys$sysusers:[pourmal.zlib-1_2_3]
-$! ccopt = "/float=ieee_float/define=H5_VMS/include=zlib_dir"
-$ ccc := cc 'ccopt 
-$ ccc h5detect.c
-$ link h5detect
-$ type sys$input
-        Running h5detect to create h5tinit.c
-$ define/user_mode sys$output h5tinit.c
-$ run h5detect
-$!
-$ ccc h5make_libsettings.c
-$ link h5make_libsettings
-$ type sys$input
-        Running h5make_libsettings to create H5lib_settings.h
-$ define/user_mode sys$output H5lib_settings.h
-$ run h5make_libsettings
-$!
-$ type sys$input
-         Creating  HDF5 library
-$!
-$ cobj= "H5, H5checksum, H5dbg, H5system, H5timer, H5trace,"+-
-        "H5Abtree2, H5A, H5AC, H5Adense, H5Adeprec, H5Aint, H5Atest,"+-
-        "H5B2, H5B2cache, H5B2dbg, H5B2hdr, H5B2int, H5B2stat, H5B2test, H5B, H5Bcache, H5Bdbg,"+-
-        "H5C, H5CS,"+-
-        "H5Dbtree, H5D, H5Dchunk, H5Dcompact, H5Dcontig, H5Ddbg, H5Ddeprec, H5Defl, H5Dfill,"+-
-        "H5Dint, H5Dio, H5Dlayout, H5Dmpio, H5Doh, H5Dscatgath, H5Dselect, H5Dtest,"+-
-        "H5E, H5Edeprec, H5Eint,"+-
-        "H5Faccum, H5F, H5Fcwfs, H5Fdbg, H5FD, H5FDcore,"+-
-        "H5FDdirect, H5FDfamily, H5FDint, H5FDlog, H5FDmpi, H5FDmpio,"+-
-        "H5FDmulti, H5FDsec2, H5FDspace, H5FDstdio,"+-
-        "H5FDwindows, H5Fefc, H5Ffake, H5Fio, H5FL, H5Fmount, H5Fmpi, H5FO, H5Fquery, H5FS, "+-
-        "H5FScache, H5FSdbg, H5Fsfile, H5FSsection, H5FSstat, H5FStest, H5Fsuper, H5Fsuper_cache, H5Ftest,"+-
-        "H5Gbtree2, H5G, H5Gcache, H5Gcompact, H5Gdense, H5Gdeprec, H5Gent, H5Gint,"+-
-        "H5Glink, H5Gloc, H5Gname, H5Gnode, H5Gobj, H5Goh, H5Groot, H5Gstab, H5Gtest, H5Gtraverse,"+-
-        "H5HFbtree2, H5HF, H5HFcache, H5HFdbg, H5HFdblock, H5HFdtable, H5HFhdr, H5HFhuge,"+-
-        "H5HFiblock, H5HFiter, H5HFman, H5HFsection, H5HFspace, H5HFstat, H5HFtest, H5HFtiny,"+-
-        "H5HG, H5HGcache, H5HGdbg, H5HGquery, H5HL, H5HLcache, H5HLdbg, H5HLint, H5HP, H5I, H5Itest, H5L, H5Lexternal"
-$ cobj1= "H5MFaggr, H5MF, H5MFdbg, H5MFsection, H5MM, H5MP, H5MPtest,"+-
-        "H5Oainfo, H5Oalloc, H5Oattr, H5Oattribute,"+-
-        "H5Obogus, H5Obtreek, H5O, H5Ocache, H5Ochunk, H5Ocont, H5Ocopy, H5Odbg, H5Odrvinfo,"+-
-        "H5Odtype, H5Oefl, H5Ofill, H5Oginfo, H5Olayout,"+-
-        "H5Olinfo, H5Olink, H5Omessage, H5Omtime"
-$ cobj2= "H5Oname, H5Onull, H5Opline, H5Orefcount, H5Osdspace, H5Oshared, H5Oshmesg,"+-
-        "H5Ostab, H5Otest, H5Ounknown,"+-
-        "H5Pacpl, H5P, H5Pdapl, H5Pdcpl, H5Pdeprec, H5Pdxpl, H5Pfapl, H5Pfcpl, H5Pfmpl,"+-
-        "H5Pgcpl, H5Pint, H5Plapl, H5Plcpl, H5Pocpl, H5Pocpypl, H5Pstrcpl, H5Ptest,"+-
-        "H5R, H5RC, H5Rdeprec, H5RS,"+-
-        "H5Sall, H5S, H5Sdbg, H5Shyper, H5SL, H5SMbtree2, H5SM, H5SMcache, H5SMmessage, H5Smpio,"+- 
-        "H5SMtest,H5Snone, H5Spoint, H5Sselect, H5ST, H5Stest,"+-
-        "H5Tarray, H5Tbit, H5T, H5Tcommit,"+-
-        "H5Tcompound, H5Tconv, H5Tcset, H5Tdbg, H5Tdeprec, H5Tenum, H5Tfields, H5Tfixed,"+-
-        "H5Tfloat, H5Tinit, H5Tnative, H5Toffset, H5Toh, H5Topaque, H5Torder,"+-
-        "H5Tpad, H5Tprecis, H5TS, H5Tstrpad, H5Tvisit, H5Tvlen, H5V, H5WB, H5Z,"+-
-        "H5Zdeflate, H5Zfletcher32, H5Znbit, H5Zscaleoffset, H5Zshuffle, H5Zszip, H5Ztrans"
-$!
-$ ccc 'cobj
-$ ccc 'cobj1
-$ ccc 'cobj2 
-$ library/create []hdf5
-$ library/insert []hdf5 'cobj
-$ library/insert []hdf5 'cobj1
-$ library/insert []hdf5 'cobj2
-$ type sys$input
-	Done
-$!
diff --git a/vms/test/H5srcdir_str.h b/vms/test/H5srcdir_str.h
deleted file mode 100644
index 2eb1a39..0000000
--- a/vms/test/H5srcdir_str.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * 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.     *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-/* If you are reading this file and it has a '.h' suffix, it was automatically
- * generated from the '.in' version.  Make changes there. But for OpenVMS, this
- * file is created by hand.
- */
-
-/* Set the 'srcdir' path from configure time */
-static const char *config_srcdir = "[-.test]";
diff --git a/vms/test/check.com b/vms/test/check.com
deleted file mode 100644
index a0145c3..0000000
--- a/vms/test/check.com
+++ /dev/null
@@ -1,253 +0,0 @@
-$!#
-$!# 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.
-$!#
-$! Makefile for VMS systems.
-$!
-$! Run HDF5 C tests
-$!
-$ type sys$input
-       Running tests
-$! define sys$output check_vms.out
-$ 
-$ type sys$input
--------			Running testhdf5 	-------
-$ run  testhdf5
-$ type sys$input
-
-$ type sys$input
--------			Running accum     	-------
-$ run  accum
-$ type sys$input
-
-$ type sys$input
--------			Running app_ref    	-------
-$ run  app_ref 
-$ type sys$input
-
-$ type sys$input
--------			Running big     	-------
-$ run  big
-$ type sys$input
-
-$ type sys$input
--------			Running bittests    	-------
-$ run  bittests
-$ type sys$input
-
-$ type sys$input
--------			Running btree2    	-------
-$ run  btree2
-$ type sys$input
-
-$ type sys$input
--------			Running cache_api   	-------
-$ run  cache_api
-$ type sys$input
-
-$ type sys$input
--------			Running cache   	-------
-$ run  cache
-$ type sys$input
-
-$ type sys$input
--------			Running cmpd_dset    	-------
-$ run  cmpd_dset
-$ type sys$input
-
-$ type sys$input
--------			Running cross_read     	-------
-$ run  cross_read
-$ type sys$input
-
-$ type sys$input
--------			Running dangle     	-------
-$ run  dangle
-$ type sys$input
-
-$ type sys$input
--------			Running dsets   	-------
-$ run  dsets
-$ type sys$input
-
-$ type sys$input
--------			Running dt_arith    	-------
-$ run  dt_arith
-$ type sys$input
-
-$ type sys$input
--------			Running dtransform     	-------
-$ run  dtransform
-$ type sys$input
-
-$ type sys$input
--------			Running dtypes    	-------
-$ run  dtypes
-$ type sys$input
-
-$! Skip this test for now because it opens the same file many times.
-$! Please see Issue 7620 in Jira about it.
-$! type sys$input
-$! -------                 Running efc             -------
-$! run  efc
-$! type sys$input
-
-$ type sys$input
--------			Running enum     	-------
-$ run  enum
-$ type sys$input
-
-$ type sys$input
--------			Running extend    	-------
-$ run  extend
-$ type sys$input
-
-$ type sys$input
--------			Running external    	-------
-$ run  external
-$ type sys$input
-
-$ type sys$input
--------			Running fheap    	-------
-$ run  fheap
-$ type sys$input
-
-$ type sys$input
--------			Running fillval     	-------
-$ run  fillval
-$ type sys$input
-
-$ type sys$input
--------			Running filter_fail    	-------
-$ run  filter_fail
-$ type sys$input
-
-$ type sys$input
--------			Running flush1     	-------
-$ run  flush1
-$ type sys$input
-
-$ type sys$input
--------			Running flush2     	-------
-$ run  flush2
-$ type sys$input
-
-$ type sys$input
--------			Running freespace     	-------
-$ run  freespace
-$ type sys$input
-
-$ type sys$input
--------			Running getname     	-------
-$ run  getname
-$ type sys$input
-
-$ type sys$input
--------			Running gheap    	-------
-$ run  gheap
-$ type sys$input
-
-$ type sys$input
--------			Running hyperslab    	-------
-$ run  hyperslab
-$ type sys$input
-
-$ type sys$input
--------			Running istore    	-------
-$ run  istore
-$ type sys$input
-
-$ type sys$input
--------			Running lheap    	-------
-$ run  lheap
-$ type sys$input
-
-$ type sys$input
--------			Running links    	-------
-$ run  links
-$ type sys$input
-
-$! Skip this test for now because it needs a script file to run the test
-$! Please see Issue VMS-2 in Jira about it.
-$! type sys$input
-$! -------			Running links_env    	-------
-$! run  links_env
-$! type sys$input
-
-$ type sys$input
--------			Running mf    	-------
-$ run  mf
-$ type sys$input
-
-$ type sys$input
--------			Running mount     	-------
-$ run  mount
-$ type sys$input
-
-$ type sys$input
--------			Running mtime    	-------
-$ run  mtime 
-$ type sys$input
-
-$ type sys$input
--------			Running ntypes     	-------
-$ run  ntypes
-$ type sys$input
-
-$ type sys$input
--------			Running objcopy    	-------
-$ run  objcopy 
-$ type sys$input
-
-$ type sys$input
--------			Running ohdr    	-------
-$ run  ohdr 
-$ type sys$input
-
-$ type sys$input
--------			Running pool    	-------
-$ run  pool
-$ type sys$input
-
-$ type sys$input
--------			Running reserved     	-------
-$ run  reserved
-$ type sys$input
-
-$ type sys$input
--------			Running set_extent     	-------
-$ run  set_extent
-$ type sys$input
-
-$ type sys$input
--------			Running stab    	-------
-$ run  stab
-$ type sys$input
-
-$ type sys$input
--------			Running testmeta    	-------
-$ run  testmeta
-$ type sys$input
-
-$ type sys$input
--------			Running unlink    	-------
-$ run  unlink
-$ type sys$input
-
-$ type sys$input
--------			Running vfd     	-------
-$ run  vfd
-$ type sys$input
-
--------			Testing completed       -------
-$ exit 
diff --git a/vms/test/make.com b/vms/test/make.com
deleted file mode 100644
index 562260a..0000000
--- a/vms/test/make.com
+++ /dev/null
@@ -1,338 +0,0 @@
-$!#
-$!# 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.
-$!#
-$! Makefile for VMS systems.
-$!
-$! Make HDF5 library tests
-$!
-$! The next two lines should be uncommented only when building by hand in the
-$! current directory. Use build.com in the vms directory to build
-$! the distribution. Make sure that location of the zlib library is correct.
-$! define zlib_dir sys$sysusers:[pourmal.zlib-1_2_3]
-$! ccopt = "/float=ieee_float/define=H5_VMS/include=zlib_dir"
-$!
-$ ccc := cc 'ccopt /include=([-.src])
-$ type sys$input
- 	Creating  testhdf5
-$!
-$ cobj= "h5test.c, testframe.c, testhdf5.c, tarray.c, tattr.c, tcheck_version.c, tchecksum.c,"+-
-        "tconfig.c, tcoords.c, tfile.c, tgenprop.c, th5o.c, th5s.c, theap.c, tid.c,"+- 
-        "titerate.c, tmeta.c, tmisc.c, trefer.c, trefstr.c, tselect.c, tskiplist.c,"+- 
-        "tsohm.c, ttime.c, ttst.c, tunicode.c, tvlstr.c, tvltypes.c, cache_common.c"
-$!                              
-$ ccc 'cobj 
-$ library/create/replace []libh5test h5test, testframe, cache_common
-$ type sys$input
-       Creating libh5test
-$ link     testhdf5,tarray,tattr,tcheck_version,tchecksum,tconfig, -
-           tcoords,tfile,tgenprop,th5o,th5s,theap,tid,titerate, -
-           tmeta,tmisc,trefer,trefstr, -
-           tselect,tskiplist,tsohm,ttime,ttst,tunicode,tvlstr,tvltypes, -
-           libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$
-$! a new test
-$ type sys$input
-       Creating accum test
-$ ccc  accum
-$ link accum, -
-       libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!
-$ type sys$input
-       Creating app_ref test
-$ ccc  app_ref
-$ link app_ref, -
-       libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!
-$ type sys$input
-       Creating big test
-$ ccc  big
-$ link big, -
-       libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!
-$ type sys$input
-       Creating bittests test
-$ ccc  bittests
-$ link bittests, -
-       libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!
-$ type sys$input
-       Creating btree2 test
-$ ccc  btree2
-$ link btree2, -
-       libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!
-$ type sys$input
-       Creating cache_api test
-$ ccc  cache_api
-$ link cache_api, -
-       libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!
-$ type sys$input
-       Creating cache test
-$ ccc  cache
-$ link cache, -
-       libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!
-$ type sys$input
-       Creating cmpd_dset test
-$ ccc  cmpd_dset
-$ link cmpd_dset, -
-       libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!
-$ type sys$input
-       Creating cross_read test
-$ ccc  cross_read
-$ link cross_read, -
-       libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!
-$ type sys$input
-       Creating dangle test
-$ ccc  dangle 
-$ link dangle, -
-       libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!
-$ type sys$input
-       Creating dsets tests
-$ ccc  dsets 
-$ link dsets, -
-       libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!
-$ type sys$input
-       Creating dt_arith test
-$ ccc  dt_arith
-$ link dt_arith, -
-       libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!
-$ type sys$input
-       Creating dtransform test
-$ ccc  dtransform
-$ link dtransform, -
-       libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!
-$ type sys$input
-       Creating dtypes test
-$ ccc  dtypes 
-$ link dtypes, -
-       libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!
-$ type sys$input
-       Creating efc test
-$ ccc  efc
-$ link efc, -
-       libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!
-$ type sys$input
-       Creating enum test
-$ ccc  enum
-$ link enum, -
-       libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!
-$ type sys$input
-       Creating err_compat test
-$ ccc  err_compat 
-$ link err_compat, -
-       libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!
-$ type sys$input
-       Creating error_test test
-$ ccc  error_test 
-$ link error_test, -
-       libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!
-$ type sys$input
-       Creating extend test
-$ ccc  extend
-$ link extend, -
-       libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!
-$ type sys$input
-       Creating external test
-$ ccc  external
-$ link external, -
-       libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!
-$ type sys$input
-       Creating fheap test
-$ ccc  fheap
-$ link fheap, -
-       libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!
-$ type sys$input
-       Creating file_image test
-$ ccc  file_image
-$ link file_image, -
-       libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!
-$ type sys$input
-       Creating fillval test
-$ ccc  fillval
-$ link fillval, -
-       libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!
-$! a new test
-$ type sys$input
-       Creating filter_fail test
-$ ccc  filter_fail
-$ link filter_fail, -
-       libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!
-$ type sys$input
-       Creating flush1 test
-$ ccc  flush1
-$ link flush1, -
-       libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!
-$ type sys$input
-       Creating flush2 test
-$ ccc  flush2
-$ link flush2, -
-       libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!
-$ type sys$input
-       Creating freespace test
-$ ccc  freespace
-$ link freespace, -
-       libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!
-$ type sys$input
-       Creating getname test
-$ ccc  getname
-$ link getname, -
-       libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!
-$ type sys$input
-       Creating gheap test
-$ ccc  gheap
-$ link gheap, -
-       libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!
-$ type sys$input
-       Creating hyperslab test
-$ ccc  hyperslab
-$ link hyperslab, -
-       libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!
-$ type sys$input
-       Creating istore test
-$ ccc  istore 
-$ link istore, -
-       libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!
-$ type sys$input
-       Creating lheap test
-$ ccc  lheap
-$ link lheap, -
-       libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!
-$ type sys$input
-       Creating links test
-$ ccc  links
-$ link links, -
-       libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!
-$! a new test
-$ type sys$input
-       Creating links_env test
-$ ccc  links_env
-$ link links_env, -
-       libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!
-$ type sys$input
-       Creating mf test
-$ ccc  mf 
-$ link mf, -
-       libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!
-$ type sys$input
-       Creating mount test
-$ ccc  mount
-$ link mount, -
-       libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!
-$ type sys$input
-       Creating mtime test
-$ ccc  mtime
-$ link mtime, -
-       libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!
-$ type sys$input
-       Creating ntypes test
-$ ccc  ntypes
-$ link ntypes, -
-       libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!
-$ type sys$input
-       Creating objcopy test
-$ ccc  objcopy
-$ link objcopy, -
-       libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!
-$ type sys$input
-       Creating ohdr test
-$ ccc  ohdr
-$ link ohdr, -
-       libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!
-$ type sys$input
-       Creating pool test
-$ ccc  pool 
-$ link pool, -
-       libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!
-$ type sys$input
-       Creating reserved test
-$ ccc  reserved
-$ link reserved, -
-       libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!
-$ type sys$input
-       Creating set_extent test
-$ ccc  set_extent
-$ link set_extent, -
-       libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!
-$ type sys$input
-       Creating stab test
-$ ccc  stab
-$ link stab, -
-       libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!
-$! a new test
-$ type sys$input
-       Creating testmeta test
-$ ccc  testmeta
-$ link testmeta, -
-       libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!
-$ type sys$input
-       Creating unlink test
-$ ccc  unlink
-$ link unlink, -
-       libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!
-$ type sys$input
-       Creating unregister test
-$ ccc  unregister
-$ link unregister, -
-       libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!
-$ type sys$input
-       Creating vfd test
-$ ccc  vfd
-$ link vfd, -
-       libh5test.olb/lib,[-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$!
-$ type sys$input
-       Done with tests compilation
-$ exit 
diff --git a/vms/tools/h5copy/check_h5copy.com b/vms/tools/h5copy/check_h5copy.com
deleted file mode 100644
index df83c88..0000000
--- a/vms/tools/h5copy/check_h5copy.com
+++ /dev/null
@@ -1,110 +0,0 @@
-$!#
-$!# 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 command file tests h5copy utility. The command file has to
-$ ! run in the [hdf5-top.tools.h5copy.testfiles] directory.
-$ !
-$ type sys$input
-
-===================================
-       Testing h5copy utiltity
-===================================
-
-$ !
-$ ! Define h5copy symbols
-$ !
-$ current_dir = F$DIRECTRY()
-$ len = F$LENGTH(current_dir)
-$ temp = F$EXTRACT(0, len-11, current_dir)
-$ h5copy_dir = temp + "]"
-$ h5copy :== $sys$disk:'h5copy_dir'h5copy.exe
-$ !
-$ !
-$ ! h5copy tests
-$ !
-$
-
-$ !# copy files 
-$ write sys$output "Test copying various forms of datasets"
-$ CALL TOOLTEST "-i h5copytst.h5 -o out.h5 -v -s simple -d simple"
-$ CALL TOOLTEST "-i h5copytst.h5 -o out.h5 -v -s chunk      -d chunk"
-$ CALL TOOLTEST "-i h5copytst.h5 -o out.h5 -v -s compact    -d compact"
-$ CALL TOOLTEST "-i h5copytst.h5 -o out.h5 -v -s compound   -d compound"
-$ CALL TOOLTEST "-i h5copytst.h5 -o out.h5 -v -s compressed -d compressed"
-$ CALL TOOLTEST "-i h5copytst.h5 -o out.h5 -v -s named_vl   -d named_vl"
-$ CALL TOOLTEST "-i h5copytst.h5 -o out.h5 -v -s nested_vl  -d nested_vl"
-$ !
-$ write sys$output " "
-$ write sys$output "Test copying dataset within group in source file to root of destination"
-$ CALL TOOLTEST "-i h5copytst.h5 -o out.h5 -v -s grp_dsets/simple  -d simple_top"
-$ write sys$output " "
-$ write sys$output "Test copying & renaming dataset"
-$ CALL TOOLTEST "-i h5copytst.h5 -o out.h5 -v -s compound   -d rename"
-$!
-$ write sys$output " "
-$ write sys$output "Test copying empty, 'full' & 'nested' groups"
-$ CALL TOOLTEST "-i h5copytst.h5 -o out.h5 -v -s grp_empty  -d grp_empty"
-$ CALL TOOLTEST "-i h5copytst.h5 -o out.h5 -v -s grp_dsets  -d grp_dsets"
-$ CALL TOOLTEST "-i h5copytst.h5 -o out.h5 -v -s grp_nested -d grp_nested"
-$!
-$ write sys$output " "
-$ write sys$output "Test copying dataset within group in source file to group in destination"
-$ CALL TOOLTEST "-i h5copytst.h5 -o out.h5 -v -s /grp_dsets/simple  -d /grp_dsets/simple_group"
-$! write sys$output  "Test copying & renaming group"
-$! CALL TOOLTEST_FAIL "-i h5copytst.h5 -o out.h5 -v -s grp_dsets  -d grp_rename
-$! write sys$output  "Test copying full group hierarchy into group in destination file"
-$! CALL TOOLTEST_FAIL "-i h5copytst.h5 -o out.h5 -v -s grp_dsets  -d /grp_rename/grp_dsets"
-$!
-$ write sys$output " "
-$ write sys$output "Test copying objects into group hier. that doesn't exist yet in destination file"
-$ CALL TOOLTEST "-i h5copytst.h5 -o out.h5 -vp -s simple -d /A/B1/simple"
-$ CALL TOOLTEST "-i h5copytst.h5 -o out.h5 -vp -s simple -d /A/B2/simple2"
-$ CALL TOOLTEST "-i h5copytst.h5 -o out.h5 -vp -s /grp_dsets/simple -d /C/D/simple"
-$!CALL TOOLTEST_FAIL "-i h5copytst.h5 -o out.h5 -vp -s /grp_dsets -d /E/F/grp_dsets"
-$!CALL TOOLTEST_FAIL "-i h5copytst.h5 -o out.h5 -vp -s /grp_nested -d /G/H/grp_nested"
-$!
-$ del *out.h5;*
-$ !
-$TOOLTEST: SUBROUTINE
-
-$
-$ begin = "Testing h5copy"
-$ !
-$ ! Run the test and save output in the 'actual' file
-$ !
-$ define/nolog sys$error  h5copy_temp.err
-$ ON ERROR THEN CONTINUE
-$ h5copy 'P1 
-$ deassign sys$error
-$ if F$SEARCH("h5copy_temp.err") .EQS. "" 
-$ then
-$    result = "PASSED"
-$    line = F$FAO("!16AS !53AS !70AS", begin, P1, result) 
-$ else
-$    result = "*FAILED*"
-$    line = F$FAO("!16AS !52AS !69AS", begin, P1, result) 
-$ endif
-$ !
-$ ! Delete error file if any print test result
-$ !
-$ if F$SEARCH ("*.err;*") .NES. ""
-$ then
-$     del *.err;*
-$ endif
-$ !
-$  write sys$output line
-$ !
-$ENDSUBROUTINE
diff --git a/vms/tools/h5copy/make.com b/vms/tools/h5copy/make.com
deleted file mode 100644
index 1a95f58..0000000
--- a/vms/tools/h5copy/make.com
+++ /dev/null
@@ -1,40 +0,0 @@
-$!#
-$!# 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.
-$!#
-$! Makefile for VMS systems.
-$!
-$! Make h5copy tool 
-$!
-$! The next two lines should be uncommented only when building by hand in the
-$! current directory. Use build.com in the vms directory to build
-$! the distribution. Make sure that location of the zlib library is correct.
-$! define zlib_dir sys$sysusers:[pourmal.zlib-1_2_3]
-$! ccopt = "/float=ieee_float/define=H5_VMS/include=zlib_dir"
-$
-$ ccc := cc 'ccopt /include=([-.-.src], [-.lib], [-.-.test])
-$ type sys$input
-    	Creating h5copy
-$!
-$ cobj= " h5copy " 
-$!                               
-$ ccc 'cobj 
-$ type sys$input
-$ link/exe=h5copy.exe -
-           h5copy, -
-           [-.lib]libh5tools.olb/lib,[-.-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib 
-$ type sys$input
-	Created  h5copy
-$!
-$!
-$ exit
diff --git a/vms/tools/h5diff/check_h5diff.com b/vms/tools/h5diff/check_h5diff.com
deleted file mode 100644
index bb67d58..0000000
--- a/vms/tools/h5diff/check_h5diff.com
+++ /dev/null
@@ -1,658 +0,0 @@
-$!#
-$!# 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 command file tests h5diff utility. The command file has to
-$ ! run in the [hdf5-top.tools.h5diff.testfiles] directory.
-$ !
-$ !
-$ type sys$input
-
-===================================
-       Testing h5diff utiltity
-===================================
-
-$ ! Define h5diff symbol
-$ !
-$! set message/notext/nofacility/noidentification/noseverity
-$ current_dir = F$DIRECTRY()
-$ len = F$LENGTH(current_dir)
-$ temp = F$EXTRACT(0, len-11, current_dir)
-$ h5diff_dir = temp + "]"
-$ h5diff :== $sys$disk:'h5diff_dir'h5diff.exe
-$ !
-
-$ !
-$ ! h5diff tests
-$ !
-$
-$!# 1.0
-$ CALL TOOLTEST h5diff_10.txt "-h"
-$!
-$!# 1.1 normal mode
-$ CALL TOOLTEST h5diff_11.txt  "h5diff_basic1.h5 h5diff_basic2.h5" 
-$!
-$!# 1.2 normal mode with objects
-$ CALL TOOLTEST h5diff_12.txt  "h5diff_basic1.h5 h5diff_basic2.h5  g1/dset1 g1/dset2"
-$!
-$!# 1.3 report mode
-$ CALL TOOLTEST h5diff_13.txt "-r h5diff_basic1.h5 h5diff_basic2.h5"
-$!
-$!# 1.4 report  mode with objects
-$ CALL TOOLTEST h5diff_14.txt  "-r h5diff_basic1.h5 h5diff_basic2.h5 g1/dset1 g1/dset2"
-$!
-$!# 1.5 with -d
-$ CALL TOOLTEST h5diff_15.txt " --report --delta=5 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4"
-$!
-$!# 1.6.1 with -p (int)
-$ CALL TOOLTEST h5diff_16_1.txt "-v -p """0.02""" h5diff_basic1.h5 h5diff_basic1.h5 g1/dset5 g1/dset6"
-$!
-$!# 1.6.2 with -p (unsigned long long)
-$ CALL TOOLTEST h5diff_16_2.txt "--verbose --relative=0.02 h5diff_basic1.h5 h5diff_basic1.h5 g1/dset7 g1/dset8"
-$!
-$!# 1.6.3 with -p (double)
-$ CALL TOOLTEST h5diff_16_3.txt "-v -p """0.02""" h5diff_basic1.h5 h5diff_basic1.h5 g1/dset9 g1/dset10"
-$!
-$!# 1.7 verbose mode
-$ CALL TOOLTEST h5diff_17.txt "-v h5diff_basic1.h5 h5diff_basic2.h5"  
-$!
-$!# 1.7 test 32-bit INFINITY
-$ CALL TOOLTEST h5diff_171.txt "-v h5diff_basic1.h5 h5diff_basic1.h5 /g1/fp19 /g1/fp19_"""COPY""""
-$!    
-$!# 1.7 test 64-bit INFINITY
-$ CALL TOOLTEST h5diff_172.txt "-v h5diff_basic1.h5 h5diff_basic1.h5 /g1/fp20 /g1/fp20_"""COPY""""
-$!    
-$!# 1.8 quiet mode 
-$ CALL TOOLTEST h5diff_18.txt "-q h5diff_basic1.h5 h5diff_basic2.h5"
-$!
-$!# 1.8 -v and -q
-$ CALL TOOLTEST h5diff_18_1.txt "-v -q h5diff_basic1.h5 h5diff_basic2.h5"
-$!
-$!
-$!# ##############################################################################
-$!# # not comparable types
-$!# ##############################################################################
-$!
-$!# 2.0
-$ CALL TOOLTEST h5diff_20.txt "-v h5diff_types.h5 h5diff_types.h5 dset g1"
-$
-$!# 2.1
-$ CALL TOOLTEST h5diff_21.txt "-v h5diff_types.h5 h5diff_types.h5 dset l1"
-$!
-$!# 2.2
-$ CALL TOOLTEST h5diff_22.txt "-v h5diff_types.h5 h5diff_types.h5 dset t1"
-$!
-$!# ##############################################################################
-$!# # compare groups, types, links (no differences and differences)
-$!# ##############################################################################
-$!
-$!# 2.3
-$ CALL TOOLTEST h5diff_23.txt "-v h5diff_types.h5 h5diff_types.h5 g1 g1"
-$!
-$!# 2.4
-$ CALL TOOLTEST h5diff_24.txt "-v h5diff_types.h5 h5diff_types.h5 t1 t1"
-$!
-$!# 2.5
-$ CALL TOOLTEST h5diff_25.txt "-v h5diff_types.h5 h5diff_types.h5 l1 l1" 
-$!
-$!# 2.6
-$ CALL TOOLTEST h5diff_26.txt "-v h5diff_types.h5 h5diff_types.h5 g1 g2"
-$!
-$!# 2.7
-$ CALL TOOLTEST h5diff_27.txt "-v h5diff_types.h5 h5diff_types.h5 t1 t2"
-$!
-$!# 2.8
-$ CALL TOOLTEST h5diff_28.txt "-v h5diff_types.h5 h5diff_types.h5 l1 l2"
-$!
-$!# ##############################################################################
-$!# # Enum value tests (may become more comprehensive in the future)
-$!# ##############################################################################
-$!# 3.0
-$!# test enum types which may have invalid values
-$CALL TOOLTEST h5diff_30.txt "-v h5diff_enum_invalid_values.h5 h5diff_enum_invalid_values.h5 dset1 dset2"
-$!
-$!# ##############################################################################
-$!# # Dataset types
-$!# ##############################################################################
-$
-$!# 5.0
-$ CALL TOOLTEST h5diff_50.txt "-v h5diff_dtypes.h5 h5diff_dtypes.h5 dset0a dset0b"
-$!
-$!# 5.1
-$ CALL TOOLTEST h5diff_51.txt "-v h5diff_dtypes.h5 h5diff_dtypes.h5 dset1a dset1b"
-$!
-$!# 5.2
-$ CALL TOOLTEST h5diff_52.txt "-v h5diff_dtypes.h5 h5diff_dtypes.h5 dset2a dset2b"
-$!
-$!# 5.3
-$ CALL TOOLTEST h5diff_53.txt "-v h5diff_dtypes.h5 h5diff_dtypes.h5 dset3a dset4b"
-$!
-$!# 5.4
-$ CALL TOOLTEST h5diff_54.txt "-v h5diff_dtypes.h5 h5diff_dtypes.h5 dset4a dset4b"
-$!
-$!# 5.5
-$ CALL TOOLTEST h5diff_55.txt "-v h5diff_dtypes.h5 h5diff_dtypes.h5 dset5a dset5b"
-$!
-$!# 5.6
-$ CALL TOOLTEST h5diff_56.txt "-v h5diff_dtypes.h5 h5diff_dtypes.h5 dset6a dset6b"
-$!
-$!# 5.7
-$ CALL TOOLTEST h5diff_57.txt "-v h5diff_dtypes.h5 h5diff_dtypes.h5 dset7a dset7b"
-$!
-$!# 5.8 (region reference)
-$ CALL TOOLTEST h5diff_58.txt "-v h5diff_dset1.h5 h5diff_dset2.h5 refreg"
-$!
-$!# 5.9 (test for both dset and attr with same type but with different size"
-$ CALL TOOLTEST h5diff_59.txt "-v h5diff_dtypes.h5 h5diff_dtypes.h5 dset11a dset11b"
-$!
-$!# ##############################################################################
-$!# # Error messages
-$!# ##############################################################################
-$!
-$!
-$!# 6.0: Check if the command line number of arguments is less than 3
-$ CALL TOOLTEST h5diff_600.txt "h5diff_basic1.h5" 
-$!
-$!# 6.1: Check if non-exist object name is specified 
-$ CALL TOOLTEST h5diff_601.txt "h5diff_basic1.h5 h5diff_basic1.h5 nono_obj"
-$!
-$!# ##############################################################################
-$!# # -d 
-$!# ##############################################################################
-$!
-$!
-$!# 6.3: negative value
-$ CALL TOOLTEST h5diff_603.txt "-d -4 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4"
-$!
-$!# 6.4: zero
-$ CALL TOOLTEST h5diff_604.txt "-d 0 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4"
-$!
-$!# 6.5: non number
-$ CALL TOOLTEST h5diff_605.txt "-d u h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4"
-$!
-$!# 6.6: hexadecimal
-$ CALL TOOLTEST h5diff_606.txt "-d 0x1 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4"
-$!
-$!# 6.7: string
-$ CALL TOOLTEST h5diff_607.txt "-d """1""" h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4"
-$!
-$!# 6.8: repeated option
-$ CALL TOOLTEST h5diff_608.txt "-d 1 -d 2 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4"
-$!
-$!# 6.9: number larger than biggest difference
-$ CALL TOOLTEST h5diff_609.txt "-d 200 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4"
-$!
-$!# 6.10: number smaller than smallest difference
-$ CALL TOOLTEST h5diff_610.txt "-d 1 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4"
-$!
-$!
-$!# ##############################################################################
-$!# # -p
-$!# ##############################################################################
-$!
-$!
-$!
-$!# 6.12: negative value
-$ CALL TOOLTEST h5diff_612.txt "-p -4 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4"
-$!
-$!# 6.13: zero
-$ CALL TOOLTEST h5diff_613.txt "-p 0 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4"
-$!
-$!# 6.14: non number
-$ CALL TOOLTEST h5diff_614.txt "-p u h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4"
-$!
-$!# 6.15: hexadecimal
-$ CALL TOOLTEST h5diff_615.txt "-p 0x1 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4"
-$!
-$!# 6.16: string
-$! CALL TOOLTEST h5diff_616.txt "-p """0.21""" h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4"
-$!
-$!# 6.17: repeated option
-$ CALL TOOLTEST h5diff_617.txt "-p """0.21""" -p """0.22""" h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4"
-$!
-$!# 6.18: number larger than biggest difference
-$ CALL TOOLTEST h5diff_618.txt "-p 2 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4"
-$!
-$!# 6.19: number smaller than smallest difference
-$ CALL TOOLTEST h5diff_619.txt "-p """0.005""" h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4"
-$!
-$!
-$!
-$!# ##############################################################################
-$!# # -n
-$!# ##############################################################################
-$!
-$!
-$!
-$!# 6.21: negative value
-$ CALL TOOLTEST h5diff_621.txt "-n -4 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4"
-$!
-$!# 6.22: zero
-$ CALL TOOLTEST h5diff_622.txt "-n 0 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4"
-$!
-$!# 6.23: non number
-$ CALL TOOLTEST h5diff_623.txt "-n u h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4"
-$!
-$!# 6.24: hexadecimal
-$ CALL TOOLTEST h5diff_624.txt "-n 0x1 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4"
-$!
-$!# 6.25: string
-$ CALL TOOLTEST h5diff_625.txt "-n """2""" h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4"
-$!
-$!# 6.26: repeated option
-$ CALL TOOLTEST h5diff_626.txt "-n 2 -n 3 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4"
-$!
-$!# 6.27: number larger than biggest difference
-$ CALL TOOLTEST h5diff_627.txt "--count=200 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4"
-$!
-$!# 6.28: number smaller than smallest difference
-$ CALL TOOLTEST h5diff_628.txt "-n 1 h5diff_basic1.h5 h5diff_basic2.h5 g1/dset3 g1/dset4"
-$!
-$!# ##############################################################################
-$!# 6.29  non valid files
-$!# ##############################################################################
-$! Disable this test as C script does
-$! CALL TOOLTEST h5diff_629.txt "file1.h6 file2.h6"
-$!
-$!# ##############################################################################
-$!# # NaN
-$!# ##############################################################################
-$!# 6.30: test (NaN == NaN) must be true based on our documentation -- XCAO
-$ CALL TOOLTEST h5diff_630.txt "-v -d """0.0001""" h5diff_basic1.h5 h5diff_basic1.h5 g1/fp18 g1/fp18_"""COPY""""
-$ CALL TOOLTEST h5diff_631.txt "-v --use-system-epsilon h5diff_basic1.h5 h5diff_basic1.h5 g1/fp18 g1/fp18_"""COPY""""
-$!
-$!# ##############################################################################
-$!# 7.  attributes
-$!# ##############################################################################
-$!
-$ CALL TOOLTEST h5diff_70.txt "-v h5diff_attr1.h5 h5diff_attr2.h5"
-$!
-$!# ##################################################
-$!#  attrs with verbose option level
-$!# ##################################################
-$!
-$ CALL TOOLTEST h5diff_700.txt "-v1 h5diff_attr1.h5 h5diff_attr2.h5"
-$ CALL TOOLTEST h5diff_701.txt "-v2 h5diff_attr1.h5 h5diff_attr2.h5"
-$ CALL TOOLTEST h5diff_702.txt "--verbose=1 h5diff_attr1.h5 h5diff_attr2.h5"
-$ CALL TOOLTEST h5diff_703.txt "--verbose=2 h5diff_attr1.h5 h5diff_attr2.h5"
-$!
-$!# same attr number , all same attr name
-$ CALL TOOLTEST h5diff_704.txt "-v2 h5diff_attr_v_level1.h5 h5diff_attr_v_level2.h5 /g"
-$!
-$!# same attr number , some same attr name
-$ CALL TOOLTEST h5diff_705.txt "-v2 h5diff_attr_v_level1.h5 h5diff_attr_v_level2.h5 /dset"
-$!
-$!# same attr number , all different attr name
-$ CALL TOOLTEST h5diff_706.txt "-v2 h5diff_attr_v_level1.h5 h5diff_attr_v_level2.h5 /ntype"
-$!
-$!# different attr number , same attr name (intersected)
-$ CALL TOOLTEST h5diff_707.txt "-v2 h5diff_attr_v_level1.h5 h5diff_attr_v_level2.h5 /g2"
-$!
-$!# different attr number , all different attr name 
-$ CALL TOOLTEST h5diff_708.txt "-v2 h5diff_attr_v_level1.h5 h5diff_attr_v_level2.h5 /g3"
-$!
-$!# when no attributes exist in both objects
-$ CALL TOOLTEST h5diff_709.txt "-v2 h5diff_attr_v_level1.h5 h5diff_attr_v_level2.h5 /g4"
-$!
-$!# file vs file
-$ CALL TOOLTEST h5diff_710.txt "-v2 h5diff_attr_v_level1.h5 h5diff_attr_v_level2.h5"
-$!
-$!# ##############################################################################
-$!# 8.  all dataset datatypes
-$!# ##############################################################################
-$!
-$ CALL TOOLTEST h5diff_80.txt "-v h5diff_dset1.h5 h5diff_dset2.h5"
-$!
-$!# 9. compare a file with itself
-$!
-$ CALL TOOLTEST h5diff_90.txt "-v h5diff_basic2.h5 h5diff_basic2.h5"
-$!
-$! 10. read by hyperslab, print indexes
-$ CALL TOOLTEST h5diff_100.txt "-v h5diff_hyper1.h5 h5diff_hyper2.h5"
-$!
-$! 11. floating point comparison
-$ CALL TOOLTEST h5diff_101.txt "-v h5diff_basic1.h5 h5diff_basic1.h5 g1/d1  g1/d2"
-$ CALL TOOLTEST h5diff_102.txt "-v h5diff_basic1.h5 h5diff_basic1.h5 g1/fp1  g1/fp2"
-$!
-$!# with --use-system-epsilon for double value 
-$ CALL TOOLTEST h5diff_103.txt "-v --use-system-epsilon h5diff_basic1.h5 h5diff_basic1.h5 g1/d1  g1/d2"
-
-$!# with --use-system-epsilon for float value
-$ CALL TOOLTEST h5diff_104.txt "-v --use-system-epsilon h5diff_basic1.h5 h5diff_basic1.h5 g1/fp1 g1/fp2"
-
-
-$!# not comparable -c flag
-$ CALL TOOLTEST h5diff_200.txt "h5diff_basic2.h5 h5diff_basic2.h5 g2/dset1  g2/dset2"
-$ CALL TOOLTEST h5diff_201.txt "-c h5diff_basic2.h5 h5diff_basic2.h5 g2/dset1  g2/dset2"
-$ CALL TOOLTEST h5diff_202.txt "-c h5diff_basic2.h5 h5diff_basic2.h5 g2/dset2  g2/dset3"
-$ CALL TOOLTEST h5diff_203.txt "-c h5diff_basic2.h5 h5diff_basic2.h5 g2/dset3  g2/dset4"
-$ CALL TOOLTEST h5diff_204.txt "-c h5diff_basic2.h5 h5diff_basic2.h5 g2/dset4  g2/dset5"
-$ CALL TOOLTEST h5diff_205.txt "-c h5diff_basic2.h5 h5diff_basic2.h5 g2/dset5  g2/dset6"
-
-$!# not comparable in compound
-$ CALL TOOLTEST h5diff_206.txt "-c h5diff_basic2.h5 h5diff_basic2.h5 g2/dset7  g2/dset8"
-$ CALL TOOLTEST h5diff_207.txt "-c h5diff_basic2.h5 h5diff_basic2.h5 g2/dset8  g2/dset9"
-
-$!# not comparable in dataspace of zero dimension size
-$ CALL TOOLTEST h5diff_208.txt "-c h5diff_dset_zero_dim_size1.h5 h5diff_dset_zero_dim_size2.h5"
-$!
-$!# non-comparable dataset with comparable attribute, and other comparable datasets.
-$!# All the comparables should display differences.
-$ CALL TOOLTEST h5diff_220.txt "-c non_comparables1.h5 non_comparables2.h5 /g1"
-$!
-$!# comparable dataset with non-comparable attribute and other comparable attributes.
-$!# All the comparables should display differences.
-$ CALL TOOLTEST h5diff_221.txt "-c non_comparables1.h5 non_comparables2.h5 /g2"
-$!
-$!# entire file
-$!# All the comparables should display differences.
-$ CALL TOOLTEST h5diff_222.txt "-c non_comparables1.h5 non_comparables2.h5"
-$!
-#!# non-comparable test for common objects (same name) with different object types
-$ CALL TOOLTEST h5diff_223.txt "-c non_comparables1.h5 non_comparables2.h5 /diffobjtypes"
-$!
-#!# swap files
-$ CALL TOOLTEST h5diff_224.txt "-c non_comparables2.h5 non_comparables1.h5 /diffobjtypes"
-$!
-$!# ##############################################################################
-$!# # Links compare without --follow-symlinks nor --no-dangling-links
-$!# ##############################################################################
-$!# test for bug1749
-$ CALL TOOLTEST h5diff_300.txt "-v h5diff_links.h5 h5diff_links.h5 /link_g1 /link_g2"
-$!
-$!# ##############################################################################
-$!# # Links compare with --follow-symlinks Only
-$!# ##############################################################################
-$!# soft links file to file
-$ CALL TOOLTEST h5diff_400.txt "--follow-symlinks -v h5diff_softlinks.h5 h5diff_softlinks.h5"
-$!
-$!# softlink vs dset"
-$ CALL TOOLTEST h5diff_401.txt "--follow-symlinks -v h5diff_softlinks.h5 h5diff_softlinks.h5 /softlink_dset1_1 /target_dset2"
-$!# dset vs softlink"
-$ CALL TOOLTEST h5diff_402.txt "--follow-symlinks -v h5diff_softlinks.h5 h5diff_softlinks.h5 /target_dset2 /softlink_dset1_1"
-$!# softlink vs softlink"
-$ CALL TOOLTEST h5diff_403.txt "--follow-symlinks -v h5diff_softlinks.h5 h5diff_softlinks.h5 /softlink_dset1_1 /softlink_dset2"
-$!# extlink vs extlink (FILE)"
-$ CALL TOOLTEST h5diff_404.txt "--follow-symlinks -v h5diff_extlink_src.h5 h5diff_extlink_src.h5"
-$!
-$!# extlink vs dset"
-$ CALL TOOLTEST h5diff_405.txt "--follow-symlinks -v h5diff_extlink_src.h5 h5diff_extlink_trg.h5 /ext_link_dset1 /target_group2/x_dset"
-$!# dset vs extlink"
-$ CALL TOOLTEST h5diff_406.txt "--follow-symlinks -v h5diff_extlink_trg.h5 h5diff_extlink_src.h5 /target_group2/x_dset /ext_link_dset1"
-$!# extlink vs extlink"
-$ CALL TOOLTEST h5diff_407.txt "--follow-symlinks -v h5diff_extlink_src.h5 h5diff_extlink_src.h5 /ext_link_dset1 /ext_link_dset2"
-$!# softlink vs extlink"
-$ CALL TOOLTEST h5diff_408.txt "--follow-symlinks -v h5diff_softlinks.h5 h5diff_extlink_src.h5 /softlink_dset1_1 /ext_link_dset2"
-$!# extlink vs softlink "
-$ CALL TOOLTEST h5diff_409.txt "--follow-symlinks -v h5diff_extlink_src.h5 h5diff_softlinks.h5 /ext_link_dset2 /softlink_dset1_1"
-$!# linked_softlink vs linked_softlink (FILE)"
-$ CALL TOOLTEST h5diff_410.txt "--follow-symlinks -v h5diff_linked_softlink.h5 h5diff_linked_softlink.h5"
-$!
-$!# dset2 vs linked_softlink_dset1"
-$ CALL TOOLTEST h5diff_411.txt "--follow-symlinks -v h5diff_linked_softlink.h5 h5diff_linked_softlink.h5 /target_dset2 /softlink1_to_slink2"
-$!# linked_softlink_dset1 vs dset2"
-$ CALL TOOLTEST h5diff_412.txt "--follow-symlinks -v h5diff_linked_softlink.h5 h5diff_linked_softlink.h5 /softlink1_to_slink2 /target_dset2"
-$!# linked_softlink_to_dset1 vs linked_softlink_to_dset2"
-$ CALL TOOLTEST h5diff_413.txt "--follow-symlinks -v h5diff_linked_softlink.h5 h5diff_linked_softlink.h5 /softlink1_to_slink2 /softlink2_to_slink2"
-$!# group vs linked_softlink_group1"
-$ CALL TOOLTEST h5diff_414.txt "--follow-symlinks -v h5diff_linked_softlink.h5 h5diff_linked_softlink.h5 /target_group /softlink3_to_slink2"
-$!
-$!# linked_softlink_group1 vs group"
-$ CALL TOOLTEST h5diff_415.txt "--follow-symlinks -v h5diff_linked_softlink.h5 h5diff_linked_softlink.h5 /softlink3_to_slink2 /target_group"
-$!
-$!# linked_softlink_to_group1 vs linked_softlink_to_group2"
-$ CALL TOOLTEST h5diff_416.txt "--follow-symlinks -v h5diff_linked_softlink.h5 h5diff_linked_softlink.h5 /softlink3_to_slink2 /softlink4_to_slink2"
-$!
-$!# non-exist-softlink vs softlink"
-$ CALL TOOLTEST h5diff_417.txt "--follow-symlinks -v h5diff_softlinks.h5 h5diff_softlinks.h5 /softlink_noexist /softlink_dset2"
-$!
-$!# softlink vs non-exist-softlink"
-$ CALL TOOLTEST h5diff_418.txt "--follow-symlinks -v h5diff_softlinks.h5 h5diff_softlinks.h5 /softlink_dset2 /softlink_noexist"
-$!
-$!# non-exist-extlink_file vs extlink"
-$ CALL TOOLTEST h5diff_419.txt "--follow-symlinks -v h5diff_extlink_src.h5 h5diff_extlink_src.h5 /ext_link_noexist2 /ext_link_dset2"
-$!
-$!# exlink vs non-exist-extlink_file"
-$ CALL TOOLTEST h5diff_420.txt "--follow-symlinks -v h5diff_extlink_src.h5 h5diff_extlink_src.h5 /ext_link_dset2 /ext_link_noexist2"
-$!
-$!# extlink vs non-exist-extlink_obj"
-$ CALL TOOLTEST h5diff_421.txt "--follow-symlinks -v h5diff_extlink_src.h5 h5diff_extlink_src.h5 /ext_link_dset2 /ext_link_noexist1"
-$!
-$!# non-exist-extlink_obj vs extlink"
-$ CALL TOOLTEST h5diff_422.txt "--follow-symlinks -v h5diff_extlink_src.h5 h5diff_extlink_src.h5 /ext_link_noexist1 /ext_link_dset2"
-$!
-$!# extlink_to_softlink_to_dset1 vs dset2"
-$ CALL TOOLTEST h5diff_423.txt "--follow-symlinks -v h5diff_ext2softlink_src.h5 h5diff_ext2softlink_trg.h5 /ext_link_to_slink1 /dset2"
-$!
-$!# dset2 vs extlink_to_softlink_to_dset1"
-$ CALL TOOLTEST h5diff_424.txt "--follow-symlinks -v h5diff_ext2softlink_trg.h5 h5diff_ext2softlink_src.h5 /dset2 /ext_link_to_slink1"
-$!
-$!# extlink_to_softlink_to_dset1 vs extlink_to_softlink_to_dset2"
-$ CALL TOOLTEST h5diff_425.txt "--follow-symlinks -v h5diff_ext2softlink_src.h5 h5diff_ext2softlink_src.h5 /ext_link_to_slink1 /ext_link_to_slink2"
-$!
-$!# ##############################################################################
-$!# # Dangling links compare (--follow-symlinks and --no-dangling-links)
-$!# ##############################################################################
-$!# dangling links --follow-symlinks (FILE to FILE)
-$ CALL TOOLTEST h5diff_450.txt  "--follow-symlinks -v h5diff_danglelinks1.h5 h5diff_danglelinks2.h5"
-
-$!# dangling links --follow-symlinks and --no-dangling-links (FILE to FILE)
-$ CALL TOOLTEST h5diff_451.txt  "--follow-symlinks -v --no-dangling-links  h5diff_danglelinks1.h5 h5diff_danglelinks2.h5"
-
-$!# try --no-dangling-links without --follow-symlinks options
-$ CALL TOOLTEST h5diff_452.txt  "--no-dangling-links  h5diff_softlinks.h5 h5diff_softlinks.h5"
-
-$!# dangling link found for soft links (FILE to FILE)
-$ CALL TOOLTEST h5diff_453.txt  "--follow-symlinks -v --no-dangling-links  h5diff_softlinks.h5 h5diff_softlinks.h5"
-
-$!# dangling link found for soft links (obj to obj)
-$ CALL TOOLTEST h5diff_454.txt  "--follow-symlinks -v --no-dangling-links  h5diff_softlinks.h5 h5diff_softlinks.h5 /softlink_dset2 /softlink_noexist" 
-$!# dangling link found for soft links (obj to obj) Both dangle links
-$ CALL TOOLTEST h5diff_455.txt  "--follow-symlinks -v --no-dangling-links  h5diff_softlinks.h5 h5diff_softlinks.h5 /softlink_noexist /softlink_noexist" 
-$!# dangling link found for ext links (FILE to FILE)
-$ CALL TOOLTEST h5diff_456.txt  "--follow-symlinks -v --no-dangling-links  h5diff_extlink_src.h5 h5diff_extlink_src.h5" 
-$!# dangling link found for ext links (obj to obj). target file exist
-$ CALL TOOLTEST h5diff_457.txt  "--follow-symlinks -v --no-dangling-links  h5diff_extlink_src.h5 h5diff_extlink_src.h5 /ext_link_dset1 /ext_link_noexist1" 
-$!# dangling link found for ext links (obj to obj). target file NOT exist
-$ CALL TOOLTEST h5diff_458.txt  "--follow-symlinks -v --no-dangling-links  h5diff_extlink_src.h5 h5diff_extlink_src.h5 /ext_link_dset1 /ext_link_noexist2"  
-$!# dangling link found for ext links (obj to obj). Both dangle links
-$ CALL TOOLTEST h5diff_459.txt  "--follow-symlinks -v --no-dangling-links  h5diff_extlink_src.h5 h5diff_extlink_src.h5 /ext_link_noexist1 /ext_link_noexist2"
-$!
-#!# dangling link --follow-symlinks (obj vs obj)
-$ CALL TOOLTEST h5diff_465.txt  "--follow-symlinks h5diff_danglelinks1.h5 h5diff_danglelinks2.h5 /soft_link1"
-#!# soft dangling vs. soft dangling
-$ CALL TOOLTEST h5diff_466.txt  "--follow-symlinks -v h5diff_danglelinks1.h5 h5diff_danglelinks2.h5 /soft_link1"
-#!# soft link  vs. soft dangling
-$ CALL TOOLTEST h5diff_467.txt  "--follow-symlinks -v h5diff_danglelinks1.h5 h5diff_danglelinks2.h5 /soft_link2"
-#!# ext dangling vs. ext dangling
-$ CALL TOOLTEST h5diff_468.txt  "--follow-symlinks -v h5diff_danglelinks1.h5 h5diff_danglelinks2.h5 /ext_link4"
-#!# ext link vs. ext dangling
-$ CALL TOOLTEST h5diff_469.txt  "--follow-symlinks -v h5diff_danglelinks1.h5 h5diff_danglelinks2.h5 /ext_link2"
-$!
-#!# dangling links without follow symlink
-#!# test - soft dangle links (same and different paths),
-#!#      - external dangle links (same and different paths)
-$ CALL TOOLTEST h5diff_471.txt  "-v h5diff_danglelinks1.h5 h5diff_danglelinks2.h5"
-$ CALL TOOLTEST h5diff_472.txt  "-v h5diff_danglelinks1.h5 h5diff_danglelinks2.h5 /soft_link1"
-$ CALL TOOLTEST h5diff_473.txt  "-v h5diff_danglelinks1.h5 h5diff_danglelinks2.h5 /soft_link4"
-$ CALL TOOLTEST h5diff_474.txt  "-v h5diff_danglelinks1.h5 h5diff_danglelinks2.h5 /ext_link4"
-$ CALL TOOLTEST h5diff_475.txt  "-v h5diff_danglelinks1.h5 h5diff_danglelinks2.h5 /ext_link1"
-
-$!# ##############################################################################
-$!# # test for group diff recursivly
-$!# ##############################################################################
-$!# root 
-$ CALL TOOLTEST h5diff_500.txt "-v h5diff_grp_recurse1.h5 h5diff_grp_recurse2.h5 / /"
-$ CALL TOOLTEST h5diff_501.txt "-v --follow-symlinks h5diff_grp_recurse1.h5 h5diff_grp_recurse2.h5 / /"
-
-$!# root vs group (It doesn't work on VMS.  Debug it in the future)
-$! CALL TOOLTEST h5diff_502.txt "-v h5diff_grp_recurse1.h5 h5diff_grp_recurse2.h5 / /grp1/grp2/grp3"
-
-$!# group vs group (same name and structure)
-$ CALL TOOLTEST h5diff_503.txt "-v h5diff_grp_recurse1.h5 h5diff_grp_recurse2.h5 /grp1 /grp1"
-
-$!# group vs group (different name and structure)
-$ CALL TOOLTEST h5diff_504.txt "-v h5diff_grp_recurse1.h5 h5diff_grp_recurse2.h5 /grp1/grp2 /grp1/grp2/grp3"
-
-$!# groups vs soft-link
-$ CALL TOOLTEST h5diff_505.txt "-v h5diff_grp_recurse1.h5 h5diff_grp_recurse2.h5 /grp1 /slink_grp1"
-$ CALL TOOLTEST h5diff_506.txt "-v --follow-symlinks h5diff_grp_recurse1.h5 h5diff_grp_recurse2.h5 /grp1/grp2 /slink_grp2"
-
-$!# groups vs ext-link
-$ CALL TOOLTEST h5diff_507.txt "-v h5diff_grp_recurse1.h5 h5diff_grp_recurse2.h5 /grp1 /elink_grp1" 
-$ CALL TOOLTEST h5diff_508.txt "-v --follow-symlinks h5diff_grp_recurse1.h5 h5diff_grp_recurse2.h5 /grp1 /elink_grp1"
-
-$!# soft-link vs ext-link 
-$ CALL TOOLTEST h5diff_509.txt "-v h5diff_grp_recurse1.h5 h5diff_grp_recurse2.h5 /slink_grp1 /elink_grp1"
-$ CALL TOOLTEST h5diff_510.txt "-v --follow-symlinks h5diff_grp_recurse1.h5 h5diff_grp_recurse2.h5 /slink_grp1 /elink_grp1"
-
-$!# circled ext links
-$ CALL TOOLTEST h5diff_511.txt "-v h5diff_grp_recurse1.h5 h5diff_grp_recurse2.h5 /grp10 /grp11"
-$ CALL TOOLTEST h5diff_512.txt "-v --follow-symlinks h5diff_grp_recurse1.h5 h5diff_grp_recurse2.h5 /grp10 /grp11"
-
-$!# circled soft2ext-link vs soft2ext-link
-$ CALL TOOLTEST h5diff_513.txt "-v h5diff_grp_recurse1.h5 h5diff_grp_recurse2.h5 /slink_grp10 /slink_grp11"
-$ CALL TOOLTEST h5diff_514.txt "-v --follow-symlinks h5diff_grp_recurse1.h5 h5diff_grp_recurse2.h5 /slink_grp10 /slink_grp11"
-$!
-$!###############################################################################
-$!# Test for group recursive diff via multi-linked external links 
-$!# With follow-symlinks, file h5diff_grp_recurse_ext1.h5 and h5diff_grp_recurse_ext2-1.h5 should
-$!# be same with the external links.
-$!###############################################################################
-$!# file vs file
-$ CALL TOOLTEST h5diff_515.txt "-v h5diff_grp_recurse_ext1.h5 h5diff_grp_recurse_ext2-1.h5"
-$ CALL TOOLTEST h5diff_516.txt "-v --follow-symlinks h5diff_grp_recurse_ext1.h5 h5diff_grp_recurse_ext2-1.h5"
-$!# group vs group
-$ CALL TOOLTEST h5diff_517.txt "-v h5diff_grp_recurse_ext1.h5 h5diff_grp_recurse_ext2-1.h5 /g1"
-$ CALL TOOLTEST h5diff_518.txt "-v --follow-symlinks h5diff_grp_recurse_ext1.h5 h5diff_grp_recurse_ext2-1.h5 /g1"
-
-$!# ##############################################################################
-$!# # Exclude objects (--exclude-path)
-$!# ##############################################################################
-$!#
-$!# Same structure, same names and different value.
-$!#
-$!# Exclude the object with different value. Expect return - same
-$ CALL TOOLTEST h5diff_480.txt "-v --exclude-path /group1/dset3 h5diff_exclude1-1.h5 h5diff_exclude1-2.h5"
-$!# Verify different by not excluding. Expect return - diff
-$ CALL TOOLTEST h5diff_481.txt "-v h5diff_exclude1-1.h5 h5diff_exclude1-2.h5"
-
-$!#
-$!# Different structure, different names. 
-$!#
-$!# Exclude all the different objects. Expect return - same
-$ CALL TOOLTEST h5diff_482.txt "-v --exclude-path "/group1" --exclude-path "/dset1" h5diff_exclude2-1.h5 h5diff_exclude2-2.h5"
-$!# Exclude only some different objects. Expect return - diff
-$ CALL TOOLTEST h5diff_483.txt "-v --exclude-path "/group1" h5diff_exclude2-1.h5 h5diff_exclude2-2.h5"
-
-$!# Exclude from group compare
-$ CALL TOOLTEST h5diff_484.txt "-v --exclude-path "/dset3" h5diff_exclude1-1.h5 h5diff_exclude1-2.h5 /group1"
-
-$!# Only one file contains unique objs. Common objs are same.
-$ CALL TOOLTEST h5diff_485.txt "-v --exclude-path "/group1" h5diff_exclude3-1.h5 h5diff_exclude3-2.h5"
-$ CALL TOOLTEST h5diff_486.txt "-v --exclude-path "/group1" h5diff_exclude3-2.h5 h5diff_exclude3-1.h5"
-$ CALL TOOLTEST h5diff_487.txt "-v --exclude-path "/group1/dset" h5diff_exclude3-1.h5 h5diff_exclude3-2.h5"
-
-$!# ##############################################################################
-$!# # diff various multiple vlen and fixed strings in a compound type dataset
-$!# ############################################################################## 
-$ CALL TOOLTEST h5diff_530.txt "-v  h5diff_comp_vl_strs.h5 h5diff_comp_vl_strs.h5 /group /group_copy"
-
-$!# ##############################################################################
-$!# # Test container types (array,vlen) with multiple nested compound types
-$!# # Complex compound types in dataset and attribute
-$!# ##############################################################################
-$ CALL TOOLTEST h5diff_540.txt "-v compounds_array_vlen1.h5 compounds_array_vlen2.h5"
-$!
-$!# ##############################################################################
-$!# # Test mutually exclusive options 
-$!# ##############################################################################
-$!# Test with -d , -p and --use-system-epsilon. 
-$ CALL TOOLTEST h5diff_640.txt "-v -d 5 -p """0.05""" --use-system-epsilon h5diff_basic1.h5 h5diff_basic2.h5 /g1/dset3 /g1/dset4"
-$ CALL TOOLTEST h5diff_641.txt "-v -d 5 -p """0.05""" h5diff_basic1.h5 h5diff_basic2.h5 /g1/dset3 /g1/dset4"
-$ CALL TOOLTEST h5diff_642.txt "-v -p """0.05""" -d 5 h5diff_basic1.h5 h5diff_basic2.h5 /g1/dset3 /g1/dset4"
-$ CALL TOOLTEST h5diff_643.txt "-v -d 5 --use-system-epsilon h5diff_basic1.h5 h5diff_basic2.h5 /g1/dset3 /g1/dset4"
-$ CALL TOOLTEST h5diff_644.txt "-v --use-system-epsilon -d 5 h5diff_basic1.h5 h5diff_basic2.h5 /g1/dset3 /g1/dset4"
-$ CALL TOOLTEST h5diff_645.txt "-v -p """0.05""" --use-system-epsilon h5diff_basic1.h5 h5diff_basic2.h5 /g1/dset3 /g1/dset4"
-$ CALL TOOLTEST h5diff_646.txt "-v --use-system-epsilon -p """0.05""" h5diff_basic1.h5 h5diff_basic2.h5 /g1/dset3 /g1/dset4"
-$!
-$!# ##############################################################################
-$!# # END
-$!# ##############################################################################
-$!
-$TOOLTEST: SUBROUTINE
-$
-$ len =  F$LENGTH(P1)
-$ base = F$EXTRACT(0,len-3,P1)
-$ actual = base + "h5diffout"
-$ actual_err = base + "h5differr"
-$
-$ begin = "Testing h5diff "
-$ !
-$ ! Run the test and save output in the 'actual' file
-$ !
-$ define/nolog sys$output 'actual'
-$ define/nolog sys$error  'actual_err'
-$ ON ERROR THEN CONTINUE
-$ h5diff 'P2
-$ deassign sys$output
-$ deassign sys$error
-$ if F$SEARCH(actual_err) .NES. ""
-$ then
-$ set message/notext/nofacility/noidentification/noseverity
-$    append 'actual_err' 'actual'
-$ set message/text/facility/identification/severity
-$ endif
-$ !
-$ ! Compare the results
-$ !
-$ diff/output=h5diff_temp/ignore=(spacing,trailing_spaces,blank_lines)/comment_delim=(%) 'actual' 'P1'
-$ open/read temp_out h5diff_temp.dif
-$ read temp_out record1
-$ close temp_out
-$ !
-$ ! Extract error code and format output line
-$ !
-$ len = F$LENGTH(record1)
-$ err_code = F$EXTRACT(len-1,1,record1)
-$ if err_code .eqs. "0" 
-$  then
-$    result = "PASSED"
-$    line = F$FAO("!15AS !50AS !70AS", begin, P2, result) 
-$  else
-$    result = "*FAILED*"
-$    line = F$FAO("!15AS !49AS !69AS", begin, P2, result) 
-$ endif
-$ !
-$ ! Print test result
-$ ! 
-$  write sys$output line
-$ ! 
-$ ! Append the result to the log file 
-$ !
-$ append/new_version h5diff_temp.dif h5diff.log
-$ append/new_version 'actual'        h5diff_output.txt
-$ !
-$ ! Delete temporary files
-$ !
-$ if F$SEARCH(actual_err)  .NES. ""
-$ then
-$  del *.h5differr;*
-$ endif
-$  del *.h5diffout;*
-$  del h5diff_temp.dif;*
-$ !
-$ENDSUBROUTINE
-
diff --git a/vms/tools/h5diff/make.com b/vms/tools/h5diff/make.com
deleted file mode 100644
index c1e0078..0000000
--- a/vms/tools/h5diff/make.com
+++ /dev/null
@@ -1,48 +0,0 @@
-$!#
-$!# 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.
-$!#
-$! Makefile for VAX/VMX systems.
-$!
-$! Make h5diff tool 
-$!
-$! The next two lines should be uncommented only when building by hand in the
-$! current directory. Use build.com in the vms directory to build
-$! the distribution. Make sure that location of the zlib library is correct.
-$! define zlib_dir sys$sysusers:[pourmal.zlib-1_2_3]
-$! ccopt = "/float=ieee_float/define=H5_VMS/include=zlib_dir"
-$ ccc := cc 'ccopt /include=([-.-.src], [-.lib])
-$!
-$ cobj= "h5diff_main, h5diff_common, h5diffgentest"
-
-$!                               
-$ ccc 'cobj 
-$ type sys$input
-       Creating h5diffgentest ...
-$ link/exe=h5diffgentest.exe -
-           h5diffgentest, -
-           [-.lib]libh5tools.olb/lib,[-.-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib 
-$ type sys$input
-       Finished  h5difftest
-
-$
-$ type sys$input
-       Creating h5diff ...
-$ link/exe=h5diff.exe -
-           h5diff_main, h5diff_common, -
-           [-.lib]libh5tools.olb/lib,[-.-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$ type sys$input
-       Finished  h5diff
-
-$!
-$ exit
diff --git a/vms/tools/h5diff/remove_exit.sh b/vms/tools/h5diff/remove_exit.sh
deleted file mode 100644
index 7ccdd01..0000000
--- a/vms/tools/h5diff/remove_exit.sh
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-
-# This script removes the "EXIT CODE" line in the end of all standard output files.  OpenVMS doesn't output the
-# same value as Unix.  So we remove the line first on Unix before running the tests.  Simply run the command
-# "sh ./remove_exit.sh" under hdf5/tools/h5diff/testfiles directory.
-
-for file in $(ls *.txt)
-do
-sed '/EXIT CODE/d' $file > _$file
-mv _$file $file
-done
diff --git a/vms/tools/h5dump/check_h5dump.com b/vms/tools/h5dump/check_h5dump.com
deleted file mode 100644
index f86574a..0000000
--- a/vms/tools/h5dump/check_h5dump.com
+++ /dev/null
@@ -1,547 +0,0 @@
-$!#
-$!# 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 command file tests h5dump utility. The command file has to
-$ ! run in the [hdf5-top.tools.testfiles] directory.
-$ !
-$ type sys$input
-
-===================================
-       Testing h5dump utiltity
-===================================
-
-$
-$ !
-$ ! Define h5dump symbol
-$ !
-$! set message/notext/nofacility/noidentification/noseverity
-$ current_dir = F$DIRECTRY()
-$ len = F$LENGTH(current_dir)
-$ temp = F$EXTRACT(0, len-10, current_dir)
-$ h5dump_dir = temp + "H5DUMP]"
-$ h5dump :== $sys$disk:'h5dump_dir'h5dump.exe
-$ !
-$ ! h5dump tests
-$ !
-$
-$ ! Test data output redirection
-$ CALL TOOLTEST tnoddl.ddl "--ddl -y packedbits.h5"
-$ CALL TOOLTEST tnodata.ddl "--output packedbits.h5"
-$ CALL TOOLTEST tnoattrddl.ddl "-"""O""" -y tattr.h5"
-$ CALL TOOLTEST tnoattrdata.ddl "-"""A""" -o tattr.h5"
-$! These 4 cases need new function to handle them.  I run them temporarily
-$! with TOOLTEST to check the metadata part and left out the data part.
-$ CALL TOOLTEST trawdatafile.ddl "-y -o trawdatafile.txt packedbits.h5"
-$ CALL TOOLTEST tnoddlfile.ddl "-"""O""" -y -o tnoddlfile.txt packedbits.h5"
-$! CALL TOOLTEST2A twithddlfile.exp twithddl.exp "--ddl=twithddl.txt -y -o twithddlfile.txt packedbits.h5"
-$ CALL TOOLTEST trawssetfile.ddl "-d "/dset1[1,1;;;]" -y -o trawssetfile.txt tdset.h5"
-$
-$ ! Test for maximum display datasets
-$ CALL TOOLTEST twidedisplay.ddl "-w0 packedbits.h5"
-$
-$ ! Test for signed/unsigned datasets 
-$ CALL TOOLTEST packedbits.ddl "packedbits.h5"
-$ ! Test for compound signed/unsigned datasets
-$ CALL TOOLTEST tcmpdintsize.ddl "tcmpdintsize.h5"
-$ ! Test for signed/unsigned scalar datasets
-$ CALL TOOLTEST tscalarintsize.ddl "tscalarintsize.h5"
-$ ! Test for signed/unsigned attributes
-$ CALL TOOLTEST tattrintsize.ddl "tattrintsize.h5"
-$ ! Test for compound signed/unsigned attributes
-$ CALL TOOLTEST tcmpdattrintsize.ddl "tcmpdattrintsize.h5"
-$ ! Test for signed/unsigned scalar attributes
-$ CALL TOOLTEST tscalarattrintsize.ddl "tscalarattrintsize.h5"
-$ ! Test for string scalar dataset attribute
-$ CALL TOOLTEST tscalarstring.ddl "tscalarstring.h5"
-$
-$ ! Test for displaying groups
-$ CALL TOOLTEST tgroup-1.ddl "tgroup.h5"
-$ ! Test for displaying the selected groups
-$ ! Commented out due to the difference of printing format.
-$ ! CALL TOOLTEST tgroup-2.ddl "--group=/g2 --group / -g /y tgroup.h5"
-$
-$ ! Test for displaying simple space datasets
-$ CALL TOOLTEST tdset-1.ddl "tdset.h5"
-$ ! Test for displaying selected datasets
-$ ! Commented out due to the difference of printing format.
-$ ! CALL TOOLTEST tdset-2.ddl "-"""H""" -d dset1 -d /dset2 --dataset=dset3 tdset.h5"
-$
-$ ! Test for displaying attributes
-$ CALL TOOLTEST tattr-1.ddl "tattr.h5"
-$ ! Test for displaying the selected attributes of string type and scalar space
-$ ! Commented out due to the difference of printing format
-$ ! CALL TOOLTEST tattr-2.ddl "-a /attr1 --attribute /attr4 --attribute=/attr5 tattr.h5"
-$ ! Test for header and error messages
-$ ! Commented out due to the difference of printing format.
-$ ! CALL TOOLTEST tattr-3.ddl "--header -a /attr2 --attribute=/attr tattr.h5"
-$ ! Test for displaying at least 9 attributes on root from a BE machine
-$ CALL TOOLTEST tattr-4_be.ddl "tattr4_be.h5"
-$ ! Test for displaying attributes in shared datatype (also in group and dataset)
-$ CALL TOOLTEST tnamed_dtype_attr.ddl "tnamed_dtype_attr.h5"
-$
-$ ! Test for displaying soft links and user-defined links
-$ CALL TOOLTEST tslink-1.ddl "tslink.h5"
-$ CALL TOOLTEST tudlink-1.ddl "tudlink.h5"
-$ ! Test for displaying the selected link
-$ CALL TOOLTEST tslink-2.ddl "-l slink2 tslink.h5"
-$ CALL TOOLTEST tudlink-2.ddl "-l udlink2 tudlink.h5"
-$ ! Test for displaying dangling soft links
-$ CALL TOOLTEST tslink-D.ddl "-d /slink1 tslink.h5"
-$
-$ ! Tests for hard links
-$ CALL TOOLTEST thlink-1.ddl "thlink.h5"
-$ CALL TOOLTEST thlink-2.ddl "-d /g1/dset2 --dataset /dset1 --dataset=/g1/g1.1/dset3 thlink.h5"
-$ CALL TOOLTEST thlink-3.ddl "-d /g1/g1.1/dset3 --dataset /g1/dset2 --dataset=/dset1 thlink.h5"
-$ CALL TOOLTEST thlink-4.ddl "-g /g1 thlink.h5"
-$ CALL TOOLTEST thlink-5.ddl "-d /dset1 -g /g2 -d /g1/dset2 thlink.h5"
-$
-$ ! Tests for compound data types
-$ CALL TOOLTEST tcomp-1.ddl "tcompound.h5"
-$ ! test for named data types
-$ CALL TOOLTEST tcomp-2.ddl "-t /type1 --datatype /type2 --datatype=/group1/type3 tcompound.h5"
-$ ! Test for unamed type 
-$ CALL TOOLTEST tcomp-3.ddl "-t /#6632 -g /group2 tcompound.h5"
-$ ! Test complicated compound datatype
-$ CALL TOOLTEST tcomp-4.ddl "tcompound_complex.h5"
-$
-$ ! Test for the nested compound type
-$ CALL TOOLTEST tnestcomp-1.ddl "tnestedcomp.h5"
-$ CALL TOOLTEST tnestedcmpddt.ddl "tnestedcmpddt.h5"
-$
-$ ! test for options
-$ CALL TOOLTEST tall-1.ddl "tall.h5"
-$ CALL TOOLTEST tall-2.ddl "--header -g /g1/g1.1 -a attr2 tall.h5"
-$ CALL TOOLTEST tall-3.ddl "-d /g2/dset2.1 -l /g1/g1.2/g1.2.1/slink tall.h5"
-$
-$ ! Test for loop detection
-$ CALL TOOLTEST tloop-1.ddl "tloop.h5"
-$
-$ ! Test for string 
-$ CALL TOOLTEST tstr-1.ddl "tstr.h5"
-$ CALL TOOLTEST tstr-2.ddl "tstr2.h5"
-$
-$ ! Test for file created by Lib SAF team
-$ CALL TOOLTEST tsaf.ddl "tsaf.h5"
-$
-$ ! Test for file with variable length data
-$ CALL TOOLTEST tvldtypes1.ddl "tvldtypes1.h5"
-$ CALL TOOLTEST tvldtypes2.ddl "tvldtypes2.h5"
-$ CALL TOOLTEST tvldtypes3.ddl "tvldtypes3.h5"
-$ CALL TOOLTEST tvldtypes4.ddl "tvldtypes4.h5"
-$ CALL TOOLTEST tvldtypes5.ddl "tvldtypes5.h5"
-$
-$ ! Test for file with variable length string data
-$ CALL TOOLTEST tvlstr.ddl "tvlstr.h5"
-$
-$ ! Test for files with array data
-$ CALL TOOLTEST tarray1.ddl "tarray1.h5"
-$ ! Added for bug# 2092 - tarray1_big.h
-$ CALL TOOLTEST tarray1_big.ddl "-"""R""" tarray1_big.h5"
-$ CALL TOOLTEST tarray2.ddl "tarray2.h5"
-$ CALL TOOLTEST tarray3.ddl "tarray3.h5"
-$ CALL TOOLTEST tarray4.ddl "tarray4.h5"
-$ CALL TOOLTEST tarray5.ddl "tarray5.h5"
-$ CALL TOOLTEST tarray6.ddl "tarray6.h5"
-$ CALL TOOLTEST tarray7.ddl "tarray7.h5"
-$ CALL TOOLTEST tarray8.ddl "tarray8.h5"
-$
-$ ! Test for files with empty data
-$ CALL TOOLTEST tempty.ddl "tempty.h5"
-$
-$ ! Test for files with groups that have comments
-$ CALL TOOLTEST tgrp_comments.ddl "tgrp_comments.h5"
-$
-$ ! Test the --filedriver flag
-$ CALL TOOLTEST tsplit_file.ddl "--filedriver=split tsplit_file"
-$ CALL TOOLTEST tfamily.ddl "--filedriver=family tfamily%05d.h5"
-$ CALL TOOLTEST tmulti.ddl "--filedriver=multi tmulti"
-$
-$ ! Test for files with group names which reach > 1024 bytes in size
-$ CALL TOOLTEST tlarge_objname.ddl "-w157 tlarge_objname.h5"
-$
-$ ! Test '-A' to suppress data but print attr's
-$ CALL TOOLTEST tall-2A.ddl "-"""A""" tall.h5"
-$
-$ ! Test '-r' to print attributes in ASCII instead of decimal
-$ CALL TOOLTEST tall-2B.ddl "-"""A""" -r tall.h5"
-$
-$ ! Test Subsetting
-$ CALL TOOLTEST tall-4s.ddl "--dataset=/g1/g1.1/dset1.1.1 --start=1,1 --stride=2,3 --count=3,2 --block=1,1 tall.h5"
-$ CALL TOOLTEST tall-5s.ddl "-d /g1/g1.1/dset1.1.2[0;2;10;] tall.h5"
-$ CALL TOOLTEST tdset-3s.ddl "-d /dset1[1,1;;;] tdset.h5"
-$! CALL TOOLTEST tdset-3s.ddl "-d """/"dset"1[;3,2;4,4;1,4]""" tdset2.h5"
-$
-$ ! Test printing characters in ASCII instead of decimal
-$ CALL TOOLTEST tchar1.ddl "-r tchar.h5"
-$
-$ ! Test datatypes in ASCII and UTF8
-$ CALL TOOLTEST charsets.ddl "charsets.h5"
-$
-$ ! rev. 2004
-$
-$ ! Tests for super block
-$ CALL TOOLTEST tboot1.ddl "-"""H""" -"""B""" -d dset tfcontents1.h5"
-$ CALL TOOLTEST tboot2.ddl "-"""B""" tfcontents2.h5"
-$
-$ ! Test -p with a non existing dataset
-$ ! Commented out due to the difference of printing format
-$ ! CALL TOOLTEST tperror.ddl "-p -d bogus tfcontents1.h5"
-$
-$ ! Test for file contents
-$ CALL TOOLTEST tcontents.ddl "-n tfcontents1.h5"
-$ CALL TOOLTEST tordercontents1.ddl "-n --sort_by=name --sort_order=ascending tfcontents1.h5'
-$ CALL TOOLTEST tordercontents2.ddl "-n --sort_by=name --sort_order=descending tfcontents1.h5"
-$ CALL TOOLTEST tattrcontents1.ddl "-n 1 --sort_order=ascending tall.h5"
-$ CALL TOOLTEST tattrcontents2.ddl "-n 1 --sort_order=descending tall.h5"
-$
-$ ! Tests for storage layout
-$ ! Compact
-$ CALL TOOLTEST tcompact.ddl "-"""H""" -p -d compact tfilters.h5"
-$ ! Contiguous
-$ CALL TOOLTEST tcontiguos.ddl "-"""H""" -p -d contiguous tfilters.h5"
-$ ! Chunked
-$ CALL TOOLTEST tchunked.ddl "-"""H""" -p -d chunked tfilters.h5"
-$ ! External 
-$ CALL TOOLTEST texternal.ddl "-"""H""" -p -d external tfilters.h5"
-$
-$ ! Fill values
-$ CALL TOOLTEST tfill.ddl "-p tfvalues.h5"
-$
-$ ! Several datatype, with references , print path
-$ CALL TOOLTEST treference.ddl  "tattr2.h5"
-$
-$ ! Escape/not escape non printable characters
-$ CALL TOOLTEST tstringe.ddl "-e tstr3.h5"
-$ CALL TOOLTEST tstring.ddl "tstr3.h5"
-$ ! Char data as ASCII with non escape
-$ CALL TOOLTEST tstring2.ddl "-r -d str4 tstr3.h5"
-$
-$ ! Array indices print/not print
-$ CALL TOOLTEST tindicesyes.ddl "taindices.h5"
-$ CALL TOOLTEST tindicesno.ddl "-y taindices.h5"
-$
-$ ! Array indices with subsetting
-$ ! 1D case
-$ CALL TOOLTEST tindicessub1.ddl "-d 1d -s 1 -"""S""" 10 -c 2 -k 3 taindices.h5"
-$ ! 2D case
-$ CALL TOOLTEST tindicessub2.ddl "-d 2d -s 1,2 -"""S""" 3,3 -c 3,2 -k 2,2 taindices.h5"
-$ ! 3D case
-$ CALL TOOLTEST tindicessub3.ddl "-d 3d -s 0,1,2 -"""S""" 1,3,3 -c 2,2,2 -k 1,2,2 taindices.h5"
-$ ! 4D case
-$ CALL TOOLTEST tindicessub4.ddl "-d 4d -s 0,0,1,2 -c 2,2,3,2 -"""S""" 1,1,3,3 -k 1,1,2,2 taindices.h5"
-$
-$ ! Exceed the dimensions for subsetting
-$ CALL TOOLTEST texceedsubstart.ddl "-d 1d -s 1,3 taindices.h5"
-$ CALL TOOLTEST texceedsubcount.ddl "-d 1d -c 1,3 taindices.h5"
-$ CALL TOOLTEST texceedsubstride.ddl "-d 1d -"""S""" 1,3 taindices.h5"
-$ CALL TOOLTEST texceedsubblock.ddl "-d 1d -k 1,3 taindices.h5"
-
-$ ! Tests for filters
-$ ! SZIP
-$ CALL TOOLTEST tszip.ddl "-"""H""" -p -d szip tfilters.h5"
-$ ! deflate
-$ CALL TOOLTEST tdeflate.ddl "-"""H""" -p -d deflate tfilters.h5"
-$ ! shuffle
-$ CALL TOOLTEST tshuffle.ddl "-"""H""" -p -d shuffle tfilters.h5"
-$ ! fletcher32
-$ CALL TOOLTEST tfletcher32.ddl "-"""H""" -p -d fletcher32 tfilters.h5"
-$ ! nbit
-$ CALL TOOLTEST tnbit.ddl "-"""H""" -p -d nbit tfilters.h5"
-$ ! scaleoffset
-$ CALL TOOLTEST tscaleoffset.ddl "-"""H""" -p -d scaleoffset tfilters.h5"
-$ ! all
-$ CALL TOOLTEST tallfilters.ddl "-"""H""" -p -d all tfilters.h5"
-$ ! User defined
-$ CALL TOOLTEST tuserfilter.ddl "-"""H"""  -p -d myfilter tfilters.h5"
-
-$ ! Test for displaying objects with very long names. The error message says:
-$ ! %DIFF-F-READERR, error reading DISK$USER:[HDFGROUP.1_8_VMS_9_30.TOOLS.TESTFILES]TLONGLINKS.DDL;1
-$ ! -RMS-W-RTB, 66573 byte record too large for user's buffer
-$ ! %RMS-E-EOF, end of file detected 
-$! CALL TOOLTEST tlonglinks.ddl "tlonglinks.h5"
-$ ! Dimensions over 4GB, print boundary
-$ CALL TOOLTEST tbigdims.ddl "-d dset4gb -s 4294967284 -c 22 tbigdims.h5"
-$ ! Hyperslab read
-$ CALL TOOLTEST thyperslab.ddl "thyperslab.h5"
-$ ! Test for displaying dataset and attribute of null space
-$ CALL TOOLTEST tnullspace.ddl "tnullspace.h5"
-$
-$ ! Test for displaying dataset and attribute of space with 0 dimension size
-$ CALL TOOLTEST zerodim.ddl "zerodim.h5"
-$
-$ ! Test for long double (some systems do not have long double)
-$ ! CALL TOOLTEST tldouble.ddl "tldouble.h5"
-$
-$ ! Test for vms
-$ CALL TOOLTEST tvms.ddl "tvms.h5"
-$
-$ !test for binary output
-$ CALL TOOLTEST tbin1.ddl "-d integer -o out1.bin -b """LE""" tbinary.h5"
-$ CALL TOOLTEST tbin2.ddl "-d float   -o out2.bin -b """BE""" tbinary.h5"
-$ CALL TOOLTEST tbin4.ddl "-d double   -o out4.bin -b """FILE""" tbinary.h5"
-$
-$ ! Test for string binary output
-$ ! These 2 cases need new function to handle them
-$ ! CALL TOOLTEST tstr2bin2.exp "-d /g2/dset2 -b -o tstr2bin2.txt tstr2.h5"
-$ ! CALL TOOLTEST tstr2bin6.exp "-d /g6/dset6 -b -o tstr2bin6.txt tstr2.h5"
-
-$ ! Test for dataset region references
-$ CALL TOOLTEST tdatareg.ddl "tdatareg.h5"
-$ CALL TOOLTEST tdataregR.ddl "-"""R""" tdatareg.h5"
-$ CALL TOOLTEST tattrreg.ddl "tattrreg.h5"
-$ CALL TOOLTEST tattrregR.ddl "-"""R""" tattrreg.h5"
-$ ! commented out because I don't know how to do "Dataset1" in command line.
-$ ! CALL TOOLTEST tbinregR.exp "-d /Dataset1 -s 0 -"""R""" -y -o tbinregR.txt tdatareg.h5"
-$
-$ ! tests for group creation order "1" tracked, "2" name, root tracked
-$ CALL TOOLTEST tordergr1.ddl "--group=1 --sort_by=creation_order --sort_order=ascending tordergr.h5"
-$ CALL TOOLTEST tordergr2.ddl "--group=1 --sort_by=creation_order --sort_order=descending tordergr.h5"
-$ CALL TOOLTEST tordergr3.ddl "-g 2 -q name -z ascending tordergr.h5"
-$ CALL TOOLTEST tordergr4.ddl "-g 2 -q name -z descending tordergr.h5"
-$ CALL TOOLTEST tordergr5.ddl "-q creation_order tordergr.h5"
-$
-$ ! Tests for attribute order
-$ CALL TOOLTEST torderattr1.ddl "-"""H""" --sort_by=name --sort_order=ascending torderattr.h5"
-$ CALL TOOLTEST torderattr2.ddl "-"""H""" --sort_by=name --sort_order=descending torderattr.h5"
-$ CALL TOOLTEST torderattr3.ddl "-"""H""" --sort_by=creation_order --sort_order=ascending torderattr.h5"
-$ CALL TOOLTEST torderattr4.ddl "-"""H""" --sort_by=creation_order --sort_order=descending torderattr.h5"
-$
-$ ! Tests for link references and order
-$ CALL TOOLTEST torderlinks1.ddl "--sort_by=name --sort_order=ascending tfcontents1.h5"
-$ CALL TOOLTEST torderlinks2.ddl "--sort_by=name --sort_order=descending tfcontents1.h5"
-
-$ ! Test for floating point user defined printf format
-$ CALL TOOLTEST tfpformat.ddl "-m %.7f tfpformat.h5"
-$ ! Test for traversal of external links
-$ CALL TOOLTEST textlinksrc.ddl "textlinksrc.h5"
-$ CALL TOOLTEST textlinkfar.ddl "textlinkfar.h5"
-$ ! Test for danglng external links 
-$ CALL TOOLTEST textlink.ddl "textlink.h5"
-$ ! Test for error stack display (BZ2048)
-$ ! Commented out due to the difference of printing format
-$ ! CALL TOOLTEST filter_fail.ddl "--enable-error-stack filter_fail.h5"
-$ ! Test for -o -y for dataset with attributes
-$ CALL TOOLTEST tall-6.ddl "-y -o data -d /g1/g1.1/dset1.1.1 tall.h5"
-$
-$ ! Test for dataset packed bits
-$ ! Limits:
-$ ! Maximum number of packed bits is 8 (for now).
-$ ! Maximum integer size is 8 (for now).
-$ ! Maximun Offset is 7 (Maximum size - 1).
-$ ! Maximum Offset+Length is 8 (Maximum size).
-$ ! Test Normal operation on both signed and unsigned int datasets.
-$ ! Their rawdata output should be the same.
-$ CALL TOOLTEST tpbitsSignedWhole.ddl "-d /"""DS08BITS""" -"""M""" 0,8 packedbits.h5"
-$ CALL TOOLTEST tpbitsUnsignedWhole.ddl "-d /"""DU08BITS""" -"""M""" 0,8 packedbits.h5"
-$ CALL TOOLTEST tpbitsSignedIntWhole.ddl "-d /"""DS16BITS""" -"""M""" 0,16 packedbits.h5"
-$ CALL TOOLTEST tpbitsUnsignedIntWhole.ddl "-d /"""DU16BITS""" -"""M""" 0,16 packedbits.h5"
-$ CALL TOOLTEST tpbitsSignedLongWhole.ddl "-d /"""DS32BITS""" -"""M""" 0,32 packedbits.h5"
-$ CALL TOOLTEST tpbitsUnsignedLongWhole.ddl "-d /"""DU32BITS""" -"""M""" 0,32 packedbits.h5"
-$ CALL TOOLTEST tpbitsSignedLongLongWhole.ddl "-d /"""DS64BITS""" -"""M""" 0,64 packedbits.h5"
-$ CALL TOOLTEST tpbitsUnsignedLongLongWhole.ddl "-d /"""DU64BITS""" -"""M""" 0,64 packedbits.h5"
-$ CALL TOOLTEST tpbitsSignedLongLongWhole63.ddl "-d /"""DS64BITS""" -"""M""" 0,63 packedbits.h5"
-$ CALL TOOLTEST tpbitsUnsignedLongLongWhole63.ddl "-d /"""DU64BITS""" -"""M""" 0,63 packedbits.h5"
-$ CALL TOOLTEST tpbitsSignedLongLongWhole1.ddl "-d /"""DS64BITS""" -"""M""" 1,63 packedbits.h5"
-$ CALL TOOLTEST tpbitsUnsignedLongLongWhole1.ddl "-d /"""DU64BITS""" -"""M""" 1,63 packedbits.h5"
-$ ! Half sections
-$ CALL TOOLTEST tpbitsSigned4.ddl "-d /"""DS08BITS""" -"""M""" 0,4,4,4 packedbits.h5"
-$ CALL TOOLTEST tpbitsUnsigned4.ddl "-d /"""DU08BITS""" -"""M""" 0,4,4,4 packedbits.h5"
-$ CALL TOOLTEST tpbitsSignedInt8.ddl "-d /"""DS16BITS""" -"""M""" 0,8,8,8 packedbits.h5" 
-$ CALL TOOLTEST tpbitsUnsignedInt8.ddl "-d /"""DU16BITS""" -"""M""" 0,8,8,8 packedbits.h5"
-$ CALL TOOLTEST tpbitsSignedLong16.ddl "-d /"""DS32BITS""" -"""M""" 0,16,16,16 packedbits.h5"
-$ CALL TOOLTEST tpbitsUnsignedLong16.ddl "-d /"""DU32BITS""" -"""M""" 0,16,16,16 packedbits.h5"
-$ CALL TOOLTEST tpbitsSignedLongLong32.ddl "-d /"""DS64BITS""" -"""M""" 0,32,32,32 packedbits.h5"
-$ CALL TOOLTEST tpbitsUnsignedLongLong32.ddl "-d /"""DU64BITS""" -"""M""" 0,32,32,32 packedbits.h5"
-$ ! Quarter sections 
-$ CALL TOOLTEST tpbitsSigned2.ddl "-d /"""DS08BITS""" -"""M""" 0,2,2,2,4,2,6,2 packedbits.h5"
-$ CALL TOOLTEST tpbitsUnsigned2.ddl "-d /"""DU08BITS""" -"""M""" 0,2,2,2,4,2,6,2 packedbits.h5"
-$ CALL TOOLTEST tpbitsSignedInt4.ddl "-d /"""DS16BITS""" -"""M""" 0,4,4,4,8,4,12,4 packedbits.h5"
-$ CALL TOOLTEST tpbitsUnsignedInt4.ddl "-d /"""DU16BITS""" -"""M""" 0,4,4,4,8,4,12,4 packedbits.h5"
-$ CALL TOOLTEST tpbitsSignedLong8.ddl "-d /"""DS32BITS""" -"""M""" 0,8,8,8,16,8,24,8 packedbits.h5"
-$ CALL TOOLTEST tpbitsUnsignedLong8.ddl "-d /"""DU32BITS""" -"""M""" 0,8,8,8,16,8,24,8 packedbits.h5"
-$ CALL TOOLTEST tpbitsSignedLongLong16.ddl "-d /"""DS64BITS""" -"""M""" 0,16,16,16,32,16,48,16 packedbits.h5"
-$ CALL TOOLTEST tpbitsUnsignedLongLong16.ddl "-d /"""DU64BITS""" -"""M""" 0,16,16,16,32,16,48,16 packedbits.h5"
-$ ! Begin and end
-$ CALL TOOLTEST tpbitsSigned.ddl "-d /"""DS08BITS""" -"""M""" 0,2,2,6 packedbits.h5"
-$ CALL TOOLTEST tpbitsUnsigned.ddl "-d /"""DU08BITS""" -"""M""" 0,2,2,6 packedbits.h5"
-$ CALL TOOLTEST tpbitsSignedInt.ddl "-d /"""DS16BITS""" -"""M""" 0,2,10,6 packedbits.h5"
-$ CALL TOOLTEST tpbitsUnsignedInt.ddl "-d /"""DU16BITS""" -"""M""" 0,2,10,6 packedbits.h5"
-$ CALL TOOLTEST tpbitsSignedLong.ddl "-d /"""DS32BITS""" -"""M""" 0,2,26,6 packedbits.h5"
-$ CALL TOOLTEST tpbitsUnsignedLong.ddl "-d /"""DU32BITS""" -"""M""" 0,2,26,6 packedbits.h5"
-$ CALL TOOLTEST tpbitsSignedLongLong.ddl "-d /"""DS64BITS""" -"""M""" 0,2,58,6 packedbits.h5"
-$ CALL TOOLTEST tpbitsUnsignedLongLong.ddl "-d /"""DU64BITS""" -"""M""" 0,2,58,6 packedbits.h5"
-$ ! Overlapped packed bits.
-$ CALL TOOLTEST tpbitsOverlapped.ddl "-d /"""DS08BITS""" -"""M""" 0,1,1,1,2,1,0,3 packedbits.h5"
-$ ! Maximum number of packed bits.
-$ CALL TOOLTEST tpbitsMax.ddl "-d /"""DS08BITS""" -"""M""" 0,1,1,1,2,1,3,1,4,1,5,1,6,1,7,1 packedbits.h5"
-$ ! Compound type.
-$ CALL TOOLTEST tpbitsCompound.ddl "-d /dset1 -"""M""" 0,1,1,1 tcompound.h5"
-$ ! Array type.
-$ CALL TOOLTEST tpbitsArray.ddl "-d /"""D"""ataset1 -"""M""" 0,1,1,1 tarray1.h5"
-$ ! Test Error handling.
-$ ! Too many packed bits requested. Max is 8 for now.
-$ CALL TOOLTEST tpbitsMaxExceeded.ddl "-d /"""DS08BITS""" -"""M""" 0,1,0,1,1,1,2,1,3,1,4,1,5,1,6,1,7,1 packedbits.h5"
-$ ! Offset too large. Max is 7 (8-1) for now.
-$ CALL TOOLTEST tpbitsOffsetExceeded.ddl "-d /"""DS08BITS""" -"""M""" 64,1 packedbits.h5"
-$ ! Commented out due to the difference of printing format.
-$ ! CALL TOOLTEST tpbitsCharOffsetExceeded.ddl "-d /"""DS08BITS""" -"""M""" 8,1 packedbits.h5"
-$ ! CALL TOOLTEST tpbitsIntOffsetExceeded.ddl "-d /"""DS16BITS""" -"""M""" 16,1 packedbits.h5"
-$ ! CALL TOOLTEST tpbitsLongOffsetExceeded.ddl "-d /"""DS32BITS""" -"""M""" 32,1 packedbits.h5"
-$ ! Bad offset, must not be negative.
-$ CALL TOOLTEST tpbitsOffsetNegative.ddl "-d /"""DS08BITS""" -"""M""" -1,1 packedbits.h5"
-$ ! Bad length, must not be positive.
-$ CALL TOOLTEST tpbitsLengthPositive.ddl "-d /"""DS08BITS""" -"""M""" 4,0 packedbits.h5"
-$ ! Offset+Length is too large. Max is 8 for now.
-$ CALL TOOLTEST tpbitsLengthExceeded.ddl "-d /"""DS08BITS""" -"""M""" 37,28 packedbits.h5"
-$ ! Commented out due to the difference of printing format.
-$ ! CALL TOOLTEST tpbitsCharLengthExceeded.ddl "-d /"""DS08BITS""" -"""M""" 2,7 packedbits.h5"
-$ ! CALL TOOLTEST tpbitsIntLengthExceeded.ddl "-d /"""DS16BITS""" -"""M""" 10,7 packedbits.h5"
-$ ! CALL TOOLTEST tpbitsLongLengthExceeded.ddl "-d /"""DS32BITS""" -"""M""" 26,7 packedbits.h5"
-$ ! Incomplete pair of packed bits request.
-$ CALL TOOLTEST tpbitsIncomplete.ddl "-d /"""DS08BITS""" -"""M""" 0,2,2,1,0,2,2, packedbits.h5"
-$
-$ !
-$TOOLTEST: SUBROUTINE
-$
-$ len =  F$LENGTH(P1)
-$ base = F$EXTRACT(0,len-3,P1)
-$ actual = base + "h5dumpout"
-$ actual_err = base + "h5dumperr"
-$
-$ begin = "Testing h5dump "
-$ !
-$ ! Run the test and save output in the 'actual' file
-$ !
-$ 
-$ define/nolog sys$output 'actual'
-$ define/nolog sys$error  'actual_err'
-$! write  sys$output "#############################"
-$! write  sys$output "Expected output for 'h5dump ''P2''"
-$! write  sys$output "#############################"
-$ ON ERROR THEN CONTINUE
-$ h5dump 'P2
-$ deassign sys$output
-$ deassign sys$error
-$ if F$SEARCH(actual_err) .NES. ""
-$ then
-$ set message/notext/nofacility/noidentification/noseverity
-$    append 'actual_err' 'actual'
-$ set message/text/facility/identification/severity
-$ endif
-$ !
-$ ! Compare the results
-$ !
-$ diff/output=h5dump_temp/ignore=(spacing,trailing_spaces,blank_lines) 'actual' 'P1'
-$ open/read temp_out h5dump_temp.dif
-$ read temp_out record1
-$ close temp_out
-$ !
-$ ! Extract error code and format output line
-$ !
-$ len = F$LENGTH(record1)
-$ err_code = F$EXTRACT(len-1,1,record1)
-$ if err_code .eqs. "0" 
-$  then
-$    result = "PASSED"
-$    line = F$FAO("!15AS !50AS !70AS", begin, P2, result) 
-$  else
-$    result = "*FAILED*"
-$    line = F$FAO("!15AS !49AS !69AS", begin, P2, result) 
-$ endif
-$ !
-$ ! Print test result
-$ ! 
-$  write sys$output line
-$ ! 
-$ ! Append the result to the log file 
-$ !
-$ append/new_version h5dump_temp.dif h5dump.log
-$ append/new_version 'actual'        h5dump_output.txt
-$ !
-$ ! Delete temporary files
-$ !
-$ if F$SEARCH(actual_err) .NES. ""
-$ then
-$  del *.h5dumperr;*
-$ endif
-$  del *.h5dumpout;*
-$  del h5dump_temp.dif;*
-$ !
-$ENDSUBROUTINE
-$
-$TOOLTEST1: SUBROUTINE
-$
-$ len =  F$LENGTH(P1)
-$ base = F$EXTRACT(0,len-3,P1)
-$ actual = base + "h5dumpout"
-$ actual_err = base + "h5dumperr"
-$
-$ begin = "Testing h5dump "
-$ !
-$ ! Run the test and save output in the 'actual' file
-$ !
-$ define/nolog sys$output 'actual'
-$ define/nolog sys$error  'actual_err'
-$ ON ERROR THEN CONTINUE
-$ h5dump 'P2
-$ deassign sys$output
-$ deassign sys$error
-$ if F$SEARCH(actual_err) .NES. ""
-$ then
-$ set message/notext/nofacility/noidentification/noseverity
-$    append 'actual_err' 'actual'
-$ set message/text/facility/identification/severity
-$ endif
-$ !
-$ ! Compare the results
-$ !
-$ diff/output=h5dump_temp/ignore=(spacing,trailing_spaces,blank_lines) 'actual' 'P1'
-$ open/read temp_out h5dump_temp.dif
-$ read temp_out record1
-$ close temp_out
-$ !
-$ ! Extract error code and format output line
-$ !
-$ len = F$LENGTH(record1)
-$ err_code = F$EXTRACT(len-1,1,record1)
-$ if err_code .eqs. "0" 
-$  then
-$    result = "PASSED"
-$    line = F$FAO("!15AS !50AS !70AS", begin, P2, result) 
-$  else
-$    result = "*FAILED*"
-$    line = F$FAO("!15AS !49AS !69AS", begin, P2, result) 
-$ endif
-$ !
-$ ! Print test result
-$ ! 
-$  write sys$output line
-$ ! 
-$ ! Append the result to the log file 
-$ !
-$ append/new_version h5dump_temp.dif h5dump.log
-$ append/new_version 'actual'        h5dump_output.txt
-$ !
-$ ! Delete temporary files
-$ !
-$ if F$SEARCH(actual_err) .NES. ""
-$ then
-$  del *.h5dumperr;*
-$ endif
-$  del *.h5dumpout;*
-$  del h5dump_temp.dif;*
-$ !
-$ENDSUBROUTINE
-
diff --git a/vms/tools/h5dump/make.com b/vms/tools/h5dump/make.com
deleted file mode 100644
index 6888f98..0000000
--- a/vms/tools/h5dump/make.com
+++ /dev/null
@@ -1,41 +0,0 @@
-$!#
-$!# 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.
-$!#
-$! Makefile for VMS systems.
-$!
-$! Make h5dump tool 
-$!
-$! The next two lines should be uncommented only when building by hand in the
-$! current directory. Use build.com in the vms directory to build
-$! the distribution. Make sure that location of the zlib library is correct.
-$! define zlib_dir sys$sysusers:[pourmal.zlib-1_2_3]
-$! ccopt = "/float=ieee_float/define=H5_VMS/include=zlib_dir"
-$
-$ ccc := cc 'ccopt /include=([-.-.src], [-.lib])
-$ cobj= "h5dump.c, h5dump_ddl.c, h5dump_xml.c, h5dumpgentest.c "
-$ ccc 'cobj 
-$ type sys$input
-       Creating h5dumpgentest ...
-$ link     h5dumpgentest, -
-           [-.lib]libh5tools.olb/lib,[-.-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib 
-$ type sys$input
- 	Finished  h5dumpgentest
-$ type sys$input
-       Creating h5dump ...
-$ link     h5dump, h5dump_ddl, h5dump_xml, -
-           [-.lib]libh5tools.olb/lib,[-.-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$ type sys$input
-	Finished  h5dump
-$!
-$ exit
diff --git a/vms/tools/h5import/check_h5import.com b/vms/tools/h5import/check_h5import.com
deleted file mode 100644
index a08751a..0000000
--- a/vms/tools/h5import/check_h5import.com
+++ /dev/null
@@ -1,227 +0,0 @@
-$!#
-$!# 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 command file tests h5import utility. The command file has to
-$ ! run in the [hdf5-top.tools.h5import.testfiles] directory.
-$ !
-$ !
-$ type sys$input
-
-===================================
-       Testing h5import utiltity
-===================================
-
-$ ! Define symbols
-$ !
-$ 
-$ current_dir = F$DIRECTRY()
-$ len = F$LENGTH(current_dir)
-$ temp = F$EXTRACT(0, len-19, current_dir)
-$ h5dump_dir = temp + "H5DUMP]"
-$ h5dump :== $sys$disk:'h5dump_dir'h5dump.exe
-$ h5import_dir = temp + "H5IMPORT]"
-$ h5import :== $sys$disk:'h5import_dir'h5import.exe
-$ h5importtest :== $sys$disk:'h5import_dir'h5importtest.exe
-$ !
-$ ! Define output for diff command that compares expected and actual
-$ ! outputs of h5dump
-$ !
-$ create h5import.log
-$ !
-$ ! h5import tests
-$ !
-$ ! Run h5importtest to create input files
-$ !
-$ run [.-]h5importtest
-$ !
-$ type sys$input
-                 Testing ASCII I32 rank 3 - Output BE 
-$ CALL TOOLTEST "txtin16.txt -c txtin32.conf -o" txtin32.h5
-$ !
-$ type sys$input 
-                Testing ASCII I16 rank 3 - Output LE - CHUNKED - extended
-$ CALL TOOLTEST  "txtin16.txt -c txtin16.conf -o" txtin16.h5
-$ !
-$ type sys$input 
-                Testing ASCII I8 - rank 3 - Output I16 LE-Chunked+Extended+Compressed 
-$ CALL TOOLTEST  "txtin16.txt -c txtin8.conf  -o" txtin8.h5
-$ !
-$ type sys$input 
-                Testing ASCII UI16 - rank 2 - Output LE+Chunked+Compressed 
-$ CALL TOOLTEST  "txtuin16.txt -c txtuin16.conf  -o" txtuin16.h5
-$ !
-$ type sys$input 
-               Testing ASCII UI32 - rank 3 - Output BE 
-$ CALL TOOLTEST  "txtuin32.txt -c txtuin32.conf -o" txtuin32.h5
-$ !
-
-$ type sys$input 
-               Testing ASCII F32 - rank 3 - Output LE 
-$ CALL TOOLTEST  "txtfp32.txt -c txtfp32.conf -o" txtfp32.h5
-$ !
-$ type sys$input 
-               Testing ASCII F64 - rank 3 - Output BE + CHUNKED+Extended+Compressed 
-$ CALL TOOLTEST  "txtfp64.txt -c txtfp64.conf -o" txtfp64.h5
-$ !
-$ type sys$input 
-               Testing BINARY F64 - rank 3 - Output LE+CHUNKED+Extended+Compressed 
-$ CALL TOOLTEST  "binfp64.bin -c binfp64.conf -o" binfp64.h5
-$ !
-$ type sys$input 
-               Testing BINARY I8 - rank 3 - Output I16LE + Chunked+Extended+Compressed 
-$ CALL TOOLTEST  "binin8.bin -c binin8.conf -o" binin8.h5
-$ !
-$ type sys$input 
-               Testing BINARY I16 - rank 3 - Output order LE + CHUNKED + extended 
-$ CALL TOOLTEST  "binin16.bin -c binin16.conf -o" binin16.h5
-$ !
-$ type sys$input 
-               Testing BINARY I32 - rank 3 - Output BE + CHUNKED 
-$ CALL TOOLTEST  "binin32.bin -c binin32.conf -o" binin32.h5
-$ !
-$ type sys$input 
-               Testing BINARY UI16 - rank 3 - Output byte BE + CHUNKED 
-$ CALL TOOLTEST  "binuin16.bin -c binuin16.conf -o" binuin16.h5
-$ !
-$ type sys$input 
-               Testing BINARY UI32 - rank 3 - Output LE + CHUNKED 
-$ CALL TOOLTEST  "binuin32.bin -c binuin32.conf -o" binuin32.h5
-$ !
-$ type sys$input 
-               Testing STR
-$ CALL TOOLTEST "txtstr.txt -c txtstr.conf -o" txtstr.h5
-$ !
-$ type sys$input 
-               Testing BINARY I8 CR LF EOF
-$ CALL TOOLTEST "binin8w.txt -c binin8w.conf -o" binin8w.h5
-$ !
-$ type sys$input 
-               Testing ASCII F64 - rank 1 - INPUT-CLASS TEXTFPE
-$ CALL TOOLTEST  "textpfe64.txt -c textpfe.conf -o" textpfe.h5
-
-$
-$ ! Delete temporary files
-$ del *.h5;*
-$ del *.h5importtxt;*
-$ del *.bin;*
-$ del *.txt;*
-$ del *.dif;*
-$ !
-$ 
-$TOOLTEST: SUBROUTINE
-$
-$ len =  F$LENGTH(P2)
-$ base = F$EXTRACT(0,len-3,P2)
-$ actual = base + "_out.h5"
-$ actual_dump = base + "out.h5importtxt"
-$ actual_dump_err = base + "out.h5importerr"
-$ expected_dump = base + ".h5importtxt"
-$ expected_dump_err = base + ".h5importerr"
-$
-$ begin = "Testing"
-$ !
-$ ! Run h5import with output in the 'actual' file
-$ !
-$ ON ERROR THEN CONTINUE
-$ h5import 'P1 'actual'
-$ define/nolog sys$output 'actual_dump'
-$ define/nolog sys$error  'actual_dump_err'
-$ !
-$ ! Dump the atual and expected files
-$ !
-$ h5dump 'actual'
-$ deassign sys$output
-$ deassign sys$error
-$ if F$SEARCH(actual_dump_err) .NES. ""
-$ then
-$ set message/notext/nofacility/noidentification/noseverity
-$    append 'actual_dump_err' 'actual_dump'
-$ set message/text/facility/identification/severity
-$ endif
-$ define/nolog sys$output 'expected_dump'
-$ define/nolog sys$error  'expected_dump_err'
-$ h5dump 'P2
-$ deassign sys$output
-$ deassign sys$error
-$ if F$SEARCH(expected_dump_err) .NES. ""
-$ then
-$ set message/notex/nofacility/noidentification/noseverity
-$    append 'expected_dump_err' 'expected_dump'
-$ set message/ntext/facility/identification/severity
-$ endif
-$ !
-$ ! Compare the results
-$ !
-$ diff/output=h5dump_temp/ignore=(spacing,trailing_spaces,blank_lines)-
-                                'actual_dump' -
-                                'expected_dump'
-$ open/read temp_out h5dump_temp.dif
-$ !
-$READ_DATA:
-$ read/end_of_file=end_read temp_out record1
-$ !
-$ ! Skip blank lines
-$ !
-$ if record1 .EQS. "" then goto READ_DATA
-$ !
-$ ! Find record with "Number" and exit the loop
-$ !
-$ len = F$LENGTH(record1)
-$ pos = F$LOCATE("Number", record1)
-$ !
-$ if pos .EQ. 0  
-$ then 
-$     err_code = F$EXTRACT(len-1,1,record1)
-$     goto END_READ
-$ endif
-$ !
-$ goto READ_DATA
-$
-$ !
-$END_READ: 
-$ close temp_out
-$ !
-$ ! File names are different, so we allow only one difference
-$ ! in h5dump 
-$ if err_code .eqs. "1" 
-$  then
-$    result = "PASSED"
-$    line = F$FAO("!8AS !62AS !80AS", begin, P1, result) 
-$  else
-$    result = "*FAILED*"
-$    line = F$FAO("!8AS !61AS !79AS", begin, P1, result) 
-$ endif
-$ !
-$ ! Print test result
-$ ! 
-$  write sys$output line
-$ ! 
-$ ! Append the result to the log file 
-$ !
-$ append h5dump_temp.dif h5import.log
-$ !
-$ !
-$ !
-$ ! Delete temporary files
-$ !
-$ if F$SEARCH(actual_dump_err) .NES. ""
-$ then
-$  del *out.h5importerr;*
-$ endif
-$ if F$SEARCH(expected_dump_err) .NES. ""
-$ then
-$  del *.h5importerr;*
-$ endif
-$ENDSUBROUTINE
diff --git a/vms/tools/h5import/make.com b/vms/tools/h5import/make.com
deleted file mode 100644
index 6afbd70..0000000
--- a/vms/tools/h5import/make.com
+++ /dev/null
@@ -1,46 +0,0 @@
-$!#
-$!# 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.
-$!#
-$! Makefile for VMS systems.
-$!
-$! Make h5import tool 
-$!
-$! The next two lines should be uncommented only when building by hand in the
-$! current directory. Use build.com in the vms directory to build
-$! the distribution. Make sure that location of the zlib library is correct.
-$! define zlib_dir sys$sysusers:[pourmal.zlib-1_2_3]
-$! ccopt = "/float=ieee_float/define=H5_VMS/include=zlib_dir"
-$ ccc := cc 'ccopt /include=([-.-.src], [-.lib])
-$ type sys$input
-       Creating  h5import ...
-$!
-$ cobj= "h5import, h5importtest "
-
-$!                               
-$ ccc 'cobj 
-$ link     h5import,-
-           [-.lib]libh5tools.olb/lib,[-.-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$ type sys$input
-       Finished  h5import
-
-$!
-$ type sys$input
-       Creating h5importtest ...
-$ link     h5importtest, -
-           [-.lib]libh5tools.olb/lib,[-.-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$ type sys$input
-       Finished  h5importtest
-
-$!
-$ exit
diff --git a/vms/tools/h5jam/check_h5jam.com b/vms/tools/h5jam/check_h5jam.com
deleted file mode 100644
index 5243ba8..0000000
--- a/vms/tools/h5jam/check_h5jam.com
+++ /dev/null
@@ -1,178 +0,0 @@
-$!#
-$!# 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 command file tests h5jam and h5unjam utilities. The command file has to
-$ ! run in the [hdf5-top.tools.testfiles] directory.
-$ !
-$ type sys$input
-
-===================================
-       Testing h5jam utiltity
-===================================
-
-$ !
-$ ! Define h5jam, h5unjam and h5dump symbols
-$ !
-$! set message/notext/nofacility/noidentification/noseverity
-$ current_dir = F$DIRECTRY()
-$ len = F$LENGTH(current_dir)
-$ temp = F$EXTRACT(0, len-16, current_dir)
-$ h5dump_dir = temp + "H5DUMP]"
-$ h5dump :== $sys$disk:'h5dump_dir'h5dump.exe
-$ temp2 = F$EXTRACT(0, len-11, current_dir)
-$ h5jam_dir = temp2 + "]"
-$ h5jam :== $sys$disk:'h5jam_dir'h5jam.exe
-$ !
-$ ! Define output for diff command that compares expected and actual
-$ ! outputs of h5dump
-$ !
-$ create h5dump.log
-$ !
-$ ! h5jam and h5unjam tests
-$ !
-$
-$ CALL H5JAMTEST "-u u10.txt -i" tall.h5 ta2.h5
-$ CALL H5JAMTEST "-u u511.txt -i" tall.h5 ta3.h5
-$ CALL H5JAMTEST "-u u512.txt -i" tall.h5 ta4.h5
-$ CALL H5JAMTEST "-u u513.txt -i" tall.h5 ta5.h5
-$
-$ CALL H5JAMTEST "-u u10.txt -i" twithub.h5 tax2.h5
-$ CALL H5JAMTEST "-u u511.txt -i" twithub.h5 tax3.h5
-$ CALL H5JAMTEST "-u u512.txt -i" twithub.h5 tax4.h5
-$ CALL H5JAMTEST "-u u513.txt -i" twithub.h5 tax5.h5
-$
-$ CALL H5JAMTEST "-u u10.txt -i" twithub513.h5 tax6.h5
-$ CALL H5JAMTEST "-u u511.txt -i" twithub513.h5 tax7.h5
-$ CALL H5JAMTEST "-u u512.txt -i" twithub513.h5 tax8.h5
-$ CALL H5JAMTEST "-u u513.txt -i" twithub513.h5 tax9.h5
-$ 
-$ CALL H5JAMTEST "-u u10.txt -i --clobber" twithub.h5 taz2.h5
-$ CALL H5JAMTEST "-u u511.txt -i --clobber" twithub.h5 taz3.h5
-$ CALL H5JAMTEST "-u u512.txt -i --clobber" twithub.h5 taz4.h5
-$ CALL H5JAMTEST "-u u513.txt -i --clobber" twithub.h5 taz5.h5
-$
-$ CALL H5JAMTEST "-u u10.txt -i --clobber" twithub513.h5 taz6.h5
-$ CALL H5JAMTEST "-u u511.txt -i --clobber" twithub513.h5 taz7.h5
-$ CALL H5JAMTEST "-u u512.txt -i --clobber" twithub513.h5 taz8.h5
-$ CALL H5JAMTEST "-u u513.txt -i --clobber" twithub513.h5 taz9.h5
-$
-$H5JAMTEST: SUBROUTINE
-$
-$ len_org  = F$LENGTH(P2)
-$ base_org = F$EXTRACT(0,len_org-2,P2)
-$ len      = F$LENGTH(P3)
-$ base     = F$EXTRACT(0,len-2,P3)
-$ actual         = base + "out"
-$ actual_org     = base_org + "org"
-$ actual_err     = base + "err"
-$ actual_err_org = base_org + "err"
-$
-$ ON ERROR THEN CONTINUE
-$ begin = "Testing h5jam"
-$ !
-$ ! Run the test 
-$ !
-$ h5jam 'P1 'P2 -o 'P3
-$ !
-$ ! Dump the original and result file
-$ !
-$ define/nolog sys$output 'actual'
-$ define/nolog sys$error  'actual_err'
-$ h5dump 'P3
-$ deassign sys$output
-$ deassign sys$error
-$ if F$SEARCH(actual_err) .NES. ""
-$ then
-$ set message/notext/nofacility/noidentification/noseverity
-$    append 'actual_err' 'actual'
-$ set message/ntext/facility/identification/severity
-$ endif
-$ define/nolog sys$output 'actual_org'
-$ define/nolog sys$error  'actual_err_org'
-$ h5dump 'P2
-$ deassign sys$output
-$ deassign sys$error
-$ if F$SEARCH(actual_err_org) .NES. ""
-$ then
-$ set message/notext/nofacility/noidentification/noseverity
-$    append 'actual_err_org' 'actual_org'
-$ set message/ntext/facility/identification/severity
-$ endif
-$ !
-$ ! Compare the results
-$ !
-$ diff/output=h5dump_temp/ignore=(spacing,trailing_spaces,blank_lines) 'actual_org' -
-                                                                       'actual'
-$ !
-$ ! Delete output file 'P3
-$ !
-$ del 'P3;*
-$ open/read temp_out h5dump_temp.dif
-$READ_DATA:
-$ read/end_of_file=end_read temp_out record1
-$ !
-$ ! Skip blank lines
-$ !
-$ if record1 .EQS. "" then goto READ_DATA
-$ !
-$ ! Find record with "Number" and exit the loop
-$ !
-$ len = F$LENGTH(record1)
-$ pos = F$LOCATE("Number", record1)
-$ !
-$ if pos .EQ. 0  
-$ then 
-$     err_code = F$EXTRACT(len-1,1,record1)
-$     goto END_READ
-$ endif
-$ !
-$ goto READ_DATA
-$
-$ !
-$END_READ: 
-$ close temp_out
-$ 
-$ !
-$ ! Extract error code and format output line
-$ !
-$ len = F$LENGTH(record1)
-$ err_code = F$EXTRACT(len-1,1,record1)
-$ if err_code .eqs. "1" 
-$  then
-$    result = "PASSED"
-$    line = F$FAO("!14AS !14AS !7AS !2AS !25AS !100AS", begin, P1, P2, -
-                                                       "-o", P3, result) 
-$  else
-$    result = "*FAILED*"
-$    line = F$FAO("!14AS !14AS !7AS !2AS !25AS !99AS", begin, P1, P2, -
-                                                       "-o", P3, result) 
-$ endif
-$ !
-$ ! Print test result
-$ ! 
-$  write sys$output line
-$ ! 
-$ ! Append the result to the log file 
-$ !
-$ append h5dump_temp.dif h5dump.log
-$ !
-$ ! Delete temporary files
-$ !
-$! del *.out;*
-$! del *.org;*
-$! del *.dif;*
-$ !
-$ENDSUBROUTINE
-
diff --git a/vms/tools/h5jam/make.com b/vms/tools/h5jam/make.com
deleted file mode 100644
index d57b5e9..0000000
--- a/vms/tools/h5jam/make.com
+++ /dev/null
@@ -1,67 +0,0 @@
-$!#
-$!# 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.
-$!#
-$! Makefile for VMS systems.
-$!
-$! Make h5ls tool 
-$!
-$! The next two lines should be uncommented only when building by hand in the
-$! current directory. Use build.com in the vms directory to build
-$! the distribution. Make sure that location of the zlib library is correct.
-$! define zlib_dir sys$sysusers:[pourmal.zlib-1_2_3]
-$! ccopt = "/float=ieee_float/define=H5_VMS/include=zlib_dir"
-$ ccc := cc 'ccopt /include=([-.-.src], [-.lib])
-$ type sys$input
-	Creating h5jam
-$!
-$ cobj= "h5jam, h5unjam, tellub, getub, h5jamgentest"
-
-$!                               
-$ ccc 'cobj 
-$ type sys$input
-       Creating tellub
-$ link     tellub -
-           [-.lib]libh5tools.olb/lib,[-.-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$ type sys$input
-	Created  tellub
-$ type sys$input
-       Creating getub
-$ link     getub -
-           [-.lib]libh5tools.olb/lib,[-.-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$ type sys$input
-	Created  getub
-$!
-$!
-$ type sys$input
-       Creating h5jamgentest
-$ link     h5jamgentest, -
-           [-.lib]libh5tools.olb/lib,[-.-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$ type sys$input
-	Created  h5jamgentest
-$!
-$ type sys$input
-       Creating h5jam
-$ link     h5jam, -
-           [-.lib]libh5tools.olb/lib,[-.-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$ type sys$input
-	Created  h5jam
-$!
-$ type sys$input
-       Creating h5junam
-$ link     h5unjam, -
-           [-.lib]libh5tools.olb/lib,[-.-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$ type sys$input
-	Created  h5unjam
-$!
-$ exit
diff --git a/vms/tools/h5ls/check_h5ls.com b/vms/tools/h5ls/check_h5ls.com
deleted file mode 100644
index 749978d..0000000
--- a/vms/tools/h5ls/check_h5ls.com
+++ /dev/null
@@ -1,225 +0,0 @@
-$!#
-$!# 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 command file tests h5ls utility. The command file has to
-$ ! run in the [hdf5-top.tools.testfiles] directory.
-$ !
-$ type sys$input
-
-===================================
-       Testing h5ls utiltity
-===================================
-
-$
-$ !
-$ ! Define h5ls symbol
-$ !
-$! set message/notext/nofacility/noidentification/noseverity
-$ current_dir = F$DIRECTRY()
-$ len = F$LENGTH(current_dir)
-$ temp = F$EXTRACT(0, len-10, current_dir)
-$ h5ls_dir = temp + "H5LS]"
-$ h5ls :== $sys$disk:'h5ls_dir'h5ls.exe
-$ !
-$ ! Define output for diff command that compares expected and actual
-$ ! outputs of h5ls
-$ !
-$ create h5ls.log
-$ !
-$ ! h5ls tests
-$ !
-$
-$ CALL TOOLTEST help-1.ls "-w80 -h"
-$ CALL TOOLTEST help-2.ls "-w80 -help"
-$ CALL TOOLTEST help-3.ls "-w80 -?"
-
-$! test simple command
-$ CALL TOOLTEST tall-1.ls "-w80 tall.h5"
-$ CALL TOOLTEST tall-2.ls "-w80 -r -d tall.h5"
-$ CALL TOOLTEST tgroup.ls "-w80 tgroup.h5"
-$ CALL TOOLTEST tgroup-3.ls "-w80 tgroup.h5/g1"
-
-$! test for displaying groups
-$ CALL TOOLTEST tgroup-1.ls "-w80 -r -g tgroup.h5"
-$ CALL TOOLTEST tgroup-2.ls "-w80 -g tgroup.h5/g1"
-
-$! test for files with groups that have long comments
-$ CALL TOOLTEST tgrp_comments.ls "-w80 -v -g tgrp_comments.h5/glongcomment"
-
-$! test for displaying simple space datasets
-$ CALL TOOLTEST tdset-1.ls "-w80 -r -d tdset.h5"
-
-$! test for displaying soft links
-$ CALL TOOLTEST tslink-1.ls "-w80 -r tslink.h5"
-
-$! test for displaying more soft links with --follow-symlinks
-$ CALL TOOLTEST tsoftlinks-1.ls "--follow-symlinks tsoftlinks.h5"
-$ CALL TOOLTEST tsoftlinks-2.ls "--follow-symlinks -r tsoftlinks.h5"
-$ CALL TOOLTEST tsoftlinks-3.ls "--follow-symlinks tsoftlinks.h5/group1"
-$ CALL TOOLTEST tsoftlinks-4.ls "--follow-symlinks -r tsoftlinks.h5/group1"
-$ CALL TOOLTEST tsoftlinks-5.ls "--follow-symlinks tsoftlinks.h5/soft_dset1"
-        
-$! test for displaying external and user-defined links with --follow-symlinks
-$ CALL TOOLTEST textlink-1.ls "-w80 -r textlink.h5"
-$ CALL TOOLTEST textlinksrc-1.ls "-w80 --follow-symlinks -r textlinksrc.h5"
-$ CALL TOOLTEST textlinksrc-2.ls "-w80 --follow-symlinks -rv textlinksrc.h5/ext_link5"
-$ CALL TOOLTEST textlinksrc-3.ls "-w80 --follow-symlinks -r textlinksrc.h5/ext_link1"
-$ CALL TOOLTEST textlinksrc-4.ls "-w80 -r textlinksrc.h5"
-$ CALL TOOLTEST textlinksrc-5.ls "-w80 -r textlinksrc.h5/ext_link1"
-$ CALL TOOLTEST textlinksrc-6.ls "-w80 --follow-symlinks textlinksrc.h5"
-$ CALL TOOLTEST textlinksrc-7.ls "-w80 --follow-symlinks textlinksrc.h5/ext_link1"
-$ CALL TOOLTEST tudlink-1.ls "-w80 -r tudlink.h5"
-        
-$! test for displaying external links with -E
-$! the option -E will be depriciated but keep it for backward compatibility
-$ CALL TOOLTEST textlinksrc-1-old.ls "-w80 -"""E"""r textlinksrc.h5"
-$ CALL TOOLTEST textlinksrc-2-old.ls "-w80 -"""E"""rv textlinksrc.h5/ext_link5"
-$ CALL TOOLTEST textlinksrc-3-old.ls "-w80 -"""E"""r textlinksrc.h5/ext_link1"
-$ CALL TOOLTEST textlinksrc-6-old.ls "-w80 -"""E""" textlinksrc.h5"
-$ CALL TOOLTEST textlinksrc-7-old.ls "-w80 -"""E""" textlinksrc.h5/ext_link1"
-
-$! tests for no-dangling-links 
-$! if this option is given on dangling link, h5ls should return exit code 1
-$! when used alone , expect to print out help and return exit code 1
-$ CALL TOOLTEST textlinksrc-nodangle-1.ls "-w80 --no-dangling-links textlinksrc.h5"
-$! external dangling link - expected exit code 1
-$ CALL TOOLTEST textlinksrc-nodangle-2.ls "-w80 --follow-symlinks --no-dangling-links textlinksrc.h5"
-$! soft dangling link - expected exit code 1
-$ CALL TOOLTEST tsoftlinks-nodangle-1.ls "-w80 --follow-symlinks --no-dangling-links tsoftlinks.h5"
-$! when used file with no dangling links - expected exit code 0
-$ CALL TOOLTEST thlinks-nodangle-1.ls "-w80 --follow-symlinks --no-dangling-links thlink.h5"
-
-$! Test for wildcards in filename
-$ CALL TOOLTEST tmultifile.ls "-w80 thlink.h5 tslink.h5"
-
-$! tests for hard links
-$ CALL TOOLTEST thlink-1.ls "-w80 thlink.h5"
-
-$! tests for compound data types
-$ CALL TOOLTEST tcomp-1.ls "-w80 -r -d tcompound.h5"
-
-$!test for the nested compound type
-$ CALL TOOLTEST tnestcomp-1.ls "-w80 -r -d tnestedcomp.h5"
-$ CALL TOOLTEST tnestcomp-2.ls "-w80 -r -d -"""S""" tnestedcomp.h5"
-$ CALL TOOLTEST tnestcomp-3.ls "-w80 -r -d -l tnestedcomp.h5"
-$ CALL TOOLTEST tnestcomp-4.ls "-w80 -r -d -l -"""S""" tnestedcomp.h5"
-
-$! test for loop detection
-$ CALL TOOLTEST tloop-1.ls "-w80 -r -d tloop.h5"
-
-$! test for string 
-$ CALL TOOLTEST tstr-1.ls "-w80 -r -d tstr.h5"
-
-$! test test file created from lib SAF team
-$ CALL TOOLTEST tsaf.ls "-w80 -r -d tsaf.h5"
-
-$! test for variable length data types
-$ CALL TOOLTEST tvldtypes1.ls "-w80 -r -d tvldtypes1.h5"
-
-$! test for array data types
-$ CALL TOOLTEST tarray1.ls "-w80 -r -d tarray1.h5"
-
-$! test for empty data
-$ CALL TOOLTEST tempty.ls "-w80 -d tempty.h5"
-
-$! test for all dataset types written to attributes
-$! enable -S for avoiding printing NATIVE types
-$! This test will report failure for line 311 of the tattr2.ls file 
-$! contains
-$! Modified:  XXXX-XX-XX XX:XX:XX XXX
-$! instead of
-$! Modified:  2004-07-06 19:36:17 CST
-$! UNIX shell script does replacement on the fly in the actual output
-$! file; I do not know what can I do on VMS EIP 07/27/06
-$ CALL TOOLTEST tattr2.ls "-w80 -v -"""S""" tattr2.h5"
-
-$! test for variable length data types in verbose mode
-$ CALL TOOLTEST tvldtypes2le.ls "-v tvldtypes1.h5"
-
-$! tests for error handling.
-$! test for non-existing file
-$ CALL TOOLTEST nosuchfile.ls "nosuchfile.h5"
-
-$! test for variable length data types in verbose mode
-$ CALL TOOLTEST tvldtypes2le.ls "-v tvldtypes1.h5"
-
-$! test for dataset region references data types in verbose mode
-$ CALL TOOLTEST tdataregle.ls "-v tdatareg.h5"
-
-$ 
-$TOOLTEST: SUBROUTINE
-$
-$ len =  F$LENGTH(P1)
-$ base = F$EXTRACT(0,len-2,P1)
-$ actual = base + "h5lsout"
-$ actual_err = base + "h5lserr"
-$
-$ begin = "Testing h5ls "
-$ !
-$ ! Run the test and save output in the 'actual' file
-$ !
-$ define/nolog sys$output 'actual'
-$ define/nolog sys$error  'actual_err'
-$ ! write  sys$output "#############################"
-$ ! write  sys$output " output for 'h5ls ''P2''"
-$ ! write  sys$output "#############################"
-$ ON ERROR THEN CONTINUE
-$ h5ls 'P2
-$ deassign sys$output
-$ deassign sys$error
-$ if F$SEARCH(actual_err) .NES. ""
-$ then
-$ set message/notext/nofacility/noidentification/noseverity
-$    append 'actual_err' 'actual'
-$ set message/text/facility/identification/severity
-$ endif
-$ !
-$ ! Compare the results
-$ !
-$ diff/output=h5ls_temp/ignore=(spacing,trailing_spaces,blank_lines) 'actual' 'P1'
-$ open/read temp_out h5ls_temp.dif
-$ read temp_out record1
-$ close temp_out
-$ !
-$ ! Extract error code and format output line
-$ !
-$ len = F$LENGTH(record1)
-$ err_code = F$EXTRACT(len-1,1,record1)
-$ if err_code .eqs. "0" 
-$  then
-$    result = "PASSED"
-$    line = F$FAO("!15AS !50AS !70AS", begin, P2, result) 
-$  else
-$    result = "*FAILED*"
-$    line = F$FAO("!15AS !49AS !69AS", begin, P2, result) 
-$ endif
-$ !
-$ ! Print test result
-$ ! 
-$  write sys$output line
-$ ! 
-$ ! Append the result to the log file 
-$ !
-$ append h5ls_temp.dif h5ls.log
-$ !
-$ ! Delete temporary files
-$ !
-$ if F$SEARCH("*.h5lserr;*")   then del *.h5lserr;*
-$ if F$SEARCH("*.h5lsout;*")   then del *.h5lsout;*
-$ if F$SEARCH("*.dif;*")   then del *.dif;*
-$ !
-$ENDSUBROUTINE
-
diff --git a/vms/tools/h5ls/make.com b/vms/tools/h5ls/make.com
deleted file mode 100644
index 51d57c6..0000000
--- a/vms/tools/h5ls/make.com
+++ /dev/null
@@ -1,39 +0,0 @@
-$!#
-$!# 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.
-$!#
-$! Makefile for VMS systems.
-$!
-$! Make h5ls tool 
-$!
-$! The next two lines should be uncommented only when building by hand in the
-$! current directory. Use build.com in the vms directory to build
-$! the distribution. Make sure that location of the zlib library is correct.
-$! define zlib_dir sys$sysusers:[pourmal.zlib-1_2_3]
-$! ccopt = "/float=ieee_float/define=H5_VMS/include=zlib_dir"
-$ ccc := cc 'ccopt /include=([-.-.src], [-.lib])
-$ type sys$input
-	Creating h5ls
-$!
-$ cobj= "h5ls.c "
-
-$!                               
-$ ccc 'cobj 
-$ type sys$input
-       Creating h5ls
-$ link     h5ls, -
-           [-.lib]libh5tools.olb/lib,[-.-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$ type sys$input
-	Created  h5ls
-$!
-$ exit
diff --git a/vms/tools/h5repack/check_h5repack.com b/vms/tools/h5repack/check_h5repack.com
deleted file mode 100644
index a4c32f4..0000000
--- a/vms/tools/h5repack/check_h5repack.com
+++ /dev/null
@@ -1,266 +0,0 @@
-$!#
-$!# 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 command file tests h5repack utility. The command file has to
-$ ! run in the [hdf5-top.tools.h5repack.testfiles] directory.
-$ !
-$ !
-$ type sys$input
-
-===================================
-       Testing h5repack utiltity
-===================================
-
-$ ! Define h5repack and h5diff symbols
-$ !
-$! set message/notext/nofacility/noidentification/noseverity
-$ current_dir = F$DIRECTRY()
-$ len = F$LENGTH(current_dir)
-$ temp = F$EXTRACT(0, len-11, current_dir)
-$ temp1 = F$EXTRACT(0, len-19, current_dir)
-$ h5diff_dir = temp1 + "H5DIFF]"
-$ h5diff :== $sys$disk:'h5diff_dir'h5diff.exe
-$ h5repack_dir = temp + "]"
-$ h5repack :== $sys$disk:'h5repack_dir'h5repack.exe
-$ !
-$ !
-$ ! h5repack tests
-$ !
-$
-
-$!# copy files (these files have no filters) 
-$ CALL TOOLTEST "" h5repack_fill.h5
-$ CALL TOOLTEST "" h5repack_objs.h5
-$ CALL TOOLTEST "" h5repack_attr.h5
-$ CALL TOOLTEST "" h5repack_hlink.h5
-$ CALL TOOLTEST "" h5repack_layout.h5
-$ CALL TOOLTEST "" h5repack_early.h5
-$ 
-$! # use h5repack_layout.h5 to write some filters  (this file has  no filters)
-$ 
-$! # gzip with individual object
-$ CALL TOOLTEST "-f dset1:"""GZIP"""=1  -l dset1:"""CHUNK"""=20x10" h5repack_layout.h5
-$!   
-$
-$! # gzip for all 
-$ CALL TOOLTEST "-f """GZIP"""=1" h5repack_layout.h5
-$! 
-$! # shuffle with individual object
-$ CALL TOOLTEST "-f dset2:"""SHUF"""  -l dset2:"""CHUNK"""=20x10" h5repack_layout.h5
-$ 
-$!   
-$! 
-$! # shuffle for all
-$ CALL TOOLTEST "-f """SHUF"""" h5repack_layout.h5
-$!   
-$! # fletcher32  with individual object
-$ CALL TOOLTEST "-f dset2:"""FLET"""  -l dset2:"""CHUNK"""=20x10" h5repack_layout.h5
-$! 
-$! # fletcher32 for all
-$ CALL TOOLTEST "-f """FLET"""" h5repack_layout.h5
-$ 
-$! ###########################################################
-$! # the following tests assume the input files have filters
-$! ###########################################################
-$! 
-$! # deflate copy
-$ CALL TOOLTEST "" h5repack_deflate.h5
-$! 
-$! # deflate remove
-$ CALL TOOLTEST "-f dset_deflate:"""NONE"""" h5repack_deflate.h5
-$!     
-$! # shuffle copy
-$ CALL TOOLTEST "" h5repack_shuffle.h5
-$! 
-$! # shuffle remove
-$ CALL TOOLTEST "-f dset_shuffle:"""NONE"""" h5repack_shuffle.h5
-$! 
-$! # fletcher32 copy
-$ CALL TOOLTEST "" h5repack_fletcher.h5
-$! 
-$! # fletcher32 remove
-$ CALL TOOLTEST "-f dset_fletcher32:"""NONE"""" h5repack_fletcher.h5
-$! 
-$! # nbit copy
-$ CALL TOOLTEST "" h5repack_nbit.h5
-$! 
-$! # nbit remove
-$ CALL TOOLTEST "-f dset_nbit:"""NONE"""" h5repack_nbit.h5
-$! 
-$! # nbit add
-$ CALL TOOLTEST "-f dset_int31:"""NBIT"""" h5repack_nbit.h5
-$! 
-$! # scaleoffset add
-$! CALL TOOLTEST "-f dset_none:"""S+O"""=31" h5repack_scaleoffset.h5
-$! 
-$! # scaleoffset copy
-$! CALL TOOLTEST "" h5repack_scaleoffset.h5
-$! 
-$! # scaleoffset remove
-$! CALL TOOLTEST "-f dset_scaleoffset:"""NONE"""" h5repack_scaleoffset.h5
-$! 
-$! #limit
-$ CALL TOOLTEST "-f """GZIP"""=1 -m 1024" h5repack_layout.h5
-$! 
-$! 
-$! 
-$! #########################################################
-$! # layout options (these files have no filters)
-$! #########################################################
-$!
-$ CALL TOOLTEST "-l dset2:"""CHUNK"""=20x10" h5repack_layout.h5
-$ CALL TOOLTEST "-l """CHUNK"""=20x10" h5repack_layout.h5
-$ CALL TOOLTEST "-l dset2:"""CONTI"""" h5repack_layout.h5
-$ CALL TOOLTEST "-l """CONTI"""" h5repack_layout.h5
-$ CALL TOOLTEST "-l dset2:"""COMPA"""" h5repack_layout.h5
-$ CALL TOOLTEST "-l """COMPA"""" h5repack_layout.h5
-$! 
-$! 
-$! ################################################################
-$! # layout conversions (file has no filters)
-$! ###############################################################
-$! 
-$ CALL TOOLTEST "-l dset_compact:"""CONTI"""" h5repack_layout.h5
-$ CALL TOOLTEST "-l dset_compact:"""CHUNK"""=2x5" h5repack_layout.h5 
-$ CALL TOOLTEST "-l dset_compact:"""COMPA"""" h5repack_layout.h5
-$ CALL TOOLTEST "-l dset_contiguous:"""COMPA"""" h5repack_layout.h5
-$ CALL TOOLTEST "-l dset_contiguous:"""CHUNK"""=3x6" h5repack_layout.h5
-$ CALL TOOLTEST "-l dset_contiguous:"""CONTI"""" h5repack_layout.h5
-$ CALL TOOLTEST "-l dset_chunk:"""COMPA"""" h5repack_layout.h5
-$ CALL TOOLTEST "-l dset_chunk:"""CONTI"""" h5repack_layout.h5
-$ CALL TOOLTEST "-l dset_chunk:"""CHUNK"""=18x13" h5repack_layout.h5
-$!
-$! test convert small size dataset ( < 1k) to compact layout without -m
-$ CALL TOOLTEST "-l contig_small:"""COMPA"""" h5repack_layout2.h5
-$ CALL TOOLTEST "-l chunked_small_fixed:"""COMPA"""" h5repack_layout2.h5
-$!
-$! ################################################################
-$! Test file contains chunked datasets (need multiple dsets) with
-$! unlimited max dims.
-$! ###############################################################
-$!
-$! chunk to chunk - specify chunk dim bigger than any current dim
-$ CALL TOOLTEST "-l chunk_unlimit1:"""CHUNK"""=100x300" h5repack_layout3.h5
-$!
-$! chunk to contiguous
-$ CALL TOOLTEST "-l chunk_unlimit1:"""CONTI"""" h5repack_layout3.h5
-$! 
-$! chunk to compact - convert big dataset (should be > 64k) for this purpose,
-$! should remain as original layout (chunk)
-$ CALL TOOLTEST "-l chunk_unlimit1:"""COMPA"""" h5repack_layout3.h5 
-$!
-$! #########################################################################
-$! Test -f for some specific cases. Chunked dataset with unlimited max dims.
-$! #########################################################################
-$!
-$! chunk dim is bigger than dataset dim. ( dset size < 64k )
-$ CALL TOOLTEST "-f chunk_unlimit1:"""NONE"""" h5repack_layout3.h5
-$!
-$! chunk dim is bigger than dataset dim. ( dset size > 64k )
-$ CALL TOOLTEST "-f chunk_unlimit2:"""NONE"""" h5repack_layout3.h5
-$!
-$! chunk dims are smaller than dataset dims. ( dset size < 64k )
-$ CALL TOOLTEST "-f chunk_unlimit3:"""NONE"""" h5repack_layout3.h5
-$!
-$! file input - should not fail
-$ CALL TOOLTEST "-f NONE" h5repack_layout3.h5
-$!
-$! ##########################################################################
-$! Test base: Convert CHUNK to CONTI for a chunked dataset with small dataset
-$! (dset size < 64K) and with unlimited max dims on a condition as follow. 
-$! ##########################################################################
-$! 
-$! chunk dim is bigger than dataset dim. should succeed
-$ CALL TOOLTEST "-l chunk_unlimit2:"""CONTI"""" h5repack_layout3.h5
-$! 
-$! chunk dim is smaller than dataset dim. should succeed.
-$ CALL TOOLTEST "-l chunk_unlimit3:"""CONTI"""" h5repack_layout3.h5
-$! 
-$! Native option. Do not use FILE1, as the named dtype will be converted to native, 
-$! and h5diff will report a difference.
-$ CALL TOOLTEST "-n" h5repack_fill.h5
-$ CALL TOOLTEST "-n" h5repack_attr.h5
-$!
-$! Check repacking file with old version of layout message (should get upgraded
-$! to new version and be readable, etc.)
-$ CALL TOOLTEST h5repack_layouto.h5
-$!
-$! test for datum size > H5TOOLS_MALLOCSIZE
-$ CALL TOOLTEST "-f GZIP=1" h5repack_objs.h5
-$!
-$! Check repacking file with committed datatypes in odd configurations
-$ CALL TOOLTEST h5repack_named_dtypes.h5
-$! 
-$! test various references (bug 1814 and 1726)
-$ CALL TOOLTEST h5repack_refs.h5
-$!
-$! test attribute with various references (bug1797 / HDFFV-5932)
-$! the references in attribute of compund or vlen datatype
-$ CALL TOOLTEST h5repack_attr_refs.h5
-$!
-$! Add test for memory leak in attirbute. This test is verified by CTEST.
-$!  1. leak from vlen string
-$!  2. leak from compound type without reference member
-$!  (HDFFV-7840, )
-$! Note: this test is experimental for sharing test file among tools
-$ CALL TOOLTEST h5diff_attr1.h5
-$!
-$!
-$TOOLTEST: SUBROUTINE
-
-$ len =  F$LENGTH(P2)
-$ base = F$EXTRACT(0,len-3,P2)
-$ output_file = base + "_out.h5"
-$ output_err = base + ".h5repackerr"
-$ output_out = base + ".h5repackout"
-$
-$ begin = "Testing h5repack"
-$ !
-$ ! Run the test and save output in the 'actual' file
-$ !
-$ define/nolog sys$error  'output_err'
-$ define/nolog sys$output 'output_out'
-$
-$ ON ERROR THEN CONTINUE
-$ h5repack 'P1 'P2 'output_file'
-$ h5diff 'P2 'output_file'
-$ deassign sys$error
-$ deassign sys$output
-$ if F$SEARCH(output_err) .EQS. "" 
-$ then
-$    result = "PASSED"
-$    line = F$FAO("!16AS !40AS !22AS !67AS", begin, P1, P2, result) 
-$  else
-$    result = "*FAILED*"
-$    line = F$FAO("!16AS !40AS !22AS !66AS", begin, P1, P2, result) 
-$ endif
-
-$ !
-$ ! Print test result
-$ ! 
-$  write sys$output line
-$ ! 
-$ !
-$ !
-$ ! Cleanup temporary files
-$ !
-$ if F$SEARCH(output_err) .NES. ""
-$ then 
-$  del *.h5repackerr;*
-$ endif 
-$  del *.h5repackout;*
-$  del  *_out.h5;*
-$ENDSUBROUTINE
diff --git a/vms/tools/h5repack/make.com b/vms/tools/h5repack/make.com
deleted file mode 100644
index 0de0e2b..0000000
--- a/vms/tools/h5repack/make.com
+++ /dev/null
@@ -1,55 +0,0 @@
-$!#
-$!# 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.
-$!#
-$! Makefile for VMS systems.
-$!
-$! Make h5repack tool 
-$!
-$! The next two lines should be uncommented only when building by hand in the
-$! current directory. Use build.com in the vms directory to build
-$! the distribution. Make sure that location of the zlib library is correct.
-$! define zlib_dir sys$sysusers:[pourmal.zlib-1_2_3]
-$! ccopt = "/float=ieee_float/define=H5_VMS/include=zlib_dir"
-$ ccc := cc 'ccopt /include=([-.-.src], [-.lib], [-.-.test])
-$ type sys$input
-       Creating h5repack ...
-$!
-$ cobj= " h5repack_main, h5repack, h5repack_copy, h5repack_refs," +-
-        "h5repack_filters, h5repack_opttable, h5repack_parse, " +-
-        "h5repack_verify, h5repacktst"
-
-$!                               
-$ ccc 'cobj 
-$ link/exe=h5repack.exe -
-           h5repack_main, h5repack, h5repack_copy, h5repack_refs, h5repack_filters, -
-           h5repack_opttable, h5repack_parse, -
-           h5repack_verify, -
-           [-.lib]libh5tools.olb/lib, -
-           [-.-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib 
-$ type sys$input
-       Finished  h5repack
-
-$ type sys$input
-       Creating h5repacktst ...
-$ link/exe=h5repacktst.exe -
-           h5repacktst,  -
-           h5repack, h5repack_copy, h5repack_refs, h5repack_filters, -
-           h5repack_opttable, h5repack_parse, -
-           h5repack_verify, -
-           [-.lib]libh5tools.olb/lib,[-.-.test]libh5test.olb/lib, -
-           [-.-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib
-$ type sys$input
-       Finished  h5repacktst
-$!
-$ exit
diff --git a/vms/tools/h5stat/make.com b/vms/tools/h5stat/make.com
deleted file mode 100644
index a822aaa..0000000
--- a/vms/tools/h5stat/make.com
+++ /dev/null
@@ -1,39 +0,0 @@
-$!#
-$!# 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.
-$!#
-$! Makefile for VMS systems.
-$!
-$! Make h5stat tool 
-$!
-$! The next two lines should be uncommented only when building by hand in the
-$! current directory. Use build.com in the vms directory to build
-$! the distribution. Make sure that location of the zlib library is correct.
-$! define zlib_dir sys$sysusers:[pourmal.zlib-1_2_3]
-$! ccopt = "/float=ieee_float/define=H5_VMS/include=zlib_dir"
-$ ccc := cc 'ccopt /include=([-.-.src], [-.lib], [-.-.test])
-$ type sys$input
-    	Creating h5stat
-$!
-$ cobj= " h5stat " 
-$!                               
-$ ccc 'cobj 
-$ type sys$input
-$ link/exe=h5stat.exe -
-           h5stat, -
-           [-.lib]libh5tools.olb/lib,[-.-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib 
-$ type sys$input
-	Created  h5stat
-$!
-$!
-$ exit
diff --git a/vms/tools/lib/make.com b/vms/tools/lib/make.com
deleted file mode 100644
index 197b763..0000000
--- a/vms/tools/lib/make.com
+++ /dev/null
@@ -1,34 +0,0 @@
-$!#
-$!# 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.
-$!#
-$! Makefile for VMS systems.
-$!
-$! Make HDF5 tools library
-$!
-$! ccopt = "/float=ieee_float"
-$ ccc := cc 'ccopt /include=([-.-.src])
-$!
-$ type sys$input
-	Creating  HDF5 Tools library
-$!
-$ cobj="h5tools, h5tools_dump, h5tools_str, h5tools_utils, h5diff, h5diff_array, "+-
-        "h5diff_attr, h5diff_dset, h5diff_util, h5trav,"+- 
-        "h5tools_filters, h5tools_ref, h5tools_type"
-$!
-$ ccc 'cobj 
-$ library/create []libh5tools  'cobj
-$ type sys$input
-	Created HDF5 tools library
-$!
-$ exit
diff --git a/vms/tools/misc/make.com b/vms/tools/misc/make.com
deleted file mode 100644
index ed2d061..0000000
--- a/vms/tools/misc/make.com
+++ /dev/null
@@ -1,90 +0,0 @@
-$!#
-$!# 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.
-$!#
-$! Makefile for VMS systems.
-$!
-$! Make miscellaneous tools 
-$!
-$! The next two lines should be uncommented only when building by hand in the
-$! current directory. Use build.com in the vms directory to build
-$! the distribution. Make sure that location of the zlib library is correct.
-$! define zlib_dir sys$sysusers:[pourmal.zlib-1_2_3]
-$! ccopt = "/float=ieee_float/define=H5_VMS/include=zlib_dir"
-$ ccc := cc 'ccopt /include=([-.-.src], [-.lib], [-.-.test])
-$ type sys$input
-    	Creating h5debug
-$!
-$ cobj= " h5debug " 
-$!                               
-$ ccc 'cobj 
-$ type sys$input
-$ link/exe=h5debug.exe -
-           h5debug, -
-           [-.lib]libh5tools.olb/lib,[-.-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib 
-$ type sys$input
-	Created  h5debug
-$!
-$ type sys$input
-    	Creating h5mkgrp
-$!
-$ cobj= " h5mkgrp " 
-$!                               
-$ ccc 'cobj 
-$ type sys$input
-$ link/exe=h5mkgrp.exe -
-           h5mkgrp, -
-           [-.lib]libh5tools.olb/lib,[-.-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib 
-$ type sys$input
-	Created  h5mkgrp
-$!
-$ type sys$input
-    	Creating h5repart
-$!
-$ cobj= " h5repart " 
-$!                               
-$ ccc 'cobj 
-$ type sys$input
-$ link/exe=h5repart.exe -
-           h5repart, -
-           [-.lib]libh5tools.olb/lib,[-.-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib 
-$ type sys$input
-	Created  h5repart
-$!
-$ cobj= " h5repart_gentest " 
-$!                               
-$ ccc 'cobj 
-$ type sys$input
-$ link/exe=h5repart_gentest.exe -
-           h5repart_gentest, -
-           [-.lib]libh5tools.olb/lib,[-.-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib 
-$ type sys$input
-	Created  h5repart_gentest
-$!
-$ type sys$input
-    	Creating repart_test
-$!
-$ cobj= " repart_test " 
-$!                               
-$ ccc 'cobj 
-$ type sys$input
-$ link/exe=repart_test.exe -
-           repart_test, -
-           [-.lib]libh5tools.olb/lib,[-.-.src]hdf5.olb/lib,zlib_dir:libz.olb/lib 
-$ type sys$input
-	Created  repart_test
-$!
-$ type sys$input
-       Done with misc tools compilation
-$!
-$ exit
diff --git a/vms/tools/testfiles/tattr-3.ddl b/vms/tools/testfiles/tattr-3.ddl
deleted file mode 100644
index 8907843..0000000
--- a/vms/tools/testfiles/tattr-3.ddl
+++ /dev/null
@@ -1,13 +0,0 @@
-
-#############################
-Expected output for 'h5dump --header -a /attr2 --attribute=/attr tattr.h5'
-#############################
-HDF5 "tattr.h5" {
-ATTRIBUTE "/attr2" {
-   DATATYPE  H5T_STD_I32BE
-   DATASPACE  SIMPLE { ( 10 ) / ( 10 ) }
-}
-ATTRIBUTE "/attr" {
-}
-}
-h5dump error: unable to open attribute "/"
diff --git a/vms/tools/testfiles/tdset-2.ddl b/vms/tools/testfiles/tdset-2.ddl
deleted file mode 100644
index e6439ae..0000000
--- a/vms/tools/testfiles/tdset-2.ddl
+++ /dev/null
@@ -1,17 +0,0 @@
-
-#############################
-Expected output for 'h5dump -H -d dset1 -d /dset2 --dataset=dset3 tdset.h5'
-#############################
-HDF5 "tdset.h5" {
-DATASET "dset1" {
-   DATATYPE  H5T_STD_I32BE
-   DATASPACE  SIMPLE { ( 10, 20 ) / ( 10, 20 ) }
-}
-DATASET "/dset2" {
-   DATATYPE  H5T_IEEE_F64BE
-   DATASPACE  SIMPLE { ( 30, 20 ) / ( 30, 20 ) }
-}
-DATASET "dset3" {
-}
-}
-h5dump error: unable to open dataset "dset3"
diff --git a/vms/tools/testfiles/tgroup-2.ddl b/vms/tools/testfiles/tgroup-2.ddl
deleted file mode 100644
index 120ef2d..0000000
--- a/vms/tools/testfiles/tgroup-2.ddl
+++ /dev/null
@@ -1,47 +0,0 @@
-
-#############################
-Expected output for 'h5dump --group=/g2 --group / -g /y tgroup.h5'
-#############################
-HDF5 "tgroup.h5" {
-GROUP "/g2" {
-   GROUP "g2.1" {
-      GROUP "g2.1.1" {
-      }
-      GROUP "g2.1.2" {
-      }
-      GROUP "g2.1.3" {
-      }
-   }
-}
-GROUP "/" {
-   GROUP "g1" {
-      GROUP "g1.1" {
-      }
-      GROUP "g1.2" {
-      }
-   }
-   GROUP "g2" {
-      GROUP "g2.1" {
-         GROUP "g2.1.1" {
-         }
-         GROUP "g2.1.2" {
-         }
-         GROUP "g2.1.3" {
-         }
-      }
-   }
-   GROUP "g3" {
-      GROUP "g3.1" {
-      }
-      GROUP "g3.2" {
-      }
-      GROUP "g3.3" {
-      }
-      GROUP "g3.4" {
-      }
-   }
-}
-GROUP "/y" {
-}
-}
-h5dump error: unable to open group "/y"
diff --git a/vms/tools/testfiles/tperror.ddl b/vms/tools/testfiles/tperror.ddl
deleted file mode 100644
index 7275907..0000000
--- a/vms/tools/testfiles/tperror.ddl
+++ /dev/null
@@ -1,9 +0,0 @@
-
-#############################
-Expected output for 'h5dump -p -d bogus tfcontents1.h5'
-#############################
-HDF5 "tfcontents1.h5" {
-DATASET "bogus" {
-}
-}
-h5dump error: unable to open dataset "bogus"

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/hdf5.git



More information about the Pkg-grass-devel mailing list